Version Description
(2019.08.08) = - Replace activate_plugins with manage_options - Upgrade wordpress-scripts - Remove tracking code from login page - Added Logo svg for banner
Download this release
Release Info
Developer | HubSpotDev |
Plugin | HubSpot – Free Marketing Plugin for WordPress |
Version | 7.8.0 |
Comparing to | |
See all releases |
Code changes from version 7.6.0 to 7.8.0
- .phpcs.xml.dist +52 -0
- admin/class-leadinadmin.php +2 -2
- bin/install-wp-tests.sh +0 -155
- changelog.txt +6 -0
- composer.json +11 -0
- composer.lock +1729 -0
- images/hubspot-wordmark.svg +20 -0
- inc/class-leadin.php +0 -11
- inc/leadin-disconnect.php +3 -3
- inc/leadin-functions.php +21 -6
- inc/leadin-registration.php +3 -3
- {scripts → js/dist}/leadin.js +0 -0
- js/dist/leadin.js.map +1 -0
- package.json → js/package.json +7 -6
- {spec → js/spec}/support/jasmine.json +0 -0
- {spec → js/spec}/tests/universal-test.js +0 -0
- js/{api → src/api}/hubspotPluginApi.js +0 -0
- js/{api → src/api}/wordpressApi.js +0 -0
- js/{app.js → src/app.js} +0 -0
- js/{constants → src/constants}/leadinConfig.js +0 -0
- js/{constants → src/constants}/routes.js +0 -0
- js/{constants → src/constants}/selectors.js +0 -0
- js/{constants → src/constants}/themes.js +0 -0
- js/{fullscreen.js → src/fullscreen.js} +0 -0
- js/{handlers.js → src/handlers.js} +0 -0
- js/{lib → src/lib}/EventBus.js +0 -0
- js/{lib → src/lib}/Interframe.js +0 -0
- js/{lib → src/lib}/Raven.js +0 -0
- js/{menu.js → src/menu.js} +0 -0
- js/{navigation.js → src/navigation.js} +0 -0
- js/{utils.js → src/utils.js} +0 -0
- webpack.config.js → js/webpack.config.js +2 -2
- yarn.lock → js/yarn.lock +826 -17
- languages/leadin-de_AT.mo +0 -0
- languages/leadin-de_CH.mo +0 -0
- languages/leadin-de_CH_informal.mo +0 -0
- languages/leadin-de_DE.mo +0 -0
- languages/leadin-de_DE_formal.mo +0 -0
- languages/leadin-en.mo +0 -0
- languages/leadin-en_AU.mo +0 -0
- languages/leadin-en_CA.mo +0 -0
- languages/leadin-en_GB.mo +0 -0
- languages/leadin-en_NZ.mo +0 -0
- languages/leadin-en_US.mo +0 -0
- languages/leadin-en_ZA.mo +0 -0
- languages/leadin-es_AR.mo +0 -0
- languages/leadin-es_CL.mo +0 -0
- languages/leadin-es_CO.mo +0 -0
- languages/leadin-es_CR.mo +0 -0
- languages/leadin-es_ES.mo +0 -0
- languages/leadin-es_GT.mo +0 -0
- languages/leadin-es_MX.mo +0 -0
- languages/leadin-es_PE.mo +0 -0
- languages/leadin-es_PR.mo +0 -0
- languages/leadin-es_VE.mo +0 -0
- languages/leadin-fr_BE.mo +0 -0
- languages/leadin-fr_CA.mo +0 -0
- languages/leadin-fr_FR.mo +0 -0
- languages/leadin-ja.mo +0 -0
- languages/leadin-pt_AO.mo +0 -0
- languages/leadin-pt_BR.mo +0 -0
- languages/leadin-pt_PT.mo +0 -0
- languages/leadin-pt_PT_ao90.mo +0 -0
- leadin.php +7 -5
- readme.txt +9 -18
- scripts/leadin.js.map +0 -1
- style/leadin-bridge.css +2 -1
.phpcs.xml.dist
ADDED
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0"?>
|
2 |
+
<ruleset name="WordPress Coding Standards based custom ruleset for your plugin">
|
3 |
+
<description>Generally-applicable sniffs for WordPress plugins.</description>
|
4 |
+
|
5 |
+
<!-- What to scan -->
|
6 |
+
<file>.</file>
|
7 |
+
<exclude-pattern>/vendor/</exclude-pattern>
|
8 |
+
<exclude-pattern>/node_modules/</exclude-pattern>
|
9 |
+
<exclude-pattern>tests/bootstrap.php</exclude-pattern>
|
10 |
+
|
11 |
+
<!-- How to scan -->
|
12 |
+
<!-- Usage instructions: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Usage -->
|
13 |
+
<!-- Annotated ruleset: https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-ruleset.xml -->
|
14 |
+
<arg value="sp"/> <!-- Show sniff and progress -->
|
15 |
+
<arg name="colors"/>
|
16 |
+
<arg name="extensions" value="php"/>
|
17 |
+
<arg name="parallel" value="8"/><!-- Enables parallel processing when available for faster results. -->
|
18 |
+
|
19 |
+
<!-- Rules: Check PHP version compatibility -->
|
20 |
+
<!-- https://github.com/PHPCompatibility/PHPCompatibility#sniffing-your-code-for-compatibility-with-specific-php-versions -->
|
21 |
+
<config name="testVersion" value="5.6-"/>
|
22 |
+
<!-- https://github.com/PHPCompatibility/PHPCompatibilityWP -->
|
23 |
+
<rule ref="PHPCompatibilityWP"/>
|
24 |
+
|
25 |
+
<!-- Rules: WordPress Coding Standards -->
|
26 |
+
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards -->
|
27 |
+
<!-- https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/wiki/Customizable-sniff-properties -->
|
28 |
+
<config name="minimum_supported_wp_version" value="4.0"/>
|
29 |
+
<rule ref="WordPress.NamingConventions.PrefixAllGlobals">
|
30 |
+
<properties>
|
31 |
+
<!-- Value: replace the function, class, and variable prefixes used. Separate multiple prefixes with a comma. -->
|
32 |
+
<property name="prefixes" type="array" value="leadin"/>
|
33 |
+
</properties>
|
34 |
+
</rule>
|
35 |
+
<rule ref="WordPress.WP.I18n">
|
36 |
+
<exclude name="WordPress.WP.I18n.MissingTranslatorsComment" />
|
37 |
+
<properties>
|
38 |
+
<!-- Value: replace the text domain used. -->
|
39 |
+
<property name="text_domain" type="array" value="leadin"/>
|
40 |
+
</properties>
|
41 |
+
</rule>
|
42 |
+
<rule ref="WordPress.WhiteSpace.ControlStructureSpacing">
|
43 |
+
<properties>
|
44 |
+
<property name="blank_line_check" value="true"/>
|
45 |
+
</properties>
|
46 |
+
</rule>
|
47 |
+
|
48 |
+
<rule ref="Squiz.Commenting.FileComment.Missing">
|
49 |
+
<exclude name="Squiz.Commenting.FileComment.Missing" />
|
50 |
+
<exclude name="Squiz.Commenting.FileComment.MissingPackageTag" />
|
51 |
+
</rule>
|
52 |
+
</ruleset>
|
admin/class-leadinadmin.php
CHANGED
@@ -142,7 +142,7 @@ class LeadinAdmin {
|
|
142 |
add_submenu_page( 'leadin', __( 'Settings', 'leadin' ), __( 'Settings', 'leadin' ), 'read', 'leadin_settings', array( $this, 'leadin_build_app' ) );
|
143 |
remove_submenu_page( 'leadin', 'leadin' );
|
144 |
} else {
|
145 |
-
add_menu_page( __( 'HubSpot', 'leadin' ), __( 'HubSpot', 'leadin' ) . $notification_icon, '
|
146 |
}
|
147 |
}
|
148 |
|
@@ -251,7 +251,7 @@ class LeadinAdmin {
|
|
251 |
);
|
252 |
|
253 |
wp_register_style( 'leadin-bridge-css', LEADIN_PATH . '/style/leadin-bridge.css?', array(), LEADIN_PLUGIN_VERSION );
|
254 |
-
wp_register_script( 'leadin-js',
|
255 |
wp_localize_script( 'leadin-js', 'leadinConfig', $leadin_config );
|
256 |
wp_localize_script( 'leadin-js', 'leadinI18n', $leadin_i18n );
|
257 |
wp_enqueue_script( 'leadin-js' );
|
142 |
add_submenu_page( 'leadin', __( 'Settings', 'leadin' ), __( 'Settings', 'leadin' ), 'read', 'leadin_settings', array( $this, 'leadin_build_app' ) );
|
143 |
remove_submenu_page( 'leadin', 'leadin' );
|
144 |
} else {
|
145 |
+
add_menu_page( __( 'HubSpot', 'leadin' ), __( 'HubSpot', 'leadin' ) . $notification_icon, 'manage_options', 'leadin', array( $this, 'leadin_build_app' ), 'dashicons-sprocket', '25.100713' );
|
146 |
}
|
147 |
}
|
148 |
|
251 |
);
|
252 |
|
253 |
wp_register_style( 'leadin-bridge-css', LEADIN_PATH . '/style/leadin-bridge.css?', array(), LEADIN_PLUGIN_VERSION );
|
254 |
+
wp_register_script( 'leadin-js', LEADIN_JS_PATH, false, true, true );
|
255 |
wp_localize_script( 'leadin-js', 'leadinConfig', $leadin_config );
|
256 |
wp_localize_script( 'leadin-js', 'leadinI18n', $leadin_i18n );
|
257 |
wp_enqueue_script( 'leadin-js' );
|
bin/install-wp-tests.sh
DELETED
@@ -1,155 +0,0 @@
|
|
1 |
-
#!/usr/bin/env bash
|
2 |
-
|
3 |
-
if [ $# -lt 3 ]; then
|
4 |
-
echo "usage: $0 <db-name> <db-user> <db-pass> [db-host] [wp-version] [skip-database-creation]"
|
5 |
-
exit 1
|
6 |
-
fi
|
7 |
-
|
8 |
-
DB_NAME=$1
|
9 |
-
DB_USER=$2
|
10 |
-
DB_PASS=$3
|
11 |
-
DB_HOST=${4-localhost}
|
12 |
-
WP_VERSION=${5-latest}
|
13 |
-
SKIP_DB_CREATE=${6-false}
|
14 |
-
|
15 |
-
TMPDIR=${TMPDIR-/tmp}
|
16 |
-
TMPDIR=$(echo $TMPDIR | sed -e "s/\/$//")
|
17 |
-
WP_TESTS_DIR=${WP_TESTS_DIR-$TMPDIR/wordpress-tests-lib}
|
18 |
-
WP_CORE_DIR=${WP_CORE_DIR-$TMPDIR/wordpress/}
|
19 |
-
|
20 |
-
download() {
|
21 |
-
if [ `which curl` ]; then
|
22 |
-
curl -s "$1" > "$2";
|
23 |
-
elif [ `which wget` ]; then
|
24 |
-
wget -nv -O "$2" "$1"
|
25 |
-
fi
|
26 |
-
}
|
27 |
-
|
28 |
-
if [[ $WP_VERSION =~ ^[0-9]+\.[0-9]+\-(beta|RC)[0-9]+$ ]]; then
|
29 |
-
WP_BRANCH=${WP_VERSION%\-*}
|
30 |
-
WP_TESTS_TAG="branches/$WP_BRANCH"
|
31 |
-
|
32 |
-
elif [[ $WP_VERSION =~ ^[0-9]+\.[0-9]+$ ]]; then
|
33 |
-
WP_TESTS_TAG="branches/$WP_VERSION"
|
34 |
-
elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0-9]+ ]]; then
|
35 |
-
if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then
|
36 |
-
# version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x
|
37 |
-
WP_TESTS_TAG="tags/${WP_VERSION%??}"
|
38 |
-
else
|
39 |
-
WP_TESTS_TAG="tags/$WP_VERSION"
|
40 |
-
fi
|
41 |
-
elif [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
|
42 |
-
WP_TESTS_TAG="trunk"
|
43 |
-
else
|
44 |
-
# http serves a single offer, whereas https serves multiple. we only want one
|
45 |
-
download http://api.wordpress.org/core/version-check/1.7/ /tmp/wp-latest.json
|
46 |
-
grep '[0-9]+\.[0-9]+(\.[0-9]+)?' /tmp/wp-latest.json
|
47 |
-
LATEST_VERSION=$(grep -o '"version":"[^"]*' /tmp/wp-latest.json | sed 's/"version":"//')
|
48 |
-
if [[ -z "$LATEST_VERSION" ]]; then
|
49 |
-
echo "Latest WordPress version could not be found"
|
50 |
-
exit 1
|
51 |
-
fi
|
52 |
-
WP_TESTS_TAG="tags/$LATEST_VERSION"
|
53 |
-
fi
|
54 |
-
set -ex
|
55 |
-
|
56 |
-
install_wp() {
|
57 |
-
|
58 |
-
if [ -d $WP_CORE_DIR ]; then
|
59 |
-
return;
|
60 |
-
fi
|
61 |
-
|
62 |
-
mkdir -p $WP_CORE_DIR
|
63 |
-
|
64 |
-
if [[ $WP_VERSION == 'nightly' || $WP_VERSION == 'trunk' ]]; then
|
65 |
-
mkdir -p $TMPDIR/wordpress-nightly
|
66 |
-
download https://wordpress.org/nightly-builds/wordpress-latest.zip $TMPDIR/wordpress-nightly/wordpress-nightly.zip
|
67 |
-
unzip -q $TMPDIR/wordpress-nightly/wordpress-nightly.zip -d $TMPDIR/wordpress-nightly/
|
68 |
-
mv $TMPDIR/wordpress-nightly/wordpress/* $WP_CORE_DIR
|
69 |
-
else
|
70 |
-
if [ $WP_VERSION == 'latest' ]; then
|
71 |
-
local ARCHIVE_NAME='latest'
|
72 |
-
elif [[ $WP_VERSION =~ [0-9]+\.[0-9]+ ]]; then
|
73 |
-
# https serves multiple offers, whereas http serves single.
|
74 |
-
download https://api.wordpress.org/core/version-check/1.7/ $TMPDIR/wp-latest.json
|
75 |
-
if [[ $WP_VERSION =~ [0-9]+\.[0-9]+\.[0] ]]; then
|
76 |
-
# version x.x.0 means the first release of the major version, so strip off the .0 and download version x.x
|
77 |
-
LATEST_VERSION=${WP_VERSION%??}
|
78 |
-
else
|
79 |
-
# otherwise, scan the releases and get the most up to date minor version of the major release
|
80 |
-
local VERSION_ESCAPED=`echo $WP_VERSION | sed 's/\./\\\\./g'`
|
81 |
-
LATEST_VERSION=$(grep -o '"version":"'$VERSION_ESCAPED'[^"]*' $TMPDIR/wp-latest.json | sed 's/"version":"//' | head -1)
|
82 |
-
fi
|
83 |
-
if [[ -z "$LATEST_VERSION" ]]; then
|
84 |
-
local ARCHIVE_NAME="wordpress-$WP_VERSION"
|
85 |
-
else
|
86 |
-
local ARCHIVE_NAME="wordpress-$LATEST_VERSION"
|
87 |
-
fi
|
88 |
-
else
|
89 |
-
local ARCHIVE_NAME="wordpress-$WP_VERSION"
|
90 |
-
fi
|
91 |
-
download https://wordpress.org/${ARCHIVE_NAME}.tar.gz $TMPDIR/wordpress.tar.gz
|
92 |
-
tar --strip-components=1 -zxmf $TMPDIR/wordpress.tar.gz -C $WP_CORE_DIR
|
93 |
-
fi
|
94 |
-
|
95 |
-
download https://raw.github.com/markoheijnen/wp-mysqli/master/db.php $WP_CORE_DIR/wp-content/db.php
|
96 |
-
}
|
97 |
-
|
98 |
-
install_test_suite() {
|
99 |
-
# portable in-place argument for both GNU sed and Mac OSX sed
|
100 |
-
if [[ $(uname -s) == 'Darwin' ]]; then
|
101 |
-
local ioption='-i.bak'
|
102 |
-
else
|
103 |
-
local ioption='-i'
|
104 |
-
fi
|
105 |
-
|
106 |
-
# set up testing suite if it doesn't yet exist
|
107 |
-
if [ ! -d $WP_TESTS_DIR ]; then
|
108 |
-
# set up testing suite
|
109 |
-
mkdir -p $WP_TESTS_DIR
|
110 |
-
svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/includes/ $WP_TESTS_DIR/includes
|
111 |
-
svn co --quiet https://develop.svn.wordpress.org/${WP_TESTS_TAG}/tests/phpunit/data/ $WP_TESTS_DIR/data
|
112 |
-
fi
|
113 |
-
|
114 |
-
if [ ! -f wp-tests-config.php ]; then
|
115 |
-
download https://develop.svn.wordpress.org/${WP_TESTS_TAG}/wp-tests-config-sample.php "$WP_TESTS_DIR"/wp-tests-config.php
|
116 |
-
# remove all forward slashes in the end
|
117 |
-
WP_CORE_DIR=$(echo $WP_CORE_DIR | sed "s:/\+$::")
|
118 |
-
sed $ioption "s:dirname( __FILE__ ) . '/src/':'$WP_CORE_DIR/':" "$WP_TESTS_DIR"/wp-tests-config.php
|
119 |
-
sed $ioption "s/youremptytestdbnamehere/$DB_NAME/" "$WP_TESTS_DIR"/wp-tests-config.php
|
120 |
-
sed $ioption "s/yourusernamehere/$DB_USER/" "$WP_TESTS_DIR"/wp-tests-config.php
|
121 |
-
sed $ioption "s/yourpasswordhere/$DB_PASS/" "$WP_TESTS_DIR"/wp-tests-config.php
|
122 |
-
sed $ioption "s|localhost|${DB_HOST}|" "$WP_TESTS_DIR"/wp-tests-config.php
|
123 |
-
fi
|
124 |
-
|
125 |
-
}
|
126 |
-
|
127 |
-
install_db() {
|
128 |
-
|
129 |
-
if [ ${SKIP_DB_CREATE} = "true" ]; then
|
130 |
-
return 0
|
131 |
-
fi
|
132 |
-
|
133 |
-
# parse DB_HOST for port or socket references
|
134 |
-
local PARTS=(${DB_HOST//\:/ })
|
135 |
-
local DB_HOSTNAME=${PARTS[0]};
|
136 |
-
local DB_SOCK_OR_PORT=${PARTS[1]};
|
137 |
-
local EXTRA=""
|
138 |
-
|
139 |
-
if ! [ -z $DB_HOSTNAME ] ; then
|
140 |
-
if [ $(echo $DB_SOCK_OR_PORT | grep -e '^[0-9]\{1,\}$') ]; then
|
141 |
-
EXTRA=" --host=$DB_HOSTNAME --port=$DB_SOCK_OR_PORT --protocol=tcp"
|
142 |
-
elif ! [ -z $DB_SOCK_OR_PORT ] ; then
|
143 |
-
EXTRA=" --socket=$DB_SOCK_OR_PORT"
|
144 |
-
elif ! [ -z $DB_HOSTNAME ] ; then
|
145 |
-
EXTRA=" --host=$DB_HOSTNAME --protocol=tcp"
|
146 |
-
fi
|
147 |
-
fi
|
148 |
-
|
149 |
-
# create database
|
150 |
-
mysqladmin create $DB_NAME --user="$DB_USER" --password="$DB_PASS"$EXTRA
|
151 |
-
}
|
152 |
-
|
153 |
-
install_wp
|
154 |
-
install_test_suite
|
155 |
-
install_db
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
changelog.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
= 7.6.0 (2019.07.19) =
|
2 |
- Remove echo from enqueue_scripts hooks
|
3 |
- Update url on forms dashboard
|
1 |
+
= 7.8.0 (2019.08.08) =
|
2 |
+
- Replace activate_plugins with manage_options
|
3 |
+
- Upgrade wordpress-scripts
|
4 |
+
- Remove tracking code from login page
|
5 |
+
- Added Logo svg for banner
|
6 |
+
|
7 |
= 7.6.0 (2019.07.19) =
|
8 |
- Remove echo from enqueue_scripts hooks
|
9 |
- Update url on forms dashboard
|
composer.json
ADDED
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "hubspot/leadin-wordpress-plugin",
|
3 |
+
"description": "PHP plugin for HubSpot in WordPress",
|
4 |
+
"require-dev": {
|
5 |
+
"phpunit/phpunit": "5.*",
|
6 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
|
7 |
+
"squizlabs/php_codesniffer": "^3.4",
|
8 |
+
"phpcompatibility/phpcompatibility-wp": "^2.0",
|
9 |
+
"wp-coding-standards/wpcs": "^2.1"
|
10 |
+
}
|
11 |
+
}
|
composer.lock
ADDED
@@ -0,0 +1,1729 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"_readme": [
|
3 |
+
"This file locks the dependencies of your project to a known state",
|
4 |
+
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
5 |
+
"This file is @generated automatically"
|
6 |
+
],
|
7 |
+
"content-hash": "ff33a82faffcfb6493422c99cbc509f9",
|
8 |
+
"packages": [],
|
9 |
+
"packages-dev": [
|
10 |
+
{
|
11 |
+
"name": "dealerdirect/phpcodesniffer-composer-installer",
|
12 |
+
"version": "v0.5.0",
|
13 |
+
"source": {
|
14 |
+
"type": "git",
|
15 |
+
"url": "https://github.com/Dealerdirect/phpcodesniffer-composer-installer.git",
|
16 |
+
"reference": "e749410375ff6fb7a040a68878c656c2e610b132"
|
17 |
+
},
|
18 |
+
"dist": {
|
19 |
+
"type": "zip",
|
20 |
+
"url": "https://api.github.com/repos/Dealerdirect/phpcodesniffer-composer-installer/zipball/e749410375ff6fb7a040a68878c656c2e610b132",
|
21 |
+
"reference": "e749410375ff6fb7a040a68878c656c2e610b132",
|
22 |
+
"shasum": ""
|
23 |
+
},
|
24 |
+
"require": {
|
25 |
+
"composer-plugin-api": "^1.0",
|
26 |
+
"php": "^5.3|^7",
|
27 |
+
"squizlabs/php_codesniffer": "^2|^3"
|
28 |
+
},
|
29 |
+
"require-dev": {
|
30 |
+
"composer/composer": "*",
|
31 |
+
"phpcompatibility/php-compatibility": "^9.0",
|
32 |
+
"sensiolabs/security-checker": "^4.1.0"
|
33 |
+
},
|
34 |
+
"type": "composer-plugin",
|
35 |
+
"extra": {
|
36 |
+
"class": "Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\Plugin"
|
37 |
+
},
|
38 |
+
"autoload": {
|
39 |
+
"psr-4": {
|
40 |
+
"Dealerdirect\\Composer\\Plugin\\Installers\\PHPCodeSniffer\\": "src/"
|
41 |
+
}
|
42 |
+
},
|
43 |
+
"notification-url": "https://packagist.org/downloads/",
|
44 |
+
"license": [
|
45 |
+
"MIT"
|
46 |
+
],
|
47 |
+
"authors": [
|
48 |
+
{
|
49 |
+
"name": "Franck Nijhof",
|
50 |
+
"email": "franck.nijhof@dealerdirect.com",
|
51 |
+
"homepage": "http://www.frenck.nl",
|
52 |
+
"role": "Developer / IT Manager"
|
53 |
+
}
|
54 |
+
],
|
55 |
+
"description": "PHP_CodeSniffer Standards Composer Installer Plugin",
|
56 |
+
"homepage": "http://www.dealerdirect.com",
|
57 |
+
"keywords": [
|
58 |
+
"PHPCodeSniffer",
|
59 |
+
"PHP_CodeSniffer",
|
60 |
+
"code quality",
|
61 |
+
"codesniffer",
|
62 |
+
"composer",
|
63 |
+
"installer",
|
64 |
+
"phpcs",
|
65 |
+
"plugin",
|
66 |
+
"qa",
|
67 |
+
"quality",
|
68 |
+
"standard",
|
69 |
+
"standards",
|
70 |
+
"style guide",
|
71 |
+
"stylecheck",
|
72 |
+
"tests"
|
73 |
+
],
|
74 |
+
"time": "2018-10-26T13:21:45+00:00"
|
75 |
+
},
|
76 |
+
{
|
77 |
+
"name": "doctrine/instantiator",
|
78 |
+
"version": "1.2.0",
|
79 |
+
"source": {
|
80 |
+
"type": "git",
|
81 |
+
"url": "https://github.com/doctrine/instantiator.git",
|
82 |
+
"reference": "a2c590166b2133a4633738648b6b064edae0814a"
|
83 |
+
},
|
84 |
+
"dist": {
|
85 |
+
"type": "zip",
|
86 |
+
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a",
|
87 |
+
"reference": "a2c590166b2133a4633738648b6b064edae0814a",
|
88 |
+
"shasum": ""
|
89 |
+
},
|
90 |
+
"require": {
|
91 |
+
"php": "^7.1"
|
92 |
+
},
|
93 |
+
"require-dev": {
|
94 |
+
"doctrine/coding-standard": "^6.0",
|
95 |
+
"ext-pdo": "*",
|
96 |
+
"ext-phar": "*",
|
97 |
+
"phpbench/phpbench": "^0.13",
|
98 |
+
"phpstan/phpstan-phpunit": "^0.11",
|
99 |
+
"phpstan/phpstan-shim": "^0.11",
|
100 |
+
"phpunit/phpunit": "^7.0"
|
101 |
+
},
|
102 |
+
"type": "library",
|
103 |
+
"extra": {
|
104 |
+
"branch-alias": {
|
105 |
+
"dev-master": "1.2.x-dev"
|
106 |
+
}
|
107 |
+
},
|
108 |
+
"autoload": {
|
109 |
+
"psr-4": {
|
110 |
+
"Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
|
111 |
+
}
|
112 |
+
},
|
113 |
+
"notification-url": "https://packagist.org/downloads/",
|
114 |
+
"license": [
|
115 |
+
"MIT"
|
116 |
+
],
|
117 |
+
"authors": [
|
118 |
+
{
|
119 |
+
"name": "Marco Pivetta",
|
120 |
+
"email": "ocramius@gmail.com",
|
121 |
+
"homepage": "http://ocramius.github.com/"
|
122 |
+
}
|
123 |
+
],
|
124 |
+
"description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
|
125 |
+
"homepage": "https://www.doctrine-project.org/projects/instantiator.html",
|
126 |
+
"keywords": [
|
127 |
+
"constructor",
|
128 |
+
"instantiate"
|
129 |
+
],
|
130 |
+
"time": "2019-03-17T17:37:11+00:00"
|
131 |
+
},
|
132 |
+
{
|
133 |
+
"name": "myclabs/deep-copy",
|
134 |
+
"version": "1.9.1",
|
135 |
+
"source": {
|
136 |
+
"type": "git",
|
137 |
+
"url": "https://github.com/myclabs/DeepCopy.git",
|
138 |
+
"reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72"
|
139 |
+
},
|
140 |
+
"dist": {
|
141 |
+
"type": "zip",
|
142 |
+
"url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72",
|
143 |
+
"reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72",
|
144 |
+
"shasum": ""
|
145 |
+
},
|
146 |
+
"require": {
|
147 |
+
"php": "^7.1"
|
148 |
+
},
|
149 |
+
"replace": {
|
150 |
+
"myclabs/deep-copy": "self.version"
|
151 |
+
},
|
152 |
+
"require-dev": {
|
153 |
+
"doctrine/collections": "^1.0",
|
154 |
+
"doctrine/common": "^2.6",
|
155 |
+
"phpunit/phpunit": "^7.1"
|
156 |
+
},
|
157 |
+
"type": "library",
|
158 |
+
"autoload": {
|
159 |
+
"psr-4": {
|
160 |
+
"DeepCopy\\": "src/DeepCopy/"
|
161 |
+
},
|
162 |
+
"files": [
|
163 |
+
"src/DeepCopy/deep_copy.php"
|
164 |
+
]
|
165 |
+
},
|
166 |
+
"notification-url": "https://packagist.org/downloads/",
|
167 |
+
"license": [
|
168 |
+
"MIT"
|
169 |
+
],
|
170 |
+
"description": "Create deep copies (clones) of your objects",
|
171 |
+
"keywords": [
|
172 |
+
"clone",
|
173 |
+
"copy",
|
174 |
+
"duplicate",
|
175 |
+
"object",
|
176 |
+
"object graph"
|
177 |
+
],
|
178 |
+
"time": "2019-04-07T13:18:21+00:00"
|
179 |
+
},
|
180 |
+
{
|
181 |
+
"name": "phpcompatibility/php-compatibility",
|
182 |
+
"version": "9.2.0",
|
183 |
+
"source": {
|
184 |
+
"type": "git",
|
185 |
+
"url": "https://github.com/PHPCompatibility/PHPCompatibility.git",
|
186 |
+
"reference": "3db1bf1e28123fd574a4ae2e9a84072826d51b5e"
|
187 |
+
},
|
188 |
+
"dist": {
|
189 |
+
"type": "zip",
|
190 |
+
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibility/zipball/3db1bf1e28123fd574a4ae2e9a84072826d51b5e",
|
191 |
+
"reference": "3db1bf1e28123fd574a4ae2e9a84072826d51b5e",
|
192 |
+
"shasum": ""
|
193 |
+
},
|
194 |
+
"require": {
|
195 |
+
"php": ">=5.3",
|
196 |
+
"squizlabs/php_codesniffer": "^2.3 || ^3.0.2"
|
197 |
+
},
|
198 |
+
"conflict": {
|
199 |
+
"squizlabs/php_codesniffer": "2.6.2"
|
200 |
+
},
|
201 |
+
"require-dev": {
|
202 |
+
"phpunit/phpunit": "~4.5 || ^5.0 || ^6.0 || ^7.0"
|
203 |
+
},
|
204 |
+
"suggest": {
|
205 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.5 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically.",
|
206 |
+
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
207 |
+
},
|
208 |
+
"type": "phpcodesniffer-standard",
|
209 |
+
"notification-url": "https://packagist.org/downloads/",
|
210 |
+
"license": [
|
211 |
+
"LGPL-3.0-or-later"
|
212 |
+
],
|
213 |
+
"authors": [
|
214 |
+
{
|
215 |
+
"name": "Contributors",
|
216 |
+
"homepage": "https://github.com/PHPCompatibility/PHPCompatibility/graphs/contributors"
|
217 |
+
},
|
218 |
+
{
|
219 |
+
"name": "Wim Godden",
|
220 |
+
"role": "lead",
|
221 |
+
"homepage": "https://github.com/wimg"
|
222 |
+
},
|
223 |
+
{
|
224 |
+
"name": "Juliette Reinders Folmer",
|
225 |
+
"role": "lead",
|
226 |
+
"homepage": "https://github.com/jrfnl"
|
227 |
+
}
|
228 |
+
],
|
229 |
+
"description": "A set of sniffs for PHP_CodeSniffer that checks for PHP cross-version compatibility.",
|
230 |
+
"homepage": "http://techblog.wimgodden.be/tag/codesniffer/",
|
231 |
+
"keywords": [
|
232 |
+
"compatibility",
|
233 |
+
"phpcs",
|
234 |
+
"standards"
|
235 |
+
],
|
236 |
+
"time": "2019-06-27T19:58:56+00:00"
|
237 |
+
},
|
238 |
+
{
|
239 |
+
"name": "phpcompatibility/phpcompatibility-paragonie",
|
240 |
+
"version": "1.0.1",
|
241 |
+
"source": {
|
242 |
+
"type": "git",
|
243 |
+
"url": "https://github.com/PHPCompatibility/PHPCompatibilityParagonie.git",
|
244 |
+
"reference": "9160de79fcd683b5c99e9c4133728d91529753ea"
|
245 |
+
},
|
246 |
+
"dist": {
|
247 |
+
"type": "zip",
|
248 |
+
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityParagonie/zipball/9160de79fcd683b5c99e9c4133728d91529753ea",
|
249 |
+
"reference": "9160de79fcd683b5c99e9c4133728d91529753ea",
|
250 |
+
"shasum": ""
|
251 |
+
},
|
252 |
+
"require": {
|
253 |
+
"phpcompatibility/php-compatibility": "^9.0"
|
254 |
+
},
|
255 |
+
"require-dev": {
|
256 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.4"
|
257 |
+
},
|
258 |
+
"suggest": {
|
259 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.4 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
|
260 |
+
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
261 |
+
},
|
262 |
+
"type": "phpcodesniffer-standard",
|
263 |
+
"notification-url": "https://packagist.org/downloads/",
|
264 |
+
"license": [
|
265 |
+
"LGPL-3.0-or-later"
|
266 |
+
],
|
267 |
+
"authors": [
|
268 |
+
{
|
269 |
+
"name": "Wim Godden",
|
270 |
+
"role": "lead"
|
271 |
+
},
|
272 |
+
{
|
273 |
+
"name": "Juliette Reinders Folmer",
|
274 |
+
"role": "lead"
|
275 |
+
}
|
276 |
+
],
|
277 |
+
"description": "A set of rulesets for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by the Paragonie polyfill libraries.",
|
278 |
+
"homepage": "http://phpcompatibility.com/",
|
279 |
+
"keywords": [
|
280 |
+
"compatibility",
|
281 |
+
"paragonie",
|
282 |
+
"phpcs",
|
283 |
+
"polyfill",
|
284 |
+
"standards"
|
285 |
+
],
|
286 |
+
"time": "2018-12-16T19:10:44+00:00"
|
287 |
+
},
|
288 |
+
{
|
289 |
+
"name": "phpcompatibility/phpcompatibility-wp",
|
290 |
+
"version": "2.0.0",
|
291 |
+
"source": {
|
292 |
+
"type": "git",
|
293 |
+
"url": "https://github.com/PHPCompatibility/PHPCompatibilityWP.git",
|
294 |
+
"reference": "cb303f0067cd5b366a41d4fb0e254fb40ff02efd"
|
295 |
+
},
|
296 |
+
"dist": {
|
297 |
+
"type": "zip",
|
298 |
+
"url": "https://api.github.com/repos/PHPCompatibility/PHPCompatibilityWP/zipball/cb303f0067cd5b366a41d4fb0e254fb40ff02efd",
|
299 |
+
"reference": "cb303f0067cd5b366a41d4fb0e254fb40ff02efd",
|
300 |
+
"shasum": ""
|
301 |
+
},
|
302 |
+
"require": {
|
303 |
+
"phpcompatibility/php-compatibility": "^9.0",
|
304 |
+
"phpcompatibility/phpcompatibility-paragonie": "^1.0"
|
305 |
+
},
|
306 |
+
"require-dev": {
|
307 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3"
|
308 |
+
},
|
309 |
+
"suggest": {
|
310 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.4.3 || This Composer plugin will sort out the PHP_CodeSniffer 'installed_paths' automatically.",
|
311 |
+
"roave/security-advisories": "dev-master || Helps prevent installing dependencies with known security issues."
|
312 |
+
},
|
313 |
+
"type": "phpcodesniffer-standard",
|
314 |
+
"notification-url": "https://packagist.org/downloads/",
|
315 |
+
"license": [
|
316 |
+
"LGPL-3.0-or-later"
|
317 |
+
],
|
318 |
+
"authors": [
|
319 |
+
{
|
320 |
+
"name": "Wim Godden",
|
321 |
+
"role": "lead"
|
322 |
+
},
|
323 |
+
{
|
324 |
+
"name": "Juliette Reinders Folmer",
|
325 |
+
"role": "lead"
|
326 |
+
}
|
327 |
+
],
|
328 |
+
"description": "A ruleset for PHP_CodeSniffer to check for PHP cross-version compatibility issues in projects, while accounting for polyfills provided by WordPress.",
|
329 |
+
"homepage": "http://phpcompatibility.com/",
|
330 |
+
"keywords": [
|
331 |
+
"compatibility",
|
332 |
+
"phpcs",
|
333 |
+
"standards",
|
334 |
+
"wordpress"
|
335 |
+
],
|
336 |
+
"time": "2018-10-07T18:31:37+00:00"
|
337 |
+
},
|
338 |
+
{
|
339 |
+
"name": "phpdocumentor/reflection-common",
|
340 |
+
"version": "1.0.1",
|
341 |
+
"source": {
|
342 |
+
"type": "git",
|
343 |
+
"url": "https://github.com/phpDocumentor/ReflectionCommon.git",
|
344 |
+
"reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6"
|
345 |
+
},
|
346 |
+
"dist": {
|
347 |
+
"type": "zip",
|
348 |
+
"url": "https://api.github.com/repos/phpDocumentor/ReflectionCommon/zipball/21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
|
349 |
+
"reference": "21bdeb5f65d7ebf9f43b1b25d404f87deab5bfb6",
|
350 |
+
"shasum": ""
|
351 |
+
},
|
352 |
+
"require": {
|
353 |
+
"php": ">=5.5"
|
354 |
+
},
|
355 |
+
"require-dev": {
|
356 |
+
"phpunit/phpunit": "^4.6"
|
357 |
+
},
|
358 |
+
"type": "library",
|
359 |
+
"extra": {
|
360 |
+
"branch-alias": {
|
361 |
+
"dev-master": "1.0.x-dev"
|
362 |
+
}
|
363 |
+
},
|
364 |
+
"autoload": {
|
365 |
+
"psr-4": {
|
366 |
+
"phpDocumentor\\Reflection\\": [
|
367 |
+
"src"
|
368 |
+
]
|
369 |
+
}
|
370 |
+
},
|
371 |
+
"notification-url": "https://packagist.org/downloads/",
|
372 |
+
"license": [
|
373 |
+
"MIT"
|
374 |
+
],
|
375 |
+
"authors": [
|
376 |
+
{
|
377 |
+
"name": "Jaap van Otterdijk",
|
378 |
+
"email": "opensource@ijaap.nl"
|
379 |
+
}
|
380 |
+
],
|
381 |
+
"description": "Common reflection classes used by phpdocumentor to reflect the code structure",
|
382 |
+
"homepage": "http://www.phpdoc.org",
|
383 |
+
"keywords": [
|
384 |
+
"FQSEN",
|
385 |
+
"phpDocumentor",
|
386 |
+
"phpdoc",
|
387 |
+
"reflection",
|
388 |
+
"static analysis"
|
389 |
+
],
|
390 |
+
"time": "2017-09-11T18:02:19+00:00"
|
391 |
+
},
|
392 |
+
{
|
393 |
+
"name": "phpdocumentor/reflection-docblock",
|
394 |
+
"version": "4.3.1",
|
395 |
+
"source": {
|
396 |
+
"type": "git",
|
397 |
+
"url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
|
398 |
+
"reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c"
|
399 |
+
},
|
400 |
+
"dist": {
|
401 |
+
"type": "zip",
|
402 |
+
"url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
|
403 |
+
"reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c",
|
404 |
+
"shasum": ""
|
405 |
+
},
|
406 |
+
"require": {
|
407 |
+
"php": "^7.0",
|
408 |
+
"phpdocumentor/reflection-common": "^1.0.0",
|
409 |
+
"phpdocumentor/type-resolver": "^0.4.0",
|
410 |
+
"webmozart/assert": "^1.0"
|
411 |
+
},
|
412 |
+
"require-dev": {
|
413 |
+
"doctrine/instantiator": "~1.0.5",
|
414 |
+
"mockery/mockery": "^1.0",
|
415 |
+
"phpunit/phpunit": "^6.4"
|
416 |
+
},
|
417 |
+
"type": "library",
|
418 |
+
"extra": {
|
419 |
+
"branch-alias": {
|
420 |
+
"dev-master": "4.x-dev"
|
421 |
+
}
|
422 |
+
},
|
423 |
+
"autoload": {
|
424 |
+
"psr-4": {
|
425 |
+
"phpDocumentor\\Reflection\\": [
|
426 |
+
"src/"
|
427 |
+
]
|
428 |
+
}
|
429 |
+
},
|
430 |
+
"notification-url": "https://packagist.org/downloads/",
|
431 |
+
"license": [
|
432 |
+
"MIT"
|
433 |
+
],
|
434 |
+
"authors": [
|
435 |
+
{
|
436 |
+
"name": "Mike van Riel",
|
437 |
+
"email": "me@mikevanriel.com"
|
438 |
+
}
|
439 |
+
],
|
440 |
+
"description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.",
|
441 |
+
"time": "2019-04-30T17:48:53+00:00"
|
442 |
+
},
|
443 |
+
{
|
444 |
+
"name": "phpdocumentor/type-resolver",
|
445 |
+
"version": "0.4.0",
|
446 |
+
"source": {
|
447 |
+
"type": "git",
|
448 |
+
"url": "https://github.com/phpDocumentor/TypeResolver.git",
|
449 |
+
"reference": "9c977708995954784726e25d0cd1dddf4e65b0f7"
|
450 |
+
},
|
451 |
+
"dist": {
|
452 |
+
"type": "zip",
|
453 |
+
"url": "https://api.github.com/repos/phpDocumentor/TypeResolver/zipball/9c977708995954784726e25d0cd1dddf4e65b0f7",
|
454 |
+
"reference": "9c977708995954784726e25d0cd1dddf4e65b0f7",
|
455 |
+
"shasum": ""
|
456 |
+
},
|
457 |
+
"require": {
|
458 |
+
"php": "^5.5 || ^7.0",
|
459 |
+
"phpdocumentor/reflection-common": "^1.0"
|
460 |
+
},
|
461 |
+
"require-dev": {
|
462 |
+
"mockery/mockery": "^0.9.4",
|
463 |
+
"phpunit/phpunit": "^5.2||^4.8.24"
|
464 |
+
},
|
465 |
+
"type": "library",
|
466 |
+
"extra": {
|
467 |
+
"branch-alias": {
|
468 |
+
"dev-master": "1.0.x-dev"
|
469 |
+
}
|
470 |
+
},
|
471 |
+
"autoload": {
|
472 |
+
"psr-4": {
|
473 |
+
"phpDocumentor\\Reflection\\": [
|
474 |
+
"src/"
|
475 |
+
]
|
476 |
+
}
|
477 |
+
},
|
478 |
+
"notification-url": "https://packagist.org/downloads/",
|
479 |
+
"license": [
|
480 |
+
"MIT"
|
481 |
+
],
|
482 |
+
"authors": [
|
483 |
+
{
|
484 |
+
"name": "Mike van Riel",
|
485 |
+
"email": "me@mikevanriel.com"
|
486 |
+
}
|
487 |
+
],
|
488 |
+
"time": "2017-07-14T14:27:02+00:00"
|
489 |
+
},
|
490 |
+
{
|
491 |
+
"name": "phpspec/prophecy",
|
492 |
+
"version": "1.8.1",
|
493 |
+
"source": {
|
494 |
+
"type": "git",
|
495 |
+
"url": "https://github.com/phpspec/prophecy.git",
|
496 |
+
"reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76"
|
497 |
+
},
|
498 |
+
"dist": {
|
499 |
+
"type": "zip",
|
500 |
+
"url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
|
501 |
+
"reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76",
|
502 |
+
"shasum": ""
|
503 |
+
},
|
504 |
+
"require": {
|
505 |
+
"doctrine/instantiator": "^1.0.2",
|
506 |
+
"php": "^5.3|^7.0",
|
507 |
+
"phpdocumentor/reflection-docblock": "^2.0|^3.0.2|^4.0",
|
508 |
+
"sebastian/comparator": "^1.1|^2.0|^3.0",
|
509 |
+
"sebastian/recursion-context": "^1.0|^2.0|^3.0"
|
510 |
+
},
|
511 |
+
"require-dev": {
|
512 |
+
"phpspec/phpspec": "^2.5|^3.2",
|
513 |
+
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.5 || ^7.1"
|
514 |
+
},
|
515 |
+
"type": "library",
|
516 |
+
"extra": {
|
517 |
+
"branch-alias": {
|
518 |
+
"dev-master": "1.8.x-dev"
|
519 |
+
}
|
520 |
+
},
|
521 |
+
"autoload": {
|
522 |
+
"psr-4": {
|
523 |
+
"Prophecy\\": "src/Prophecy"
|
524 |
+
}
|
525 |
+
},
|
526 |
+
"notification-url": "https://packagist.org/downloads/",
|
527 |
+
"license": [
|
528 |
+
"MIT"
|
529 |
+
],
|
530 |
+
"authors": [
|
531 |
+
{
|
532 |
+
"name": "Konstantin Kudryashov",
|
533 |
+
"email": "ever.zet@gmail.com",
|
534 |
+
"homepage": "http://everzet.com"
|
535 |
+
},
|
536 |
+
{
|
537 |
+
"name": "Marcello Duarte",
|
538 |
+
"email": "marcello.duarte@gmail.com"
|
539 |
+
}
|
540 |
+
],
|
541 |
+
"description": "Highly opinionated mocking framework for PHP 5.3+",
|
542 |
+
"homepage": "https://github.com/phpspec/prophecy",
|
543 |
+
"keywords": [
|
544 |
+
"Double",
|
545 |
+
"Dummy",
|
546 |
+
"fake",
|
547 |
+
"mock",
|
548 |
+
"spy",
|
549 |
+
"stub"
|
550 |
+
],
|
551 |
+
"time": "2019-06-13T12:50:23+00:00"
|
552 |
+
},
|
553 |
+
{
|
554 |
+
"name": "phpunit/php-code-coverage",
|
555 |
+
"version": "4.0.8",
|
556 |
+
"source": {
|
557 |
+
"type": "git",
|
558 |
+
"url": "https://github.com/sebastianbergmann/php-code-coverage.git",
|
559 |
+
"reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d"
|
560 |
+
},
|
561 |
+
"dist": {
|
562 |
+
"type": "zip",
|
563 |
+
"url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
|
564 |
+
"reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d",
|
565 |
+
"shasum": ""
|
566 |
+
},
|
567 |
+
"require": {
|
568 |
+
"ext-dom": "*",
|
569 |
+
"ext-xmlwriter": "*",
|
570 |
+
"php": "^5.6 || ^7.0",
|
571 |
+
"phpunit/php-file-iterator": "^1.3",
|
572 |
+
"phpunit/php-text-template": "^1.2",
|
573 |
+
"phpunit/php-token-stream": "^1.4.2 || ^2.0",
|
574 |
+
"sebastian/code-unit-reverse-lookup": "^1.0",
|
575 |
+
"sebastian/environment": "^1.3.2 || ^2.0",
|
576 |
+
"sebastian/version": "^1.0 || ^2.0"
|
577 |
+
},
|
578 |
+
"require-dev": {
|
579 |
+
"ext-xdebug": "^2.1.4",
|
580 |
+
"phpunit/phpunit": "^5.7"
|
581 |
+
},
|
582 |
+
"suggest": {
|
583 |
+
"ext-xdebug": "^2.5.1"
|
584 |
+
},
|
585 |
+
"type": "library",
|
586 |
+
"extra": {
|
587 |
+
"branch-alias": {
|
588 |
+
"dev-master": "4.0.x-dev"
|
589 |
+
}
|
590 |
+
},
|
591 |
+
"autoload": {
|
592 |
+
"classmap": [
|
593 |
+
"src/"
|
594 |
+
]
|
595 |
+
},
|
596 |
+
"notification-url": "https://packagist.org/downloads/",
|
597 |
+
"license": [
|
598 |
+
"BSD-3-Clause"
|
599 |
+
],
|
600 |
+
"authors": [
|
601 |
+
{
|
602 |
+
"name": "Sebastian Bergmann",
|
603 |
+
"email": "sb@sebastian-bergmann.de",
|
604 |
+
"role": "lead"
|
605 |
+
}
|
606 |
+
],
|
607 |
+
"description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
|
608 |
+
"homepage": "https://github.com/sebastianbergmann/php-code-coverage",
|
609 |
+
"keywords": [
|
610 |
+
"coverage",
|
611 |
+
"testing",
|
612 |
+
"xunit"
|
613 |
+
],
|
614 |
+
"time": "2017-04-02T07:44:40+00:00"
|
615 |
+
},
|
616 |
+
{
|
617 |
+
"name": "phpunit/php-file-iterator",
|
618 |
+
"version": "1.4.5",
|
619 |
+
"source": {
|
620 |
+
"type": "git",
|
621 |
+
"url": "https://github.com/sebastianbergmann/php-file-iterator.git",
|
622 |
+
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4"
|
623 |
+
},
|
624 |
+
"dist": {
|
625 |
+
"type": "zip",
|
626 |
+
"url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
627 |
+
"reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4",
|
628 |
+
"shasum": ""
|
629 |
+
},
|
630 |
+
"require": {
|
631 |
+
"php": ">=5.3.3"
|
632 |
+
},
|
633 |
+
"type": "library",
|
634 |
+
"extra": {
|
635 |
+
"branch-alias": {
|
636 |
+
"dev-master": "1.4.x-dev"
|
637 |
+
}
|
638 |
+
},
|
639 |
+
"autoload": {
|
640 |
+
"classmap": [
|
641 |
+
"src/"
|
642 |
+
]
|
643 |
+
},
|
644 |
+
"notification-url": "https://packagist.org/downloads/",
|
645 |
+
"license": [
|
646 |
+
"BSD-3-Clause"
|
647 |
+
],
|
648 |
+
"authors": [
|
649 |
+
{
|
650 |
+
"name": "Sebastian Bergmann",
|
651 |
+
"email": "sb@sebastian-bergmann.de",
|
652 |
+
"role": "lead"
|
653 |
+
}
|
654 |
+
],
|
655 |
+
"description": "FilterIterator implementation that filters files based on a list of suffixes.",
|
656 |
+
"homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
|
657 |
+
"keywords": [
|
658 |
+
"filesystem",
|
659 |
+
"iterator"
|
660 |
+
],
|
661 |
+
"time": "2017-11-27T13:52:08+00:00"
|
662 |
+
},
|
663 |
+
{
|
664 |
+
"name": "phpunit/php-text-template",
|
665 |
+
"version": "1.2.1",
|
666 |
+
"source": {
|
667 |
+
"type": "git",
|
668 |
+
"url": "https://github.com/sebastianbergmann/php-text-template.git",
|
669 |
+
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
|
670 |
+
},
|
671 |
+
"dist": {
|
672 |
+
"type": "zip",
|
673 |
+
"url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
674 |
+
"reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
|
675 |
+
"shasum": ""
|
676 |
+
},
|
677 |
+
"require": {
|
678 |
+
"php": ">=5.3.3"
|
679 |
+
},
|
680 |
+
"type": "library",
|
681 |
+
"autoload": {
|
682 |
+
"classmap": [
|
683 |
+
"src/"
|
684 |
+
]
|
685 |
+
},
|
686 |
+
"notification-url": "https://packagist.org/downloads/",
|
687 |
+
"license": [
|
688 |
+
"BSD-3-Clause"
|
689 |
+
],
|
690 |
+
"authors": [
|
691 |
+
{
|
692 |
+
"name": "Sebastian Bergmann",
|
693 |
+
"email": "sebastian@phpunit.de",
|
694 |
+
"role": "lead"
|
695 |
+
}
|
696 |
+
],
|
697 |
+
"description": "Simple template engine.",
|
698 |
+
"homepage": "https://github.com/sebastianbergmann/php-text-template/",
|
699 |
+
"keywords": [
|
700 |
+
"template"
|
701 |
+
],
|
702 |
+
"time": "2015-06-21T13:50:34+00:00"
|
703 |
+
},
|
704 |
+
{
|
705 |
+
"name": "phpunit/php-timer",
|
706 |
+
"version": "1.0.9",
|
707 |
+
"source": {
|
708 |
+
"type": "git",
|
709 |
+
"url": "https://github.com/sebastianbergmann/php-timer.git",
|
710 |
+
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f"
|
711 |
+
},
|
712 |
+
"dist": {
|
713 |
+
"type": "zip",
|
714 |
+
"url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
715 |
+
"reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f",
|
716 |
+
"shasum": ""
|
717 |
+
},
|
718 |
+
"require": {
|
719 |
+
"php": "^5.3.3 || ^7.0"
|
720 |
+
},
|
721 |
+
"require-dev": {
|
722 |
+
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
723 |
+
},
|
724 |
+
"type": "library",
|
725 |
+
"extra": {
|
726 |
+
"branch-alias": {
|
727 |
+
"dev-master": "1.0-dev"
|
728 |
+
}
|
729 |
+
},
|
730 |
+
"autoload": {
|
731 |
+
"classmap": [
|
732 |
+
"src/"
|
733 |
+
]
|
734 |
+
},
|
735 |
+
"notification-url": "https://packagist.org/downloads/",
|
736 |
+
"license": [
|
737 |
+
"BSD-3-Clause"
|
738 |
+
],
|
739 |
+
"authors": [
|
740 |
+
{
|
741 |
+
"name": "Sebastian Bergmann",
|
742 |
+
"email": "sb@sebastian-bergmann.de",
|
743 |
+
"role": "lead"
|
744 |
+
}
|
745 |
+
],
|
746 |
+
"description": "Utility class for timing",
|
747 |
+
"homepage": "https://github.com/sebastianbergmann/php-timer/",
|
748 |
+
"keywords": [
|
749 |
+
"timer"
|
750 |
+
],
|
751 |
+
"time": "2017-02-26T11:10:40+00:00"
|
752 |
+
},
|
753 |
+
{
|
754 |
+
"name": "phpunit/php-token-stream",
|
755 |
+
"version": "2.0.2",
|
756 |
+
"source": {
|
757 |
+
"type": "git",
|
758 |
+
"url": "https://github.com/sebastianbergmann/php-token-stream.git",
|
759 |
+
"reference": "791198a2c6254db10131eecfe8c06670700904db"
|
760 |
+
},
|
761 |
+
"dist": {
|
762 |
+
"type": "zip",
|
763 |
+
"url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/791198a2c6254db10131eecfe8c06670700904db",
|
764 |
+
"reference": "791198a2c6254db10131eecfe8c06670700904db",
|
765 |
+
"shasum": ""
|
766 |
+
},
|
767 |
+
"require": {
|
768 |
+
"ext-tokenizer": "*",
|
769 |
+
"php": "^7.0"
|
770 |
+
},
|
771 |
+
"require-dev": {
|
772 |
+
"phpunit/phpunit": "^6.2.4"
|
773 |
+
},
|
774 |
+
"type": "library",
|
775 |
+
"extra": {
|
776 |
+
"branch-alias": {
|
777 |
+
"dev-master": "2.0-dev"
|
778 |
+
}
|
779 |
+
},
|
780 |
+
"autoload": {
|
781 |
+
"classmap": [
|
782 |
+
"src/"
|
783 |
+
]
|
784 |
+
},
|
785 |
+
"notification-url": "https://packagist.org/downloads/",
|
786 |
+
"license": [
|
787 |
+
"BSD-3-Clause"
|
788 |
+
],
|
789 |
+
"authors": [
|
790 |
+
{
|
791 |
+
"name": "Sebastian Bergmann",
|
792 |
+
"email": "sebastian@phpunit.de"
|
793 |
+
}
|
794 |
+
],
|
795 |
+
"description": "Wrapper around PHP's tokenizer extension.",
|
796 |
+
"homepage": "https://github.com/sebastianbergmann/php-token-stream/",
|
797 |
+
"keywords": [
|
798 |
+
"tokenizer"
|
799 |
+
],
|
800 |
+
"time": "2017-11-27T05:48:46+00:00"
|
801 |
+
},
|
802 |
+
{
|
803 |
+
"name": "phpunit/phpunit",
|
804 |
+
"version": "5.7.27",
|
805 |
+
"source": {
|
806 |
+
"type": "git",
|
807 |
+
"url": "https://github.com/sebastianbergmann/phpunit.git",
|
808 |
+
"reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c"
|
809 |
+
},
|
810 |
+
"dist": {
|
811 |
+
"type": "zip",
|
812 |
+
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
|
813 |
+
"reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c",
|
814 |
+
"shasum": ""
|
815 |
+
},
|
816 |
+
"require": {
|
817 |
+
"ext-dom": "*",
|
818 |
+
"ext-json": "*",
|
819 |
+
"ext-libxml": "*",
|
820 |
+
"ext-mbstring": "*",
|
821 |
+
"ext-xml": "*",
|
822 |
+
"myclabs/deep-copy": "~1.3",
|
823 |
+
"php": "^5.6 || ^7.0",
|
824 |
+
"phpspec/prophecy": "^1.6.2",
|
825 |
+
"phpunit/php-code-coverage": "^4.0.4",
|
826 |
+
"phpunit/php-file-iterator": "~1.4",
|
827 |
+
"phpunit/php-text-template": "~1.2",
|
828 |
+
"phpunit/php-timer": "^1.0.6",
|
829 |
+
"phpunit/phpunit-mock-objects": "^3.2",
|
830 |
+
"sebastian/comparator": "^1.2.4",
|
831 |
+
"sebastian/diff": "^1.4.3",
|
832 |
+
"sebastian/environment": "^1.3.4 || ^2.0",
|
833 |
+
"sebastian/exporter": "~2.0",
|
834 |
+
"sebastian/global-state": "^1.1",
|
835 |
+
"sebastian/object-enumerator": "~2.0",
|
836 |
+
"sebastian/resource-operations": "~1.0",
|
837 |
+
"sebastian/version": "^1.0.6|^2.0.1",
|
838 |
+
"symfony/yaml": "~2.1|~3.0|~4.0"
|
839 |
+
},
|
840 |
+
"conflict": {
|
841 |
+
"phpdocumentor/reflection-docblock": "3.0.2"
|
842 |
+
},
|
843 |
+
"require-dev": {
|
844 |
+
"ext-pdo": "*"
|
845 |
+
},
|
846 |
+
"suggest": {
|
847 |
+
"ext-xdebug": "*",
|
848 |
+
"phpunit/php-invoker": "~1.1"
|
849 |
+
},
|
850 |
+
"bin": [
|
851 |
+
"phpunit"
|
852 |
+
],
|
853 |
+
"type": "library",
|
854 |
+
"extra": {
|
855 |
+
"branch-alias": {
|
856 |
+
"dev-master": "5.7.x-dev"
|
857 |
+
}
|
858 |
+
},
|
859 |
+
"autoload": {
|
860 |
+
"classmap": [
|
861 |
+
"src/"
|
862 |
+
]
|
863 |
+
},
|
864 |
+
"notification-url": "https://packagist.org/downloads/",
|
865 |
+
"license": [
|
866 |
+
"BSD-3-Clause"
|
867 |
+
],
|
868 |
+
"authors": [
|
869 |
+
{
|
870 |
+
"name": "Sebastian Bergmann",
|
871 |
+
"email": "sebastian@phpunit.de",
|
872 |
+
"role": "lead"
|
873 |
+
}
|
874 |
+
],
|
875 |
+
"description": "The PHP Unit Testing framework.",
|
876 |
+
"homepage": "https://phpunit.de/",
|
877 |
+
"keywords": [
|
878 |
+
"phpunit",
|
879 |
+
"testing",
|
880 |
+
"xunit"
|
881 |
+
],
|
882 |
+
"time": "2018-02-01T05:50:59+00:00"
|
883 |
+
},
|
884 |
+
{
|
885 |
+
"name": "phpunit/phpunit-mock-objects",
|
886 |
+
"version": "3.4.4",
|
887 |
+
"source": {
|
888 |
+
"type": "git",
|
889 |
+
"url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
|
890 |
+
"reference": "a23b761686d50a560cc56233b9ecf49597cc9118"
|
891 |
+
},
|
892 |
+
"dist": {
|
893 |
+
"type": "zip",
|
894 |
+
"url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118",
|
895 |
+
"reference": "a23b761686d50a560cc56233b9ecf49597cc9118",
|
896 |
+
"shasum": ""
|
897 |
+
},
|
898 |
+
"require": {
|
899 |
+
"doctrine/instantiator": "^1.0.2",
|
900 |
+
"php": "^5.6 || ^7.0",
|
901 |
+
"phpunit/php-text-template": "^1.2",
|
902 |
+
"sebastian/exporter": "^1.2 || ^2.0"
|
903 |
+
},
|
904 |
+
"conflict": {
|
905 |
+
"phpunit/phpunit": "<5.4.0"
|
906 |
+
},
|
907 |
+
"require-dev": {
|
908 |
+
"phpunit/phpunit": "^5.4"
|
909 |
+
},
|
910 |
+
"suggest": {
|
911 |
+
"ext-soap": "*"
|
912 |
+
},
|
913 |
+
"type": "library",
|
914 |
+
"extra": {
|
915 |
+
"branch-alias": {
|
916 |
+
"dev-master": "3.2.x-dev"
|
917 |
+
}
|
918 |
+
},
|
919 |
+
"autoload": {
|
920 |
+
"classmap": [
|
921 |
+
"src/"
|
922 |
+
]
|
923 |
+
},
|
924 |
+
"notification-url": "https://packagist.org/downloads/",
|
925 |
+
"license": [
|
926 |
+
"BSD-3-Clause"
|
927 |
+
],
|
928 |
+
"authors": [
|
929 |
+
{
|
930 |
+
"name": "Sebastian Bergmann",
|
931 |
+
"email": "sb@sebastian-bergmann.de",
|
932 |
+
"role": "lead"
|
933 |
+
}
|
934 |
+
],
|
935 |
+
"description": "Mock Object library for PHPUnit",
|
936 |
+
"homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
|
937 |
+
"keywords": [
|
938 |
+
"mock",
|
939 |
+
"xunit"
|
940 |
+
],
|
941 |
+
"abandoned": true,
|
942 |
+
"time": "2017-06-30T09:13:00+00:00"
|
943 |
+
},
|
944 |
+
{
|
945 |
+
"name": "sebastian/code-unit-reverse-lookup",
|
946 |
+
"version": "1.0.1",
|
947 |
+
"source": {
|
948 |
+
"type": "git",
|
949 |
+
"url": "https://github.com/sebastianbergmann/code-unit-reverse-lookup.git",
|
950 |
+
"reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18"
|
951 |
+
},
|
952 |
+
"dist": {
|
953 |
+
"type": "zip",
|
954 |
+
"url": "https://api.github.com/repos/sebastianbergmann/code-unit-reverse-lookup/zipball/4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
|
955 |
+
"reference": "4419fcdb5eabb9caa61a27c7a1db532a6b55dd18",
|
956 |
+
"shasum": ""
|
957 |
+
},
|
958 |
+
"require": {
|
959 |
+
"php": "^5.6 || ^7.0"
|
960 |
+
},
|
961 |
+
"require-dev": {
|
962 |
+
"phpunit/phpunit": "^5.7 || ^6.0"
|
963 |
+
},
|
964 |
+
"type": "library",
|
965 |
+
"extra": {
|
966 |
+
"branch-alias": {
|
967 |
+
"dev-master": "1.0.x-dev"
|
968 |
+
}
|
969 |
+
},
|
970 |
+
"autoload": {
|
971 |
+
"classmap": [
|
972 |
+
"src/"
|
973 |
+
]
|
974 |
+
},
|
975 |
+
"notification-url": "https://packagist.org/downloads/",
|
976 |
+
"license": [
|
977 |
+
"BSD-3-Clause"
|
978 |
+
],
|
979 |
+
"authors": [
|
980 |
+
{
|
981 |
+
"name": "Sebastian Bergmann",
|
982 |
+
"email": "sebastian@phpunit.de"
|
983 |
+
}
|
984 |
+
],
|
985 |
+
"description": "Looks up which function or method a line of code belongs to",
|
986 |
+
"homepage": "https://github.com/sebastianbergmann/code-unit-reverse-lookup/",
|
987 |
+
"time": "2017-03-04T06:30:41+00:00"
|
988 |
+
},
|
989 |
+
{
|
990 |
+
"name": "sebastian/comparator",
|
991 |
+
"version": "1.2.4",
|
992 |
+
"source": {
|
993 |
+
"type": "git",
|
994 |
+
"url": "https://github.com/sebastianbergmann/comparator.git",
|
995 |
+
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be"
|
996 |
+
},
|
997 |
+
"dist": {
|
998 |
+
"type": "zip",
|
999 |
+
"url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
|
1000 |
+
"reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be",
|
1001 |
+
"shasum": ""
|
1002 |
+
},
|
1003 |
+
"require": {
|
1004 |
+
"php": ">=5.3.3",
|
1005 |
+
"sebastian/diff": "~1.2",
|
1006 |
+
"sebastian/exporter": "~1.2 || ~2.0"
|
1007 |
+
},
|
1008 |
+
"require-dev": {
|
1009 |
+
"phpunit/phpunit": "~4.4"
|
1010 |
+
},
|
1011 |
+
"type": "library",
|
1012 |
+
"extra": {
|
1013 |
+
"branch-alias": {
|
1014 |
+
"dev-master": "1.2.x-dev"
|
1015 |
+
}
|
1016 |
+
},
|
1017 |
+
"autoload": {
|
1018 |
+
"classmap": [
|
1019 |
+
"src/"
|
1020 |
+
]
|
1021 |
+
},
|
1022 |
+
"notification-url": "https://packagist.org/downloads/",
|
1023 |
+
"license": [
|
1024 |
+
"BSD-3-Clause"
|
1025 |
+
],
|
1026 |
+
"authors": [
|
1027 |
+
{
|
1028 |
+
"name": "Jeff Welch",
|
1029 |
+
"email": "whatthejeff@gmail.com"
|
1030 |
+
},
|
1031 |
+
{
|
1032 |
+
"name": "Volker Dusch",
|
1033 |
+
"email": "github@wallbash.com"
|
1034 |
+
},
|
1035 |
+
{
|
1036 |
+
"name": "Bernhard Schussek",
|
1037 |
+
"email": "bschussek@2bepublished.at"
|
1038 |
+
},
|
1039 |
+
{
|
1040 |
+
"name": "Sebastian Bergmann",
|
1041 |
+
"email": "sebastian@phpunit.de"
|
1042 |
+
}
|
1043 |
+
],
|
1044 |
+
"description": "Provides the functionality to compare PHP values for equality",
|
1045 |
+
"homepage": "http://www.github.com/sebastianbergmann/comparator",
|
1046 |
+
"keywords": [
|
1047 |
+
"comparator",
|
1048 |
+
"compare",
|
1049 |
+
"equality"
|
1050 |
+
],
|
1051 |
+
"time": "2017-01-29T09:50:25+00:00"
|
1052 |
+
},
|
1053 |
+
{
|
1054 |
+
"name": "sebastian/diff",
|
1055 |
+
"version": "1.4.3",
|
1056 |
+
"source": {
|
1057 |
+
"type": "git",
|
1058 |
+
"url": "https://github.com/sebastianbergmann/diff.git",
|
1059 |
+
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4"
|
1060 |
+
},
|
1061 |
+
"dist": {
|
1062 |
+
"type": "zip",
|
1063 |
+
"url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
1064 |
+
"reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4",
|
1065 |
+
"shasum": ""
|
1066 |
+
},
|
1067 |
+
"require": {
|
1068 |
+
"php": "^5.3.3 || ^7.0"
|
1069 |
+
},
|
1070 |
+
"require-dev": {
|
1071 |
+
"phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0"
|
1072 |
+
},
|
1073 |
+
"type": "library",
|
1074 |
+
"extra": {
|
1075 |
+
"branch-alias": {
|
1076 |
+
"dev-master": "1.4-dev"
|
1077 |
+
}
|
1078 |
+
},
|
1079 |
+
"autoload": {
|
1080 |
+
"classmap": [
|
1081 |
+
"src/"
|
1082 |
+
]
|
1083 |
+
},
|
1084 |
+
"notification-url": "https://packagist.org/downloads/",
|
1085 |
+
"license": [
|
1086 |
+
"BSD-3-Clause"
|
1087 |
+
],
|
1088 |
+
"authors": [
|
1089 |
+
{
|
1090 |
+
"name": "Kore Nordmann",
|
1091 |
+
"email": "mail@kore-nordmann.de"
|
1092 |
+
},
|
1093 |
+
{
|
1094 |
+
"name": "Sebastian Bergmann",
|
1095 |
+
"email": "sebastian@phpunit.de"
|
1096 |
+
}
|
1097 |
+
],
|
1098 |
+
"description": "Diff implementation",
|
1099 |
+
"homepage": "https://github.com/sebastianbergmann/diff",
|
1100 |
+
"keywords": [
|
1101 |
+
"diff"
|
1102 |
+
],
|
1103 |
+
"time": "2017-05-22T07:24:03+00:00"
|
1104 |
+
},
|
1105 |
+
{
|
1106 |
+
"name": "sebastian/environment",
|
1107 |
+
"version": "2.0.0",
|
1108 |
+
"source": {
|
1109 |
+
"type": "git",
|
1110 |
+
"url": "https://github.com/sebastianbergmann/environment.git",
|
1111 |
+
"reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac"
|
1112 |
+
},
|
1113 |
+
"dist": {
|
1114 |
+
"type": "zip",
|
1115 |
+
"url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
|
1116 |
+
"reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac",
|
1117 |
+
"shasum": ""
|
1118 |
+
},
|
1119 |
+
"require": {
|
1120 |
+
"php": "^5.6 || ^7.0"
|
1121 |
+
},
|
1122 |
+
"require-dev": {
|
1123 |
+
"phpunit/phpunit": "^5.0"
|
1124 |
+
},
|
1125 |
+
"type": "library",
|
1126 |
+
"extra": {
|
1127 |
+
"branch-alias": {
|
1128 |
+
"dev-master": "2.0.x-dev"
|
1129 |
+
}
|
1130 |
+
},
|
1131 |
+
"autoload": {
|
1132 |
+
"classmap": [
|
1133 |
+
"src/"
|
1134 |
+
]
|
1135 |
+
},
|
1136 |
+
"notification-url": "https://packagist.org/downloads/",
|
1137 |
+
"license": [
|
1138 |
+
"BSD-3-Clause"
|
1139 |
+
],
|
1140 |
+
"authors": [
|
1141 |
+
{
|
1142 |
+
"name": "Sebastian Bergmann",
|
1143 |
+
"email": "sebastian@phpunit.de"
|
1144 |
+
}
|
1145 |
+
],
|
1146 |
+
"description": "Provides functionality to handle HHVM/PHP environments",
|
1147 |
+
"homepage": "http://www.github.com/sebastianbergmann/environment",
|
1148 |
+
"keywords": [
|
1149 |
+
"Xdebug",
|
1150 |
+
"environment",
|
1151 |
+
"hhvm"
|
1152 |
+
],
|
1153 |
+
"time": "2016-11-26T07:53:53+00:00"
|
1154 |
+
},
|
1155 |
+
{
|
1156 |
+
"name": "sebastian/exporter",
|
1157 |
+
"version": "2.0.0",
|
1158 |
+
"source": {
|
1159 |
+
"type": "git",
|
1160 |
+
"url": "https://github.com/sebastianbergmann/exporter.git",
|
1161 |
+
"reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4"
|
1162 |
+
},
|
1163 |
+
"dist": {
|
1164 |
+
"type": "zip",
|
1165 |
+
"url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
|
1166 |
+
"reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4",
|
1167 |
+
"shasum": ""
|
1168 |
+
},
|
1169 |
+
"require": {
|
1170 |
+
"php": ">=5.3.3",
|
1171 |
+
"sebastian/recursion-context": "~2.0"
|
1172 |
+
},
|
1173 |
+
"require-dev": {
|
1174 |
+
"ext-mbstring": "*",
|
1175 |
+
"phpunit/phpunit": "~4.4"
|
1176 |
+
},
|
1177 |
+
"type": "library",
|
1178 |
+
"extra": {
|
1179 |
+
"branch-alias": {
|
1180 |
+
"dev-master": "2.0.x-dev"
|
1181 |
+
}
|
1182 |
+
},
|
1183 |
+
"autoload": {
|
1184 |
+
"classmap": [
|
1185 |
+
"src/"
|
1186 |
+
]
|
1187 |
+
},
|
1188 |
+
"notification-url": "https://packagist.org/downloads/",
|
1189 |
+
"license": [
|
1190 |
+
"BSD-3-Clause"
|
1191 |
+
],
|
1192 |
+
"authors": [
|
1193 |
+
{
|
1194 |
+
"name": "Jeff Welch",
|
1195 |
+
"email": "whatthejeff@gmail.com"
|
1196 |
+
},
|
1197 |
+
{
|
1198 |
+
"name": "Volker Dusch",
|
1199 |
+
"email": "github@wallbash.com"
|
1200 |
+
},
|
1201 |
+
{
|
1202 |
+
"name": "Bernhard Schussek",
|
1203 |
+
"email": "bschussek@2bepublished.at"
|
1204 |
+
},
|
1205 |
+
{
|
1206 |
+
"name": "Sebastian Bergmann",
|
1207 |
+
"email": "sebastian@phpunit.de"
|
1208 |
+
},
|
1209 |
+
{
|
1210 |
+
"name": "Adam Harvey",
|
1211 |
+
"email": "aharvey@php.net"
|
1212 |
+
}
|
1213 |
+
],
|
1214 |
+
"description": "Provides the functionality to export PHP variables for visualization",
|
1215 |
+
"homepage": "http://www.github.com/sebastianbergmann/exporter",
|
1216 |
+
"keywords": [
|
1217 |
+
"export",
|
1218 |
+
"exporter"
|
1219 |
+
],
|
1220 |
+
"time": "2016-11-19T08:54:04+00:00"
|
1221 |
+
},
|
1222 |
+
{
|
1223 |
+
"name": "sebastian/global-state",
|
1224 |
+
"version": "1.1.1",
|
1225 |
+
"source": {
|
1226 |
+
"type": "git",
|
1227 |
+
"url": "https://github.com/sebastianbergmann/global-state.git",
|
1228 |
+
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4"
|
1229 |
+
},
|
1230 |
+
"dist": {
|
1231 |
+
"type": "zip",
|
1232 |
+
"url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
1233 |
+
"reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4",
|
1234 |
+
"shasum": ""
|
1235 |
+
},
|
1236 |
+
"require": {
|
1237 |
+
"php": ">=5.3.3"
|
1238 |
+
},
|
1239 |
+
"require-dev": {
|
1240 |
+
"phpunit/phpunit": "~4.2"
|
1241 |
+
},
|
1242 |
+
"suggest": {
|
1243 |
+
"ext-uopz": "*"
|
1244 |
+
},
|
1245 |
+
"type": "library",
|
1246 |
+
"extra": {
|
1247 |
+
"branch-alias": {
|
1248 |
+
"dev-master": "1.0-dev"
|
1249 |
+
}
|
1250 |
+
},
|
1251 |
+
"autoload": {
|
1252 |
+
"classmap": [
|
1253 |
+
"src/"
|
1254 |
+
]
|
1255 |
+
},
|
1256 |
+
"notification-url": "https://packagist.org/downloads/",
|
1257 |
+
"license": [
|
1258 |
+
"BSD-3-Clause"
|
1259 |
+
],
|
1260 |
+
"authors": [
|
1261 |
+
{
|
1262 |
+
"name": "Sebastian Bergmann",
|
1263 |
+
"email": "sebastian@phpunit.de"
|
1264 |
+
}
|
1265 |
+
],
|
1266 |
+
"description": "Snapshotting of global state",
|
1267 |
+
"homepage": "http://www.github.com/sebastianbergmann/global-state",
|
1268 |
+
"keywords": [
|
1269 |
+
"global state"
|
1270 |
+
],
|
1271 |
+
"time": "2015-10-12T03:26:01+00:00"
|
1272 |
+
},
|
1273 |
+
{
|
1274 |
+
"name": "sebastian/object-enumerator",
|
1275 |
+
"version": "2.0.1",
|
1276 |
+
"source": {
|
1277 |
+
"type": "git",
|
1278 |
+
"url": "https://github.com/sebastianbergmann/object-enumerator.git",
|
1279 |
+
"reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7"
|
1280 |
+
},
|
1281 |
+
"dist": {
|
1282 |
+
"type": "zip",
|
1283 |
+
"url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7",
|
1284 |
+
"reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7",
|
1285 |
+
"shasum": ""
|
1286 |
+
},
|
1287 |
+
"require": {
|
1288 |
+
"php": ">=5.6",
|
1289 |
+
"sebastian/recursion-context": "~2.0"
|
1290 |
+
},
|
1291 |
+
"require-dev": {
|
1292 |
+
"phpunit/phpunit": "~5"
|
1293 |
+
},
|
1294 |
+
"type": "library",
|
1295 |
+
"extra": {
|
1296 |
+
"branch-alias": {
|
1297 |
+
"dev-master": "2.0.x-dev"
|
1298 |
+
}
|
1299 |
+
},
|
1300 |
+
"autoload": {
|
1301 |
+
"classmap": [
|
1302 |
+
"src/"
|
1303 |
+
]
|
1304 |
+
},
|
1305 |
+
"notification-url": "https://packagist.org/downloads/",
|
1306 |
+
"license": [
|
1307 |
+
"BSD-3-Clause"
|
1308 |
+
],
|
1309 |
+
"authors": [
|
1310 |
+
{
|
1311 |
+
"name": "Sebastian Bergmann",
|
1312 |
+
"email": "sebastian@phpunit.de"
|
1313 |
+
}
|
1314 |
+
],
|
1315 |
+
"description": "Traverses array structures and object graphs to enumerate all referenced objects",
|
1316 |
+
"homepage": "https://github.com/sebastianbergmann/object-enumerator/",
|
1317 |
+
"time": "2017-02-18T15:18:39+00:00"
|
1318 |
+
},
|
1319 |
+
{
|
1320 |
+
"name": "sebastian/recursion-context",
|
1321 |
+
"version": "2.0.0",
|
1322 |
+
"source": {
|
1323 |
+
"type": "git",
|
1324 |
+
"url": "https://github.com/sebastianbergmann/recursion-context.git",
|
1325 |
+
"reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a"
|
1326 |
+
},
|
1327 |
+
"dist": {
|
1328 |
+
"type": "zip",
|
1329 |
+
"url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a",
|
1330 |
+
"reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a",
|
1331 |
+
"shasum": ""
|
1332 |
+
},
|
1333 |
+
"require": {
|
1334 |
+
"php": ">=5.3.3"
|
1335 |
+
},
|
1336 |
+
"require-dev": {
|
1337 |
+
"phpunit/phpunit": "~4.4"
|
1338 |
+
},
|
1339 |
+
"type": "library",
|
1340 |
+
"extra": {
|
1341 |
+
"branch-alias": {
|
1342 |
+
"dev-master": "2.0.x-dev"
|
1343 |
+
}
|
1344 |
+
},
|
1345 |
+
"autoload": {
|
1346 |
+
"classmap": [
|
1347 |
+
"src/"
|
1348 |
+
]
|
1349 |
+
},
|
1350 |
+
"notification-url": "https://packagist.org/downloads/",
|
1351 |
+
"license": [
|
1352 |
+
"BSD-3-Clause"
|
1353 |
+
],
|
1354 |
+
"authors": [
|
1355 |
+
{
|
1356 |
+
"name": "Jeff Welch",
|
1357 |
+
"email": "whatthejeff@gmail.com"
|
1358 |
+
},
|
1359 |
+
{
|
1360 |
+
"name": "Sebastian Bergmann",
|
1361 |
+
"email": "sebastian@phpunit.de"
|
1362 |
+
},
|
1363 |
+
{
|
1364 |
+
"name": "Adam Harvey",
|
1365 |
+
"email": "aharvey@php.net"
|
1366 |
+
}
|
1367 |
+
],
|
1368 |
+
"description": "Provides functionality to recursively process PHP variables",
|
1369 |
+
"homepage": "http://www.github.com/sebastianbergmann/recursion-context",
|
1370 |
+
"time": "2016-11-19T07:33:16+00:00"
|
1371 |
+
},
|
1372 |
+
{
|
1373 |
+
"name": "sebastian/resource-operations",
|
1374 |
+
"version": "1.0.0",
|
1375 |
+
"source": {
|
1376 |
+
"type": "git",
|
1377 |
+
"url": "https://github.com/sebastianbergmann/resource-operations.git",
|
1378 |
+
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52"
|
1379 |
+
},
|
1380 |
+
"dist": {
|
1381 |
+
"type": "zip",
|
1382 |
+
"url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
1383 |
+
"reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52",
|
1384 |
+
"shasum": ""
|
1385 |
+
},
|
1386 |
+
"require": {
|
1387 |
+
"php": ">=5.6.0"
|
1388 |
+
},
|
1389 |
+
"type": "library",
|
1390 |
+
"extra": {
|
1391 |
+
"branch-alias": {
|
1392 |
+
"dev-master": "1.0.x-dev"
|
1393 |
+
}
|
1394 |
+
},
|
1395 |
+
"autoload": {
|
1396 |
+
"classmap": [
|
1397 |
+
"src/"
|
1398 |
+
]
|
1399 |
+
},
|
1400 |
+
"notification-url": "https://packagist.org/downloads/",
|
1401 |
+
"license": [
|
1402 |
+
"BSD-3-Clause"
|
1403 |
+
],
|
1404 |
+
"authors": [
|
1405 |
+
{
|
1406 |
+
"name": "Sebastian Bergmann",
|
1407 |
+
"email": "sebastian@phpunit.de"
|
1408 |
+
}
|
1409 |
+
],
|
1410 |
+
"description": "Provides a list of PHP built-in functions that operate on resources",
|
1411 |
+
"homepage": "https://www.github.com/sebastianbergmann/resource-operations",
|
1412 |
+
"time": "2015-07-28T20:34:47+00:00"
|
1413 |
+
},
|
1414 |
+
{
|
1415 |
+
"name": "sebastian/version",
|
1416 |
+
"version": "2.0.1",
|
1417 |
+
"source": {
|
1418 |
+
"type": "git",
|
1419 |
+
"url": "https://github.com/sebastianbergmann/version.git",
|
1420 |
+
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019"
|
1421 |
+
},
|
1422 |
+
"dist": {
|
1423 |
+
"type": "zip",
|
1424 |
+
"url": "https://api.github.com/repos/sebastianbergmann/version/zipball/99732be0ddb3361e16ad77b68ba41efc8e979019",
|
1425 |
+
"reference": "99732be0ddb3361e16ad77b68ba41efc8e979019",
|
1426 |
+
"shasum": ""
|
1427 |
+
},
|
1428 |
+
"require": {
|
1429 |
+
"php": ">=5.6"
|
1430 |
+
},
|
1431 |
+
"type": "library",
|
1432 |
+
"extra": {
|
1433 |
+
"branch-alias": {
|
1434 |
+
"dev-master": "2.0.x-dev"
|
1435 |
+
}
|
1436 |
+
},
|
1437 |
+
"autoload": {
|
1438 |
+
"classmap": [
|
1439 |
+
"src/"
|
1440 |
+
]
|
1441 |
+
},
|
1442 |
+
"notification-url": "https://packagist.org/downloads/",
|
1443 |
+
"license": [
|
1444 |
+
"BSD-3-Clause"
|
1445 |
+
],
|
1446 |
+
"authors": [
|
1447 |
+
{
|
1448 |
+
"name": "Sebastian Bergmann",
|
1449 |
+
"email": "sebastian@phpunit.de",
|
1450 |
+
"role": "lead"
|
1451 |
+
}
|
1452 |
+
],
|
1453 |
+
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
1454 |
+
"homepage": "https://github.com/sebastianbergmann/version",
|
1455 |
+
"time": "2016-10-03T07:35:21+00:00"
|
1456 |
+
},
|
1457 |
+
{
|
1458 |
+
"name": "squizlabs/php_codesniffer",
|
1459 |
+
"version": "3.4.2",
|
1460 |
+
"source": {
|
1461 |
+
"type": "git",
|
1462 |
+
"url": "https://github.com/squizlabs/PHP_CodeSniffer.git",
|
1463 |
+
"reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8"
|
1464 |
+
},
|
1465 |
+
"dist": {
|
1466 |
+
"type": "zip",
|
1467 |
+
"url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8",
|
1468 |
+
"reference": "b8a7362af1cc1aadb5bd36c3defc4dda2cf5f0a8",
|
1469 |
+
"shasum": ""
|
1470 |
+
},
|
1471 |
+
"require": {
|
1472 |
+
"ext-simplexml": "*",
|
1473 |
+
"ext-tokenizer": "*",
|
1474 |
+
"ext-xmlwriter": "*",
|
1475 |
+
"php": ">=5.4.0"
|
1476 |
+
},
|
1477 |
+
"require-dev": {
|
1478 |
+
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
1479 |
+
},
|
1480 |
+
"bin": [
|
1481 |
+
"bin/phpcs",
|
1482 |
+
"bin/phpcbf"
|
1483 |
+
],
|
1484 |
+
"type": "library",
|
1485 |
+
"extra": {
|
1486 |
+
"branch-alias": {
|
1487 |
+
"dev-master": "3.x-dev"
|
1488 |
+
}
|
1489 |
+
},
|
1490 |
+
"notification-url": "https://packagist.org/downloads/",
|
1491 |
+
"license": [
|
1492 |
+
"BSD-3-Clause"
|
1493 |
+
],
|
1494 |
+
"authors": [
|
1495 |
+
{
|
1496 |
+
"name": "Greg Sherwood",
|
1497 |
+
"role": "lead"
|
1498 |
+
}
|
1499 |
+
],
|
1500 |
+
"description": "PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.",
|
1501 |
+
"homepage": "https://github.com/squizlabs/PHP_CodeSniffer",
|
1502 |
+
"keywords": [
|
1503 |
+
"phpcs",
|
1504 |
+
"standards"
|
1505 |
+
],
|
1506 |
+
"time": "2019-04-10T23:49:02+00:00"
|
1507 |
+
},
|
1508 |
+
{
|
1509 |
+
"name": "symfony/polyfill-ctype",
|
1510 |
+
"version": "v1.11.0",
|
1511 |
+
"source": {
|
1512 |
+
"type": "git",
|
1513 |
+
"url": "https://github.com/symfony/polyfill-ctype.git",
|
1514 |
+
"reference": "82ebae02209c21113908c229e9883c419720738a"
|
1515 |
+
},
|
1516 |
+
"dist": {
|
1517 |
+
"type": "zip",
|
1518 |
+
"url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a",
|
1519 |
+
"reference": "82ebae02209c21113908c229e9883c419720738a",
|
1520 |
+
"shasum": ""
|
1521 |
+
},
|
1522 |
+
"require": {
|
1523 |
+
"php": ">=5.3.3"
|
1524 |
+
},
|
1525 |
+
"suggest": {
|
1526 |
+
"ext-ctype": "For best performance"
|
1527 |
+
},
|
1528 |
+
"type": "library",
|
1529 |
+
"extra": {
|
1530 |
+
"branch-alias": {
|
1531 |
+
"dev-master": "1.11-dev"
|
1532 |
+
}
|
1533 |
+
},
|
1534 |
+
"autoload": {
|
1535 |
+
"psr-4": {
|
1536 |
+
"Symfony\\Polyfill\\Ctype\\": ""
|
1537 |
+
},
|
1538 |
+
"files": [
|
1539 |
+
"bootstrap.php"
|
1540 |
+
]
|
1541 |
+
},
|
1542 |
+
"notification-url": "https://packagist.org/downloads/",
|
1543 |
+
"license": [
|
1544 |
+
"MIT"
|
1545 |
+
],
|
1546 |
+
"authors": [
|
1547 |
+
{
|
1548 |
+
"name": "Symfony Community",
|
1549 |
+
"homepage": "https://symfony.com/contributors"
|
1550 |
+
},
|
1551 |
+
{
|
1552 |
+
"name": "Gert de Pagter",
|
1553 |
+
"email": "BackEndTea@gmail.com"
|
1554 |
+
}
|
1555 |
+
],
|
1556 |
+
"description": "Symfony polyfill for ctype functions",
|
1557 |
+
"homepage": "https://symfony.com",
|
1558 |
+
"keywords": [
|
1559 |
+
"compatibility",
|
1560 |
+
"ctype",
|
1561 |
+
"polyfill",
|
1562 |
+
"portable"
|
1563 |
+
],
|
1564 |
+
"time": "2019-02-06T07:57:58+00:00"
|
1565 |
+
},
|
1566 |
+
{
|
1567 |
+
"name": "symfony/yaml",
|
1568 |
+
"version": "v4.3.2",
|
1569 |
+
"source": {
|
1570 |
+
"type": "git",
|
1571 |
+
"url": "https://github.com/symfony/yaml.git",
|
1572 |
+
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99"
|
1573 |
+
},
|
1574 |
+
"dist": {
|
1575 |
+
"type": "zip",
|
1576 |
+
"url": "https://api.github.com/repos/symfony/yaml/zipball/c60ecf5ba842324433b46f58dc7afc4487dbab99",
|
1577 |
+
"reference": "c60ecf5ba842324433b46f58dc7afc4487dbab99",
|
1578 |
+
"shasum": ""
|
1579 |
+
},
|
1580 |
+
"require": {
|
1581 |
+
"php": "^7.1.3",
|
1582 |
+
"symfony/polyfill-ctype": "~1.8"
|
1583 |
+
},
|
1584 |
+
"conflict": {
|
1585 |
+
"symfony/console": "<3.4"
|
1586 |
+
},
|
1587 |
+
"require-dev": {
|
1588 |
+
"symfony/console": "~3.4|~4.0"
|
1589 |
+
},
|
1590 |
+
"suggest": {
|
1591 |
+
"symfony/console": "For validating YAML files using the lint command"
|
1592 |
+
},
|
1593 |
+
"type": "library",
|
1594 |
+
"extra": {
|
1595 |
+
"branch-alias": {
|
1596 |
+
"dev-master": "4.3-dev"
|
1597 |
+
}
|
1598 |
+
},
|
1599 |
+
"autoload": {
|
1600 |
+
"psr-4": {
|
1601 |
+
"Symfony\\Component\\Yaml\\": ""
|
1602 |
+
},
|
1603 |
+
"exclude-from-classmap": [
|
1604 |
+
"/Tests/"
|
1605 |
+
]
|
1606 |
+
},
|
1607 |
+
"notification-url": "https://packagist.org/downloads/",
|
1608 |
+
"license": [
|
1609 |
+
"MIT"
|
1610 |
+
],
|
1611 |
+
"authors": [
|
1612 |
+
{
|
1613 |
+
"name": "Fabien Potencier",
|
1614 |
+
"email": "fabien@symfony.com"
|
1615 |
+
},
|
1616 |
+
{
|
1617 |
+
"name": "Symfony Community",
|
1618 |
+
"homepage": "https://symfony.com/contributors"
|
1619 |
+
}
|
1620 |
+
],
|
1621 |
+
"description": "Symfony Yaml Component",
|
1622 |
+
"homepage": "https://symfony.com",
|
1623 |
+
"time": "2019-04-06T14:04:46+00:00"
|
1624 |
+
},
|
1625 |
+
{
|
1626 |
+
"name": "webmozart/assert",
|
1627 |
+
"version": "1.4.0",
|
1628 |
+
"source": {
|
1629 |
+
"type": "git",
|
1630 |
+
"url": "https://github.com/webmozart/assert.git",
|
1631 |
+
"reference": "83e253c8e0be5b0257b881e1827274667c5c17a9"
|
1632 |
+
},
|
1633 |
+
"dist": {
|
1634 |
+
"type": "zip",
|
1635 |
+
"url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9",
|
1636 |
+
"reference": "83e253c8e0be5b0257b881e1827274667c5c17a9",
|
1637 |
+
"shasum": ""
|
1638 |
+
},
|
1639 |
+
"require": {
|
1640 |
+
"php": "^5.3.3 || ^7.0",
|
1641 |
+
"symfony/polyfill-ctype": "^1.8"
|
1642 |
+
},
|
1643 |
+
"require-dev": {
|
1644 |
+
"phpunit/phpunit": "^4.6",
|
1645 |
+
"sebastian/version": "^1.0.1"
|
1646 |
+
},
|
1647 |
+
"type": "library",
|
1648 |
+
"extra": {
|
1649 |
+
"branch-alias": {
|
1650 |
+
"dev-master": "1.3-dev"
|
1651 |
+
}
|
1652 |
+
},
|
1653 |
+
"autoload": {
|
1654 |
+
"psr-4": {
|
1655 |
+
"Webmozart\\Assert\\": "src/"
|
1656 |
+
}
|
1657 |
+
},
|
1658 |
+
"notification-url": "https://packagist.org/downloads/",
|
1659 |
+
"license": [
|
1660 |
+
"MIT"
|
1661 |
+
],
|
1662 |
+
"authors": [
|
1663 |
+
{
|
1664 |
+
"name": "Bernhard Schussek",
|
1665 |
+
"email": "bschussek@gmail.com"
|
1666 |
+
}
|
1667 |
+
],
|
1668 |
+
"description": "Assertions to validate method input/output with nice error messages.",
|
1669 |
+
"keywords": [
|
1670 |
+
"assert",
|
1671 |
+
"check",
|
1672 |
+
"validate"
|
1673 |
+
],
|
1674 |
+
"time": "2018-12-25T11:19:39+00:00"
|
1675 |
+
},
|
1676 |
+
{
|
1677 |
+
"name": "wp-coding-standards/wpcs",
|
1678 |
+
"version": "2.1.1",
|
1679 |
+
"source": {
|
1680 |
+
"type": "git",
|
1681 |
+
"url": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards.git",
|
1682 |
+
"reference": "bd9c33152115e6741e3510ff7189605b35167908"
|
1683 |
+
},
|
1684 |
+
"dist": {
|
1685 |
+
"type": "zip",
|
1686 |
+
"url": "https://api.github.com/repos/WordPress-Coding-Standards/WordPress-Coding-Standards/zipball/bd9c33152115e6741e3510ff7189605b35167908",
|
1687 |
+
"reference": "bd9c33152115e6741e3510ff7189605b35167908",
|
1688 |
+
"shasum": ""
|
1689 |
+
},
|
1690 |
+
"require": {
|
1691 |
+
"php": ">=5.4",
|
1692 |
+
"squizlabs/php_codesniffer": "^3.3.1"
|
1693 |
+
},
|
1694 |
+
"require-dev": {
|
1695 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0",
|
1696 |
+
"phpcompatibility/php-compatibility": "^9.0",
|
1697 |
+
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
1698 |
+
},
|
1699 |
+
"suggest": {
|
1700 |
+
"dealerdirect/phpcodesniffer-composer-installer": "^0.5.0 || This Composer plugin will sort out the PHPCS 'installed_paths' automatically."
|
1701 |
+
},
|
1702 |
+
"type": "phpcodesniffer-standard",
|
1703 |
+
"notification-url": "https://packagist.org/downloads/",
|
1704 |
+
"license": [
|
1705 |
+
"MIT"
|
1706 |
+
],
|
1707 |
+
"authors": [
|
1708 |
+
{
|
1709 |
+
"name": "Contributors",
|
1710 |
+
"homepage": "https://github.com/WordPress-Coding-Standards/WordPress-Coding-Standards/graphs/contributors"
|
1711 |
+
}
|
1712 |
+
],
|
1713 |
+
"description": "PHP_CodeSniffer rules (sniffs) to enforce WordPress coding conventions",
|
1714 |
+
"keywords": [
|
1715 |
+
"phpcs",
|
1716 |
+
"standards",
|
1717 |
+
"wordpress"
|
1718 |
+
],
|
1719 |
+
"time": "2019-05-21T02:50:00+00:00"
|
1720 |
+
}
|
1721 |
+
],
|
1722 |
+
"aliases": [],
|
1723 |
+
"minimum-stability": "stable",
|
1724 |
+
"stability-flags": [],
|
1725 |
+
"prefer-stable": false,
|
1726 |
+
"prefer-lowest": false,
|
1727 |
+
"platform": [],
|
1728 |
+
"platform-dev": []
|
1729 |
+
}
|
images/hubspot-wordmark.svg
ADDED
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?xml version="1.0" encoding="UTF-8"?>
|
2 |
+
<svg width="200px" height="57px" viewBox="0 0 200 57" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
3 |
+
<!-- Generator: Sketch 49.3 (51167) - http://www.bohemiancoding.com/sketch -->
|
4 |
+
<title>HubSpot Wordmark - Full Color</title>
|
5 |
+
<desc>Created with Sketch.</desc>
|
6 |
+
<defs></defs>
|
7 |
+
<g id="HubSpot-Wordmark---Full-Color" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
8 |
+
<g id="Page-1">
|
9 |
+
<polygon id="Fill-1" fill="#33475B" points="21.6380887 9.3174744 21.6380887 25.2935836 6.96607509 25.2935836 6.96607509 9.3174744 -0.000136518771 9.3174744 -0.000136518771 47.4539932 6.96607509 47.4539932 6.96607509 31.9966553 21.6380887 31.9966553 21.6380887 47.4539932 28.603959 47.4539932 28.603959 9.3174744"></polygon>
|
10 |
+
<g id="Group-14" transform="translate(32.764505, 0.283276)">
|
11 |
+
<path d="M18.1330717,34.8429693 C18.1330717,38.0255631 15.5528669,40.6057679 12.370273,40.6057679 C9.18767918,40.6057679 6.6074744,38.0255631 6.6074744,34.8429693 L6.6074744,18.5084983 L-3.41296928e-05,18.5084983 L-3.41296928e-05,34.8429693 C0.000989761092,41.6682253 5.53477816,47.2006485 12.3600341,47.1996246 C19.1842662,47.1986007 24.7156655,41.6668601 24.7166894,34.8429693 L24.7166894,18.5084983 L18.1330717,18.5084983 L18.1330717,34.8429693 Z" id="Fill-2" fill="#33475B"></path>
|
12 |
+
<path d="M67.0886689,20.1911945 C67.0886689,16.8430717 69.303686,15.7816382 71.7303072,15.7816382 C73.6862799,15.7816382 76.2695563,17.2696928 77.9589761,19.0751536 L82.2866212,13.9761775 C80.1262116,11.0546758 75.743959,9.03419795 72.1569283,9.03419795 C64.9896928,9.03419795 59.8053925,13.2321502 59.8053925,20.1911945 C59.8053925,33.1024573 75.5869625,29.0068942 75.5869625,36.2321502 C75.5869625,38.4604778 73.4231399,40.4301024 70.9453242,40.4301024 C67.0374744,40.4301024 65.7712628,38.5188396 63.976041,36.4980205 L59.1739932,41.4915358 C62.2456655,45.2628669 66.0340614,47.1772014 70.5733106,47.1772014 C77.3825256,47.1772014 82.86,42.9283959 82.86,36.2867577 C82.86,21.9522867 67.07843,26.4062116 67.07843,20.1911945" id="Fill-4" fill="#33475B"></path>
|
13 |
+
<path d="M164.720102,41.0786348 C160.816007,41.0786348 159.706792,39.389215 159.706792,36.8021843 L159.706792,25.3513311 L165.77471,25.3513311 L165.77471,19.5492833 L159.706792,19.5492833 L159.706792,11.8943345 L153.006792,14.9011604 L153.006792,38.2253925 C153.006792,44.1909215 157.122833,47.1980887 162.767884,47.1980887 C163.653208,47.2141297 164.538191,47.1434812 165.409863,46.9864846 L167.044334,40.9694198 C166.307133,41.020273 165.460717,41.0714676 164.720102,41.0714676" id="Fill-6" fill="#33475B"></path>
|
14 |
+
<path d="M43.2423891,40.546041 C39.0956314,40.546041 35.7338567,37.1842662 35.7338567,33.0375085 C35.7338567,28.8907509 39.0956314,25.5289761 43.2423891,25.5289761 C47.3891468,25.5289761 50.7509215,28.8907509 50.7509215,33.0375085 C50.7509215,37.1842662 47.3891468,40.546041 43.2423891,40.546041 M43.2833447,18.6996246 C40.0103072,18.6996246 37.7270307,19.64843 35.5188396,21.8156655 L35.5188396,9.26276451 L28.9010922,9.26276451 L28.9010922,32.5289761 C28.9010922,41.2388737 35.1980205,47.204744 42.2731058,47.204744 C50.1229352,47.204744 57.027372,41.1330717 57.027372,32.9555973 C57.027372,24.8805119 50.6724232,18.7030375 43.2833447,18.7030375" id="Fill-8" fill="#33475B"></path>
|
15 |
+
<path d="M108.87372,32.5255631 C108.87372,36.6723208 105.511945,40.0340956 101.365188,40.0340956 C97.21843,40.0340956 93.8566553,36.6723208 93.8566553,32.5255631 C93.8566553,28.3788055 97.21843,25.0170307 101.365188,25.0170307 C105.511945,25.0170307 108.87372,28.3788055 108.87372,32.5255631 M115.139932,32.6074744 C115.139932,24.4163481 108.249147,18.3583276 100.385666,18.3583276 C93.3105802,18.3583276 87.0136519,24.324198 87.0136519,33.0340956 L87.0136519,56.313959 L93.6313993,56.313959 L93.6313993,43.7439932 C95.8361775,45.9078157 98.1228669,46.8600341 101.392491,46.8600341 C108.781229,46.8600341 115.136519,40.6859727 115.136519,32.6074744" id="Fill-10" fill="#33475B"></path>
|
16 |
+
<path d="M134.23901,39.8977816 C130.152321,39.8977816 126.839352,36.5848123 126.839352,32.4981229 C126.839352,28.4117747 130.152321,25.0991468 134.23901,25.0991468 C138.3257,25.0991468 141.638328,28.4117747 141.638328,32.4981229 C141.638328,36.5848123 138.3257,39.8977816 134.23901,39.8977816 M136.453686,18.2527304 L136.453686,11.6721843 C138.228771,10.8435154 139.366655,9.06501706 139.375529,7.1056314 L139.375529,6.95238908 C139.367679,4.15989761 137.106246,1.89846416 134.314096,1.89095563 L134.160512,1.89095563 C131.368362,1.89846416 129.106587,4.15989761 129.098737,6.95238908 L129.098737,7.1056314 C129.107611,9.06501706 130.245495,10.8435154 132.02058,11.6721843 L132.02058,18.2527304 C129.520239,18.6349829 127.16529,19.6708191 125.194642,21.255802 L107.126382,7.19778157 C107.255051,6.73430034 107.323652,6.25580205 107.33116,5.77491468 C107.334915,2.62133106 104.781331,0.0619453925 101.627747,0.0581911263 C98.4745051,0.0540955631 95.9151195,2.60767918 95.9113652,5.7609215 C95.9072696,8.91450512 98.4608532,11.4738908 101.614437,11.4776451 C102.606246,11.4742321 103.579625,11.2093857 104.436962,10.709727 L122.201126,24.5394198 C118.926724,29.4796928 119.014778,35.9223549 122.423311,40.7715017 L117.017167,46.1773038 C116.583379,46.0394198 116.13116,45.9656997 115.675529,45.959215 C113.084061,45.959215 110.982696,48.0602389 110.982696,50.6520478 C110.982696,53.2438567 113.084061,55.3448805 115.675529,55.3448805 C118.267338,55.3448805 120.368362,53.2438567 120.368362,50.6520478 C120.36256,50.1964164 120.28884,49.7445392 120.150273,49.3104096 L125.498396,43.9622867 C131.827406,48.7964164 140.876212,47.5848123 145.710341,41.255802 C150.544471,34.9274744 149.333208,25.8779863 143.004198,21.0438567 C141.088157,19.5803754 138.83628,18.6209898 136.453686,18.2527304" id="Fill-12" fill="#FF7A59"></path>
|
17 |
+
</g>
|
18 |
+
</g>
|
19 |
+
</g>
|
20 |
+
</svg>
|
inc/class-leadin.php
CHANGED
@@ -11,10 +11,8 @@ class Leadin {
|
|
11 |
public function __construct() {
|
12 |
global $pagenow;
|
13 |
|
14 |
-
add_action( 'login_head', array( $this, 'add_page_analytics' ) );
|
15 |
add_action( 'wp_head', array( $this, 'add_page_analytics' ) );
|
16 |
add_action( 'admin_enqueue_scripts', array( $this, 'add_common_frontend_scripts' ) );
|
17 |
-
add_action( 'login_enqueue_scripts', array( $this, 'add_leadin_frontend_scripts' ) );
|
18 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_leadin_frontend_scripts' ) );
|
19 |
|
20 |
if ( is_admin() ) {
|
@@ -49,8 +47,6 @@ class Leadin {
|
|
49 |
$page_type = 'home';
|
50 |
} elseif ( is_archive() ) {
|
51 |
$page_type = 'archive';
|
52 |
-
} elseif ( $this->leadin_is_login_or_register_page() ) {
|
53 |
-
$page_type = 'login';
|
54 |
} elseif ( is_page() ) {
|
55 |
$page_type = 'page';
|
56 |
} else {
|
@@ -117,13 +113,6 @@ class Leadin {
|
|
117 |
return $tag;
|
118 |
}
|
119 |
}
|
120 |
-
|
121 |
-
/**
|
122 |
-
* Return true if the current page is login or register
|
123 |
-
*/
|
124 |
-
public static function leadin_is_login_or_register_page() {
|
125 |
-
return in_array( $GLOBALS['pagenow'], array( 'wp-login.php', 'wp-register.php' ), true );
|
126 |
-
}
|
127 |
}
|
128 |
|
129 |
// =============================================
|
11 |
public function __construct() {
|
12 |
global $pagenow;
|
13 |
|
|
|
14 |
add_action( 'wp_head', array( $this, 'add_page_analytics' ) );
|
15 |
add_action( 'admin_enqueue_scripts', array( $this, 'add_common_frontend_scripts' ) );
|
|
|
16 |
add_action( 'wp_enqueue_scripts', array( $this, 'add_leadin_frontend_scripts' ) );
|
17 |
|
18 |
if ( is_admin() ) {
|
47 |
$page_type = 'home';
|
48 |
} elseif ( is_archive() ) {
|
49 |
$page_type = 'archive';
|
|
|
|
|
50 |
} elseif ( is_page() ) {
|
51 |
$page_type = 'page';
|
52 |
} else {
|
113 |
return $tag;
|
114 |
}
|
115 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
116 |
}
|
117 |
|
118 |
// =============================================
|
inc/leadin-disconnect.php
CHANGED
@@ -3,14 +3,14 @@ if ( ! defined( 'LEADIN_PLUGIN_VERSION' ) ) {
|
|
3 |
wp_die( '', '', 403 );
|
4 |
}
|
5 |
|
6 |
-
add_action( 'wp_ajax_leadin_disconnect_ajax', '
|
|
|
|
|
7 |
|
8 |
/**
|
9 |
* AJAX handler to disconnect portal id
|
10 |
*/
|
11 |
function leadin_disconnect_ajax() {
|
12 |
-
check_ajax_referer( 'hubspot-ajax' );
|
13 |
-
leadin_activate_plugins_or_403();
|
14 |
if ( get_option( 'leadin_portalId' ) ) {
|
15 |
delete_option( 'leadin_portalId' );
|
16 |
wp_die( '{"message": "Success!"}' );
|
3 |
wp_die( '', '', 403 );
|
4 |
}
|
5 |
|
6 |
+
add_action( 'wp_ajax_leadin_disconnect_ajax', 'leadin_validate_nonce', 1 );
|
7 |
+
add_action( 'wp_ajax_leadin_disconnect_ajax', 'leadin_manage_options_or_403', 2 );
|
8 |
+
add_action( 'wp_ajax_leadin_disconnect_ajax', 'leadin_disconnect_ajax', 3 );
|
9 |
|
10 |
/**
|
11 |
* AJAX handler to disconnect portal id
|
12 |
*/
|
13 |
function leadin_disconnect_ajax() {
|
|
|
|
|
14 |
if ( get_option( 'leadin_portalId' ) ) {
|
15 |
delete_option( 'leadin_portalId' );
|
16 |
wp_die( '{"message": "Success!"}' );
|
inc/leadin-functions.php
CHANGED
@@ -64,6 +64,11 @@ function leadin_parse_version( $version ) {
|
|
64 |
return $match[0];
|
65 |
}
|
66 |
|
|
|
|
|
|
|
|
|
|
|
67 |
/**
|
68 |
* Return array of query parameters to add to the iframe src
|
69 |
*/
|
@@ -79,7 +84,7 @@ function leadin_get_query_params() {
|
|
79 |
'admin' => leadin_is_admin(),
|
80 |
);
|
81 |
|
82 |
-
if ( LEADIN_STATIC_BUNDLE_VERSION
|
83 |
$query_param_array['s'] = LEADIN_STATIC_BUNDLE_VERSION;
|
84 |
}
|
85 |
|
@@ -207,18 +212,28 @@ function leadin_get_form_shortcode( $form_id ) {
|
|
207 |
}
|
208 |
|
209 |
/**
|
210 |
-
* Return true if the current user has the `
|
211 |
*/
|
212 |
function leadin_is_admin() {
|
213 |
-
return current_user_can( '
|
214 |
}
|
215 |
|
216 |
/**
|
217 |
-
* Return 403 if the current user does not have the `
|
218 |
*/
|
219 |
-
function
|
220 |
if ( ! leadin_is_admin() ) {
|
221 |
-
wp_die( '{ "error": "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
222 |
}
|
223 |
}
|
224 |
|
64 |
return $match[0];
|
65 |
}
|
66 |
|
67 |
+
function leadin_is_valid_static_version( $version ) {
|
68 |
+
preg_match( '/static-\d+\.\d+/', $version, $match );
|
69 |
+
return ! empty( $match );
|
70 |
+
}
|
71 |
+
|
72 |
/**
|
73 |
* Return array of query parameters to add to the iframe src
|
74 |
*/
|
84 |
'admin' => leadin_is_admin(),
|
85 |
);
|
86 |
|
87 |
+
if ( leadin_is_valid_static_version( LEADIN_STATIC_BUNDLE_VERSION ) ) {
|
88 |
$query_param_array['s'] = LEADIN_STATIC_BUNDLE_VERSION;
|
89 |
}
|
90 |
|
212 |
}
|
213 |
|
214 |
/**
|
215 |
+
* Return true if the current user has the `manage_options` capability
|
216 |
*/
|
217 |
function leadin_is_admin() {
|
218 |
+
return current_user_can( 'manage_options' );
|
219 |
}
|
220 |
|
221 |
/**
|
222 |
+
* Return 403 if the current user does not have the `manage_options` capability
|
223 |
*/
|
224 |
+
function leadin_manage_options_or_403() {
|
225 |
if ( ! leadin_is_admin() ) {
|
226 |
+
wp_die( '{ "error": "Insufficient permissions" }', '', 403 );
|
227 |
+
}
|
228 |
+
}
|
229 |
+
|
230 |
+
/**
|
231 |
+
* Validate nonce sent with ajax
|
232 |
+
*/
|
233 |
+
function leadin_validate_nonce() {
|
234 |
+
$valid = check_ajax_referer( 'hubspot-ajax', false, false );
|
235 |
+
if ( ! $valid ) {
|
236 |
+
wp_die( '{ "error": "CSRF token missing or invalid" }', 403 );
|
237 |
}
|
238 |
}
|
239 |
|
inc/leadin-registration.php
CHANGED
@@ -3,14 +3,14 @@ if ( ! defined( 'LEADIN_PLUGIN_VERSION' ) ) {
|
|
3 |
wp_die( '', '', 403 );
|
4 |
}
|
5 |
|
6 |
-
add_action( 'wp_ajax_leadin_registration_ajax', '
|
|
|
|
|
7 |
|
8 |
/**
|
9 |
* AJAX handler to connect portal to WordPress
|
10 |
*/
|
11 |
function leadin_registration_ajax() {
|
12 |
-
check_ajax_referer( 'hubspot-ajax' );
|
13 |
-
leadin_activate_plugins_or_403();
|
14 |
$existing_portal_id = get_option( 'leadin_portalId' );
|
15 |
|
16 |
if ( ! empty( $existing_portal_id ) ) {
|
3 |
wp_die( '', '', 403 );
|
4 |
}
|
5 |
|
6 |
+
add_action( 'wp_ajax_leadin_registration_ajax', 'leadin_validate_nonce', 1 );
|
7 |
+
add_action( 'wp_ajax_leadin_registration_ajax', 'leadin_manage_options_or_403', 2 );
|
8 |
+
add_action( 'wp_ajax_leadin_registration_ajax', 'leadin_registration_ajax', 3 );
|
9 |
|
10 |
/**
|
11 |
* AJAX handler to connect portal to WordPress
|
12 |
*/
|
13 |
function leadin_registration_ajax() {
|
|
|
|
|
14 |
$existing_portal_id = get_option( 'leadin_portalId' );
|
15 |
|
16 |
if ( ! empty( $existing_portal_id ) ) {
|
{scripts → js/dist}/leadin.js
RENAMED
File without changes
|
js/dist/leadin.js.map
ADDED
@@ -0,0 +1 @@
|
|
|
1 |
+
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/raven-js/src/singleton.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/raven-js/src/utils.js","webpack:///./node_modules/raven-js/src/raven.js","webpack:///./node_modules/raven-js/vendor/TraceKit/tracekit.js","webpack:///./node_modules/raven-js/vendor/json-stringify-safe/stringify.js","webpack:///./node_modules/raven-js/src/configError.js","webpack:///./node_modules/raven-js/src/console.js","webpack:///./src/constants/leadinConfig.js","webpack:///./src/lib/Raven.js","webpack:///./src/menu.js","webpack:///./src/utils.js","webpack:///./src/constants/selectors.js","webpack:///./src/lib/Interframe.js","webpack:///./src/lib/EventBus.js","webpack:///./src/api/wordpressApi.js","webpack:///./src/api/hubspotPluginApi.js","webpack:///./src/constants/routes.js","webpack:///./src/navigation.js","webpack:///./src/constants/themes.js","webpack:///./src/handlers.js","webpack:///./src/fullscreen.js","webpack:///./src/app.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","RavenConstructor","_window","window","self","_Raven","Raven","noConflict","afterLoad","g","this","Function","e","isUndefined","what","isString","toString","supportsErrorEvent","ErrorEvent","each","obj","callback","j","length","hasKey","htmlElementAsString","elem","className","classes","attr","out","tagName","push","toLowerCase","id","split","attrWhitelist","getAttribute","join","isOnlyOneTruthy","a","b","isSameStacktrace","stack1","stack2","frames1","frames","frames2","filename","lineno","colno","isObject","isError","Error","isErrorEvent","isFunction","isEmptyObject","_","wrappedCallback","data","original","normalizedData","objectMerge","obj1","obj2","truncate","str","max","substr","objectFrozen","isFrozen","joinRegExp","patterns","pattern","sources","len","replace","source","RegExp","urlencode","pairs","encodeURIComponent","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","Math","random","htmlTreeAsString","nextStr","height","sepLength","parentNode","reverse","isSameException","ex1","ex2","values","type","stacktrace","parseUrl","url","match","query","fragment","protocol","host","path","relative","fill","replacement","track","orig","TraceKit","stringify","RavenConfigError","utils","wrapConsoleMethod","wrapMethod","dsnKeys","dsnPattern","now","Date","_document","document","_navigator","navigator","keepOriginalCallback","method","_hasJSON","JSON","_hasDocument","_hasNavigator","_lastCapturedException","_lastData","_lastEventId","_globalServer","_globalKey","_globalProject","_globalContext","_globalOptions","logger","ignoreErrors","ignoreUrls","whitelistUrls","includePaths","collectWindowErrors","maxMessageLength","maxUrlLength","stackTraceLimit","autoBreadcrumbs","instrument","sampleRate","_ignoreOnError","_isRavenInstalled","_originalErrorStackTraceLimit","_originalConsole","console","_originalConsoleMethods","_plugins","_startTime","_wrappedBuiltIns","_breadcrumbs","_lastCapturedEvent","_keypressTimeout","_location","location","_lastHref","href","_resetBackoff","VERSION","debug","config","dsn","options","_logDebug","globalOptions","setDSN","maxBreadcrumbs","min","autoBreadcrumbDefaults","xhr","dom","instrumentDefaults","tryCatch","install","isSetup","report","subscribe","_handleOnErrorStackInfo","apply","arguments","_instrumentTryCatch","_instrumentBreadcrumbs","_drainPlugins","uri","_parseDSN","lastSlash","lastIndexOf","_dsn","user","_globalSecret","pass","_getGlobalServer","_globalEndpoint","context","func","args","undefined","wrap","_before","__raven__","__raven_wrapper__","wrapped","deep","_ignoreNextOnError","captureException","__inner__","uninstall","_restoreBuiltIns","ex","isNotError","isNotErrorEvent","isErrorEventWithoutError","error","captureMessage","trimHeadFrames","stack","computeStackTrace","_handleStackInfo","msg","test","message","initialCall","fileurl","fingerprint","_prepareFrames","_send","captureBreadcrumb","crumb","timestamp","breadcrumbCallback","result","shift","addPlugin","plugin","pluginArgs","slice","setUserContext","setExtraContext","extra","_mergeContext","setTagsContext","tags","clearContext","getContext","parse","setEnvironment","environment","setRelease","release","setDataCallback","dataCallback","setBreadcrumbCallback","setShouldSendCallback","shouldSendCallback","setTransport","transport","lastException","lastEventId","ravenNotConfiguredError","RavenConfig","showReportDialog","eventId","encode","qs","email","globalServer","script","createElement","async","src","head","body","appendChild","setTimeout","_triggerEvent","eventType","evt","toUpperCase","createEvent","initEvent","createEventObject","dispatchEvent","fireEvent","_breadcrumbEventHandler","evtName","target","category","_keypressEventHandler","isContentEditable","timeout","clearTimeout","_captureUrlChange","from","to","parsedLoc","parsedTo","parsedFrom","wrappedBuiltIns","wrapTimeFn","fn","Array","originalCallback","wrapEventTarget","proto","capture","secure","handleEvent","err","before","clickHandler","keypressHandler","requestAnimationFrame","cb","eventTargets","wrapProp","prop","xhrproto","XMLHttpRequest","origOpen","indexOf","__raven_xhr","status_code","origSend","onreadystatechangeHandler","readyState","status","props","onreadystatechange","origFetch","fetchInput","Request","fetchData","then","response","addEventListener","attachEvent","chrome","hasPushAndReplaceState","app","runtime","history","pushState","replaceState","oldOnPopState","onpopstate","currentHref","historyReplacementFunction","origHistFunction","log","consoleMethodCallback","level","builtin","installer","concat","exec","allowSecretKey","port","stackInfo","_processException","frame","_normalizeFrame","in_app","stackInfoUrl","normalized","line","column","function","prefixedMessage","exception","culprit","_trimPacket","request","Referer","breadcrumbs","_trimBreadcrumbs","urlProp","urlProps","_getHttpData","httpData","userAgent","headers","User-Agent","referrer","_backoffDuration","_backoffStart","_shouldBackoff","_isRepeatData","current","last","_setBackoffState","retry","getResponseHeader","parseInt","baseData","project","platform","serverName","server_name","_sendProcessedPayload","_getUuid","allowDuplicates","event_id","auth","sentry_version","sentry_client","sentry_key","sentry_secret","_makeRequest","onSuccess","onError","opts","XDomainRequest","onload","onerror","open","send","setUser","setReleaseContext","_slice","UNKNOWN_FUNCTION","ERROR_TYPES_RE","getLocationHref","_oldOnerrorHandler","_onErrorHandlerInstalled","handlers","lastArgs","lastExceptionStack","notifyHandlers","isWindowError","inner","traceKitWindowOnError","lineNo","colNo","augmentStackTraceWithInitialElement","processLastException","groups","_lastExceptionStack","_lastArgs","rethrow","incomplete","handler","unsubscribe","splice","computeStackTraceFromStackProp","submatch","parts","element","gecko","winjs","geckoEval","chromeEval","lines","isNative","columnNumber","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","item","functionName","funcs","recursion","curr","caller","input","substring","sourceURL","fileName","lineNumber","description","haystack","needle","serializer","replacer","cycleReplacer","keys","thisPos","Infinity","stringifyError","spaces","getSerialize","constructor","originalConsoleLevel","originalConsole","sentryLevel","leadinConfig","adminUrl","ajaxUrl","env","hubspotBaseUrl","leadinPluginVersion","nonce","plugins","phpVersion","portalId","theme","wpVersion","i18n","leadinI18n","addMenuItem","text","jQuery","find","addExternalLinks","chatflowsUrl","emailUrl","chatflows","localStorage","LEADIN_DEBUG","_console","_len","_key","domElements","iframe","spaNavigationButtons","subMenuButtons","eventBus","EventBus","_classCallCheck","bus","_this$bus","trigger","event","on","callbacks","postMessageObject","contentWindow","postMessage","reply","newMessage","assign","handleMessage","_callbackId","handleResponse","forEach","handleMessageEvent","origin","makeRequest","action","payload","success","ajaxPayload","contentType","jqXHR","responseText","ajax","post","portalPollingTimeout","getPortal","stopPortalPolling","startPortalIdPolling","reload","disconnect","getDomain","createHandler","onClearQueryParam","onConnect","onDisableNavigation","onDisconnect","onEnterFullScreen","onExitFullScreen","onGetAssetsPayload","onGetDomain","onInitNavigation","onInterframeReady","onPageReload","onUpgrade","onSyncRoute","changeRoute","route","onResponse","onTimeout","timeoutId","errorMessage","validAppRoutes","initNavigation","handleNavigation","appRoute","search","removeClass","pageParam","parent","addClass","setSelectedMenuItem","click","metaKey","altKey","shiftKey","preventDefault","themes","genesis-sample","formsStyle","fontFamily","labelTextColor","labelTextSize","submitFontColor","submitColor","chatStyle","accentColor","onScrollLeadFlowStyle","color","onExitLeadFlowStyle","academy-pro","agency-pro","agentpress-pro","altitude-pro","ambiance-pro","atmosphere-pro","author-pro","authority-pro","beautiful-pro","breakthrough-pro","cafe-pro","daily-dish-pro","digital-pro","education-pro","eleven40-pro","enterprise-pro","essence-pro","executive-pro","generate-pro","infinity-pro","interior-pro","lifestyle-pro","magazine-pro","metro-pro","minimum-pro","modern-studio-pro","monochrome-pro","news-pro","no-sidebar-pro","outfitter-pro","outreach-pro","parallax-pro","revolution-pro","sixteen-nine-pro","smart-passive-income-pro","wellness-pro","workstation-pro","connect","allMenuButtons","off","currentWindowLocation","newWindowLocation","domain","routes","includes","queryParamsRoutes","reduce","acc","index","syncRoute","leadin","php","wordpress","hub","map","Version","ready"],"mappings":"aACA,IAAAA,EAAA,GAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,GAAA,CACAG,EAAAH,EACAI,GAAA,EACAH,QAAA,IAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QAKAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CZ,EAAAkB,EAAA,SAAAhB,GACA,oBAAAiB,eAAAC,aACAN,OAAAC,eAAAb,EAAAiB,OAAAC,YAAA,CAAwDC,MAAA,WAExDP,OAAAC,eAAAb,EAAA,cAAiDmB,OAAA,KAQjDrB,EAAAsB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAArB,EAAAqB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFA1B,EAAAkB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAArB,EAAAU,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAzB,EAAA6B,EAAA,SAAA1B,GACA,IAAAS,EAAAT,KAAAqB,WACA,WAA2B,OAAArB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD/B,EAAAkC,EAAA,GAIAlC,IAAAmC,EAAA,sBClFA,SAAAC,GAMA,IAAAC,EAAuBrC,EAAQ,GAG/BsC,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GACAC,EAAAH,EAAAI,MAEAA,EAAA,IAAAL,EAQAK,EAAAC,WAAA,WAEA,OADAL,EAAAI,MAAAD,EACAC,GAGAA,EAAAE,YAEAzC,EAAAD,QAAAwC,mCC9BA,IAAAG,EAGAA,EAAA,WACA,OAAAC,KADA,GAIA,IAEAD,KAAA,IAAAE,SAAA,iBACC,MAAAC,GAED,iBAAAT,SAAAM,EAAAN,QAOApC,EAAAD,QAAA2C,oBCnBA,SAAAT,GAAA,IAAAE,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GAyBA,SAAAS,EAAAC,GACA,gBAAAA,EAOA,SAAAC,EAAAD,GACA,0BAAApC,OAAAkB,UAAAoB,SAAA7C,KAAA2C,GAQA,SAAAG,IACA,IAEA,OADA,IAAAC,WAAA,KACA,EACG,MAAAN,GACH,UAgBA,SAAAO,EAAAC,EAAAC,GACA,IAAArD,EAAAsD,EAEA,GAAAT,EAAAO,EAAAG,QACA,IAAAvD,KAAAoD,EACAI,EAAAJ,EAAApD,IACAqD,EAAAlD,KAAA,KAAAH,EAAAoD,EAAApD,SAKA,GADAsD,EAAAF,EAAAG,OAEA,IAAAvD,EAAA,EAAiBA,EAAAsD,EAAOtD,IACxBqD,EAAAlD,KAAA,KAAAH,EAAAoD,EAAApD,IA0CA,SAAAwD,EAAA9B,EAAAH,GACA,OAAAb,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAH,GA2IA,SAAAkC,EAAAC,GACA,IACAC,EACAC,EACArC,EACAsC,EACA7D,EALA8D,EAAA,GAOA,IAAAJ,MAAAK,QACA,SASA,GANAD,EAAAE,KAAAN,EAAAK,QAAAE,eACAP,EAAAQ,IACAJ,EAAAE,KAAA,IAAAN,EAAAQ,KAGAP,EAAAD,EAAAC,YACAZ,EAAAY,GAEA,IADAC,EAAAD,EAAAQ,MAAA,OACAnE,EAAA,EAAeA,EAAA4D,EAAAL,OAAoBvD,IACnC8D,EAAAE,KAAA,IAAAJ,EAAA5D,IAGA,IAAAoE,EAAA,8BACA,IAAApE,EAAA,EAAaA,EAAAoE,EAAAb,OAA0BvD,IACvCuB,EAAA6C,EAAApE,IACA6D,EAAAH,EAAAW,aAAA9C,KAEAuC,EAAAE,KAAA,IAAAzC,EAAA,KAAAsC,EAAA,MAGA,OAAAC,EAAAQ,KAAA,IAMA,SAAAC,EAAAC,EAAAC,GACA,WAAAD,IAAAC,GAoBA,SAAAC,EAAAC,EAAAC,GACA,GAAAL,EAAAI,EAAAC,GAAA,SAEA,IAOAJ,EAAAC,EAPAI,EAAAF,EAAAG,OACAC,EAAAH,EAAAE,OAGA,GAAAD,EAAAtB,SAAAwB,EAAAxB,OAAA,SAIA,QAAAvD,EAAA,EAAiBA,EAAA6E,EAAAtB,OAAoBvD,IAGrC,GAFAwE,EAAAK,EAAA7E,GACAyE,EAAAM,EAAA/E,GAEAwE,EAAAQ,WAAAP,EAAAO,UACAR,EAAAS,SAAAR,EAAAQ,QACAT,EAAAU,QAAAT,EAAAS,OACAV,EAAA,WAAAC,EAAA,SAEA,SAEA,SAkBA1E,EAAAD,QAAA,CACAqF,SApWA,SAAArC,GACA,uBAAAA,GAAA,OAAAA,GAoWAsC,QA/VA,SAAAnE,GACA,UAAY+B,SAAA7C,KAAAc,IACZ,qBAEA,yBAEA,4BACA,SACA,QACA,OAAAA,aAAAoE,QAuVAC,aAnVA,SAAArE,GACA,OAAAgC,KAAmC,wBAAnC,GAAmCD,SAAA7C,KAAAc,IAmVnC4B,cACA0C,WA7UA,SAAAzC,GACA,yBAAAA,GA6UAC,WACAyC,cAvUA,SAAA1C,GACA,QAAA2C,KAAA3C,EAAA,SACA,UAsUAG,qBACAyC,gBA3TA,SAAArC,GASA,OARA,SAAAsC,EAAAC,GACA,IAAAC,EAAAxC,EAAAsC,MACA,OAAAC,GACAA,EAAAC,IAEAA,IAsTA1C,OACA2C,YA9RA,SAAAC,EAAAC,GACA,OAAAA,GAGA7C,EAAA6C,EAAA,SAAAzE,EAAAN,GACA8E,EAAAxE,GAAAN,IAEA8E,GALAA,GA6RAE,SAtQA,SAAAC,EAAAC,GACA,OAAAA,GAAAD,EAAA3C,QAAA4C,EAAAD,IAAAE,OAAA,EAAAD,GAAA,KAsQAE,aA9QA,SAAAjD,GACA,QAAA1C,OAAA4F,UAGA5F,OAAA4F,SAAAlD,IA2QAI,SACA+C,WA1PA,SAAAC,GAQA,IALA,IAGAC,EAHAC,EAAA,GACA1G,EAAA,EACA2G,EAAAH,EAAAjD,OAGQvD,EAAA2G,EAAS3G,IAEjB+C,EADA0D,EAAAD,EAAAxG,IAIA0G,EAAA1C,KAAAyC,EAAAG,QAAA,8BAAiD,SAC5CH,KAAAI,QAELH,EAAA1C,KAAAyC,EAAAI,QAIA,WAAAC,OAAAJ,EAAApC,KAAA,WAuOAyC,UApOA,SAAAtG,GACA,IAAAuG,EAAA,GAIA,OAHA7D,EAAA1C,EAAA,SAAAc,EAAAN,GACA+F,EAAAhD,KAAAiD,mBAAA1F,GAAA,IAAA0F,mBAAAhG,MAEA+F,EAAA1C,KAAA,MAgOA4C,MA5MA,WACA,IAAAC,EAAAjF,EAAAiF,QAAAjF,EAAAkF,SAEA,IAAAvE,EAAAsE,MAAAE,gBAAA,CAGA,IAAAC,EAAA,IAAAC,YAAA,GACAJ,EAAAE,gBAAAC,GAGAA,EAAA,QAAAA,EAAA,SAEAA,EAAA,SAAAA,EAAA,SAEA,IAAAE,EAAA,SAAAC,GAEA,IADA,IAAAC,EAAAD,EAAAzE,SAAA,IACA0E,EAAAnE,OAAA,GACAmE,EAAA,IAAAA,EAEA,OAAAA,GAGA,OACAF,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IAIA,yCAAAV,QAAA,iBAAAvG,GACA,IAAAS,EAAA,GAAA6G,KAAAC,SAAA,EAEA,OADA,MAAAvH,EAAAS,EAAA,EAAAA,EAAA,GACAkC,SAAA,OAwKA6E,iBA5JA,SAAAnE,GAWA,IATA,IAOAoE,EALAhE,EAAA,GACAiE,EAAA,EACApB,EAAA,EAEAqB,EADA,MACAzE,OAGAG,GAAAqE,IATA,KAgBA,UANAD,EAAArE,EAAAC,KAOAqE,EAAA,GAAApB,EAAA7C,EAAAP,OAAAyE,EAAAF,EAAAvE,QAhBA,KAqBAO,EAAAE,KAAA8D,GAEAnB,GAAAmB,EAAAvE,OACAG,IAAAuE,WAGA,OAAAnE,EAAAoE,UAAA5D,KAvBA,QAsJAb,sBACA0E,gBA1EA,SAAAC,EAAAC,GACA,OAAA9D,EAAA6D,EAAAC,KAEAD,IAAAE,OAAA,GACAD,IAAAC,OAAA,GAEAF,EAAAG,OAAAF,EAAAE,MAAAH,EAAAnH,QAAAoH,EAAApH,OAEAyD,EAAA0D,EAAAI,WAAAH,EAAAG,cAmEA9D,mBACA+D,SA/NA,SAAAC,GACA,IAAAC,EAAAD,EAAAC,MAAA,kEACA,IAAAA,EAAA,SAGA,IAAAC,EAAAD,EAAA,OACAE,EAAAF,EAAA,OACA,OACAG,SAAAH,EAAA,GACAI,KAAAJ,EAAA,GACAK,KAAAL,EAAA,GACAM,SAAAN,EAAA,GAAAC,EAAAC,IAqNAK,KA/BA,SAAA9F,EAAA7C,EAAA4I,EAAAC,GACA,IAAAC,EAAAjG,EAAA7C,GACA6C,EAAA7C,GAAA4I,EAAAE,GACAD,GACAA,EAAApF,KAAA,CAAAZ,EAAA7C,EAAA8I,0CCpWA,SAAArH,GAEA,IAAAsH,EAAe1J,EAAQ,GACvB2J,EAAgB3J,EAAQ,GACxB4J,EAAuB5J,EAAQ,GAE/B6J,EAAY7J,EAAQ,GACpBwF,EAAAqE,EAAArE,QACAD,EAAAsE,EAAAtE,SAEAG,GADAH,EAAAsE,EAAAtE,SACAsE,EAAAnE,cACAzC,EAAA4G,EAAA5G,YACA0C,EAAAkE,EAAAlE,WACAxC,EAAA0G,EAAA1G,SACAyC,EAAAiE,EAAAjE,cACArC,EAAAsG,EAAAtG,KACA2C,EAAA2D,EAAA3D,YACAG,EAAAwD,EAAAxD,SACAI,EAAAoD,EAAApD,aACA7C,EAAAiG,EAAAjG,OACA+C,EAAAkD,EAAAlD,WACAQ,EAAA0C,EAAA1C,UACAG,EAAAuC,EAAAvC,MACAW,EAAA4B,EAAA5B,iBACAM,EAAAsB,EAAAtB,gBACAzD,EAAA+E,EAAA/E,iBACA+D,EAAAgB,EAAAhB,SACAS,EAAAO,EAAAP,KAEAQ,EAAwB9J,EAAQ,GAAW+J,WAE3CC,EAAA,2CAAAzF,MAAA,KACA0F,EAAA,gEAEA,SAAAC,IACA,WAAAC,KAIA,IAAA7H,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GACA4H,EAAA9H,EAAA+H,SACAC,EAAAhI,EAAAiI,UAEA,SAAAC,EAAAxE,EAAAvC,GACA,OAAAkC,EAAAlC,GACA,SAAAsC,GACA,OAAAtC,EAAAsC,EAAAC,IAEAvC,EAMA,SAAAf,IA8CA,QAAA+H,KA7CA3H,KAAA4H,WAAA,iBAAAC,YAAAhB,WAEA7G,KAAA8H,cAAA3H,EAAAmH,GACAtH,KAAA+H,eAAA5H,EAAAqH,GACAxH,KAAAgI,uBAAA,KACAhI,KAAAiI,UAAA,KACAjI,KAAAkI,aAAA,KACAlI,KAAAmI,cAAA,KACAnI,KAAAoI,WAAA,KACApI,KAAAqI,eAAA,KACArI,KAAAsI,eAAA,GACAtI,KAAAuI,eAAA,CACAC,OAAA,aACAC,aAAA,GACAC,WAAA,GACAC,cAAA,GACAC,aAAA,GACAC,qBAAA,EACAC,iBAAA,EAGAC,aAAA,IACAC,gBAAA,GACAC,iBAAA,EACAC,YAAA,EACAC,WAAA,GAEAnJ,KAAAoJ,eAAA,EACApJ,KAAAqJ,mBAAA,EACArJ,KAAAsJ,8BAAA3G,MAAAqG,gBAGAhJ,KAAAuJ,iBAAA/J,EAAAgK,SAAA,GACAxJ,KAAAyJ,wBAAA,GACAzJ,KAAA0J,SAAA,GACA1J,KAAA2J,WAAAvC,IACApH,KAAA4J,iBAAA,GACA5J,KAAA6J,aAAA,GACA7J,KAAA8J,mBAAA,KACA9J,KAAA+J,iBACA/J,KAAAgK,UAAAxK,EAAAyK,SACAjK,KAAAkK,UAAAlK,KAAAgK,WAAAhK,KAAAgK,UAAAG,KACAnK,KAAAoK,gBAGApK,KAAAuJ,iBACAvJ,KAAAyJ,wBAAA9B,GAAA3H,KAAAuJ,iBAAA5B,GAUA/H,EAAAV,UAAA,CAKAmL,QAAA,SAEAC,OAAA,EAEA1D,WASA2D,OAAA,SAAAC,EAAAC,GACA,IAAA/K,EAAAM,KAEA,GAAAN,EAAAyI,cAEA,OADAnI,KAAA0K,UAAA,oDACAhL,EAEA,IAAA8K,EAAA,OAAA9K,EAEA,IAAAiL,EAAAjL,EAAA6I,eAGAkC,GACAhK,EAAAgK,EAAA,SAAA5L,EAAAN,GAEA,SAAAM,GAAA,UAAAA,GAAA,SAAAA,EACAa,EAAA4I,eAAAzJ,GAAAN,EAEAoM,EAAA9L,GAAAN,IAKAmB,EAAAkL,OAAAJ,GAIAG,EAAAlC,aAAAnH,KAAA,qBACAqJ,EAAAlC,aAAAnH,KAAA,iDAGAqJ,EAAAlC,aAAA5E,EAAA8G,EAAAlC,cACAkC,EAAAjC,aAAAiC,EAAAjC,WAAA7H,QACAgD,EAAA8G,EAAAjC,YAEAiC,EAAAhC,gBAAAgC,EAAAhC,cAAA9H,QACAgD,EAAA8G,EAAAhC,eAEAgC,EAAA/B,aAAA/E,EAAA8G,EAAA/B,cACA+B,EAAAE,eAAA5F,KAAAxB,IACA,EACAwB,KAAA6F,IAAAH,EAAAE,gBAAA,UAGA,IAAAE,EAAA,CACAC,KAAA,EACAxB,SAAA,EACAyB,KAAA,EACAhB,UAAA,GAGAhB,EAAA0B,EAAA1B,gBACU,oBAAV,GAAU3I,SAAA7C,KAAAwL,GACVA,EAAA7F,EAAA2H,EAAA9B,IACK,IAAAA,IACLA,EAAA8B,GAEAJ,EAAA1B,kBAEA,IAAAiC,EAAA,CACAC,UAAA,GAGAjC,EAAAyB,EAAAzB,WAWA,MAVU,oBAAV,GAAU5I,SAAA7C,KAAAyL,GACVA,EAAA9F,EAAA8H,EAAAhC,IACK,IAAAA,IACLA,EAAAgC,GAEAP,EAAAzB,aAEAtC,EAAAiC,sBAAA8B,EAAA9B,oBAGAnJ,GAWA0L,QAAA,WACA,IAAA1L,EAAAM,KAkBA,OAjBAN,EAAA2L,YAAA3L,EAAA2J,oBACAzC,EAAA0E,OAAAC,UAAA,WACA7L,EAAA8L,wBAAAC,MAAA/L,EAAAgM,aAEAhM,EAAA6I,eAAAW,YAAAxJ,EAAA6I,eAAAW,WAAAiC,UACAzL,EAAAiM,sBAGAjM,EAAA6I,eAAAU,iBAAAvJ,EAAAkM,yBAGAlM,EAAAmM,gBAEAnM,EAAA2J,mBAAA,GAGA1G,MAAAqG,gBAAAtJ,EAAA6I,eAAAS,gBACAhJ,MAQA4K,OAAA,SAAAJ,GACA,IACAsB,EADA9L,KACA+L,UAAAvB,GACAwB,EAAAF,EAAAxF,KAAA2F,YAAA,KACA3F,EAAAwF,EAAAxF,KAAA5C,OAAA,EAAAsI,GAHAhM,KAKAkM,KAAA1B,EALAxK,KAMAoI,WAAA0D,EAAAK,KANAnM,KAOAoM,cAAAN,EAAAO,MAAAP,EAAAO,KAAA3I,OAAA,GAPA1D,KAQAqI,eAAAyD,EAAAxF,KAAA5C,OAAAsI,EAAA,GARAhM,KAUAmI,cAVAnI,KAUAsM,iBAAAR,GAVA9L,KAYAuM,gBAZAvM,KAaAmI,cAAA,IAAA7B,EAAA,OAbAtG,KAaAqI,eAAA,UAIArI,KAAAoK,iBAWAoC,QAAA,SAAA/B,EAAAgC,EAAAC,GAOA,OANA7J,EAAA4H,KACAiC,EAAAD,GAAA,GACAA,EAAAhC,EACAA,OAAAkC,GAGA3M,KAAA4M,KAAAnC,EAAAgC,GAAAhB,MAAAzL,KAAA0M,IAWAE,KAAA,SAAAnC,EAAAgC,EAAAI,GACA,IAAAnN,EAAAM,KAGA,GAAAG,EAAAsM,KAAA5J,EAAA4H,GACA,OAAAA,EAWA,GAPA5H,EAAA4H,KACAgC,EAAAhC,EACAA,OAAAkC,IAKA9J,EAAA4J,GACA,OAAAA,EAIA,IACA,GAAAA,EAAAK,UACA,OAAAL,EAIA,GAAAA,EAAAM,kBACA,OAAAN,EAAAM,kBAEK,MAAA7M,GAIL,OAAAuM,EAGA,SAAAO,IACA,IAAAN,EAAA,GACApP,EAAAoO,UAAA7K,OACAoM,GAAAxC,OAAA,IAAAA,EAAAwC,KAQA,IANAJ,GAAAhK,EAAAgK,IACAA,EAAApB,MAAAzL,KAAA0L,WAKApO,KAAAoP,EAAApP,GAAA2P,EAAAvN,EAAAkN,KAAAnC,EAAAiB,UAAApO,IAAAoO,UAAApO,GAEA,IAKA,OAAAmP,EAAAhB,MAAAzL,KAAA0M,GACO,MAAAxM,GAGP,MAFAR,EAAAwN,qBACAxN,EAAAyN,iBAAAjN,EAAAuK,GACAvK,GAKA,QAAAjB,KAAAwN,EACA3L,EAAA2L,EAAAxN,KACA+N,EAAA/N,GAAAwN,EAAAxN,IAWA,OARA+N,EAAA9N,UAAAuN,EAAAvN,UAEAuN,EAAAM,kBAAAC,EAGAA,EAAAF,WAAA,EACAE,EAAAI,UAAAX,EAEAO,GAQAK,UAAA,WAQA,OAPAzG,EAAA0E,OAAA+B,YAEArN,KAAAsN,mBAEA3K,MAAAqG,gBAAAhJ,KAAAsJ,8BACAtJ,KAAAqJ,mBAAA,EAEArJ,MAUAmN,iBAAA,SAAAI,EAAA9C,GAEA,IAAA+C,GAAA9K,EAAA6K,GACAE,GAAA7K,EAAA2K,GACAG,EAAA9K,EAAA2K,OAAAI,MAEA,GAAAH,GAAAC,GAAAC,EACA,OAAA1N,KAAA4N,eACAL,EACAnK,EACA,CACAyK,eAAA,EACA/H,YAAA,GAEA2E,IAMA7H,EAAA2K,SAAAI,OAGA3N,KAAAgI,uBAAAuF,EAOA,IACA,IAAAO,EAAAlH,EAAAmH,kBAAAR,GACAvN,KAAAgO,iBAAAF,EAAArD,GACK,MAAA/E,GACL,GAAA6H,IAAA7H,EACA,MAAAA,EAIA,OAAA1F,MAUA4N,eAAA,SAAAK,EAAAxD,GAIA,IACAzK,KAAAuI,eAAAE,aAAAyF,OACAlO,KAAAuI,eAAAE,aAAAyF,KAAAD,GAFA,CASA,IAOAV,EAPAtK,EAAAG,EACA,CACA+K,QAAAF,EAAA,IAJAxD,KAAA,IAcA,IACA,UAAA9H,MAAAsL,GACK,MAAAvI,GACL6H,EAAA7H,EAIA6H,EAAA1P,KAAA,KACA,IAAAiQ,EAAAlH,EAAAmH,kBAAAR,GAGAa,EAAAN,QAAA,GAEAO,EAAAD,KAAApI,KAAA,GAEA,KACAhG,KAAAuI,eAAAG,WAAAwF,OACAlO,KAAAuI,eAAAG,WAAAwF,KAAAG,OAMArO,KAAAuI,eAAAI,cAAAuF,MACAlO,KAAAuI,eAAAI,cAAAuF,KAAAG,IAFA,CAOA,GAAArO,KAAAuI,eAAAzC,YAAA2E,KAAA3E,WAAA,CACA2E,EAAArH,EACA,CAGAkL,YAAAL,EAIAJ,gBAAApD,EAAAoD,gBAAA,MAEApD,GAGA,IAAArI,EAAApC,KAAAuO,eAAAT,EAAArD,GACAxH,EAAA6C,WAAA,CAEA1D,SAAAoD,WAOA,OAFAxF,KAAAwO,MAAAvL,GAEAjD,QAGAyO,kBAAA,SAAA/N,GACA,IAAAgO,EAAAtL,EACA,CACAuL,UAAAvH,IAAA,KAEA1G,GAGA,GAAAmC,EAAA7C,KAAAuI,eAAAqG,oBAAA,CACA,IAAAC,EAAA7O,KAAAuI,eAAAqG,mBAAAF,GAEA,GAAAjM,EAAAoM,KAAA/L,EAAA+L,GACAH,EAAAG,OACO,QAAAA,EACP,OAAA7O,KAQA,OAJAA,KAAA6J,aAAAvI,KAAAoN,GACA1O,KAAA6J,aAAAhJ,OAAAb,KAAAuI,eAAAsC,gBACA7K,KAAA6J,aAAAiF,QAEA9O,MAGA+O,UAAA,SAAAC,GACA,IAAAC,EAAA,GAAAC,MAAAzR,KAAAiO,UAAA,GAOA,OALA1L,KAAA0J,SAAApI,KAAA,CAAA0N,EAAAC,IACAjP,KAAAqJ,mBACArJ,KAAA6L,gBAGA7L,MASAmP,eAAA,SAAAhD,GAIA,OAFAnM,KAAAsI,eAAA6D,OAEAnM,MASAoP,gBAAA,SAAAC,GAGA,OAFArP,KAAAsP,cAAA,QAAAD,GAEArP,MASAuP,eAAA,SAAAC,GAGA,OAFAxP,KAAAsP,cAAA,OAAAE,GAEAxP,MAQAyP,aAAA,WAGA,OAFAzP,KAAAsI,eAAA,GAEAtI,MAQA0P,WAAA,WAEA,OAAA7H,KAAA8H,MAAA9I,EAAA7G,KAAAsI,kBASAsH,eAAA,SAAAC,GAGA,OAFA7P,KAAAuI,eAAAsH,cAEA7P,MASA8P,WAAA,SAAAC,GAGA,OAFA/P,KAAAuI,eAAAwH,UAEA/P,MAUAgQ,gBAAA,SAAArP,GACA,IAAAuC,EAAAlD,KAAAuI,eAAA0H,aAEA,OADAjQ,KAAAuI,eAAA0H,aAAAvI,EAAAxE,EAAAvC,GACAX,MAUAkQ,sBAAA,SAAAvP,GACA,IAAAuC,EAAAlD,KAAAuI,eAAAqG,mBAEA,OADA5O,KAAAuI,eAAAqG,mBAAAlH,EAAAxE,EAAAvC,GACAX,MAUAmQ,sBAAA,SAAAxP,GACA,IAAAuC,EAAAlD,KAAAuI,eAAA6H,mBAEA,OADApQ,KAAAuI,eAAA6H,mBAAA1I,EAAAxE,EAAAvC,GACAX,MAYAqQ,aAAA,SAAAC,GAGA,OAFAtQ,KAAAuI,eAAA+H,YAEAtQ,MAQAuQ,cAAA,WACA,OAAAvQ,KAAAgI,wBAQAwI,YAAA,WACA,OAAAxQ,KAAAkI,cAQAmD,QAAA,WACA,QAAArL,KAAA4H,aACA5H,KAAAmI,gBACAnI,KAAAyQ,0BACAzQ,KAAAyQ,yBAAA,EACAzQ,KAAA0K,UAAA,mDAEA,KAKA5K,UAAA,WAIA,IAAA4Q,EAAAlR,EAAAkR,YACAA,GACA1Q,KAAAuK,OAAAmG,EAAAlG,IAAAkG,EAAAnG,QAAAa,WAIAuF,iBAAA,SAAAlG,GACA,GACAnD,EADA,CAOA,IAAAkJ,GAFA/F,KAAA,IAEAmG,SAAA5Q,KAAAwQ,cACA,IAAAA,EACA,UAAA1J,EAAA,mBAGA,IAAA0D,EAAAC,EAAAD,KAAAxK,KAAAkM,KACA,IAAA1B,EACA,UAAA1D,EAAA,eAGA,IAAA+J,EAAAtM,mBACAuM,EAAA,GACAA,GAAA,YAAAD,EAAAL,GACAM,GAAA,QAAAD,EAAArG,GAEA,IAAA2B,EAAA1B,EAAA0B,MAAAnM,KAAAsI,eAAA6D,KACAA,IACAA,EAAAtO,OAAAiT,GAAA,SAAAD,EAAA1E,EAAAtO,OACAsO,EAAA4E,QAAAD,GAAA,UAAAD,EAAA1E,EAAA4E,SAGA,IAAAC,EAAAhR,KAAAsM,iBAAAtM,KAAA+L,UAAAvB,IAEAyG,EAAA3J,EAAA4J,cAAA,UACAD,EAAAE,OAAA,EACAF,EAAAG,IAAAJ,EAAA,yBAAAF,GACAxJ,EAAA+J,MAAA/J,EAAAgK,MAAAC,YAAAN,KAIA/D,mBAAA,WACA,IAAAxN,EAAAM,KACAA,KAAAoJ,gBAAA,EACAoI,WAAA,WAEA9R,EAAA0J,gBAAA,KAIAqI,cAAA,SAAAC,EAAAjH,GAEA,IAAAkH,EAAA9S,EAEA,GAAAmB,KAAA8H,aAAA,CAcA,IAAAjJ,KAZA4L,KAAA,GAEAiH,EAAA,QAAAA,EAAAhO,OAAA,KAAAkO,cAAAF,EAAAhO,OAAA,GAEA4D,EAAAuK,aACAF,EAAArK,EAAAuK,YAAA,eACAC,UAAAJ,GAAA,OAEAC,EAAArK,EAAAyK,qBACAL,YAGAjH,EACA3J,EAAA2J,EAAA5L,KACA8S,EAAA9S,GAAA4L,EAAA5L,IAGA,GAAAyI,EAAAuK,YAEAvK,EAAA0K,cAAAL,QAIA,IACArK,EAAA2K,UAAA,KAAAN,EAAAD,UAAAnQ,cAAAoQ,GACO,MAAAzR,OAYPgS,wBAAA,SAAAC,GACA,IAAAzS,EAAAM,KACA,gBAAA2R,GASA,GALAjS,EAAAqK,iBAAA,KAKArK,EAAAoK,qBAAA6H,EAAA,CAQA,IAAAS,EANA1S,EAAAoK,mBAAA6H,EAOA,IACAS,EAAAjN,EAAAwM,EAAAS,QACO,MAAAlS,GACPkS,EAAA,YAGA1S,EAAA+O,kBAAA,CACA4D,SAAA,MAAAF,EACAhE,QAAAiE,OAUAE,sBAAA,WACA,IAAA5S,EAAAM,KAMA,gBAAA2R,GACA,IAAAS,EACA,IACAA,EAAAT,EAAAS,OACO,MAAAlS,GAGP,OAEA,IAAAmB,EAAA+Q,KAAA/Q,QAKA,GACAA,IACA,UAAAA,GAAA,aAAAA,GAAA+Q,EAAAG,mBAFA,CAQA,IAAAC,EAAA9S,EAAAqK,iBACAyI,GACA9S,EAAAwS,wBAAA,QAAAxS,CAAAiS,GAEAc,aAAAD,GACA9S,EAAAqK,iBAAAyH,WAAA,WACA9R,EAAAqK,iBAAA,MAjCA,QA4CA2I,kBAAA,SAAAC,EAAAC,GACA,IAAAC,EAAA9M,EAAA/F,KAAAgK,UAAAG,MACA2I,EAAA/M,EAAA6M,GACAG,EAAAhN,EAAA4M,GAKA3S,KAAAkK,UAAA0I,EAIAC,EAAAzM,WAAA0M,EAAA1M,UAAAyM,EAAAxM,OAAAyM,EAAAzM,OACAuM,EAAAE,EAAAvM,UACAsM,EAAAzM,WAAA2M,EAAA3M,UAAAyM,EAAAxM,OAAA0M,EAAA1M,OACAsM,EAAAI,EAAAxM,UAEAvG,KAAAyO,kBAAA,CACA4D,SAAA,aACApP,KAAA,CACA2P,KACAD,WASAhH,oBAAA,WACA,IAAAjM,EAAAM,KAEAgT,EAAAtT,EAAAkK,iBAEA,SAAAqJ,EAAAtM,GACA,gBAAAuM,EAAA1U,GAKA,IADA,IAAAkO,EAAA,IAAAyG,MAAAzH,UAAA7K,QACAvD,EAAA,EAAuBA,EAAAoP,EAAA7L,SAAiBvD,EACxCoP,EAAApP,GAAAoO,UAAApO,GAEA,IAAA8V,EAAA1G,EAAA,GAQA,OAPA7J,EAAAuQ,KACA1G,EAAA,GAAAhN,EAAAkN,KAAAwG,IAMAzM,EAAA8E,MACA9E,EAAA8E,MAAAzL,KAAA0M,GAEA/F,EAAA+F,EAAA,GAAAA,EAAA,KAKA,IAAAzD,EAAAjJ,KAAAuI,eAAAU,gBAEA,SAAAoK,EAAA/T,GACA,IAAAgU,EAAA9T,EAAAF,IAAAE,EAAAF,GAAAJ,UACAoU,KAAAnU,gBAAAmU,EAAAnU,eAAA,sBACAqH,EACA8M,EACA,mBACA,SAAA3M,GACA,gBAAAwL,EAAAe,EAAAK,EAAAC,GAEA,IACAN,KAAAO,cACAP,EAAAO,YAAA/T,EAAAkN,KAAAsG,EAAAO,cAEe,MAAAC,IAMf,IAAAC,EAAAC,EAAAC,EA6BA,OA1BA5K,GACAA,EAAAgC,MACA,gBAAA3L,GAAA,SAAAA,KAIAsU,EAAAlU,EAAAwS,wBAAA,SACA2B,EAAAnU,EAAA4S,wBACAqB,EAAA,SAAAhC,GAIA,GAAAA,EAAA,CAEA,IAAAD,EACA,IACAA,EAAAC,EAAA9L,KACmB,MAAA3F,GAGnB,OAEA,gBAAAwR,EAAAkC,EAAAjC,GACA,aAAAD,EAAAmC,EAAAlC,QAAA,KAGAhL,EAAAlJ,KACAuC,KACAmS,EACAzS,EAAAkN,KAAAsG,OAAAvG,EAAAgH,GACAJ,EACAC,KAIAR,GAEAxM,EACA8M,EACA,sBACA,SAAA3M,GACA,gBAAAgL,EAAAuB,EAAAK,EAAAC,GACA,IACAN,QAAAnG,kBAAAmG,EAAAnG,kBAAAmG,GACe,MAAAhT,IAGf,OAAAyG,EAAAlJ,KAAAuC,KAAA2R,EAAAuB,EAAAK,EAAAC,KAGAR,IAKAxM,EAAAhH,EAAA,aAAAyT,EAAAD,GACAxM,EAAAhH,EAAA,cAAAyT,EAAAD,GACAxT,EAAAsU,uBACAtN,EACAhH,EACA,wBACA,SAAAmH,GACA,gBAAAoN,GACA,OAAApN,EAAAjH,EAAAkN,KAAAmH,MAGAf,GAqCA,IA/BA,IAAAgB,EAAA,CACA,cACA,SACA,OACA,mBACA,iBACA,oBACA,kBACA,cACA,aACA,qBACA,cACA,aACA,iBACA,eACA,kBACA,cACA,cACA,eACA,qBACA,SACA,YACA,eACA,gBACA,YACA,kBACA,SACA,iBACA,4BACA,wBAEA1W,EAAA,EAAmBA,EAAA0W,EAAAnT,OAAyBvD,IAC5C+V,EAAAW,EAAA1W,KAaAsO,uBAAA,WACA,IAAAlM,EAAAM,KACAiJ,EAAAjJ,KAAAuI,eAAAU,gBAEA+J,EAAAtT,EAAAkK,iBAEA,SAAAqK,EAAAC,EAAAlJ,GACAkJ,KAAAlJ,GAAAnI,EAAAmI,EAAAkJ,KACA1N,EAAAwE,EAAAkJ,EAAA,SAAAvN,GACA,OAAAjH,EAAAkN,KAAAjG,KAKA,GAAAsC,EAAA+B,KAAA,mBAAAxL,EAAA,CACA,IAAA2U,EAAAC,eAAAlV,UACAsH,EACA2N,EACA,OACA,SAAAE,GACA,gBAAA1M,EAAA3B,GAYA,OARA3F,EAAA2F,KAAA,IAAAA,EAAAsO,QAAA5U,EAAA0I,cACApI,KAAAuU,YAAA,CACA5M,SACA3B,MACAwO,YAAA,OAIAH,EAAA5I,MAAAzL,KAAA0L,aAGAsH,GAGAxM,EACA2N,EACA,OACA,SAAAM,GACA,gBAAAxR,GAEA,IAAA+H,EAAAhL,KAEA,SAAA0U,IACA,GAAA1J,EAAAuJ,aAAA,IAAAvJ,EAAA2J,WAAA,CACA,IAGA3J,EAAAuJ,YAAAC,YAAAxJ,EAAA4J,OACiB,MAAA1U,IAIjBR,EAAA+O,kBAAA,CACA5I,KAAA,OACAwM,SAAA,MACApP,KAAA+H,EAAAuJ,eAMA,IADA,IAAAM,EAAA,kCACAjU,EAAA,EAA2BA,EAAAiU,EAAAhU,OAAkBD,IAC7CqT,EAAAY,EAAAjU,GAAAoK,GAiBA,MAdA,uBAAAA,GAAAnI,EAAAmI,EAAA8J,oBACAtO,EACAwE,EACA,qBACA,SAAArE,GACA,OAAAjH,EAAAkN,KAAAjG,OAAAgG,EAAA+H,KAMA1J,EAAA8J,mBAAAJ,EAGAD,EAAAhJ,MAAAzL,KAAA0L,aAGAsH,GAIA/J,EAAA+B,KAAA,UAAAxL,GACAgH,EACAhH,EACA,QACA,SAAAuV,GACA,gBAAA7B,EAAA1U,GAKA,IADA,IAAAkO,EAAA,IAAAyG,MAAAzH,UAAA7K,QACAvD,EAAA,EAA2BA,EAAAoP,EAAA7L,SAAiBvD,EAC5CoP,EAAApP,GAAAoO,UAAApO,GAGA,IAEA0I,EAFAgP,EAAAtI,EAAA,GACA/E,EAAA,MAGA,iBAAAqN,EACAhP,EAAAgP,EACa,YAAAxV,GAAAwV,aAAAxV,EAAAyV,SACbjP,EAAAgP,EAAAhP,IACAgP,EAAArN,SACAA,EAAAqN,EAAArN,SAGA3B,EAAA,GAAAgP,EAGAtI,EAAA,IAAAA,EAAA,GAAA/E,SACAA,EAAA+E,EAAA,GAAA/E,QAGA,IAAAuN,EAAA,CACAvN,SACA3B,MACAwO,YAAA,MASA,OANA9U,EAAA+O,kBAAA,CACA5I,KAAA,OACAwM,SAAA,QACApP,KAAAiS,IAGAH,EAAAtJ,MAAAzL,KAAA0M,GAAAyI,KAAA,SAAAC,GAGA,OAFAF,EAAAV,YAAAY,EAAAR,OAEAQ,MAIApC,GAMA/J,EAAAgC,KAAAjL,KAAA8H,eACAR,EAAA+N,kBACA/N,EAAA+N,iBAAA,QAAA3V,EAAAwS,wBAAA,aACA5K,EAAA+N,iBAAA,WAAA3V,EAAA4S,yBAAA,KAGAhL,EAAAgO,YAAA,UAAA5V,EAAAwS,wBAAA,UACA5K,EAAAgO,YAAA,aAAA5V,EAAA4S,2BAQA,IAAAiD,EAAA/V,EAAA+V,OAEAC,IADAD,KAAAE,KAAAF,EAAAE,IAAAC,UAGAlW,EAAAmW,SACAA,QAAAC,WACAD,QAAAE,aACA,GAAA5M,EAAAgB,UAAAuL,EAAA,CAEA,IAAAM,EAAAtW,EAAAuW,WACAvW,EAAAuW,WAAA,WACA,IAAAC,EAAAtW,EAAAsK,UAAAG,KAGA,GAFAzK,EAAAgT,kBAAAhT,EAAAwK,UAAA8L,GAEAF,EACA,OAAAA,EAAArK,MAAAzL,KAAA0L,YAIA,IAAAuK,EAAA,SAAAC,GAGA,kBACA,IAAAlQ,EAAA0F,UAAA7K,OAAA,EAAA6K,UAAA,QAAAiB,EAQA,OALA3G,GAEAtG,EAAAgT,kBAAAhT,EAAAwK,UAAAlE,EAAA,IAGAkQ,EAAAzK,MAAAzL,KAAA0L,aAIAlF,EAAAmP,QAAA,YAAAM,EAAAjD,GACAxM,EAAAmP,QAAA,eAAAM,EAAAjD,GAGA,GAAA/J,EAAAO,SAAA,YAAAhK,GAAAgK,QAAA2M,IAAA,CAEA,IAAAC,EAAA,SAAAnI,EAAAhL,GACAvD,EAAA+O,kBAAA,CACAN,QAAAF,EACAoI,MAAApT,EAAAoT,MACAhE,SAAA,aAIA5R,EAAA,+CAAAsC,EAAAsT,GACArP,EAAAwC,QAAA6M,EAAAD,OAKA9I,iBAAA,WAGA,IADA,IAAAgJ,EACAtW,KAAA4J,iBAAA/I,QAAA,CAGA,IAAAH,GAFA4V,EAAAtW,KAAA4J,iBAAAkF,SAEA,GACAjR,EAAAyY,EAAA,GACA3P,EAAA2P,EAAA,GAEA5V,EAAA7C,GAAA8I,IAIAkF,cAAA,WACA,IAAAnM,EAAAM,KAGAS,EAAAT,KAAA0J,SAAA,SAAA3G,EAAAiM,GACA,IAAAuH,EAAAvH,EAAA,GACAtC,EAAAsC,EAAA,GACAuH,EAAA9K,MAAA/L,EAAA,CAAAA,GAAA8W,OAAA9J,OAIAX,UAAA,SAAAvI,GACA,IAAA9F,EAAAyJ,EAAAsP,KAAAjT,GACAgH,EAAA,GACAlN,EAAA,EAEA,IACA,KAAAA,KAAAkN,EAAAtD,EAAA5J,IAAAI,EAAAJ,IAAA,GACK,MAAA4C,GACL,UAAA4G,EAAA,gBAAAtD,GAGA,GAAAgH,EAAA6B,OAAArM,KAAAuI,eAAAmO,eACA,UAAA5P,EACA,kFAIA,OAAA0D,GAGA8B,iBAAA,SAAAR,GAEA,IAAAkF,EAAA,KAAAlF,EAAAzF,MAAAyF,EAAA6K,KAAA,IAAA7K,EAAA6K,KAAA,IAKA,OAHA7K,EAAA1F,WACA4K,EAAAlF,EAAA1F,SAAA,IAAA4K,GAEAA,GAGAxF,wBAAA,WAEAxL,KAAAoJ,gBACApJ,KAAAgO,iBAAAvC,MAAAzL,KAAA0L,YAIAsC,iBAAA,SAAA4I,EAAAnM,GACA,IAAArI,EAAApC,KAAAuO,eAAAqI,EAAAnM,GAEAzK,KAAAyR,cAAA,UACAmF,YACAnM,YAGAzK,KAAA6W,kBACAD,EAAA/Y,KACA+Y,EAAAzI,QACAyI,EAAA5Q,IACA4Q,EAAArU,OACAH,EACAqI,IAIA8D,eAAA,SAAAqI,EAAAnM,GACA,IAAA/K,EAAAM,KACAoC,EAAA,GACA,GAAAwU,EAAA9I,OAAA8I,EAAA9I,MAAAjN,SACAJ,EAAAmW,EAAA9I,MAAA,SAAAxQ,EAAAwQ,GACA,IAAAgJ,EAAApX,EAAAqX,gBAAAjJ,EAAA8I,EAAA5Q,KACA8Q,GACA1U,EAAAd,KAAAwV,KAKArM,KAAAoD,gBACA,QAAAjN,EAAA,EAAuBA,EAAA6J,EAAAoD,gBAAAjN,EAAAwB,EAAAvB,OAAiDD,IACxEwB,EAAAxB,GAAAoW,QAAA,EAKA,OADA5U,IAAA8M,MAAA,EAAAlP,KAAAuI,eAAAS,kBAIA+N,gBAAA,SAAAD,EAAAG,GAEA,IAAAC,EAAA,CACA5U,SAAAwU,EAAA9Q,IACAzD,OAAAuU,EAAAK,KACA3U,MAAAsU,EAAAM,OACAC,SAAAP,EAAArK,MAAA,KAuBA,OAfAqK,EAAA9Q,MACAkR,EAAA5U,SAAA2U,GAGAC,EAAAF,SAGAhX,KAAAuI,eAAAK,aAAAsF,OACAlO,KAAAuI,eAAAK,aAAAsF,KAAAgJ,EAAA5U,WAEA,qBAAA4L,KAAAgJ,EAAA,WAEA,qBAAAhJ,KAAAgJ,EAAA5U,WAGA4U,GAGAL,kBAAA,SAAAhR,EAAAsI,EAAAE,EAAA9L,EAAAH,EAAAqI,GACA,IASA3E,EATAwR,GAAAzR,IAAA,UAAAsI,GAAA,IACA,KACAnO,KAAAuI,eAAAE,aAAAyF,OACAlO,KAAAuI,eAAAE,aAAAyF,KAAAC,KACAnO,KAAAuI,eAAAE,aAAAyF,KAAAoJ,MAOAlV,KAAAvB,QACAwN,EAAAjM,EAAA,GAAAE,UAAA+L,EAGAjM,EAAAoD,UACAM,EAAA,CAAoB1D,WACfiM,IACLvI,EAAA,CACA1D,OAAA,CACA,CACAE,SAAA+L,EACA9L,SACAyU,QAAA,QAOAhX,KAAAuI,eAAAG,WAAAwF,OACAlO,KAAAuI,eAAAG,WAAAwF,KAAAG,OAMArO,KAAAuI,eAAAI,cAAAuF,MACAlO,KAAAuI,eAAAI,cAAAuF,KAAAG,KAFA,CAOA,IAAApL,EAAAG,EACA,CAEAmU,UAAA,CACA3R,OAAA,CACA,CACAC,OACAtH,MAAA4P,EACArI,gBAIA0R,QAAAnJ,GAEA5D,GAIAzK,KAAAwO,MAAAvL,KAGAwU,YAAA,SAAAxU,GAGA,IAAAQ,EAAAzD,KAAAuI,eAAAO,iBAIA,GAHA7F,EAAAkL,UACAlL,EAAAkL,QAAA5K,EAAAN,EAAAkL,QAAA1K,IAEAR,EAAAsU,UAAA,CACA,IAAAA,EAAAtU,EAAAsU,UAAA3R,OAAA,GACA2R,EAAAhZ,MAAAgF,EAAAgU,EAAAhZ,MAAAkF,GAGA,IAAAiU,EAAAzU,EAAAyU,QAaA,OAZAA,IACAA,EAAA1R,MACA0R,EAAA1R,IAAAzC,EAAAmU,EAAA1R,IAAAhG,KAAAuI,eAAAQ,eAEA2O,EAAAC,UACAD,EAAAC,QAAApU,EAAAmU,EAAAC,QAAA3X,KAAAuI,eAAAQ,gBAIA9F,EAAA2U,aAAA3U,EAAA2U,YAAAhS,QACA5F,KAAA6X,iBAAA5U,EAAA2U,aAEA3U,GAMA4U,iBAAA,SAAAD,GAQA,IALA,IACAE,EACApJ,EACAzL,EAHA8U,EAAA,oBAKAza,EAAA,EAAmBA,EAAAsa,EAAAhS,OAAA/E,SAA+BvD,EAElD,IADAoR,EAAAkJ,EAAAhS,OAAAtI,IAEA6B,eAAA,SACAsD,EAAAiM,EAAAzL,QACAU,EAAA+K,EAAAzL,MAHA,CAOAA,EAAAG,EAAA,GAA2BsL,EAAAzL,MAC3B,QAAArC,EAAA,EAAqBA,EAAAmX,EAAAlX,SAAqBD,EAC1CkX,EAAAC,EAAAnX,GACAqC,EAAA9D,eAAA2Y,IAAA7U,EAAA6U,KACA7U,EAAA6U,GAAAvU,EAAAN,EAAA6U,GAAA9X,KAAAuI,eAAAQ,eAGA6O,EAAAhS,OAAAtI,GAAA2F,SAIA+U,aAAA,WACA,GAAAhY,KAAA+H,eAAA/H,KAAA8H,aAAA,CACA,IAAAmQ,EAAA,GAkBA,OAhBAjY,KAAA+H,eAAAP,EAAA0Q,YACAD,EAAAE,QAAA,CACAC,aAAA3Q,UAAAyQ,YAIAlY,KAAA8H,eACAR,EAAA2C,UAAA3C,EAAA2C,SAAAE,OACA8N,EAAAjS,IAAAsB,EAAA2C,SAAAE,MAEA7C,EAAA+Q,WACAJ,EAAAE,UAAAF,EAAAE,QAAA,IACAF,EAAAE,QAAAR,QAAArQ,EAAA+Q,WAIAJ,IAGA7N,cAAA,WACApK,KAAAsY,iBAAA,EACAtY,KAAAuY,cAAA,MAGAC,eAAA,WACA,OAAAxY,KAAAsY,kBAAAlR,IAAApH,KAAAuY,cAAAvY,KAAAsY,kBAYAG,cAAA,SAAAC,GACA,IAAAC,EAAA3Y,KAAAiI,UAEA,SACA0Q,GACAD,EAAAvK,UAAAwK,EAAAxK,SACAuK,EAAAlB,UAAAmB,EAAAnB,WAKAkB,EAAA5S,YAAA6S,EAAA7S,WACA9D,EAAA0W,EAAA5S,WAAA6S,EAAA7S,aACK4S,EAAAnB,YAAAoB,EAAApB,WAEL9R,EAAAiT,EAAAnB,UAAAoB,EAAApB,aAMAqB,iBAAA,SAAAlB,GAEA,IAAA1X,KAAAwY,iBAAA,CAIA,IAAA5D,EAAA8C,EAAA9C,OAKA,SAAAA,GAAA,MAAAA,GAAA,MAAAA,EAAA,CAEA,IAAAiE,EACA,IAGAA,EAAAnB,EAAAoB,kBAAA,eACAD,EAAA,IAAAE,SAAAF,EAAA,IACK,MAAA3Y,IAILF,KAAAsY,iBAAAO,IAIA,EAAA7Y,KAAAsY,kBAAA,KAEAtY,KAAAuY,cAAAnR,OAGAoH,MAAA,SAAAvL,GACA,IAAA0H,EAAA3K,KAAAuI,eAEAyQ,EAAA,CACAC,QAAAjZ,KAAAqI,eACAG,OAAAmC,EAAAnC,OACA0Q,SAAA,cAEAjB,EAAAjY,KAAAgY,eAEAC,IACAe,EAAAtB,QAAAO,GAIAhV,EAAA4K,uBAAA5K,EAAA4K,gBAEA5K,EAAAG,EAAA4V,EAAA/V,IAGAuM,KAAApM,IAAA,GAA0CpD,KAAAsI,eAAAkH,MAAAvM,EAAAuM,MAC1CvM,EAAAoM,MAAAjM,IAAA,GAA2CpD,KAAAsI,eAAA+G,OAAApM,EAAAoM,OAG3CpM,EAAAoM,MAAA,oBAAAjI,IAAApH,KAAA2J,WAEA3J,KAAA6J,cAAA7J,KAAA6J,aAAAhJ,OAAA,IAGAoC,EAAA2U,YAAA,CACAhS,OAAA,GAAAsJ,MAAAzR,KAAAuC,KAAA6J,aAAA,KAKA/G,EAAAG,EAAAuM,cAAAvM,EAAAuM,KAEAxP,KAAAsI,eAAA6D,OAEAlJ,EAAAkJ,KAAAnM,KAAAsI,eAAA6D,MAIAxB,EAAAkF,cAAA5M,EAAA4M,YAAAlF,EAAAkF,aAGAlF,EAAAoF,UAAA9M,EAAA8M,QAAApF,EAAAoF,SAGApF,EAAAwO,aAAAlW,EAAAmW,YAAAzO,EAAAwO,YAEAtW,EAAA8H,EAAAsF,gBACAhN,EAAA0H,EAAAsF,aAAAhN,OAIAA,IAAAH,EAAAG,KAMAJ,EAAA8H,EAAAyF,sBACAzF,EAAAyF,mBAAAnN,KAOAjD,KAAAwY,iBACAxY,KAAA0K,UAAA,8CAAAzH,GAIA,iBAAA0H,EAAAxB,WACAlE,KAAAC,SAAAyF,EAAAxB,YACAnJ,KAAAqZ,sBAAApW,GAGAjD,KAAAqZ,sBAAApW,MAIAqW,SAAA,WACA,OAAA9U,KAGA6U,sBAAA,SAAApW,EAAAtC,GACA,IAAAjB,EAAAM,KACA2K,EAAA3K,KAAAuI,eAEA,GAAAvI,KAAAqL,UAQA,GALApI,EAAAjD,KAAAyX,YAAAxU,GAKAjD,KAAAuI,eAAAgR,kBAAAvZ,KAAAyY,cAAAxV,GAAA,CAQAjD,KAAAkI,aAAAjF,EAAAuW,WAAAvW,EAAAuW,SAAAxZ,KAAAsZ,YAGAtZ,KAAAiI,UAAAhF,EAEAjD,KAAA0K,UAAA,+BAAAzH,GAEA,IAAAwW,EAAA,CACAC,eAAA,IACAC,cAAA,YAAA3Z,KAAAqK,QACAuP,WAAA5Z,KAAAoI,YAGApI,KAAAoM,gBACAqN,EAAAI,cAAA7Z,KAAAoM,eAGA,IAAAmL,EAAAtU,EAAAsU,WAAAtU,EAAAsU,UAAA3R,OAAA,GACA5F,KAAAyO,kBAAA,CACA4D,SAAA,SACAlE,QAAAoJ,GACAA,EAAA1R,KAAA0R,EAAA1R,KAAA,SAAA0R,EAAAhZ,MACA0E,EAAAkL,QACAqL,SAAAvW,EAAAuW,SACAnD,MAAApT,EAAAoT,OAAA,UAGA,IAAArQ,EAAAhG,KAAAuM,iBACA5B,EAAA2F,WAAAtQ,KAAA8Z,cAAArc,KAAAuC,KAAA,CACAgG,MACAyT,OACAxW,OACAwH,QAAAE,EACAoP,UAAA,WACAra,EAAA0K,gBAEA1K,EAAA+R,cAAA,WACAxO,OACAmO,IAAApL,IAEArF,QAEAqZ,QAAA,SAAArM,GACAjO,EAAAgL,UAAA,2CAAAiD,GAEAA,EAAA+J,SACAhY,EAAAkZ,iBAAAjL,EAAA+J,SAGAhY,EAAA+R,cAAA,WACAxO,OACAmO,IAAApL,IAEA2H,KAAA,IAAAhL,MAAA,sDACAhC,KAAAgN,WA7DA3N,KAAA0K,UAAA,sCAAAzH,IAkEA6W,aAAA,SAAAG,GACA,IAAAvC,EAAAlY,EAAA4U,gBAAA,IAAA5U,EAAA4U,eACA,GAAAsD,IAGA,oBAAAA,GAAA,oBAAAwC,gBAEA,CAEA,IAAAlU,EAAAiU,EAAAjU,IAEA,oBAAA0R,EACAA,EAAA5C,mBAAA,WACA,OAAA4C,EAAA/C,WAES,SAAA+C,EAAA9C,OACTqF,EAAAF,WAAAE,EAAAF,iBACS,GAAAE,EAAAD,QAAA,CACT,IAAAtG,EAAA,IAAA/Q,MAAA,sBAAA+U,EAAA9C,QACAlB,EAAAgE,UACAuC,EAAAD,QAAAtG,MAIAgE,EAAA,IAAAwC,eAGAlU,IAAA9B,QAAA,eAGA+V,EAAAF,YACArC,EAAAyC,OAAAF,EAAAF,WAEAE,EAAAD,UACAtC,EAAA0C,QAAA,WACA,IAAA1G,EAAA,IAAA/Q,MAAA,qCACA+Q,EAAAgE,UACAuC,EAAAD,QAAAtG,MAOAgE,EAAA2C,KAAA,OAAArU,EAAA,IAAA3B,EAAA4V,EAAAR,OACA/B,EAAA4C,KAAAzT,EAAAoT,EAAAhX,SAGAyH,UAAA,SAAA2L,GACArW,KAAAyJ,wBAAA4M,IAAArW,KAAAsK,OAEArK,SAAAf,UAAAuM,MAAAhO,KACAuC,KAAAyJ,wBAAA4M,GACArW,KAAAuJ,iBACA,GAAA2F,MAAAzR,KAAAiO,UAAA,KAKA4D,cAAA,SAAAzQ,EAAA2N,GACArM,EAAAqM,UACAxM,KAAAsI,eAAAzJ,GAEAmB,KAAAsI,eAAAzJ,GAAAuE,EAAApD,KAAAsI,eAAAzJ,IAAA,GAA2E2N,KAM3E5M,EAAAV,UAAAqb,QAAA3a,EAAAV,UAAAiQ,eACAvP,EAAAV,UAAAsb,kBAAA5a,EAAAV,UAAA4Q,WAEAzS,EAAAD,QAAAwC,sCCr4DA,SAAAN,GAAA,IAAAyH,EAAY7J,EAAQ,GAYpB0J,EAAA,CACAiC,qBAAA,EACAyB,OAAA,GAIA9K,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GAGA+a,EAAA,GAAAvL,MACAwL,EAAA,IAGAC,EAAA,0GAEA,SAAAC,IACA,0BAAArT,UAAA,MAAAA,SAAA0C,SAAA,GAEA1C,SAAA0C,SAAAE,KA0CAvD,EAAA0E,OAAA,WACA,IA0DAuP,EAAAC,EA1DAC,EAAA,GACAC,EAAA,KACAzK,EAAA,KACA0K,EAAA,KAmCA,SAAAC,EAAApN,EAAAqN,GACA,IAAA5D,EAAA,KACA,IAAA4D,GAAAvU,EAAAiC,oBAAA,CAGA,QAAAvL,KAAAyd,EACA,GAAAA,EAAA5b,eAAA7B,GACA,IACAyd,EAAAzd,GAAAmO,MAAA,MAAAqC,GAAA0I,OAAAiE,EAAAhd,KAAAiO,UAAA,KACS,MAAA0P,GACT7D,EAAA6D,EAKA,GAAA7D,EACA,MAAAA,GAiBA,SAAA8D,EAAAlN,EAAAnI,EAAAsV,EAAAC,EAAAhO,GAGA,GAAA0N,EACArU,EAAAmH,kBAAAyN,oCACAP,EACAjV,EACAsV,EACAnN,GAEAsN,SACK,GAAAlO,GAAAxG,EAAArE,QAAA6K,GAOL2N,EADAtU,EAAAmH,kBAAAR,IACA,OACK,CACL,IAUAmO,EAVAzR,EAAA,CACAjE,MACAmR,KAAAmE,EACAlE,OAAAmE,GAGA1d,OAAA8O,EACAsB,EAAAE,EAEA,GAAY,oBAAZ,GAAY7N,SAAA7C,KAAA0Q,IACZuN,EAAAvN,EAAAlI,MAAA0U,MAEA9c,EAAA6d,EAAA,GACAzN,EAAAyN,EAAA,IAIAzR,EAAAwC,KAAAiO,EAQAQ,EANA,CACArd,OACAsQ,QAAAF,EACAjI,IAAA4U,IACA9M,MAAA,CAAA7D,KAEA,GAGA,QAAA4Q,GACAA,EAAApP,MAAAzL,KAAA0L,WAwBA,SAAA+P,IACA,IAAAE,EAAAV,EACAW,EAAAZ,EACAA,EAAA,KACAC,EAAA,KACA1K,EAAA,KACA2K,EAAAzP,MAAA,MAAAkQ,GAAA,GAAAnF,OAAAoF,IAUA,SAAAtQ,EAAAiC,EAAAsO,GACA,IAAAnP,EAAA+N,EAAAhd,KAAAiO,UAAA,GACA,GAAAuP,EAAA,CACA,GAAA1K,IAAAhD,EACA,OAEAkO,IAIA,IAAA3N,EAAAlH,EAAAmH,kBAAAR,GAeA,GAdA0N,EAAAnN,EACAyC,EAAAhD,EACAyN,EAAAtO,EAMA8E,WAAA,WACAjB,IAAAhD,GACAkO,KAEK3N,EAAAgO,WAAA,QAEL,IAAAD,EACA,MAAAtO,EAOA,OAHAjC,EAAAC,UArLA,SAAAwQ,GAsHAjB,IAGAD,EAAArb,EAAA4a,QACA5a,EAAA4a,QAAAiB,EACAP,GAAA,GAzHAC,EAAAzZ,KAAAya,IAoLAzQ,EAAA0Q,YA7KA,SAAAD,GACA,QAAAze,EAAAyd,EAAAla,OAAA,EAAqCvD,GAAA,IAAQA,EAC7Cyd,EAAAzd,KAAAye,GACAhB,EAAAkB,OAAA3e,EAAA,IA2KAgO,EAAA+B,UAnKA,WA2GAyN,IAGAtb,EAAA4a,QAAAS,EACAC,GAAA,EACAD,OAAAlO,GA9GAoO,EAAA,IAkKAzP,EAlMA,GAwPA1E,EAAAmH,kBAAA,WA4CA,SAAAmO,EAAA3O,GACA,YAAAA,EAAAO,OAAAP,EAAAO,MAAA,CAeA,IAbA,IAQAqO,EACAC,EACAC,EAVA9G,EAAA,qIACA+G,EAAA,kIACAC,EAAA,gHAEAC,EAAA,gDACAC,EAAA,gCACAC,EAAAnP,EAAAO,MAAArM,MAAA,MACAqM,EAAA,GAMAxQ,GAFA,sBAAAmZ,KAAAlJ,EAAAY,SAEA,GAAAvN,EAAA8b,EAAA7b,OAAqCvD,EAAAsD,IAAOtD,EAAA,CAC5C,GAAA8e,EAAA7G,EAAAkB,KAAAiG,EAAApf,IAAA,CACA,IAAAqf,EAAAP,EAAA,QAAAA,EAAA,GAAA9H,QAAA,UACA8H,EAAA,QAAAA,EAAA,GAAA9H,QAAA,UACA6H,EAAAM,EAAAhG,KAAA2F,EAAA,OAEAA,EAAA,GAAAD,EAAA,GACAC,EAAA,GAAAD,EAAA,GACAC,EAAA,GAAAD,EAAA,IAEAE,EAAA,CACArW,IAAA2W,EAAA,KAAAP,EAAA,GACA3P,KAAA2P,EAAA,IAAA1B,EACAhO,KAAAiQ,EAAA,CAAAP,EAAA,OACAjF,KAAAiF,EAAA,IAAAA,EAAA,QACAhF,OAAAgF,EAAA,IAAAA,EAAA,cAEO,GAAAA,EAAAG,EAAA9F,KAAAiG,EAAApf,IACP+e,EAAA,CACArW,IAAAoW,EAAA,GACA3P,KAAA2P,EAAA,IAAA1B,EACAhO,KAAA,GACAyK,MAAAiF,EAAA,GACAhF,OAAAgF,EAAA,IAAAA,EAAA,aAEO,MAAAA,EAAAE,EAAA7F,KAAAiG,EAAApf,KAsBP,SArBA8e,EAAA,IAAAA,EAAA,GAAA9H,QAAA,gBACA6H,EAAAK,EAAA/F,KAAA2F,EAAA,MAEAA,EAAA,GAAAD,EAAA,GACAC,EAAA,GAAAD,EAAA,GACAC,EAAA,SACS,IAAA9e,GAAA8e,EAAA,aAAA7O,EAAAqP,eAKT9O,EAAA,GAAAsJ,OAAA7J,EAAAqP,aAAA,GAEAP,EAAA,CACArW,IAAAoW,EAAA,GACA3P,KAAA2P,EAAA,IAAA1B,EACAhO,KAAA0P,EAAA,GAAAA,EAAA,GAAA3a,MAAA,QACA0V,KAAAiF,EAAA,IAAAA,EAAA,QACAhF,OAAAgF,EAAA,IAAAA,EAAA,UAMAC,EAAA5P,MAAA4P,EAAAlF,OACAkF,EAAA5P,KAAAiO,GAGA5M,EAAAxM,KAAA+a,GAGA,OAAAvO,EAAAjN,OAIA,CACAhD,KAAA0P,EAAA1P,KACAsQ,QAAAZ,EAAAY,QACAnI,IAAA4U,IACA9M,SAPA,MAwBA,SAAA0N,EAAA5E,EAAA5Q,EAAAsV,EAAAnN,GACA,IAAA0O,EAAA,CACA7W,MACAmR,KAAAmE,GAGA,GAAAuB,EAAA7W,KAAA6W,EAAA1F,KAAA,CAOA,GANAP,EAAAkF,YAAA,EAEAe,EAAApQ,OACAoQ,EAAApQ,KAAAiO,GAGA9D,EAAA9I,MAAAjN,OAAA,GACA+V,EAAA9I,MAAA,GAAA9H,MAAA6W,EAAA7W,IAAA,CACA,GAAA4Q,EAAA9I,MAAA,GAAAqJ,OAAA0F,EAAA1F,KACA,SACW,IACXP,EAAA9I,MAAA,GAAAqJ,MACAP,EAAA9I,MAAA,GAAArB,OAAAoQ,EAAApQ,KAGA,OADAmK,EAAA9I,MAAA,GAAAqJ,KAAA0F,EAAA1F,MACA,EAOA,OAFAP,EAAA9I,MAAAgP,QAAAD,GACAjG,EAAAmG,SAAA,GACA,EAKA,OAHAnG,EAAAkF,YAAA,GAGA,EAYA,SAAAkB,EAAAzP,EAAA0P,GASA,IARA,IAIAb,EACAc,EALAC,EAAA,qEACArP,EAAA,GACAsP,EAAA,GACAC,GAAA,EAMAC,EAAAN,EAAAO,OACAD,IAAAD,EACAC,IAAAC,OAEA,GAAAD,IAAAvP,GAAAuP,IAAA1W,EAAA0E,OAAA,CAkBA,GAbA4R,EAAA,CACAlX,IAAA,KACAyG,KAAAiO,EACAvD,KAAA,KACAC,OAAA,MAGAkG,EAAAzf,KACAqf,EAAAzQ,KAAA6Q,EAAAzf,MACOue,EAAAe,EAAA1G,KAAA6G,EAAAhd,eACP4c,EAAAzQ,KAAA2P,EAAA,SAGA,IAAAc,EAAAzQ,KACA,IACAyQ,EAAAzQ,KAAA2P,EAAAoB,MAAAC,UAAA,EAAArB,EAAAoB,MAAAlJ,QAAA,MACS,MAAApU,IAGTkd,EAAA,GAAAE,GACAD,GAAA,EAEAD,EAAA,GAAAE,IAAA,EAGAxP,EAAAxM,KAAA4b,GAGAD,GAGAnP,EAAAmO,OAAA,EAAAgB,GAGA,IAAApO,EAAA,CACAhR,KAAA0P,EAAA1P,KACAsQ,QAAAZ,EAAAY,QACAnI,IAAA4U,IACA9M,SAQA,OANA0N,EACA3M,EACAtB,EAAAmQ,WAAAnQ,EAAAoQ,SACApQ,EAAA4J,MAAA5J,EAAAqQ,WACArQ,EAAAY,SAAAZ,EAAAsQ,aAEAhP,EAQA,SAAAd,EAAAR,EAAA0P,GACA,IAAAnP,EAAA,KACAmP,EAAA,MAAAA,EAAA,GAAAA,EAEA,IAEA,GADAnP,EAAAoO,EAAA3O,GAEA,OAAAO,EAEK,MAAA5N,GACL,GAAA0G,EAAA0D,MACA,MAAApK,EAIA,IAEA,GADA4N,EAAAkP,EAAAzP,EAAA0P,EAAA,GAEA,OAAAnP,EAEK,MAAA5N,GACL,GAAA0G,EAAA0D,MACA,MAAApK,EAGA,OACArC,KAAA0P,EAAA1P,KACAsQ,QAAAZ,EAAAY,QACAnI,IAAA4U,KAOA,OAHA7M,EAAAyN,sCACAzN,EAAAmO,iCAEAnO,EAxSA,GA2SA1Q,EAAAD,QAAAwJ,mCChmBA,SAAA0N,EAAAwJ,EAAAC,GACA,QAAAzgB,EAAA,EAAiBA,EAAAwgB,EAAAjd,SAAqBvD,EACtC,GAAAwgB,EAAAxgB,KAAAygB,EAAA,OAAAzgB,EAEA,SAyBA,SAAA0gB,EAAAC,EAAAC,GACA,IAAApQ,EAAA,GACAqQ,EAAA,GAWA,OATA,MAAAD,IACAA,EAAA,SAAArf,EAAAN,GACA,OAAAuP,EAAA,KAAAvP,EACA,eAEA,eAAA4f,EAAAjP,MAAA,EAAAoF,EAAAxG,EAAAvP,IAAAqD,KAAA,WAIA,SAAA/C,EAAAN,GACA,GAAAuP,EAAAjN,OAAA,GACA,IAAAud,EAAA9J,EAAAxG,EAAA9N,OACAoe,EAAAtQ,EAAAmO,OAAAmC,EAAA,GAAAtQ,EAAAxM,KAAAtB,OACAoe,EAAAD,EAAAlC,OAAAmC,EAAAC,IAAAxf,GAAAsf,EAAA7c,KAAAzC,IAEAyV,EAAAxG,EAAAvP,KACAA,EAAA2f,EAAAzgB,KAAAuC,KAAAnB,EAAAN,SAGAuP,EAAAxM,KAAA/C,GAGA,aAAA0f,EACA1f,aAAAoE,MA5CA,SAAApE,GACA,IAAAmV,EAAA,CAEA5F,MAAAvP,EAAAuP,MACAK,QAAA5P,EAAA4P,QACAtQ,KAAAU,EAAAV,MAGA,QAAAP,KAAAiB,EACAP,OAAAkB,UAAAC,eAAA1B,KAAAc,EAAAjB,KACAoW,EAAApW,GAAAiB,EAAAjB,IAIA,OAAAoW,EA8BA4K,CAAA/f,KACA0f,EAAAxgB,KAAAuC,KAAAnB,EAAAN,KA5DAlB,EAAAD,QAUA,SAAAsD,EAAAud,EAAAM,EAAAL,GACA,OAAArW,KAAAhB,UAAAnG,EAAAsd,EAAAC,EAAAC,GAAAK,KAVAC,aAAAR,iBCZA,SAAAlX,EAAAqH,GACAnO,KAAAnC,KAAA,mBACAmC,KAAAmO,UAEArH,EAAA5H,UAAA,IAAAyD,MACAmE,EAAA5H,UAAAuf,YAAA3X,EAEAzJ,EAAAD,QAAA0J,iBC6BAzJ,EAAAD,QAAA,CACA6J,WArCA,SAAAuC,EAAA6M,EAAA1V,GACA,IAAA+d,EAAAlV,EAAA6M,GACAsI,EAAAnV,EAEA,GAAA6M,KAAA7M,EAAA,CAIA,IAAAoV,EAAA,SAAAvI,EAAA,UAAAA,EAEA7M,EAAA6M,GAAA,WACA,IAAA3J,EAAA,GAAAwC,MAAAzR,KAAAiO,WAEAuC,EAAA,GAAAvB,EAAA9K,KAAA,KACAqB,EAAA,CAAgBoT,MAAAuI,EAAApW,OAAA,UAAA6G,MAAA,CAA+C3D,UAAAgB,IAE/D,WAAA2J,GACA,IAAA3J,EAAA,KAEAuB,EAAA,sBAAAvB,EAAAwC,MAAA,GAAAtN,KAAA,wBACAqB,EAAAoM,MAAA3D,UAAAgB,EAAAwC,MAAA,GACAvO,KAAAsN,EAAAhL,IAGAtC,KAAAsN,EAAAhL,GAIAyb,GAGAze,SAAAf,UAAAuM,MAAAhO,KAAAihB,EAAAC,EAAAjS,kECnBIjN,OAAOof,aAXTC,aACAC,YACAC,QACAC,mBACAC,wBACAC,UACAC,YACAC,eACAC,aACAC,UACAC,cAGIC,EAAOhgB,OAAOigB,WCwBL9f,QAAf,ECpCA,SAAS+f,EAAYC,EAAMzV,GACzB0V,OAAO,yBACJC,KAAK,MACLnH,OACAhF,OAHH,gBAAA6C,OAG0BrM,EAH1B,sBAAAqM,OAGmDoJ,EAHnD,cAMK,SAASG,IACd,IAAMC,EAAY,GAAAxJ,OAAMyI,EAAN,eAAAzI,OAAkC8I,GAC9CW,EAAQ,GAAAzJ,OAAMyI,EAAN,WAAAzI,OAA8B8I,GAC5CK,EAAYF,EAAKS,UAAWF,GAC5BL,EAAYF,EAAK1O,MAAOkP,yKCbnB,SAAS9J,IACd,IACE,GAAI1W,OAAO0gB,aAAaC,aAAc,SAAAC,EAAAC,EAAA5U,UAAA7K,OAFnB6L,EAEmB,IAAAyG,MAAAmN,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAFnB7T,EAEmB6T,GAAA7U,UAAA6U,GACpC7T,EAAKoQ,QAAQ,aACbuD,EAAA7W,SAAQ2M,IAAR1K,MAAA4U,EAAe3T,IAEjB,MAAOxM,KCNJ,IAAMsgB,EAAc,CACzBC,OAAQ,iBACRC,qBACE,6GACFC,eAAgB,mCCEZC,EAAW,eCHf,SAAAC,iGAAcC,CAAA9gB,KAAA6gB,GACZ7gB,KAAK+gB,IAAMlB,OAAO,6DAGH,IAAAmB,GACfA,EAAAhhB,KAAK+gB,KAAIE,QAATxV,MAAAuV,EAAAtV,sCAGCwV,EAAOvgB,GACRX,KAAK+gB,IAAII,GAAGD,EAAOthB,EAAMgN,KAAKjM,0CDL5BygB,EAAY,GAElB,SAASC,EAAkBlT,GACzBgI,EAAI,mBACJA,EAAItO,KAAKhB,UAAUsH,IACnB0R,OAAOW,EAAYC,QAAQ,GAAGa,cAAcC,YAC1C1Z,KAAKhB,UAAUsH,GACf8Q,GAIJ,SAASuC,EAAMrT,EAASiH,GACjBA,IACHA,EAAW,oBAEb,IAAMqM,EAAazjB,OAAO0jB,OAAO,GAAIvT,GACrCsT,EAAWrM,SAAWA,EACtBiM,EAAkBI,GAOpB,SAASE,EAAcxT,GACrBgI,EAAI,oBACJA,EAAItO,KAAKhB,UAAUsH,IAEfA,EAAQiH,UAAYjH,EAAQyT,YARlC,SAAwBzT,GACtBiT,EAAUjT,EAAQyT,YAAc,GAAGzT,EAAQiH,UAQzCyM,CAAe1T,GAEfnQ,OAAOmgB,KAAKhQ,GAAS2T,QAAQ,SAAAjjB,GAC3B+hB,EAASK,QAAQpiB,EAAK,CAACsP,EAAQtP,GAAM2iB,EAAM1iB,KAAK,KAAMqP,OAK5D,SAAS4T,EAAmBb,GAC1B,GAAIA,EAAMc,SAAW/C,EACnB,IAEE0C,EADa9Z,KAAK8H,MAAMuR,EAAMje,OAE9B,MAAO/C,KE9Cb,SAAS+hB,EAAYC,EAAQva,EAAQwa,EAASC,EAASzU,GACrD,IACM0U,EAAc,CAClBrc,IAFO,GAAAwQ,OAAMuI,EAAN,YAAAvI,OAAwB0L,EAAxB,iBAAA1L,OAA8C2I,GAGrDxX,SACA2a,YAAa,mBACbF,QACqB,mBAAZA,EACHxiB,EAAMgN,KAAK,SAAA3J,GAAI,OAAImf,EAAQva,KAAK8H,MAAM1M,WACtC0J,EACNgB,MAAO/N,EAAMgN,KAAK,SAAA2V,GAChB,IAAIpU,EACJ,IACEA,EAAUtG,KAAK8H,MAAM4S,EAAMC,cAAc7U,MACzC,MAAOzN,GACPiO,EAAUoU,EAAMC,aAGlB5iB,EAAMgO,eAAN,iCAAA4I,OACmC+L,EAAM3N,OADzC,MAAA4B,OACoDrI,IAG/B,mBAAVR,GACTA,OAKFwU,IACFE,EAAYpf,KAAO4E,KAAKhB,UAAUsb,IAGpCtC,OAAO4C,KAAKJ,GAGd,SAASK,EAAKR,EAAQC,EAASC,EAASzU,GACtC,OAAOsU,EAAYC,EAAQ,OAAQC,EAASC,EAASzU,GAGvD,SAASxP,EAAI+jB,EAAQE,EAASzU,GAC5B,OAAOsU,EAAYC,EAAQ,MAAO,KAAME,EAASzU,GAGnD,IACIgV,EADEC,EAAY,kBAAMzkB,EAAI,sBAExB0kB,GAAoB,EAEjB,SAASC,IACdH,EAAuBnR,WAAW,WAChCoR,EAAU,SAAA3f,GACJA,EAAKqc,SACPrV,SAAS8Y,QAAO,GACNF,GACVC,KAEDA,IACF,KAQE,IAGME,EAAaN,EAAK5jB,KAAK,KAAM,yBAA0B,IACvDmkB,EAAY9kB,EAAIW,KAAK,KAAM,qBCrExC,SAASokB,EAAcrkB,GACrB,OH2EK,SAAmBA,EAAK8B,GAC7BigB,EAASO,GAAGtiB,EAAK,WAAa,QAAAyhB,EAAA5U,UAAA7K,OAAT6L,EAAS,IAAAyG,MAAAmN,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAT7T,EAAS6T,GAAA7U,UAAA6U,GAC5B5f,EAAS8K,MAAM,KAAMiB,EAAKwC,MAAM,OG7EjBpQ,KAAK,KAAMD,GAGvB,IAAMskB,EAAoBD,EAAc,4BAClCE,EAAYF,EAAc,yBAC1BG,EAAsBH,EAAc,6BACpCI,EAAeJ,EAAc,4BAC7BK,EAAoBL,EAAc,2BAClCM,EAAmBN,EAAc,0BACjCO,EAAqBP,EAAc,6BACnCQ,EAAcR,EAAc,wBAC5BS,EAAmBT,EAAc,0BACjCU,EAAoBV,EAAc,2BAClCW,EAAeX,EAAc,sBAC7BY,EAAYZ,EAAc,kBAC1Ba,EAAcb,EAAc,qBAElC,SAASc,EAAYC,IHmCrB,SAAqBplB,EAAKsjB,EAAS+B,EAAYC,EAAW3R,GAC1DA,IACHA,EAAU,KAGZ,IAOM4R,EAAY5S,WAAW5R,EAAMgN,KAPX,WACtB,IAAMyX,EAAY,sEAAA7N,OAAyE3X,GAC3FsX,EAAIkO,GACJzkB,EAAMgO,eAAeyW,GACrBF,MAGwD3R,GAEpDrE,EAAU,GAChBA,EAAQtP,GAAOsjB,EACfhU,EAAQyT,YAAcR,EAAU9f,KAAK,WACnCmR,aAAa2R,GACbF,EAAUzY,WAAV,EAAAC,aAEF2V,EAAkBlT,GGtDlBoT,CAAY,sBAAuB0C,EAAO,KAAM,kBAAMha,SAAS8Y,QAAO,KCrBjE,IAAMuB,GAAiB,CAAC,QAAS,YCKjC,SAASC,KAQd,SAASC,IACP,IAAIC,EAAWhlB,OAAOwK,SAASya,OAAOze,MAAM,sBAAsB,GAG9Dwe,IACFA,EAAQ,IAAAjO,OAAOiO,IAGjBT,EAAYS,GAfd,WACE5E,OAAOW,EAAYG,gBAAgBgE,YAAY,WAC/C,IAAMC,EAAYnlB,OAAOwK,SAASya,OAAOze,MAAM,sBAAsB,GAC7C4Z,OAAM,oBAAArJ,OAAqBoO,EAArB,OACdC,SAASC,SAAS,WAYlCC,GAcFtlB,OAAO4V,iBAAiB,WAAYmP,GAGpC3E,OAAOW,EAAYE,sBAAsBsE,MAAMplB,EAAMgN,KAdrD,WAEMsU,MAAM+D,SAAW/D,MAAMgE,QAAUhE,MAAMiE,WAG3C1lB,OAAOkW,QAAQC,UAAU,KAAM,KAAMiK,OAAO7f,MAAMmB,KAAK,SACvDqjB,IACAtD,MAAMkE,qBChCK,IAAAC,GAAA,CACbC,iBAAkB,CAChBC,WAAY,CACVC,WAAY,kBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXE,cAAe,CACbX,WAAY,CACVC,WAAY,UACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXG,aAAc,CACZZ,WAAY,CACVC,WAAY,cACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXI,iBAAkB,CAChBb,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXK,eAAgB,CACdd,WAAY,CACVC,WAAY,WACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXM,eAAgB,CACdf,WAAY,CACVC,WAAY,eACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXO,iBAAkB,CAChBhB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXQ,aAAc,CACZjB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXS,gBAAiB,CACflB,WAAY,CACVC,WAAY,oBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXU,gBAAiB,CACfnB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXW,mBAAoB,CAClBpB,WAAY,CACVC,WAAY,gBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXY,WAAY,CACVrB,WAAY,CACVC,WAAY,eACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXa,iBAAkB,CAChBtB,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXc,cAAe,CACbvB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXe,gBAAiB,CACfxB,WAAY,CACVC,WAAY,mBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXgB,eAAgB,CACdzB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXiB,iBAAkB,CAChB1B,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXkB,cAAe,CACb3B,WAAY,CACVC,WAAY,gBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXmB,gBAAiB,CACf5B,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXoB,eAAgB,CACd7B,WAAY,CACVC,WAAY,kBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXqB,eAAgB,CACd9B,WAAY,CACVC,WAAY,qBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXsB,eAAgB,CACd/B,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXuB,gBAAiB,CACfhC,WAAY,CACVC,WAAY,aACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXwB,eAAgB,CACdjC,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXyB,YAAa,CACXlC,WAAY,CACVC,WAAY,iBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX0B,cAAe,CACbnC,WAAY,CACVC,WAAY,cACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX2B,oBAAqB,CACnBpC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX4B,iBAAkB,CAChBrC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX6B,WAAY,CACVtC,WAAY,CACVC,WAAY,UACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX8B,iBAAkB,CAChBvC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX+B,gBAAiB,CACfxC,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXgC,eAAgB,CACdzC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXiC,eAAgB,CACd1C,WAAY,CACVC,WAAY,qBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXkC,iBAAkB,CAChB3C,WAAY,CACVC,WAAY,gBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXmC,mBAAoB,CAClB5C,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXoC,2BAA4B,CAC1B7C,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXqC,eAAgB,CACd9C,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXsC,kBAAmB,CACjB/C,WAAY,CACVC,WAAY,cACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,aChpBbpC,EAAkB,SAACzV,EAASqT,GAC1BA,EAAM,sBAGR4B,EAAU,SAAC9D,EAAUkC,ILqCE,SAAClC,EAAU8C,EAASzU,GACzC+U,EAAK,2BAA4B,CAAEpD,YAAY8C,EAASzU,GKrCxD4a,CACEjJ,EACA,WL8BF7M,aAAakQ,GACbE,GAAoB,EK7BhBrB,EAAM,CAAEY,SAAS,KAEnBZ,EAAM1iB,KAAK,KAAM,CAAEsjB,SAAS,OAIhCkB,EAAa,SAACnV,EAASqT,GACrBwB,EACExB,EAAM1iB,KAAK,KAAM,CAAEsjB,SAAS,IAC5BZ,EAAM1iB,KAAK,KAAM,CAAEsjB,SAAS,OAIhC0B,EAAU,SAAC3V,EAASqT,GAClBA,IACAvX,SAASE,KAAT,GAAAqM,OAAmBsI,EAAnB,iBAGF+E,EAAa,SAAC1V,EAASqT,GACrBA,IACA/hB,OAAOwK,SAAS8Y,QAAO,KAGzBY,EAAiB,SAACxV,EAASqT,GACzBA,IACA+C,OAGFlB,EAAoB,SAAClV,EAASqT,GAC5BA,IFKA3B,OAAOW,EAAYgI,gBAAgBC,IAAI,WEDzCtF,EAAkB,SAAChV,EAASqT,GAC1BA,IACA,IAAIkH,EAAwBjpB,OAAOwK,SAAS3J,WACxCooB,EAAsBpU,QAAQ,KAAO,IACvCoU,EAAwBA,EAAsBjL,UAC5C,EACAiL,EAAsBpU,QAAQ,OAGlC,IAAMqU,EAAiB,GAAAnS,OAAMkS,EAAN,gBACvBjpB,OAAOkW,QAAQC,UAAU,GAAI,GAAI+S,KAGnCjF,EAAY,SAACvV,EAASqT,GACpByB,EAAU,SAAAhgB,GACJA,EAAK2lB,QACPpH,EAAMve,EAAK2lB,YAKjBnF,EAAmB,SAACtV,EAASqT,GAC3BA,EAAM,CAAEW,QAASkD,GAAO9F,OAG1BgE,EAAkB,SAACpV,EAASqT,GC1F1B3B,OAAOW,EAAYC,QAAQqE,SAAS,4BD4FpCtD,MAGFgC,EAAiB,SAACrV,EAASqT,GC3FzB3B,OAAOW,EAAYC,QAAQkE,YAAY,4BD6FvCnD,MAGFuC,EAAY,SAAC5V,EAASqT,IF5Df,WAGL,IAHmC,IAC7BqH,GAD6Bnd,UAAA7K,OAAA,QAAA8L,IAAAjB,UAAA,GAAAA,UAAA,GAAJ,IACXjK,MAAM,KAEL,KAAdonB,EAAO,IACZA,EAAO/Z,QAGT,IAAI2V,EAAW,GAEXH,GAAewE,SAASD,EAAO,MACjCpE,EAAQ,IAAAjO,OAAOqS,EAAO,IACtBA,EAAO/Z,SAGT,IAAMia,EAAoBF,EAAOG,OAAO,SAACC,EAAKhF,EAAOiF,GACnD,SAAA1S,OAAUyS,EAAV,KAAAzS,OAAiBjS,mBAAkB,gBAAAiS,OAAiB0S,EAAjB,MAAnC,KAAA1S,OAAiEyN,IAChE,IAEHxkB,OAAOkW,QAAQE,aACb,KACA,KAFF,eAAAW,OAGiBiO,GAHjBjO,OAG4BuS,IEwC5BI,CAAUhb,GACVqT,MX9FY,SAARxC,IAIJpf,IAAM2K,OACJ,oEACA,CACErB,WAAY,CACViC,UAAU,KAGdC,UAEFxL,IAAM2P,eAAe,CACnB6Z,OAAQlK,EACRmK,IAAKhK,EACLiK,UAAW9J,IAGb5f,IAAMuP,eAAe,CACnBoa,IAAKjK,EACLF,QAASphB,OAAOmgB,KAAKiB,GAClBoK,IAAI,SAAA3rB,GAAI,SAAA2Y,OAAO3Y,EAAP,KAAA2Y,OAAe4I,EAAQvhB,GAAM4rB,WACrC7nB,KAAK,QabZhC,EAAM4M,QAdN,WT8EE/M,OAAO4V,iBAAiB,UAAW0M,IS1EoB,IAAnDtiB,OAAOwK,SAASya,OAAOpQ,QAAQ,iBAC5BgL,GACHwD,KAIJjD,OAAOtY,UAAUmiB,MAAM3J","file":"leadin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","/**\n * Enforces a single instance of the Raven client, and the\n * main entry point for Raven. If you are a consumer of the\n * Raven library, you SHOULD load this file (vs raven.js).\n **/\n\nvar RavenConstructor = require('./raven');\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar _Raven = _window.Raven;\n\nvar Raven = new RavenConstructor();\n\n/*\n * Allow multiple versions of Raven to be installed.\n * Strip Raven from the global context and returns the instance.\n *\n * @return {Raven}\n */\nRaven.noConflict = function() {\n _window.Raven = _Raven;\n return Raven;\n};\n\nRaven.afterLoad();\n\nmodule.exports = Raven;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction isObject(what) {\n return typeof what === 'object' && what !== null;\n}\n\n// Yanked from https://git.io/vS8DV re-used under CC0\n// with some tiny modifications\nfunction isError(value) {\n switch ({}.toString.call(value)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return value instanceof Error;\n }\n}\n\nfunction isErrorEvent(value) {\n return supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]';\n}\n\nfunction isUndefined(what) {\n return what === void 0;\n}\n\nfunction isFunction(what) {\n return typeof what === 'function';\n}\n\nfunction isString(what) {\n return Object.prototype.toString.call(what) === '[object String]';\n}\n\nfunction isEmptyObject(what) {\n for (var _ in what) return false; // eslint-disable-line guard-for-in, no-unused-vars\n return true;\n}\n\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent(''); // eslint-disable-line no-new\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction wrappedCallback(callback) {\n function dataCallback(data, original) {\n var normalizedData = callback(data) || data;\n if (original) {\n return original(normalizedData) || normalizedData;\n }\n return normalizedData;\n }\n\n return dataCallback;\n}\n\nfunction each(obj, callback) {\n var i, j;\n\n if (isUndefined(obj.length)) {\n for (i in obj) {\n if (hasKey(obj, i)) {\n callback.call(null, i, obj[i]);\n }\n }\n } else {\n j = obj.length;\n if (j) {\n for (i = 0; i < j; i++) {\n callback.call(null, i, obj[i]);\n }\n }\n }\n}\n\nfunction objectMerge(obj1, obj2) {\n if (!obj2) {\n return obj1;\n }\n each(obj2, function(key, value) {\n obj1[key] = value;\n });\n return obj1;\n}\n\n/**\n * This function is only used for react-native.\n * react-native freezes object that have already been sent over the\n * js bridge. We need this function in order to check if the object is frozen.\n * So it's ok that objectFrozen returns false if Object.isFrozen is not\n * supported because it's not relevant for other \"platforms\". See related issue:\n * https://github.com/getsentry/react-native-sentry/issues/57\n */\nfunction objectFrozen(obj) {\n if (!Object.isFrozen) {\n return false;\n }\n return Object.isFrozen(obj);\n}\n\nfunction truncate(str, max) {\n return !max || str.length <= max ? str : str.substr(0, max) + '\\u2026';\n}\n\n/**\n * hasKey, a better form of hasOwnProperty\n * Example: hasKey(MainHostObject, property) === true/false\n *\n * @param {Object} host object to check property\n * @param {string} key to check\n */\nfunction hasKey(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction joinRegExp(patterns) {\n // Combine an array of regular expressions and strings into one large regexp\n // Be mad.\n var sources = [],\n i = 0,\n len = patterns.length,\n pattern;\n\n for (; i < len; i++) {\n pattern = patterns[i];\n if (isString(pattern)) {\n // If it's a string, we need to escape it\n // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n sources.push(pattern.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1'));\n } else if (pattern && pattern.source) {\n // If it's a regexp already, we want to extract the source\n sources.push(pattern.source);\n }\n // Intentionally skip other cases\n }\n return new RegExp(sources.join('|'), 'i');\n}\n\nfunction urlencode(o) {\n var pairs = [];\n each(o, function(key, value) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n });\n return pairs.join('&');\n}\n\n// borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n// intentionally using regex and not <a/> href parsing trick because React Native and other\n// environments where DOM might not be available\nfunction parseUrl(url) {\n var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) return {};\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n protocol: match[2],\n host: match[4],\n path: match[5],\n relative: match[5] + query + fragment // everything minus origin\n };\n}\nfunction uuid4() {\n var crypto = _window.crypto || _window.msCrypto;\n\n if (!isUndefined(crypto) && crypto.getRandomValues) {\n // Use window.crypto API if available\n // eslint-disable-next-line no-undef\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n var pad = function(num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = '0' + v;\n }\n return v;\n };\n\n return (\n pad(arr[0]) +\n pad(arr[1]) +\n pad(arr[2]) +\n pad(arr[3]) +\n pad(arr[4]) +\n pad(arr[5]) +\n pad(arr[6]) +\n pad(arr[7])\n );\n } else {\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @param elem\n * @returns {string}\n */\nfunction htmlTreeAsString(elem) {\n /* eslint no-extra-parens:0*/\n var MAX_TRAVERSE_HEIGHT = 5,\n MAX_OUTPUT_LEN = 80,\n out = [],\n height = 0,\n len = 0,\n separator = ' > ',\n sepLength = separator.length,\n nextStr;\n\n while (elem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = htmlElementAsString(elem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (\n nextStr === 'html' ||\n (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)\n ) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n elem = elem.parentNode;\n }\n\n return out.reverse().join(separator);\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @param HTMLElement\n * @returns {string}\n */\nfunction htmlElementAsString(elem) {\n var out = [],\n className,\n classes,\n key,\n attr,\n i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push('#' + elem.id);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push('.' + classes[i]);\n }\n }\n var attrWhitelist = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < attrWhitelist.length; i++) {\n key = attrWhitelist[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push('[' + key + '=\"' + attr + '\"]');\n }\n }\n return out.join('');\n}\n\n/**\n * Returns true if either a OR b is truthy, but not both\n */\nfunction isOnlyOneTruthy(a, b) {\n return !!(!!a ^ !!b);\n}\n\n/**\n * Returns true if the two input exception interfaces have the same content\n */\nfunction isSameException(ex1, ex2) {\n if (isOnlyOneTruthy(ex1, ex2)) return false;\n\n ex1 = ex1.values[0];\n ex2 = ex2.values[0];\n\n if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false;\n\n return isSameStacktrace(ex1.stacktrace, ex2.stacktrace);\n}\n\n/**\n * Returns true if the two input stack trace interfaces have the same content\n */\nfunction isSameStacktrace(stack1, stack2) {\n if (isOnlyOneTruthy(stack1, stack2)) return false;\n\n var frames1 = stack1.frames;\n var frames2 = stack2.frames;\n\n // Exit early if frame count differs\n if (frames1.length !== frames2.length) return false;\n\n // Iterate through every frame; bail out if anything differs\n var a, b;\n for (var i = 0; i < frames1.length; i++) {\n a = frames1[i];\n b = frames2[i];\n if (\n a.filename !== b.filename ||\n a.lineno !== b.lineno ||\n a.colno !== b.colno ||\n a['function'] !== b['function']\n )\n return false;\n }\n return true;\n}\n\n/**\n * Polyfill a method\n * @param obj object e.g. `document`\n * @param name method name present on object e.g. `addEventListener`\n * @param replacement replacement function\n * @param track {optional} record instrumentation to an array\n */\nfunction fill(obj, name, replacement, track) {\n var orig = obj[name];\n obj[name] = replacement(orig);\n if (track) {\n track.push([obj, name, orig]);\n }\n}\n\nmodule.exports = {\n isObject: isObject,\n isError: isError,\n isErrorEvent: isErrorEvent,\n isUndefined: isUndefined,\n isFunction: isFunction,\n isString: isString,\n isEmptyObject: isEmptyObject,\n supportsErrorEvent: supportsErrorEvent,\n wrappedCallback: wrappedCallback,\n each: each,\n objectMerge: objectMerge,\n truncate: truncate,\n objectFrozen: objectFrozen,\n hasKey: hasKey,\n joinRegExp: joinRegExp,\n urlencode: urlencode,\n uuid4: uuid4,\n htmlTreeAsString: htmlTreeAsString,\n htmlElementAsString: htmlElementAsString,\n isSameException: isSameException,\n isSameStacktrace: isSameStacktrace,\n parseUrl: parseUrl,\n fill: fill\n};\n","/*global XDomainRequest:false */\n\nvar TraceKit = require('../vendor/TraceKit/tracekit');\nvar stringify = require('../vendor/json-stringify-safe/stringify');\nvar RavenConfigError = require('./configError');\n\nvar utils = require('./utils');\nvar isError = utils.isError;\nvar isObject = utils.isObject;\nvar isObject = utils.isObject;\nvar isErrorEvent = utils.isErrorEvent;\nvar isUndefined = utils.isUndefined;\nvar isFunction = utils.isFunction;\nvar isString = utils.isString;\nvar isEmptyObject = utils.isEmptyObject;\nvar each = utils.each;\nvar objectMerge = utils.objectMerge;\nvar truncate = utils.truncate;\nvar objectFrozen = utils.objectFrozen;\nvar hasKey = utils.hasKey;\nvar joinRegExp = utils.joinRegExp;\nvar urlencode = utils.urlencode;\nvar uuid4 = utils.uuid4;\nvar htmlTreeAsString = utils.htmlTreeAsString;\nvar isSameException = utils.isSameException;\nvar isSameStacktrace = utils.isSameStacktrace;\nvar parseUrl = utils.parseUrl;\nvar fill = utils.fill;\n\nvar wrapConsoleMethod = require('./console').wrapMethod;\n\nvar dsnKeys = 'source protocol user pass host port path'.split(' '),\n dsnPattern = /^(?:(\\w+):)?\\/\\/(?:(\\w+)(:\\w+)?@)?([\\w\\.-]+)(?::(\\d+))?(\\/.*)/;\n\nfunction now() {\n return +new Date();\n}\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar _document = _window.document;\nvar _navigator = _window.navigator;\n\nfunction keepOriginalCallback(original, callback) {\n return isFunction(callback)\n ? function(data) {\n return callback(data, original);\n }\n : callback;\n}\n\n// First, check for JSON support\n// If there is no JSON, we no-op the core features of Raven\n// since JSON is required to encode the payload\nfunction Raven() {\n this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify);\n // Raven can run in contexts where there's no document (react-native)\n this._hasDocument = !isUndefined(_document);\n this._hasNavigator = !isUndefined(_navigator);\n this._lastCapturedException = null;\n this._lastData = null;\n this._lastEventId = null;\n this._globalServer = null;\n this._globalKey = null;\n this._globalProject = null;\n this._globalContext = {};\n this._globalOptions = {\n logger: 'javascript',\n ignoreErrors: [],\n ignoreUrls: [],\n whitelistUrls: [],\n includePaths: [],\n collectWindowErrors: true,\n maxMessageLength: 0,\n\n // By default, truncates URL values to 250 chars\n maxUrlLength: 250,\n stackTraceLimit: 50,\n autoBreadcrumbs: true,\n instrument: true,\n sampleRate: 1\n };\n this._ignoreOnError = 0;\n this._isRavenInstalled = false;\n this._originalErrorStackTraceLimit = Error.stackTraceLimit;\n // capture references to window.console *and* all its methods first\n // before the console plugin has a chance to monkey patch\n this._originalConsole = _window.console || {};\n this._originalConsoleMethods = {};\n this._plugins = [];\n this._startTime = now();\n this._wrappedBuiltIns = [];\n this._breadcrumbs = [];\n this._lastCapturedEvent = null;\n this._keypressTimeout;\n this._location = _window.location;\n this._lastHref = this._location && this._location.href;\n this._resetBackoff();\n\n // eslint-disable-next-line guard-for-in\n for (var method in this._originalConsole) {\n this._originalConsoleMethods[method] = this._originalConsole[method];\n }\n}\n\n/*\n * The core Raven singleton\n *\n * @this {Raven}\n */\n\nRaven.prototype = {\n // Hardcode version string so that raven source can be loaded directly via\n // webpack (using a build step causes webpack #1617). Grunt verifies that\n // this value matches package.json during build.\n // See: https://github.com/getsentry/raven-js/issues/465\n VERSION: '3.19.1',\n\n debug: false,\n\n TraceKit: TraceKit, // alias to TraceKit\n\n /*\n * Configure Raven with a DSN and extra options\n *\n * @param {string} dsn The public Sentry DSN\n * @param {object} options Set of global options [optional]\n * @return {Raven}\n */\n config: function(dsn, options) {\n var self = this;\n\n if (self._globalServer) {\n this._logDebug('error', 'Error: Raven has already been configured');\n return self;\n }\n if (!dsn) return self;\n\n var globalOptions = self._globalOptions;\n\n // merge in options\n if (options) {\n each(options, function(key, value) {\n // tags and extra are special and need to be put into context\n if (key === 'tags' || key === 'extra' || key === 'user') {\n self._globalContext[key] = value;\n } else {\n globalOptions[key] = value;\n }\n });\n }\n\n self.setDSN(dsn);\n\n // \"Script error.\" is hard coded into browsers for errors that it can't read.\n // this is the result of a script being pulled in from an external domain and CORS.\n globalOptions.ignoreErrors.push(/^Script error\\.?$/);\n globalOptions.ignoreErrors.push(/^Javascript error: Script error\\.? on line 0$/);\n\n // join regexp rules into one big rule\n globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors);\n globalOptions.ignoreUrls = globalOptions.ignoreUrls.length\n ? joinRegExp(globalOptions.ignoreUrls)\n : false;\n globalOptions.whitelistUrls = globalOptions.whitelistUrls.length\n ? joinRegExp(globalOptions.whitelistUrls)\n : false;\n globalOptions.includePaths = joinRegExp(globalOptions.includePaths);\n globalOptions.maxBreadcrumbs = Math.max(\n 0,\n Math.min(globalOptions.maxBreadcrumbs || 100, 100)\n ); // default and hard limit is 100\n\n var autoBreadcrumbDefaults = {\n xhr: true,\n console: true,\n dom: true,\n location: true\n };\n\n var autoBreadcrumbs = globalOptions.autoBreadcrumbs;\n if ({}.toString.call(autoBreadcrumbs) === '[object Object]') {\n autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs);\n } else if (autoBreadcrumbs !== false) {\n autoBreadcrumbs = autoBreadcrumbDefaults;\n }\n globalOptions.autoBreadcrumbs = autoBreadcrumbs;\n\n var instrumentDefaults = {\n tryCatch: true\n };\n\n var instrument = globalOptions.instrument;\n if ({}.toString.call(instrument) === '[object Object]') {\n instrument = objectMerge(instrumentDefaults, instrument);\n } else if (instrument !== false) {\n instrument = instrumentDefaults;\n }\n globalOptions.instrument = instrument;\n\n TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors;\n\n // return for chaining\n return self;\n },\n\n /*\n * Installs a global window.onerror error handler\n * to capture and report uncaught exceptions.\n * At this point, install() is required to be called due\n * to the way TraceKit is set up.\n *\n * @return {Raven}\n */\n install: function() {\n var self = this;\n if (self.isSetup() && !self._isRavenInstalled) {\n TraceKit.report.subscribe(function() {\n self._handleOnErrorStackInfo.apply(self, arguments);\n });\n if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) {\n self._instrumentTryCatch();\n }\n\n if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs();\n\n // Install all of the plugins\n self._drainPlugins();\n\n self._isRavenInstalled = true;\n }\n\n Error.stackTraceLimit = self._globalOptions.stackTraceLimit;\n return this;\n },\n\n /*\n * Set the DSN (can be called multiple time unlike config)\n *\n * @param {string} dsn The public Sentry DSN\n */\n setDSN: function(dsn) {\n var self = this,\n uri = self._parseDSN(dsn),\n lastSlash = uri.path.lastIndexOf('/'),\n path = uri.path.substr(1, lastSlash);\n\n self._dsn = dsn;\n self._globalKey = uri.user;\n self._globalSecret = uri.pass && uri.pass.substr(1);\n self._globalProject = uri.path.substr(lastSlash + 1);\n\n self._globalServer = self._getGlobalServer(uri);\n\n self._globalEndpoint =\n self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/';\n\n // Reset backoff state since we may be pointing at a\n // new project/server\n this._resetBackoff();\n },\n\n /*\n * Wrap code within a context so Raven can capture errors\n * reliably across domains that is executed immediately.\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The callback to be immediately executed within the context\n * @param {array} args An array of arguments to be called with the callback [optional]\n */\n context: function(options, func, args) {\n if (isFunction(options)) {\n args = func || [];\n func = options;\n options = undefined;\n }\n\n return this.wrap(options, func).apply(this, args);\n },\n\n /*\n * Wrap code within a context and returns back a new function to be executed\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The function to be wrapped in a new context\n * @param {function} func A function to call before the try/catch wrapper [optional, private]\n * @return {function} The newly wrapped functions with a context\n */\n wrap: function(options, func, _before) {\n var self = this;\n // 1 argument has been passed, and it's not a function\n // so just return it\n if (isUndefined(func) && !isFunction(options)) {\n return options;\n }\n\n // options is optional\n if (isFunction(options)) {\n func = options;\n options = undefined;\n }\n\n // At this point, we've passed along 2 arguments, and the second one\n // is not a function either, so we'll just return the second argument.\n if (!isFunction(func)) {\n return func;\n }\n\n // We don't wanna wrap it twice!\n try {\n if (func.__raven__) {\n return func;\n }\n\n // If this has already been wrapped in the past, return that\n if (func.__raven_wrapper__) {\n return func.__raven_wrapper__;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return func;\n }\n\n function wrapped() {\n var args = [],\n i = arguments.length,\n deep = !options || (options && options.deep !== false);\n\n if (_before && isFunction(_before)) {\n _before.apply(this, arguments);\n }\n\n // Recursively wrap all of a function's arguments that are\n // functions themselves.\n while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i];\n\n try {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means Raven caught an error invoking your application code. This is\n // expected behavior and NOT indicative of a bug with Raven.js.\n return func.apply(this, args);\n } catch (e) {\n self._ignoreNextOnError();\n self.captureException(e, options);\n throw e;\n }\n }\n\n // copy over properties of the old function\n for (var property in func) {\n if (hasKey(func, property)) {\n wrapped[property] = func[property];\n }\n }\n wrapped.prototype = func.prototype;\n\n func.__raven_wrapper__ = wrapped;\n // Signal that this function has been wrapped already\n // for both debugging and to prevent it to being wrapped twice\n wrapped.__raven__ = true;\n wrapped.__inner__ = func;\n\n return wrapped;\n },\n\n /*\n * Uninstalls the global error handler.\n *\n * @return {Raven}\n */\n uninstall: function() {\n TraceKit.report.uninstall();\n\n this._restoreBuiltIns();\n\n Error.stackTraceLimit = this._originalErrorStackTraceLimit;\n this._isRavenInstalled = false;\n\n return this;\n },\n\n /*\n * Manually capture an exception and send it over to Sentry\n *\n * @param {error} ex An exception to be logged\n * @param {object} options A specific set of options for this error [optional]\n * @return {Raven}\n */\n captureException: function(ex, options) {\n // Cases for sending ex as a message, rather than an exception\n var isNotError = !isError(ex);\n var isNotErrorEvent = !isErrorEvent(ex);\n var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error;\n\n if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) {\n return this.captureMessage(\n ex,\n objectMerge(\n {\n trimHeadFrames: 1,\n stacktrace: true // if we fall back to captureMessage, default to attempting a new trace\n },\n options\n )\n );\n }\n\n // Get actual Error from ErrorEvent\n if (isErrorEvent(ex)) ex = ex.error;\n\n // Store the raw exception object for potential debugging and introspection\n this._lastCapturedException = ex;\n\n // TraceKit.report will re-raise any exception passed to it,\n // which means you have to wrap it in try/catch. Instead, we\n // can wrap it here and only re-raise if TraceKit.report\n // raises an exception different from the one we asked to\n // report on.\n try {\n var stack = TraceKit.computeStackTrace(ex);\n this._handleStackInfo(stack, options);\n } catch (ex1) {\n if (ex !== ex1) {\n throw ex1;\n }\n }\n\n return this;\n },\n\n /*\n * Manually send a message to Sentry\n *\n * @param {string} msg A plain message to be captured in Sentry\n * @param {object} options A specific set of options for this message [optional]\n * @return {Raven}\n */\n captureMessage: function(msg, options) {\n // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an\n // early call; we'll error on the side of logging anything called before configuration since it's\n // probably something you should see:\n if (\n !!this._globalOptions.ignoreErrors.test &&\n this._globalOptions.ignoreErrors.test(msg)\n ) {\n return;\n }\n\n options = options || {};\n\n var data = objectMerge(\n {\n message: msg + '' // Make sure it's actually a string\n },\n options\n );\n\n var ex;\n // Generate a \"synthetic\" stack trace from this point.\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative\n // of a bug with Raven.js. Sentry generates synthetic traces either by configuration,\n // or if it catches a thrown object without a \"stack\" property.\n try {\n throw new Error(msg);\n } catch (ex1) {\n ex = ex1;\n }\n\n // null exception name so `Error` isn't prefixed to msg\n ex.name = null;\n var stack = TraceKit.computeStackTrace(ex);\n\n // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1]\n var initialCall = stack.stack[1];\n\n var fileurl = (initialCall && initialCall.url) || '';\n\n if (\n !!this._globalOptions.ignoreUrls.test &&\n this._globalOptions.ignoreUrls.test(fileurl)\n ) {\n return;\n }\n\n if (\n !!this._globalOptions.whitelistUrls.test &&\n !this._globalOptions.whitelistUrls.test(fileurl)\n ) {\n return;\n }\n\n if (this._globalOptions.stacktrace || (options && options.stacktrace)) {\n options = objectMerge(\n {\n // fingerprint on msg, not stack trace (legacy behavior, could be\n // revisited)\n fingerprint: msg,\n // since we know this is a synthetic trace, the top N-most frames\n // MUST be from Raven.js, so mark them as in_app later by setting\n // trimHeadFrames\n trimHeadFrames: (options.trimHeadFrames || 0) + 1\n },\n options\n );\n\n var frames = this._prepareFrames(stack, options);\n data.stacktrace = {\n // Sentry expects frames oldest to newest\n frames: frames.reverse()\n };\n }\n\n // Fire away!\n this._send(data);\n\n return this;\n },\n\n captureBreadcrumb: function(obj) {\n var crumb = objectMerge(\n {\n timestamp: now() / 1000\n },\n obj\n );\n\n if (isFunction(this._globalOptions.breadcrumbCallback)) {\n var result = this._globalOptions.breadcrumbCallback(crumb);\n\n if (isObject(result) && !isEmptyObject(result)) {\n crumb = result;\n } else if (result === false) {\n return this;\n }\n }\n\n this._breadcrumbs.push(crumb);\n if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) {\n this._breadcrumbs.shift();\n }\n return this;\n },\n\n addPlugin: function(plugin /*arg1, arg2, ... argN*/) {\n var pluginArgs = [].slice.call(arguments, 1);\n\n this._plugins.push([plugin, pluginArgs]);\n if (this._isRavenInstalled) {\n this._drainPlugins();\n }\n\n return this;\n },\n\n /*\n * Set/clear a user to be sent along with the payload.\n *\n * @param {object} user An object representing user data [optional]\n * @return {Raven}\n */\n setUserContext: function(user) {\n // Intentionally do not merge here since that's an unexpected behavior.\n this._globalContext.user = user;\n\n return this;\n },\n\n /*\n * Merge extra attributes to be sent along with the payload.\n *\n * @param {object} extra An object representing extra data [optional]\n * @return {Raven}\n */\n setExtraContext: function(extra) {\n this._mergeContext('extra', extra);\n\n return this;\n },\n\n /*\n * Merge tags to be sent along with the payload.\n *\n * @param {object} tags An object representing tags [optional]\n * @return {Raven}\n */\n setTagsContext: function(tags) {\n this._mergeContext('tags', tags);\n\n return this;\n },\n\n /*\n * Clear all of the context.\n *\n * @return {Raven}\n */\n clearContext: function() {\n this._globalContext = {};\n\n return this;\n },\n\n /*\n * Get a copy of the current context. This cannot be mutated.\n *\n * @return {object} copy of context\n */\n getContext: function() {\n // lol javascript\n return JSON.parse(stringify(this._globalContext));\n },\n\n /*\n * Set environment of application\n *\n * @param {string} environment Typically something like 'production'.\n * @return {Raven}\n */\n setEnvironment: function(environment) {\n this._globalOptions.environment = environment;\n\n return this;\n },\n\n /*\n * Set release version of application\n *\n * @param {string} release Typically something like a git SHA to identify version\n * @return {Raven}\n */\n setRelease: function(release) {\n this._globalOptions.release = release;\n\n return this;\n },\n\n /*\n * Set the dataCallback option\n *\n * @param {function} callback The callback to run which allows the\n * data blob to be mutated before sending\n * @return {Raven}\n */\n setDataCallback: function(callback) {\n var original = this._globalOptions.dataCallback;\n this._globalOptions.dataCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /*\n * Set the breadcrumbCallback option\n *\n * @param {function} callback The callback to run which allows filtering\n * or mutating breadcrumbs\n * @return {Raven}\n */\n setBreadcrumbCallback: function(callback) {\n var original = this._globalOptions.breadcrumbCallback;\n this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /*\n * Set the shouldSendCallback option\n *\n * @param {function} callback The callback to run which allows\n * introspecting the blob before sending\n * @return {Raven}\n */\n setShouldSendCallback: function(callback) {\n var original = this._globalOptions.shouldSendCallback;\n this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /**\n * Override the default HTTP transport mechanism that transmits data\n * to the Sentry server.\n *\n * @param {function} transport Function invoked instead of the default\n * `makeRequest` handler.\n *\n * @return {Raven}\n */\n setTransport: function(transport) {\n this._globalOptions.transport = transport;\n\n return this;\n },\n\n /*\n * Get the latest raw exception that was captured by Raven.\n *\n * @return {error}\n */\n lastException: function() {\n return this._lastCapturedException;\n },\n\n /*\n * Get the last event id\n *\n * @return {string}\n */\n lastEventId: function() {\n return this._lastEventId;\n },\n\n /*\n * Determine if Raven is setup and ready to go.\n *\n * @return {boolean}\n */\n isSetup: function() {\n if (!this._hasJSON) return false; // needs JSON support\n if (!this._globalServer) {\n if (!this.ravenNotConfiguredError) {\n this.ravenNotConfiguredError = true;\n this._logDebug('error', 'Error: Raven has not been configured.');\n }\n return false;\n }\n return true;\n },\n\n afterLoad: function() {\n // TODO: remove window dependence?\n\n // Attempt to initialize Raven on load\n var RavenConfig = _window.RavenConfig;\n if (RavenConfig) {\n this.config(RavenConfig.dsn, RavenConfig.config).install();\n }\n },\n\n showReportDialog: function(options) {\n if (\n !_document // doesn't work without a document (React native)\n )\n return;\n\n options = options || {};\n\n var lastEventId = options.eventId || this.lastEventId();\n if (!lastEventId) {\n throw new RavenConfigError('Missing eventId');\n }\n\n var dsn = options.dsn || this._dsn;\n if (!dsn) {\n throw new RavenConfigError('Missing DSN');\n }\n\n var encode = encodeURIComponent;\n var qs = '';\n qs += '?eventId=' + encode(lastEventId);\n qs += '&dsn=' + encode(dsn);\n\n var user = options.user || this._globalContext.user;\n if (user) {\n if (user.name) qs += '&name=' + encode(user.name);\n if (user.email) qs += '&email=' + encode(user.email);\n }\n\n var globalServer = this._getGlobalServer(this._parseDSN(dsn));\n\n var script = _document.createElement('script');\n script.async = true;\n script.src = globalServer + '/api/embed/error-page/' + qs;\n (_document.head || _document.body).appendChild(script);\n },\n\n /**** Private functions ****/\n _ignoreNextOnError: function() {\n var self = this;\n this._ignoreOnError += 1;\n setTimeout(function() {\n // onerror should trigger before setTimeout\n self._ignoreOnError -= 1;\n });\n },\n\n _triggerEvent: function(eventType, options) {\n // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it\n var evt, key;\n\n if (!this._hasDocument) return;\n\n options = options || {};\n\n eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1);\n\n if (_document.createEvent) {\n evt = _document.createEvent('HTMLEvents');\n evt.initEvent(eventType, true, true);\n } else {\n evt = _document.createEventObject();\n evt.eventType = eventType;\n }\n\n for (key in options)\n if (hasKey(options, key)) {\n evt[key] = options[key];\n }\n\n if (_document.createEvent) {\n // IE9 if standards\n _document.dispatchEvent(evt);\n } else {\n // IE8 regardless of Quirks or Standards\n // IE9 if quirks\n try {\n _document.fireEvent('on' + evt.eventType.toLowerCase(), evt);\n } catch (e) {\n // Do nothing\n }\n }\n },\n\n /**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param evtName the event name (e.g. \"click\")\n * @returns {Function}\n * @private\n */\n _breadcrumbEventHandler: function(evtName) {\n var self = this;\n return function(evt) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n self._keypressTimeout = null;\n\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n if (self._lastCapturedEvent === evt) return;\n\n self._lastCapturedEvent = evt;\n\n // try/catch both:\n // - accessing evt.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // can throw an exception in some circumstances.\n var target;\n try {\n target = htmlTreeAsString(evt.target);\n } catch (e) {\n target = '<unknown>';\n }\n\n self.captureBreadcrumb({\n category: 'ui.' + evtName, // e.g. ui.click, ui.input\n message: target\n });\n };\n },\n\n /**\n * Wraps addEventListener to capture keypress UI events\n * @returns {Function}\n * @private\n */\n _keypressEventHandler: function() {\n var self = this,\n debounceDuration = 1000; // milliseconds\n\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function(evt) {\n var target;\n try {\n target = evt.target;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n var tagName = target && target.tagName;\n\n // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n if (\n !tagName ||\n (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)\n )\n return;\n\n // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n var timeout = self._keypressTimeout;\n if (!timeout) {\n self._breadcrumbEventHandler('input')(evt);\n }\n clearTimeout(timeout);\n self._keypressTimeout = setTimeout(function() {\n self._keypressTimeout = null;\n }, debounceDuration);\n };\n },\n\n /**\n * Captures a breadcrumb of type \"navigation\", normalizing input URLs\n * @param to the originating URL\n * @param from the target URL\n * @private\n */\n _captureUrlChange: function(from, to) {\n var parsedLoc = parseUrl(this._location.href);\n var parsedTo = parseUrl(to);\n var parsedFrom = parseUrl(from);\n\n // because onpopstate only tells you the \"new\" (to) value of location.href, and\n // not the previous (from) value, we need to track the value of the current URL\n // state ourselves\n this._lastHref = to;\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host)\n to = parsedTo.relative;\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host)\n from = parsedFrom.relative;\n\n this.captureBreadcrumb({\n category: 'navigation',\n data: {\n to: to,\n from: from\n }\n });\n },\n\n /**\n * Wrap timer functions and event targets to catch errors and provide\n * better metadata.\n */\n _instrumentTryCatch: function() {\n var self = this;\n\n var wrappedBuiltIns = self._wrappedBuiltIns;\n\n function wrapTimeFn(orig) {\n return function(fn, t) {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n var originalCallback = args[0];\n if (isFunction(originalCallback)) {\n args[0] = self.wrap(originalCallback);\n }\n\n // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it\n // also supports only two arguments and doesn't care what this is, so we\n // can just call the original function directly.\n if (orig.apply) {\n return orig.apply(this, args);\n } else {\n return orig(args[0], args[1]);\n }\n };\n }\n\n var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;\n\n function wrapEventTarget(global) {\n var proto = _window[global] && _window[global].prototype;\n if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) {\n fill(\n proto,\n 'addEventListener',\n function(orig) {\n return function(evtName, fn, capture, secure) {\n // preserve arity\n try {\n if (fn && fn.handleEvent) {\n fn.handleEvent = self.wrap(fn.handleEvent);\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`\n // so that we don't have more than one wrapper function\n var before, clickHandler, keypressHandler;\n\n if (\n autoBreadcrumbs &&\n autoBreadcrumbs.dom &&\n (global === 'EventTarget' || global === 'Node')\n ) {\n // NOTE: generating multiple handlers per addEventListener invocation, should\n // revisit and verify we can just use one (almost certainly)\n clickHandler = self._breadcrumbEventHandler('click');\n keypressHandler = self._keypressEventHandler();\n before = function(evt) {\n // need to intercept every DOM event in `before` argument, in case that\n // same wrapped method is re-used for different events (e.g. mousemove THEN click)\n // see #724\n if (!evt) return;\n\n var eventType;\n try {\n eventType = evt.type;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n if (eventType === 'click') return clickHandler(evt);\n else if (eventType === 'keypress') return keypressHandler(evt);\n };\n }\n return orig.call(\n this,\n evtName,\n self.wrap(fn, undefined, before),\n capture,\n secure\n );\n };\n },\n wrappedBuiltIns\n );\n fill(\n proto,\n 'removeEventListener',\n function(orig) {\n return function(evt, fn, capture, secure) {\n try {\n fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn);\n } catch (e) {\n // ignore, accessing __raven_wrapper__ will throw in some Selenium environments\n }\n return orig.call(this, evt, fn, capture, secure);\n };\n },\n wrappedBuiltIns\n );\n }\n }\n\n fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns);\n fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns);\n if (_window.requestAnimationFrame) {\n fill(\n _window,\n 'requestAnimationFrame',\n function(orig) {\n return function(cb) {\n return orig(self.wrap(cb));\n };\n },\n wrappedBuiltIns\n );\n }\n\n // event targets borrowed from bugsnag-js:\n // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666\n var eventTargets = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload'\n ];\n for (var i = 0; i < eventTargets.length; i++) {\n wrapEventTarget(eventTargets[i]);\n }\n },\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - XMLHttpRequests\n * - DOM interactions (click/typing)\n * - window.location changes\n * - console\n *\n * Can be disabled or individually configured via the `autoBreadcrumbs` config option\n */\n _instrumentBreadcrumbs: function() {\n var self = this;\n var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;\n\n var wrappedBuiltIns = self._wrappedBuiltIns;\n\n function wrapProp(prop, xhr) {\n if (prop in xhr && isFunction(xhr[prop])) {\n fill(xhr, prop, function(orig) {\n return self.wrap(orig);\n }); // intentionally don't track filled methods on XHR instances\n }\n }\n\n if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) {\n var xhrproto = XMLHttpRequest.prototype;\n fill(\n xhrproto,\n 'open',\n function(origOpen) {\n return function(method, url) {\n // preserve arity\n\n // if Sentry key appears in URL, don't capture\n if (isString(url) && url.indexOf(self._globalKey) === -1) {\n this.__raven_xhr = {\n method: method,\n url: url,\n status_code: null\n };\n }\n\n return origOpen.apply(this, arguments);\n };\n },\n wrappedBuiltIns\n );\n\n fill(\n xhrproto,\n 'send',\n function(origSend) {\n return function(data) {\n // preserve arity\n var xhr = this;\n\n function onreadystatechangeHandler() {\n if (xhr.__raven_xhr && xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhr.__raven_xhr.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n self.captureBreadcrumb({\n type: 'http',\n category: 'xhr',\n data: xhr.__raven_xhr\n });\n }\n }\n\n var props = ['onload', 'onerror', 'onprogress'];\n for (var j = 0; j < props.length; j++) {\n wrapProp(props[j], xhr);\n }\n\n if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) {\n fill(\n xhr,\n 'onreadystatechange',\n function(orig) {\n return self.wrap(orig, undefined, onreadystatechangeHandler);\n } /* intentionally don't track this instrumentation */\n );\n } else {\n // if onreadystatechange wasn't actually set by the page on this xhr, we\n // are free to set our own and capture the breadcrumb\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n\n return origSend.apply(this, arguments);\n };\n },\n wrappedBuiltIns\n );\n }\n\n if (autoBreadcrumbs.xhr && 'fetch' in _window) {\n fill(\n _window,\n 'fetch',\n function(origFetch) {\n return function(fn, t) {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n\n var fetchInput = args[0];\n var method = 'GET';\n var url;\n\n if (typeof fetchInput === 'string') {\n url = fetchInput;\n } else if ('Request' in _window && fetchInput instanceof _window.Request) {\n url = fetchInput.url;\n if (fetchInput.method) {\n method = fetchInput.method;\n }\n } else {\n url = '' + fetchInput;\n }\n\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n\n var fetchData = {\n method: method,\n url: url,\n status_code: null\n };\n\n self.captureBreadcrumb({\n type: 'http',\n category: 'fetch',\n data: fetchData\n });\n\n return origFetch.apply(this, args).then(function(response) {\n fetchData.status_code = response.status;\n\n return response;\n });\n };\n },\n wrappedBuiltIns\n );\n }\n\n // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n if (autoBreadcrumbs.dom && this._hasDocument) {\n if (_document.addEventListener) {\n _document.addEventListener('click', self._breadcrumbEventHandler('click'), false);\n _document.addEventListener('keypress', self._keypressEventHandler(), false);\n } else {\n // IE8 Compatibility\n _document.attachEvent('onclick', self._breadcrumbEventHandler('click'));\n _document.attachEvent('onkeypress', self._keypressEventHandler());\n }\n }\n\n // record navigation (URL) changes\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var chrome = _window.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasPushAndReplaceState =\n !isChromePackagedApp &&\n _window.history &&\n history.pushState &&\n history.replaceState;\n if (autoBreadcrumbs.location && hasPushAndReplaceState) {\n // TODO: remove onpopstate handler on uninstall()\n var oldOnPopState = _window.onpopstate;\n _window.onpopstate = function() {\n var currentHref = self._location.href;\n self._captureUrlChange(self._lastHref, currentHref);\n\n if (oldOnPopState) {\n return oldOnPopState.apply(this, arguments);\n }\n };\n\n var historyReplacementFunction = function(origHistFunction) {\n // note history.pushState.length is 0; intentionally not declaring\n // params to preserve 0 arity\n return function(/* state, title, url */) {\n var url = arguments.length > 2 ? arguments[2] : undefined;\n\n // url argument is optional\n if (url) {\n // coerce to string (this is what pushState does)\n self._captureUrlChange(self._lastHref, url + '');\n }\n\n return origHistFunction.apply(this, arguments);\n };\n };\n\n fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns);\n fill(history, 'replaceState', historyReplacementFunction, wrappedBuiltIns);\n }\n\n if (autoBreadcrumbs.console && 'console' in _window && console.log) {\n // console\n var consoleMethodCallback = function(msg, data) {\n self.captureBreadcrumb({\n message: msg,\n level: data.level,\n category: 'console'\n });\n };\n\n each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) {\n wrapConsoleMethod(console, level, consoleMethodCallback);\n });\n }\n },\n\n _restoreBuiltIns: function() {\n // restore any wrapped builtins\n var builtin;\n while (this._wrappedBuiltIns.length) {\n builtin = this._wrappedBuiltIns.shift();\n\n var obj = builtin[0],\n name = builtin[1],\n orig = builtin[2];\n\n obj[name] = orig;\n }\n },\n\n _drainPlugins: function() {\n var self = this;\n\n // FIX ME TODO\n each(this._plugins, function(_, plugin) {\n var installer = plugin[0];\n var args = plugin[1];\n installer.apply(self, [self].concat(args));\n });\n },\n\n _parseDSN: function(str) {\n var m = dsnPattern.exec(str),\n dsn = {},\n i = 7;\n\n try {\n while (i--) dsn[dsnKeys[i]] = m[i] || '';\n } catch (e) {\n throw new RavenConfigError('Invalid DSN: ' + str);\n }\n\n if (dsn.pass && !this._globalOptions.allowSecretKey) {\n throw new RavenConfigError(\n 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key'\n );\n }\n\n return dsn;\n },\n\n _getGlobalServer: function(uri) {\n // assemble the endpoint from the uri pieces\n var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : '');\n\n if (uri.protocol) {\n globalServer = uri.protocol + ':' + globalServer;\n }\n return globalServer;\n },\n\n _handleOnErrorStackInfo: function() {\n // if we are intentionally ignoring errors via onerror, bail out\n if (!this._ignoreOnError) {\n this._handleStackInfo.apply(this, arguments);\n }\n },\n\n _handleStackInfo: function(stackInfo, options) {\n var frames = this._prepareFrames(stackInfo, options);\n\n this._triggerEvent('handle', {\n stackInfo: stackInfo,\n options: options\n });\n\n this._processException(\n stackInfo.name,\n stackInfo.message,\n stackInfo.url,\n stackInfo.lineno,\n frames,\n options\n );\n },\n\n _prepareFrames: function(stackInfo, options) {\n var self = this;\n var frames = [];\n if (stackInfo.stack && stackInfo.stack.length) {\n each(stackInfo.stack, function(i, stack) {\n var frame = self._normalizeFrame(stack, stackInfo.url);\n if (frame) {\n frames.push(frame);\n }\n });\n\n // e.g. frames captured via captureMessage throw\n if (options && options.trimHeadFrames) {\n for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) {\n frames[j].in_app = false;\n }\n }\n }\n frames = frames.slice(0, this._globalOptions.stackTraceLimit);\n return frames;\n },\n\n _normalizeFrame: function(frame, stackInfoUrl) {\n // normalize the frames data\n var normalized = {\n filename: frame.url,\n lineno: frame.line,\n colno: frame.column,\n function: frame.func || '?'\n };\n\n // Case when we don't have any information about the error\n // E.g. throwing a string or raw object, instead of an `Error` in Firefox\n // Generating synthetic error doesn't add any value here\n //\n // We should probably somehow let a user know that they should fix their code\n if (!frame.url) {\n normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler\n }\n\n normalized.in_app = !// determine if an exception came from outside of our app\n // first we check the global includePaths list.\n (\n (!!this._globalOptions.includePaths.test &&\n !this._globalOptions.includePaths.test(normalized.filename)) ||\n // Now we check for fun, if the function name is Raven or TraceKit\n /(Raven|TraceKit)\\./.test(normalized['function']) ||\n // finally, we do a last ditch effort and check for raven.min.js\n /raven\\.(min\\.)?js$/.test(normalized.filename)\n );\n\n return normalized;\n },\n\n _processException: function(type, message, fileurl, lineno, frames, options) {\n var prefixedMessage = (type ? type + ': ' : '') + (message || '');\n if (\n !!this._globalOptions.ignoreErrors.test &&\n (this._globalOptions.ignoreErrors.test(message) ||\n this._globalOptions.ignoreErrors.test(prefixedMessage))\n ) {\n return;\n }\n\n var stacktrace;\n\n if (frames && frames.length) {\n fileurl = frames[0].filename || fileurl;\n // Sentry expects frames oldest to newest\n // and JS sends them as newest to oldest\n frames.reverse();\n stacktrace = {frames: frames};\n } else if (fileurl) {\n stacktrace = {\n frames: [\n {\n filename: fileurl,\n lineno: lineno,\n in_app: true\n }\n ]\n };\n }\n\n if (\n !!this._globalOptions.ignoreUrls.test &&\n this._globalOptions.ignoreUrls.test(fileurl)\n ) {\n return;\n }\n\n if (\n !!this._globalOptions.whitelistUrls.test &&\n !this._globalOptions.whitelistUrls.test(fileurl)\n ) {\n return;\n }\n\n var data = objectMerge(\n {\n // sentry.interfaces.Exception\n exception: {\n values: [\n {\n type: type,\n value: message,\n stacktrace: stacktrace\n }\n ]\n },\n culprit: fileurl\n },\n options\n );\n\n // Fire away!\n this._send(data);\n },\n\n _trimPacket: function(data) {\n // For now, we only want to truncate the two different messages\n // but this could/should be expanded to just trim everything\n var max = this._globalOptions.maxMessageLength;\n if (data.message) {\n data.message = truncate(data.message, max);\n }\n if (data.exception) {\n var exception = data.exception.values[0];\n exception.value = truncate(exception.value, max);\n }\n\n var request = data.request;\n if (request) {\n if (request.url) {\n request.url = truncate(request.url, this._globalOptions.maxUrlLength);\n }\n if (request.Referer) {\n request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength);\n }\n }\n\n if (data.breadcrumbs && data.breadcrumbs.values)\n this._trimBreadcrumbs(data.breadcrumbs);\n\n return data;\n },\n\n /**\n * Truncate breadcrumb values (right now just URLs)\n */\n _trimBreadcrumbs: function(breadcrumbs) {\n // known breadcrumb properties with urls\n // TODO: also consider arbitrary prop values that start with (https?)?://\n var urlProps = ['to', 'from', 'url'],\n urlProp,\n crumb,\n data;\n\n for (var i = 0; i < breadcrumbs.values.length; ++i) {\n crumb = breadcrumbs.values[i];\n if (\n !crumb.hasOwnProperty('data') ||\n !isObject(crumb.data) ||\n objectFrozen(crumb.data)\n )\n continue;\n\n data = objectMerge({}, crumb.data);\n for (var j = 0; j < urlProps.length; ++j) {\n urlProp = urlProps[j];\n if (data.hasOwnProperty(urlProp) && data[urlProp]) {\n data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength);\n }\n }\n breadcrumbs.values[i].data = data;\n }\n },\n\n _getHttpData: function() {\n if (!this._hasNavigator && !this._hasDocument) return;\n var httpData = {};\n\n if (this._hasNavigator && _navigator.userAgent) {\n httpData.headers = {\n 'User-Agent': navigator.userAgent\n };\n }\n\n if (this._hasDocument) {\n if (_document.location && _document.location.href) {\n httpData.url = _document.location.href;\n }\n if (_document.referrer) {\n if (!httpData.headers) httpData.headers = {};\n httpData.headers.Referer = _document.referrer;\n }\n }\n\n return httpData;\n },\n\n _resetBackoff: function() {\n this._backoffDuration = 0;\n this._backoffStart = null;\n },\n\n _shouldBackoff: function() {\n return this._backoffDuration && now() - this._backoffStart < this._backoffDuration;\n },\n\n /**\n * Returns true if the in-process data payload matches the signature\n * of the previously-sent data\n *\n * NOTE: This has to be done at this level because TraceKit can generate\n * data from window.onerror WITHOUT an exception object (IE8, IE9,\n * other old browsers). This can take the form of an \"exception\"\n * data object with a single frame (derived from the onerror args).\n */\n _isRepeatData: function(current) {\n var last = this._lastData;\n\n if (\n !last ||\n current.message !== last.message || // defined for captureMessage\n current.culprit !== last.culprit // defined for captureException/onerror\n )\n return false;\n\n // Stacktrace interface (i.e. from captureMessage)\n if (current.stacktrace || last.stacktrace) {\n return isSameStacktrace(current.stacktrace, last.stacktrace);\n } else if (current.exception || last.exception) {\n // Exception interface (i.e. from captureException/onerror)\n return isSameException(current.exception, last.exception);\n }\n\n return true;\n },\n\n _setBackoffState: function(request) {\n // If we are already in a backoff state, don't change anything\n if (this._shouldBackoff()) {\n return;\n }\n\n var status = request.status;\n\n // 400 - project_id doesn't exist or some other fatal\n // 401 - invalid/revoked dsn\n // 429 - too many requests\n if (!(status === 400 || status === 401 || status === 429)) return;\n\n var retry;\n try {\n // If Retry-After is not in Access-Control-Expose-Headers, most\n // browsers will throw an exception trying to access it\n retry = request.getResponseHeader('Retry-After');\n retry = parseInt(retry, 10) * 1000; // Retry-After is returned in seconds\n } catch (e) {\n /* eslint no-empty:0 */\n }\n\n this._backoffDuration = retry\n ? // If Sentry server returned a Retry-After value, use it\n retry\n : // Otherwise, double the last backoff duration (starts at 1 sec)\n this._backoffDuration * 2 || 1000;\n\n this._backoffStart = now();\n },\n\n _send: function(data) {\n var globalOptions = this._globalOptions;\n\n var baseData = {\n project: this._globalProject,\n logger: globalOptions.logger,\n platform: 'javascript'\n },\n httpData = this._getHttpData();\n\n if (httpData) {\n baseData.request = httpData;\n }\n\n // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload\n if (data.trimHeadFrames) delete data.trimHeadFrames;\n\n data = objectMerge(baseData, data);\n\n // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge\n data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags);\n data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra);\n\n // Send along our own collected metadata with extra\n data.extra['session:duration'] = now() - this._startTime;\n\n if (this._breadcrumbs && this._breadcrumbs.length > 0) {\n // intentionally make shallow copy so that additions\n // to breadcrumbs aren't accidentally sent in this request\n data.breadcrumbs = {\n values: [].slice.call(this._breadcrumbs, 0)\n };\n }\n\n // If there are no tags/extra, strip the key from the payload alltogther.\n if (isEmptyObject(data.tags)) delete data.tags;\n\n if (this._globalContext.user) {\n // sentry.interfaces.User\n data.user = this._globalContext.user;\n }\n\n // Include the environment if it's defined in globalOptions\n if (globalOptions.environment) data.environment = globalOptions.environment;\n\n // Include the release if it's defined in globalOptions\n if (globalOptions.release) data.release = globalOptions.release;\n\n // Include server_name if it's defined in globalOptions\n if (globalOptions.serverName) data.server_name = globalOptions.serverName;\n\n if (isFunction(globalOptions.dataCallback)) {\n data = globalOptions.dataCallback(data) || data;\n }\n\n // Why??????????\n if (!data || isEmptyObject(data)) {\n return;\n }\n\n // Check if the request should be filtered or not\n if (\n isFunction(globalOptions.shouldSendCallback) &&\n !globalOptions.shouldSendCallback(data)\n ) {\n return;\n }\n\n // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests),\n // so drop requests until \"cool-off\" period has elapsed.\n if (this._shouldBackoff()) {\n this._logDebug('warn', 'Raven dropped error due to backoff: ', data);\n return;\n }\n\n if (typeof globalOptions.sampleRate === 'number') {\n if (Math.random() < globalOptions.sampleRate) {\n this._sendProcessedPayload(data);\n }\n } else {\n this._sendProcessedPayload(data);\n }\n },\n\n _getUuid: function() {\n return uuid4();\n },\n\n _sendProcessedPayload: function(data, callback) {\n var self = this;\n var globalOptions = this._globalOptions;\n\n if (!this.isSetup()) return;\n\n // Try and clean up the packet before sending by truncating long values\n data = this._trimPacket(data);\n\n // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback,\n // but this would require copying an un-truncated copy of the data packet, which can be\n // arbitrarily deep (extra_data) -- could be worthwhile? will revisit\n if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) {\n this._logDebug('warn', 'Raven dropped repeat event: ', data);\n return;\n }\n\n // Send along an event_id if not explicitly passed.\n // This event_id can be used to reference the error within Sentry itself.\n // Set lastEventId after we know the error should actually be sent\n this._lastEventId = data.event_id || (data.event_id = this._getUuid());\n\n // Store outbound payload after trim\n this._lastData = data;\n\n this._logDebug('debug', 'Raven about to send:', data);\n\n var auth = {\n sentry_version: '7',\n sentry_client: 'raven-js/' + this.VERSION,\n sentry_key: this._globalKey\n };\n\n if (this._globalSecret) {\n auth.sentry_secret = this._globalSecret;\n }\n\n var exception = data.exception && data.exception.values[0];\n this.captureBreadcrumb({\n category: 'sentry',\n message: exception\n ? (exception.type ? exception.type + ': ' : '') + exception.value\n : data.message,\n event_id: data.event_id,\n level: data.level || 'error' // presume error unless specified\n });\n\n var url = this._globalEndpoint;\n (globalOptions.transport || this._makeRequest).call(this, {\n url: url,\n auth: auth,\n data: data,\n options: globalOptions,\n onSuccess: function success() {\n self._resetBackoff();\n\n self._triggerEvent('success', {\n data: data,\n src: url\n });\n callback && callback();\n },\n onError: function failure(error) {\n self._logDebug('error', 'Raven transport failed to send: ', error);\n\n if (error.request) {\n self._setBackoffState(error.request);\n }\n\n self._triggerEvent('failure', {\n data: data,\n src: url\n });\n error = error || new Error('Raven send failed (no additional details provided)');\n callback && callback(error);\n }\n });\n },\n\n _makeRequest: function(opts) {\n var request = _window.XMLHttpRequest && new _window.XMLHttpRequest();\n if (!request) return;\n\n // if browser doesn't support CORS (e.g. IE7), we are out of luck\n var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined';\n\n if (!hasCORS) return;\n\n var url = opts.url;\n\n if ('withCredentials' in request) {\n request.onreadystatechange = function() {\n if (request.readyState !== 4) {\n return;\n } else if (request.status === 200) {\n opts.onSuccess && opts.onSuccess();\n } else if (opts.onError) {\n var err = new Error('Sentry error code: ' + request.status);\n err.request = request;\n opts.onError(err);\n }\n };\n } else {\n request = new XDomainRequest();\n // xdomainrequest cannot go http -> https (or vice versa),\n // so always use protocol relative\n url = url.replace(/^https?:/, '');\n\n // onreadystatechange not supported by XDomainRequest\n if (opts.onSuccess) {\n request.onload = opts.onSuccess;\n }\n if (opts.onError) {\n request.onerror = function() {\n var err = new Error('Sentry error code: XDomainRequest');\n err.request = request;\n opts.onError(err);\n };\n }\n }\n\n // NOTE: auth is intentionally sent as part of query string (NOT as custom\n // HTTP header) so as to avoid preflight CORS requests\n request.open('POST', url + '?' + urlencode(opts.auth));\n request.send(stringify(opts.data));\n },\n\n _logDebug: function(level) {\n if (this._originalConsoleMethods[level] && this.debug) {\n // In IE<10 console methods do not have their own 'apply' method\n Function.prototype.apply.call(\n this._originalConsoleMethods[level],\n this._originalConsole,\n [].slice.call(arguments, 1)\n );\n }\n },\n\n _mergeContext: function(key, context) {\n if (isUndefined(context)) {\n delete this._globalContext[key];\n } else {\n this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context);\n }\n }\n};\n\n// Deprecations\nRaven.prototype.setUser = Raven.prototype.setUserContext;\nRaven.prototype.setReleaseContext = Raven.prototype.setRelease;\n\nmodule.exports = Raven;\n","var utils = require('../../src/utils');\n\n/*\n TraceKit - Cross brower stack traces\n\n This was originally forked from github.com/occ/TraceKit, but has since been\n largely re-written and is now maintained as part of raven-js. Tests for\n this are in test/vendor.\n\n MIT license\n*/\n\nvar TraceKit = {\n collectWindowErrors: true,\n debug: false\n};\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;\n\nfunction getLocationHref() {\n if (typeof document === 'undefined' || document.location == null) return '';\n\n return document.location.href;\n}\n\n/**\n * TraceKit.report: cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a stackInfo object as described in the\n * TraceKit.computeStackTrace docs.\n */\nTraceKit.report = (function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Remove all crash handlers.\n */\n function unsubscribeAll() {\n uninstallGlobalHandler();\n handlers = [];\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {Object.<string, *>} stack\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (handlers.hasOwnProperty(i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n\n if (exception) {\n throw exception;\n }\n }\n\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} message Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error\n * occurred.\n * @param {?(number|string)} colNo The column number at which the error\n * occurred.\n * @param {?Error} ex The actual Error object.\n */\n function traceKitWindowOnError(message, url, lineNo, colNo, ex) {\n var stack = null;\n\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(\n lastExceptionStack,\n url,\n lineNo,\n message\n );\n processLastException();\n } else if (ex && utils.isError(ex)) {\n // non-string `ex` arg; attempt to extract stack trace\n\n // New chrome and blink send along a real error object\n // Let's just report that like a normal error.\n // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror\n stack = TraceKit.computeStackTrace(ex);\n notifyHandlers(stack, true);\n } else {\n var location = {\n url: url,\n line: lineNo,\n column: colNo\n };\n\n var name = undefined;\n var msg = message; // must be new var or will modify original `arguments`\n var groups;\n if ({}.toString.call(message) === '[object String]') {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n msg = groups[2];\n }\n }\n\n location.func = UNKNOWN_FUNCTION;\n\n stack = {\n name: name,\n message: msg,\n url: getLocationHref(),\n stack: [location]\n };\n notifyHandlers(stack, true);\n }\n\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n\n return false;\n }\n\n function installGlobalHandler() {\n if (_onErrorHandlerInstalled) {\n return;\n }\n _oldOnerrorHandler = _window.onerror;\n _window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n\n function uninstallGlobalHandler() {\n if (!_onErrorHandlerInstalled) {\n return;\n }\n _window.onerror = _oldOnerrorHandler;\n _onErrorHandlerInstalled = false;\n _oldOnerrorHandler = undefined;\n }\n\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @param {?boolean} rethrow If false, do not re-throw the exception.\n * Only used for window.onerror to not cause an infinite loop of\n * rethrowing.\n */\n function report(ex, rethrow) {\n var args = _slice.call(arguments, 1);\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = args;\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n setTimeout(function() {\n if (lastException === ex) {\n processLastException();\n }\n }, stack.incomplete ? 2000 : 0);\n\n if (rethrow !== false) {\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n report.uninstall = unsubscribeAll;\n return report;\n})();\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * Returns:\n * s.name - exception name\n * s.message - exception message\n * s.stack[i].url - JavaScript or HTML file URL\n * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)\n * s.stack[i].args - arguments passed to the function, if known\n * s.stack[i].line - line number, if known\n * s.stack[i].column - column number, if known\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n */\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?Object.<string, *>} Stack trace information.\n */\n function computeStackTraceFromStackProp(ex) {\n if (typeof ex.stack === 'undefined' || !ex.stack) return;\n\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\n // Used to additionally parse URL/line/column from eval frames\n geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,\n chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,\n lines = ex.stack.split('\\n'),\n stack = [],\n submatch,\n parts,\n element,\n reference = /^(.*) is undefined$/.exec(ex.message);\n\n for (var i = 0, j = lines.length; i < j; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n url: !isNative ? parts[2] : null,\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n } else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n name: ex.name,\n message: ex.message,\n url: getLocationHref(),\n stack: stack\n };\n }\n\n /**\n * Adds information about the first frame to incomplete stack traces.\n * Safari and IE require this to get complete data on the first frame.\n * @param {Object.<string, *>} stackInfo Stack trace information from\n * one of the compute* methods.\n * @param {string} url The URL of the script that caused an error.\n * @param {(number|string)} lineNo The line number of the script that\n * caused an error.\n * @param {string=} message The error generated by the browser, which\n * hopefully contains the name of the object that caused the error.\n * @return {boolean} Whether or not the stack information was\n * augmented.\n */\n function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {\n var initial = {\n url: url,\n line: lineNo\n };\n\n if (initial.url && initial.line) {\n stackInfo.incomplete = false;\n\n if (!initial.func) {\n initial.func = UNKNOWN_FUNCTION;\n }\n\n if (stackInfo.stack.length > 0) {\n if (stackInfo.stack[0].url === initial.url) {\n if (stackInfo.stack[0].line === initial.line) {\n return false; // already in stack trace\n } else if (\n !stackInfo.stack[0].line &&\n stackInfo.stack[0].func === initial.func\n ) {\n stackInfo.stack[0].line = initial.line;\n return false;\n }\n }\n }\n\n stackInfo.stack.unshift(initial);\n stackInfo.partial = true;\n return true;\n } else {\n stackInfo.incomplete = true;\n }\n\n return false;\n }\n\n /**\n * Computes stack trace information by walking the arguments.caller\n * chain at the time the exception occurred. This will cause earlier\n * frames to be missed but is the only way to get any stack trace in\n * Safari and IE. The top frame is restored by\n * {@link augmentStackTraceWithInitialElement}.\n * @param {Error} ex\n * @return {?Object.<string, *>} Stack trace information.\n */\n function computeStackTraceByWalkingCallerChain(ex, depth) {\n var functionName = /function\\s+([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(/i,\n stack = [],\n funcs = {},\n recursion = false,\n parts,\n item,\n source;\n\n for (\n var curr = computeStackTraceByWalkingCallerChain.caller;\n curr && !recursion;\n curr = curr.caller\n ) {\n if (curr === computeStackTrace || curr === TraceKit.report) {\n // console.log('skipping internal function');\n continue;\n }\n\n item = {\n url: null,\n func: UNKNOWN_FUNCTION,\n line: null,\n column: null\n };\n\n if (curr.name) {\n item.func = curr.name;\n } else if ((parts = functionName.exec(curr.toString()))) {\n item.func = parts[1];\n }\n\n if (typeof item.func === 'undefined') {\n try {\n item.func = parts.input.substring(0, parts.input.indexOf('{'));\n } catch (e) {}\n }\n\n if (funcs['' + curr]) {\n recursion = true;\n } else {\n funcs['' + curr] = true;\n }\n\n stack.push(item);\n }\n\n if (depth) {\n // console.log('depth is ' + depth);\n // console.log('stack is ' + stack.length);\n stack.splice(0, depth);\n }\n\n var result = {\n name: ex.name,\n message: ex.message,\n url: getLocationHref(),\n stack: stack\n };\n augmentStackTraceWithInitialElement(\n result,\n ex.sourceURL || ex.fileName,\n ex.line || ex.lineNumber,\n ex.message || ex.description\n );\n return result;\n }\n\n /**\n * Computes a stack trace for an exception.\n * @param {Error} ex\n * @param {(string|number)=} depth\n */\n function computeStackTrace(ex, depth) {\n var stack = null;\n depth = depth == null ? 0 : +depth;\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n\n try {\n stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n return {\n name: ex.name,\n message: ex.message,\n url: getLocationHref()\n };\n }\n\n computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;\n computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;\n\n return computeStackTrace;\n})();\n\nmodule.exports = TraceKit;\n","/*\n json-stringify-safe\n Like JSON.stringify, but doesn't throw on circular references.\n\n Originally forked from https://github.com/isaacs/json-stringify-safe\n version 5.0.1 on 3/8/2017 and modified to handle Errors serialization\n and IE8 compatibility. Tests for this are in test/vendor.\n\n ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE\n*/\n\nexports = module.exports = stringify;\nexports.getSerialize = serializer;\n\nfunction indexOf(haystack, needle) {\n for (var i = 0; i < haystack.length; ++i) {\n if (haystack[i] === needle) return i;\n }\n return -1;\n}\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);\n}\n\n// https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106\nfunction stringifyError(value) {\n var err = {\n // These properties are implemented as magical getters and don't show up in for in\n stack: value.stack,\n message: value.message,\n name: value.name\n };\n\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) {\n err[i] = value[i];\n }\n }\n\n return err;\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [];\n var keys = [];\n\n if (cycleReplacer == null) {\n cycleReplacer = function(key, value) {\n if (stack[0] === value) {\n return '[Circular ~]';\n }\n return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']';\n };\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = indexOf(stack, this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n\n if (~indexOf(stack, value)) {\n value = cycleReplacer.call(this, key, value);\n }\n } else {\n stack.push(value);\n }\n\n return replacer == null\n ? value instanceof Error ? stringifyError(value) : value\n : replacer.call(this, key, value);\n };\n}\n","function RavenConfigError(message) {\n this.name = 'RavenConfigError';\n this.message = message;\n}\nRavenConfigError.prototype = new Error();\nRavenConfigError.prototype.constructor = RavenConfigError;\n\nmodule.exports = RavenConfigError;\n","var wrapMethod = function(console, level, callback) {\n var originalConsoleLevel = console[level];\n var originalConsole = console;\n\n if (!(level in console)) {\n return;\n }\n\n var sentryLevel = level === 'warn' ? 'warning' : level;\n\n console[level] = function() {\n var args = [].slice.call(arguments);\n\n var msg = '' + args.join(' ');\n var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}};\n\n if (level === 'assert') {\n if (args[0] === false) {\n // Default browsers message\n msg = 'Assertion failed: ' + (args.slice(1).join(' ') || 'console.assert');\n data.extra.arguments = args.slice(1);\n callback && callback(msg, data);\n }\n } else {\n callback && callback(msg, data);\n }\n\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n // IE9 doesn't allow calling apply on console functions directly\n // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193\n Function.prototype.apply.call(originalConsoleLevel, originalConsole, args);\n }\n };\n};\n\nmodule.exports = {\n wrapMethod: wrapMethod\n};\n","const {\n adminUrl,\n ajaxUrl,\n env,\n hubspotBaseUrl,\n leadinPluginVersion,\n nonce,\n plugins,\n phpVersion,\n portalId,\n theme,\n wpVersion,\n} = window.leadinConfig;\n\nconst i18n = window.leadinI18n;\n\nexport {\n adminUrl,\n ajaxUrl,\n env,\n hubspotBaseUrl,\n i18n,\n leadinPluginVersion,\n nonce,\n plugins,\n phpVersion,\n portalId,\n theme,\n wpVersion,\n};\n","import Raven from 'raven-js';\nimport {\n env,\n phpVersion,\n wpVersion,\n leadinPluginVersion,\n portalId,\n plugins,\n} from '../constants/leadinConfig';\n\nexport function configureRaven() {\n if (env !== 'prod') {\n return;\n }\n\n Raven.config(\n 'https://e9b8f382cdd130c0d415cd977d2be56f@exceptions.hubspot.com/1',\n {\n instrument: {\n tryCatch: false,\n },\n }\n ).install();\n\n Raven.setTagsContext({\n leadin: leadinPluginVersion,\n php: phpVersion,\n wordpress: wpVersion,\n });\n\n Raven.setUserContext({\n hub: portalId,\n plugins: Object.keys(plugins)\n .map(name => `${name}#${plugins[name].Version}`)\n .join(','),\n });\n}\n\nexport default Raven;\n","import { hubspotBaseUrl, portalId, i18n } from './constants/leadinConfig';\n\nfunction addMenuItem(text, href) {\n jQuery('#toplevel_page_leadin')\n .find('li')\n .last()\n .before(`<li><a href=\"${href}\" target=\"_blank\">${text}</a></li>`);\n}\n\nexport function addExternalLinks() {\n const chatflowsUrl = `${hubspotBaseUrl}/chatflows/${portalId}`;\n const emailUrl = `${hubspotBaseUrl}/email/${portalId}`;\n addMenuItem(i18n.chatflows, chatflowsUrl);\n addMenuItem(i18n.email, emailUrl);\n}\n","export function log(...args) {\n try {\n if (window.localStorage.LEADIN_DEBUG) {\n args.unshift('[Leadin]');\n console.log(...args);\n }\n } catch (e) {\n //\n }\n}\n","export const domElements = {\n iframe: '#leadin-iframe',\n spaNavigationButtons:\n '.toplevel_page_leadin > a, a[href=\"admin.php?page=leadin_forms\"], a[href=\"admin.php?page=leadin_settings\"]',\n subMenuButtons: '.toplevel_page_leadin > ul > li',\n};\n","import EventBus from './EventBus';\nimport { log } from '../utils';\nimport { domElements } from '../constants/selectors';\nimport { hubspotBaseUrl } from '../constants/leadinConfig';\nimport Raven from './Raven';\n\nconst eventBus = new EventBus();\nconst callbacks = [];\n\nfunction postMessageObject(message) {\n log('Posting message');\n log(JSON.stringify(message));\n jQuery(domElements.iframe)[0].contentWindow.postMessage(\n JSON.stringify(message),\n hubspotBaseUrl\n );\n}\n\nfunction reply(message, response) {\n if (!response) {\n response = 'Message Received';\n }\n const newMessage = Object.assign({}, message);\n newMessage.response = response;\n postMessageObject(newMessage);\n}\n\nfunction handleResponse(message) {\n callbacks[message._callbackId - 1](message.response);\n}\n\nfunction handleMessage(message) {\n log('Received message');\n log(JSON.stringify(message));\n\n if (message.response && message._callbackId) {\n handleResponse(message);\n } else {\n Object.keys(message).forEach(key => {\n eventBus.trigger(key, [message[key], reply.bind(null, message)]);\n });\n }\n}\n\nfunction handleMessageEvent(event) {\n if (event.origin === hubspotBaseUrl) {\n try {\n const data = JSON.parse(event.data);\n handleMessage(data);\n } catch (e) {\n // Error in parsing message\n }\n }\n}\n\nexport function postMessage(key, payload, onResponse, onTimeout, timeout) {\n if (!timeout) {\n timeout = 500;\n }\n\n const timeoutCallback = function() {\n const errorMessage = `LeadinWordpressPlugin postMessage response timeout on message key: ${key}`;\n log(errorMessage);\n Raven.captureMessage(errorMessage);\n onTimeout();\n };\n\n const timeoutId = setTimeout(Raven.wrap(timeoutCallback), timeout);\n\n const message = {};\n message[key] = payload;\n message._callbackId = callbacks.push((...args) => {\n clearTimeout(timeoutId);\n onResponse(...args);\n });\n postMessageObject(message);\n}\n\nexport function onMessage(key, callback) {\n eventBus.on(key, (...args) => {\n callback.apply(null, args.slice(1));\n });\n}\n\nexport function initInterframe() {\n window.addEventListener('message', handleMessageEvent);\n}\n","import Raven from './Raven';\n\nexport default class EventBus {\n constructor() {\n this.bus = jQuery({});\n }\n\n trigger(...args) {\n this.bus.trigger(...args);\n }\n\n on(event, callback) {\n this.bus.on(event, Raven.wrap(callback));\n }\n}\n","import Raven from '../lib/Raven';\nimport { ajaxUrl, nonce } from '../constants/leadinConfig';\n\nfunction makeRequest(action, method, payload, success, error) {\n const url = `${ajaxUrl}?action=${action}&_ajax_nonce=${nonce}`;\n const ajaxPayload = {\n url,\n method,\n contentType: 'application/json',\n success:\n typeof success === 'function'\n ? Raven.wrap(data => success(JSON.parse(data)))\n : undefined,\n error: Raven.wrap(jqXHR => {\n let message;\n try {\n message = JSON.parse(jqXHR.responseText).error;\n } catch (e) {\n message = jqXHR.responseText;\n }\n\n Raven.captureMessage(\n `AJAX request failed with code ${jqXHR.status}: ${message}`\n );\n\n if (typeof error === 'function') {\n error();\n }\n }),\n };\n\n if (payload) {\n ajaxPayload.data = JSON.stringify(payload);\n }\n\n jQuery.ajax(ajaxPayload);\n}\n\nfunction post(action, payload, success, error) {\n return makeRequest(action, 'POST', payload, success, error);\n}\n\nfunction get(action, success, error) {\n return makeRequest(action, 'GET', null, success, error);\n}\n\nconst getPortal = () => get('leadin_get_portal');\nlet portalPollingTimeout;\nlet stopPortalPolling = false;\n\nexport function startPortalIdPolling() {\n portalPollingTimeout = setTimeout(() => {\n getPortal(data => {\n if (data.portalId) {\n location.reload(true);\n } else if (!stopPortalPolling) {\n startPortalIdPolling();\n }\n }, startPortalIdPolling);\n }, 5000);\n}\n\nexport function clearPortalIdPolling() {\n clearTimeout(portalPollingTimeout);\n stopPortalPolling = true;\n}\n\nexport const connect = (portalId, success, error) =>\n post('leadin_registration_ajax', { portalId }, success, error);\n\nexport const disconnect = post.bind(null, 'leadin_disconnect_ajax', {});\nexport const getDomain = get.bind(null, 'leadin_get_domain');\n","import { onMessage, postMessage } from '../lib/Interframe';\n\nfunction createHandler(key) {\n return onMessage.bind(null, key);\n}\n\nexport const onClearQueryParam = createHandler('leadin_clear_query_param');\nexport const onConnect = createHandler('leadin_connect_portal');\nexport const onDisableNavigation = createHandler('leadin_disable_navigation');\nexport const onDisconnect = createHandler('leadin_disconnect_portal');\nexport const onEnterFullScreen = createHandler('leadin_enter_fullscreen');\nexport const onExitFullScreen = createHandler('leadin_exit_fullscreen');\nexport const onGetAssetsPayload = createHandler('leadin_get_assets_payload');\nexport const onGetDomain = createHandler('leadin_get_wp_domain');\nexport const onInitNavigation = createHandler('leadin_init_navigation');\nexport const onInterframeReady = createHandler('leadin_interframe_ready');\nexport const onPageReload = createHandler('leadin_page_reload');\nexport const onUpgrade = createHandler('leadin_upgrade');\nexport const onSyncRoute = createHandler('leadin_sync_route');\n\nexport function changeRoute(route) {\n postMessage('leadin_change_route', route, null, () => location.reload(true));\n}\n","export const validAppRoutes = ['forms', 'settings'];\n","import Raven from './lib/Raven';\nimport { domElements } from './constants/selectors';\nimport { changeRoute } from './api/hubspotPluginApi';\nimport { validAppRoutes } from './constants/routes';\n\nexport function initNavigation() {\n function setSelectedMenuItem() {\n jQuery(domElements.subMenuButtons).removeClass('current');\n const pageParam = window.location.search.match(/\\?page=leadin_?\\w*/)[0]; // filter page query param\n const selectedElement = jQuery(`a[href=\"admin.php${pageParam}\"]`);\n selectedElement.parent().addClass('current');\n }\n\n function handleNavigation() {\n let appRoute = window.location.search.match(/page=leadin_?(\\w*)/)[1];\n\n // prefix route with /\n if (appRoute) {\n appRoute = `/${appRoute}`;\n }\n\n changeRoute(appRoute);\n setSelectedMenuItem();\n }\n\n function handleClick() {\n // Don't interrupt modifier keys\n if (event.metaKey || event.altKey || event.shiftKey) {\n return;\n }\n window.history.pushState(null, null, jQuery(this).attr('href'));\n handleNavigation();\n event.preventDefault();\n }\n\n // Browser back and forward events navigation\n window.addEventListener('popstate', handleNavigation);\n\n // Menu Navigation\n jQuery(domElements.spaNavigationButtons).click(Raven.wrap(handleClick));\n}\n\n// Given a route like \"/settings/forms\", parse it into \"?page=leadin_settings&leadin_route[0]=forms\"\nexport function syncRoute(path = '') {\n const routes = path.split('/');\n\n while (routes[0] === '') {\n routes.shift();\n }\n\n let appRoute = '';\n\n if (validAppRoutes.includes(routes[0])) {\n appRoute = `_${routes[0]}`;\n routes.shift();\n }\n\n const queryParamsRoutes = routes.reduce((acc, route, index) => {\n return `${acc}&${encodeURIComponent(`leadin_route[${index}]`)}=${route}`;\n }, '');\n\n window.history.replaceState(\n null,\n null,\n `?page=leadin${appRoute}${queryParamsRoutes}`\n );\n}\n\nexport function disableNavigation() {\n jQuery(domElements.allMenuButtons).off('click');\n}\n","export default {\n 'genesis-sample': {\n formsStyle: {\n fontFamily: 'Source Sans Pro',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#0073e5',\n },\n chatStyle: {\n accentColor: '#0073e5',\n },\n onScrollLeadFlowStyle: {\n color: '#0073e5',\n },\n onExitLeadFlowStyle: {\n color: '#0073e5',\n },\n },\n 'academy-pro': {\n formsStyle: {\n fontFamily: 'PT Sans',\n labelTextColor: '#222222',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#e22c2f',\n },\n chatStyle: {\n accentColor: '#e22c2f',\n },\n onScrollLeadFlowStyle: {\n color: '#e22c2f',\n },\n onExitLeadFlowStyle: {\n color: '#e22c2f',\n },\n },\n 'agency-pro': {\n formsStyle: {\n fontFamily: 'EB Garamond',\n labelTextColor: '#666666',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#d7c603',\n },\n chatStyle: {\n accentColor: '#d7c603',\n },\n onScrollLeadFlowStyle: {\n color: '#d7c603',\n },\n onExitLeadFlowStyle: {\n color: '#d7c603',\n },\n },\n 'agentpress-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#1a212b',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#d23836',\n },\n chatStyle: {\n accentColor: '#d23836',\n },\n onScrollLeadFlowStyle: {\n color: '#d23836',\n },\n onExitLeadFlowStyle: {\n color: '#d23836',\n },\n },\n 'altitude-pro': {\n formsStyle: {\n fontFamily: 'Ek Mukta',\n labelTextColor: '#000000',\n labelTextSize: '20px',\n submitFontColor: '#ffffff',\n submitColor: '#079bc4',\n },\n chatStyle: {\n accentColor: '#079bc4',\n },\n onScrollLeadFlowStyle: {\n color: '#079bc4',\n },\n onExitLeadFlowStyle: {\n color: '#079bc4',\n },\n },\n 'ambiance-pro': {\n formsStyle: {\n fontFamily: 'Merriweather',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#e12727',\n },\n chatStyle: {\n accentColor: '#e12727',\n },\n onScrollLeadFlowStyle: {\n color: '#e12727',\n },\n onExitLeadFlowStyle: {\n color: '#e12727',\n },\n },\n 'atmosphere-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#333333',\n labelTextSize: '20px',\n submitFontColor: '#ffffff',\n submitColor: '#333333',\n },\n chatStyle: {\n accentColor: '#333333',\n },\n onScrollLeadFlowStyle: {\n color: '#333333',\n },\n onExitLeadFlowStyle: {\n color: '#333333',\n },\n },\n 'author-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'authority-pro': {\n formsStyle: {\n fontFamily: 'Libre Baskerville',\n labelTextColor: '#333333',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#000cff',\n },\n chatStyle: {\n accentColor: '#000cff',\n },\n onScrollLeadFlowStyle: {\n color: '#000cff',\n },\n onExitLeadFlowStyle: {\n color: '#000cff',\n },\n },\n 'beautiful-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#666666',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#e5554e',\n },\n chatStyle: {\n accentColor: '#e5554e',\n },\n onScrollLeadFlowStyle: {\n color: '#e5554e',\n },\n onExitLeadFlowStyle: {\n color: '#e5554e',\n },\n },\n 'breakthrough-pro': {\n formsStyle: {\n fontFamily: 'Alegreya Sans',\n labelTextColor: '#4e4756',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#4a4f9b',\n },\n chatStyle: {\n accentColor: '#4a4f9b',\n },\n onScrollLeadFlowStyle: {\n color: '#4a4f9b',\n },\n onExitLeadFlowStyle: {\n color: '#4a4f9b',\n },\n },\n 'cafe-pro': {\n formsStyle: {\n fontFamily: 'Crimson Text',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'daily-dish-pro': {\n formsStyle: {\n fontFamily: 'Cormorant',\n labelTextColor: '#000000',\n labelTextSize: '20px',\n submitFontColor: '#ffffff',\n submitColor: '#d9037f',\n },\n chatStyle: {\n accentColor: '#d9037f',\n },\n onScrollLeadFlowStyle: {\n color: '#d9037f',\n },\n onExitLeadFlowStyle: {\n color: '#d9037f',\n },\n },\n 'digital-pro': {\n formsStyle: {\n fontFamily: 'Lora',\n labelTextColor: '#5b5e5e',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#e85555',\n },\n chatStyle: {\n accentColor: '#e85555',\n },\n onScrollLeadFlowStyle: {\n color: '#e85555',\n },\n onExitLeadFlowStyle: {\n color: '#e85555',\n },\n },\n 'education-pro': {\n formsStyle: {\n fontFamily: 'Roboto Condensed',\n labelTextColor: '#444444',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#78a7c8',\n },\n chatStyle: {\n accentColor: '#78a7c8',\n },\n onScrollLeadFlowStyle: {\n color: '#78a7c8',\n },\n onExitLeadFlowStyle: {\n color: '#78a7c8',\n },\n },\n 'eleven40-pro': {\n formsStyle: {\n fontFamily: 'Lora',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#ed702b',\n },\n chatStyle: {\n accentColor: '#ed702b',\n },\n onScrollLeadFlowStyle: {\n color: '#ed702b',\n },\n onExitLeadFlowStyle: {\n color: '#ed702b',\n },\n },\n 'enterprise-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#777777',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#31b2ed',\n },\n chatStyle: {\n accentColor: '#31b2ed',\n },\n onScrollLeadFlowStyle: {\n color: '#31b2ed',\n },\n onExitLeadFlowStyle: {\n color: '#31b2ed',\n },\n },\n 'essence-pro': {\n formsStyle: {\n fontFamily: 'Alegreya Sans',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#be8100',\n },\n chatStyle: {\n accentColor: '#be8100',\n },\n onScrollLeadFlowStyle: {\n color: '#be8100',\n },\n onExitLeadFlowStyle: {\n color: '#be8100',\n },\n },\n 'executive-pro': {\n formsStyle: {\n fontFamily: 'Open Sans',\n labelTextColor: '#222222',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#64c9ea',\n },\n chatStyle: {\n accentColor: '#64c9ea',\n },\n onScrollLeadFlowStyle: {\n color: '#64c9ea',\n },\n onExitLeadFlowStyle: {\n color: '#64c9ea',\n },\n },\n 'generate-pro': {\n formsStyle: {\n fontFamily: 'Source Sans Pro',\n labelTextColor: '#222222',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#eb232f',\n },\n chatStyle: {\n accentColor: '#eb232f',\n },\n onScrollLeadFlowStyle: {\n color: '#eb232f',\n },\n onExitLeadFlowStyle: {\n color: '#eb232f',\n },\n },\n 'infinity-pro': {\n formsStyle: {\n fontFamily: 'Cormorant Garamond',\n labelTextColor: '#000000',\n labelTextSize: '22px',\n submitFontColor: '#ffffff',\n submitColor: '#d43c67',\n },\n chatStyle: {\n accentColor: '#d43c67',\n },\n onScrollLeadFlowStyle: {\n color: '#d43c67',\n },\n onExitLeadFlowStyle: {\n color: '#d43c67',\n },\n },\n 'interior-pro': {\n formsStyle: {\n fontFamily: 'Lora',\n labelTextColor: '#777777',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#009092',\n },\n chatStyle: {\n accentColor: '#009092',\n },\n onScrollLeadFlowStyle: {\n color: '#009092',\n },\n onExitLeadFlowStyle: {\n color: '#009092',\n },\n },\n 'lifestyle-pro': {\n formsStyle: {\n fontFamily: 'Droid Sans',\n labelTextColor: '#767673',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#27968b',\n },\n chatStyle: {\n accentColor: '#27968b',\n },\n onScrollLeadFlowStyle: {\n color: '#27968b',\n },\n onExitLeadFlowStyle: {\n color: '#27968b',\n },\n },\n 'magazine-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#222222',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#008285',\n },\n chatStyle: {\n accentColor: '#008285',\n },\n onScrollLeadFlowStyle: {\n color: '#008285',\n },\n onExitLeadFlowStyle: {\n color: '#008285',\n },\n },\n 'metro-pro': {\n formsStyle: {\n fontFamily: 'Helvetica Neue',\n labelTextColor: '#222222',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#f96e5b',\n },\n chatStyle: {\n accentColor: '#f96e5b',\n },\n onScrollLeadFlowStyle: {\n color: '#f96e5b',\n },\n onExitLeadFlowStyle: {\n color: '#f96e5b',\n },\n },\n 'minimum-pro': {\n formsStyle: {\n fontFamily: 'Roboto Slab',\n labelTextColor: '#333333',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#0ebfe9',\n },\n chatStyle: {\n accentColor: '#0ebfe9',\n },\n onScrollLeadFlowStyle: {\n color: '#0ebfe9',\n },\n onExitLeadFlowStyle: {\n color: '#0ebfe9',\n },\n },\n 'modern-studio-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'monochrome-pro': {\n formsStyle: {\n fontFamily: 'Muli',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'news-pro': {\n formsStyle: {\n fontFamily: 'Raleway',\n labelTextColor: '#666666',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#ff0000',\n },\n chatStyle: {\n accentColor: '#ff0000',\n },\n onScrollLeadFlowStyle: {\n color: '#ff0000',\n },\n onExitLeadFlowStyle: {\n color: '#ff0000',\n },\n },\n 'no-sidebar-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#333333',\n },\n chatStyle: {\n accentColor: '#333333',\n },\n onScrollLeadFlowStyle: {\n color: '#333333',\n },\n onExitLeadFlowStyle: {\n color: '#333333',\n },\n },\n 'outfitter-pro': {\n formsStyle: {\n fontFamily: 'Noto Sans',\n labelTextColor: '#546e7a',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'outreach-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#333333',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#6ab446',\n },\n chatStyle: {\n accentColor: '#6ab446',\n },\n onScrollLeadFlowStyle: {\n color: '#6ab446',\n },\n onExitLeadFlowStyle: {\n color: '#6ab446',\n },\n },\n 'parallax-pro': {\n formsStyle: {\n fontFamily: 'Cormorant Garamond',\n labelTextColor: '#000000',\n labelTextSize: '22px',\n submitFontColor: '#ffffff',\n submitColor: '#00a0af',\n },\n chatStyle: {\n accentColor: '#00a0af',\n },\n onScrollLeadFlowStyle: {\n color: '#00a0af',\n },\n onExitLeadFlowStyle: {\n color: '#00a0af',\n },\n },\n 'revolution-pro': {\n formsStyle: {\n fontFamily: 'Noto Serif SC',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#008080',\n },\n chatStyle: {\n accentColor: '#008080',\n },\n onScrollLeadFlowStyle: {\n color: '#008080',\n },\n onExitLeadFlowStyle: {\n color: '#008080',\n },\n },\n 'sixteen-nine-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#1dbec0',\n },\n chatStyle: {\n accentColor: '#1dbec0',\n },\n onScrollLeadFlowStyle: {\n color: '#1dbec0',\n },\n onExitLeadFlowStyle: {\n color: '#1dbec0',\n },\n },\n 'smart-passive-income-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#0e763c',\n },\n chatStyle: {\n accentColor: '#0e763c',\n },\n onScrollLeadFlowStyle: {\n color: '#0e763c',\n },\n onExitLeadFlowStyle: {\n color: '#0e763c',\n },\n },\n 'wellness-pro': {\n formsStyle: {\n fontFamily: 'Open Sans',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#5da44f',\n },\n chatStyle: {\n accentColor: '#5da44f',\n },\n onScrollLeadFlowStyle: {\n color: '#5da44f',\n },\n onExitLeadFlowStyle: {\n color: '#5da44f',\n },\n },\n 'workstation-pro': {\n formsStyle: {\n fontFamily: 'Baskerville',\n labelTextColor: '#222222',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#ff4800',\n },\n chatStyle: {\n accentColor: '#ff4800',\n },\n onScrollLeadFlowStyle: {\n color: '#ff4800',\n },\n onExitLeadFlowStyle: {\n color: '#ff4800',\n },\n },\n};\n","import {\n onInterframeReady,\n onConnect,\n onDisconnect,\n onUpgrade,\n onPageReload,\n onInitNavigation,\n onDisableNavigation,\n onClearQueryParam,\n onGetDomain,\n onGetAssetsPayload,\n onEnterFullScreen,\n onExitFullScreen,\n onSyncRoute,\n} from './api/hubspotPluginApi';\nimport {\n connect,\n disconnect,\n getDomain,\n clearPortalIdPolling,\n} from './api/wordpressApi';\nimport { adminUrl, theme } from './constants/leadinConfig';\nimport { initNavigation, disableNavigation, syncRoute } from './navigation';\nimport enterFullScreen, { exitFullScreen } from './fullscreen';\nimport themes from './constants/themes';\n\nonInterframeReady((message, reply) => {\n reply('Interframe Ready');\n});\n\nonConnect((portalId, reply) => {\n connect(\n portalId,\n () => {\n clearPortalIdPolling();\n reply({ success: true });\n },\n reply.bind(null, { success: false })\n );\n});\n\nonDisconnect((message, reply) => {\n disconnect(\n reply.bind(null, { success: true }),\n reply.bind(null, { success: false })\n );\n});\n\nonUpgrade((message, reply) => {\n reply();\n location.href = `${adminUrl}plugins.php`;\n});\n\nonPageReload((message, reply) => {\n reply();\n window.location.reload(true);\n});\n\nonInitNavigation((message, reply) => {\n reply();\n initNavigation();\n});\n\nonDisableNavigation((message, reply) => {\n reply();\n disableNavigation();\n});\n\nonClearQueryParam((message, reply) => {\n reply();\n let currentWindowLocation = window.location.toString();\n if (currentWindowLocation.indexOf('?') > 0) {\n currentWindowLocation = currentWindowLocation.substring(\n 0,\n currentWindowLocation.indexOf('?')\n );\n }\n const newWindowLocation = `${currentWindowLocation}?page=leadin`;\n window.history.pushState({}, '', newWindowLocation);\n});\n\nonGetDomain((message, reply) => {\n getDomain(data => {\n if (data.domain) {\n reply(data.domain);\n }\n });\n});\n\nonGetAssetsPayload((message, reply) => {\n reply({ payload: themes[theme] });\n});\n\nonEnterFullScreen((message, reply) => {\n enterFullScreen();\n reply();\n});\n\nonExitFullScreen((message, reply) => {\n exitFullScreen();\n reply();\n});\n\nonSyncRoute((message, reply) => {\n syncRoute(message);\n reply();\n});\n","import { domElements } from './constants/selectors';\n\nexport default function enterFullScreen() {\n jQuery(domElements.iframe).addClass('leadin-iframe-fullscreen');\n}\n\nexport function exitFullScreen() {\n jQuery(domElements.iframe).removeClass('leadin-iframe-fullscreen');\n}\n","import Raven, { configureRaven } from './lib/Raven';\nimport { addExternalLinks } from './menu';\nimport { portalId } from './constants/leadinConfig';\nimport { initInterframe } from './lib/Interframe';\nimport { startPortalIdPolling } from './api/wordpressApi';\nimport './handlers';\n\nfunction main() {\n initInterframe();\n\n // Enable App Navigation only when viewing the plugin\n if (window.location.search.indexOf('page=leadin') !== -1) {\n if (!portalId) {\n startPortalIdPolling();\n }\n }\n\n jQuery(document).ready(addExternalLinks);\n}\n\nconfigureRaven();\nRaven.context(main);\n"],"sourceRoot":""}
|
package.json → js/package.json
RENAMED
@@ -1,20 +1,21 @@
|
|
1 |
{
|
2 |
"scripts": {
|
3 |
"build": "webpack --mode=production",
|
4 |
-
"start": "webpack --
|
5 |
"test": "jasmine"
|
6 |
},
|
7 |
"dependencies": {
|
|
|
|
|
|
|
8 |
"@babel/core": "^7.4.5",
|
9 |
"@babel/preset-env": "^7.4.5",
|
10 |
"@babel/preset-es2015": "^7.0.0-beta.53",
|
11 |
"babel-loader": "^8.0.6",
|
12 |
"babel-plugin-transform-class-properties": "^6.24.1",
|
13 |
-
"
|
14 |
"webpack": "^4.33.0",
|
15 |
-
"webpack-cli": "^3.3.2"
|
16 |
-
|
17 |
-
"devDependencies": {
|
18 |
-
"jasmine": "^3.4.0"
|
19 |
}
|
20 |
}
|
1 |
{
|
2 |
"scripts": {
|
3 |
"build": "webpack --mode=production",
|
4 |
+
"start": "webpack-dev-server --port=4001",
|
5 |
"test": "jasmine"
|
6 |
},
|
7 |
"dependencies": {
|
8 |
+
"raven-js": "3.19.1"
|
9 |
+
},
|
10 |
+
"devDependencies": {
|
11 |
"@babel/core": "^7.4.5",
|
12 |
"@babel/preset-env": "^7.4.5",
|
13 |
"@babel/preset-es2015": "^7.0.0-beta.53",
|
14 |
"babel-loader": "^8.0.6",
|
15 |
"babel-plugin-transform-class-properties": "^6.24.1",
|
16 |
+
"jasmine": "^3.4.0",
|
17 |
"webpack": "^4.33.0",
|
18 |
+
"webpack-cli": "^3.3.2",
|
19 |
+
"webpack-dev-server": "^3.7.2"
|
|
|
|
|
20 |
}
|
21 |
}
|
{spec → js/spec}/support/jasmine.json
RENAMED
File without changes
|
{spec → js/spec}/tests/universal-test.js
RENAMED
File without changes
|
js/{api → src/api}/hubspotPluginApi.js
RENAMED
File without changes
|
js/{api → src/api}/wordpressApi.js
RENAMED
File without changes
|
js/{app.js → src/app.js}
RENAMED
File without changes
|
js/{constants → src/constants}/leadinConfig.js
RENAMED
File without changes
|
js/{constants → src/constants}/routes.js
RENAMED
File without changes
|
js/{constants → src/constants}/selectors.js
RENAMED
File without changes
|
js/{constants → src/constants}/themes.js
RENAMED
File without changes
|
js/{fullscreen.js → src/fullscreen.js}
RENAMED
File without changes
|
js/{handlers.js → src/handlers.js}
RENAMED
File without changes
|
js/{lib → src/lib}/EventBus.js
RENAMED
File without changes
|
js/{lib → src/lib}/Interframe.js
RENAMED
File without changes
|
js/{lib → src/lib}/Raven.js
RENAMED
File without changes
|
js/{menu.js → src/menu.js}
RENAMED
File without changes
|
js/{navigation.js → src/navigation.js}
RENAMED
File without changes
|
js/{utils.js → src/utils.js}
RENAMED
File without changes
|
webpack.config.js → js/webpack.config.js
RENAMED
@@ -1,10 +1,10 @@
|
|
1 |
const path = require('path');
|
2 |
|
3 |
module.exports = {
|
4 |
-
entry: { leadin: './
|
5 |
output: {
|
6 |
filename: '[name].js',
|
7 |
-
path: path.resolve(__dirname, '
|
8 |
},
|
9 |
module: {
|
10 |
rules: [
|
1 |
const path = require('path');
|
2 |
|
3 |
module.exports = {
|
4 |
+
entry: { leadin: './src/app.js' },
|
5 |
output: {
|
6 |
filename: '[name].js',
|
7 |
+
path: path.resolve(__dirname, 'dist'),
|
8 |
},
|
9 |
module: {
|
10 |
rules: [
|
yarn.lock → js/yarn.lock
RENAMED
@@ -909,6 +909,26 @@
|
|
909 |
lodash "^4.17.11"
|
910 |
to-fast-properties "^2.0.0"
|
911 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
912 |
"@webassemblyjs/ast@1.8.5":
|
913 |
version "1.8.5"
|
914 |
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
|
@@ -1049,6 +1069,13 @@ abbrev@1:
|
|
1049 |
version "1.1.1"
|
1050 |
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
1051 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1052 |
acorn-dynamic-import@^4.0.0:
|
1053 |
version "4.0.0"
|
1054 |
resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
|
@@ -1074,6 +1101,14 @@ ajv@^6.1.0:
|
|
1074 |
json-schema-traverse "^0.4.1"
|
1075 |
uri-js "^4.2.2"
|
1076 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1077 |
ansi-regex@^2.0.0:
|
1078 |
version "2.1.1"
|
1079 |
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
@@ -1122,6 +1157,24 @@ arr-union@^3.1.0:
|
|
1122 |
version "3.1.0"
|
1123 |
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
|
1124 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1125 |
array-unique@^0.3.2:
|
1126 |
version "0.3.2"
|
1127 |
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
|
@@ -1149,6 +1202,10 @@ async-each@^1.0.1:
|
|
1149 |
version "1.0.3"
|
1150 |
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
|
1151 |
|
|
|
|
|
|
|
|
|
1152 |
atob@^2.1.1:
|
1153 |
version "2.1.2"
|
1154 |
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
@@ -1270,6 +1327,10 @@ base@^0.11.1:
|
|
1270 |
mixin-deep "^1.2.0"
|
1271 |
pascalcase "^0.1.1"
|
1272 |
|
|
|
|
|
|
|
|
|
1273 |
big.js@^5.2.2:
|
1274 |
version "5.2.2"
|
1275 |
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
@@ -1286,6 +1347,32 @@ bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0:
|
|
1286 |
version "4.11.8"
|
1287 |
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
1288 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1289 |
brace-expansion@^1.1.7:
|
1290 |
version "1.1.11"
|
1291 |
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
@@ -1377,6 +1464,10 @@ buffer-from@^1.0.0:
|
|
1377 |
version "1.1.1"
|
1378 |
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
1379 |
|
|
|
|
|
|
|
|
|
1380 |
buffer-xor@^1.0.3:
|
1381 |
version "1.0.3"
|
1382 |
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
@@ -1393,6 +1484,14 @@ builtin-status-codes@^3.0.0:
|
|
1393 |
version "3.0.0"
|
1394 |
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
|
1395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1396 |
cacache@^11.3.2:
|
1397 |
version "11.3.2"
|
1398 |
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa"
|
@@ -1452,7 +1551,7 @@ chalk@^2.0.0, chalk@^2.4.1:
|
|
1452 |
escape-string-regexp "^1.0.5"
|
1453 |
supports-color "^5.3.0"
|
1454 |
|
1455 |
-
chokidar@^2.0.2:
|
1456 |
version "2.1.6"
|
1457 |
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5"
|
1458 |
dependencies:
|
@@ -1537,6 +1636,24 @@ component-emitter@^1.2.1:
|
|
1537 |
version "1.3.0"
|
1538 |
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
|
1539 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1540 |
concat-map@0.0.1:
|
1541 |
version "0.0.1"
|
1542 |
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
@@ -1550,6 +1667,10 @@ concat-stream@^1.5.0:
|
|
1550 |
readable-stream "^2.2.2"
|
1551 |
typedarray "^0.0.6"
|
1552 |
|
|
|
|
|
|
|
|
|
1553 |
console-browserify@^1.1.0:
|
1554 |
version "1.1.0"
|
1555 |
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
|
@@ -1564,12 +1685,30 @@ constants-browserify@^1.0.0:
|
|
1564 |
version "1.0.0"
|
1565 |
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
|
1566 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1567 |
convert-source-map@^1.1.0:
|
1568 |
version "1.6.0"
|
1569 |
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
|
1570 |
dependencies:
|
1571 |
safe-buffer "~5.1.1"
|
1572 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1573 |
copy-concurrently@^1.0.0:
|
1574 |
version "1.0.5"
|
1575 |
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
|
@@ -1667,19 +1806,19 @@ date-now@^0.1.4:
|
|
1667 |
version "0.1.4"
|
1668 |
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
1669 |
|
1670 |
-
debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
|
1671 |
version "2.6.9"
|
1672 |
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
1673 |
dependencies:
|
1674 |
ms "2.0.0"
|
1675 |
|
1676 |
-
debug@^3.1.0, debug@^3.2.6:
|
1677 |
version "3.2.6"
|
1678 |
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
|
1679 |
dependencies:
|
1680 |
ms "^2.1.1"
|
1681 |
|
1682 |
-
debug@^4.1.0:
|
1683 |
version "4.1.1"
|
1684 |
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
|
1685 |
dependencies:
|
@@ -1693,10 +1832,21 @@ decode-uri-component@^0.2.0:
|
|
1693 |
version "0.2.0"
|
1694 |
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
1695 |
|
|
|
|
|
|
|
|
|
1696 |
deep-extend@^0.6.0:
|
1697 |
version "0.6.0"
|
1698 |
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
1699 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1700 |
define-property@^0.2.5:
|
1701 |
version "0.2.5"
|
1702 |
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
|
@@ -1716,10 +1866,26 @@ define-property@^2.0.2:
|
|
1716 |
is-descriptor "^1.0.2"
|
1717 |
isobject "^3.0.1"
|
1718 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1719 |
delegates@^1.0.0:
|
1720 |
version "1.0.0"
|
1721 |
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
1722 |
|
|
|
|
|
|
|
|
|
1723 |
des.js@^1.0.0:
|
1724 |
version "1.0.0"
|
1725 |
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
|
@@ -1727,6 +1893,10 @@ des.js@^1.0.0:
|
|
1727 |
inherits "^2.0.1"
|
1728 |
minimalistic-assert "^1.0.0"
|
1729 |
|
|
|
|
|
|
|
|
|
1730 |
detect-file@^1.0.0:
|
1731 |
version "1.0.0"
|
1732 |
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
|
@@ -1735,6 +1905,10 @@ detect-libc@^1.0.2:
|
|
1735 |
version "1.0.3"
|
1736 |
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
|
1737 |
|
|
|
|
|
|
|
|
|
1738 |
diffie-hellman@^5.0.0:
|
1739 |
version "5.0.3"
|
1740 |
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
@@ -1743,6 +1917,23 @@ diffie-hellman@^5.0.0:
|
|
1743 |
miller-rabin "^4.0.0"
|
1744 |
randombytes "^2.0.0"
|
1745 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1746 |
domain-browser@^1.1.1:
|
1747 |
version "1.2.0"
|
1748 |
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
@@ -1756,6 +1947,10 @@ duplexify@^3.4.2, duplexify@^3.6.0:
|
|
1756 |
readable-stream "^2.0.0"
|
1757 |
stream-shift "^1.0.0"
|
1758 |
|
|
|
|
|
|
|
|
|
1759 |
electron-to-chromium@^1.3.150:
|
1760 |
version "1.3.155"
|
1761 |
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.155.tgz#ebf0cc8eeaffd6151d1efad60fd9e021fb45fd3a"
|
@@ -1776,6 +1971,10 @@ emojis-list@^2.0.0:
|
|
1776 |
version "2.1.0"
|
1777 |
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
|
1778 |
|
|
|
|
|
|
|
|
|
1779 |
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
1780 |
version "1.4.1"
|
1781 |
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
@@ -1796,6 +1995,10 @@ errno@^0.1.3, errno@~0.1.7:
|
|
1796 |
dependencies:
|
1797 |
prr "~1.0.1"
|
1798 |
|
|
|
|
|
|
|
|
|
1799 |
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
|
1800 |
version "1.0.5"
|
1801 |
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
@@ -1821,10 +2024,24 @@ esutils@^2.0.2:
|
|
1821 |
version "2.0.2"
|
1822 |
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
|
1823 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1824 |
events@^3.0.0:
|
1825 |
version "3.0.0"
|
1826 |
resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
|
1827 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1828 |
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
|
1829 |
version "1.0.3"
|
1830 |
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
|
@@ -1862,6 +2079,41 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
|
|
1862 |
dependencies:
|
1863 |
homedir-polyfill "^1.0.1"
|
1864 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1865 |
extend-shallow@^2.0.1:
|
1866 |
version "2.0.1"
|
1867 |
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
@@ -1896,6 +2148,18 @@ fast-json-stable-stringify@^2.0.0:
|
|
1896 |
version "2.0.0"
|
1897 |
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
1898 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1899 |
figgy-pudding@^3.5.1:
|
1900 |
version "3.5.1"
|
1901 |
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
|
@@ -1909,6 +2173,18 @@ fill-range@^4.0.0:
|
|
1909 |
repeat-string "^1.6.1"
|
1910 |
to-regex-range "^2.1.0"
|
1911 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1912 |
find-cache-dir@^2.0.0:
|
1913 |
version "2.1.0"
|
1914 |
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
|
@@ -1939,16 +2215,30 @@ flush-write-stream@^1.0.0:
|
|
1939 |
inherits "^2.0.3"
|
1940 |
readable-stream "^2.3.6"
|
1941 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1942 |
for-in@^1.0.2:
|
1943 |
version "1.0.2"
|
1944 |
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
|
1945 |
|
|
|
|
|
|
|
|
|
1946 |
fragment-cache@^0.2.1:
|
1947 |
version "0.2.1"
|
1948 |
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
|
1949 |
dependencies:
|
1950 |
map-cache "^0.2.2"
|
1951 |
|
|
|
|
|
|
|
|
|
1952 |
from2@^2.1.0:
|
1953 |
version "2.3.0"
|
1954 |
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
|
@@ -2016,7 +2306,7 @@ glob-parent@^3.1.0:
|
|
2016 |
is-glob "^3.1.0"
|
2017 |
path-dirname "^1.0.0"
|
2018 |
|
2019 |
-
glob@^7.1.3:
|
2020 |
version "7.1.4"
|
2021 |
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
|
2022 |
dependencies:
|
@@ -2053,10 +2343,24 @@ globals@^9.18.0:
|
|
2053 |
version "9.18.0"
|
2054 |
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
2055 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2056 |
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
|
2057 |
version "4.1.15"
|
2058 |
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
2059 |
|
|
|
|
|
|
|
|
|
2060 |
has-ansi@^2.0.0:
|
2061 |
version "2.0.0"
|
2062 |
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
|
@@ -2126,11 +2430,78 @@ homedir-polyfill@^1.0.1:
|
|
2126 |
dependencies:
|
2127 |
parse-passwd "^1.0.0"
|
2128 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2129 |
https-browserify@^1.0.0:
|
2130 |
version "1.0.0"
|
2131 |
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
|
2132 |
|
2133 |
-
iconv-lite@^0.4.4:
|
2134 |
version "0.4.24"
|
2135 |
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
2136 |
dependencies:
|
@@ -2180,10 +2551,21 @@ inherits@2.0.1:
|
|
2180 |
version "2.0.1"
|
2181 |
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
|
2182 |
|
|
|
|
|
|
|
|
|
2183 |
ini@^1.3.4, ini@~1.3.0:
|
2184 |
version "1.3.5"
|
2185 |
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
|
2186 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2187 |
interpret@^1.1.0:
|
2188 |
version "1.2.0"
|
2189 |
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
|
@@ -2198,6 +2580,22 @@ invert-kv@^2.0.0:
|
|
2198 |
version "2.0.0"
|
2199 |
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
|
2200 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2201 |
is-accessor-descriptor@^0.1.6:
|
2202 |
version "0.1.6"
|
2203 |
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
|
@@ -2290,6 +2688,22 @@ is-number@^3.0.0:
|
|
2290 |
dependencies:
|
2291 |
kind-of "^3.0.2"
|
2292 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2293 |
is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
|
2294 |
version "2.0.4"
|
2295 |
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
@@ -2329,12 +2743,10 @@ isobject@^3.0.0, isobject@^3.0.1:
|
|
2329 |
jasmine-core@~3.4.0:
|
2330 |
version "3.4.0"
|
2331 |
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3"
|
2332 |
-
integrity sha512-HU/YxV4i6GcmiH4duATwAbJQMlE0MsDIR5XmSVxURxKHn3aGAdbY1/ZJFmVRbKtnLwIxxMJD7gYaPsypcbYimg==
|
2333 |
|
2334 |
jasmine@^3.4.0:
|
2335 |
version "3.4.0"
|
2336 |
resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-3.4.0.tgz#0fa68903ff0c9697459cd044b44f4dcef5ec8bdc"
|
2337 |
-
integrity sha512-sR9b4n+fnBFDEd7VS2el2DeHgKcPiMVn44rtKFumq9q7P/t8WrxsVIZPob4UDdgcDNCwyDqwxCt4k9TDRmjPoQ==
|
2338 |
dependencies:
|
2339 |
glob "^7.1.3"
|
2340 |
jasmine-core "~3.4.0"
|
@@ -2367,6 +2779,10 @@ json-schema-traverse@^0.4.1:
|
|
2367 |
version "0.4.1"
|
2368 |
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
2369 |
|
|
|
|
|
|
|
|
|
2370 |
json5@^1.0.1:
|
2371 |
version "1.0.1"
|
2372 |
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
|
@@ -2379,6 +2795,10 @@ json5@^2.1.0:
|
|
2379 |
dependencies:
|
2380 |
minimist "^1.2.0"
|
2381 |
|
|
|
|
|
|
|
|
|
2382 |
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
|
2383 |
version "3.2.2"
|
2384 |
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
|
@@ -2428,6 +2848,10 @@ lodash@^4.17.11, lodash@^4.17.4, lodash@^4.17.5:
|
|
2428 |
version "4.17.11"
|
2429 |
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
2430 |
|
|
|
|
|
|
|
|
|
2431 |
loose-envify@^1.0.0:
|
2432 |
version "1.4.0"
|
2433 |
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
@@ -2475,6 +2899,10 @@ md5.js@^1.3.4:
|
|
2475 |
inherits "^2.0.1"
|
2476 |
safe-buffer "^5.1.2"
|
2477 |
|
|
|
|
|
|
|
|
|
2478 |
mem@^4.0.0:
|
2479 |
version "4.3.0"
|
2480 |
resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
|
@@ -2483,13 +2911,21 @@ mem@^4.0.0:
|
|
2483 |
mimic-fn "^2.0.0"
|
2484 |
p-is-promise "^2.0.0"
|
2485 |
|
2486 |
-
memory-fs@^0.4.0, memory-fs@~0.4.1:
|
2487 |
version "0.4.1"
|
2488 |
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
|
2489 |
dependencies:
|
2490 |
errno "^0.1.3"
|
2491 |
readable-stream "^2.0.1"
|
2492 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2493 |
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
|
2494 |
version "3.1.10"
|
2495 |
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
|
@@ -2515,6 +2951,24 @@ miller-rabin@^4.0.0:
|
|
2515 |
bn.js "^4.0.0"
|
2516 |
brorand "^1.0.1"
|
2517 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2518 |
mimic-fn@^2.0.0:
|
2519 |
version "2.1.0"
|
2520 |
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
@@ -2576,7 +3030,7 @@ mixin-deep@^1.2.0:
|
|
2576 |
for-in "^1.0.2"
|
2577 |
is-extendable "^1.0.1"
|
2578 |
|
2579 |
-
mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
|
2580 |
version "0.5.1"
|
2581 |
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
2582 |
dependencies:
|
@@ -2597,10 +3051,21 @@ ms@2.0.0:
|
|
2597 |
version "2.0.0"
|
2598 |
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
2599 |
|
2600 |
-
ms@^2.1.1:
|
2601 |
version "2.1.1"
|
2602 |
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
|
2603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2604 |
nan@^2.12.1:
|
2605 |
version "2.14.0"
|
2606 |
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
|
@@ -2629,6 +3094,10 @@ needle@^2.2.1:
|
|
2629 |
iconv-lite "^0.4.4"
|
2630 |
sax "^1.2.4"
|
2631 |
|
|
|
|
|
|
|
|
|
2632 |
neo-async@^2.5.0:
|
2633 |
version "2.6.1"
|
2634 |
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
|
@@ -2637,6 +3106,10 @@ nice-try@^1.0.4:
|
|
2637 |
version "1.0.5"
|
2638 |
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
2639 |
|
|
|
|
|
|
|
|
|
2640 |
node-libs-browser@^2.0.0:
|
2641 |
version "2.2.0"
|
2642 |
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77"
|
@@ -2733,7 +3206,7 @@ number-is-nan@^1.0.0:
|
|
2733 |
version "1.0.1"
|
2734 |
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
2735 |
|
2736 |
-
object-assign@^4.1.0, object-assign@^4.1.1:
|
2737 |
version "4.1.1"
|
2738 |
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
2739 |
|
@@ -2757,12 +3230,38 @@ object.pick@^1.3.0:
|
|
2757 |
dependencies:
|
2758 |
isobject "^3.0.1"
|
2759 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2760 |
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
2761 |
version "1.4.0"
|
2762 |
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
2763 |
dependencies:
|
2764 |
wrappy "1"
|
2765 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2766 |
os-browserify@^0.3.0:
|
2767 |
version "0.3.0"
|
2768 |
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
|
@@ -2814,6 +3313,16 @@ p-locate@^3.0.0:
|
|
2814 |
dependencies:
|
2815 |
p-limit "^2.0.0"
|
2816 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2817 |
p-try@^2.0.0:
|
2818 |
version "2.2.0"
|
2819 |
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
@@ -2845,6 +3354,10 @@ parse-passwd@^1.0.0:
|
|
2845 |
version "1.0.0"
|
2846 |
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
2847 |
|
|
|
|
|
|
|
|
|
2848 |
pascalcase@^0.1.1:
|
2849 |
version "0.1.1"
|
2850 |
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
@@ -2865,6 +3378,10 @@ path-is-absolute@^1.0.0:
|
|
2865 |
version "1.0.1"
|
2866 |
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
2867 |
|
|
|
|
|
|
|
|
|
2868 |
path-key@^2.0.0, path-key@^2.0.1:
|
2869 |
version "2.0.1"
|
2870 |
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
@@ -2873,6 +3390,10 @@ path-parse@^1.0.6:
|
|
2873 |
version "1.0.6"
|
2874 |
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
|
2875 |
|
|
|
|
|
|
|
|
|
2876 |
pbkdf2@^3.0.3:
|
2877 |
version "3.0.17"
|
2878 |
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
|
@@ -2883,16 +3404,38 @@ pbkdf2@^3.0.3:
|
|
2883 |
safe-buffer "^5.0.1"
|
2884 |
sha.js "^2.4.8"
|
2885 |
|
|
|
|
|
|
|
|
|
2886 |
pify@^4.0.1:
|
2887 |
version "4.0.1"
|
2888 |
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
2889 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2890 |
pkg-dir@^3.0.0:
|
2891 |
version "3.0.0"
|
2892 |
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
|
2893 |
dependencies:
|
2894 |
find-up "^3.0.0"
|
2895 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2896 |
posix-character-classes@^0.1.0:
|
2897 |
version "0.1.1"
|
2898 |
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
|
@@ -2913,6 +3456,13 @@ promise-inflight@^1.0.1:
|
|
2913 |
version "1.0.1"
|
2914 |
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
|
2915 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2916 |
prr@~1.0.1:
|
2917 |
version "1.0.1"
|
2918 |
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
@@ -2962,6 +3512,10 @@ punycode@^2.1.0:
|
|
2962 |
version "2.1.1"
|
2963 |
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
2964 |
|
|
|
|
|
|
|
|
|
2965 |
querystring-es3@^0.2.0:
|
2966 |
version "0.2.1"
|
2967 |
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
@@ -2970,6 +3524,10 @@ querystring@0.2.0:
|
|
2970 |
version "0.2.0"
|
2971 |
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
|
2972 |
|
|
|
|
|
|
|
|
|
2973 |
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
|
2974 |
version "2.1.0"
|
2975 |
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
@@ -2983,10 +3541,23 @@ randomfill@^1.0.3:
|
|
2983 |
randombytes "^2.0.5"
|
2984 |
safe-buffer "^5.1.0"
|
2985 |
|
|
|
|
|
|
|
|
|
2986 |
raven-js@3.19.1:
|
2987 |
version "3.19.1"
|
2988 |
resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.19.1.tgz#a5d25646556fc2c86d2b188ae4f425c144c08dd8"
|
2989 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2990 |
rc@^1.2.7:
|
2991 |
version "1.2.8"
|
2992 |
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
@@ -3008,6 +3579,14 @@ rc@^1.2.7:
|
|
3008 |
string_decoder "~1.1.1"
|
3009 |
util-deprecate "~1.0.1"
|
3010 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3011 |
readdirp@^2.2.1:
|
3012 |
version "2.2.1"
|
3013 |
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
|
@@ -3094,6 +3673,10 @@ require-main-filename@^1.0.1:
|
|
3094 |
version "1.0.1"
|
3095 |
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
3096 |
|
|
|
|
|
|
|
|
|
3097 |
resolve-cwd@^2.0.0:
|
3098 |
version "2.0.0"
|
3099 |
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
|
@@ -3125,7 +3708,11 @@ ret@~0.1.10:
|
|
3125 |
version "0.1.15"
|
3126 |
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
|
3127 |
|
3128 |
-
|
|
|
|
|
|
|
|
|
3129 |
version "2.6.3"
|
3130 |
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
|
3131 |
dependencies:
|
@@ -3144,10 +3731,14 @@ run-queue@^1.0.0, run-queue@^1.0.3:
|
|
3144 |
dependencies:
|
3145 |
aproba "^1.1.1"
|
3146 |
|
3147 |
-
safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
3148 |
version "5.1.2"
|
3149 |
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
3150 |
|
|
|
|
|
|
|
|
|
3151 |
safe-regex@^1.1.0:
|
3152 |
version "1.1.0"
|
3153 |
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
|
@@ -3170,6 +3761,16 @@ schema-utils@^1.0.0:
|
|
3170 |
ajv-errors "^1.0.0"
|
3171 |
ajv-keywords "^3.1.0"
|
3172 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3173 |
semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
|
3174 |
version "5.7.0"
|
3175 |
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
|
@@ -3178,10 +3779,53 @@ semver@^6.1.0:
|
|
3178 |
version "6.1.1"
|
3179 |
resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
|
3180 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3181 |
serialize-javascript@^1.7.0:
|
3182 |
version "1.7.0"
|
3183 |
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65"
|
3184 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3185 |
set-blocking@^2.0.0, set-blocking@~2.0.0:
|
3186 |
version "2.0.0"
|
3187 |
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
@@ -3208,6 +3852,14 @@ setimmediate@^1.0.4:
|
|
3208 |
version "1.0.5"
|
3209 |
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
3210 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3211 |
sha.js@^2.4.0, sha.js@^2.4.8:
|
3212 |
version "2.4.11"
|
3213 |
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
|
@@ -3256,6 +3908,24 @@ snapdragon@^0.8.1:
|
|
3256 |
source-map-resolve "^0.5.0"
|
3257 |
use "^3.1.0"
|
3258 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3259 |
source-list-map@^2.0.0:
|
3260 |
version "2.0.1"
|
3261 |
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
@@ -3289,6 +3959,27 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
|
|
3289 |
version "0.6.1"
|
3290 |
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
3291 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3292 |
split-string@^3.0.1, split-string@^3.0.2:
|
3293 |
version "3.1.0"
|
3294 |
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
|
@@ -3308,6 +3999,10 @@ static-extend@^0.1.1:
|
|
3308 |
define-property "^0.2.5"
|
3309 |
object-copy "^0.1.0"
|
3310 |
|
|
|
|
|
|
|
|
|
3311 |
stream-browserify@^2.0.1:
|
3312 |
version "2.0.2"
|
3313 |
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
|
@@ -3351,7 +4046,7 @@ string-width@^1.0.1:
|
|
3351 |
is-fullwidth-code-point "^2.0.0"
|
3352 |
strip-ansi "^4.0.0"
|
3353 |
|
3354 |
-
string_decoder@^1.0.0:
|
3355 |
version "1.2.0"
|
3356 |
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
|
3357 |
dependencies:
|
@@ -3393,6 +4088,12 @@ supports-color@^5.3.0, supports-color@^5.5.0:
|
|
3393 |
dependencies:
|
3394 |
has-flag "^3.0.0"
|
3395 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3396 |
tapable@^1.0.0, tapable@^1.1.0:
|
3397 |
version "1.1.3"
|
3398 |
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
|
@@ -3439,6 +4140,10 @@ through2@^2.0.0:
|
|
3439 |
readable-stream "~2.3.6"
|
3440 |
xtend "~4.0.1"
|
3441 |
|
|
|
|
|
|
|
|
|
3442 |
timers-browserify@^2.0.4:
|
3443 |
version "2.0.10"
|
3444 |
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
|
@@ -3479,6 +4184,10 @@ to-regex@^3.0.1, to-regex@^3.0.2:
|
|
3479 |
regex-not "^1.0.2"
|
3480 |
safe-regex "^1.1.0"
|
3481 |
|
|
|
|
|
|
|
|
|
3482 |
trim-right@^1.0.1:
|
3483 |
version "1.0.1"
|
3484 |
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
|
@@ -3491,6 +4200,13 @@ tty-browserify@0.0.0:
|
|
3491 |
version "0.0.0"
|
3492 |
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
|
3493 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3494 |
typedarray@^0.0.6:
|
3495 |
version "0.0.6"
|
3496 |
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
@@ -3535,6 +4251,10 @@ unique-slug@^2.0.0:
|
|
3535 |
dependencies:
|
3536 |
imurmurhash "^0.1.4"
|
3537 |
|
|
|
|
|
|
|
|
|
3538 |
unset-value@^1.0.0:
|
3539 |
version "1.0.0"
|
3540 |
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
|
@@ -3556,6 +4276,13 @@ urix@^0.1.0:
|
|
3556 |
version "0.1.0"
|
3557 |
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
3558 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3559 |
url@^0.11.0:
|
3560 |
version "0.11.0"
|
3561 |
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
|
@@ -3567,7 +4294,7 @@ use@^3.1.0:
|
|
3567 |
version "3.1.1"
|
3568 |
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
|
3569 |
|
3570 |
-
util-deprecate@~1.0.1:
|
3571 |
version "1.0.2"
|
3572 |
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
3573 |
|
@@ -3583,10 +4310,22 @@ util@^0.11.0:
|
|
3583 |
dependencies:
|
3584 |
inherits "2.0.3"
|
3585 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3586 |
v8-compile-cache@^2.0.2:
|
3587 |
version "2.0.3"
|
3588 |
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
|
3589 |
|
|
|
|
|
|
|
|
|
3590 |
vm-browserify@0.0.4:
|
3591 |
version "0.0.4"
|
3592 |
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
|
@@ -3601,6 +4340,12 @@ watchpack@^1.5.0:
|
|
3601 |
graceful-fs "^4.1.2"
|
3602 |
neo-async "^2.5.0"
|
3603 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3604 |
webpack-cli@^3.3.2:
|
3605 |
version "3.3.2"
|
3606 |
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.2.tgz#aed2437b0db0a7faa2ad28484e166a5360014a91"
|
@@ -3617,6 +4362,58 @@ webpack-cli@^3.3.2:
|
|
3617 |
v8-compile-cache "^2.0.2"
|
3618 |
yargs "^12.0.5"
|
3619 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3620 |
webpack-sources@^1.3.0:
|
3621 |
version "1.3.0"
|
3622 |
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
|
@@ -3653,6 +4450,18 @@ webpack@^4.33.0:
|
|
3653 |
watchpack "^1.5.0"
|
3654 |
webpack-sources "^1.3.0"
|
3655 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3656 |
which-module@^2.0.0:
|
3657 |
version "2.0.0"
|
3658 |
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
@@ -3705,7 +4514,7 @@ yargs-parser@^11.1.1:
|
|
3705 |
camelcase "^5.0.0"
|
3706 |
decamelize "^1.2.0"
|
3707 |
|
3708 |
-
yargs@^12.0.5:
|
3709 |
version "12.0.5"
|
3710 |
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
|
3711 |
dependencies:
|
909 |
lodash "^4.17.11"
|
910 |
to-fast-properties "^2.0.0"
|
911 |
|
912 |
+
"@types/events@*":
|
913 |
+
version "3.0.0"
|
914 |
+
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
|
915 |
+
|
916 |
+
"@types/glob@^7.1.1":
|
917 |
+
version "7.1.1"
|
918 |
+
resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575"
|
919 |
+
dependencies:
|
920 |
+
"@types/events" "*"
|
921 |
+
"@types/minimatch" "*"
|
922 |
+
"@types/node" "*"
|
923 |
+
|
924 |
+
"@types/minimatch@*":
|
925 |
+
version "3.0.3"
|
926 |
+
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d"
|
927 |
+
|
928 |
+
"@types/node@*":
|
929 |
+
version "12.6.8"
|
930 |
+
resolved "https://registry.yarnpkg.com/@types/node/-/node-12.6.8.tgz#e469b4bf9d1c9832aee4907ba8a051494357c12c"
|
931 |
+
|
932 |
"@webassemblyjs/ast@1.8.5":
|
933 |
version "1.8.5"
|
934 |
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.8.5.tgz#51b1c5fe6576a34953bf4b253df9f0d490d9e359"
|
1069 |
version "1.1.1"
|
1070 |
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
|
1071 |
|
1072 |
+
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7:
|
1073 |
+
version "1.3.7"
|
1074 |
+
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd"
|
1075 |
+
dependencies:
|
1076 |
+
mime-types "~2.1.24"
|
1077 |
+
negotiator "0.6.2"
|
1078 |
+
|
1079 |
acorn-dynamic-import@^4.0.0:
|
1080 |
version "4.0.0"
|
1081 |
resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948"
|
1101 |
json-schema-traverse "^0.4.1"
|
1102 |
uri-js "^4.2.2"
|
1103 |
|
1104 |
+
ansi-colors@^3.0.0:
|
1105 |
+
version "3.2.4"
|
1106 |
+
resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf"
|
1107 |
+
|
1108 |
+
ansi-html@0.0.7:
|
1109 |
+
version "0.0.7"
|
1110 |
+
resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e"
|
1111 |
+
|
1112 |
ansi-regex@^2.0.0:
|
1113 |
version "2.1.1"
|
1114 |
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df"
|
1157 |
version "3.1.0"
|
1158 |
resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4"
|
1159 |
|
1160 |
+
array-flatten@1.1.1:
|
1161 |
+
version "1.1.1"
|
1162 |
+
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2"
|
1163 |
+
|
1164 |
+
array-flatten@^2.1.0:
|
1165 |
+
version "2.1.2"
|
1166 |
+
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
|
1167 |
+
|
1168 |
+
array-union@^1.0.1:
|
1169 |
+
version "1.0.2"
|
1170 |
+
resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39"
|
1171 |
+
dependencies:
|
1172 |
+
array-uniq "^1.0.1"
|
1173 |
+
|
1174 |
+
array-uniq@^1.0.1:
|
1175 |
+
version "1.0.3"
|
1176 |
+
resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6"
|
1177 |
+
|
1178 |
array-unique@^0.3.2:
|
1179 |
version "0.3.2"
|
1180 |
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
|
1202 |
version "1.0.3"
|
1203 |
resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf"
|
1204 |
|
1205 |
+
async@^1.5.2:
|
1206 |
+
version "1.5.2"
|
1207 |
+
resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a"
|
1208 |
+
|
1209 |
atob@^2.1.1:
|
1210 |
version "2.1.2"
|
1211 |
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
|
1327 |
mixin-deep "^1.2.0"
|
1328 |
pascalcase "^0.1.1"
|
1329 |
|
1330 |
+
batch@0.6.1:
|
1331 |
+
version "0.6.1"
|
1332 |
+
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
|
1333 |
+
|
1334 |
big.js@^5.2.2:
|
1335 |
version "5.2.2"
|
1336 |
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
|
1347 |
version "4.11.8"
|
1348 |
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f"
|
1349 |
|
1350 |
+
body-parser@1.19.0:
|
1351 |
+
version "1.19.0"
|
1352 |
+
resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a"
|
1353 |
+
dependencies:
|
1354 |
+
bytes "3.1.0"
|
1355 |
+
content-type "~1.0.4"
|
1356 |
+
debug "2.6.9"
|
1357 |
+
depd "~1.1.2"
|
1358 |
+
http-errors "1.7.2"
|
1359 |
+
iconv-lite "0.4.24"
|
1360 |
+
on-finished "~2.3.0"
|
1361 |
+
qs "6.7.0"
|
1362 |
+
raw-body "2.4.0"
|
1363 |
+
type-is "~1.6.17"
|
1364 |
+
|
1365 |
+
bonjour@^3.5.0:
|
1366 |
+
version "3.5.0"
|
1367 |
+
resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5"
|
1368 |
+
dependencies:
|
1369 |
+
array-flatten "^2.1.0"
|
1370 |
+
deep-equal "^1.0.1"
|
1371 |
+
dns-equal "^1.0.0"
|
1372 |
+
dns-txt "^2.0.2"
|
1373 |
+
multicast-dns "^6.0.1"
|
1374 |
+
multicast-dns-service-types "^1.1.0"
|
1375 |
+
|
1376 |
brace-expansion@^1.1.7:
|
1377 |
version "1.1.11"
|
1378 |
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
1464 |
version "1.1.1"
|
1465 |
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
1466 |
|
1467 |
+
buffer-indexof@^1.0.0:
|
1468 |
+
version "1.1.1"
|
1469 |
+
resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c"
|
1470 |
+
|
1471 |
buffer-xor@^1.0.3:
|
1472 |
version "1.0.3"
|
1473 |
resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9"
|
1484 |
version "3.0.0"
|
1485 |
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
|
1486 |
|
1487 |
+
bytes@3.0.0:
|
1488 |
+
version "3.0.0"
|
1489 |
+
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048"
|
1490 |
+
|
1491 |
+
bytes@3.1.0:
|
1492 |
+
version "3.1.0"
|
1493 |
+
resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6"
|
1494 |
+
|
1495 |
cacache@^11.3.2:
|
1496 |
version "11.3.2"
|
1497 |
resolved "https://registry.yarnpkg.com/cacache/-/cacache-11.3.2.tgz#2d81e308e3d258ca38125b676b98b2ac9ce69bfa"
|
1551 |
escape-string-regexp "^1.0.5"
|
1552 |
supports-color "^5.3.0"
|
1553 |
|
1554 |
+
chokidar@^2.0.2, chokidar@^2.1.6:
|
1555 |
version "2.1.6"
|
1556 |
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.6.tgz#b6cad653a929e244ce8a834244164d241fa954c5"
|
1557 |
dependencies:
|
1636 |
version "1.3.0"
|
1637 |
resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0"
|
1638 |
|
1639 |
+
compressible@~2.0.16:
|
1640 |
+
version "2.0.17"
|
1641 |
+
resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.17.tgz#6e8c108a16ad58384a977f3a482ca20bff2f38c1"
|
1642 |
+
dependencies:
|
1643 |
+
mime-db ">= 1.40.0 < 2"
|
1644 |
+
|
1645 |
+
compression@^1.7.4:
|
1646 |
+
version "1.7.4"
|
1647 |
+
resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f"
|
1648 |
+
dependencies:
|
1649 |
+
accepts "~1.3.5"
|
1650 |
+
bytes "3.0.0"
|
1651 |
+
compressible "~2.0.16"
|
1652 |
+
debug "2.6.9"
|
1653 |
+
on-headers "~1.0.2"
|
1654 |
+
safe-buffer "5.1.2"
|
1655 |
+
vary "~1.1.2"
|
1656 |
+
|
1657 |
concat-map@0.0.1:
|
1658 |
version "0.0.1"
|
1659 |
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
|
1667 |
readable-stream "^2.2.2"
|
1668 |
typedarray "^0.0.6"
|
1669 |
|
1670 |
+
connect-history-api-fallback@^1.6.0:
|
1671 |
+
version "1.6.0"
|
1672 |
+
resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
|
1673 |
+
|
1674 |
console-browserify@^1.1.0:
|
1675 |
version "1.1.0"
|
1676 |
resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10"
|
1685 |
version "1.0.0"
|
1686 |
resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75"
|
1687 |
|
1688 |
+
content-disposition@0.5.3:
|
1689 |
+
version "0.5.3"
|
1690 |
+
resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd"
|
1691 |
+
dependencies:
|
1692 |
+
safe-buffer "5.1.2"
|
1693 |
+
|
1694 |
+
content-type@~1.0.4:
|
1695 |
+
version "1.0.4"
|
1696 |
+
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
|
1697 |
+
|
1698 |
convert-source-map@^1.1.0:
|
1699 |
version "1.6.0"
|
1700 |
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.6.0.tgz#51b537a8c43e0f04dec1993bffcdd504e758ac20"
|
1701 |
dependencies:
|
1702 |
safe-buffer "~5.1.1"
|
1703 |
|
1704 |
+
cookie-signature@1.0.6:
|
1705 |
+
version "1.0.6"
|
1706 |
+
resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
|
1707 |
+
|
1708 |
+
cookie@0.4.0:
|
1709 |
+
version "0.4.0"
|
1710 |
+
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
|
1711 |
+
|
1712 |
copy-concurrently@^1.0.0:
|
1713 |
version "1.0.5"
|
1714 |
resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0"
|
1806 |
version "0.1.4"
|
1807 |
resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b"
|
1808 |
|
1809 |
+
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.8:
|
1810 |
version "2.6.9"
|
1811 |
resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
|
1812 |
dependencies:
|
1813 |
ms "2.0.0"
|
1814 |
|
1815 |
+
debug@^3.1.0, debug@^3.2.5, debug@^3.2.6:
|
1816 |
version "3.2.6"
|
1817 |
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b"
|
1818 |
dependencies:
|
1819 |
ms "^2.1.1"
|
1820 |
|
1821 |
+
debug@^4.1.0, debug@^4.1.1:
|
1822 |
version "4.1.1"
|
1823 |
resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791"
|
1824 |
dependencies:
|
1832 |
version "0.2.0"
|
1833 |
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
1834 |
|
1835 |
+
deep-equal@^1.0.1:
|
1836 |
+
version "1.0.1"
|
1837 |
+
resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5"
|
1838 |
+
|
1839 |
deep-extend@^0.6.0:
|
1840 |
version "0.6.0"
|
1841 |
resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac"
|
1842 |
|
1843 |
+
default-gateway@^4.2.0:
|
1844 |
+
version "4.2.0"
|
1845 |
+
resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b"
|
1846 |
+
dependencies:
|
1847 |
+
execa "^1.0.0"
|
1848 |
+
ip-regex "^2.1.0"
|
1849 |
+
|
1850 |
define-property@^0.2.5:
|
1851 |
version "0.2.5"
|
1852 |
resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116"
|
1866 |
is-descriptor "^1.0.2"
|
1867 |
isobject "^3.0.1"
|
1868 |
|
1869 |
+
del@^4.1.1:
|
1870 |
+
version "4.1.1"
|
1871 |
+
resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4"
|
1872 |
+
dependencies:
|
1873 |
+
"@types/glob" "^7.1.1"
|
1874 |
+
globby "^6.1.0"
|
1875 |
+
is-path-cwd "^2.0.0"
|
1876 |
+
is-path-in-cwd "^2.0.0"
|
1877 |
+
p-map "^2.0.0"
|
1878 |
+
pify "^4.0.1"
|
1879 |
+
rimraf "^2.6.3"
|
1880 |
+
|
1881 |
delegates@^1.0.0:
|
1882 |
version "1.0.0"
|
1883 |
resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a"
|
1884 |
|
1885 |
+
depd@~1.1.2:
|
1886 |
+
version "1.1.2"
|
1887 |
+
resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9"
|
1888 |
+
|
1889 |
des.js@^1.0.0:
|
1890 |
version "1.0.0"
|
1891 |
resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc"
|
1893 |
inherits "^2.0.1"
|
1894 |
minimalistic-assert "^1.0.0"
|
1895 |
|
1896 |
+
destroy@~1.0.4:
|
1897 |
+
version "1.0.4"
|
1898 |
+
resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80"
|
1899 |
+
|
1900 |
detect-file@^1.0.0:
|
1901 |
version "1.0.0"
|
1902 |
resolved "https://registry.yarnpkg.com/detect-file/-/detect-file-1.0.0.tgz#f0d66d03672a825cb1b73bdb3fe62310c8e552b7"
|
1905 |
version "1.0.3"
|
1906 |
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"
|
1907 |
|
1908 |
+
detect-node@^2.0.4:
|
1909 |
+
version "2.0.4"
|
1910 |
+
resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c"
|
1911 |
+
|
1912 |
diffie-hellman@^5.0.0:
|
1913 |
version "5.0.3"
|
1914 |
resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875"
|
1917 |
miller-rabin "^4.0.0"
|
1918 |
randombytes "^2.0.0"
|
1919 |
|
1920 |
+
dns-equal@^1.0.0:
|
1921 |
+
version "1.0.0"
|
1922 |
+
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
|
1923 |
+
|
1924 |
+
dns-packet@^1.3.1:
|
1925 |
+
version "1.3.1"
|
1926 |
+
resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a"
|
1927 |
+
dependencies:
|
1928 |
+
ip "^1.1.0"
|
1929 |
+
safe-buffer "^5.0.1"
|
1930 |
+
|
1931 |
+
dns-txt@^2.0.2:
|
1932 |
+
version "2.0.2"
|
1933 |
+
resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6"
|
1934 |
+
dependencies:
|
1935 |
+
buffer-indexof "^1.0.0"
|
1936 |
+
|
1937 |
domain-browser@^1.1.1:
|
1938 |
version "1.2.0"
|
1939 |
resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda"
|
1947 |
readable-stream "^2.0.0"
|
1948 |
stream-shift "^1.0.0"
|
1949 |
|
1950 |
+
ee-first@1.1.1:
|
1951 |
+
version "1.1.1"
|
1952 |
+
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
|
1953 |
+
|
1954 |
electron-to-chromium@^1.3.150:
|
1955 |
version "1.3.155"
|
1956 |
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.155.tgz#ebf0cc8eeaffd6151d1efad60fd9e021fb45fd3a"
|
1971 |
version "2.1.0"
|
1972 |
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
|
1973 |
|
1974 |
+
encodeurl@~1.0.2:
|
1975 |
+
version "1.0.2"
|
1976 |
+
resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
|
1977 |
+
|
1978 |
end-of-stream@^1.0.0, end-of-stream@^1.1.0:
|
1979 |
version "1.4.1"
|
1980 |
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43"
|
1995 |
dependencies:
|
1996 |
prr "~1.0.1"
|
1997 |
|
1998 |
+
escape-html@~1.0.3:
|
1999 |
+
version "1.0.3"
|
2000 |
+
resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988"
|
2001 |
+
|
2002 |
escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5:
|
2003 |
version "1.0.5"
|
2004 |
resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"
|
2024 |
version "2.0.2"
|
2025 |
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"
|
2026 |
|
2027 |
+
etag@~1.8.1:
|
2028 |
+
version "1.8.1"
|
2029 |
+
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
|
2030 |
+
|
2031 |
+
eventemitter3@^3.0.0:
|
2032 |
+
version "3.1.2"
|
2033 |
+
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7"
|
2034 |
+
|
2035 |
events@^3.0.0:
|
2036 |
version "3.0.0"
|
2037 |
resolved "https://registry.yarnpkg.com/events/-/events-3.0.0.tgz#9a0a0dfaf62893d92b875b8f2698ca4114973e88"
|
2038 |
|
2039 |
+
eventsource@^1.0.7:
|
2040 |
+
version "1.0.7"
|
2041 |
+
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0"
|
2042 |
+
dependencies:
|
2043 |
+
original "^1.0.0"
|
2044 |
+
|
2045 |
evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3:
|
2046 |
version "1.0.3"
|
2047 |
resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02"
|
2079 |
dependencies:
|
2080 |
homedir-polyfill "^1.0.1"
|
2081 |
|
2082 |
+
express@^4.17.1:
|
2083 |
+
version "4.17.1"
|
2084 |
+
resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134"
|
2085 |
+
dependencies:
|
2086 |
+
accepts "~1.3.7"
|
2087 |
+
array-flatten "1.1.1"
|
2088 |
+
body-parser "1.19.0"
|
2089 |
+
content-disposition "0.5.3"
|
2090 |
+
content-type "~1.0.4"
|
2091 |
+
cookie "0.4.0"
|
2092 |
+
cookie-signature "1.0.6"
|
2093 |
+
debug "2.6.9"
|
2094 |
+
depd "~1.1.2"
|
2095 |
+
encodeurl "~1.0.2"
|
2096 |
+
escape-html "~1.0.3"
|
2097 |
+
etag "~1.8.1"
|
2098 |
+
finalhandler "~1.1.2"
|
2099 |
+
fresh "0.5.2"
|
2100 |
+
merge-descriptors "1.0.1"
|
2101 |
+
methods "~1.1.2"
|
2102 |
+
on-finished "~2.3.0"
|
2103 |
+
parseurl "~1.3.3"
|
2104 |
+
path-to-regexp "0.1.7"
|
2105 |
+
proxy-addr "~2.0.5"
|
2106 |
+
qs "6.7.0"
|
2107 |
+
range-parser "~1.2.1"
|
2108 |
+
safe-buffer "5.1.2"
|
2109 |
+
send "0.17.1"
|
2110 |
+
serve-static "1.14.1"
|
2111 |
+
setprototypeof "1.1.1"
|
2112 |
+
statuses "~1.5.0"
|
2113 |
+
type-is "~1.6.18"
|
2114 |
+
utils-merge "1.0.1"
|
2115 |
+
vary "~1.1.2"
|
2116 |
+
|
2117 |
extend-shallow@^2.0.1:
|
2118 |
version "2.0.1"
|
2119 |
resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f"
|
2148 |
version "2.0.0"
|
2149 |
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2"
|
2150 |
|
2151 |
+
faye-websocket@^0.10.0:
|
2152 |
+
version "0.10.0"
|
2153 |
+
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4"
|
2154 |
+
dependencies:
|
2155 |
+
websocket-driver ">=0.5.1"
|
2156 |
+
|
2157 |
+
faye-websocket@~0.11.1:
|
2158 |
+
version "0.11.3"
|
2159 |
+
resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e"
|
2160 |
+
dependencies:
|
2161 |
+
websocket-driver ">=0.5.1"
|
2162 |
+
|
2163 |
figgy-pudding@^3.5.1:
|
2164 |
version "3.5.1"
|
2165 |
resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.1.tgz#862470112901c727a0e495a80744bd5baa1d6790"
|
2173 |
repeat-string "^1.6.1"
|
2174 |
to-regex-range "^2.1.0"
|
2175 |
|
2176 |
+
finalhandler@~1.1.2:
|
2177 |
+
version "1.1.2"
|
2178 |
+
resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d"
|
2179 |
+
dependencies:
|
2180 |
+
debug "2.6.9"
|
2181 |
+
encodeurl "~1.0.2"
|
2182 |
+
escape-html "~1.0.3"
|
2183 |
+
on-finished "~2.3.0"
|
2184 |
+
parseurl "~1.3.3"
|
2185 |
+
statuses "~1.5.0"
|
2186 |
+
unpipe "~1.0.0"
|
2187 |
+
|
2188 |
find-cache-dir@^2.0.0:
|
2189 |
version "2.1.0"
|
2190 |
resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7"
|
2215 |
inherits "^2.0.3"
|
2216 |
readable-stream "^2.3.6"
|
2217 |
|
2218 |
+
follow-redirects@^1.0.0:
|
2219 |
+
version "1.7.0"
|
2220 |
+
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.7.0.tgz#489ebc198dc0e7f64167bd23b03c4c19b5784c76"
|
2221 |
+
dependencies:
|
2222 |
+
debug "^3.2.6"
|
2223 |
+
|
2224 |
for-in@^1.0.2:
|
2225 |
version "1.0.2"
|
2226 |
resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80"
|
2227 |
|
2228 |
+
forwarded@~0.1.2:
|
2229 |
+
version "0.1.2"
|
2230 |
+
resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84"
|
2231 |
+
|
2232 |
fragment-cache@^0.2.1:
|
2233 |
version "0.2.1"
|
2234 |
resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19"
|
2235 |
dependencies:
|
2236 |
map-cache "^0.2.2"
|
2237 |
|
2238 |
+
fresh@0.5.2:
|
2239 |
+
version "0.5.2"
|
2240 |
+
resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
|
2241 |
+
|
2242 |
from2@^2.1.0:
|
2243 |
version "2.3.0"
|
2244 |
resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af"
|
2306 |
is-glob "^3.1.0"
|
2307 |
path-dirname "^1.0.0"
|
2308 |
|
2309 |
+
glob@^7.0.3, glob@^7.1.3:
|
2310 |
version "7.1.4"
|
2311 |
resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255"
|
2312 |
dependencies:
|
2343 |
version "9.18.0"
|
2344 |
resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a"
|
2345 |
|
2346 |
+
globby@^6.1.0:
|
2347 |
+
version "6.1.0"
|
2348 |
+
resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c"
|
2349 |
+
dependencies:
|
2350 |
+
array-union "^1.0.1"
|
2351 |
+
glob "^7.0.3"
|
2352 |
+
object-assign "^4.0.1"
|
2353 |
+
pify "^2.0.0"
|
2354 |
+
pinkie-promise "^2.0.0"
|
2355 |
+
|
2356 |
graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2:
|
2357 |
version "4.1.15"
|
2358 |
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.15.tgz#ffb703e1066e8a0eeaa4c8b80ba9253eeefbfb00"
|
2359 |
|
2360 |
+
handle-thing@^2.0.0:
|
2361 |
+
version "2.0.0"
|
2362 |
+
resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.0.tgz#0e039695ff50c93fc288557d696f3c1dc6776754"
|
2363 |
+
|
2364 |
has-ansi@^2.0.0:
|
2365 |
version "2.0.0"
|
2366 |
resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91"
|
2430 |
dependencies:
|
2431 |
parse-passwd "^1.0.0"
|
2432 |
|
2433 |
+
hpack.js@^2.1.6:
|
2434 |
+
version "2.1.6"
|
2435 |
+
resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2"
|
2436 |
+
dependencies:
|
2437 |
+
inherits "^2.0.1"
|
2438 |
+
obuf "^1.0.0"
|
2439 |
+
readable-stream "^2.0.1"
|
2440 |
+
wbuf "^1.1.0"
|
2441 |
+
|
2442 |
+
html-entities@^1.2.1:
|
2443 |
+
version "1.2.1"
|
2444 |
+
resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f"
|
2445 |
+
|
2446 |
+
http-deceiver@^1.2.7:
|
2447 |
+
version "1.2.7"
|
2448 |
+
resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87"
|
2449 |
+
|
2450 |
+
http-errors@1.7.2:
|
2451 |
+
version "1.7.2"
|
2452 |
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f"
|
2453 |
+
dependencies:
|
2454 |
+
depd "~1.1.2"
|
2455 |
+
inherits "2.0.3"
|
2456 |
+
setprototypeof "1.1.1"
|
2457 |
+
statuses ">= 1.5.0 < 2"
|
2458 |
+
toidentifier "1.0.0"
|
2459 |
+
|
2460 |
+
http-errors@~1.6.2:
|
2461 |
+
version "1.6.3"
|
2462 |
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d"
|
2463 |
+
dependencies:
|
2464 |
+
depd "~1.1.2"
|
2465 |
+
inherits "2.0.3"
|
2466 |
+
setprototypeof "1.1.0"
|
2467 |
+
statuses ">= 1.4.0 < 2"
|
2468 |
+
|
2469 |
+
http-errors@~1.7.2:
|
2470 |
+
version "1.7.3"
|
2471 |
+
resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06"
|
2472 |
+
dependencies:
|
2473 |
+
depd "~1.1.2"
|
2474 |
+
inherits "2.0.4"
|
2475 |
+
setprototypeof "1.1.1"
|
2476 |
+
statuses ">= 1.5.0 < 2"
|
2477 |
+
toidentifier "1.0.0"
|
2478 |
+
|
2479 |
+
"http-parser-js@>=0.4.0 <0.4.11":
|
2480 |
+
version "0.4.10"
|
2481 |
+
resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4"
|
2482 |
+
|
2483 |
+
http-proxy-middleware@^0.19.1:
|
2484 |
+
version "0.19.1"
|
2485 |
+
resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a"
|
2486 |
+
dependencies:
|
2487 |
+
http-proxy "^1.17.0"
|
2488 |
+
is-glob "^4.0.0"
|
2489 |
+
lodash "^4.17.11"
|
2490 |
+
micromatch "^3.1.10"
|
2491 |
+
|
2492 |
+
http-proxy@^1.17.0:
|
2493 |
+
version "1.17.0"
|
2494 |
+
resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.17.0.tgz#7ad38494658f84605e2f6db4436df410f4e5be9a"
|
2495 |
+
dependencies:
|
2496 |
+
eventemitter3 "^3.0.0"
|
2497 |
+
follow-redirects "^1.0.0"
|
2498 |
+
requires-port "^1.0.0"
|
2499 |
+
|
2500 |
https-browserify@^1.0.0:
|
2501 |
version "1.0.0"
|
2502 |
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
|
2503 |
|
2504 |
+
iconv-lite@0.4.24, iconv-lite@^0.4.4:
|
2505 |
version "0.4.24"
|
2506 |
resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b"
|
2507 |
dependencies:
|
2551 |
version "2.0.1"
|
2552 |
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1"
|
2553 |
|
2554 |
+
inherits@2.0.4:
|
2555 |
+
version "2.0.4"
|
2556 |
+
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
2557 |
+
|
2558 |
ini@^1.3.4, ini@~1.3.0:
|
2559 |
version "1.3.5"
|
2560 |
resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927"
|
2561 |
|
2562 |
+
internal-ip@^4.3.0:
|
2563 |
+
version "4.3.0"
|
2564 |
+
resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907"
|
2565 |
+
dependencies:
|
2566 |
+
default-gateway "^4.2.0"
|
2567 |
+
ipaddr.js "^1.9.0"
|
2568 |
+
|
2569 |
interpret@^1.1.0:
|
2570 |
version "1.2.0"
|
2571 |
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296"
|
2580 |
version "2.0.0"
|
2581 |
resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02"
|
2582 |
|
2583 |
+
ip-regex@^2.1.0:
|
2584 |
+
version "2.1.0"
|
2585 |
+
resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9"
|
2586 |
+
|
2587 |
+
ip@^1.1.0, ip@^1.1.5:
|
2588 |
+
version "1.1.5"
|
2589 |
+
resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a"
|
2590 |
+
|
2591 |
+
ipaddr.js@1.9.0:
|
2592 |
+
version "1.9.0"
|
2593 |
+
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.0.tgz#37df74e430a0e47550fe54a2defe30d8acd95f65"
|
2594 |
+
|
2595 |
+
ipaddr.js@^1.9.0:
|
2596 |
+
version "1.9.1"
|
2597 |
+
resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3"
|
2598 |
+
|
2599 |
is-accessor-descriptor@^0.1.6:
|
2600 |
version "0.1.6"
|
2601 |
resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6"
|
2688 |
dependencies:
|
2689 |
kind-of "^3.0.2"
|
2690 |
|
2691 |
+
is-path-cwd@^2.0.0:
|
2692 |
+
version "2.2.0"
|
2693 |
+
resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb"
|
2694 |
+
|
2695 |
+
is-path-in-cwd@^2.0.0:
|
2696 |
+
version "2.1.0"
|
2697 |
+
resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb"
|
2698 |
+
dependencies:
|
2699 |
+
is-path-inside "^2.1.0"
|
2700 |
+
|
2701 |
+
is-path-inside@^2.1.0:
|
2702 |
+
version "2.1.0"
|
2703 |
+
resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2"
|
2704 |
+
dependencies:
|
2705 |
+
path-is-inside "^1.0.2"
|
2706 |
+
|
2707 |
is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4:
|
2708 |
version "2.0.4"
|
2709 |
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677"
|
2743 |
jasmine-core@~3.4.0:
|
2744 |
version "3.4.0"
|
2745 |
resolved "https://registry.yarnpkg.com/jasmine-core/-/jasmine-core-3.4.0.tgz#2a74618e966026530c3518f03e9f845d26473ce3"
|
|
|
2746 |
|
2747 |
jasmine@^3.4.0:
|
2748 |
version "3.4.0"
|
2749 |
resolved "https://registry.yarnpkg.com/jasmine/-/jasmine-3.4.0.tgz#0fa68903ff0c9697459cd044b44f4dcef5ec8bdc"
|
|
|
2750 |
dependencies:
|
2751 |
glob "^7.1.3"
|
2752 |
jasmine-core "~3.4.0"
|
2779 |
version "0.4.1"
|
2780 |
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660"
|
2781 |
|
2782 |
+
json3@^3.3.2:
|
2783 |
+
version "3.3.3"
|
2784 |
+
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
|
2785 |
+
|
2786 |
json5@^1.0.1:
|
2787 |
version "1.0.1"
|
2788 |
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
|
2795 |
dependencies:
|
2796 |
minimist "^1.2.0"
|
2797 |
|
2798 |
+
killable@^1.0.1:
|
2799 |
+
version "1.0.1"
|
2800 |
+
resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892"
|
2801 |
+
|
2802 |
kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0:
|
2803 |
version "3.2.2"
|
2804 |
resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64"
|
2848 |
version "4.17.11"
|
2849 |
resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.11.tgz#b39ea6229ef607ecd89e2c8df12536891cac9b8d"
|
2850 |
|
2851 |
+
loglevel@^1.6.3:
|
2852 |
+
version "1.6.3"
|
2853 |
+
resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.3.tgz#77f2eb64be55a404c9fd04ad16d57c1d6d6b1280"
|
2854 |
+
|
2855 |
loose-envify@^1.0.0:
|
2856 |
version "1.4.0"
|
2857 |
resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf"
|
2899 |
inherits "^2.0.1"
|
2900 |
safe-buffer "^5.1.2"
|
2901 |
|
2902 |
+
media-typer@0.3.0:
|
2903 |
+
version "0.3.0"
|
2904 |
+
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
|
2905 |
+
|
2906 |
mem@^4.0.0:
|
2907 |
version "4.3.0"
|
2908 |
resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178"
|
2911 |
mimic-fn "^2.0.0"
|
2912 |
p-is-promise "^2.0.0"
|
2913 |
|
2914 |
+
memory-fs@^0.4.0, memory-fs@^0.4.1, memory-fs@~0.4.1:
|
2915 |
version "0.4.1"
|
2916 |
resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552"
|
2917 |
dependencies:
|
2918 |
errno "^0.1.3"
|
2919 |
readable-stream "^2.0.1"
|
2920 |
|
2921 |
+
merge-descriptors@1.0.1:
|
2922 |
+
version "1.0.1"
|
2923 |
+
resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
|
2924 |
+
|
2925 |
+
methods@~1.1.2:
|
2926 |
+
version "1.1.2"
|
2927 |
+
resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
|
2928 |
+
|
2929 |
micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4, micromatch@^3.1.8:
|
2930 |
version "3.1.10"
|
2931 |
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23"
|
2951 |
bn.js "^4.0.0"
|
2952 |
brorand "^1.0.1"
|
2953 |
|
2954 |
+
mime-db@1.40.0, "mime-db@>= 1.40.0 < 2":
|
2955 |
+
version "1.40.0"
|
2956 |
+
resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.40.0.tgz#a65057e998db090f732a68f6c276d387d4126c32"
|
2957 |
+
|
2958 |
+
mime-types@~2.1.17, mime-types@~2.1.24:
|
2959 |
+
version "2.1.24"
|
2960 |
+
resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.24.tgz#b6f8d0b3e951efb77dedeca194cff6d16f676f81"
|
2961 |
+
dependencies:
|
2962 |
+
mime-db "1.40.0"
|
2963 |
+
|
2964 |
+
mime@1.6.0:
|
2965 |
+
version "1.6.0"
|
2966 |
+
resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
|
2967 |
+
|
2968 |
+
mime@^2.4.2:
|
2969 |
+
version "2.4.4"
|
2970 |
+
resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5"
|
2971 |
+
|
2972 |
mimic-fn@^2.0.0:
|
2973 |
version "2.1.0"
|
2974 |
resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b"
|
3030 |
for-in "^1.0.2"
|
3031 |
is-extendable "^1.0.1"
|
3032 |
|
3033 |
+
mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0:
|
3034 |
version "0.5.1"
|
3035 |
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903"
|
3036 |
dependencies:
|
3051 |
version "2.0.0"
|
3052 |
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
3053 |
|
3054 |
+
ms@2.1.1, ms@^2.1.1:
|
3055 |
version "2.1.1"
|
3056 |
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a"
|
3057 |
|
3058 |
+
multicast-dns-service-types@^1.1.0:
|
3059 |
+
version "1.1.0"
|
3060 |
+
resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901"
|
3061 |
+
|
3062 |
+
multicast-dns@^6.0.1:
|
3063 |
+
version "6.2.3"
|
3064 |
+
resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229"
|
3065 |
+
dependencies:
|
3066 |
+
dns-packet "^1.3.1"
|
3067 |
+
thunky "^1.0.2"
|
3068 |
+
|
3069 |
nan@^2.12.1:
|
3070 |
version "2.14.0"
|
3071 |
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c"
|
3094 |
iconv-lite "^0.4.4"
|
3095 |
sax "^1.2.4"
|
3096 |
|
3097 |
+
negotiator@0.6.2:
|
3098 |
+
version "0.6.2"
|
3099 |
+
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
|
3100 |
+
|
3101 |
neo-async@^2.5.0:
|
3102 |
version "2.6.1"
|
3103 |
resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c"
|
3106 |
version "1.0.5"
|
3107 |
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
3108 |
|
3109 |
+
node-forge@0.7.5:
|
3110 |
+
version "0.7.5"
|
3111 |
+
resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.5.tgz#6c152c345ce11c52f465c2abd957e8639cd674df"
|
3112 |
+
|
3113 |
node-libs-browser@^2.0.0:
|
3114 |
version "2.2.0"
|
3115 |
resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.0.tgz#c72f60d9d46de08a940dedbb25f3ffa2f9bbaa77"
|
3206 |
version "1.0.1"
|
3207 |
resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d"
|
3208 |
|
3209 |
+
object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1:
|
3210 |
version "4.1.1"
|
3211 |
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
|
3212 |
|
3230 |
dependencies:
|
3231 |
isobject "^3.0.1"
|
3232 |
|
3233 |
+
obuf@^1.0.0, obuf@^1.1.2:
|
3234 |
+
version "1.1.2"
|
3235 |
+
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
|
3236 |
+
|
3237 |
+
on-finished@~2.3.0:
|
3238 |
+
version "2.3.0"
|
3239 |
+
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947"
|
3240 |
+
dependencies:
|
3241 |
+
ee-first "1.1.1"
|
3242 |
+
|
3243 |
+
on-headers@~1.0.2:
|
3244 |
+
version "1.0.2"
|
3245 |
+
resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f"
|
3246 |
+
|
3247 |
once@^1.3.0, once@^1.3.1, once@^1.4.0:
|
3248 |
version "1.4.0"
|
3249 |
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
3250 |
dependencies:
|
3251 |
wrappy "1"
|
3252 |
|
3253 |
+
opn@^5.5.0:
|
3254 |
+
version "5.5.0"
|
3255 |
+
resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc"
|
3256 |
+
dependencies:
|
3257 |
+
is-wsl "^1.1.0"
|
3258 |
+
|
3259 |
+
original@^1.0.0:
|
3260 |
+
version "1.0.2"
|
3261 |
+
resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f"
|
3262 |
+
dependencies:
|
3263 |
+
url-parse "^1.4.3"
|
3264 |
+
|
3265 |
os-browserify@^0.3.0:
|
3266 |
version "0.3.0"
|
3267 |
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
|
3313 |
dependencies:
|
3314 |
p-limit "^2.0.0"
|
3315 |
|
3316 |
+
p-map@^2.0.0:
|
3317 |
+
version "2.1.0"
|
3318 |
+
resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175"
|
3319 |
+
|
3320 |
+
p-retry@^3.0.1:
|
3321 |
+
version "3.0.1"
|
3322 |
+
resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328"
|
3323 |
+
dependencies:
|
3324 |
+
retry "^0.12.0"
|
3325 |
+
|
3326 |
p-try@^2.0.0:
|
3327 |
version "2.2.0"
|
3328 |
resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6"
|
3354 |
version "1.0.0"
|
3355 |
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
|
3356 |
|
3357 |
+
parseurl@~1.3.2, parseurl@~1.3.3:
|
3358 |
+
version "1.3.3"
|
3359 |
+
resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4"
|
3360 |
+
|
3361 |
pascalcase@^0.1.1:
|
3362 |
version "0.1.1"
|
3363 |
resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14"
|
3378 |
version "1.0.1"
|
3379 |
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
|
3380 |
|
3381 |
+
path-is-inside@^1.0.2:
|
3382 |
+
version "1.0.2"
|
3383 |
+
resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53"
|
3384 |
+
|
3385 |
path-key@^2.0.0, path-key@^2.0.1:
|
3386 |
version "2.0.1"
|
3387 |
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
3390 |
version "1.0.6"
|
3391 |
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
|
3392 |
|
3393 |
+
path-to-regexp@0.1.7:
|
3394 |
+
version "0.1.7"
|
3395 |
+
resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
|
3396 |
+
|
3397 |
pbkdf2@^3.0.3:
|
3398 |
version "3.0.17"
|
3399 |
resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6"
|
3404 |
safe-buffer "^5.0.1"
|
3405 |
sha.js "^2.4.8"
|
3406 |
|
3407 |
+
pify@^2.0.0:
|
3408 |
+
version "2.3.0"
|
3409 |
+
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
|
3410 |
+
|
3411 |
pify@^4.0.1:
|
3412 |
version "4.0.1"
|
3413 |
resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231"
|
3414 |
|
3415 |
+
pinkie-promise@^2.0.0:
|
3416 |
+
version "2.0.1"
|
3417 |
+
resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa"
|
3418 |
+
dependencies:
|
3419 |
+
pinkie "^2.0.0"
|
3420 |
+
|
3421 |
+
pinkie@^2.0.0:
|
3422 |
+
version "2.0.4"
|
3423 |
+
resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870"
|
3424 |
+
|
3425 |
pkg-dir@^3.0.0:
|
3426 |
version "3.0.0"
|
3427 |
resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3"
|
3428 |
dependencies:
|
3429 |
find-up "^3.0.0"
|
3430 |
|
3431 |
+
portfinder@^1.0.20:
|
3432 |
+
version "1.0.21"
|
3433 |
+
resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.21.tgz#60e1397b95ac170749db70034ece306b9a27e324"
|
3434 |
+
dependencies:
|
3435 |
+
async "^1.5.2"
|
3436 |
+
debug "^2.2.0"
|
3437 |
+
mkdirp "0.5.x"
|
3438 |
+
|
3439 |
posix-character-classes@^0.1.0:
|
3440 |
version "0.1.1"
|
3441 |
resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab"
|
3456 |
version "1.0.1"
|
3457 |
resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3"
|
3458 |
|
3459 |
+
proxy-addr@~2.0.5:
|
3460 |
+
version "2.0.5"
|
3461 |
+
resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.5.tgz#34cbd64a2d81f4b1fd21e76f9f06c8a45299ee34"
|
3462 |
+
dependencies:
|
3463 |
+
forwarded "~0.1.2"
|
3464 |
+
ipaddr.js "1.9.0"
|
3465 |
+
|
3466 |
prr@~1.0.1:
|
3467 |
version "1.0.1"
|
3468 |
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
|
3512 |
version "2.1.1"
|
3513 |
resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
|
3514 |
|
3515 |
+
qs@6.7.0:
|
3516 |
+
version "6.7.0"
|
3517 |
+
resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc"
|
3518 |
+
|
3519 |
querystring-es3@^0.2.0:
|
3520 |
version "0.2.1"
|
3521 |
resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73"
|
3524 |
version "0.2.0"
|
3525 |
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620"
|
3526 |
|
3527 |
+
querystringify@^2.1.1:
|
3528 |
+
version "2.1.1"
|
3529 |
+
resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e"
|
3530 |
+
|
3531 |
randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5:
|
3532 |
version "2.1.0"
|
3533 |
resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a"
|
3541 |
randombytes "^2.0.5"
|
3542 |
safe-buffer "^5.1.0"
|
3543 |
|
3544 |
+
range-parser@^1.2.1, range-parser@~1.2.1:
|
3545 |
+
version "1.2.1"
|
3546 |
+
resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031"
|
3547 |
+
|
3548 |
raven-js@3.19.1:
|
3549 |
version "3.19.1"
|
3550 |
resolved "https://registry.yarnpkg.com/raven-js/-/raven-js-3.19.1.tgz#a5d25646556fc2c86d2b188ae4f425c144c08dd8"
|
3551 |
|
3552 |
+
raw-body@2.4.0:
|
3553 |
+
version "2.4.0"
|
3554 |
+
resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332"
|
3555 |
+
dependencies:
|
3556 |
+
bytes "3.1.0"
|
3557 |
+
http-errors "1.7.2"
|
3558 |
+
iconv-lite "0.4.24"
|
3559 |
+
unpipe "1.0.0"
|
3560 |
+
|
3561 |
rc@^1.2.7:
|
3562 |
version "1.2.8"
|
3563 |
resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed"
|
3579 |
string_decoder "~1.1.1"
|
3580 |
util-deprecate "~1.0.1"
|
3581 |
|
3582 |
+
readable-stream@^3.0.6:
|
3583 |
+
version "3.4.0"
|
3584 |
+
resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.4.0.tgz#a51c26754658e0a3c21dbf59163bd45ba6f447fc"
|
3585 |
+
dependencies:
|
3586 |
+
inherits "^2.0.3"
|
3587 |
+
string_decoder "^1.1.1"
|
3588 |
+
util-deprecate "^1.0.1"
|
3589 |
+
|
3590 |
readdirp@^2.2.1:
|
3591 |
version "2.2.1"
|
3592 |
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
|
3673 |
version "1.0.1"
|
3674 |
resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1"
|
3675 |
|
3676 |
+
requires-port@^1.0.0:
|
3677 |
+
version "1.0.0"
|
3678 |
+
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
|
3679 |
+
|
3680 |
resolve-cwd@^2.0.0:
|
3681 |
version "2.0.0"
|
3682 |
resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a"
|
3708 |
version "0.1.15"
|
3709 |
resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc"
|
3710 |
|
3711 |
+
retry@^0.12.0:
|
3712 |
+
version "0.12.0"
|
3713 |
+
resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b"
|
3714 |
+
|
3715 |
+
rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3:
|
3716 |
version "2.6.3"
|
3717 |
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab"
|
3718 |
dependencies:
|
3731 |
dependencies:
|
3732 |
aproba "^1.1.1"
|
3733 |
|
3734 |
+
safe-buffer@5.1.2, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
|
3735 |
version "5.1.2"
|
3736 |
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
|
3737 |
|
3738 |
+
safe-buffer@>=5.1.0:
|
3739 |
+
version "5.2.0"
|
3740 |
+
resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519"
|
3741 |
+
|
3742 |
safe-regex@^1.1.0:
|
3743 |
version "1.1.0"
|
3744 |
resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e"
|
3761 |
ajv-errors "^1.0.0"
|
3762 |
ajv-keywords "^3.1.0"
|
3763 |
|
3764 |
+
select-hose@^2.0.0:
|
3765 |
+
version "2.0.0"
|
3766 |
+
resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca"
|
3767 |
+
|
3768 |
+
selfsigned@^1.10.4:
|
3769 |
+
version "1.10.4"
|
3770 |
+
resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.4.tgz#cdd7eccfca4ed7635d47a08bf2d5d3074092e2cd"
|
3771 |
+
dependencies:
|
3772 |
+
node-forge "0.7.5"
|
3773 |
+
|
3774 |
semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.6.0:
|
3775 |
version "5.7.0"
|
3776 |
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.0.tgz#790a7cf6fea5459bac96110b29b60412dc8ff96b"
|
3779 |
version "6.1.1"
|
3780 |
resolved "https://registry.yarnpkg.com/semver/-/semver-6.1.1.tgz#53f53da9b30b2103cd4f15eab3a18ecbcb210c9b"
|
3781 |
|
3782 |
+
semver@^6.1.1:
|
3783 |
+
version "6.2.0"
|
3784 |
+
resolved "https://registry.yarnpkg.com/semver/-/semver-6.2.0.tgz#4d813d9590aaf8a9192693d6c85b9344de5901db"
|
3785 |
+
|
3786 |
+
send@0.17.1:
|
3787 |
+
version "0.17.1"
|
3788 |
+
resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8"
|
3789 |
+
dependencies:
|
3790 |
+
debug "2.6.9"
|
3791 |
+
depd "~1.1.2"
|
3792 |
+
destroy "~1.0.4"
|
3793 |
+
encodeurl "~1.0.2"
|
3794 |
+
escape-html "~1.0.3"
|
3795 |
+
etag "~1.8.1"
|
3796 |
+
fresh "0.5.2"
|
3797 |
+
http-errors "~1.7.2"
|
3798 |
+
mime "1.6.0"
|
3799 |
+
ms "2.1.1"
|
3800 |
+
on-finished "~2.3.0"
|
3801 |
+
range-parser "~1.2.1"
|
3802 |
+
statuses "~1.5.0"
|
3803 |
+
|
3804 |
serialize-javascript@^1.7.0:
|
3805 |
version "1.7.0"
|
3806 |
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.7.0.tgz#d6e0dfb2a3832a8c94468e6eb1db97e55a192a65"
|
3807 |
|
3808 |
+
serve-index@^1.9.1:
|
3809 |
+
version "1.9.1"
|
3810 |
+
resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239"
|
3811 |
+
dependencies:
|
3812 |
+
accepts "~1.3.4"
|
3813 |
+
batch "0.6.1"
|
3814 |
+
debug "2.6.9"
|
3815 |
+
escape-html "~1.0.3"
|
3816 |
+
http-errors "~1.6.2"
|
3817 |
+
mime-types "~2.1.17"
|
3818 |
+
parseurl "~1.3.2"
|
3819 |
+
|
3820 |
+
serve-static@1.14.1:
|
3821 |
+
version "1.14.1"
|
3822 |
+
resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9"
|
3823 |
+
dependencies:
|
3824 |
+
encodeurl "~1.0.2"
|
3825 |
+
escape-html "~1.0.3"
|
3826 |
+
parseurl "~1.3.3"
|
3827 |
+
send "0.17.1"
|
3828 |
+
|
3829 |
set-blocking@^2.0.0, set-blocking@~2.0.0:
|
3830 |
version "2.0.0"
|
3831 |
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
|
3852 |
version "1.0.5"
|
3853 |
resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285"
|
3854 |
|
3855 |
+
setprototypeof@1.1.0:
|
3856 |
+
version "1.1.0"
|
3857 |
+
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656"
|
3858 |
+
|
3859 |
+
setprototypeof@1.1.1:
|
3860 |
+
version "1.1.1"
|
3861 |
+
resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683"
|
3862 |
+
|
3863 |
sha.js@^2.4.0, sha.js@^2.4.8:
|
3864 |
version "2.4.11"
|
3865 |
resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7"
|
3908 |
source-map-resolve "^0.5.0"
|
3909 |
use "^3.1.0"
|
3910 |
|
3911 |
+
sockjs-client@1.3.0:
|
3912 |
+
version "1.3.0"
|
3913 |
+
resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.3.0.tgz#12fc9d6cb663da5739d3dc5fb6e8687da95cb177"
|
3914 |
+
dependencies:
|
3915 |
+
debug "^3.2.5"
|
3916 |
+
eventsource "^1.0.7"
|
3917 |
+
faye-websocket "~0.11.1"
|
3918 |
+
inherits "^2.0.3"
|
3919 |
+
json3 "^3.3.2"
|
3920 |
+
url-parse "^1.4.3"
|
3921 |
+
|
3922 |
+
sockjs@0.3.19:
|
3923 |
+
version "0.3.19"
|
3924 |
+
resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d"
|
3925 |
+
dependencies:
|
3926 |
+
faye-websocket "^0.10.0"
|
3927 |
+
uuid "^3.0.1"
|
3928 |
+
|
3929 |
source-list-map@^2.0.0:
|
3930 |
version "2.0.1"
|
3931 |
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
|
3959 |
version "0.6.1"
|
3960 |
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
3961 |
|
3962 |
+
spdy-transport@^3.0.0:
|
3963 |
+
version "3.0.0"
|
3964 |
+
resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
|
3965 |
+
dependencies:
|
3966 |
+
debug "^4.1.0"
|
3967 |
+
detect-node "^2.0.4"
|
3968 |
+
hpack.js "^2.1.6"
|
3969 |
+
obuf "^1.1.2"
|
3970 |
+
readable-stream "^3.0.6"
|
3971 |
+
wbuf "^1.7.3"
|
3972 |
+
|
3973 |
+
spdy@^4.0.0:
|
3974 |
+
version "4.0.0"
|
3975 |
+
resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.0.tgz#81f222b5a743a329aa12cea6a390e60e9b613c52"
|
3976 |
+
dependencies:
|
3977 |
+
debug "^4.1.0"
|
3978 |
+
handle-thing "^2.0.0"
|
3979 |
+
http-deceiver "^1.2.7"
|
3980 |
+
select-hose "^2.0.0"
|
3981 |
+
spdy-transport "^3.0.0"
|
3982 |
+
|
3983 |
split-string@^3.0.1, split-string@^3.0.2:
|
3984 |
version "3.1.0"
|
3985 |
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
|
3999 |
define-property "^0.2.5"
|
4000 |
object-copy "^0.1.0"
|
4001 |
|
4002 |
+
"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0:
|
4003 |
+
version "1.5.0"
|
4004 |
+
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c"
|
4005 |
+
|
4006 |
stream-browserify@^2.0.1:
|
4007 |
version "2.0.2"
|
4008 |
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b"
|
4046 |
is-fullwidth-code-point "^2.0.0"
|
4047 |
strip-ansi "^4.0.0"
|
4048 |
|
4049 |
+
string_decoder@^1.0.0, string_decoder@^1.1.1:
|
4050 |
version "1.2.0"
|
4051 |
resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.2.0.tgz#fe86e738b19544afe70469243b2a1ee9240eae8d"
|
4052 |
dependencies:
|
4088 |
dependencies:
|
4089 |
has-flag "^3.0.0"
|
4090 |
|
4091 |
+
supports-color@^6.1.0:
|
4092 |
+
version "6.1.0"
|
4093 |
+
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
|
4094 |
+
dependencies:
|
4095 |
+
has-flag "^3.0.0"
|
4096 |
+
|
4097 |
tapable@^1.0.0, tapable@^1.1.0:
|
4098 |
version "1.1.3"
|
4099 |
resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2"
|
4140 |
readable-stream "~2.3.6"
|
4141 |
xtend "~4.0.1"
|
4142 |
|
4143 |
+
thunky@^1.0.2:
|
4144 |
+
version "1.0.3"
|
4145 |
+
resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.3.tgz#f5df732453407b09191dae73e2a8cc73f381a826"
|
4146 |
+
|
4147 |
timers-browserify@^2.0.4:
|
4148 |
version "2.0.10"
|
4149 |
resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.10.tgz#1d28e3d2aadf1d5a5996c4e9f95601cd053480ae"
|
4184 |
regex-not "^1.0.2"
|
4185 |
safe-regex "^1.1.0"
|
4186 |
|
4187 |
+
toidentifier@1.0.0:
|
4188 |
+
version "1.0.0"
|
4189 |
+
resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553"
|
4190 |
+
|
4191 |
trim-right@^1.0.1:
|
4192 |
version "1.0.1"
|
4193 |
resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003"
|
4200 |
version "0.0.0"
|
4201 |
resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6"
|
4202 |
|
4203 |
+
type-is@~1.6.17, type-is@~1.6.18:
|
4204 |
+
version "1.6.18"
|
4205 |
+
resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131"
|
4206 |
+
dependencies:
|
4207 |
+
media-typer "0.3.0"
|
4208 |
+
mime-types "~2.1.24"
|
4209 |
+
|
4210 |
typedarray@^0.0.6:
|
4211 |
version "0.0.6"
|
4212 |
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
4251 |
dependencies:
|
4252 |
imurmurhash "^0.1.4"
|
4253 |
|
4254 |
+
unpipe@1.0.0, unpipe@~1.0.0:
|
4255 |
+
version "1.0.0"
|
4256 |
+
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
|
4257 |
+
|
4258 |
unset-value@^1.0.0:
|
4259 |
version "1.0.0"
|
4260 |
resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559"
|
4276 |
version "0.1.0"
|
4277 |
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
|
4278 |
|
4279 |
+
url-parse@^1.4.3:
|
4280 |
+
version "1.4.7"
|
4281 |
+
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278"
|
4282 |
+
dependencies:
|
4283 |
+
querystringify "^2.1.1"
|
4284 |
+
requires-port "^1.0.0"
|
4285 |
+
|
4286 |
url@^0.11.0:
|
4287 |
version "0.11.0"
|
4288 |
resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1"
|
4294 |
version "3.1.1"
|
4295 |
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
|
4296 |
|
4297 |
+
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
4298 |
version "1.0.2"
|
4299 |
resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
|
4300 |
|
4310 |
dependencies:
|
4311 |
inherits "2.0.3"
|
4312 |
|
4313 |
+
utils-merge@1.0.1:
|
4314 |
+
version "1.0.1"
|
4315 |
+
resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713"
|
4316 |
+
|
4317 |
+
uuid@^3.0.1, uuid@^3.3.2:
|
4318 |
+
version "3.3.2"
|
4319 |
+
resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.3.2.tgz#1b4af4955eb3077c501c23872fc6513811587131"
|
4320 |
+
|
4321 |
v8-compile-cache@^2.0.2:
|
4322 |
version "2.0.3"
|
4323 |
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.3.tgz#00f7494d2ae2b688cfe2899df6ed2c54bef91dbe"
|
4324 |
|
4325 |
+
vary@~1.1.2:
|
4326 |
+
version "1.1.2"
|
4327 |
+
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
|
4328 |
+
|
4329 |
vm-browserify@0.0.4:
|
4330 |
version "0.0.4"
|
4331 |
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73"
|
4340 |
graceful-fs "^4.1.2"
|
4341 |
neo-async "^2.5.0"
|
4342 |
|
4343 |
+
wbuf@^1.1.0, wbuf@^1.7.3:
|
4344 |
+
version "1.7.3"
|
4345 |
+
resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df"
|
4346 |
+
dependencies:
|
4347 |
+
minimalistic-assert "^1.0.0"
|
4348 |
+
|
4349 |
webpack-cli@^3.3.2:
|
4350 |
version "3.3.2"
|
4351 |
resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-3.3.2.tgz#aed2437b0db0a7faa2ad28484e166a5360014a91"
|
4362 |
v8-compile-cache "^2.0.2"
|
4363 |
yargs "^12.0.5"
|
4364 |
|
4365 |
+
webpack-dev-middleware@^3.7.0:
|
4366 |
+
version "3.7.0"
|
4367 |
+
resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.0.tgz#ef751d25f4e9a5c8a35da600c5fda3582b5c6cff"
|
4368 |
+
dependencies:
|
4369 |
+
memory-fs "^0.4.1"
|
4370 |
+
mime "^2.4.2"
|
4371 |
+
range-parser "^1.2.1"
|
4372 |
+
webpack-log "^2.0.0"
|
4373 |
+
|
4374 |
+
webpack-dev-server@^3.7.2:
|
4375 |
+
version "3.7.2"
|
4376 |
+
resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.7.2.tgz#f79caa5974b7f8b63268ef5421222a8486d792f5"
|
4377 |
+
dependencies:
|
4378 |
+
ansi-html "0.0.7"
|
4379 |
+
bonjour "^3.5.0"
|
4380 |
+
chokidar "^2.1.6"
|
4381 |
+
compression "^1.7.4"
|
4382 |
+
connect-history-api-fallback "^1.6.0"
|
4383 |
+
debug "^4.1.1"
|
4384 |
+
del "^4.1.1"
|
4385 |
+
express "^4.17.1"
|
4386 |
+
html-entities "^1.2.1"
|
4387 |
+
http-proxy-middleware "^0.19.1"
|
4388 |
+
import-local "^2.0.0"
|
4389 |
+
internal-ip "^4.3.0"
|
4390 |
+
ip "^1.1.5"
|
4391 |
+
killable "^1.0.1"
|
4392 |
+
loglevel "^1.6.3"
|
4393 |
+
opn "^5.5.0"
|
4394 |
+
p-retry "^3.0.1"
|
4395 |
+
portfinder "^1.0.20"
|
4396 |
+
schema-utils "^1.0.0"
|
4397 |
+
selfsigned "^1.10.4"
|
4398 |
+
semver "^6.1.1"
|
4399 |
+
serve-index "^1.9.1"
|
4400 |
+
sockjs "0.3.19"
|
4401 |
+
sockjs-client "1.3.0"
|
4402 |
+
spdy "^4.0.0"
|
4403 |
+
strip-ansi "^3.0.1"
|
4404 |
+
supports-color "^6.1.0"
|
4405 |
+
url "^0.11.0"
|
4406 |
+
webpack-dev-middleware "^3.7.0"
|
4407 |
+
webpack-log "^2.0.0"
|
4408 |
+
yargs "12.0.5"
|
4409 |
+
|
4410 |
+
webpack-log@^2.0.0:
|
4411 |
+
version "2.0.0"
|
4412 |
+
resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f"
|
4413 |
+
dependencies:
|
4414 |
+
ansi-colors "^3.0.0"
|
4415 |
+
uuid "^3.3.2"
|
4416 |
+
|
4417 |
webpack-sources@^1.3.0:
|
4418 |
version "1.3.0"
|
4419 |
resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.3.0.tgz#2a28dcb9f1f45fe960d8f1493252b5ee6530fa85"
|
4450 |
watchpack "^1.5.0"
|
4451 |
webpack-sources "^1.3.0"
|
4452 |
|
4453 |
+
websocket-driver@>=0.5.1:
|
4454 |
+
version "0.7.3"
|
4455 |
+
resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9"
|
4456 |
+
dependencies:
|
4457 |
+
http-parser-js ">=0.4.0 <0.4.11"
|
4458 |
+
safe-buffer ">=5.1.0"
|
4459 |
+
websocket-extensions ">=0.1.1"
|
4460 |
+
|
4461 |
+
websocket-extensions@>=0.1.1:
|
4462 |
+
version "0.1.3"
|
4463 |
+
resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29"
|
4464 |
+
|
4465 |
which-module@^2.0.0:
|
4466 |
version "2.0.0"
|
4467 |
resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a"
|
4514 |
camelcase "^5.0.0"
|
4515 |
decamelize "^1.2.0"
|
4516 |
|
4517 |
+
yargs@12.0.5, yargs@^12.0.5:
|
4518 |
version "12.0.5"
|
4519 |
resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13"
|
4520 |
dependencies:
|
languages/leadin-de_AT.mo
CHANGED
Binary file
|
languages/leadin-de_CH.mo
CHANGED
Binary file
|
languages/leadin-de_CH_informal.mo
CHANGED
Binary file
|
languages/leadin-de_DE.mo
CHANGED
Binary file
|
languages/leadin-de_DE_formal.mo
CHANGED
Binary file
|
languages/leadin-en.mo
CHANGED
Binary file
|
languages/leadin-en_AU.mo
CHANGED
Binary file
|
languages/leadin-en_CA.mo
CHANGED
Binary file
|
languages/leadin-en_GB.mo
CHANGED
Binary file
|
languages/leadin-en_NZ.mo
CHANGED
Binary file
|
languages/leadin-en_US.mo
CHANGED
Binary file
|
languages/leadin-en_ZA.mo
CHANGED
Binary file
|
languages/leadin-es_AR.mo
CHANGED
Binary file
|
languages/leadin-es_CL.mo
CHANGED
Binary file
|
languages/leadin-es_CO.mo
CHANGED
Binary file
|
languages/leadin-es_CR.mo
CHANGED
Binary file
|
languages/leadin-es_ES.mo
CHANGED
Binary file
|
languages/leadin-es_GT.mo
CHANGED
Binary file
|
languages/leadin-es_MX.mo
CHANGED
Binary file
|
languages/leadin-es_PE.mo
CHANGED
Binary file
|
languages/leadin-es_PR.mo
CHANGED
Binary file
|
languages/leadin-es_VE.mo
CHANGED
Binary file
|
languages/leadin-fr_BE.mo
CHANGED
Binary file
|
languages/leadin-fr_CA.mo
CHANGED
Binary file
|
languages/leadin-fr_FR.mo
CHANGED
Binary file
|
languages/leadin-ja.mo
CHANGED
Binary file
|
languages/leadin-pt_AO.mo
CHANGED
Binary file
|
languages/leadin-pt_BR.mo
CHANGED
Binary file
|
languages/leadin-pt_PT.mo
CHANGED
Binary file
|
languages/leadin-pt_PT_ao90.mo
CHANGED
Binary file
|
leadin.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: HubSpot All-In-One Marketing - Forms, Popups, Live Chat
|
4 |
* Plugin URI: http://www.hubspot.com/integrations/wordpress
|
5 |
* Description: HubSpot’s official WordPress plugin allows you to add forms, popups, and live chat to your website and integrate with the best WordPress CRM.
|
6 |
-
* Version: 7.
|
7 |
* Author: HubSpot
|
8 |
* Author URI: http://www.hubspot.com
|
9 |
* License: GPL v3
|
@@ -60,7 +60,7 @@ if ( ! defined( 'LEADIN_DB_VERSION' ) ) {
|
|
60 |
}
|
61 |
|
62 |
if ( ! defined( 'LEADIN_PLUGIN_VERSION' ) ) {
|
63 |
-
define( 'LEADIN_PLUGIN_VERSION', '7.
|
64 |
}
|
65 |
|
66 |
if ( ! defined( 'LEADIN_SOURCE' ) ) {
|
@@ -91,10 +91,12 @@ if ( ! defined( 'LEADIN_SIGNUP_BASE_URL' ) ) {
|
|
91 |
define( 'LEADIN_SIGNUP_BASE_URL', LEADIN_BASE_URL );
|
92 |
}
|
93 |
|
|
|
|
|
|
|
|
|
94 |
if ( ! defined( 'LEADIN_STATIC_BUNDLE_VERSION' ) ) {
|
95 |
-
|
96 |
-
// The deploy script will replace it with an actual bundle version for releases.
|
97 |
-
define( 'LEADIN_STATIC_BUNDLE_VERSION', 'static-1.575' );
|
98 |
}
|
99 |
|
100 |
// =============================================
|
3 |
* Plugin Name: HubSpot All-In-One Marketing - Forms, Popups, Live Chat
|
4 |
* Plugin URI: http://www.hubspot.com/integrations/wordpress
|
5 |
* Description: HubSpot’s official WordPress plugin allows you to add forms, popups, and live chat to your website and integrate with the best WordPress CRM.
|
6 |
+
* Version: 7.8.0
|
7 |
* Author: HubSpot
|
8 |
* Author URI: http://www.hubspot.com
|
9 |
* License: GPL v3
|
60 |
}
|
61 |
|
62 |
if ( ! defined( 'LEADIN_PLUGIN_VERSION' ) ) {
|
63 |
+
define( 'LEADIN_PLUGIN_VERSION', '7.8.0' );
|
64 |
}
|
65 |
|
66 |
if ( ! defined( 'LEADIN_SOURCE' ) ) {
|
91 |
define( 'LEADIN_SIGNUP_BASE_URL', LEADIN_BASE_URL );
|
92 |
}
|
93 |
|
94 |
+
if ( ! defined( 'LEADIN_JS_PATH' ) ) {
|
95 |
+
define( 'LEADIN_JS_PATH', LEADIN_PATH . '/js/dist/leadin.js' );
|
96 |
+
}
|
97 |
+
|
98 |
if ( ! defined( 'LEADIN_STATIC_BUNDLE_VERSION' ) ) {
|
99 |
+
define( 'LEADIN_STATIC_BUNDLE_VERSION', 'static-1.693' );
|
|
|
|
|
100 |
}
|
101 |
|
102 |
// =============================================
|
readme.txt
CHANGED
@@ -6,7 +6,7 @@ Tags: hubspot, crm, forms, popup, live chat, email, contact form, newsletter, ma
|
|
6 |
Requires at least: 4.0
|
7 |
Tested up to: 5.2
|
8 |
Requires PHP: 5.6
|
9 |
-
Stable tag: 7.
|
10 |
|
11 |
HubSpot All-In-One Marketing, is a free all-in-one marketing plugin that allows you to easily use HubSpot forms, popups, and live chat on your WordPress site and create and send email campaigns. If you’re already a HubSpot user, the plugin lets you connect your HubSpot account to your website without any code.
|
12 |
|
@@ -173,23 +173,14 @@ Please <a href="https://community.hubspot.com?utm_source=wordpress-plugin-listin
|
|
173 |
|
174 |
== Changelog ==
|
175 |
|
176 |
-
- Current version: 7.
|
177 |
-
- Current version release: 2019-
|
178 |
-
|
179 |
-
= 7.
|
180 |
-
-
|
181 |
-
-
|
182 |
-
-
|
183 |
-
-
|
184 |
-
- Remove queries to DB
|
185 |
-
- Update plugin permissions
|
186 |
-
- Update `leadin_route` query parameter
|
187 |
-
- Remove HTML from translations
|
188 |
-
- Remove notice for outdated plugin
|
189 |
-
- Remove unused options
|
190 |
-
- Escape variables
|
191 |
-
- Avoid phpcs errors on file_get_contents
|
192 |
-
- Fix mispelled WordPress
|
193 |
|
194 |
= 7.0.0 (2018.10.03) =
|
195 |
- Add deeper integration with HubSpot. Starts a new release of a new forms integration within WordPress. Released progressively for some users.
|
6 |
Requires at least: 4.0
|
7 |
Tested up to: 5.2
|
8 |
Requires PHP: 5.6
|
9 |
+
Stable tag: 7.8.0
|
10 |
|
11 |
HubSpot All-In-One Marketing, is a free all-in-one marketing plugin that allows you to easily use HubSpot forms, popups, and live chat on your WordPress site and create and send email campaigns. If you’re already a HubSpot user, the plugin lets you connect your HubSpot account to your website without any code.
|
12 |
|
173 |
|
174 |
== Changelog ==
|
175 |
|
176 |
+
- Current version: 7.8.0
|
177 |
+
- Current version release: 2019-08-08
|
178 |
+
|
179 |
+
= 7.8.0 (2019.08.08) =
|
180 |
+
- Replace activate_plugins with manage_options
|
181 |
+
- Upgrade wordpress-scripts
|
182 |
+
- Remove tracking code from login page
|
183 |
+
- Added Logo svg for banner
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
184 |
|
185 |
= 7.0.0 (2018.10.03) =
|
186 |
- Add deeper integration with HubSpot. Starts a new release of a new forms integration within WordPress. Released progressively for some users.
|
scripts/leadin.js.map
DELETED
@@ -1 +0,0 @@
|
|
1 |
-
{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/raven-js/src/singleton.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/raven-js/src/utils.js","webpack:///./node_modules/raven-js/src/raven.js","webpack:///./node_modules/raven-js/vendor/TraceKit/tracekit.js","webpack:///./node_modules/raven-js/vendor/json-stringify-safe/stringify.js","webpack:///./node_modules/raven-js/src/configError.js","webpack:///./node_modules/raven-js/src/console.js","webpack:///./js/constants/leadinConfig.js","webpack:///./js/lib/Raven.js","webpack:///./js/menu.js","webpack:///./js/utils.js","webpack:///./js/constants/selectors.js","webpack:///./js/lib/Interframe.js","webpack:///./js/lib/EventBus.js","webpack:///./js/api/wordpressApi.js","webpack:///./js/api/hubspotPluginApi.js","webpack:///./js/constants/routes.js","webpack:///./js/navigation.js","webpack:///./js/constants/themes.js","webpack:///./js/handlers.js","webpack:///./js/fullscreen.js","webpack:///./js/app.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","global","RavenConstructor","_window","window","self","_Raven","Raven","noConflict","afterLoad","g","this","Function","e","isUndefined","what","isString","toString","supportsErrorEvent","ErrorEvent","each","obj","callback","j","length","hasKey","htmlElementAsString","elem","className","classes","attr","out","tagName","push","toLowerCase","id","split","attrWhitelist","getAttribute","join","isOnlyOneTruthy","a","b","isSameStacktrace","stack1","stack2","frames1","frames","frames2","filename","lineno","colno","isObject","isError","Error","isErrorEvent","isFunction","isEmptyObject","_","wrappedCallback","data","original","normalizedData","objectMerge","obj1","obj2","truncate","str","max","substr","objectFrozen","isFrozen","joinRegExp","patterns","pattern","sources","len","replace","source","RegExp","urlencode","pairs","encodeURIComponent","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","Math","random","htmlTreeAsString","nextStr","height","sepLength","parentNode","reverse","isSameException","ex1","ex2","values","type","stacktrace","parseUrl","url","match","query","fragment","protocol","host","path","relative","fill","replacement","track","orig","TraceKit","stringify","RavenConfigError","utils","wrapConsoleMethod","wrapMethod","dsnKeys","dsnPattern","now","Date","_document","document","_navigator","navigator","keepOriginalCallback","method","_hasJSON","JSON","_hasDocument","_hasNavigator","_lastCapturedException","_lastData","_lastEventId","_globalServer","_globalKey","_globalProject","_globalContext","_globalOptions","logger","ignoreErrors","ignoreUrls","whitelistUrls","includePaths","collectWindowErrors","maxMessageLength","maxUrlLength","stackTraceLimit","autoBreadcrumbs","instrument","sampleRate","_ignoreOnError","_isRavenInstalled","_originalErrorStackTraceLimit","_originalConsole","console","_originalConsoleMethods","_plugins","_startTime","_wrappedBuiltIns","_breadcrumbs","_lastCapturedEvent","_keypressTimeout","_location","location","_lastHref","href","_resetBackoff","VERSION","debug","config","dsn","options","_logDebug","globalOptions","setDSN","maxBreadcrumbs","min","autoBreadcrumbDefaults","xhr","dom","instrumentDefaults","tryCatch","install","isSetup","report","subscribe","_handleOnErrorStackInfo","apply","arguments","_instrumentTryCatch","_instrumentBreadcrumbs","_drainPlugins","uri","_parseDSN","lastSlash","lastIndexOf","_dsn","user","_globalSecret","pass","_getGlobalServer","_globalEndpoint","context","func","args","undefined","wrap","_before","__raven__","__raven_wrapper__","wrapped","deep","_ignoreNextOnError","captureException","__inner__","uninstall","_restoreBuiltIns","ex","isNotError","isNotErrorEvent","isErrorEventWithoutError","error","captureMessage","trimHeadFrames","stack","computeStackTrace","_handleStackInfo","msg","test","message","initialCall","fileurl","fingerprint","_prepareFrames","_send","captureBreadcrumb","crumb","timestamp","breadcrumbCallback","result","shift","addPlugin","plugin","pluginArgs","slice","setUserContext","setExtraContext","extra","_mergeContext","setTagsContext","tags","clearContext","getContext","parse","setEnvironment","environment","setRelease","release","setDataCallback","dataCallback","setBreadcrumbCallback","setShouldSendCallback","shouldSendCallback","setTransport","transport","lastException","lastEventId","ravenNotConfiguredError","RavenConfig","showReportDialog","eventId","encode","qs","email","globalServer","script","createElement","async","src","head","body","appendChild","setTimeout","_triggerEvent","eventType","evt","toUpperCase","createEvent","initEvent","createEventObject","dispatchEvent","fireEvent","_breadcrumbEventHandler","evtName","target","category","_keypressEventHandler","isContentEditable","timeout","clearTimeout","_captureUrlChange","from","to","parsedLoc","parsedTo","parsedFrom","wrappedBuiltIns","wrapTimeFn","fn","Array","originalCallback","wrapEventTarget","proto","capture","secure","handleEvent","err","before","clickHandler","keypressHandler","requestAnimationFrame","cb","eventTargets","wrapProp","prop","xhrproto","XMLHttpRequest","origOpen","indexOf","__raven_xhr","status_code","origSend","onreadystatechangeHandler","readyState","status","props","onreadystatechange","origFetch","fetchInput","Request","fetchData","then","response","addEventListener","attachEvent","chrome","hasPushAndReplaceState","app","runtime","history","pushState","replaceState","oldOnPopState","onpopstate","currentHref","historyReplacementFunction","origHistFunction","log","consoleMethodCallback","level","builtin","installer","concat","exec","allowSecretKey","port","stackInfo","_processException","frame","_normalizeFrame","in_app","stackInfoUrl","normalized","line","column","function","prefixedMessage","exception","culprit","_trimPacket","request","Referer","breadcrumbs","_trimBreadcrumbs","urlProp","urlProps","_getHttpData","httpData","userAgent","headers","User-Agent","referrer","_backoffDuration","_backoffStart","_shouldBackoff","_isRepeatData","current","last","_setBackoffState","retry","getResponseHeader","parseInt","baseData","project","platform","serverName","server_name","_sendProcessedPayload","_getUuid","allowDuplicates","event_id","auth","sentry_version","sentry_client","sentry_key","sentry_secret","_makeRequest","onSuccess","onError","opts","XDomainRequest","onload","onerror","open","send","setUser","setReleaseContext","_slice","UNKNOWN_FUNCTION","ERROR_TYPES_RE","getLocationHref","_oldOnerrorHandler","_onErrorHandlerInstalled","handlers","lastArgs","lastExceptionStack","notifyHandlers","isWindowError","inner","traceKitWindowOnError","lineNo","colNo","augmentStackTraceWithInitialElement","processLastException","groups","_lastExceptionStack","_lastArgs","rethrow","incomplete","handler","unsubscribe","splice","computeStackTraceFromStackProp","submatch","parts","element","gecko","winjs","geckoEval","chromeEval","lines","isNative","columnNumber","initial","unshift","partial","computeStackTraceByWalkingCallerChain","depth","item","functionName","funcs","recursion","curr","caller","input","substring","sourceURL","fileName","lineNumber","description","haystack","needle","serializer","replacer","cycleReplacer","keys","thisPos","Infinity","stringifyError","spaces","getSerialize","constructor","originalConsoleLevel","originalConsole","sentryLevel","leadinConfig","adminUrl","ajaxUrl","env","hubspotBaseUrl","leadinPluginVersion","nonce","plugins","phpVersion","portalId","theme","wpVersion","i18n","leadinI18n","addMenuItem","text","jQuery","find","addExternalLinks","chatflowsUrl","emailUrl","chatflows","localStorage","LEADIN_DEBUG","_console","_len","_key","domElements","iframe","spaNavigationButtons","subMenuButtons","eventBus","EventBus","_classCallCheck","bus","_this$bus","trigger","event","on","callbacks","postMessageObject","contentWindow","postMessage","reply","newMessage","assign","handleMessage","_callbackId","handleResponse","forEach","handleMessageEvent","origin","makeRequest","action","payload","success","ajaxPayload","contentType","jqXHR","responseText","ajax","post","portalPollingTimeout","getPortal","stopPortalPolling","startPortalIdPolling","reload","disconnect","getDomain","createHandler","onClearQueryParam","onConnect","onDisableNavigation","onDisconnect","onEnterFullScreen","onExitFullScreen","onGetAssetsPayload","onGetDomain","onInitNavigation","onInterframeReady","onPageReload","onUpgrade","onSyncRoute","changeRoute","route","onResponse","onTimeout","timeoutId","errorMessage","validAppRoutes","initNavigation","handleNavigation","appRoute","search","removeClass","pageParam","parent","addClass","setSelectedMenuItem","click","metaKey","altKey","shiftKey","preventDefault","themes","genesis-sample","formsStyle","fontFamily","labelTextColor","labelTextSize","submitFontColor","submitColor","chatStyle","accentColor","onScrollLeadFlowStyle","color","onExitLeadFlowStyle","academy-pro","agency-pro","agentpress-pro","altitude-pro","ambiance-pro","atmosphere-pro","author-pro","authority-pro","beautiful-pro","breakthrough-pro","cafe-pro","daily-dish-pro","digital-pro","education-pro","eleven40-pro","enterprise-pro","essence-pro","executive-pro","generate-pro","infinity-pro","interior-pro","lifestyle-pro","magazine-pro","metro-pro","minimum-pro","modern-studio-pro","monochrome-pro","news-pro","no-sidebar-pro","outfitter-pro","outreach-pro","parallax-pro","revolution-pro","sixteen-nine-pro","smart-passive-income-pro","wellness-pro","workstation-pro","connect","allMenuButtons","off","currentWindowLocation","newWindowLocation","domain","routes","includes","queryParamsRoutes","reduce","acc","index","syncRoute","leadin","php","wordpress","hub","map","Version","ready"],"mappings":"aACA,IAAAA,EAAA,GAGA,SAAAC,EAAAC,GAGA,GAAAF,EAAAE,GACA,OAAAF,EAAAE,GAAAC,QAGA,IAAAC,EAAAJ,EAAAE,GAAA,CACAG,EAAAH,EACAI,GAAA,EACAH,QAAA,IAUA,OANAI,EAAAL,GAAAM,KAAAJ,EAAAD,QAAAC,IAAAD,QAAAF,GAGAG,EAAAE,GAAA,EAGAF,EAAAD,QAKAF,EAAAQ,EAAAF,EAGAN,EAAAS,EAAAV,EAGAC,EAAAU,EAAA,SAAAR,EAAAS,EAAAC,GACAZ,EAAAa,EAAAX,EAAAS,IACAG,OAAAC,eAAAb,EAAAS,EAAA,CAA0CK,YAAA,EAAAC,IAAAL,KAK1CZ,EAAAkB,EAAA,SAAAhB,GACA,oBAAAiB,eAAAC,aACAN,OAAAC,eAAAb,EAAAiB,OAAAC,YAAA,CAAwDC,MAAA,WAExDP,OAAAC,eAAAb,EAAA,cAAiDmB,OAAA,KAQjDrB,EAAAsB,EAAA,SAAAD,EAAAE,GAEA,GADA,EAAAA,IAAAF,EAAArB,EAAAqB,IACA,EAAAE,EAAA,OAAAF,EACA,KAAAE,GAAA,iBAAAF,QAAAG,WAAA,OAAAH,EACA,IAAAI,EAAAX,OAAAY,OAAA,MAGA,GAFA1B,EAAAkB,EAAAO,GACAX,OAAAC,eAAAU,EAAA,WAAyCT,YAAA,EAAAK,UACzC,EAAAE,GAAA,iBAAAF,EAAA,QAAAM,KAAAN,EAAArB,EAAAU,EAAAe,EAAAE,EAAA,SAAAA,GAAgH,OAAAN,EAAAM,IAAqBC,KAAA,KAAAD,IACrI,OAAAF,GAIAzB,EAAA6B,EAAA,SAAA1B,GACA,IAAAS,EAAAT,KAAAqB,WACA,WAA2B,OAAArB,EAAA,SAC3B,WAAiC,OAAAA,GAEjC,OADAH,EAAAU,EAAAE,EAAA,IAAAA,GACAA,GAIAZ,EAAAa,EAAA,SAAAiB,EAAAC,GAAsD,OAAAjB,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAC,IAGtD/B,EAAAkC,EAAA,GAIAlC,IAAAmC,EAAA,sBClFA,SAAAC,GAMA,IAAAC,EAAuBrC,EAAQ,GAG/BsC,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GACAC,EAAAH,EAAAI,MAEAA,EAAA,IAAAL,EAQAK,EAAAC,WAAA,WAEA,OADAL,EAAAI,MAAAD,EACAC,GAGAA,EAAAE,YAEAzC,EAAAD,QAAAwC,mCC9BA,IAAAG,EAGAA,EAAA,WACA,OAAAC,KADA,GAIA,IAEAD,KAAA,IAAAE,SAAA,iBACC,MAAAC,GAED,iBAAAT,SAAAM,EAAAN,QAOApC,EAAAD,QAAA2C,oBCnBA,SAAAT,GAAA,IAAAE,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GAyBA,SAAAS,EAAAC,GACA,gBAAAA,EAOA,SAAAC,EAAAD,GACA,0BAAApC,OAAAkB,UAAAoB,SAAA7C,KAAA2C,GAQA,SAAAG,IACA,IAEA,OADA,IAAAC,WAAA,KACA,EACG,MAAAN,GACH,UAgBA,SAAAO,EAAAC,EAAAC,GACA,IAAArD,EAAAsD,EAEA,GAAAT,EAAAO,EAAAG,QACA,IAAAvD,KAAAoD,EACAI,EAAAJ,EAAApD,IACAqD,EAAAlD,KAAA,KAAAH,EAAAoD,EAAApD,SAKA,GADAsD,EAAAF,EAAAG,OAEA,IAAAvD,EAAA,EAAiBA,EAAAsD,EAAOtD,IACxBqD,EAAAlD,KAAA,KAAAH,EAAAoD,EAAApD,IA0CA,SAAAwD,EAAA9B,EAAAH,GACA,OAAAb,OAAAkB,UAAAC,eAAA1B,KAAAuB,EAAAH,GA2IA,SAAAkC,EAAAC,GACA,IACAC,EACAC,EACArC,EACAsC,EACA7D,EALA8D,EAAA,GAOA,IAAAJ,MAAAK,QACA,SASA,GANAD,EAAAE,KAAAN,EAAAK,QAAAE,eACAP,EAAAQ,IACAJ,EAAAE,KAAA,IAAAN,EAAAQ,KAGAP,EAAAD,EAAAC,YACAZ,EAAAY,GAEA,IADAC,EAAAD,EAAAQ,MAAA,OACAnE,EAAA,EAAeA,EAAA4D,EAAAL,OAAoBvD,IACnC8D,EAAAE,KAAA,IAAAJ,EAAA5D,IAGA,IAAAoE,EAAA,8BACA,IAAApE,EAAA,EAAaA,EAAAoE,EAAAb,OAA0BvD,IACvCuB,EAAA6C,EAAApE,IACA6D,EAAAH,EAAAW,aAAA9C,KAEAuC,EAAAE,KAAA,IAAAzC,EAAA,KAAAsC,EAAA,MAGA,OAAAC,EAAAQ,KAAA,IAMA,SAAAC,EAAAC,EAAAC,GACA,WAAAD,IAAAC,GAoBA,SAAAC,EAAAC,EAAAC,GACA,GAAAL,EAAAI,EAAAC,GAAA,SAEA,IAOAJ,EAAAC,EAPAI,EAAAF,EAAAG,OACAC,EAAAH,EAAAE,OAGA,GAAAD,EAAAtB,SAAAwB,EAAAxB,OAAA,SAIA,QAAAvD,EAAA,EAAiBA,EAAA6E,EAAAtB,OAAoBvD,IAGrC,GAFAwE,EAAAK,EAAA7E,GACAyE,EAAAM,EAAA/E,GAEAwE,EAAAQ,WAAAP,EAAAO,UACAR,EAAAS,SAAAR,EAAAQ,QACAT,EAAAU,QAAAT,EAAAS,OACAV,EAAA,WAAAC,EAAA,SAEA,SAEA,SAkBA1E,EAAAD,QAAA,CACAqF,SApWA,SAAArC,GACA,uBAAAA,GAAA,OAAAA,GAoWAsC,QA/VA,SAAAnE,GACA,UAAY+B,SAAA7C,KAAAc,IACZ,qBAEA,yBAEA,4BACA,SACA,QACA,OAAAA,aAAAoE,QAuVAC,aAnVA,SAAArE,GACA,OAAAgC,KAAmC,wBAAnC,GAAmCD,SAAA7C,KAAAc,IAmVnC4B,cACA0C,WA7UA,SAAAzC,GACA,yBAAAA,GA6UAC,WACAyC,cAvUA,SAAA1C,GACA,QAAA2C,KAAA3C,EAAA,SACA,UAsUAG,qBACAyC,gBA3TA,SAAArC,GASA,OARA,SAAAsC,EAAAC,GACA,IAAAC,EAAAxC,EAAAsC,MACA,OAAAC,GACAA,EAAAC,IAEAA,IAsTA1C,OACA2C,YA9RA,SAAAC,EAAAC,GACA,OAAAA,GAGA7C,EAAA6C,EAAA,SAAAzE,EAAAN,GACA8E,EAAAxE,GAAAN,IAEA8E,GALAA,GA6RAE,SAtQA,SAAAC,EAAAC,GACA,OAAAA,GAAAD,EAAA3C,QAAA4C,EAAAD,IAAAE,OAAA,EAAAD,GAAA,KAsQAE,aA9QA,SAAAjD,GACA,QAAA1C,OAAA4F,UAGA5F,OAAA4F,SAAAlD,IA2QAI,SACA+C,WA1PA,SAAAC,GAQA,IALA,IAGAC,EAHAC,EAAA,GACA1G,EAAA,EACA2G,EAAAH,EAAAjD,OAGQvD,EAAA2G,EAAS3G,IAEjB+C,EADA0D,EAAAD,EAAAxG,IAIA0G,EAAA1C,KAAAyC,EAAAG,QAAA,8BAAiD,SAC5CH,KAAAI,QAELH,EAAA1C,KAAAyC,EAAAI,QAIA,WAAAC,OAAAJ,EAAApC,KAAA,WAuOAyC,UApOA,SAAAtG,GACA,IAAAuG,EAAA,GAIA,OAHA7D,EAAA1C,EAAA,SAAAc,EAAAN,GACA+F,EAAAhD,KAAAiD,mBAAA1F,GAAA,IAAA0F,mBAAAhG,MAEA+F,EAAA1C,KAAA,MAgOA4C,MA5MA,WACA,IAAAC,EAAAjF,EAAAiF,QAAAjF,EAAAkF,SAEA,IAAAvE,EAAAsE,MAAAE,gBAAA,CAGA,IAAAC,EAAA,IAAAC,YAAA,GACAJ,EAAAE,gBAAAC,GAGAA,EAAA,QAAAA,EAAA,SAEAA,EAAA,SAAAA,EAAA,SAEA,IAAAE,EAAA,SAAAC,GAEA,IADA,IAAAC,EAAAD,EAAAzE,SAAA,IACA0E,EAAAnE,OAAA,GACAmE,EAAA,IAAAA,EAEA,OAAAA,GAGA,OACAF,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IACAE,EAAAF,EAAA,IAIA,yCAAAV,QAAA,iBAAAvG,GACA,IAAAS,EAAA,GAAA6G,KAAAC,SAAA,EAEA,OADA,MAAAvH,EAAAS,EAAA,EAAAA,EAAA,GACAkC,SAAA,OAwKA6E,iBA5JA,SAAAnE,GAWA,IATA,IAOAoE,EALAhE,EAAA,GACAiE,EAAA,EACApB,EAAA,EAEAqB,EADA,MACAzE,OAGAG,GAAAqE,IATA,KAgBA,UANAD,EAAArE,EAAAC,KAOAqE,EAAA,GAAApB,EAAA7C,EAAAP,OAAAyE,EAAAF,EAAAvE,QAhBA,KAqBAO,EAAAE,KAAA8D,GAEAnB,GAAAmB,EAAAvE,OACAG,IAAAuE,WAGA,OAAAnE,EAAAoE,UAAA5D,KAvBA,QAsJAb,sBACA0E,gBA1EA,SAAAC,EAAAC,GACA,OAAA9D,EAAA6D,EAAAC,KAEAD,IAAAE,OAAA,GACAD,IAAAC,OAAA,GAEAF,EAAAG,OAAAF,EAAAE,MAAAH,EAAAnH,QAAAoH,EAAApH,OAEAyD,EAAA0D,EAAAI,WAAAH,EAAAG,cAmEA9D,mBACA+D,SA/NA,SAAAC,GACA,IAAAC,EAAAD,EAAAC,MAAA,kEACA,IAAAA,EAAA,SAGA,IAAAC,EAAAD,EAAA,OACAE,EAAAF,EAAA,OACA,OACAG,SAAAH,EAAA,GACAI,KAAAJ,EAAA,GACAK,KAAAL,EAAA,GACAM,SAAAN,EAAA,GAAAC,EAAAC,IAqNAK,KA/BA,SAAA9F,EAAA7C,EAAA4I,EAAAC,GACA,IAAAC,EAAAjG,EAAA7C,GACA6C,EAAA7C,GAAA4I,EAAAE,GACAD,GACAA,EAAApF,KAAA,CAAAZ,EAAA7C,EAAA8I,0CCpWA,SAAArH,GAEA,IAAAsH,EAAe1J,EAAQ,GACvB2J,EAAgB3J,EAAQ,GACxB4J,EAAuB5J,EAAQ,GAE/B6J,EAAY7J,EAAQ,GACpBwF,EAAAqE,EAAArE,QACAD,EAAAsE,EAAAtE,SAEAG,GADAH,EAAAsE,EAAAtE,SACAsE,EAAAnE,cACAzC,EAAA4G,EAAA5G,YACA0C,EAAAkE,EAAAlE,WACAxC,EAAA0G,EAAA1G,SACAyC,EAAAiE,EAAAjE,cACArC,EAAAsG,EAAAtG,KACA2C,EAAA2D,EAAA3D,YACAG,EAAAwD,EAAAxD,SACAI,EAAAoD,EAAApD,aACA7C,EAAAiG,EAAAjG,OACA+C,EAAAkD,EAAAlD,WACAQ,EAAA0C,EAAA1C,UACAG,EAAAuC,EAAAvC,MACAW,EAAA4B,EAAA5B,iBACAM,EAAAsB,EAAAtB,gBACAzD,EAAA+E,EAAA/E,iBACA+D,EAAAgB,EAAAhB,SACAS,EAAAO,EAAAP,KAEAQ,EAAwB9J,EAAQ,GAAW+J,WAE3CC,EAAA,2CAAAzF,MAAA,KACA0F,EAAA,gEAEA,SAAAC,IACA,WAAAC,KAIA,IAAA7H,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GACA4H,EAAA9H,EAAA+H,SACAC,EAAAhI,EAAAiI,UAEA,SAAAC,EAAAxE,EAAAvC,GACA,OAAAkC,EAAAlC,GACA,SAAAsC,GACA,OAAAtC,EAAAsC,EAAAC,IAEAvC,EAMA,SAAAf,IA8CA,QAAA+H,KA7CA3H,KAAA4H,WAAA,iBAAAC,YAAAhB,WAEA7G,KAAA8H,cAAA3H,EAAAmH,GACAtH,KAAA+H,eAAA5H,EAAAqH,GACAxH,KAAAgI,uBAAA,KACAhI,KAAAiI,UAAA,KACAjI,KAAAkI,aAAA,KACAlI,KAAAmI,cAAA,KACAnI,KAAAoI,WAAA,KACApI,KAAAqI,eAAA,KACArI,KAAAsI,eAAA,GACAtI,KAAAuI,eAAA,CACAC,OAAA,aACAC,aAAA,GACAC,WAAA,GACAC,cAAA,GACAC,aAAA,GACAC,qBAAA,EACAC,iBAAA,EAGAC,aAAA,IACAC,gBAAA,GACAC,iBAAA,EACAC,YAAA,EACAC,WAAA,GAEAnJ,KAAAoJ,eAAA,EACApJ,KAAAqJ,mBAAA,EACArJ,KAAAsJ,8BAAA3G,MAAAqG,gBAGAhJ,KAAAuJ,iBAAA/J,EAAAgK,SAAA,GACAxJ,KAAAyJ,wBAAA,GACAzJ,KAAA0J,SAAA,GACA1J,KAAA2J,WAAAvC,IACApH,KAAA4J,iBAAA,GACA5J,KAAA6J,aAAA,GACA7J,KAAA8J,mBAAA,KACA9J,KAAA+J,iBACA/J,KAAAgK,UAAAxK,EAAAyK,SACAjK,KAAAkK,UAAAlK,KAAAgK,WAAAhK,KAAAgK,UAAAG,KACAnK,KAAAoK,gBAGApK,KAAAuJ,iBACAvJ,KAAAyJ,wBAAA9B,GAAA3H,KAAAuJ,iBAAA5B,GAUA/H,EAAAV,UAAA,CAKAmL,QAAA,SAEAC,OAAA,EAEA1D,WASA2D,OAAA,SAAAC,EAAAC,GACA,IAAA/K,EAAAM,KAEA,GAAAN,EAAAyI,cAEA,OADAnI,KAAA0K,UAAA,oDACAhL,EAEA,IAAA8K,EAAA,OAAA9K,EAEA,IAAAiL,EAAAjL,EAAA6I,eAGAkC,GACAhK,EAAAgK,EAAA,SAAA5L,EAAAN,GAEA,SAAAM,GAAA,UAAAA,GAAA,SAAAA,EACAa,EAAA4I,eAAAzJ,GAAAN,EAEAoM,EAAA9L,GAAAN,IAKAmB,EAAAkL,OAAAJ,GAIAG,EAAAlC,aAAAnH,KAAA,qBACAqJ,EAAAlC,aAAAnH,KAAA,iDAGAqJ,EAAAlC,aAAA5E,EAAA8G,EAAAlC,cACAkC,EAAAjC,aAAAiC,EAAAjC,WAAA7H,QACAgD,EAAA8G,EAAAjC,YAEAiC,EAAAhC,gBAAAgC,EAAAhC,cAAA9H,QACAgD,EAAA8G,EAAAhC,eAEAgC,EAAA/B,aAAA/E,EAAA8G,EAAA/B,cACA+B,EAAAE,eAAA5F,KAAAxB,IACA,EACAwB,KAAA6F,IAAAH,EAAAE,gBAAA,UAGA,IAAAE,EAAA,CACAC,KAAA,EACAxB,SAAA,EACAyB,KAAA,EACAhB,UAAA,GAGAhB,EAAA0B,EAAA1B,gBACU,oBAAV,GAAU3I,SAAA7C,KAAAwL,GACVA,EAAA7F,EAAA2H,EAAA9B,IACK,IAAAA,IACLA,EAAA8B,GAEAJ,EAAA1B,kBAEA,IAAAiC,EAAA,CACAC,UAAA,GAGAjC,EAAAyB,EAAAzB,WAWA,MAVU,oBAAV,GAAU5I,SAAA7C,KAAAyL,GACVA,EAAA9F,EAAA8H,EAAAhC,IACK,IAAAA,IACLA,EAAAgC,GAEAP,EAAAzB,aAEAtC,EAAAiC,sBAAA8B,EAAA9B,oBAGAnJ,GAWA0L,QAAA,WACA,IAAA1L,EAAAM,KAkBA,OAjBAN,EAAA2L,YAAA3L,EAAA2J,oBACAzC,EAAA0E,OAAAC,UAAA,WACA7L,EAAA8L,wBAAAC,MAAA/L,EAAAgM,aAEAhM,EAAA6I,eAAAW,YAAAxJ,EAAA6I,eAAAW,WAAAiC,UACAzL,EAAAiM,sBAGAjM,EAAA6I,eAAAU,iBAAAvJ,EAAAkM,yBAGAlM,EAAAmM,gBAEAnM,EAAA2J,mBAAA,GAGA1G,MAAAqG,gBAAAtJ,EAAA6I,eAAAS,gBACAhJ,MAQA4K,OAAA,SAAAJ,GACA,IACAsB,EADA9L,KACA+L,UAAAvB,GACAwB,EAAAF,EAAAxF,KAAA2F,YAAA,KACA3F,EAAAwF,EAAAxF,KAAA5C,OAAA,EAAAsI,GAHAhM,KAKAkM,KAAA1B,EALAxK,KAMAoI,WAAA0D,EAAAK,KANAnM,KAOAoM,cAAAN,EAAAO,MAAAP,EAAAO,KAAA3I,OAAA,GAPA1D,KAQAqI,eAAAyD,EAAAxF,KAAA5C,OAAAsI,EAAA,GARAhM,KAUAmI,cAVAnI,KAUAsM,iBAAAR,GAVA9L,KAYAuM,gBAZAvM,KAaAmI,cAAA,IAAA7B,EAAA,OAbAtG,KAaAqI,eAAA,UAIArI,KAAAoK,iBAWAoC,QAAA,SAAA/B,EAAAgC,EAAAC,GAOA,OANA7J,EAAA4H,KACAiC,EAAAD,GAAA,GACAA,EAAAhC,EACAA,OAAAkC,GAGA3M,KAAA4M,KAAAnC,EAAAgC,GAAAhB,MAAAzL,KAAA0M,IAWAE,KAAA,SAAAnC,EAAAgC,EAAAI,GACA,IAAAnN,EAAAM,KAGA,GAAAG,EAAAsM,KAAA5J,EAAA4H,GACA,OAAAA,EAWA,GAPA5H,EAAA4H,KACAgC,EAAAhC,EACAA,OAAAkC,IAKA9J,EAAA4J,GACA,OAAAA,EAIA,IACA,GAAAA,EAAAK,UACA,OAAAL,EAIA,GAAAA,EAAAM,kBACA,OAAAN,EAAAM,kBAEK,MAAA7M,GAIL,OAAAuM,EAGA,SAAAO,IACA,IAAAN,EAAA,GACApP,EAAAoO,UAAA7K,OACAoM,GAAAxC,OAAA,IAAAA,EAAAwC,KAQA,IANAJ,GAAAhK,EAAAgK,IACAA,EAAApB,MAAAzL,KAAA0L,WAKApO,KAAAoP,EAAApP,GAAA2P,EAAAvN,EAAAkN,KAAAnC,EAAAiB,UAAApO,IAAAoO,UAAApO,GAEA,IAKA,OAAAmP,EAAAhB,MAAAzL,KAAA0M,GACO,MAAAxM,GAGP,MAFAR,EAAAwN,qBACAxN,EAAAyN,iBAAAjN,EAAAuK,GACAvK,GAKA,QAAAjB,KAAAwN,EACA3L,EAAA2L,EAAAxN,KACA+N,EAAA/N,GAAAwN,EAAAxN,IAWA,OARA+N,EAAA9N,UAAAuN,EAAAvN,UAEAuN,EAAAM,kBAAAC,EAGAA,EAAAF,WAAA,EACAE,EAAAI,UAAAX,EAEAO,GAQAK,UAAA,WAQA,OAPAzG,EAAA0E,OAAA+B,YAEArN,KAAAsN,mBAEA3K,MAAAqG,gBAAAhJ,KAAAsJ,8BACAtJ,KAAAqJ,mBAAA,EAEArJ,MAUAmN,iBAAA,SAAAI,EAAA9C,GAEA,IAAA+C,GAAA9K,EAAA6K,GACAE,GAAA7K,EAAA2K,GACAG,EAAA9K,EAAA2K,OAAAI,MAEA,GAAAH,GAAAC,GAAAC,EACA,OAAA1N,KAAA4N,eACAL,EACAnK,EACA,CACAyK,eAAA,EACA/H,YAAA,GAEA2E,IAMA7H,EAAA2K,SAAAI,OAGA3N,KAAAgI,uBAAAuF,EAOA,IACA,IAAAO,EAAAlH,EAAAmH,kBAAAR,GACAvN,KAAAgO,iBAAAF,EAAArD,GACK,MAAA/E,GACL,GAAA6H,IAAA7H,EACA,MAAAA,EAIA,OAAA1F,MAUA4N,eAAA,SAAAK,EAAAxD,GAIA,IACAzK,KAAAuI,eAAAE,aAAAyF,OACAlO,KAAAuI,eAAAE,aAAAyF,KAAAD,GAFA,CASA,IAOAV,EAPAtK,EAAAG,EACA,CACA+K,QAAAF,EAAA,IAJAxD,KAAA,IAcA,IACA,UAAA9H,MAAAsL,GACK,MAAAvI,GACL6H,EAAA7H,EAIA6H,EAAA1P,KAAA,KACA,IAAAiQ,EAAAlH,EAAAmH,kBAAAR,GAGAa,EAAAN,QAAA,GAEAO,EAAAD,KAAApI,KAAA,GAEA,KACAhG,KAAAuI,eAAAG,WAAAwF,OACAlO,KAAAuI,eAAAG,WAAAwF,KAAAG,OAMArO,KAAAuI,eAAAI,cAAAuF,MACAlO,KAAAuI,eAAAI,cAAAuF,KAAAG,IAFA,CAOA,GAAArO,KAAAuI,eAAAzC,YAAA2E,KAAA3E,WAAA,CACA2E,EAAArH,EACA,CAGAkL,YAAAL,EAIAJ,gBAAApD,EAAAoD,gBAAA,MAEApD,GAGA,IAAArI,EAAApC,KAAAuO,eAAAT,EAAArD,GACAxH,EAAA6C,WAAA,CAEA1D,SAAAoD,WAOA,OAFAxF,KAAAwO,MAAAvL,GAEAjD,QAGAyO,kBAAA,SAAA/N,GACA,IAAAgO,EAAAtL,EACA,CACAuL,UAAAvH,IAAA,KAEA1G,GAGA,GAAAmC,EAAA7C,KAAAuI,eAAAqG,oBAAA,CACA,IAAAC,EAAA7O,KAAAuI,eAAAqG,mBAAAF,GAEA,GAAAjM,EAAAoM,KAAA/L,EAAA+L,GACAH,EAAAG,OACO,QAAAA,EACP,OAAA7O,KAQA,OAJAA,KAAA6J,aAAAvI,KAAAoN,GACA1O,KAAA6J,aAAAhJ,OAAAb,KAAAuI,eAAAsC,gBACA7K,KAAA6J,aAAAiF,QAEA9O,MAGA+O,UAAA,SAAAC,GACA,IAAAC,EAAA,GAAAC,MAAAzR,KAAAiO,UAAA,GAOA,OALA1L,KAAA0J,SAAApI,KAAA,CAAA0N,EAAAC,IACAjP,KAAAqJ,mBACArJ,KAAA6L,gBAGA7L,MASAmP,eAAA,SAAAhD,GAIA,OAFAnM,KAAAsI,eAAA6D,OAEAnM,MASAoP,gBAAA,SAAAC,GAGA,OAFArP,KAAAsP,cAAA,QAAAD,GAEArP,MASAuP,eAAA,SAAAC,GAGA,OAFAxP,KAAAsP,cAAA,OAAAE,GAEAxP,MAQAyP,aAAA,WAGA,OAFAzP,KAAAsI,eAAA,GAEAtI,MAQA0P,WAAA,WAEA,OAAA7H,KAAA8H,MAAA9I,EAAA7G,KAAAsI,kBASAsH,eAAA,SAAAC,GAGA,OAFA7P,KAAAuI,eAAAsH,cAEA7P,MASA8P,WAAA,SAAAC,GAGA,OAFA/P,KAAAuI,eAAAwH,UAEA/P,MAUAgQ,gBAAA,SAAArP,GACA,IAAAuC,EAAAlD,KAAAuI,eAAA0H,aAEA,OADAjQ,KAAAuI,eAAA0H,aAAAvI,EAAAxE,EAAAvC,GACAX,MAUAkQ,sBAAA,SAAAvP,GACA,IAAAuC,EAAAlD,KAAAuI,eAAAqG,mBAEA,OADA5O,KAAAuI,eAAAqG,mBAAAlH,EAAAxE,EAAAvC,GACAX,MAUAmQ,sBAAA,SAAAxP,GACA,IAAAuC,EAAAlD,KAAAuI,eAAA6H,mBAEA,OADApQ,KAAAuI,eAAA6H,mBAAA1I,EAAAxE,EAAAvC,GACAX,MAYAqQ,aAAA,SAAAC,GAGA,OAFAtQ,KAAAuI,eAAA+H,YAEAtQ,MAQAuQ,cAAA,WACA,OAAAvQ,KAAAgI,wBAQAwI,YAAA,WACA,OAAAxQ,KAAAkI,cAQAmD,QAAA,WACA,QAAArL,KAAA4H,aACA5H,KAAAmI,gBACAnI,KAAAyQ,0BACAzQ,KAAAyQ,yBAAA,EACAzQ,KAAA0K,UAAA,mDAEA,KAKA5K,UAAA,WAIA,IAAA4Q,EAAAlR,EAAAkR,YACAA,GACA1Q,KAAAuK,OAAAmG,EAAAlG,IAAAkG,EAAAnG,QAAAa,WAIAuF,iBAAA,SAAAlG,GACA,GACAnD,EADA,CAOA,IAAAkJ,GAFA/F,KAAA,IAEAmG,SAAA5Q,KAAAwQ,cACA,IAAAA,EACA,UAAA1J,EAAA,mBAGA,IAAA0D,EAAAC,EAAAD,KAAAxK,KAAAkM,KACA,IAAA1B,EACA,UAAA1D,EAAA,eAGA,IAAA+J,EAAAtM,mBACAuM,EAAA,GACAA,GAAA,YAAAD,EAAAL,GACAM,GAAA,QAAAD,EAAArG,GAEA,IAAA2B,EAAA1B,EAAA0B,MAAAnM,KAAAsI,eAAA6D,KACAA,IACAA,EAAAtO,OAAAiT,GAAA,SAAAD,EAAA1E,EAAAtO,OACAsO,EAAA4E,QAAAD,GAAA,UAAAD,EAAA1E,EAAA4E,SAGA,IAAAC,EAAAhR,KAAAsM,iBAAAtM,KAAA+L,UAAAvB,IAEAyG,EAAA3J,EAAA4J,cAAA,UACAD,EAAAE,OAAA,EACAF,EAAAG,IAAAJ,EAAA,yBAAAF,GACAxJ,EAAA+J,MAAA/J,EAAAgK,MAAAC,YAAAN,KAIA/D,mBAAA,WACA,IAAAxN,EAAAM,KACAA,KAAAoJ,gBAAA,EACAoI,WAAA,WAEA9R,EAAA0J,gBAAA,KAIAqI,cAAA,SAAAC,EAAAjH,GAEA,IAAAkH,EAAA9S,EAEA,GAAAmB,KAAA8H,aAAA,CAcA,IAAAjJ,KAZA4L,KAAA,GAEAiH,EAAA,QAAAA,EAAAhO,OAAA,KAAAkO,cAAAF,EAAAhO,OAAA,GAEA4D,EAAAuK,aACAF,EAAArK,EAAAuK,YAAA,eACAC,UAAAJ,GAAA,OAEAC,EAAArK,EAAAyK,qBACAL,YAGAjH,EACA3J,EAAA2J,EAAA5L,KACA8S,EAAA9S,GAAA4L,EAAA5L,IAGA,GAAAyI,EAAAuK,YAEAvK,EAAA0K,cAAAL,QAIA,IACArK,EAAA2K,UAAA,KAAAN,EAAAD,UAAAnQ,cAAAoQ,GACO,MAAAzR,OAYPgS,wBAAA,SAAAC,GACA,IAAAzS,EAAAM,KACA,gBAAA2R,GASA,GALAjS,EAAAqK,iBAAA,KAKArK,EAAAoK,qBAAA6H,EAAA,CAQA,IAAAS,EANA1S,EAAAoK,mBAAA6H,EAOA,IACAS,EAAAjN,EAAAwM,EAAAS,QACO,MAAAlS,GACPkS,EAAA,YAGA1S,EAAA+O,kBAAA,CACA4D,SAAA,MAAAF,EACAhE,QAAAiE,OAUAE,sBAAA,WACA,IAAA5S,EAAAM,KAMA,gBAAA2R,GACA,IAAAS,EACA,IACAA,EAAAT,EAAAS,OACO,MAAAlS,GAGP,OAEA,IAAAmB,EAAA+Q,KAAA/Q,QAKA,GACAA,IACA,UAAAA,GAAA,aAAAA,GAAA+Q,EAAAG,mBAFA,CAQA,IAAAC,EAAA9S,EAAAqK,iBACAyI,GACA9S,EAAAwS,wBAAA,QAAAxS,CAAAiS,GAEAc,aAAAD,GACA9S,EAAAqK,iBAAAyH,WAAA,WACA9R,EAAAqK,iBAAA,MAjCA,QA4CA2I,kBAAA,SAAAC,EAAAC,GACA,IAAAC,EAAA9M,EAAA/F,KAAAgK,UAAAG,MACA2I,EAAA/M,EAAA6M,GACAG,EAAAhN,EAAA4M,GAKA3S,KAAAkK,UAAA0I,EAIAC,EAAAzM,WAAA0M,EAAA1M,UAAAyM,EAAAxM,OAAAyM,EAAAzM,OACAuM,EAAAE,EAAAvM,UACAsM,EAAAzM,WAAA2M,EAAA3M,UAAAyM,EAAAxM,OAAA0M,EAAA1M,OACAsM,EAAAI,EAAAxM,UAEAvG,KAAAyO,kBAAA,CACA4D,SAAA,aACApP,KAAA,CACA2P,KACAD,WASAhH,oBAAA,WACA,IAAAjM,EAAAM,KAEAgT,EAAAtT,EAAAkK,iBAEA,SAAAqJ,EAAAtM,GACA,gBAAAuM,EAAA1U,GAKA,IADA,IAAAkO,EAAA,IAAAyG,MAAAzH,UAAA7K,QACAvD,EAAA,EAAuBA,EAAAoP,EAAA7L,SAAiBvD,EACxCoP,EAAApP,GAAAoO,UAAApO,GAEA,IAAA8V,EAAA1G,EAAA,GAQA,OAPA7J,EAAAuQ,KACA1G,EAAA,GAAAhN,EAAAkN,KAAAwG,IAMAzM,EAAA8E,MACA9E,EAAA8E,MAAAzL,KAAA0M,GAEA/F,EAAA+F,EAAA,GAAAA,EAAA,KAKA,IAAAzD,EAAAjJ,KAAAuI,eAAAU,gBAEA,SAAAoK,EAAA/T,GACA,IAAAgU,EAAA9T,EAAAF,IAAAE,EAAAF,GAAAJ,UACAoU,KAAAnU,gBAAAmU,EAAAnU,eAAA,sBACAqH,EACA8M,EACA,mBACA,SAAA3M,GACA,gBAAAwL,EAAAe,EAAAK,EAAAC,GAEA,IACAN,KAAAO,cACAP,EAAAO,YAAA/T,EAAAkN,KAAAsG,EAAAO,cAEe,MAAAC,IAMf,IAAAC,EAAAC,EAAAC,EA6BA,OA1BA5K,GACAA,EAAAgC,MACA,gBAAA3L,GAAA,SAAAA,KAIAsU,EAAAlU,EAAAwS,wBAAA,SACA2B,EAAAnU,EAAA4S,wBACAqB,EAAA,SAAAhC,GAIA,GAAAA,EAAA,CAEA,IAAAD,EACA,IACAA,EAAAC,EAAA9L,KACmB,MAAA3F,GAGnB,OAEA,gBAAAwR,EAAAkC,EAAAjC,GACA,aAAAD,EAAAmC,EAAAlC,QAAA,KAGAhL,EAAAlJ,KACAuC,KACAmS,EACAzS,EAAAkN,KAAAsG,OAAAvG,EAAAgH,GACAJ,EACAC,KAIAR,GAEAxM,EACA8M,EACA,sBACA,SAAA3M,GACA,gBAAAgL,EAAAuB,EAAAK,EAAAC,GACA,IACAN,QAAAnG,kBAAAmG,EAAAnG,kBAAAmG,GACe,MAAAhT,IAGf,OAAAyG,EAAAlJ,KAAAuC,KAAA2R,EAAAuB,EAAAK,EAAAC,KAGAR,IAKAxM,EAAAhH,EAAA,aAAAyT,EAAAD,GACAxM,EAAAhH,EAAA,cAAAyT,EAAAD,GACAxT,EAAAsU,uBACAtN,EACAhH,EACA,wBACA,SAAAmH,GACA,gBAAAoN,GACA,OAAApN,EAAAjH,EAAAkN,KAAAmH,MAGAf,GAqCA,IA/BA,IAAAgB,EAAA,CACA,cACA,SACA,OACA,mBACA,iBACA,oBACA,kBACA,cACA,aACA,qBACA,cACA,aACA,iBACA,eACA,kBACA,cACA,cACA,eACA,qBACA,SACA,YACA,eACA,gBACA,YACA,kBACA,SACA,iBACA,4BACA,wBAEA1W,EAAA,EAAmBA,EAAA0W,EAAAnT,OAAyBvD,IAC5C+V,EAAAW,EAAA1W,KAaAsO,uBAAA,WACA,IAAAlM,EAAAM,KACAiJ,EAAAjJ,KAAAuI,eAAAU,gBAEA+J,EAAAtT,EAAAkK,iBAEA,SAAAqK,EAAAC,EAAAlJ,GACAkJ,KAAAlJ,GAAAnI,EAAAmI,EAAAkJ,KACA1N,EAAAwE,EAAAkJ,EAAA,SAAAvN,GACA,OAAAjH,EAAAkN,KAAAjG,KAKA,GAAAsC,EAAA+B,KAAA,mBAAAxL,EAAA,CACA,IAAA2U,EAAAC,eAAAlV,UACAsH,EACA2N,EACA,OACA,SAAAE,GACA,gBAAA1M,EAAA3B,GAYA,OARA3F,EAAA2F,KAAA,IAAAA,EAAAsO,QAAA5U,EAAA0I,cACApI,KAAAuU,YAAA,CACA5M,SACA3B,MACAwO,YAAA,OAIAH,EAAA5I,MAAAzL,KAAA0L,aAGAsH,GAGAxM,EACA2N,EACA,OACA,SAAAM,GACA,gBAAAxR,GAEA,IAAA+H,EAAAhL,KAEA,SAAA0U,IACA,GAAA1J,EAAAuJ,aAAA,IAAAvJ,EAAA2J,WAAA,CACA,IAGA3J,EAAAuJ,YAAAC,YAAAxJ,EAAA4J,OACiB,MAAA1U,IAIjBR,EAAA+O,kBAAA,CACA5I,KAAA,OACAwM,SAAA,MACApP,KAAA+H,EAAAuJ,eAMA,IADA,IAAAM,EAAA,kCACAjU,EAAA,EAA2BA,EAAAiU,EAAAhU,OAAkBD,IAC7CqT,EAAAY,EAAAjU,GAAAoK,GAiBA,MAdA,uBAAAA,GAAAnI,EAAAmI,EAAA8J,oBACAtO,EACAwE,EACA,qBACA,SAAArE,GACA,OAAAjH,EAAAkN,KAAAjG,OAAAgG,EAAA+H,KAMA1J,EAAA8J,mBAAAJ,EAGAD,EAAAhJ,MAAAzL,KAAA0L,aAGAsH,GAIA/J,EAAA+B,KAAA,UAAAxL,GACAgH,EACAhH,EACA,QACA,SAAAuV,GACA,gBAAA7B,EAAA1U,GAKA,IADA,IAAAkO,EAAA,IAAAyG,MAAAzH,UAAA7K,QACAvD,EAAA,EAA2BA,EAAAoP,EAAA7L,SAAiBvD,EAC5CoP,EAAApP,GAAAoO,UAAApO,GAGA,IAEA0I,EAFAgP,EAAAtI,EAAA,GACA/E,EAAA,MAGA,iBAAAqN,EACAhP,EAAAgP,EACa,YAAAxV,GAAAwV,aAAAxV,EAAAyV,SACbjP,EAAAgP,EAAAhP,IACAgP,EAAArN,SACAA,EAAAqN,EAAArN,SAGA3B,EAAA,GAAAgP,EAGAtI,EAAA,IAAAA,EAAA,GAAA/E,SACAA,EAAA+E,EAAA,GAAA/E,QAGA,IAAAuN,EAAA,CACAvN,SACA3B,MACAwO,YAAA,MASA,OANA9U,EAAA+O,kBAAA,CACA5I,KAAA,OACAwM,SAAA,QACApP,KAAAiS,IAGAH,EAAAtJ,MAAAzL,KAAA0M,GAAAyI,KAAA,SAAAC,GAGA,OAFAF,EAAAV,YAAAY,EAAAR,OAEAQ,MAIApC,GAMA/J,EAAAgC,KAAAjL,KAAA8H,eACAR,EAAA+N,kBACA/N,EAAA+N,iBAAA,QAAA3V,EAAAwS,wBAAA,aACA5K,EAAA+N,iBAAA,WAAA3V,EAAA4S,yBAAA,KAGAhL,EAAAgO,YAAA,UAAA5V,EAAAwS,wBAAA,UACA5K,EAAAgO,YAAA,aAAA5V,EAAA4S,2BAQA,IAAAiD,EAAA/V,EAAA+V,OAEAC,IADAD,KAAAE,KAAAF,EAAAE,IAAAC,UAGAlW,EAAAmW,SACAA,QAAAC,WACAD,QAAAE,aACA,GAAA5M,EAAAgB,UAAAuL,EAAA,CAEA,IAAAM,EAAAtW,EAAAuW,WACAvW,EAAAuW,WAAA,WACA,IAAAC,EAAAtW,EAAAsK,UAAAG,KAGA,GAFAzK,EAAAgT,kBAAAhT,EAAAwK,UAAA8L,GAEAF,EACA,OAAAA,EAAArK,MAAAzL,KAAA0L,YAIA,IAAAuK,EAAA,SAAAC,GAGA,kBACA,IAAAlQ,EAAA0F,UAAA7K,OAAA,EAAA6K,UAAA,QAAAiB,EAQA,OALA3G,GAEAtG,EAAAgT,kBAAAhT,EAAAwK,UAAAlE,EAAA,IAGAkQ,EAAAzK,MAAAzL,KAAA0L,aAIAlF,EAAAmP,QAAA,YAAAM,EAAAjD,GACAxM,EAAAmP,QAAA,eAAAM,EAAAjD,GAGA,GAAA/J,EAAAO,SAAA,YAAAhK,GAAAgK,QAAA2M,IAAA,CAEA,IAAAC,EAAA,SAAAnI,EAAAhL,GACAvD,EAAA+O,kBAAA,CACAN,QAAAF,EACAoI,MAAApT,EAAAoT,MACAhE,SAAA,aAIA5R,EAAA,+CAAAsC,EAAAsT,GACArP,EAAAwC,QAAA6M,EAAAD,OAKA9I,iBAAA,WAGA,IADA,IAAAgJ,EACAtW,KAAA4J,iBAAA/I,QAAA,CAGA,IAAAH,GAFA4V,EAAAtW,KAAA4J,iBAAAkF,SAEA,GACAjR,EAAAyY,EAAA,GACA3P,EAAA2P,EAAA,GAEA5V,EAAA7C,GAAA8I,IAIAkF,cAAA,WACA,IAAAnM,EAAAM,KAGAS,EAAAT,KAAA0J,SAAA,SAAA3G,EAAAiM,GACA,IAAAuH,EAAAvH,EAAA,GACAtC,EAAAsC,EAAA,GACAuH,EAAA9K,MAAA/L,EAAA,CAAAA,GAAA8W,OAAA9J,OAIAX,UAAA,SAAAvI,GACA,IAAA9F,EAAAyJ,EAAAsP,KAAAjT,GACAgH,EAAA,GACAlN,EAAA,EAEA,IACA,KAAAA,KAAAkN,EAAAtD,EAAA5J,IAAAI,EAAAJ,IAAA,GACK,MAAA4C,GACL,UAAA4G,EAAA,gBAAAtD,GAGA,GAAAgH,EAAA6B,OAAArM,KAAAuI,eAAAmO,eACA,UAAA5P,EACA,kFAIA,OAAA0D,GAGA8B,iBAAA,SAAAR,GAEA,IAAAkF,EAAA,KAAAlF,EAAAzF,MAAAyF,EAAA6K,KAAA,IAAA7K,EAAA6K,KAAA,IAKA,OAHA7K,EAAA1F,WACA4K,EAAAlF,EAAA1F,SAAA,IAAA4K,GAEAA,GAGAxF,wBAAA,WAEAxL,KAAAoJ,gBACApJ,KAAAgO,iBAAAvC,MAAAzL,KAAA0L,YAIAsC,iBAAA,SAAA4I,EAAAnM,GACA,IAAArI,EAAApC,KAAAuO,eAAAqI,EAAAnM,GAEAzK,KAAAyR,cAAA,UACAmF,YACAnM,YAGAzK,KAAA6W,kBACAD,EAAA/Y,KACA+Y,EAAAzI,QACAyI,EAAA5Q,IACA4Q,EAAArU,OACAH,EACAqI,IAIA8D,eAAA,SAAAqI,EAAAnM,GACA,IAAA/K,EAAAM,KACAoC,EAAA,GACA,GAAAwU,EAAA9I,OAAA8I,EAAA9I,MAAAjN,SACAJ,EAAAmW,EAAA9I,MAAA,SAAAxQ,EAAAwQ,GACA,IAAAgJ,EAAApX,EAAAqX,gBAAAjJ,EAAA8I,EAAA5Q,KACA8Q,GACA1U,EAAAd,KAAAwV,KAKArM,KAAAoD,gBACA,QAAAjN,EAAA,EAAuBA,EAAA6J,EAAAoD,gBAAAjN,EAAAwB,EAAAvB,OAAiDD,IACxEwB,EAAAxB,GAAAoW,QAAA,EAKA,OADA5U,IAAA8M,MAAA,EAAAlP,KAAAuI,eAAAS,kBAIA+N,gBAAA,SAAAD,EAAAG,GAEA,IAAAC,EAAA,CACA5U,SAAAwU,EAAA9Q,IACAzD,OAAAuU,EAAAK,KACA3U,MAAAsU,EAAAM,OACAC,SAAAP,EAAArK,MAAA,KAuBA,OAfAqK,EAAA9Q,MACAkR,EAAA5U,SAAA2U,GAGAC,EAAAF,SAGAhX,KAAAuI,eAAAK,aAAAsF,OACAlO,KAAAuI,eAAAK,aAAAsF,KAAAgJ,EAAA5U,WAEA,qBAAA4L,KAAAgJ,EAAA,WAEA,qBAAAhJ,KAAAgJ,EAAA5U,WAGA4U,GAGAL,kBAAA,SAAAhR,EAAAsI,EAAAE,EAAA9L,EAAAH,EAAAqI,GACA,IASA3E,EATAwR,GAAAzR,IAAA,UAAAsI,GAAA,IACA,KACAnO,KAAAuI,eAAAE,aAAAyF,OACAlO,KAAAuI,eAAAE,aAAAyF,KAAAC,KACAnO,KAAAuI,eAAAE,aAAAyF,KAAAoJ,MAOAlV,KAAAvB,QACAwN,EAAAjM,EAAA,GAAAE,UAAA+L,EAGAjM,EAAAoD,UACAM,EAAA,CAAoB1D,WACfiM,IACLvI,EAAA,CACA1D,OAAA,CACA,CACAE,SAAA+L,EACA9L,SACAyU,QAAA,QAOAhX,KAAAuI,eAAAG,WAAAwF,OACAlO,KAAAuI,eAAAG,WAAAwF,KAAAG,OAMArO,KAAAuI,eAAAI,cAAAuF,MACAlO,KAAAuI,eAAAI,cAAAuF,KAAAG,KAFA,CAOA,IAAApL,EAAAG,EACA,CAEAmU,UAAA,CACA3R,OAAA,CACA,CACAC,OACAtH,MAAA4P,EACArI,gBAIA0R,QAAAnJ,GAEA5D,GAIAzK,KAAAwO,MAAAvL,KAGAwU,YAAA,SAAAxU,GAGA,IAAAQ,EAAAzD,KAAAuI,eAAAO,iBAIA,GAHA7F,EAAAkL,UACAlL,EAAAkL,QAAA5K,EAAAN,EAAAkL,QAAA1K,IAEAR,EAAAsU,UAAA,CACA,IAAAA,EAAAtU,EAAAsU,UAAA3R,OAAA,GACA2R,EAAAhZ,MAAAgF,EAAAgU,EAAAhZ,MAAAkF,GAGA,IAAAiU,EAAAzU,EAAAyU,QAaA,OAZAA,IACAA,EAAA1R,MACA0R,EAAA1R,IAAAzC,EAAAmU,EAAA1R,IAAAhG,KAAAuI,eAAAQ,eAEA2O,EAAAC,UACAD,EAAAC,QAAApU,EAAAmU,EAAAC,QAAA3X,KAAAuI,eAAAQ,gBAIA9F,EAAA2U,aAAA3U,EAAA2U,YAAAhS,QACA5F,KAAA6X,iBAAA5U,EAAA2U,aAEA3U,GAMA4U,iBAAA,SAAAD,GAQA,IALA,IACAE,EACApJ,EACAzL,EAHA8U,EAAA,oBAKAza,EAAA,EAAmBA,EAAAsa,EAAAhS,OAAA/E,SAA+BvD,EAElD,IADAoR,EAAAkJ,EAAAhS,OAAAtI,IAEA6B,eAAA,SACAsD,EAAAiM,EAAAzL,QACAU,EAAA+K,EAAAzL,MAHA,CAOAA,EAAAG,EAAA,GAA2BsL,EAAAzL,MAC3B,QAAArC,EAAA,EAAqBA,EAAAmX,EAAAlX,SAAqBD,EAC1CkX,EAAAC,EAAAnX,GACAqC,EAAA9D,eAAA2Y,IAAA7U,EAAA6U,KACA7U,EAAA6U,GAAAvU,EAAAN,EAAA6U,GAAA9X,KAAAuI,eAAAQ,eAGA6O,EAAAhS,OAAAtI,GAAA2F,SAIA+U,aAAA,WACA,GAAAhY,KAAA+H,eAAA/H,KAAA8H,aAAA,CACA,IAAAmQ,EAAA,GAkBA,OAhBAjY,KAAA+H,eAAAP,EAAA0Q,YACAD,EAAAE,QAAA,CACAC,aAAA3Q,UAAAyQ,YAIAlY,KAAA8H,eACAR,EAAA2C,UAAA3C,EAAA2C,SAAAE,OACA8N,EAAAjS,IAAAsB,EAAA2C,SAAAE,MAEA7C,EAAA+Q,WACAJ,EAAAE,UAAAF,EAAAE,QAAA,IACAF,EAAAE,QAAAR,QAAArQ,EAAA+Q,WAIAJ,IAGA7N,cAAA,WACApK,KAAAsY,iBAAA,EACAtY,KAAAuY,cAAA,MAGAC,eAAA,WACA,OAAAxY,KAAAsY,kBAAAlR,IAAApH,KAAAuY,cAAAvY,KAAAsY,kBAYAG,cAAA,SAAAC,GACA,IAAAC,EAAA3Y,KAAAiI,UAEA,SACA0Q,GACAD,EAAAvK,UAAAwK,EAAAxK,SACAuK,EAAAlB,UAAAmB,EAAAnB,WAKAkB,EAAA5S,YAAA6S,EAAA7S,WACA9D,EAAA0W,EAAA5S,WAAA6S,EAAA7S,aACK4S,EAAAnB,YAAAoB,EAAApB,WAEL9R,EAAAiT,EAAAnB,UAAAoB,EAAApB,aAMAqB,iBAAA,SAAAlB,GAEA,IAAA1X,KAAAwY,iBAAA,CAIA,IAAA5D,EAAA8C,EAAA9C,OAKA,SAAAA,GAAA,MAAAA,GAAA,MAAAA,EAAA,CAEA,IAAAiE,EACA,IAGAA,EAAAnB,EAAAoB,kBAAA,eACAD,EAAA,IAAAE,SAAAF,EAAA,IACK,MAAA3Y,IAILF,KAAAsY,iBAAAO,IAIA,EAAA7Y,KAAAsY,kBAAA,KAEAtY,KAAAuY,cAAAnR,OAGAoH,MAAA,SAAAvL,GACA,IAAA0H,EAAA3K,KAAAuI,eAEAyQ,EAAA,CACAC,QAAAjZ,KAAAqI,eACAG,OAAAmC,EAAAnC,OACA0Q,SAAA,cAEAjB,EAAAjY,KAAAgY,eAEAC,IACAe,EAAAtB,QAAAO,GAIAhV,EAAA4K,uBAAA5K,EAAA4K,gBAEA5K,EAAAG,EAAA4V,EAAA/V,IAGAuM,KAAApM,IAAA,GAA0CpD,KAAAsI,eAAAkH,MAAAvM,EAAAuM,MAC1CvM,EAAAoM,MAAAjM,IAAA,GAA2CpD,KAAAsI,eAAA+G,OAAApM,EAAAoM,OAG3CpM,EAAAoM,MAAA,oBAAAjI,IAAApH,KAAA2J,WAEA3J,KAAA6J,cAAA7J,KAAA6J,aAAAhJ,OAAA,IAGAoC,EAAA2U,YAAA,CACAhS,OAAA,GAAAsJ,MAAAzR,KAAAuC,KAAA6J,aAAA,KAKA/G,EAAAG,EAAAuM,cAAAvM,EAAAuM,KAEAxP,KAAAsI,eAAA6D,OAEAlJ,EAAAkJ,KAAAnM,KAAAsI,eAAA6D,MAIAxB,EAAAkF,cAAA5M,EAAA4M,YAAAlF,EAAAkF,aAGAlF,EAAAoF,UAAA9M,EAAA8M,QAAApF,EAAAoF,SAGApF,EAAAwO,aAAAlW,EAAAmW,YAAAzO,EAAAwO,YAEAtW,EAAA8H,EAAAsF,gBACAhN,EAAA0H,EAAAsF,aAAAhN,OAIAA,IAAAH,EAAAG,KAMAJ,EAAA8H,EAAAyF,sBACAzF,EAAAyF,mBAAAnN,KAOAjD,KAAAwY,iBACAxY,KAAA0K,UAAA,8CAAAzH,GAIA,iBAAA0H,EAAAxB,WACAlE,KAAAC,SAAAyF,EAAAxB,YACAnJ,KAAAqZ,sBAAApW,GAGAjD,KAAAqZ,sBAAApW,MAIAqW,SAAA,WACA,OAAA9U,KAGA6U,sBAAA,SAAApW,EAAAtC,GACA,IAAAjB,EAAAM,KACA2K,EAAA3K,KAAAuI,eAEA,GAAAvI,KAAAqL,UAQA,GALApI,EAAAjD,KAAAyX,YAAAxU,GAKAjD,KAAAuI,eAAAgR,kBAAAvZ,KAAAyY,cAAAxV,GAAA,CAQAjD,KAAAkI,aAAAjF,EAAAuW,WAAAvW,EAAAuW,SAAAxZ,KAAAsZ,YAGAtZ,KAAAiI,UAAAhF,EAEAjD,KAAA0K,UAAA,+BAAAzH,GAEA,IAAAwW,EAAA,CACAC,eAAA,IACAC,cAAA,YAAA3Z,KAAAqK,QACAuP,WAAA5Z,KAAAoI,YAGApI,KAAAoM,gBACAqN,EAAAI,cAAA7Z,KAAAoM,eAGA,IAAAmL,EAAAtU,EAAAsU,WAAAtU,EAAAsU,UAAA3R,OAAA,GACA5F,KAAAyO,kBAAA,CACA4D,SAAA,SACAlE,QAAAoJ,GACAA,EAAA1R,KAAA0R,EAAA1R,KAAA,SAAA0R,EAAAhZ,MACA0E,EAAAkL,QACAqL,SAAAvW,EAAAuW,SACAnD,MAAApT,EAAAoT,OAAA,UAGA,IAAArQ,EAAAhG,KAAAuM,iBACA5B,EAAA2F,WAAAtQ,KAAA8Z,cAAArc,KAAAuC,KAAA,CACAgG,MACAyT,OACAxW,OACAwH,QAAAE,EACAoP,UAAA,WACAra,EAAA0K,gBAEA1K,EAAA+R,cAAA,WACAxO,OACAmO,IAAApL,IAEArF,QAEAqZ,QAAA,SAAArM,GACAjO,EAAAgL,UAAA,2CAAAiD,GAEAA,EAAA+J,SACAhY,EAAAkZ,iBAAAjL,EAAA+J,SAGAhY,EAAA+R,cAAA,WACAxO,OACAmO,IAAApL,IAEA2H,KAAA,IAAAhL,MAAA,sDACAhC,KAAAgN,WA7DA3N,KAAA0K,UAAA,sCAAAzH,IAkEA6W,aAAA,SAAAG,GACA,IAAAvC,EAAAlY,EAAA4U,gBAAA,IAAA5U,EAAA4U,eACA,GAAAsD,IAGA,oBAAAA,GAAA,oBAAAwC,gBAEA,CAEA,IAAAlU,EAAAiU,EAAAjU,IAEA,oBAAA0R,EACAA,EAAA5C,mBAAA,WACA,OAAA4C,EAAA/C,WAES,SAAA+C,EAAA9C,OACTqF,EAAAF,WAAAE,EAAAF,iBACS,GAAAE,EAAAD,QAAA,CACT,IAAAtG,EAAA,IAAA/Q,MAAA,sBAAA+U,EAAA9C,QACAlB,EAAAgE,UACAuC,EAAAD,QAAAtG,MAIAgE,EAAA,IAAAwC,eAGAlU,IAAA9B,QAAA,eAGA+V,EAAAF,YACArC,EAAAyC,OAAAF,EAAAF,WAEAE,EAAAD,UACAtC,EAAA0C,QAAA,WACA,IAAA1G,EAAA,IAAA/Q,MAAA,qCACA+Q,EAAAgE,UACAuC,EAAAD,QAAAtG,MAOAgE,EAAA2C,KAAA,OAAArU,EAAA,IAAA3B,EAAA4V,EAAAR,OACA/B,EAAA4C,KAAAzT,EAAAoT,EAAAhX,SAGAyH,UAAA,SAAA2L,GACArW,KAAAyJ,wBAAA4M,IAAArW,KAAAsK,OAEArK,SAAAf,UAAAuM,MAAAhO,KACAuC,KAAAyJ,wBAAA4M,GACArW,KAAAuJ,iBACA,GAAA2F,MAAAzR,KAAAiO,UAAA,KAKA4D,cAAA,SAAAzQ,EAAA2N,GACArM,EAAAqM,UACAxM,KAAAsI,eAAAzJ,GAEAmB,KAAAsI,eAAAzJ,GAAAuE,EAAApD,KAAAsI,eAAAzJ,IAAA,GAA2E2N,KAM3E5M,EAAAV,UAAAqb,QAAA3a,EAAAV,UAAAiQ,eACAvP,EAAAV,UAAAsb,kBAAA5a,EAAAV,UAAA4Q,WAEAzS,EAAAD,QAAAwC,sCCr4DA,SAAAN,GAAA,IAAAyH,EAAY7J,EAAQ,GAYpB0J,EAAA,CACAiC,qBAAA,EACAyB,OAAA,GAIA9K,EACA,oBAAAC,OACAA,YACA,IAAAH,IAAA,oBAAAI,UAAA,GAGA+a,EAAA,GAAAvL,MACAwL,EAAA,IAGAC,EAAA,0GAEA,SAAAC,IACA,0BAAArT,UAAA,MAAAA,SAAA0C,SAAA,GAEA1C,SAAA0C,SAAAE,KA0CAvD,EAAA0E,OAAA,WACA,IA0DAuP,EAAAC,EA1DAC,EAAA,GACAC,EAAA,KACAzK,EAAA,KACA0K,EAAA,KAmCA,SAAAC,EAAApN,EAAAqN,GACA,IAAA5D,EAAA,KACA,IAAA4D,GAAAvU,EAAAiC,oBAAA,CAGA,QAAAvL,KAAAyd,EACA,GAAAA,EAAA5b,eAAA7B,GACA,IACAyd,EAAAzd,GAAAmO,MAAA,MAAAqC,GAAA0I,OAAAiE,EAAAhd,KAAAiO,UAAA,KACS,MAAA0P,GACT7D,EAAA6D,EAKA,GAAA7D,EACA,MAAAA,GAiBA,SAAA8D,EAAAlN,EAAAnI,EAAAsV,EAAAC,EAAAhO,GAGA,GAAA0N,EACArU,EAAAmH,kBAAAyN,oCACAP,EACAjV,EACAsV,EACAnN,GAEAsN,SACK,GAAAlO,GAAAxG,EAAArE,QAAA6K,GAOL2N,EADAtU,EAAAmH,kBAAAR,IACA,OACK,CACL,IAUAmO,EAVAzR,EAAA,CACAjE,MACAmR,KAAAmE,EACAlE,OAAAmE,GAGA1d,OAAA8O,EACAsB,EAAAE,EAEA,GAAY,oBAAZ,GAAY7N,SAAA7C,KAAA0Q,IACZuN,EAAAvN,EAAAlI,MAAA0U,MAEA9c,EAAA6d,EAAA,GACAzN,EAAAyN,EAAA,IAIAzR,EAAAwC,KAAAiO,EAQAQ,EANA,CACArd,OACAsQ,QAAAF,EACAjI,IAAA4U,IACA9M,MAAA,CAAA7D,KAEA,GAGA,QAAA4Q,GACAA,EAAApP,MAAAzL,KAAA0L,WAwBA,SAAA+P,IACA,IAAAE,EAAAV,EACAW,EAAAZ,EACAA,EAAA,KACAC,EAAA,KACA1K,EAAA,KACA2K,EAAAzP,MAAA,MAAAkQ,GAAA,GAAAnF,OAAAoF,IAUA,SAAAtQ,EAAAiC,EAAAsO,GACA,IAAAnP,EAAA+N,EAAAhd,KAAAiO,UAAA,GACA,GAAAuP,EAAA,CACA,GAAA1K,IAAAhD,EACA,OAEAkO,IAIA,IAAA3N,EAAAlH,EAAAmH,kBAAAR,GAeA,GAdA0N,EAAAnN,EACAyC,EAAAhD,EACAyN,EAAAtO,EAMA8E,WAAA,WACAjB,IAAAhD,GACAkO,KAEK3N,EAAAgO,WAAA,QAEL,IAAAD,EACA,MAAAtO,EAOA,OAHAjC,EAAAC,UArLA,SAAAwQ,GAsHAjB,IAGAD,EAAArb,EAAA4a,QACA5a,EAAA4a,QAAAiB,EACAP,GAAA,GAzHAC,EAAAzZ,KAAAya,IAoLAzQ,EAAA0Q,YA7KA,SAAAD,GACA,QAAAze,EAAAyd,EAAAla,OAAA,EAAqCvD,GAAA,IAAQA,EAC7Cyd,EAAAzd,KAAAye,GACAhB,EAAAkB,OAAA3e,EAAA,IA2KAgO,EAAA+B,UAnKA,WA2GAyN,IAGAtb,EAAA4a,QAAAS,EACAC,GAAA,EACAD,OAAAlO,GA9GAoO,EAAA,IAkKAzP,EAlMA,GAwPA1E,EAAAmH,kBAAA,WA4CA,SAAAmO,EAAA3O,GACA,YAAAA,EAAAO,OAAAP,EAAAO,MAAA,CAeA,IAbA,IAQAqO,EACAC,EACAC,EAVA9G,EAAA,qIACA+G,EAAA,kIACAC,EAAA,gHAEAC,EAAA,gDACAC,EAAA,gCACAC,EAAAnP,EAAAO,MAAArM,MAAA,MACAqM,EAAA,GAMAxQ,GAFA,sBAAAmZ,KAAAlJ,EAAAY,SAEA,GAAAvN,EAAA8b,EAAA7b,OAAqCvD,EAAAsD,IAAOtD,EAAA,CAC5C,GAAA8e,EAAA7G,EAAAkB,KAAAiG,EAAApf,IAAA,CACA,IAAAqf,EAAAP,EAAA,QAAAA,EAAA,GAAA9H,QAAA,UACA8H,EAAA,QAAAA,EAAA,GAAA9H,QAAA,UACA6H,EAAAM,EAAAhG,KAAA2F,EAAA,OAEAA,EAAA,GAAAD,EAAA,GACAC,EAAA,GAAAD,EAAA,GACAC,EAAA,GAAAD,EAAA,IAEAE,EAAA,CACArW,IAAA2W,EAAA,KAAAP,EAAA,GACA3P,KAAA2P,EAAA,IAAA1B,EACAhO,KAAAiQ,EAAA,CAAAP,EAAA,OACAjF,KAAAiF,EAAA,IAAAA,EAAA,QACAhF,OAAAgF,EAAA,IAAAA,EAAA,cAEO,GAAAA,EAAAG,EAAA9F,KAAAiG,EAAApf,IACP+e,EAAA,CACArW,IAAAoW,EAAA,GACA3P,KAAA2P,EAAA,IAAA1B,EACAhO,KAAA,GACAyK,MAAAiF,EAAA,GACAhF,OAAAgF,EAAA,IAAAA,EAAA,aAEO,MAAAA,EAAAE,EAAA7F,KAAAiG,EAAApf,KAsBP,SArBA8e,EAAA,IAAAA,EAAA,GAAA9H,QAAA,gBACA6H,EAAAK,EAAA/F,KAAA2F,EAAA,MAEAA,EAAA,GAAAD,EAAA,GACAC,EAAA,GAAAD,EAAA,GACAC,EAAA,SACS,IAAA9e,GAAA8e,EAAA,aAAA7O,EAAAqP,eAKT9O,EAAA,GAAAsJ,OAAA7J,EAAAqP,aAAA,GAEAP,EAAA,CACArW,IAAAoW,EAAA,GACA3P,KAAA2P,EAAA,IAAA1B,EACAhO,KAAA0P,EAAA,GAAAA,EAAA,GAAA3a,MAAA,QACA0V,KAAAiF,EAAA,IAAAA,EAAA,QACAhF,OAAAgF,EAAA,IAAAA,EAAA,UAMAC,EAAA5P,MAAA4P,EAAAlF,OACAkF,EAAA5P,KAAAiO,GAGA5M,EAAAxM,KAAA+a,GAGA,OAAAvO,EAAAjN,OAIA,CACAhD,KAAA0P,EAAA1P,KACAsQ,QAAAZ,EAAAY,QACAnI,IAAA4U,IACA9M,SAPA,MAwBA,SAAA0N,EAAA5E,EAAA5Q,EAAAsV,EAAAnN,GACA,IAAA0O,EAAA,CACA7W,MACAmR,KAAAmE,GAGA,GAAAuB,EAAA7W,KAAA6W,EAAA1F,KAAA,CAOA,GANAP,EAAAkF,YAAA,EAEAe,EAAApQ,OACAoQ,EAAApQ,KAAAiO,GAGA9D,EAAA9I,MAAAjN,OAAA,GACA+V,EAAA9I,MAAA,GAAA9H,MAAA6W,EAAA7W,IAAA,CACA,GAAA4Q,EAAA9I,MAAA,GAAAqJ,OAAA0F,EAAA1F,KACA,SACW,IACXP,EAAA9I,MAAA,GAAAqJ,MACAP,EAAA9I,MAAA,GAAArB,OAAAoQ,EAAApQ,KAGA,OADAmK,EAAA9I,MAAA,GAAAqJ,KAAA0F,EAAA1F,MACA,EAOA,OAFAP,EAAA9I,MAAAgP,QAAAD,GACAjG,EAAAmG,SAAA,GACA,EAKA,OAHAnG,EAAAkF,YAAA,GAGA,EAYA,SAAAkB,EAAAzP,EAAA0P,GASA,IARA,IAIAb,EACAc,EALAC,EAAA,qEACArP,EAAA,GACAsP,EAAA,GACAC,GAAA,EAMAC,EAAAN,EAAAO,OACAD,IAAAD,EACAC,IAAAC,OAEA,GAAAD,IAAAvP,GAAAuP,IAAA1W,EAAA0E,OAAA,CAkBA,GAbA4R,EAAA,CACAlX,IAAA,KACAyG,KAAAiO,EACAvD,KAAA,KACAC,OAAA,MAGAkG,EAAAzf,KACAqf,EAAAzQ,KAAA6Q,EAAAzf,MACOue,EAAAe,EAAA1G,KAAA6G,EAAAhd,eACP4c,EAAAzQ,KAAA2P,EAAA,SAGA,IAAAc,EAAAzQ,KACA,IACAyQ,EAAAzQ,KAAA2P,EAAAoB,MAAAC,UAAA,EAAArB,EAAAoB,MAAAlJ,QAAA,MACS,MAAApU,IAGTkd,EAAA,GAAAE,GACAD,GAAA,EAEAD,EAAA,GAAAE,IAAA,EAGAxP,EAAAxM,KAAA4b,GAGAD,GAGAnP,EAAAmO,OAAA,EAAAgB,GAGA,IAAApO,EAAA,CACAhR,KAAA0P,EAAA1P,KACAsQ,QAAAZ,EAAAY,QACAnI,IAAA4U,IACA9M,SAQA,OANA0N,EACA3M,EACAtB,EAAAmQ,WAAAnQ,EAAAoQ,SACApQ,EAAA4J,MAAA5J,EAAAqQ,WACArQ,EAAAY,SAAAZ,EAAAsQ,aAEAhP,EAQA,SAAAd,EAAAR,EAAA0P,GACA,IAAAnP,EAAA,KACAmP,EAAA,MAAAA,EAAA,GAAAA,EAEA,IAEA,GADAnP,EAAAoO,EAAA3O,GAEA,OAAAO,EAEK,MAAA5N,GACL,GAAA0G,EAAA0D,MACA,MAAApK,EAIA,IAEA,GADA4N,EAAAkP,EAAAzP,EAAA0P,EAAA,GAEA,OAAAnP,EAEK,MAAA5N,GACL,GAAA0G,EAAA0D,MACA,MAAApK,EAGA,OACArC,KAAA0P,EAAA1P,KACAsQ,QAAAZ,EAAAY,QACAnI,IAAA4U,KAOA,OAHA7M,EAAAyN,sCACAzN,EAAAmO,iCAEAnO,EAxSA,GA2SA1Q,EAAAD,QAAAwJ,mCChmBA,SAAA0N,EAAAwJ,EAAAC,GACA,QAAAzgB,EAAA,EAAiBA,EAAAwgB,EAAAjd,SAAqBvD,EACtC,GAAAwgB,EAAAxgB,KAAAygB,EAAA,OAAAzgB,EAEA,SAyBA,SAAA0gB,EAAAC,EAAAC,GACA,IAAApQ,EAAA,GACAqQ,EAAA,GAWA,OATA,MAAAD,IACAA,EAAA,SAAArf,EAAAN,GACA,OAAAuP,EAAA,KAAAvP,EACA,eAEA,eAAA4f,EAAAjP,MAAA,EAAAoF,EAAAxG,EAAAvP,IAAAqD,KAAA,WAIA,SAAA/C,EAAAN,GACA,GAAAuP,EAAAjN,OAAA,GACA,IAAAud,EAAA9J,EAAAxG,EAAA9N,OACAoe,EAAAtQ,EAAAmO,OAAAmC,EAAA,GAAAtQ,EAAAxM,KAAAtB,OACAoe,EAAAD,EAAAlC,OAAAmC,EAAAC,IAAAxf,GAAAsf,EAAA7c,KAAAzC,IAEAyV,EAAAxG,EAAAvP,KACAA,EAAA2f,EAAAzgB,KAAAuC,KAAAnB,EAAAN,SAGAuP,EAAAxM,KAAA/C,GAGA,aAAA0f,EACA1f,aAAAoE,MA5CA,SAAApE,GACA,IAAAmV,EAAA,CAEA5F,MAAAvP,EAAAuP,MACAK,QAAA5P,EAAA4P,QACAtQ,KAAAU,EAAAV,MAGA,QAAAP,KAAAiB,EACAP,OAAAkB,UAAAC,eAAA1B,KAAAc,EAAAjB,KACAoW,EAAApW,GAAAiB,EAAAjB,IAIA,OAAAoW,EA8BA4K,CAAA/f,KACA0f,EAAAxgB,KAAAuC,KAAAnB,EAAAN,KA5DAlB,EAAAD,QAUA,SAAAsD,EAAAud,EAAAM,EAAAL,GACA,OAAArW,KAAAhB,UAAAnG,EAAAsd,EAAAC,EAAAC,GAAAK,KAVAC,aAAAR,iBCZA,SAAAlX,EAAAqH,GACAnO,KAAAnC,KAAA,mBACAmC,KAAAmO,UAEArH,EAAA5H,UAAA,IAAAyD,MACAmE,EAAA5H,UAAAuf,YAAA3X,EAEAzJ,EAAAD,QAAA0J,iBC6BAzJ,EAAAD,QAAA,CACA6J,WArCA,SAAAuC,EAAA6M,EAAA1V,GACA,IAAA+d,EAAAlV,EAAA6M,GACAsI,EAAAnV,EAEA,GAAA6M,KAAA7M,EAAA,CAIA,IAAAoV,EAAA,SAAAvI,EAAA,UAAAA,EAEA7M,EAAA6M,GAAA,WACA,IAAA3J,EAAA,GAAAwC,MAAAzR,KAAAiO,WAEAuC,EAAA,GAAAvB,EAAA9K,KAAA,KACAqB,EAAA,CAAgBoT,MAAAuI,EAAApW,OAAA,UAAA6G,MAAA,CAA+C3D,UAAAgB,IAE/D,WAAA2J,GACA,IAAA3J,EAAA,KAEAuB,EAAA,sBAAAvB,EAAAwC,MAAA,GAAAtN,KAAA,wBACAqB,EAAAoM,MAAA3D,UAAAgB,EAAAwC,MAAA,GACAvO,KAAAsN,EAAAhL,IAGAtC,KAAAsN,EAAAhL,GAIAyb,GAGAze,SAAAf,UAAAuM,MAAAhO,KAAAihB,EAAAC,EAAAjS,kECnBIjN,OAAOof,aAXTC,aACAC,YACAC,QACAC,mBACAC,wBACAC,UACAC,YACAC,eACAC,aACAC,UACAC,cAGIC,EAAOhgB,OAAOigB,WCwBL9f,QAAf,ECpCA,SAAS+f,EAAYC,EAAMzV,GACzB0V,OAAO,yBACJC,KAAK,MACLnH,OACAhF,OAHH,gBAAA6C,OAG0BrM,EAH1B,sBAAAqM,OAGmDoJ,EAHnD,cAMK,SAASG,IACd,IAAMC,EAAY,GAAAxJ,OAAMyI,EAAN,eAAAzI,OAAkC8I,GAC9CW,EAAQ,GAAAzJ,OAAMyI,EAAN,WAAAzI,OAA8B8I,GAC5CK,EAAYF,EAAKS,UAAWF,GAC5BL,EAAYF,EAAK1O,MAAOkP,yKCbnB,SAAS9J,IACd,IACE,GAAI1W,OAAO0gB,aAAaC,aAAc,SAAAC,EAAAC,EAAA5U,UAAA7K,OAFnB6L,EAEmB,IAAAyG,MAAAmN,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAFnB7T,EAEmB6T,GAAA7U,UAAA6U,GACpC7T,EAAKoQ,QAAQ,aACbuD,EAAA7W,SAAQ2M,IAAR1K,MAAA4U,EAAe3T,IAEjB,MAAOxM,KCNJ,IAAMsgB,EAAc,CACzBC,OAAQ,iBACRC,qBACE,6GACFC,eAAgB,mCCEZC,EAAW,eCHf,SAAAC,iGAAcC,CAAA9gB,KAAA6gB,GACZ7gB,KAAK+gB,IAAMlB,OAAO,6DAGH,IAAAmB,GACfA,EAAAhhB,KAAK+gB,KAAIE,QAATxV,MAAAuV,EAAAtV,sCAGCwV,EAAOvgB,GACRX,KAAK+gB,IAAII,GAAGD,EAAOthB,EAAMgN,KAAKjM,0CDL5BygB,EAAY,GAElB,SAASC,EAAkBlT,GACzBgI,EAAI,mBACJA,EAAItO,KAAKhB,UAAUsH,IACnB0R,OAAOW,EAAYC,QAAQ,GAAGa,cAAcC,YAC1C1Z,KAAKhB,UAAUsH,GACf8Q,GAIJ,SAASuC,EAAMrT,EAASiH,GACjBA,IACHA,EAAW,oBAEb,IAAMqM,EAAazjB,OAAO0jB,OAAO,GAAIvT,GACrCsT,EAAWrM,SAAWA,EACtBiM,EAAkBI,GAOpB,SAASE,EAAcxT,GACrBgI,EAAI,oBACJA,EAAItO,KAAKhB,UAAUsH,IAEfA,EAAQiH,UAAYjH,EAAQyT,YARlC,SAAwBzT,GACtBiT,EAAUjT,EAAQyT,YAAc,GAAGzT,EAAQiH,UAQzCyM,CAAe1T,GAEfnQ,OAAOmgB,KAAKhQ,GAAS2T,QAAQ,SAAAjjB,GAC3B+hB,EAASK,QAAQpiB,EAAK,CAACsP,EAAQtP,GAAM2iB,EAAM1iB,KAAK,KAAMqP,OAK5D,SAAS4T,EAAmBb,GAC1B,GAAIA,EAAMc,SAAW/C,EACnB,IAEE0C,EADa9Z,KAAK8H,MAAMuR,EAAMje,OAE9B,MAAO/C,KE9Cb,SAAS+hB,EAAYC,EAAQva,EAAQwa,EAASC,EAASzU,GACrD,IACM0U,EAAc,CAClBrc,IAFO,GAAAwQ,OAAMuI,EAAN,YAAAvI,OAAwB0L,EAAxB,iBAAA1L,OAA8C2I,GAGrDxX,SACA2a,YAAa,mBACbF,QACqB,mBAAZA,EACHxiB,EAAMgN,KAAK,SAAA3J,GAAI,OAAImf,EAAQva,KAAK8H,MAAM1M,WACtC0J,EACNgB,MAAO/N,EAAMgN,KAAK,SAAA2V,GAChB,IAAIpU,EACJ,IACEA,EAAUtG,KAAK8H,MAAM4S,EAAMC,cAAc7U,MACzC,MAAOzN,GACPiO,EAAUoU,EAAMC,aAGlB5iB,EAAMgO,eAAN,iCAAA4I,OACmC+L,EAAM3N,OADzC,MAAA4B,OACoDrI,IAG/B,mBAAVR,GACTA,OAKFwU,IACFE,EAAYpf,KAAO4E,KAAKhB,UAAUsb,IAGpCtC,OAAO4C,KAAKJ,GAGd,SAASK,EAAKR,EAAQC,EAASC,EAASzU,GACtC,OAAOsU,EAAYC,EAAQ,OAAQC,EAASC,EAASzU,GAGvD,SAASxP,EAAI+jB,EAAQE,EAASzU,GAC5B,OAAOsU,EAAYC,EAAQ,MAAO,KAAME,EAASzU,GAGnD,IACIgV,EADEC,EAAY,kBAAMzkB,EAAI,sBAExB0kB,GAAoB,EAEjB,SAASC,IACdH,EAAuBnR,WAAW,WAChCoR,EAAU,SAAA3f,GACJA,EAAKqc,SACPrV,SAAS8Y,QAAO,GACNF,GACVC,KAEDA,IACF,KAQE,IAGME,EAAaN,EAAK5jB,KAAK,KAAM,yBAA0B,IACvDmkB,EAAY9kB,EAAIW,KAAK,KAAM,qBCrExC,SAASokB,EAAcrkB,GACrB,OH2EK,SAAmBA,EAAK8B,GAC7BigB,EAASO,GAAGtiB,EAAK,WAAa,QAAAyhB,EAAA5U,UAAA7K,OAAT6L,EAAS,IAAAyG,MAAAmN,GAAAC,EAAA,EAAAA,EAAAD,EAAAC,IAAT7T,EAAS6T,GAAA7U,UAAA6U,GAC5B5f,EAAS8K,MAAM,KAAMiB,EAAKwC,MAAM,OG7EjBpQ,KAAK,KAAMD,GAGvB,IAAMskB,EAAoBD,EAAc,4BAClCE,EAAYF,EAAc,yBAC1BG,EAAsBH,EAAc,6BACpCI,EAAeJ,EAAc,4BAC7BK,EAAoBL,EAAc,2BAClCM,EAAmBN,EAAc,0BACjCO,EAAqBP,EAAc,6BACnCQ,EAAcR,EAAc,wBAC5BS,EAAmBT,EAAc,0BACjCU,EAAoBV,EAAc,2BAClCW,EAAeX,EAAc,sBAC7BY,EAAYZ,EAAc,kBAC1Ba,EAAcb,EAAc,qBAElC,SAASc,EAAYC,IHmCrB,SAAqBplB,EAAKsjB,EAAS+B,EAAYC,EAAW3R,GAC1DA,IACHA,EAAU,KAGZ,IAOM4R,EAAY5S,WAAW5R,EAAMgN,KAPX,WACtB,IAAMyX,EAAY,sEAAA7N,OAAyE3X,GAC3FsX,EAAIkO,GACJzkB,EAAMgO,eAAeyW,GACrBF,MAGwD3R,GAEpDrE,EAAU,GAChBA,EAAQtP,GAAOsjB,EACfhU,EAAQyT,YAAcR,EAAU9f,KAAK,WACnCmR,aAAa2R,GACbF,EAAUzY,WAAV,EAAAC,aAEF2V,EAAkBlT,GGtDlBoT,CAAY,sBAAuB0C,EAAO,KAAM,kBAAMha,SAAS8Y,QAAO,KCrBjE,IAAMuB,GAAiB,CAAC,QAAS,YCKjC,SAASC,KAQd,SAASC,IACP,IAAIC,EAAWhlB,OAAOwK,SAASya,OAAOze,MAAM,sBAAsB,GAG9Dwe,IACFA,EAAQ,IAAAjO,OAAOiO,IAGjBT,EAAYS,GAfd,WACE5E,OAAOW,EAAYG,gBAAgBgE,YAAY,WAC/C,IAAMC,EAAYnlB,OAAOwK,SAASya,OAAOze,MAAM,sBAAsB,GAC7C4Z,OAAM,oBAAArJ,OAAqBoO,EAArB,OACdC,SAASC,SAAS,WAYlCC,GAcFtlB,OAAO4V,iBAAiB,WAAYmP,GAGpC3E,OAAOW,EAAYE,sBAAsBsE,MAAMplB,EAAMgN,KAdrD,WAEMsU,MAAM+D,SAAW/D,MAAMgE,QAAUhE,MAAMiE,WAG3C1lB,OAAOkW,QAAQC,UAAU,KAAM,KAAMiK,OAAO7f,MAAMmB,KAAK,SACvDqjB,IACAtD,MAAMkE,qBChCK,IAAAC,GAAA,CACbC,iBAAkB,CAChBC,WAAY,CACVC,WAAY,kBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXE,cAAe,CACbX,WAAY,CACVC,WAAY,UACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXG,aAAc,CACZZ,WAAY,CACVC,WAAY,cACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXI,iBAAkB,CAChBb,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXK,eAAgB,CACdd,WAAY,CACVC,WAAY,WACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXM,eAAgB,CACdf,WAAY,CACVC,WAAY,eACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXO,iBAAkB,CAChBhB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXQ,aAAc,CACZjB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXS,gBAAiB,CACflB,WAAY,CACVC,WAAY,oBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXU,gBAAiB,CACfnB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXW,mBAAoB,CAClBpB,WAAY,CACVC,WAAY,gBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXY,WAAY,CACVrB,WAAY,CACVC,WAAY,eACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXa,iBAAkB,CAChBtB,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXc,cAAe,CACbvB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXe,gBAAiB,CACfxB,WAAY,CACVC,WAAY,mBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXgB,eAAgB,CACdzB,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXiB,iBAAkB,CAChB1B,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXkB,cAAe,CACb3B,WAAY,CACVC,WAAY,gBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXmB,gBAAiB,CACf5B,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXoB,eAAgB,CACd7B,WAAY,CACVC,WAAY,kBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXqB,eAAgB,CACd9B,WAAY,CACVC,WAAY,qBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXsB,eAAgB,CACd/B,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXuB,gBAAiB,CACfhC,WAAY,CACVC,WAAY,aACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXwB,eAAgB,CACdjC,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXyB,YAAa,CACXlC,WAAY,CACVC,WAAY,iBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX0B,cAAe,CACbnC,WAAY,CACVC,WAAY,cACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX2B,oBAAqB,CACnBpC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX4B,iBAAkB,CAChBrC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX6B,WAAY,CACVtC,WAAY,CACVC,WAAY,UACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX8B,iBAAkB,CAChBvC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGX+B,gBAAiB,CACfxC,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXgC,eAAgB,CACdzC,WAAY,CACVC,WAAY,OACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXiC,eAAgB,CACd1C,WAAY,CACVC,WAAY,qBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXkC,iBAAkB,CAChB3C,WAAY,CACVC,WAAY,gBACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXmC,mBAAoB,CAClB5C,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXoC,2BAA4B,CAC1B7C,WAAY,CACVC,WAAY,SACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXqC,eAAgB,CACd9C,WAAY,CACVC,WAAY,YACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,YAGXsC,kBAAmB,CACjB/C,WAAY,CACVC,WAAY,cACZC,eAAgB,UAChBC,cAAe,OACfC,gBAAiB,UACjBC,YAAa,WAEfC,UAAW,CACTC,YAAa,WAEfC,sBAAuB,CACrBC,MAAO,WAETC,oBAAqB,CACnBD,MAAO,aChpBbpC,EAAkB,SAACzV,EAASqT,GAC1BA,EAAM,sBAGR4B,EAAU,SAAC9D,EAAUkC,ILqCE,SAAClC,EAAU8C,EAASzU,GACzC+U,EAAK,2BAA4B,CAAEpD,YAAY8C,EAASzU,GKrCxD4a,CACEjJ,EACA,WL8BF7M,aAAakQ,GACbE,GAAoB,EK7BhBrB,EAAM,CAAEY,SAAS,KAEnBZ,EAAM1iB,KAAK,KAAM,CAAEsjB,SAAS,OAIhCkB,EAAa,SAACnV,EAASqT,GACrBwB,EACExB,EAAM1iB,KAAK,KAAM,CAAEsjB,SAAS,IAC5BZ,EAAM1iB,KAAK,KAAM,CAAEsjB,SAAS,OAIhC0B,EAAU,SAAC3V,EAASqT,GAClBA,IACAvX,SAASE,KAAT,GAAAqM,OAAmBsI,EAAnB,iBAGF+E,EAAa,SAAC1V,EAASqT,GACrBA,IACA/hB,OAAOwK,SAAS8Y,QAAO,KAGzBY,EAAiB,SAACxV,EAASqT,GACzBA,IACA+C,OAGFlB,EAAoB,SAAClV,EAASqT,GAC5BA,IFKA3B,OAAOW,EAAYgI,gBAAgBC,IAAI,WEDzCtF,EAAkB,SAAChV,EAASqT,GAC1BA,IACA,IAAIkH,EAAwBjpB,OAAOwK,SAAS3J,WACxCooB,EAAsBpU,QAAQ,KAAO,IACvCoU,EAAwBA,EAAsBjL,UAC5C,EACAiL,EAAsBpU,QAAQ,OAGlC,IAAMqU,EAAiB,GAAAnS,OAAMkS,EAAN,gBACvBjpB,OAAOkW,QAAQC,UAAU,GAAI,GAAI+S,KAGnCjF,EAAY,SAACvV,EAASqT,GACpByB,EAAU,SAAAhgB,GACJA,EAAK2lB,QACPpH,EAAMve,EAAK2lB,YAKjBnF,EAAmB,SAACtV,EAASqT,GAC3BA,EAAM,CAAEW,QAASkD,GAAO9F,OAG1BgE,EAAkB,SAACpV,EAASqT,GC1F1B3B,OAAOW,EAAYC,QAAQqE,SAAS,4BD4FpCtD,MAGFgC,EAAiB,SAACrV,EAASqT,GC3FzB3B,OAAOW,EAAYC,QAAQkE,YAAY,4BD6FvCnD,MAGFuC,EAAY,SAAC5V,EAASqT,IF5Df,WAGL,IAHmC,IAC7BqH,GAD6Bnd,UAAA7K,OAAA,QAAA8L,IAAAjB,UAAA,GAAAA,UAAA,GAAJ,IACXjK,MAAM,KAEL,KAAdonB,EAAO,IACZA,EAAO/Z,QAGT,IAAI2V,EAAW,GAEXH,GAAewE,SAASD,EAAO,MACjCpE,EAAQ,IAAAjO,OAAOqS,EAAO,IACtBA,EAAO/Z,SAGT,IAAMia,EAAoBF,EAAOG,OAAO,SAACC,EAAKhF,EAAOiF,GACnD,SAAA1S,OAAUyS,EAAV,KAAAzS,OAAiBjS,mBAAkB,gBAAAiS,OAAiB0S,EAAjB,MAAnC,KAAA1S,OAAiEyN,IAChE,IAEHxkB,OAAOkW,QAAQE,aACb,KACA,KAFF,eAAAW,OAGiBiO,GAHjBjO,OAG4BuS,IEwC5BI,CAAUhb,GACVqT,MX9FY,SAARxC,IAIJpf,IAAM2K,OACJ,oEACA,CACErB,WAAY,CACViC,UAAU,KAGdC,UAEFxL,IAAM2P,eAAe,CACnB6Z,OAAQlK,EACRmK,IAAKhK,EACLiK,UAAW9J,IAGb5f,IAAMuP,eAAe,CACnBoa,IAAKjK,EACLF,QAASphB,OAAOmgB,KAAKiB,GAClBoK,IAAI,SAAA3rB,GAAI,SAAA2Y,OAAO3Y,EAAP,KAAA2Y,OAAe4I,EAAQvhB,GAAM4rB,WACrC7nB,KAAK,QabZhC,EAAM4M,QAdN,WT8EE/M,OAAO4V,iBAAiB,UAAW0M,IS1EoB,IAAnDtiB,OAAOwK,SAASya,OAAOpQ,QAAQ,iBAC5BgL,GACHwD,KAIJjD,OAAOtY,UAAUmiB,MAAM3J","file":"leadin.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 8);\n","/**\n * Enforces a single instance of the Raven client, and the\n * main entry point for Raven. If you are a consumer of the\n * Raven library, you SHOULD load this file (vs raven.js).\n **/\n\nvar RavenConstructor = require('./raven');\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar _Raven = _window.Raven;\n\nvar Raven = new RavenConstructor();\n\n/*\n * Allow multiple versions of Raven to be installed.\n * Strip Raven from the global context and returns the instance.\n *\n * @return {Raven}\n */\nRaven.noConflict = function() {\n _window.Raven = _Raven;\n return Raven;\n};\n\nRaven.afterLoad();\n\nmodule.exports = Raven;\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","var _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction isObject(what) {\n return typeof what === 'object' && what !== null;\n}\n\n// Yanked from https://git.io/vS8DV re-used under CC0\n// with some tiny modifications\nfunction isError(value) {\n switch ({}.toString.call(value)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return value instanceof Error;\n }\n}\n\nfunction isErrorEvent(value) {\n return supportsErrorEvent() && {}.toString.call(value) === '[object ErrorEvent]';\n}\n\nfunction isUndefined(what) {\n return what === void 0;\n}\n\nfunction isFunction(what) {\n return typeof what === 'function';\n}\n\nfunction isString(what) {\n return Object.prototype.toString.call(what) === '[object String]';\n}\n\nfunction isEmptyObject(what) {\n for (var _ in what) return false; // eslint-disable-line guard-for-in, no-unused-vars\n return true;\n}\n\nfunction supportsErrorEvent() {\n try {\n new ErrorEvent(''); // eslint-disable-line no-new\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction wrappedCallback(callback) {\n function dataCallback(data, original) {\n var normalizedData = callback(data) || data;\n if (original) {\n return original(normalizedData) || normalizedData;\n }\n return normalizedData;\n }\n\n return dataCallback;\n}\n\nfunction each(obj, callback) {\n var i, j;\n\n if (isUndefined(obj.length)) {\n for (i in obj) {\n if (hasKey(obj, i)) {\n callback.call(null, i, obj[i]);\n }\n }\n } else {\n j = obj.length;\n if (j) {\n for (i = 0; i < j; i++) {\n callback.call(null, i, obj[i]);\n }\n }\n }\n}\n\nfunction objectMerge(obj1, obj2) {\n if (!obj2) {\n return obj1;\n }\n each(obj2, function(key, value) {\n obj1[key] = value;\n });\n return obj1;\n}\n\n/**\n * This function is only used for react-native.\n * react-native freezes object that have already been sent over the\n * js bridge. We need this function in order to check if the object is frozen.\n * So it's ok that objectFrozen returns false if Object.isFrozen is not\n * supported because it's not relevant for other \"platforms\". See related issue:\n * https://github.com/getsentry/react-native-sentry/issues/57\n */\nfunction objectFrozen(obj) {\n if (!Object.isFrozen) {\n return false;\n }\n return Object.isFrozen(obj);\n}\n\nfunction truncate(str, max) {\n return !max || str.length <= max ? str : str.substr(0, max) + '\\u2026';\n}\n\n/**\n * hasKey, a better form of hasOwnProperty\n * Example: hasKey(MainHostObject, property) === true/false\n *\n * @param {Object} host object to check property\n * @param {string} key to check\n */\nfunction hasKey(object, key) {\n return Object.prototype.hasOwnProperty.call(object, key);\n}\n\nfunction joinRegExp(patterns) {\n // Combine an array of regular expressions and strings into one large regexp\n // Be mad.\n var sources = [],\n i = 0,\n len = patterns.length,\n pattern;\n\n for (; i < len; i++) {\n pattern = patterns[i];\n if (isString(pattern)) {\n // If it's a string, we need to escape it\n // Taken from: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions\n sources.push(pattern.replace(/([.*+?^=!:${}()|\\[\\]\\/\\\\])/g, '\\\\$1'));\n } else if (pattern && pattern.source) {\n // If it's a regexp already, we want to extract the source\n sources.push(pattern.source);\n }\n // Intentionally skip other cases\n }\n return new RegExp(sources.join('|'), 'i');\n}\n\nfunction urlencode(o) {\n var pairs = [];\n each(o, function(key, value) {\n pairs.push(encodeURIComponent(key) + '=' + encodeURIComponent(value));\n });\n return pairs.join('&');\n}\n\n// borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n// intentionally using regex and not <a/> href parsing trick because React Native and other\n// environments where DOM might not be available\nfunction parseUrl(url) {\n var match = url.match(/^(([^:\\/?#]+):)?(\\/\\/([^\\/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) return {};\n\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n protocol: match[2],\n host: match[4],\n path: match[5],\n relative: match[5] + query + fragment // everything minus origin\n };\n}\nfunction uuid4() {\n var crypto = _window.crypto || _window.msCrypto;\n\n if (!isUndefined(crypto) && crypto.getRandomValues) {\n // Use window.crypto API if available\n // eslint-disable-next-line no-undef\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n\n // set 4 in byte 7\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n\n var pad = function(num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = '0' + v;\n }\n return v;\n };\n\n return (\n pad(arr[0]) +\n pad(arr[1]) +\n pad(arr[2]) +\n pad(arr[3]) +\n pad(arr[4]) +\n pad(arr[5]) +\n pad(arr[6]) +\n pad(arr[7])\n );\n } else {\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function(c) {\n var r = (Math.random() * 16) | 0,\n v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n }\n}\n\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @param elem\n * @returns {string}\n */\nfunction htmlTreeAsString(elem) {\n /* eslint no-extra-parens:0*/\n var MAX_TRAVERSE_HEIGHT = 5,\n MAX_OUTPUT_LEN = 80,\n out = [],\n height = 0,\n len = 0,\n separator = ' > ',\n sepLength = separator.length,\n nextStr;\n\n while (elem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = htmlElementAsString(elem);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (\n nextStr === 'html' ||\n (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)\n ) {\n break;\n }\n\n out.push(nextStr);\n\n len += nextStr.length;\n elem = elem.parentNode;\n }\n\n return out.reverse().join(separator);\n}\n\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @param HTMLElement\n * @returns {string}\n */\nfunction htmlElementAsString(elem) {\n var out = [],\n className,\n classes,\n key,\n attr,\n i;\n\n if (!elem || !elem.tagName) {\n return '';\n }\n\n out.push(elem.tagName.toLowerCase());\n if (elem.id) {\n out.push('#' + elem.id);\n }\n\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push('.' + classes[i]);\n }\n }\n var attrWhitelist = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < attrWhitelist.length; i++) {\n key = attrWhitelist[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push('[' + key + '=\"' + attr + '\"]');\n }\n }\n return out.join('');\n}\n\n/**\n * Returns true if either a OR b is truthy, but not both\n */\nfunction isOnlyOneTruthy(a, b) {\n return !!(!!a ^ !!b);\n}\n\n/**\n * Returns true if the two input exception interfaces have the same content\n */\nfunction isSameException(ex1, ex2) {\n if (isOnlyOneTruthy(ex1, ex2)) return false;\n\n ex1 = ex1.values[0];\n ex2 = ex2.values[0];\n\n if (ex1.type !== ex2.type || ex1.value !== ex2.value) return false;\n\n return isSameStacktrace(ex1.stacktrace, ex2.stacktrace);\n}\n\n/**\n * Returns true if the two input stack trace interfaces have the same content\n */\nfunction isSameStacktrace(stack1, stack2) {\n if (isOnlyOneTruthy(stack1, stack2)) return false;\n\n var frames1 = stack1.frames;\n var frames2 = stack2.frames;\n\n // Exit early if frame count differs\n if (frames1.length !== frames2.length) return false;\n\n // Iterate through every frame; bail out if anything differs\n var a, b;\n for (var i = 0; i < frames1.length; i++) {\n a = frames1[i];\n b = frames2[i];\n if (\n a.filename !== b.filename ||\n a.lineno !== b.lineno ||\n a.colno !== b.colno ||\n a['function'] !== b['function']\n )\n return false;\n }\n return true;\n}\n\n/**\n * Polyfill a method\n * @param obj object e.g. `document`\n * @param name method name present on object e.g. `addEventListener`\n * @param replacement replacement function\n * @param track {optional} record instrumentation to an array\n */\nfunction fill(obj, name, replacement, track) {\n var orig = obj[name];\n obj[name] = replacement(orig);\n if (track) {\n track.push([obj, name, orig]);\n }\n}\n\nmodule.exports = {\n isObject: isObject,\n isError: isError,\n isErrorEvent: isErrorEvent,\n isUndefined: isUndefined,\n isFunction: isFunction,\n isString: isString,\n isEmptyObject: isEmptyObject,\n supportsErrorEvent: supportsErrorEvent,\n wrappedCallback: wrappedCallback,\n each: each,\n objectMerge: objectMerge,\n truncate: truncate,\n objectFrozen: objectFrozen,\n hasKey: hasKey,\n joinRegExp: joinRegExp,\n urlencode: urlencode,\n uuid4: uuid4,\n htmlTreeAsString: htmlTreeAsString,\n htmlElementAsString: htmlElementAsString,\n isSameException: isSameException,\n isSameStacktrace: isSameStacktrace,\n parseUrl: parseUrl,\n fill: fill\n};\n","/*global XDomainRequest:false */\n\nvar TraceKit = require('../vendor/TraceKit/tracekit');\nvar stringify = require('../vendor/json-stringify-safe/stringify');\nvar RavenConfigError = require('./configError');\n\nvar utils = require('./utils');\nvar isError = utils.isError;\nvar isObject = utils.isObject;\nvar isObject = utils.isObject;\nvar isErrorEvent = utils.isErrorEvent;\nvar isUndefined = utils.isUndefined;\nvar isFunction = utils.isFunction;\nvar isString = utils.isString;\nvar isEmptyObject = utils.isEmptyObject;\nvar each = utils.each;\nvar objectMerge = utils.objectMerge;\nvar truncate = utils.truncate;\nvar objectFrozen = utils.objectFrozen;\nvar hasKey = utils.hasKey;\nvar joinRegExp = utils.joinRegExp;\nvar urlencode = utils.urlencode;\nvar uuid4 = utils.uuid4;\nvar htmlTreeAsString = utils.htmlTreeAsString;\nvar isSameException = utils.isSameException;\nvar isSameStacktrace = utils.isSameStacktrace;\nvar parseUrl = utils.parseUrl;\nvar fill = utils.fill;\n\nvar wrapConsoleMethod = require('./console').wrapMethod;\n\nvar dsnKeys = 'source protocol user pass host port path'.split(' '),\n dsnPattern = /^(?:(\\w+):)?\\/\\/(?:(\\w+)(:\\w+)?@)?([\\w\\.-]+)(?::(\\d+))?(\\/.*)/;\n\nfunction now() {\n return +new Date();\n}\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\nvar _document = _window.document;\nvar _navigator = _window.navigator;\n\nfunction keepOriginalCallback(original, callback) {\n return isFunction(callback)\n ? function(data) {\n return callback(data, original);\n }\n : callback;\n}\n\n// First, check for JSON support\n// If there is no JSON, we no-op the core features of Raven\n// since JSON is required to encode the payload\nfunction Raven() {\n this._hasJSON = !!(typeof JSON === 'object' && JSON.stringify);\n // Raven can run in contexts where there's no document (react-native)\n this._hasDocument = !isUndefined(_document);\n this._hasNavigator = !isUndefined(_navigator);\n this._lastCapturedException = null;\n this._lastData = null;\n this._lastEventId = null;\n this._globalServer = null;\n this._globalKey = null;\n this._globalProject = null;\n this._globalContext = {};\n this._globalOptions = {\n logger: 'javascript',\n ignoreErrors: [],\n ignoreUrls: [],\n whitelistUrls: [],\n includePaths: [],\n collectWindowErrors: true,\n maxMessageLength: 0,\n\n // By default, truncates URL values to 250 chars\n maxUrlLength: 250,\n stackTraceLimit: 50,\n autoBreadcrumbs: true,\n instrument: true,\n sampleRate: 1\n };\n this._ignoreOnError = 0;\n this._isRavenInstalled = false;\n this._originalErrorStackTraceLimit = Error.stackTraceLimit;\n // capture references to window.console *and* all its methods first\n // before the console plugin has a chance to monkey patch\n this._originalConsole = _window.console || {};\n this._originalConsoleMethods = {};\n this._plugins = [];\n this._startTime = now();\n this._wrappedBuiltIns = [];\n this._breadcrumbs = [];\n this._lastCapturedEvent = null;\n this._keypressTimeout;\n this._location = _window.location;\n this._lastHref = this._location && this._location.href;\n this._resetBackoff();\n\n // eslint-disable-next-line guard-for-in\n for (var method in this._originalConsole) {\n this._originalConsoleMethods[method] = this._originalConsole[method];\n }\n}\n\n/*\n * The core Raven singleton\n *\n * @this {Raven}\n */\n\nRaven.prototype = {\n // Hardcode version string so that raven source can be loaded directly via\n // webpack (using a build step causes webpack #1617). Grunt verifies that\n // this value matches package.json during build.\n // See: https://github.com/getsentry/raven-js/issues/465\n VERSION: '3.19.1',\n\n debug: false,\n\n TraceKit: TraceKit, // alias to TraceKit\n\n /*\n * Configure Raven with a DSN and extra options\n *\n * @param {string} dsn The public Sentry DSN\n * @param {object} options Set of global options [optional]\n * @return {Raven}\n */\n config: function(dsn, options) {\n var self = this;\n\n if (self._globalServer) {\n this._logDebug('error', 'Error: Raven has already been configured');\n return self;\n }\n if (!dsn) return self;\n\n var globalOptions = self._globalOptions;\n\n // merge in options\n if (options) {\n each(options, function(key, value) {\n // tags and extra are special and need to be put into context\n if (key === 'tags' || key === 'extra' || key === 'user') {\n self._globalContext[key] = value;\n } else {\n globalOptions[key] = value;\n }\n });\n }\n\n self.setDSN(dsn);\n\n // \"Script error.\" is hard coded into browsers for errors that it can't read.\n // this is the result of a script being pulled in from an external domain and CORS.\n globalOptions.ignoreErrors.push(/^Script error\\.?$/);\n globalOptions.ignoreErrors.push(/^Javascript error: Script error\\.? on line 0$/);\n\n // join regexp rules into one big rule\n globalOptions.ignoreErrors = joinRegExp(globalOptions.ignoreErrors);\n globalOptions.ignoreUrls = globalOptions.ignoreUrls.length\n ? joinRegExp(globalOptions.ignoreUrls)\n : false;\n globalOptions.whitelistUrls = globalOptions.whitelistUrls.length\n ? joinRegExp(globalOptions.whitelistUrls)\n : false;\n globalOptions.includePaths = joinRegExp(globalOptions.includePaths);\n globalOptions.maxBreadcrumbs = Math.max(\n 0,\n Math.min(globalOptions.maxBreadcrumbs || 100, 100)\n ); // default and hard limit is 100\n\n var autoBreadcrumbDefaults = {\n xhr: true,\n console: true,\n dom: true,\n location: true\n };\n\n var autoBreadcrumbs = globalOptions.autoBreadcrumbs;\n if ({}.toString.call(autoBreadcrumbs) === '[object Object]') {\n autoBreadcrumbs = objectMerge(autoBreadcrumbDefaults, autoBreadcrumbs);\n } else if (autoBreadcrumbs !== false) {\n autoBreadcrumbs = autoBreadcrumbDefaults;\n }\n globalOptions.autoBreadcrumbs = autoBreadcrumbs;\n\n var instrumentDefaults = {\n tryCatch: true\n };\n\n var instrument = globalOptions.instrument;\n if ({}.toString.call(instrument) === '[object Object]') {\n instrument = objectMerge(instrumentDefaults, instrument);\n } else if (instrument !== false) {\n instrument = instrumentDefaults;\n }\n globalOptions.instrument = instrument;\n\n TraceKit.collectWindowErrors = !!globalOptions.collectWindowErrors;\n\n // return for chaining\n return self;\n },\n\n /*\n * Installs a global window.onerror error handler\n * to capture and report uncaught exceptions.\n * At this point, install() is required to be called due\n * to the way TraceKit is set up.\n *\n * @return {Raven}\n */\n install: function() {\n var self = this;\n if (self.isSetup() && !self._isRavenInstalled) {\n TraceKit.report.subscribe(function() {\n self._handleOnErrorStackInfo.apply(self, arguments);\n });\n if (self._globalOptions.instrument && self._globalOptions.instrument.tryCatch) {\n self._instrumentTryCatch();\n }\n\n if (self._globalOptions.autoBreadcrumbs) self._instrumentBreadcrumbs();\n\n // Install all of the plugins\n self._drainPlugins();\n\n self._isRavenInstalled = true;\n }\n\n Error.stackTraceLimit = self._globalOptions.stackTraceLimit;\n return this;\n },\n\n /*\n * Set the DSN (can be called multiple time unlike config)\n *\n * @param {string} dsn The public Sentry DSN\n */\n setDSN: function(dsn) {\n var self = this,\n uri = self._parseDSN(dsn),\n lastSlash = uri.path.lastIndexOf('/'),\n path = uri.path.substr(1, lastSlash);\n\n self._dsn = dsn;\n self._globalKey = uri.user;\n self._globalSecret = uri.pass && uri.pass.substr(1);\n self._globalProject = uri.path.substr(lastSlash + 1);\n\n self._globalServer = self._getGlobalServer(uri);\n\n self._globalEndpoint =\n self._globalServer + '/' + path + 'api/' + self._globalProject + '/store/';\n\n // Reset backoff state since we may be pointing at a\n // new project/server\n this._resetBackoff();\n },\n\n /*\n * Wrap code within a context so Raven can capture errors\n * reliably across domains that is executed immediately.\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The callback to be immediately executed within the context\n * @param {array} args An array of arguments to be called with the callback [optional]\n */\n context: function(options, func, args) {\n if (isFunction(options)) {\n args = func || [];\n func = options;\n options = undefined;\n }\n\n return this.wrap(options, func).apply(this, args);\n },\n\n /*\n * Wrap code within a context and returns back a new function to be executed\n *\n * @param {object} options A specific set of options for this context [optional]\n * @param {function} func The function to be wrapped in a new context\n * @param {function} func A function to call before the try/catch wrapper [optional, private]\n * @return {function} The newly wrapped functions with a context\n */\n wrap: function(options, func, _before) {\n var self = this;\n // 1 argument has been passed, and it's not a function\n // so just return it\n if (isUndefined(func) && !isFunction(options)) {\n return options;\n }\n\n // options is optional\n if (isFunction(options)) {\n func = options;\n options = undefined;\n }\n\n // At this point, we've passed along 2 arguments, and the second one\n // is not a function either, so we'll just return the second argument.\n if (!isFunction(func)) {\n return func;\n }\n\n // We don't wanna wrap it twice!\n try {\n if (func.__raven__) {\n return func;\n }\n\n // If this has already been wrapped in the past, return that\n if (func.__raven_wrapper__) {\n return func.__raven_wrapper__;\n }\n } catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return func;\n }\n\n function wrapped() {\n var args = [],\n i = arguments.length,\n deep = !options || (options && options.deep !== false);\n\n if (_before && isFunction(_before)) {\n _before.apply(this, arguments);\n }\n\n // Recursively wrap all of a function's arguments that are\n // functions themselves.\n while (i--) args[i] = deep ? self.wrap(options, arguments[i]) : arguments[i];\n\n try {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means Raven caught an error invoking your application code. This is\n // expected behavior and NOT indicative of a bug with Raven.js.\n return func.apply(this, args);\n } catch (e) {\n self._ignoreNextOnError();\n self.captureException(e, options);\n throw e;\n }\n }\n\n // copy over properties of the old function\n for (var property in func) {\n if (hasKey(func, property)) {\n wrapped[property] = func[property];\n }\n }\n wrapped.prototype = func.prototype;\n\n func.__raven_wrapper__ = wrapped;\n // Signal that this function has been wrapped already\n // for both debugging and to prevent it to being wrapped twice\n wrapped.__raven__ = true;\n wrapped.__inner__ = func;\n\n return wrapped;\n },\n\n /*\n * Uninstalls the global error handler.\n *\n * @return {Raven}\n */\n uninstall: function() {\n TraceKit.report.uninstall();\n\n this._restoreBuiltIns();\n\n Error.stackTraceLimit = this._originalErrorStackTraceLimit;\n this._isRavenInstalled = false;\n\n return this;\n },\n\n /*\n * Manually capture an exception and send it over to Sentry\n *\n * @param {error} ex An exception to be logged\n * @param {object} options A specific set of options for this error [optional]\n * @return {Raven}\n */\n captureException: function(ex, options) {\n // Cases for sending ex as a message, rather than an exception\n var isNotError = !isError(ex);\n var isNotErrorEvent = !isErrorEvent(ex);\n var isErrorEventWithoutError = isErrorEvent(ex) && !ex.error;\n\n if ((isNotError && isNotErrorEvent) || isErrorEventWithoutError) {\n return this.captureMessage(\n ex,\n objectMerge(\n {\n trimHeadFrames: 1,\n stacktrace: true // if we fall back to captureMessage, default to attempting a new trace\n },\n options\n )\n );\n }\n\n // Get actual Error from ErrorEvent\n if (isErrorEvent(ex)) ex = ex.error;\n\n // Store the raw exception object for potential debugging and introspection\n this._lastCapturedException = ex;\n\n // TraceKit.report will re-raise any exception passed to it,\n // which means you have to wrap it in try/catch. Instead, we\n // can wrap it here and only re-raise if TraceKit.report\n // raises an exception different from the one we asked to\n // report on.\n try {\n var stack = TraceKit.computeStackTrace(ex);\n this._handleStackInfo(stack, options);\n } catch (ex1) {\n if (ex !== ex1) {\n throw ex1;\n }\n }\n\n return this;\n },\n\n /*\n * Manually send a message to Sentry\n *\n * @param {string} msg A plain message to be captured in Sentry\n * @param {object} options A specific set of options for this message [optional]\n * @return {Raven}\n */\n captureMessage: function(msg, options) {\n // config() automagically converts ignoreErrors from a list to a RegExp so we need to test for an\n // early call; we'll error on the side of logging anything called before configuration since it's\n // probably something you should see:\n if (\n !!this._globalOptions.ignoreErrors.test &&\n this._globalOptions.ignoreErrors.test(msg)\n ) {\n return;\n }\n\n options = options || {};\n\n var data = objectMerge(\n {\n message: msg + '' // Make sure it's actually a string\n },\n options\n );\n\n var ex;\n // Generate a \"synthetic\" stack trace from this point.\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it is NOT indicative\n // of a bug with Raven.js. Sentry generates synthetic traces either by configuration,\n // or if it catches a thrown object without a \"stack\" property.\n try {\n throw new Error(msg);\n } catch (ex1) {\n ex = ex1;\n }\n\n // null exception name so `Error` isn't prefixed to msg\n ex.name = null;\n var stack = TraceKit.computeStackTrace(ex);\n\n // stack[0] is `throw new Error(msg)` call itself, we are interested in the frame that was just before that, stack[1]\n var initialCall = stack.stack[1];\n\n var fileurl = (initialCall && initialCall.url) || '';\n\n if (\n !!this._globalOptions.ignoreUrls.test &&\n this._globalOptions.ignoreUrls.test(fileurl)\n ) {\n return;\n }\n\n if (\n !!this._globalOptions.whitelistUrls.test &&\n !this._globalOptions.whitelistUrls.test(fileurl)\n ) {\n return;\n }\n\n if (this._globalOptions.stacktrace || (options && options.stacktrace)) {\n options = objectMerge(\n {\n // fingerprint on msg, not stack trace (legacy behavior, could be\n // revisited)\n fingerprint: msg,\n // since we know this is a synthetic trace, the top N-most frames\n // MUST be from Raven.js, so mark them as in_app later by setting\n // trimHeadFrames\n trimHeadFrames: (options.trimHeadFrames || 0) + 1\n },\n options\n );\n\n var frames = this._prepareFrames(stack, options);\n data.stacktrace = {\n // Sentry expects frames oldest to newest\n frames: frames.reverse()\n };\n }\n\n // Fire away!\n this._send(data);\n\n return this;\n },\n\n captureBreadcrumb: function(obj) {\n var crumb = objectMerge(\n {\n timestamp: now() / 1000\n },\n obj\n );\n\n if (isFunction(this._globalOptions.breadcrumbCallback)) {\n var result = this._globalOptions.breadcrumbCallback(crumb);\n\n if (isObject(result) && !isEmptyObject(result)) {\n crumb = result;\n } else if (result === false) {\n return this;\n }\n }\n\n this._breadcrumbs.push(crumb);\n if (this._breadcrumbs.length > this._globalOptions.maxBreadcrumbs) {\n this._breadcrumbs.shift();\n }\n return this;\n },\n\n addPlugin: function(plugin /*arg1, arg2, ... argN*/) {\n var pluginArgs = [].slice.call(arguments, 1);\n\n this._plugins.push([plugin, pluginArgs]);\n if (this._isRavenInstalled) {\n this._drainPlugins();\n }\n\n return this;\n },\n\n /*\n * Set/clear a user to be sent along with the payload.\n *\n * @param {object} user An object representing user data [optional]\n * @return {Raven}\n */\n setUserContext: function(user) {\n // Intentionally do not merge here since that's an unexpected behavior.\n this._globalContext.user = user;\n\n return this;\n },\n\n /*\n * Merge extra attributes to be sent along with the payload.\n *\n * @param {object} extra An object representing extra data [optional]\n * @return {Raven}\n */\n setExtraContext: function(extra) {\n this._mergeContext('extra', extra);\n\n return this;\n },\n\n /*\n * Merge tags to be sent along with the payload.\n *\n * @param {object} tags An object representing tags [optional]\n * @return {Raven}\n */\n setTagsContext: function(tags) {\n this._mergeContext('tags', tags);\n\n return this;\n },\n\n /*\n * Clear all of the context.\n *\n * @return {Raven}\n */\n clearContext: function() {\n this._globalContext = {};\n\n return this;\n },\n\n /*\n * Get a copy of the current context. This cannot be mutated.\n *\n * @return {object} copy of context\n */\n getContext: function() {\n // lol javascript\n return JSON.parse(stringify(this._globalContext));\n },\n\n /*\n * Set environment of application\n *\n * @param {string} environment Typically something like 'production'.\n * @return {Raven}\n */\n setEnvironment: function(environment) {\n this._globalOptions.environment = environment;\n\n return this;\n },\n\n /*\n * Set release version of application\n *\n * @param {string} release Typically something like a git SHA to identify version\n * @return {Raven}\n */\n setRelease: function(release) {\n this._globalOptions.release = release;\n\n return this;\n },\n\n /*\n * Set the dataCallback option\n *\n * @param {function} callback The callback to run which allows the\n * data blob to be mutated before sending\n * @return {Raven}\n */\n setDataCallback: function(callback) {\n var original = this._globalOptions.dataCallback;\n this._globalOptions.dataCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /*\n * Set the breadcrumbCallback option\n *\n * @param {function} callback The callback to run which allows filtering\n * or mutating breadcrumbs\n * @return {Raven}\n */\n setBreadcrumbCallback: function(callback) {\n var original = this._globalOptions.breadcrumbCallback;\n this._globalOptions.breadcrumbCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /*\n * Set the shouldSendCallback option\n *\n * @param {function} callback The callback to run which allows\n * introspecting the blob before sending\n * @return {Raven}\n */\n setShouldSendCallback: function(callback) {\n var original = this._globalOptions.shouldSendCallback;\n this._globalOptions.shouldSendCallback = keepOriginalCallback(original, callback);\n return this;\n },\n\n /**\n * Override the default HTTP transport mechanism that transmits data\n * to the Sentry server.\n *\n * @param {function} transport Function invoked instead of the default\n * `makeRequest` handler.\n *\n * @return {Raven}\n */\n setTransport: function(transport) {\n this._globalOptions.transport = transport;\n\n return this;\n },\n\n /*\n * Get the latest raw exception that was captured by Raven.\n *\n * @return {error}\n */\n lastException: function() {\n return this._lastCapturedException;\n },\n\n /*\n * Get the last event id\n *\n * @return {string}\n */\n lastEventId: function() {\n return this._lastEventId;\n },\n\n /*\n * Determine if Raven is setup and ready to go.\n *\n * @return {boolean}\n */\n isSetup: function() {\n if (!this._hasJSON) return false; // needs JSON support\n if (!this._globalServer) {\n if (!this.ravenNotConfiguredError) {\n this.ravenNotConfiguredError = true;\n this._logDebug('error', 'Error: Raven has not been configured.');\n }\n return false;\n }\n return true;\n },\n\n afterLoad: function() {\n // TODO: remove window dependence?\n\n // Attempt to initialize Raven on load\n var RavenConfig = _window.RavenConfig;\n if (RavenConfig) {\n this.config(RavenConfig.dsn, RavenConfig.config).install();\n }\n },\n\n showReportDialog: function(options) {\n if (\n !_document // doesn't work without a document (React native)\n )\n return;\n\n options = options || {};\n\n var lastEventId = options.eventId || this.lastEventId();\n if (!lastEventId) {\n throw new RavenConfigError('Missing eventId');\n }\n\n var dsn = options.dsn || this._dsn;\n if (!dsn) {\n throw new RavenConfigError('Missing DSN');\n }\n\n var encode = encodeURIComponent;\n var qs = '';\n qs += '?eventId=' + encode(lastEventId);\n qs += '&dsn=' + encode(dsn);\n\n var user = options.user || this._globalContext.user;\n if (user) {\n if (user.name) qs += '&name=' + encode(user.name);\n if (user.email) qs += '&email=' + encode(user.email);\n }\n\n var globalServer = this._getGlobalServer(this._parseDSN(dsn));\n\n var script = _document.createElement('script');\n script.async = true;\n script.src = globalServer + '/api/embed/error-page/' + qs;\n (_document.head || _document.body).appendChild(script);\n },\n\n /**** Private functions ****/\n _ignoreNextOnError: function() {\n var self = this;\n this._ignoreOnError += 1;\n setTimeout(function() {\n // onerror should trigger before setTimeout\n self._ignoreOnError -= 1;\n });\n },\n\n _triggerEvent: function(eventType, options) {\n // NOTE: `event` is a native browser thing, so let's avoid conflicting wiht it\n var evt, key;\n\n if (!this._hasDocument) return;\n\n options = options || {};\n\n eventType = 'raven' + eventType.substr(0, 1).toUpperCase() + eventType.substr(1);\n\n if (_document.createEvent) {\n evt = _document.createEvent('HTMLEvents');\n evt.initEvent(eventType, true, true);\n } else {\n evt = _document.createEventObject();\n evt.eventType = eventType;\n }\n\n for (key in options)\n if (hasKey(options, key)) {\n evt[key] = options[key];\n }\n\n if (_document.createEvent) {\n // IE9 if standards\n _document.dispatchEvent(evt);\n } else {\n // IE8 regardless of Quirks or Standards\n // IE9 if quirks\n try {\n _document.fireEvent('on' + evt.eventType.toLowerCase(), evt);\n } catch (e) {\n // Do nothing\n }\n }\n },\n\n /**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param evtName the event name (e.g. \"click\")\n * @returns {Function}\n * @private\n */\n _breadcrumbEventHandler: function(evtName) {\n var self = this;\n return function(evt) {\n // reset keypress timeout; e.g. triggering a 'click' after\n // a 'keypress' will reset the keypress debounce so that a new\n // set of keypresses can be recorded\n self._keypressTimeout = null;\n\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors). Ignore if we've\n // already captured the event.\n if (self._lastCapturedEvent === evt) return;\n\n self._lastCapturedEvent = evt;\n\n // try/catch both:\n // - accessing evt.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // can throw an exception in some circumstances.\n var target;\n try {\n target = htmlTreeAsString(evt.target);\n } catch (e) {\n target = '<unknown>';\n }\n\n self.captureBreadcrumb({\n category: 'ui.' + evtName, // e.g. ui.click, ui.input\n message: target\n });\n };\n },\n\n /**\n * Wraps addEventListener to capture keypress UI events\n * @returns {Function}\n * @private\n */\n _keypressEventHandler: function() {\n var self = this,\n debounceDuration = 1000; // milliseconds\n\n // TODO: if somehow user switches keypress target before\n // debounce timeout is triggered, we will only capture\n // a single breadcrumb from the FIRST target (acceptable?)\n return function(evt) {\n var target;\n try {\n target = evt.target;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n var tagName = target && target.tagName;\n\n // only consider keypress events on actual input elements\n // this will disregard keypresses targeting body (e.g. tabbing\n // through elements, hotkeys, etc)\n if (\n !tagName ||\n (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && !target.isContentEditable)\n )\n return;\n\n // record first keypress in a series, but ignore subsequent\n // keypresses until debounce clears\n var timeout = self._keypressTimeout;\n if (!timeout) {\n self._breadcrumbEventHandler('input')(evt);\n }\n clearTimeout(timeout);\n self._keypressTimeout = setTimeout(function() {\n self._keypressTimeout = null;\n }, debounceDuration);\n };\n },\n\n /**\n * Captures a breadcrumb of type \"navigation\", normalizing input URLs\n * @param to the originating URL\n * @param from the target URL\n * @private\n */\n _captureUrlChange: function(from, to) {\n var parsedLoc = parseUrl(this._location.href);\n var parsedTo = parseUrl(to);\n var parsedFrom = parseUrl(from);\n\n // because onpopstate only tells you the \"new\" (to) value of location.href, and\n // not the previous (from) value, we need to track the value of the current URL\n // state ourselves\n this._lastHref = to;\n\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host)\n to = parsedTo.relative;\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host)\n from = parsedFrom.relative;\n\n this.captureBreadcrumb({\n category: 'navigation',\n data: {\n to: to,\n from: from\n }\n });\n },\n\n /**\n * Wrap timer functions and event targets to catch errors and provide\n * better metadata.\n */\n _instrumentTryCatch: function() {\n var self = this;\n\n var wrappedBuiltIns = self._wrappedBuiltIns;\n\n function wrapTimeFn(orig) {\n return function(fn, t) {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n var originalCallback = args[0];\n if (isFunction(originalCallback)) {\n args[0] = self.wrap(originalCallback);\n }\n\n // IE < 9 doesn't support .call/.apply on setInterval/setTimeout, but it\n // also supports only two arguments and doesn't care what this is, so we\n // can just call the original function directly.\n if (orig.apply) {\n return orig.apply(this, args);\n } else {\n return orig(args[0], args[1]);\n }\n };\n }\n\n var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;\n\n function wrapEventTarget(global) {\n var proto = _window[global] && _window[global].prototype;\n if (proto && proto.hasOwnProperty && proto.hasOwnProperty('addEventListener')) {\n fill(\n proto,\n 'addEventListener',\n function(orig) {\n return function(evtName, fn, capture, secure) {\n // preserve arity\n try {\n if (fn && fn.handleEvent) {\n fn.handleEvent = self.wrap(fn.handleEvent);\n }\n } catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n\n // More breadcrumb DOM capture ... done here and not in `_instrumentBreadcrumbs`\n // so that we don't have more than one wrapper function\n var before, clickHandler, keypressHandler;\n\n if (\n autoBreadcrumbs &&\n autoBreadcrumbs.dom &&\n (global === 'EventTarget' || global === 'Node')\n ) {\n // NOTE: generating multiple handlers per addEventListener invocation, should\n // revisit and verify we can just use one (almost certainly)\n clickHandler = self._breadcrumbEventHandler('click');\n keypressHandler = self._keypressEventHandler();\n before = function(evt) {\n // need to intercept every DOM event in `before` argument, in case that\n // same wrapped method is re-used for different events (e.g. mousemove THEN click)\n // see #724\n if (!evt) return;\n\n var eventType;\n try {\n eventType = evt.type;\n } catch (e) {\n // just accessing event properties can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/raven-js/issues/838\n return;\n }\n if (eventType === 'click') return clickHandler(evt);\n else if (eventType === 'keypress') return keypressHandler(evt);\n };\n }\n return orig.call(\n this,\n evtName,\n self.wrap(fn, undefined, before),\n capture,\n secure\n );\n };\n },\n wrappedBuiltIns\n );\n fill(\n proto,\n 'removeEventListener',\n function(orig) {\n return function(evt, fn, capture, secure) {\n try {\n fn = fn && (fn.__raven_wrapper__ ? fn.__raven_wrapper__ : fn);\n } catch (e) {\n // ignore, accessing __raven_wrapper__ will throw in some Selenium environments\n }\n return orig.call(this, evt, fn, capture, secure);\n };\n },\n wrappedBuiltIns\n );\n }\n }\n\n fill(_window, 'setTimeout', wrapTimeFn, wrappedBuiltIns);\n fill(_window, 'setInterval', wrapTimeFn, wrappedBuiltIns);\n if (_window.requestAnimationFrame) {\n fill(\n _window,\n 'requestAnimationFrame',\n function(orig) {\n return function(cb) {\n return orig(self.wrap(cb));\n };\n },\n wrappedBuiltIns\n );\n }\n\n // event targets borrowed from bugsnag-js:\n // https://github.com/bugsnag/bugsnag-js/blob/master/src/bugsnag.js#L666\n var eventTargets = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload'\n ];\n for (var i = 0; i < eventTargets.length; i++) {\n wrapEventTarget(eventTargets[i]);\n }\n },\n\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - XMLHttpRequests\n * - DOM interactions (click/typing)\n * - window.location changes\n * - console\n *\n * Can be disabled or individually configured via the `autoBreadcrumbs` config option\n */\n _instrumentBreadcrumbs: function() {\n var self = this;\n var autoBreadcrumbs = this._globalOptions.autoBreadcrumbs;\n\n var wrappedBuiltIns = self._wrappedBuiltIns;\n\n function wrapProp(prop, xhr) {\n if (prop in xhr && isFunction(xhr[prop])) {\n fill(xhr, prop, function(orig) {\n return self.wrap(orig);\n }); // intentionally don't track filled methods on XHR instances\n }\n }\n\n if (autoBreadcrumbs.xhr && 'XMLHttpRequest' in _window) {\n var xhrproto = XMLHttpRequest.prototype;\n fill(\n xhrproto,\n 'open',\n function(origOpen) {\n return function(method, url) {\n // preserve arity\n\n // if Sentry key appears in URL, don't capture\n if (isString(url) && url.indexOf(self._globalKey) === -1) {\n this.__raven_xhr = {\n method: method,\n url: url,\n status_code: null\n };\n }\n\n return origOpen.apply(this, arguments);\n };\n },\n wrappedBuiltIns\n );\n\n fill(\n xhrproto,\n 'send',\n function(origSend) {\n return function(data) {\n // preserve arity\n var xhr = this;\n\n function onreadystatechangeHandler() {\n if (xhr.__raven_xhr && xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhr.__raven_xhr.status_code = xhr.status;\n } catch (e) {\n /* do nothing */\n }\n\n self.captureBreadcrumb({\n type: 'http',\n category: 'xhr',\n data: xhr.__raven_xhr\n });\n }\n }\n\n var props = ['onload', 'onerror', 'onprogress'];\n for (var j = 0; j < props.length; j++) {\n wrapProp(props[j], xhr);\n }\n\n if ('onreadystatechange' in xhr && isFunction(xhr.onreadystatechange)) {\n fill(\n xhr,\n 'onreadystatechange',\n function(orig) {\n return self.wrap(orig, undefined, onreadystatechangeHandler);\n } /* intentionally don't track this instrumentation */\n );\n } else {\n // if onreadystatechange wasn't actually set by the page on this xhr, we\n // are free to set our own and capture the breadcrumb\n xhr.onreadystatechange = onreadystatechangeHandler;\n }\n\n return origSend.apply(this, arguments);\n };\n },\n wrappedBuiltIns\n );\n }\n\n if (autoBreadcrumbs.xhr && 'fetch' in _window) {\n fill(\n _window,\n 'fetch',\n function(origFetch) {\n return function(fn, t) {\n // preserve arity\n // Make a copy of the arguments to prevent deoptimization\n // https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; ++i) {\n args[i] = arguments[i];\n }\n\n var fetchInput = args[0];\n var method = 'GET';\n var url;\n\n if (typeof fetchInput === 'string') {\n url = fetchInput;\n } else if ('Request' in _window && fetchInput instanceof _window.Request) {\n url = fetchInput.url;\n if (fetchInput.method) {\n method = fetchInput.method;\n }\n } else {\n url = '' + fetchInput;\n }\n\n if (args[1] && args[1].method) {\n method = args[1].method;\n }\n\n var fetchData = {\n method: method,\n url: url,\n status_code: null\n };\n\n self.captureBreadcrumb({\n type: 'http',\n category: 'fetch',\n data: fetchData\n });\n\n return origFetch.apply(this, args).then(function(response) {\n fetchData.status_code = response.status;\n\n return response;\n });\n };\n },\n wrappedBuiltIns\n );\n }\n\n // Capture breadcrumbs from any click that is unhandled / bubbled up all the way\n // to the document. Do this before we instrument addEventListener.\n if (autoBreadcrumbs.dom && this._hasDocument) {\n if (_document.addEventListener) {\n _document.addEventListener('click', self._breadcrumbEventHandler('click'), false);\n _document.addEventListener('keypress', self._keypressEventHandler(), false);\n } else {\n // IE8 Compatibility\n _document.attachEvent('onclick', self._breadcrumbEventHandler('click'));\n _document.attachEvent('onkeypress', self._keypressEventHandler());\n }\n }\n\n // record navigation (URL) changes\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var chrome = _window.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n var hasPushAndReplaceState =\n !isChromePackagedApp &&\n _window.history &&\n history.pushState &&\n history.replaceState;\n if (autoBreadcrumbs.location && hasPushAndReplaceState) {\n // TODO: remove onpopstate handler on uninstall()\n var oldOnPopState = _window.onpopstate;\n _window.onpopstate = function() {\n var currentHref = self._location.href;\n self._captureUrlChange(self._lastHref, currentHref);\n\n if (oldOnPopState) {\n return oldOnPopState.apply(this, arguments);\n }\n };\n\n var historyReplacementFunction = function(origHistFunction) {\n // note history.pushState.length is 0; intentionally not declaring\n // params to preserve 0 arity\n return function(/* state, title, url */) {\n var url = arguments.length > 2 ? arguments[2] : undefined;\n\n // url argument is optional\n if (url) {\n // coerce to string (this is what pushState does)\n self._captureUrlChange(self._lastHref, url + '');\n }\n\n return origHistFunction.apply(this, arguments);\n };\n };\n\n fill(history, 'pushState', historyReplacementFunction, wrappedBuiltIns);\n fill(history, 'replaceState', historyReplacementFunction, wrappedBuiltIns);\n }\n\n if (autoBreadcrumbs.console && 'console' in _window && console.log) {\n // console\n var consoleMethodCallback = function(msg, data) {\n self.captureBreadcrumb({\n message: msg,\n level: data.level,\n category: 'console'\n });\n };\n\n each(['debug', 'info', 'warn', 'error', 'log'], function(_, level) {\n wrapConsoleMethod(console, level, consoleMethodCallback);\n });\n }\n },\n\n _restoreBuiltIns: function() {\n // restore any wrapped builtins\n var builtin;\n while (this._wrappedBuiltIns.length) {\n builtin = this._wrappedBuiltIns.shift();\n\n var obj = builtin[0],\n name = builtin[1],\n orig = builtin[2];\n\n obj[name] = orig;\n }\n },\n\n _drainPlugins: function() {\n var self = this;\n\n // FIX ME TODO\n each(this._plugins, function(_, plugin) {\n var installer = plugin[0];\n var args = plugin[1];\n installer.apply(self, [self].concat(args));\n });\n },\n\n _parseDSN: function(str) {\n var m = dsnPattern.exec(str),\n dsn = {},\n i = 7;\n\n try {\n while (i--) dsn[dsnKeys[i]] = m[i] || '';\n } catch (e) {\n throw new RavenConfigError('Invalid DSN: ' + str);\n }\n\n if (dsn.pass && !this._globalOptions.allowSecretKey) {\n throw new RavenConfigError(\n 'Do not specify your secret key in the DSN. See: http://bit.ly/raven-secret-key'\n );\n }\n\n return dsn;\n },\n\n _getGlobalServer: function(uri) {\n // assemble the endpoint from the uri pieces\n var globalServer = '//' + uri.host + (uri.port ? ':' + uri.port : '');\n\n if (uri.protocol) {\n globalServer = uri.protocol + ':' + globalServer;\n }\n return globalServer;\n },\n\n _handleOnErrorStackInfo: function() {\n // if we are intentionally ignoring errors via onerror, bail out\n if (!this._ignoreOnError) {\n this._handleStackInfo.apply(this, arguments);\n }\n },\n\n _handleStackInfo: function(stackInfo, options) {\n var frames = this._prepareFrames(stackInfo, options);\n\n this._triggerEvent('handle', {\n stackInfo: stackInfo,\n options: options\n });\n\n this._processException(\n stackInfo.name,\n stackInfo.message,\n stackInfo.url,\n stackInfo.lineno,\n frames,\n options\n );\n },\n\n _prepareFrames: function(stackInfo, options) {\n var self = this;\n var frames = [];\n if (stackInfo.stack && stackInfo.stack.length) {\n each(stackInfo.stack, function(i, stack) {\n var frame = self._normalizeFrame(stack, stackInfo.url);\n if (frame) {\n frames.push(frame);\n }\n });\n\n // e.g. frames captured via captureMessage throw\n if (options && options.trimHeadFrames) {\n for (var j = 0; j < options.trimHeadFrames && j < frames.length; j++) {\n frames[j].in_app = false;\n }\n }\n }\n frames = frames.slice(0, this._globalOptions.stackTraceLimit);\n return frames;\n },\n\n _normalizeFrame: function(frame, stackInfoUrl) {\n // normalize the frames data\n var normalized = {\n filename: frame.url,\n lineno: frame.line,\n colno: frame.column,\n function: frame.func || '?'\n };\n\n // Case when we don't have any information about the error\n // E.g. throwing a string or raw object, instead of an `Error` in Firefox\n // Generating synthetic error doesn't add any value here\n //\n // We should probably somehow let a user know that they should fix their code\n if (!frame.url) {\n normalized.filename = stackInfoUrl; // fallback to whole stacks url from onerror handler\n }\n\n normalized.in_app = !// determine if an exception came from outside of our app\n // first we check the global includePaths list.\n (\n (!!this._globalOptions.includePaths.test &&\n !this._globalOptions.includePaths.test(normalized.filename)) ||\n // Now we check for fun, if the function name is Raven or TraceKit\n /(Raven|TraceKit)\\./.test(normalized['function']) ||\n // finally, we do a last ditch effort and check for raven.min.js\n /raven\\.(min\\.)?js$/.test(normalized.filename)\n );\n\n return normalized;\n },\n\n _processException: function(type, message, fileurl, lineno, frames, options) {\n var prefixedMessage = (type ? type + ': ' : '') + (message || '');\n if (\n !!this._globalOptions.ignoreErrors.test &&\n (this._globalOptions.ignoreErrors.test(message) ||\n this._globalOptions.ignoreErrors.test(prefixedMessage))\n ) {\n return;\n }\n\n var stacktrace;\n\n if (frames && frames.length) {\n fileurl = frames[0].filename || fileurl;\n // Sentry expects frames oldest to newest\n // and JS sends them as newest to oldest\n frames.reverse();\n stacktrace = {frames: frames};\n } else if (fileurl) {\n stacktrace = {\n frames: [\n {\n filename: fileurl,\n lineno: lineno,\n in_app: true\n }\n ]\n };\n }\n\n if (\n !!this._globalOptions.ignoreUrls.test &&\n this._globalOptions.ignoreUrls.test(fileurl)\n ) {\n return;\n }\n\n if (\n !!this._globalOptions.whitelistUrls.test &&\n !this._globalOptions.whitelistUrls.test(fileurl)\n ) {\n return;\n }\n\n var data = objectMerge(\n {\n // sentry.interfaces.Exception\n exception: {\n values: [\n {\n type: type,\n value: message,\n stacktrace: stacktrace\n }\n ]\n },\n culprit: fileurl\n },\n options\n );\n\n // Fire away!\n this._send(data);\n },\n\n _trimPacket: function(data) {\n // For now, we only want to truncate the two different messages\n // but this could/should be expanded to just trim everything\n var max = this._globalOptions.maxMessageLength;\n if (data.message) {\n data.message = truncate(data.message, max);\n }\n if (data.exception) {\n var exception = data.exception.values[0];\n exception.value = truncate(exception.value, max);\n }\n\n var request = data.request;\n if (request) {\n if (request.url) {\n request.url = truncate(request.url, this._globalOptions.maxUrlLength);\n }\n if (request.Referer) {\n request.Referer = truncate(request.Referer, this._globalOptions.maxUrlLength);\n }\n }\n\n if (data.breadcrumbs && data.breadcrumbs.values)\n this._trimBreadcrumbs(data.breadcrumbs);\n\n return data;\n },\n\n /**\n * Truncate breadcrumb values (right now just URLs)\n */\n _trimBreadcrumbs: function(breadcrumbs) {\n // known breadcrumb properties with urls\n // TODO: also consider arbitrary prop values that start with (https?)?://\n var urlProps = ['to', 'from', 'url'],\n urlProp,\n crumb,\n data;\n\n for (var i = 0; i < breadcrumbs.values.length; ++i) {\n crumb = breadcrumbs.values[i];\n if (\n !crumb.hasOwnProperty('data') ||\n !isObject(crumb.data) ||\n objectFrozen(crumb.data)\n )\n continue;\n\n data = objectMerge({}, crumb.data);\n for (var j = 0; j < urlProps.length; ++j) {\n urlProp = urlProps[j];\n if (data.hasOwnProperty(urlProp) && data[urlProp]) {\n data[urlProp] = truncate(data[urlProp], this._globalOptions.maxUrlLength);\n }\n }\n breadcrumbs.values[i].data = data;\n }\n },\n\n _getHttpData: function() {\n if (!this._hasNavigator && !this._hasDocument) return;\n var httpData = {};\n\n if (this._hasNavigator && _navigator.userAgent) {\n httpData.headers = {\n 'User-Agent': navigator.userAgent\n };\n }\n\n if (this._hasDocument) {\n if (_document.location && _document.location.href) {\n httpData.url = _document.location.href;\n }\n if (_document.referrer) {\n if (!httpData.headers) httpData.headers = {};\n httpData.headers.Referer = _document.referrer;\n }\n }\n\n return httpData;\n },\n\n _resetBackoff: function() {\n this._backoffDuration = 0;\n this._backoffStart = null;\n },\n\n _shouldBackoff: function() {\n return this._backoffDuration && now() - this._backoffStart < this._backoffDuration;\n },\n\n /**\n * Returns true if the in-process data payload matches the signature\n * of the previously-sent data\n *\n * NOTE: This has to be done at this level because TraceKit can generate\n * data from window.onerror WITHOUT an exception object (IE8, IE9,\n * other old browsers). This can take the form of an \"exception\"\n * data object with a single frame (derived from the onerror args).\n */\n _isRepeatData: function(current) {\n var last = this._lastData;\n\n if (\n !last ||\n current.message !== last.message || // defined for captureMessage\n current.culprit !== last.culprit // defined for captureException/onerror\n )\n return false;\n\n // Stacktrace interface (i.e. from captureMessage)\n if (current.stacktrace || last.stacktrace) {\n return isSameStacktrace(current.stacktrace, last.stacktrace);\n } else if (current.exception || last.exception) {\n // Exception interface (i.e. from captureException/onerror)\n return isSameException(current.exception, last.exception);\n }\n\n return true;\n },\n\n _setBackoffState: function(request) {\n // If we are already in a backoff state, don't change anything\n if (this._shouldBackoff()) {\n return;\n }\n\n var status = request.status;\n\n // 400 - project_id doesn't exist or some other fatal\n // 401 - invalid/revoked dsn\n // 429 - too many requests\n if (!(status === 400 || status === 401 || status === 429)) return;\n\n var retry;\n try {\n // If Retry-After is not in Access-Control-Expose-Headers, most\n // browsers will throw an exception trying to access it\n retry = request.getResponseHeader('Retry-After');\n retry = parseInt(retry, 10) * 1000; // Retry-After is returned in seconds\n } catch (e) {\n /* eslint no-empty:0 */\n }\n\n this._backoffDuration = retry\n ? // If Sentry server returned a Retry-After value, use it\n retry\n : // Otherwise, double the last backoff duration (starts at 1 sec)\n this._backoffDuration * 2 || 1000;\n\n this._backoffStart = now();\n },\n\n _send: function(data) {\n var globalOptions = this._globalOptions;\n\n var baseData = {\n project: this._globalProject,\n logger: globalOptions.logger,\n platform: 'javascript'\n },\n httpData = this._getHttpData();\n\n if (httpData) {\n baseData.request = httpData;\n }\n\n // HACK: delete `trimHeadFrames` to prevent from appearing in outbound payload\n if (data.trimHeadFrames) delete data.trimHeadFrames;\n\n data = objectMerge(baseData, data);\n\n // Merge in the tags and extra separately since objectMerge doesn't handle a deep merge\n data.tags = objectMerge(objectMerge({}, this._globalContext.tags), data.tags);\n data.extra = objectMerge(objectMerge({}, this._globalContext.extra), data.extra);\n\n // Send along our own collected metadata with extra\n data.extra['session:duration'] = now() - this._startTime;\n\n if (this._breadcrumbs && this._breadcrumbs.length > 0) {\n // intentionally make shallow copy so that additions\n // to breadcrumbs aren't accidentally sent in this request\n data.breadcrumbs = {\n values: [].slice.call(this._breadcrumbs, 0)\n };\n }\n\n // If there are no tags/extra, strip the key from the payload alltogther.\n if (isEmptyObject(data.tags)) delete data.tags;\n\n if (this._globalContext.user) {\n // sentry.interfaces.User\n data.user = this._globalContext.user;\n }\n\n // Include the environment if it's defined in globalOptions\n if (globalOptions.environment) data.environment = globalOptions.environment;\n\n // Include the release if it's defined in globalOptions\n if (globalOptions.release) data.release = globalOptions.release;\n\n // Include server_name if it's defined in globalOptions\n if (globalOptions.serverName) data.server_name = globalOptions.serverName;\n\n if (isFunction(globalOptions.dataCallback)) {\n data = globalOptions.dataCallback(data) || data;\n }\n\n // Why??????????\n if (!data || isEmptyObject(data)) {\n return;\n }\n\n // Check if the request should be filtered or not\n if (\n isFunction(globalOptions.shouldSendCallback) &&\n !globalOptions.shouldSendCallback(data)\n ) {\n return;\n }\n\n // Backoff state: Sentry server previously responded w/ an error (e.g. 429 - too many requests),\n // so drop requests until \"cool-off\" period has elapsed.\n if (this._shouldBackoff()) {\n this._logDebug('warn', 'Raven dropped error due to backoff: ', data);\n return;\n }\n\n if (typeof globalOptions.sampleRate === 'number') {\n if (Math.random() < globalOptions.sampleRate) {\n this._sendProcessedPayload(data);\n }\n } else {\n this._sendProcessedPayload(data);\n }\n },\n\n _getUuid: function() {\n return uuid4();\n },\n\n _sendProcessedPayload: function(data, callback) {\n var self = this;\n var globalOptions = this._globalOptions;\n\n if (!this.isSetup()) return;\n\n // Try and clean up the packet before sending by truncating long values\n data = this._trimPacket(data);\n\n // ideally duplicate error testing should occur *before* dataCallback/shouldSendCallback,\n // but this would require copying an un-truncated copy of the data packet, which can be\n // arbitrarily deep (extra_data) -- could be worthwhile? will revisit\n if (!this._globalOptions.allowDuplicates && this._isRepeatData(data)) {\n this._logDebug('warn', 'Raven dropped repeat event: ', data);\n return;\n }\n\n // Send along an event_id if not explicitly passed.\n // This event_id can be used to reference the error within Sentry itself.\n // Set lastEventId after we know the error should actually be sent\n this._lastEventId = data.event_id || (data.event_id = this._getUuid());\n\n // Store outbound payload after trim\n this._lastData = data;\n\n this._logDebug('debug', 'Raven about to send:', data);\n\n var auth = {\n sentry_version: '7',\n sentry_client: 'raven-js/' + this.VERSION,\n sentry_key: this._globalKey\n };\n\n if (this._globalSecret) {\n auth.sentry_secret = this._globalSecret;\n }\n\n var exception = data.exception && data.exception.values[0];\n this.captureBreadcrumb({\n category: 'sentry',\n message: exception\n ? (exception.type ? exception.type + ': ' : '') + exception.value\n : data.message,\n event_id: data.event_id,\n level: data.level || 'error' // presume error unless specified\n });\n\n var url = this._globalEndpoint;\n (globalOptions.transport || this._makeRequest).call(this, {\n url: url,\n auth: auth,\n data: data,\n options: globalOptions,\n onSuccess: function success() {\n self._resetBackoff();\n\n self._triggerEvent('success', {\n data: data,\n src: url\n });\n callback && callback();\n },\n onError: function failure(error) {\n self._logDebug('error', 'Raven transport failed to send: ', error);\n\n if (error.request) {\n self._setBackoffState(error.request);\n }\n\n self._triggerEvent('failure', {\n data: data,\n src: url\n });\n error = error || new Error('Raven send failed (no additional details provided)');\n callback && callback(error);\n }\n });\n },\n\n _makeRequest: function(opts) {\n var request = _window.XMLHttpRequest && new _window.XMLHttpRequest();\n if (!request) return;\n\n // if browser doesn't support CORS (e.g. IE7), we are out of luck\n var hasCORS = 'withCredentials' in request || typeof XDomainRequest !== 'undefined';\n\n if (!hasCORS) return;\n\n var url = opts.url;\n\n if ('withCredentials' in request) {\n request.onreadystatechange = function() {\n if (request.readyState !== 4) {\n return;\n } else if (request.status === 200) {\n opts.onSuccess && opts.onSuccess();\n } else if (opts.onError) {\n var err = new Error('Sentry error code: ' + request.status);\n err.request = request;\n opts.onError(err);\n }\n };\n } else {\n request = new XDomainRequest();\n // xdomainrequest cannot go http -> https (or vice versa),\n // so always use protocol relative\n url = url.replace(/^https?:/, '');\n\n // onreadystatechange not supported by XDomainRequest\n if (opts.onSuccess) {\n request.onload = opts.onSuccess;\n }\n if (opts.onError) {\n request.onerror = function() {\n var err = new Error('Sentry error code: XDomainRequest');\n err.request = request;\n opts.onError(err);\n };\n }\n }\n\n // NOTE: auth is intentionally sent as part of query string (NOT as custom\n // HTTP header) so as to avoid preflight CORS requests\n request.open('POST', url + '?' + urlencode(opts.auth));\n request.send(stringify(opts.data));\n },\n\n _logDebug: function(level) {\n if (this._originalConsoleMethods[level] && this.debug) {\n // In IE<10 console methods do not have their own 'apply' method\n Function.prototype.apply.call(\n this._originalConsoleMethods[level],\n this._originalConsole,\n [].slice.call(arguments, 1)\n );\n }\n },\n\n _mergeContext: function(key, context) {\n if (isUndefined(context)) {\n delete this._globalContext[key];\n } else {\n this._globalContext[key] = objectMerge(this._globalContext[key] || {}, context);\n }\n }\n};\n\n// Deprecations\nRaven.prototype.setUser = Raven.prototype.setUserContext;\nRaven.prototype.setReleaseContext = Raven.prototype.setRelease;\n\nmodule.exports = Raven;\n","var utils = require('../../src/utils');\n\n/*\n TraceKit - Cross brower stack traces\n\n This was originally forked from github.com/occ/TraceKit, but has since been\n largely re-written and is now maintained as part of raven-js. Tests for\n this are in test/vendor.\n\n MIT license\n*/\n\nvar TraceKit = {\n collectWindowErrors: true,\n debug: false\n};\n\n// This is to be defensive in environments where window does not exist (see https://github.com/getsentry/raven-js/pull/785)\nvar _window =\n typeof window !== 'undefined'\n ? window\n : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\n// global reference to slice\nvar _slice = [].slice;\nvar UNKNOWN_FUNCTION = '?';\n\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types\nvar ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/;\n\nfunction getLocationHref() {\n if (typeof document === 'undefined' || document.location == null) return '';\n\n return document.location.href;\n}\n\n/**\n * TraceKit.report: cross-browser processing of unhandled exceptions\n *\n * Syntax:\n * TraceKit.report.subscribe(function(stackInfo) { ... })\n * TraceKit.report.unsubscribe(function(stackInfo) { ... })\n * TraceKit.report(exception)\n * try { ...code... } catch(ex) { TraceKit.report(ex); }\n *\n * Supports:\n * - Firefox: full stack trace with line numbers, plus column number\n * on top frame; column number is not guaranteed\n * - Opera: full stack trace with line and column numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n * - IE: line and column number for the top frame only; some frames\n * may be missing, and column number is not guaranteed\n *\n * In theory, TraceKit should work on all of the following versions:\n * - IE5.5+ (only 8.0 tested)\n * - Firefox 0.9+ (only 3.5+ tested)\n * - Opera 7+ (only 10.50 tested; versions 9 and earlier may require\n * Exceptions Have Stacktrace to be enabled in opera:config)\n * - Safari 3+ (only 4+ tested)\n * - Chrome 1+ (only 5+ tested)\n * - Konqueror 3.5+ (untested)\n *\n * Requires TraceKit.computeStackTrace.\n *\n * Tries to catch all unhandled exceptions and report them to the\n * subscribed handlers. Please note that TraceKit.report will rethrow the\n * exception. This is REQUIRED in order to get a useful stack trace in IE.\n * If the exception does not reach the top of the browser, you will only\n * get a stack trace from the point where TraceKit.report was called.\n *\n * Handlers receive a stackInfo object as described in the\n * TraceKit.computeStackTrace docs.\n */\nTraceKit.report = (function reportModuleWrapper() {\n var handlers = [],\n lastArgs = null,\n lastException = null,\n lastExceptionStack = null;\n\n /**\n * Add a crash handler.\n * @param {Function} handler\n */\n function subscribe(handler) {\n installGlobalHandler();\n handlers.push(handler);\n }\n\n /**\n * Remove a crash handler.\n * @param {Function} handler\n */\n function unsubscribe(handler) {\n for (var i = handlers.length - 1; i >= 0; --i) {\n if (handlers[i] === handler) {\n handlers.splice(i, 1);\n }\n }\n }\n\n /**\n * Remove all crash handlers.\n */\n function unsubscribeAll() {\n uninstallGlobalHandler();\n handlers = [];\n }\n\n /**\n * Dispatch stack information to all handlers.\n * @param {Object.<string, *>} stack\n */\n function notifyHandlers(stack, isWindowError) {\n var exception = null;\n if (isWindowError && !TraceKit.collectWindowErrors) {\n return;\n }\n for (var i in handlers) {\n if (handlers.hasOwnProperty(i)) {\n try {\n handlers[i].apply(null, [stack].concat(_slice.call(arguments, 2)));\n } catch (inner) {\n exception = inner;\n }\n }\n }\n\n if (exception) {\n throw exception;\n }\n }\n\n var _oldOnerrorHandler, _onErrorHandlerInstalled;\n\n /**\n * Ensures all global unhandled exceptions are recorded.\n * Supported by Gecko and IE.\n * @param {string} message Error message.\n * @param {string} url URL of script that generated the exception.\n * @param {(number|string)} lineNo The line number at which the error\n * occurred.\n * @param {?(number|string)} colNo The column number at which the error\n * occurred.\n * @param {?Error} ex The actual Error object.\n */\n function traceKitWindowOnError(message, url, lineNo, colNo, ex) {\n var stack = null;\n\n if (lastExceptionStack) {\n TraceKit.computeStackTrace.augmentStackTraceWithInitialElement(\n lastExceptionStack,\n url,\n lineNo,\n message\n );\n processLastException();\n } else if (ex && utils.isError(ex)) {\n // non-string `ex` arg; attempt to extract stack trace\n\n // New chrome and blink send along a real error object\n // Let's just report that like a normal error.\n // See: https://mikewest.org/2013/08/debugging-runtime-errors-with-window-onerror\n stack = TraceKit.computeStackTrace(ex);\n notifyHandlers(stack, true);\n } else {\n var location = {\n url: url,\n line: lineNo,\n column: colNo\n };\n\n var name = undefined;\n var msg = message; // must be new var or will modify original `arguments`\n var groups;\n if ({}.toString.call(message) === '[object String]') {\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n msg = groups[2];\n }\n }\n\n location.func = UNKNOWN_FUNCTION;\n\n stack = {\n name: name,\n message: msg,\n url: getLocationHref(),\n stack: [location]\n };\n notifyHandlers(stack, true);\n }\n\n if (_oldOnerrorHandler) {\n return _oldOnerrorHandler.apply(this, arguments);\n }\n\n return false;\n }\n\n function installGlobalHandler() {\n if (_onErrorHandlerInstalled) {\n return;\n }\n _oldOnerrorHandler = _window.onerror;\n _window.onerror = traceKitWindowOnError;\n _onErrorHandlerInstalled = true;\n }\n\n function uninstallGlobalHandler() {\n if (!_onErrorHandlerInstalled) {\n return;\n }\n _window.onerror = _oldOnerrorHandler;\n _onErrorHandlerInstalled = false;\n _oldOnerrorHandler = undefined;\n }\n\n function processLastException() {\n var _lastExceptionStack = lastExceptionStack,\n _lastArgs = lastArgs;\n lastArgs = null;\n lastExceptionStack = null;\n lastException = null;\n notifyHandlers.apply(null, [_lastExceptionStack, false].concat(_lastArgs));\n }\n\n /**\n * Reports an unhandled Error to TraceKit.\n * @param {Error} ex\n * @param {?boolean} rethrow If false, do not re-throw the exception.\n * Only used for window.onerror to not cause an infinite loop of\n * rethrowing.\n */\n function report(ex, rethrow) {\n var args = _slice.call(arguments, 1);\n if (lastExceptionStack) {\n if (lastException === ex) {\n return; // already caught by an inner catch block, ignore\n } else {\n processLastException();\n }\n }\n\n var stack = TraceKit.computeStackTrace(ex);\n lastExceptionStack = stack;\n lastException = ex;\n lastArgs = args;\n\n // If the stack trace is incomplete, wait for 2 seconds for\n // slow slow IE to see if onerror occurs or not before reporting\n // this exception; otherwise, we will end up with an incomplete\n // stack trace\n setTimeout(function() {\n if (lastException === ex) {\n processLastException();\n }\n }, stack.incomplete ? 2000 : 0);\n\n if (rethrow !== false) {\n throw ex; // re-throw to propagate to the top level (and cause window.onerror)\n }\n }\n\n report.subscribe = subscribe;\n report.unsubscribe = unsubscribe;\n report.uninstall = unsubscribeAll;\n return report;\n})();\n\n/**\n * TraceKit.computeStackTrace: cross-browser stack traces in JavaScript\n *\n * Syntax:\n * s = TraceKit.computeStackTrace(exception) // consider using TraceKit.report instead (see below)\n * Returns:\n * s.name - exception name\n * s.message - exception message\n * s.stack[i].url - JavaScript or HTML file URL\n * s.stack[i].func - function name, or empty for anonymous functions (if guessing did not work)\n * s.stack[i].args - arguments passed to the function, if known\n * s.stack[i].line - line number, if known\n * s.stack[i].column - column number, if known\n *\n * Supports:\n * - Firefox: full stack trace with line numbers and unreliable column\n * number on top frame\n * - Opera 10: full stack trace with line and column numbers\n * - Opera 9-: full stack trace with line numbers\n * - Chrome: full stack trace with line and column numbers\n * - Safari: line and column number for the topmost stacktrace element\n * only\n * - IE: no line numbers whatsoever\n *\n * Tries to guess names of anonymous functions by looking for assignments\n * in the source code. In IE and Safari, we have to guess source file names\n * by searching for function bodies inside all page scripts. This will not\n * work for scripts that are loaded cross-domain.\n * Here be dragons: some function names may be guessed incorrectly, and\n * duplicate functions may be mismatched.\n *\n * TraceKit.computeStackTrace should only be used for tracing purposes.\n * Logging of unhandled exceptions should be done with TraceKit.report,\n * which builds on top of TraceKit.computeStackTrace and provides better\n * IE support by utilizing the window.onerror event to retrieve information\n * about the top of the stack.\n *\n * Note: In IE and Safari, no stack trace is recorded on the Error object,\n * so computeStackTrace instead walks its *own* chain of callers.\n * This means that:\n * * in Safari, some methods may be missing from the stack trace;\n * * in IE, the topmost function in the stack trace will always be the\n * caller of computeStackTrace.\n *\n * This is okay for tracing (because you are likely to be calling\n * computeStackTrace from the function you want to be the topmost element\n * of the stack trace anyway), but not okay for logging unhandled\n * exceptions (because your catch block will likely be far away from the\n * inner function that actually caused the exception).\n *\n */\nTraceKit.computeStackTrace = (function computeStackTraceWrapper() {\n // Contents of Exception in various browsers.\n //\n // SAFARI:\n // ex.message = Can't find variable: qq\n // ex.line = 59\n // ex.sourceId = 580238192\n // ex.sourceURL = http://...\n // ex.expressionBeginOffset = 96\n // ex.expressionCaretOffset = 98\n // ex.expressionEndOffset = 98\n // ex.name = ReferenceError\n //\n // FIREFOX:\n // ex.message = qq is not defined\n // ex.fileName = http://...\n // ex.lineNumber = 59\n // ex.columnNumber = 69\n // ex.stack = ...stack trace... (see the example below)\n // ex.name = ReferenceError\n //\n // CHROME:\n // ex.message = qq is not defined\n // ex.name = ReferenceError\n // ex.type = not_defined\n // ex.arguments = ['aa']\n // ex.stack = ...stack trace...\n //\n // INTERNET EXPLORER:\n // ex.message = ...\n // ex.name = ReferenceError\n //\n // OPERA:\n // ex.message = ...message... (see the example below)\n // ex.name = ReferenceError\n // ex.opera#sourceloc = 11 (pretty much useless, duplicates the info in ex.message)\n // ex.stacktrace = n/a; see 'opera:config#UserPrefs|Exceptions Have Stacktrace'\n\n /**\n * Computes stack trace information from the stack property.\n * Chrome and Gecko use this property.\n * @param {Error} ex\n * @return {?Object.<string, *>} Stack trace information.\n */\n function computeStackTraceFromStackProp(ex) {\n if (typeof ex.stack === 'undefined' || !ex.stack) return;\n\n var chrome = /^\\s*at (.*?) ?\\(((?:file|https?|blob|chrome-extension|native|eval|webpack|<anonymous>|[a-z]:|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i,\n gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)((?:file|https?|blob|chrome|webpack|resource|\\[native).*?|[^@]*bundle)(?::(\\d+))?(?::(\\d+))?\\s*$/i,\n winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i,\n // Used to additionally parse URL/line/column from eval frames\n geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i,\n chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/,\n lines = ex.stack.split('\\n'),\n stack = [],\n submatch,\n parts,\n element,\n reference = /^(.*) is undefined$/.exec(ex.message);\n\n for (var i = 0, j = lines.length; i < j; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n element = {\n url: !isNative ? parts[2] : null,\n func: parts[1] || UNKNOWN_FUNCTION,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null\n };\n } else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null\n };\n } else if ((parts = gecko.exec(lines[i]))) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = null; // no column when eval\n } else if (i === 0 && !parts[5] && typeof ex.columnNumber !== 'undefined') {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n element = {\n url: parts[3],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null\n };\n } else {\n continue;\n }\n\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n\n stack.push(element);\n }\n\n if (!stack.length) {\n return null;\n }\n\n return {\n name: ex.name,\n message: ex.message,\n url: getLocationHref(),\n stack: stack\n };\n }\n\n /**\n * Adds information about the first frame to incomplete stack traces.\n * Safari and IE require this to get complete data on the first frame.\n * @param {Object.<string, *>} stackInfo Stack trace information from\n * one of the compute* methods.\n * @param {string} url The URL of the script that caused an error.\n * @param {(number|string)} lineNo The line number of the script that\n * caused an error.\n * @param {string=} message The error generated by the browser, which\n * hopefully contains the name of the object that caused the error.\n * @return {boolean} Whether or not the stack information was\n * augmented.\n */\n function augmentStackTraceWithInitialElement(stackInfo, url, lineNo, message) {\n var initial = {\n url: url,\n line: lineNo\n };\n\n if (initial.url && initial.line) {\n stackInfo.incomplete = false;\n\n if (!initial.func) {\n initial.func = UNKNOWN_FUNCTION;\n }\n\n if (stackInfo.stack.length > 0) {\n if (stackInfo.stack[0].url === initial.url) {\n if (stackInfo.stack[0].line === initial.line) {\n return false; // already in stack trace\n } else if (\n !stackInfo.stack[0].line &&\n stackInfo.stack[0].func === initial.func\n ) {\n stackInfo.stack[0].line = initial.line;\n return false;\n }\n }\n }\n\n stackInfo.stack.unshift(initial);\n stackInfo.partial = true;\n return true;\n } else {\n stackInfo.incomplete = true;\n }\n\n return false;\n }\n\n /**\n * Computes stack trace information by walking the arguments.caller\n * chain at the time the exception occurred. This will cause earlier\n * frames to be missed but is the only way to get any stack trace in\n * Safari and IE. The top frame is restored by\n * {@link augmentStackTraceWithInitialElement}.\n * @param {Error} ex\n * @return {?Object.<string, *>} Stack trace information.\n */\n function computeStackTraceByWalkingCallerChain(ex, depth) {\n var functionName = /function\\s+([_$a-zA-Z\\xA0-\\uFFFF][_$a-zA-Z0-9\\xA0-\\uFFFF]*)?\\s*\\(/i,\n stack = [],\n funcs = {},\n recursion = false,\n parts,\n item,\n source;\n\n for (\n var curr = computeStackTraceByWalkingCallerChain.caller;\n curr && !recursion;\n curr = curr.caller\n ) {\n if (curr === computeStackTrace || curr === TraceKit.report) {\n // console.log('skipping internal function');\n continue;\n }\n\n item = {\n url: null,\n func: UNKNOWN_FUNCTION,\n line: null,\n column: null\n };\n\n if (curr.name) {\n item.func = curr.name;\n } else if ((parts = functionName.exec(curr.toString()))) {\n item.func = parts[1];\n }\n\n if (typeof item.func === 'undefined') {\n try {\n item.func = parts.input.substring(0, parts.input.indexOf('{'));\n } catch (e) {}\n }\n\n if (funcs['' + curr]) {\n recursion = true;\n } else {\n funcs['' + curr] = true;\n }\n\n stack.push(item);\n }\n\n if (depth) {\n // console.log('depth is ' + depth);\n // console.log('stack is ' + stack.length);\n stack.splice(0, depth);\n }\n\n var result = {\n name: ex.name,\n message: ex.message,\n url: getLocationHref(),\n stack: stack\n };\n augmentStackTraceWithInitialElement(\n result,\n ex.sourceURL || ex.fileName,\n ex.line || ex.lineNumber,\n ex.message || ex.description\n );\n return result;\n }\n\n /**\n * Computes a stack trace for an exception.\n * @param {Error} ex\n * @param {(string|number)=} depth\n */\n function computeStackTrace(ex, depth) {\n var stack = null;\n depth = depth == null ? 0 : +depth;\n\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n\n try {\n stack = computeStackTraceByWalkingCallerChain(ex, depth + 1);\n if (stack) {\n return stack;\n }\n } catch (e) {\n if (TraceKit.debug) {\n throw e;\n }\n }\n return {\n name: ex.name,\n message: ex.message,\n url: getLocationHref()\n };\n }\n\n computeStackTrace.augmentStackTraceWithInitialElement = augmentStackTraceWithInitialElement;\n computeStackTrace.computeStackTraceFromStackProp = computeStackTraceFromStackProp;\n\n return computeStackTrace;\n})();\n\nmodule.exports = TraceKit;\n","/*\n json-stringify-safe\n Like JSON.stringify, but doesn't throw on circular references.\n\n Originally forked from https://github.com/isaacs/json-stringify-safe\n version 5.0.1 on 3/8/2017 and modified to handle Errors serialization\n and IE8 compatibility. Tests for this are in test/vendor.\n\n ISC license: https://github.com/isaacs/json-stringify-safe/blob/master/LICENSE\n*/\n\nexports = module.exports = stringify;\nexports.getSerialize = serializer;\n\nfunction indexOf(haystack, needle) {\n for (var i = 0; i < haystack.length; ++i) {\n if (haystack[i] === needle) return i;\n }\n return -1;\n}\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);\n}\n\n// https://github.com/ftlabs/js-abbreviate/blob/fa709e5f139e7770a71827b1893f22418097fbda/index.js#L95-L106\nfunction stringifyError(value) {\n var err = {\n // These properties are implemented as magical getters and don't show up in for in\n stack: value.stack,\n message: value.message,\n name: value.name\n };\n\n for (var i in value) {\n if (Object.prototype.hasOwnProperty.call(value, i)) {\n err[i] = value[i];\n }\n }\n\n return err;\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [];\n var keys = [];\n\n if (cycleReplacer == null) {\n cycleReplacer = function(key, value) {\n if (stack[0] === value) {\n return '[Circular ~]';\n }\n return '[Circular ~.' + keys.slice(0, indexOf(stack, value)).join('.') + ']';\n };\n }\n\n return function(key, value) {\n if (stack.length > 0) {\n var thisPos = indexOf(stack, this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n\n if (~indexOf(stack, value)) {\n value = cycleReplacer.call(this, key, value);\n }\n } else {\n stack.push(value);\n }\n\n return replacer == null\n ? value instanceof Error ? stringifyError(value) : value\n : replacer.call(this, key, value);\n };\n}\n","function RavenConfigError(message) {\n this.name = 'RavenConfigError';\n this.message = message;\n}\nRavenConfigError.prototype = new Error();\nRavenConfigError.prototype.constructor = RavenConfigError;\n\nmodule.exports = RavenConfigError;\n","var wrapMethod = function(console, level, callback) {\n var originalConsoleLevel = console[level];\n var originalConsole = console;\n\n if (!(level in console)) {\n return;\n }\n\n var sentryLevel = level === 'warn' ? 'warning' : level;\n\n console[level] = function() {\n var args = [].slice.call(arguments);\n\n var msg = '' + args.join(' ');\n var data = {level: sentryLevel, logger: 'console', extra: {arguments: args}};\n\n if (level === 'assert') {\n if (args[0] === false) {\n // Default browsers message\n msg = 'Assertion failed: ' + (args.slice(1).join(' ') || 'console.assert');\n data.extra.arguments = args.slice(1);\n callback && callback(msg, data);\n }\n } else {\n callback && callback(msg, data);\n }\n\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n // IE9 doesn't allow calling apply on console functions directly\n // See: https://stackoverflow.com/questions/5472938/does-ie9-support-console-log-and-is-it-a-real-function#answer-5473193\n Function.prototype.apply.call(originalConsoleLevel, originalConsole, args);\n }\n };\n};\n\nmodule.exports = {\n wrapMethod: wrapMethod\n};\n","const {\n adminUrl,\n ajaxUrl,\n env,\n hubspotBaseUrl,\n leadinPluginVersion,\n nonce,\n plugins,\n phpVersion,\n portalId,\n theme,\n wpVersion,\n} = window.leadinConfig;\n\nconst i18n = window.leadinI18n;\n\nexport {\n adminUrl,\n ajaxUrl,\n env,\n hubspotBaseUrl,\n i18n,\n leadinPluginVersion,\n nonce,\n plugins,\n phpVersion,\n portalId,\n theme,\n wpVersion,\n};\n","import Raven from 'raven-js';\nimport {\n env,\n phpVersion,\n wpVersion,\n leadinPluginVersion,\n portalId,\n plugins,\n} from '../constants/leadinConfig';\n\nexport function configureRaven() {\n if (env !== 'prod') {\n return;\n }\n\n Raven.config(\n 'https://e9b8f382cdd130c0d415cd977d2be56f@exceptions.hubspot.com/1',\n {\n instrument: {\n tryCatch: false,\n },\n }\n ).install();\n\n Raven.setTagsContext({\n leadin: leadinPluginVersion,\n php: phpVersion,\n wordpress: wpVersion,\n });\n\n Raven.setUserContext({\n hub: portalId,\n plugins: Object.keys(plugins)\n .map(name => `${name}#${plugins[name].Version}`)\n .join(','),\n });\n}\n\nexport default Raven;\n","import { hubspotBaseUrl, portalId, i18n } from './constants/leadinConfig';\n\nfunction addMenuItem(text, href) {\n jQuery('#toplevel_page_leadin')\n .find('li')\n .last()\n .before(`<li><a href=\"${href}\" target=\"_blank\">${text}</a></li>`);\n}\n\nexport function addExternalLinks() {\n const chatflowsUrl = `${hubspotBaseUrl}/chatflows/${portalId}`;\n const emailUrl = `${hubspotBaseUrl}/email/${portalId}`;\n addMenuItem(i18n.chatflows, chatflowsUrl);\n addMenuItem(i18n.email, emailUrl);\n}\n","export function log(...args) {\n try {\n if (window.localStorage.LEADIN_DEBUG) {\n args.unshift('[Leadin]');\n console.log(...args);\n }\n } catch (e) {\n //\n }\n}\n","export const domElements = {\n iframe: '#leadin-iframe',\n spaNavigationButtons:\n '.toplevel_page_leadin > a, a[href=\"admin.php?page=leadin_forms\"], a[href=\"admin.php?page=leadin_settings\"]',\n subMenuButtons: '.toplevel_page_leadin > ul > li',\n};\n","import EventBus from './EventBus';\nimport { log } from '../utils';\nimport { domElements } from '../constants/selectors';\nimport { hubspotBaseUrl } from '../constants/leadinConfig';\nimport Raven from './Raven';\n\nconst eventBus = new EventBus();\nconst callbacks = [];\n\nfunction postMessageObject(message) {\n log('Posting message');\n log(JSON.stringify(message));\n jQuery(domElements.iframe)[0].contentWindow.postMessage(\n JSON.stringify(message),\n hubspotBaseUrl\n );\n}\n\nfunction reply(message, response) {\n if (!response) {\n response = 'Message Received';\n }\n const newMessage = Object.assign({}, message);\n newMessage.response = response;\n postMessageObject(newMessage);\n}\n\nfunction handleResponse(message) {\n callbacks[message._callbackId - 1](message.response);\n}\n\nfunction handleMessage(message) {\n log('Received message');\n log(JSON.stringify(message));\n\n if (message.response && message._callbackId) {\n handleResponse(message);\n } else {\n Object.keys(message).forEach(key => {\n eventBus.trigger(key, [message[key], reply.bind(null, message)]);\n });\n }\n}\n\nfunction handleMessageEvent(event) {\n if (event.origin === hubspotBaseUrl) {\n try {\n const data = JSON.parse(event.data);\n handleMessage(data);\n } catch (e) {\n // Error in parsing message\n }\n }\n}\n\nexport function postMessage(key, payload, onResponse, onTimeout, timeout) {\n if (!timeout) {\n timeout = 500;\n }\n\n const timeoutCallback = function() {\n const errorMessage = `LeadinWordpressPlugin postMessage response timeout on message key: ${key}`;\n log(errorMessage);\n Raven.captureMessage(errorMessage);\n onTimeout();\n };\n\n const timeoutId = setTimeout(Raven.wrap(timeoutCallback), timeout);\n\n const message = {};\n message[key] = payload;\n message._callbackId = callbacks.push((...args) => {\n clearTimeout(timeoutId);\n onResponse(...args);\n });\n postMessageObject(message);\n}\n\nexport function onMessage(key, callback) {\n eventBus.on(key, (...args) => {\n callback.apply(null, args.slice(1));\n });\n}\n\nexport function initInterframe() {\n window.addEventListener('message', handleMessageEvent);\n}\n","import Raven from './Raven';\n\nexport default class EventBus {\n constructor() {\n this.bus = jQuery({});\n }\n\n trigger(...args) {\n this.bus.trigger(...args);\n }\n\n on(event, callback) {\n this.bus.on(event, Raven.wrap(callback));\n }\n}\n","import Raven from '../lib/Raven';\nimport { ajaxUrl, nonce } from '../constants/leadinConfig';\n\nfunction makeRequest(action, method, payload, success, error) {\n const url = `${ajaxUrl}?action=${action}&_ajax_nonce=${nonce}`;\n const ajaxPayload = {\n url,\n method,\n contentType: 'application/json',\n success:\n typeof success === 'function'\n ? Raven.wrap(data => success(JSON.parse(data)))\n : undefined,\n error: Raven.wrap(jqXHR => {\n let message;\n try {\n message = JSON.parse(jqXHR.responseText).error;\n } catch (e) {\n message = jqXHR.responseText;\n }\n\n Raven.captureMessage(\n `AJAX request failed with code ${jqXHR.status}: ${message}`\n );\n\n if (typeof error === 'function') {\n error();\n }\n }),\n };\n\n if (payload) {\n ajaxPayload.data = JSON.stringify(payload);\n }\n\n jQuery.ajax(ajaxPayload);\n}\n\nfunction post(action, payload, success, error) {\n return makeRequest(action, 'POST', payload, success, error);\n}\n\nfunction get(action, success, error) {\n return makeRequest(action, 'GET', null, success, error);\n}\n\nconst getPortal = () => get('leadin_get_portal');\nlet portalPollingTimeout;\nlet stopPortalPolling = false;\n\nexport function startPortalIdPolling() {\n portalPollingTimeout = setTimeout(() => {\n getPortal(data => {\n if (data.portalId) {\n location.reload(true);\n } else if (!stopPortalPolling) {\n startPortalIdPolling();\n }\n }, startPortalIdPolling);\n }, 5000);\n}\n\nexport function clearPortalIdPolling() {\n clearTimeout(portalPollingTimeout);\n stopPortalPolling = true;\n}\n\nexport const connect = (portalId, success, error) =>\n post('leadin_registration_ajax', { portalId }, success, error);\n\nexport const disconnect = post.bind(null, 'leadin_disconnect_ajax', {});\nexport const getDomain = get.bind(null, 'leadin_get_domain');\n","import { onMessage, postMessage } from '../lib/Interframe';\n\nfunction createHandler(key) {\n return onMessage.bind(null, key);\n}\n\nexport const onClearQueryParam = createHandler('leadin_clear_query_param');\nexport const onConnect = createHandler('leadin_connect_portal');\nexport const onDisableNavigation = createHandler('leadin_disable_navigation');\nexport const onDisconnect = createHandler('leadin_disconnect_portal');\nexport const onEnterFullScreen = createHandler('leadin_enter_fullscreen');\nexport const onExitFullScreen = createHandler('leadin_exit_fullscreen');\nexport const onGetAssetsPayload = createHandler('leadin_get_assets_payload');\nexport const onGetDomain = createHandler('leadin_get_wp_domain');\nexport const onInitNavigation = createHandler('leadin_init_navigation');\nexport const onInterframeReady = createHandler('leadin_interframe_ready');\nexport const onPageReload = createHandler('leadin_page_reload');\nexport const onUpgrade = createHandler('leadin_upgrade');\nexport const onSyncRoute = createHandler('leadin_sync_route');\n\nexport function changeRoute(route) {\n postMessage('leadin_change_route', route, null, () => location.reload(true));\n}\n","export const validAppRoutes = ['forms', 'settings'];\n","import Raven from './lib/Raven';\nimport { domElements } from './constants/selectors';\nimport { changeRoute } from './api/hubspotPluginApi';\nimport { validAppRoutes } from './constants/routes';\n\nexport function initNavigation() {\n function setSelectedMenuItem() {\n jQuery(domElements.subMenuButtons).removeClass('current');\n const pageParam = window.location.search.match(/\\?page=leadin_?\\w*/)[0]; // filter page query param\n const selectedElement = jQuery(`a[href=\"admin.php${pageParam}\"]`);\n selectedElement.parent().addClass('current');\n }\n\n function handleNavigation() {\n let appRoute = window.location.search.match(/page=leadin_?(\\w*)/)[1];\n\n // prefix route with /\n if (appRoute) {\n appRoute = `/${appRoute}`;\n }\n\n changeRoute(appRoute);\n setSelectedMenuItem();\n }\n\n function handleClick() {\n // Don't interrupt modifier keys\n if (event.metaKey || event.altKey || event.shiftKey) {\n return;\n }\n window.history.pushState(null, null, jQuery(this).attr('href'));\n handleNavigation();\n event.preventDefault();\n }\n\n // Browser back and forward events navigation\n window.addEventListener('popstate', handleNavigation);\n\n // Menu Navigation\n jQuery(domElements.spaNavigationButtons).click(Raven.wrap(handleClick));\n}\n\n// Given a route like \"/settings/forms\", parse it into \"?page=leadin_settings&leadin_route[0]=forms\"\nexport function syncRoute(path = '') {\n const routes = path.split('/');\n\n while (routes[0] === '') {\n routes.shift();\n }\n\n let appRoute = '';\n\n if (validAppRoutes.includes(routes[0])) {\n appRoute = `_${routes[0]}`;\n routes.shift();\n }\n\n const queryParamsRoutes = routes.reduce((acc, route, index) => {\n return `${acc}&${encodeURIComponent(`leadin_route[${index}]`)}=${route}`;\n }, '');\n\n window.history.replaceState(\n null,\n null,\n `?page=leadin${appRoute}${queryParamsRoutes}`\n );\n}\n\nexport function disableNavigation() {\n jQuery(domElements.allMenuButtons).off('click');\n}\n","export default {\n 'genesis-sample': {\n formsStyle: {\n fontFamily: 'Source Sans Pro',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#0073e5',\n },\n chatStyle: {\n accentColor: '#0073e5',\n },\n onScrollLeadFlowStyle: {\n color: '#0073e5',\n },\n onExitLeadFlowStyle: {\n color: '#0073e5',\n },\n },\n 'academy-pro': {\n formsStyle: {\n fontFamily: 'PT Sans',\n labelTextColor: '#222222',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#e22c2f',\n },\n chatStyle: {\n accentColor: '#e22c2f',\n },\n onScrollLeadFlowStyle: {\n color: '#e22c2f',\n },\n onExitLeadFlowStyle: {\n color: '#e22c2f',\n },\n },\n 'agency-pro': {\n formsStyle: {\n fontFamily: 'EB Garamond',\n labelTextColor: '#666666',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#d7c603',\n },\n chatStyle: {\n accentColor: '#d7c603',\n },\n onScrollLeadFlowStyle: {\n color: '#d7c603',\n },\n onExitLeadFlowStyle: {\n color: '#d7c603',\n },\n },\n 'agentpress-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#1a212b',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#d23836',\n },\n chatStyle: {\n accentColor: '#d23836',\n },\n onScrollLeadFlowStyle: {\n color: '#d23836',\n },\n onExitLeadFlowStyle: {\n color: '#d23836',\n },\n },\n 'altitude-pro': {\n formsStyle: {\n fontFamily: 'Ek Mukta',\n labelTextColor: '#000000',\n labelTextSize: '20px',\n submitFontColor: '#ffffff',\n submitColor: '#079bc4',\n },\n chatStyle: {\n accentColor: '#079bc4',\n },\n onScrollLeadFlowStyle: {\n color: '#079bc4',\n },\n onExitLeadFlowStyle: {\n color: '#079bc4',\n },\n },\n 'ambiance-pro': {\n formsStyle: {\n fontFamily: 'Merriweather',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#e12727',\n },\n chatStyle: {\n accentColor: '#e12727',\n },\n onScrollLeadFlowStyle: {\n color: '#e12727',\n },\n onExitLeadFlowStyle: {\n color: '#e12727',\n },\n },\n 'atmosphere-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#333333',\n labelTextSize: '20px',\n submitFontColor: '#ffffff',\n submitColor: '#333333',\n },\n chatStyle: {\n accentColor: '#333333',\n },\n onScrollLeadFlowStyle: {\n color: '#333333',\n },\n onExitLeadFlowStyle: {\n color: '#333333',\n },\n },\n 'author-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'authority-pro': {\n formsStyle: {\n fontFamily: 'Libre Baskerville',\n labelTextColor: '#333333',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#000cff',\n },\n chatStyle: {\n accentColor: '#000cff',\n },\n onScrollLeadFlowStyle: {\n color: '#000cff',\n },\n onExitLeadFlowStyle: {\n color: '#000cff',\n },\n },\n 'beautiful-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#666666',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#e5554e',\n },\n chatStyle: {\n accentColor: '#e5554e',\n },\n onScrollLeadFlowStyle: {\n color: '#e5554e',\n },\n onExitLeadFlowStyle: {\n color: '#e5554e',\n },\n },\n 'breakthrough-pro': {\n formsStyle: {\n fontFamily: 'Alegreya Sans',\n labelTextColor: '#4e4756',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#4a4f9b',\n },\n chatStyle: {\n accentColor: '#4a4f9b',\n },\n onScrollLeadFlowStyle: {\n color: '#4a4f9b',\n },\n onExitLeadFlowStyle: {\n color: '#4a4f9b',\n },\n },\n 'cafe-pro': {\n formsStyle: {\n fontFamily: 'Crimson Text',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'daily-dish-pro': {\n formsStyle: {\n fontFamily: 'Cormorant',\n labelTextColor: '#000000',\n labelTextSize: '20px',\n submitFontColor: '#ffffff',\n submitColor: '#d9037f',\n },\n chatStyle: {\n accentColor: '#d9037f',\n },\n onScrollLeadFlowStyle: {\n color: '#d9037f',\n },\n onExitLeadFlowStyle: {\n color: '#d9037f',\n },\n },\n 'digital-pro': {\n formsStyle: {\n fontFamily: 'Lora',\n labelTextColor: '#5b5e5e',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#e85555',\n },\n chatStyle: {\n accentColor: '#e85555',\n },\n onScrollLeadFlowStyle: {\n color: '#e85555',\n },\n onExitLeadFlowStyle: {\n color: '#e85555',\n },\n },\n 'education-pro': {\n formsStyle: {\n fontFamily: 'Roboto Condensed',\n labelTextColor: '#444444',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#78a7c8',\n },\n chatStyle: {\n accentColor: '#78a7c8',\n },\n onScrollLeadFlowStyle: {\n color: '#78a7c8',\n },\n onExitLeadFlowStyle: {\n color: '#78a7c8',\n },\n },\n 'eleven40-pro': {\n formsStyle: {\n fontFamily: 'Lora',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#ed702b',\n },\n chatStyle: {\n accentColor: '#ed702b',\n },\n onScrollLeadFlowStyle: {\n color: '#ed702b',\n },\n onExitLeadFlowStyle: {\n color: '#ed702b',\n },\n },\n 'enterprise-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#777777',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#31b2ed',\n },\n chatStyle: {\n accentColor: '#31b2ed',\n },\n onScrollLeadFlowStyle: {\n color: '#31b2ed',\n },\n onExitLeadFlowStyle: {\n color: '#31b2ed',\n },\n },\n 'essence-pro': {\n formsStyle: {\n fontFamily: 'Alegreya Sans',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#be8100',\n },\n chatStyle: {\n accentColor: '#be8100',\n },\n onScrollLeadFlowStyle: {\n color: '#be8100',\n },\n onExitLeadFlowStyle: {\n color: '#be8100',\n },\n },\n 'executive-pro': {\n formsStyle: {\n fontFamily: 'Open Sans',\n labelTextColor: '#222222',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#64c9ea',\n },\n chatStyle: {\n accentColor: '#64c9ea',\n },\n onScrollLeadFlowStyle: {\n color: '#64c9ea',\n },\n onExitLeadFlowStyle: {\n color: '#64c9ea',\n },\n },\n 'generate-pro': {\n formsStyle: {\n fontFamily: 'Source Sans Pro',\n labelTextColor: '#222222',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#eb232f',\n },\n chatStyle: {\n accentColor: '#eb232f',\n },\n onScrollLeadFlowStyle: {\n color: '#eb232f',\n },\n onExitLeadFlowStyle: {\n color: '#eb232f',\n },\n },\n 'infinity-pro': {\n formsStyle: {\n fontFamily: 'Cormorant Garamond',\n labelTextColor: '#000000',\n labelTextSize: '22px',\n submitFontColor: '#ffffff',\n submitColor: '#d43c67',\n },\n chatStyle: {\n accentColor: '#d43c67',\n },\n onScrollLeadFlowStyle: {\n color: '#d43c67',\n },\n onExitLeadFlowStyle: {\n color: '#d43c67',\n },\n },\n 'interior-pro': {\n formsStyle: {\n fontFamily: 'Lora',\n labelTextColor: '#777777',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#009092',\n },\n chatStyle: {\n accentColor: '#009092',\n },\n onScrollLeadFlowStyle: {\n color: '#009092',\n },\n onExitLeadFlowStyle: {\n color: '#009092',\n },\n },\n 'lifestyle-pro': {\n formsStyle: {\n fontFamily: 'Droid Sans',\n labelTextColor: '#767673',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#27968b',\n },\n chatStyle: {\n accentColor: '#27968b',\n },\n onScrollLeadFlowStyle: {\n color: '#27968b',\n },\n onExitLeadFlowStyle: {\n color: '#27968b',\n },\n },\n 'magazine-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#222222',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#008285',\n },\n chatStyle: {\n accentColor: '#008285',\n },\n onScrollLeadFlowStyle: {\n color: '#008285',\n },\n onExitLeadFlowStyle: {\n color: '#008285',\n },\n },\n 'metro-pro': {\n formsStyle: {\n fontFamily: 'Helvetica Neue',\n labelTextColor: '#222222',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#f96e5b',\n },\n chatStyle: {\n accentColor: '#f96e5b',\n },\n onScrollLeadFlowStyle: {\n color: '#f96e5b',\n },\n onExitLeadFlowStyle: {\n color: '#f96e5b',\n },\n },\n 'minimum-pro': {\n formsStyle: {\n fontFamily: 'Roboto Slab',\n labelTextColor: '#333333',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#0ebfe9',\n },\n chatStyle: {\n accentColor: '#0ebfe9',\n },\n onScrollLeadFlowStyle: {\n color: '#0ebfe9',\n },\n onExitLeadFlowStyle: {\n color: '#0ebfe9',\n },\n },\n 'modern-studio-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'monochrome-pro': {\n formsStyle: {\n fontFamily: 'Muli',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'news-pro': {\n formsStyle: {\n fontFamily: 'Raleway',\n labelTextColor: '#666666',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#ff0000',\n },\n chatStyle: {\n accentColor: '#ff0000',\n },\n onScrollLeadFlowStyle: {\n color: '#ff0000',\n },\n onExitLeadFlowStyle: {\n color: '#ff0000',\n },\n },\n 'no-sidebar-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#333333',\n },\n chatStyle: {\n accentColor: '#333333',\n },\n onScrollLeadFlowStyle: {\n color: '#333333',\n },\n onExitLeadFlowStyle: {\n color: '#333333',\n },\n },\n 'outfitter-pro': {\n formsStyle: {\n fontFamily: 'Noto Sans',\n labelTextColor: '#546e7a',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#000000',\n },\n chatStyle: {\n accentColor: '#000000',\n },\n onScrollLeadFlowStyle: {\n color: '#000000',\n },\n onExitLeadFlowStyle: {\n color: '#000000',\n },\n },\n 'outreach-pro': {\n formsStyle: {\n fontFamily: 'Lato',\n labelTextColor: '#333333',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#6ab446',\n },\n chatStyle: {\n accentColor: '#6ab446',\n },\n onScrollLeadFlowStyle: {\n color: '#6ab446',\n },\n onExitLeadFlowStyle: {\n color: '#6ab446',\n },\n },\n 'parallax-pro': {\n formsStyle: {\n fontFamily: 'Cormorant Garamond',\n labelTextColor: '#000000',\n labelTextSize: '22px',\n submitFontColor: '#ffffff',\n submitColor: '#00a0af',\n },\n chatStyle: {\n accentColor: '#00a0af',\n },\n onScrollLeadFlowStyle: {\n color: '#00a0af',\n },\n onExitLeadFlowStyle: {\n color: '#00a0af',\n },\n },\n 'revolution-pro': {\n formsStyle: {\n fontFamily: 'Noto Serif SC',\n labelTextColor: '#000000',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#008080',\n },\n chatStyle: {\n accentColor: '#008080',\n },\n onScrollLeadFlowStyle: {\n color: '#008080',\n },\n onExitLeadFlowStyle: {\n color: '#008080',\n },\n },\n 'sixteen-nine-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#1dbec0',\n },\n chatStyle: {\n accentColor: '#1dbec0',\n },\n onScrollLeadFlowStyle: {\n color: '#1dbec0',\n },\n onExitLeadFlowStyle: {\n color: '#1dbec0',\n },\n },\n 'smart-passive-income-pro': {\n formsStyle: {\n fontFamily: 'Roboto',\n labelTextColor: '#333333',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#0e763c',\n },\n chatStyle: {\n accentColor: '#0e763c',\n },\n onScrollLeadFlowStyle: {\n color: '#0e763c',\n },\n onExitLeadFlowStyle: {\n color: '#0e763c',\n },\n },\n 'wellness-pro': {\n formsStyle: {\n fontFamily: 'Open Sans',\n labelTextColor: '#000000',\n labelTextSize: '16px',\n submitFontColor: '#ffffff',\n submitColor: '#5da44f',\n },\n chatStyle: {\n accentColor: '#5da44f',\n },\n onScrollLeadFlowStyle: {\n color: '#5da44f',\n },\n onExitLeadFlowStyle: {\n color: '#5da44f',\n },\n },\n 'workstation-pro': {\n formsStyle: {\n fontFamily: 'Baskerville',\n labelTextColor: '#222222',\n labelTextSize: '18px',\n submitFontColor: '#ffffff',\n submitColor: '#ff4800',\n },\n chatStyle: {\n accentColor: '#ff4800',\n },\n onScrollLeadFlowStyle: {\n color: '#ff4800',\n },\n onExitLeadFlowStyle: {\n color: '#ff4800',\n },\n },\n};\n","import {\n onInterframeReady,\n onConnect,\n onDisconnect,\n onUpgrade,\n onPageReload,\n onInitNavigation,\n onDisableNavigation,\n onClearQueryParam,\n onGetDomain,\n onGetAssetsPayload,\n onEnterFullScreen,\n onExitFullScreen,\n onSyncRoute,\n} from './api/hubspotPluginApi';\nimport {\n connect,\n disconnect,\n getDomain,\n clearPortalIdPolling,\n} from './api/wordpressApi';\nimport { adminUrl, theme } from './constants/leadinConfig';\nimport { initNavigation, disableNavigation, syncRoute } from './navigation';\nimport enterFullScreen, { exitFullScreen } from './fullscreen';\nimport themes from './constants/themes';\n\nonInterframeReady((message, reply) => {\n reply('Interframe Ready');\n});\n\nonConnect((portalId, reply) => {\n connect(\n portalId,\n () => {\n clearPortalIdPolling();\n reply({ success: true });\n },\n reply.bind(null, { success: false })\n );\n});\n\nonDisconnect((message, reply) => {\n disconnect(\n reply.bind(null, { success: true }),\n reply.bind(null, { success: false })\n );\n});\n\nonUpgrade((message, reply) => {\n reply();\n location.href = `${adminUrl}plugins.php`;\n});\n\nonPageReload((message, reply) => {\n reply();\n window.location.reload(true);\n});\n\nonInitNavigation((message, reply) => {\n reply();\n initNavigation();\n});\n\nonDisableNavigation((message, reply) => {\n reply();\n disableNavigation();\n});\n\nonClearQueryParam((message, reply) => {\n reply();\n let currentWindowLocation = window.location.toString();\n if (currentWindowLocation.indexOf('?') > 0) {\n currentWindowLocation = currentWindowLocation.substring(\n 0,\n currentWindowLocation.indexOf('?')\n );\n }\n const newWindowLocation = `${currentWindowLocation}?page=leadin`;\n window.history.pushState({}, '', newWindowLocation);\n});\n\nonGetDomain((message, reply) => {\n getDomain(data => {\n if (data.domain) {\n reply(data.domain);\n }\n });\n});\n\nonGetAssetsPayload((message, reply) => {\n reply({ payload: themes[theme] });\n});\n\nonEnterFullScreen((message, reply) => {\n enterFullScreen();\n reply();\n});\n\nonExitFullScreen((message, reply) => {\n exitFullScreen();\n reply();\n});\n\nonSyncRoute((message, reply) => {\n syncRoute(message);\n reply();\n});\n","import { domElements } from './constants/selectors';\n\nexport default function enterFullScreen() {\n jQuery(domElements.iframe).addClass('leadin-iframe-fullscreen');\n}\n\nexport function exitFullScreen() {\n jQuery(domElements.iframe).removeClass('leadin-iframe-fullscreen');\n}\n","import Raven, { configureRaven } from './lib/Raven';\nimport { addExternalLinks } from './menu';\nimport { portalId } from './constants/leadinConfig';\nimport { initInterframe } from './lib/Interframe';\nimport { startPortalIdPolling } from './api/wordpressApi';\nimport './handlers';\n\nfunction main() {\n initInterframe();\n\n // Enable App Navigation only when viewing the plugin\n if (window.location.search.indexOf('page=leadin') !== -1) {\n if (!portalId) {\n startPortalIdPolling();\n }\n }\n\n jQuery(document).ready(addExternalLinks);\n}\n\nconfigureRaven();\nRaven.context(main);\n"],"sourceRoot":""}
|
|
style/leadin-bridge.css
CHANGED
@@ -23,6 +23,8 @@ body.toplevel_page_leadin {
|
|
23 |
}
|
24 |
|
25 |
#leadin-iframe {
|
|
|
|
|
26 |
border: 0 none transparent !important;
|
27 |
padding: 0 !important;
|
28 |
height: 100% !important;
|
@@ -32,7 +34,6 @@ body.toplevel_page_leadin {
|
|
32 |
.leadin-iframe-fullscreen {
|
33 |
background-color: #fff;
|
34 |
position: fixed !important;
|
35 |
-
top: 0px !important;
|
36 |
left: 0px !important;
|
37 |
z-index: 99999 !important;
|
38 |
}
|
23 |
}
|
24 |
|
25 |
#leadin-iframe {
|
26 |
+
position: absolute;
|
27 |
+
top: 0;
|
28 |
border: 0 none transparent !important;
|
29 |
padding: 0 !important;
|
30 |
height: 100% !important;
|
34 |
.leadin-iframe-fullscreen {
|
35 |
background-color: #fff;
|
36 |
position: fixed !important;
|
|
|
37 |
left: 0px !important;
|
38 |
z-index: 99999 !important;
|
39 |
}
|