diff --git a/go.mod b/go.mod index 35fb0b5de44..7687267b036 100644 --- a/go.mod +++ b/go.mod @@ -31,6 +31,7 @@ require ( github.com/crowdsecurity/grokky v0.2.2 github.com/crowdsecurity/machineid v1.0.3 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc + github.com/evanw/esbuild v0.27.2 github.com/expr-lang/expr v1.17.8 github.com/fatih/color v1.19.0 github.com/fsnotify/fsnotify v1.9.0 @@ -79,6 +80,7 @@ require ( github.com/slack-go/slack v0.21.0 github.com/spf13/cobra v1.10.2 github.com/stretchr/testify v1.11.1 + github.com/tetratelabs/wazero v1.11.0 github.com/umahmood/haversine v0.0.0-20151105152445-808ab04add26 github.com/wasilibs/go-re2 v1.10.0 github.com/xhit/go-simple-mail/v2 v2.16.0 @@ -190,6 +192,7 @@ require ( github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect github.com/klauspost/compress v1.18.5 // indirect github.com/klauspost/cpuid/v2 v2.3.0 // indirect + github.com/kylelemons/godebug v1.1.0 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/lufia/plan9stats v0.0.0-20260330125221-c963978e514e // indirect github.com/magefile/mage v1.17.1 // indirect @@ -219,7 +222,6 @@ require ( github.com/shopspring/decimal v1.4.0 // indirect github.com/spf13/cast v1.10.0 // indirect github.com/spf13/pflag v1.0.10 // indirect - github.com/tetratelabs/wazero v1.11.0 // indirect github.com/tidwall/gjson v1.18.0 // indirect github.com/tidwall/match v1.2.0 // indirect github.com/tidwall/pretty v1.2.1 // indirect diff --git a/go.sum b/go.sum index 9fe19854a6a..67a39ff5559 100644 --- a/go.sum +++ b/go.sum @@ -159,6 +159,8 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU= github.com/ebitengine/purego v0.10.0/go.mod h1:iIjxzd6CiRiOG0UyXP+V1+jWqUXVjPKLAI0mRfJZTmQ= +github.com/evanw/esbuild v0.27.2 h1:3xBEws9y/JosfewXMM2qIyHAi+xRo8hVx475hVkJfNg= +github.com/evanw/esbuild v0.27.2/go.mod h1:D2vIQZqV/vIf/VRHtViaUtViZmG7o+kKmlBfVQuRi48= github.com/expr-lang/expr v1.17.8 h1:W1loDTT+0PQf5YteHSTpju2qfUfNoBt4yw9+wOEU9VM= github.com/expr-lang/expr v1.17.8/go.mod h1:8/vRC7+7HBzESEqt5kKpYXxrxkr31SaO8r40VO/1IT4= github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= @@ -712,6 +714,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/pkg/acquisition/modules/appsec/appsec_hooks_test.go b/pkg/acquisition/modules/appsec/appsec_hooks_test.go index b2af7da019a..11d39d47ce4 100644 --- a/pkg/acquisition/modules/appsec/appsec_hooks_test.go +++ b/pkg/acquisition/modules/appsec/appsec_hooks_test.go @@ -11,6 +11,7 @@ import ( "github.com/crowdsecurity/crowdsec/pkg/appsec" "github.com/crowdsecurity/crowdsec/pkg/appsec/appsec_rule" + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" "github.com/crowdsecurity/crowdsec/pkg/pipeline" ) @@ -1339,3 +1340,192 @@ func TestAppsecPhaseScopedHooks(t *testing.T) { runTests(t, tests) } + +func TestAppsecOnChallengeHooks(t *testing.T) { + powWorkerURL, err := url.Parse(challenge.ChallengePowWorkerPath) + require.NoError(t, err) + + tests := []appsecRuleTest{ + { + name: "pre_eval issues a challenge when no cookie is present", + expected_load_ok: true, + pre_eval: []appsec.Hook{ + {Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + RemoteAddr: "1.2.3.4", + Method: "GET", + URI: "/protected", + HTTPRequest: &http.Request{Host: "example.com"}, + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Len(t, responses, 1) + require.Equal(t, appsec.ChallengeRemediation, responses[0].Action) + require.NotEmpty(t, responses[0].UserHTTPBodyContent) + require.Contains(t, responses[0].UserHeaders["Content-Type"], "text/html") + }, + }, + { + name: "on_challenge: no cookie → user hooks skipped (filter would nil-deref)", + expected_load_ok: true, + // This filter would nil-deref if it ran without a fingerprint. The + // dispatcher must skip it when no cookie is present. + on_challenge: []appsec.Hook{ + {Filter: "fingerprint.Bot.MismatchWebGLInWorker", Apply: []string{"DropRequest('bot')"}}, + }, + // Must reference SendChallenge() somewhere to force ChallengeRuntime init. + pre_eval: []appsec.Hook{ + {Filter: "false", Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + RemoteAddr: "1.2.3.4", + Method: "GET", + URI: "/protected", + HTTPRequest: &http.Request{Host: "example.com"}, + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Len(t, responses, 1) + require.False(t, responses[0].InBandInterrupt, "on_challenge must not fire without a fingerprint") + }, + }, + { + name: "on_challenge: PoW worker path served, WAF evaluation skipped", + expected_load_ok: true, + inband_rules: []appsec_rule.CustomRule{ + { + Name: "rule1", + Zones: []string{"ARGS"}, + Variables: []string{"foo"}, + Match: appsec_rule.Match{Type: "regex", Value: "^toto"}, + Transform: []string{"lowercase"}, + }, + }, + // Force the challenge runtime to be initialized by referencing SendChallenge() + // in a hook that won't match this request. + on_challenge: []appsec.Hook{ + {Filter: "false", Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + RemoteAddr: "1.2.3.4", + Method: "GET", + URI: challenge.ChallengePowWorkerPath, + Args: url.Values{"foo": []string{"toto"}}, // would normally trigger rule1 + HTTPRequest: &http.Request{Host: "example.com", URL: powWorkerURL}, + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Empty(t, events, "WAF should not have evaluated the infrastructure path") + require.Len(t, responses, 1) + require.Equal(t, appsec.ChallengeRemediation, responses[0].Action) + require.Equal(t, challenge.PowWorkerJS, responses[0].UserHTTPBodyContent) + require.Contains(t, responses[0].UserHeaders["Content-Type"], "application/javascript") + }, + }, + { + name: "on_challenge: invalid submission returns failed body, no hooks run", + expected_load_ok: true, + // Unconditional DropRequest in on_challenge must NOT fire on an + // invalid submission — the dispatcher returns the failed JSON + // body and skips user hooks. + on_challenge: []appsec.Hook{ + {Apply: []string{"DropRequest('should not fire')"}}, + }, + // Force ChallengeRuntime init. + pre_eval: []appsec.Hook{ + {Filter: "false", Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + RemoteAddr: "1.2.3.4", + Method: "POST", + URI: challenge.ChallengeSubmitPath, + HTTPRequest: func() *http.Request { + u, _ := url.Parse(challenge.ChallengeSubmitPath) + return &http.Request{Host: "example.com", URL: u, Method: "POST"} + }(), + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Len(t, responses, 1) + require.Equal(t, appsec.ChallengeRemediation, responses[0].Action) + require.JSONEq(t, `{"status":"failed"}`, responses[0].UserHTTPBodyContent) + require.False(t, responses[0].InBandInterrupt, "on_challenge hooks must not run on invalid submission") + }, + }, + { + // Mock LAPI (see testAppSecEngine in appsec_test.go) exposes 5.4.3.2 + // as an allowlisted IP. SendChallenge() must be a no-op for it: no + // challenge HTML, no Set-Cookie, response stays at the default pass + // action so the request goes through cleanly. + name: "allowlisted IP: pre_eval SendChallenge() is suppressed", + expected_load_ok: true, + pre_eval: []appsec.Hook{ + {Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + ClientIP: "5.4.3.2", + RemoteAddr: "5.4.3.2", + Method: "GET", + URI: "/protected", + HTTPRequest: &http.Request{Host: "example.com"}, + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Len(t, responses, 1) + require.NotEqual(t, appsec.ChallengeRemediation, responses[0].Action, + "allowlisted IP must not be challenged") + require.Equal(t, appsec.AllowRemediation, appsecResponse.Action) + require.Empty(t, responses[0].UserHTTPBodyContent, "no challenge HTML must be served") + require.Empty(t, responses[0].UserHTTPCookies, "no challenge cookie must be issued") + require.False(t, responses[0].InBandInterrupt) + }, + }, + { + // Same allowlisted IP, but inside a /24 CIDR entry (5.4.4.0/24) — + // confirms range matches are honoured the same way as exact IPs. + name: "allowlisted CIDR: pre_eval SendChallenge() is suppressed", + expected_load_ok: true, + pre_eval: []appsec.Hook{ + {Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + ClientIP: "5.4.4.42", + RemoteAddr: "5.4.4.42", + Method: "GET", + URI: "/protected", + HTTPRequest: &http.Request{Host: "example.com"}, + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Len(t, responses, 1) + require.NotEqual(t, appsec.ChallengeRemediation, responses[0].Action) + require.Equal(t, appsec.AllowRemediation, appsecResponse.Action) + require.Empty(t, responses[0].UserHTTPBodyContent) + require.Empty(t, responses[0].UserHTTPCookies) + }, + }, + { + // Allowlisted IPs hitting infrastructure paths must not get the PoW + // worker JS served either — ProcessOnChallengeRules short-circuits + // before the path-based branch, so the request flows through normal + // WAF processing. + name: "allowlisted IP: PoW worker path is not served", + expected_load_ok: true, + // Reference SendChallenge() so ChallengeRuntime initialises. + on_challenge: []appsec.Hook{ + {Filter: "false", Apply: []string{"SendChallenge()"}}, + }, + input_request: appsec.ParsedRequest{ + ClientIP: "5.4.3.2", + RemoteAddr: "5.4.3.2", + Method: "GET", + URI: challenge.ChallengePowWorkerPath, + HTTPRequest: &http.Request{Host: "example.com", URL: powWorkerURL}, + }, + output_asserts: func(events []pipeline.Event, responses []appsec.AppsecTempResponse, appsecResponse appsec.BodyResponse, statusCode int) { + require.Len(t, responses, 1) + require.NotEqual(t, appsec.ChallengeRemediation, responses[0].Action, + "allowlisted IP must not receive the PoW worker JS") + require.NotEqual(t, challenge.PowWorkerJS, responses[0].UserHTTPBodyContent) + require.Equal(t, appsec.AllowRemediation, appsecResponse.Action) + }, + }, + } + + runTests(t, tests) +} diff --git a/pkg/acquisition/modules/appsec/appsec_runner.go b/pkg/acquisition/modules/appsec/appsec_runner.go index 8cf7bda4126..d427c905884 100644 --- a/pkg/acquisition/modules/appsec/appsec_runner.go +++ b/pkg/acquisition/modules/appsec/appsec_runner.go @@ -140,9 +140,7 @@ func (r *AppsecRunner) processRequest(state *appsec.AppsecRequestState, request } defer func() { - state.Tx.ProcessLogging() //We don't close the transaction here, as it will reset coraza internal state and break variable tracking - err := r.AppsecRuntime.ProcessPostEvalRules(state, request) if err != nil { r.logger.Errorf("unable to process PostEval rules: %s", err) @@ -156,11 +154,23 @@ func (r *AppsecRunner) processRequest(state *appsec.AppsecRequestState, request //FIXME: should we abort here ? } + // User has requested valid challenge, but we did not find a valid cookie + // Immediately return, everything has been set already + if state.RequireChallenge { + r.logger.Infof("valid challenge required, skipping WAF evaluation") + return nil + } + if state.DropInfo(request) != nil { r.logger.Debug("drop helper triggered during pre_eval, skipping WAF evaluation") return nil } + defer func() { + state.Tx.ProcessLogging() + //We don't close the transaction here, as it will reset coraza internal state and break variable tracking + }() + state.Tx.ProcessConnection(request.ClientIP, 0, "", 0) for k, v := range request.Args { @@ -220,14 +230,35 @@ func (r *AppsecRunner) processRequest(state *appsec.AppsecRequestState, request func (r *AppsecRunner) ProcessInBandRules(state *appsec.AppsecRequestState, request *appsec.ParsedRequest) error { tx := appsec.NewExtendedTransaction(r.AppsecInbandEngine, request.UUID) state.Tx = tx - // Even if we have no inband rules, we might have pre-eval or post-eval rules to process + // Even if we have no inband rules, we might have pre-eval, post-eval or on_challenge hooks to process if len(r.AppsecRuntime.InBandRules) == 0 && len(r.AppsecRuntime.CommonHooks.PreEval) == 0 && len(r.AppsecRuntime.InBandHooks.PreEval) == 0 && len(r.AppsecRuntime.CommonHooks.PostEval) == 0 && - len(r.AppsecRuntime.InBandHooks.PostEval) == 0 { + len(r.AppsecRuntime.InBandHooks.PostEval) == 0 && + len(r.AppsecRuntime.CompiledOnChallenge) == 0 && + r.AppsecRuntime.ChallengeRuntime == nil { + return nil + } + + // on_challenge runs before any WAF work: it serves PoW infrastructure paths, + // validates submissions, and populates state.Fingerprint from the cookie. + if err := r.AppsecRuntime.ProcessOnChallengeRules(state, request); err != nil { + r.logger.Errorf("unable to process OnChallenge rules: %s", err) + } + + // Infrastructure paths (PoW worker, challenge submit) already set up the + // full response — skip pre_eval, WAF evaluation and post_eval entirely. + if state.RequireChallenge { + r.logger.Debugf("challenge response set by on_challenge, skipping WAF evaluation") return nil } + + if state.DropInfo(request) != nil { + r.logger.Debug("drop helper triggered during on_challenge, skipping WAF evaluation") + return nil + } + err := r.processRequest(state, request) return err } @@ -247,12 +278,6 @@ func (r *AppsecRunner) ProcessOutOfBandRules(state *appsec.AppsecRequestState, r } func (r *AppsecRunner) handleInBandInterrupt(state *appsec.AppsecRequestState, request *appsec.ParsedRequest) { - - if allowed, reason := r.appsecAllowlistsClient.IsAllowlisted(request.ClientIP); allowed { - r.logger.Infof("%s is allowlisted by %s, skipping", request.ClientIP, reason) - return - } - //create the associated event for crowdsec itself evt, err := EventFromRequest(request, r.Labels, state.Tx.ID()) if err != nil { @@ -319,12 +344,6 @@ func (r *AppsecRunner) handleInBandInterrupt(state *appsec.AppsecRequestState, r } func (r *AppsecRunner) handleOutBandInterrupt(state *appsec.AppsecRequestState, request *appsec.ParsedRequest) { - - if allowed, reason := r.appsecAllowlistsClient.IsAllowlisted(request.ClientIP); allowed { - r.logger.Infof("%s is allowlisted by %s, skipping", request.ClientIP, reason) - return - } - evt, err := EventFromRequest(request, r.Labels, state.Tx.ID()) if err != nil { //let's not interrupt the pipeline for this @@ -391,6 +410,17 @@ func (r *AppsecRunner) handleRequest(request *appsec.ParsedRequest) { logger.Debug("Request received in runner") r.AppsecRuntime.ClearResponse(&state) + // Allowlisted IPs bypass every form of appsec processing (in-band rules, + // hooks, challenge issuance, on_challenge cookie validation, out-of-band + // rules). We send the default pass response straight back to the bouncer. + if r.appsecAllowlistsClient != nil { + if allowed, reason := r.appsecAllowlistsClient.IsAllowlisted(request.ClientIP); allowed { + logger.Infof("%s is allowlisted by %s, skipping WAF processing", request.ClientIP, reason) + request.ResponseChannel <- state.Response + return + } + } + request.IsInBand = true request.IsOutBand = false @@ -427,6 +457,9 @@ func (r *AppsecRunner) handleRequest(request *appsec.ParsedRequest) { // send back the result to the HTTP handler for the InBand part request.ResponseChannel <- state.Response + // TODO: what should we do with challenge remediation for OOB matches ? + // (captcha has no special treatment, but is also useless for OOB) + //Now let's process the out of band rules request.IsInBand = false diff --git a/pkg/acquisition/modules/appsec/appsec_test.go b/pkg/acquisition/modules/appsec/appsec_test.go index 6cf824e8649..b7103e0fd80 100644 --- a/pkg/acquisition/modules/appsec/appsec_test.go +++ b/pkg/acquisition/modules/appsec/appsec_test.go @@ -32,10 +32,12 @@ type appsecRuleTest struct { pre_eval []appsec.Hook post_eval []appsec.Hook on_match []appsec.Hook + on_challenge []appsec.Hook // Phase-scoped hooks (dispatched only during the matching phase) inband_on_match []appsec.Hook inband_pre_eval []appsec.Hook inband_post_eval []appsec.Hook + inband_on_challenge []appsec.Hook outofband_on_match []appsec.Hook outofband_pre_eval []appsec.Hook outofband_post_eval []appsec.Hook @@ -115,6 +117,7 @@ func testAppSecEngine(t *testing.T, test appsecRuleTest) { PreEval: test.pre_eval, PostEval: test.post_eval, OnMatch: test.on_match, + OnChallenge: test.on_challenge, BouncerBlockedHTTPCode: test.BouncerBlockedHTTPCode, UserBlockedHTTPCode: test.UserBlockedHTTPCode, UserPassedHTTPCode: test.UserPassedHTTPCode, @@ -123,11 +126,12 @@ func testAppSecEngine(t *testing.T, test appsecRuleTest) { } // Set phase-scoped hooks if any are provided - if len(test.inband_on_match) > 0 || len(test.inband_pre_eval) > 0 || len(test.inband_post_eval) > 0 { + if len(test.inband_on_match) > 0 || len(test.inband_pre_eval) > 0 || len(test.inband_post_eval) > 0 || len(test.inband_on_challenge) > 0 { appsecCfg.InBand = &appsec.AppsecPhaseConfig{ - OnMatch: test.inband_on_match, - PreEval: test.inband_pre_eval, - PostEval: test.inband_post_eval, + OnMatch: test.inband_on_match, + PreEval: test.inband_pre_eval, + PostEval: test.inband_post_eval, + OnChallenge: test.inband_on_challenge, } } @@ -146,6 +150,15 @@ func testAppSecEngine(t *testing.T, test appsecRuleTest) { } AppsecRuntime.InBandRules = []appsec.AppsecCollection{{Rules: inbandRules, NativeRules: nativeInbandRules}} AppsecRuntime.OutOfBandRules = []appsec.AppsecCollection{{Rules: outofbandRules, NativeRules: nativeOutofbandRules}} + + // Hooks using SendChallenge() or on_challenge hooks require the WASM + // challenge runtime; mirror what pkg/acquisition/modules/appsec/config.go + // does in production. We share a single runtime across tests — building + // one is expensive (~15-20s for WASM obfuscator warm-up), and none of the + // tests mutate runtime-level state like default difficulty. + if AppsecRuntime.NeedWASMVM { + AppsecRuntime.ChallengeRuntime = getSharedChallengeRuntime(t) + } appsecRunnerUUID := uuid.New().String() //we copy AppsecRutime for each runner wrt := *AppsecRuntime diff --git a/pkg/acquisition/modules/appsec/config.go b/pkg/acquisition/modules/appsec/config.go index 4b9554faa64..ac3b20a327e 100644 --- a/pkg/acquisition/modules/appsec/config.go +++ b/pkg/acquisition/modules/appsec/config.go @@ -20,6 +20,7 @@ import ( "github.com/crowdsecurity/crowdsec/pkg/apiclient/useragent" "github.com/crowdsecurity/crowdsec/pkg/appsec" "github.com/crowdsecurity/crowdsec/pkg/appsec/allowlists" + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" "github.com/crowdsecurity/crowdsec/pkg/metrics" ) @@ -115,7 +116,7 @@ func loadCertPool(caCertPath string, logger log.FieldLogger) (*x509.CertPool, er return caCertPool, nil } -func (w *Source) Configure(_ context.Context, yamlConfig []byte, logger *log.Entry, _ metrics.AcquisitionMetricsLevel) error { +func (w *Source) Configure(ctx context.Context, yamlConfig []byte, logger *log.Entry, _ metrics.AcquisitionMetricsLevel) error { if w.hub == nil { return errors.New("appsec datasource requires a hub. this is a bug, please report") } @@ -188,6 +189,15 @@ func (w *Source) Configure(_ context.Context, yamlConfig []byte, logger *log.Ent return fmt.Errorf("unable to build appsec_config: %w", err) } + if appsecRuntime.NeedWASMVM { + logger.Info("Initializing WASM runtime for challenge obfuscation") + challengeRuntime, err := challenge.NewChallengeRuntime(ctx) + if err != nil { + return fmt.Errorf("unable to create challenge runtime: %w", err) + } + appsecRuntime.ChallengeRuntime = challengeRuntime + } + w.AppsecRuntime = appsecRuntime err = w.AppsecRuntime.ProcessOnLoadRules() @@ -201,14 +211,11 @@ func (w *Source) Configure(_ context.Context, yamlConfig []byte, logger *log.Ent for nbRoutine := range w.config.Routines { appsecRunnerUUID := uuid.New().String() - // we copy AppsecRuntime for each runner - wrt := *w.AppsecRuntime - wrt.Logger = w.logger.Dup().WithField("runner_uuid", appsecRunnerUUID) runner := AppsecRunner{ inChan: w.InChan, UUID: appsecRunnerUUID, logger: w.logger.WithField("runner_uuid", appsecRunnerUUID), - AppsecRuntime: &wrt, + AppsecRuntime: w.AppsecRuntime, Labels: w.config.Labels, appsecAllowlistsClient: w.appsecAllowlistClient, } diff --git a/pkg/acquisition/modules/appsec/metrics.go b/pkg/acquisition/modules/appsec/metrics.go index 167d5828390..734cbe72766 100644 --- a/pkg/acquisition/modules/appsec/metrics.go +++ b/pkg/acquisition/modules/appsec/metrics.go @@ -11,6 +11,7 @@ func (*Source) GetMetrics() []prometheus.Collector { metrics.AppsecReqCounter, metrics.AppsecBlockCounter, metrics.AppsecRuleHits, + metrics.AppsecFingerprintMismatch, metrics.AppsecOutbandParsingHistogram, metrics.AppsecInbandParsingHistogram, metrics.AppsecGlobalParsingHistogram, @@ -22,6 +23,7 @@ func (*Source) GetAggregMetrics() []prometheus.Collector { metrics.AppsecReqCounter, metrics.AppsecBlockCounter, metrics.AppsecRuleHits, + metrics.AppsecFingerprintMismatch, metrics.AppsecOutbandParsingHistogram, metrics.AppsecInbandParsingHistogram, metrics.AppsecGlobalParsingHistogram, diff --git a/pkg/acquisition/modules/appsec/testhelpers_test.go b/pkg/acquisition/modules/appsec/testhelpers_test.go new file mode 100644 index 00000000000..5548154937b --- /dev/null +++ b/pkg/acquisition/modules/appsec/testhelpers_test.go @@ -0,0 +1,31 @@ +package appsecacquisition + +import ( + "context" + "sync" + "testing" + + "github.com/stretchr/testify/require" + + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" +) + +// sharedChallengeRuntime lazily creates a single ChallengeRuntime for the +// whole package test run. NewChallengeRuntime runs the obfuscator WASM to +// generate a challenge JS bundle (~15-20s), so spinning one up per test is +// prohibitively slow and unnecessary for integration tests that don't mutate +// runtime-level state. +var ( + sharedChallengeRuntimeOnce sync.Once + sharedChallengeRuntimeInst *challenge.ChallengeRuntime + sharedChallengeRuntimeErr error +) + +func getSharedChallengeRuntime(t *testing.T) *challenge.ChallengeRuntime { + t.Helper() + sharedChallengeRuntimeOnce.Do(func() { + sharedChallengeRuntimeInst, sharedChallengeRuntimeErr = challenge.NewChallengeRuntime(context.Background()) + }) + require.NoError(t, sharedChallengeRuntimeErr) + return sharedChallengeRuntimeInst +} diff --git a/pkg/appsec/appsec.go b/pkg/appsec/appsec.go index b873b6dbffa..e696dfbd57e 100644 --- a/pkg/appsec/appsec.go +++ b/pkg/appsec/appsec.go @@ -11,11 +11,15 @@ import ( corazatypes "github.com/corazawaf/coraza/v3/types" "github.com/expr-lang/expr" "github.com/expr-lang/expr/vm" + "github.com/prometheus/client_golang/prometheus" log "github.com/sirupsen/logrus" "gopkg.in/yaml.v2" + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" + "github.com/crowdsecurity/crowdsec/pkg/appsec/cookie" "github.com/crowdsecurity/crowdsec/pkg/cwhub" "github.com/crowdsecurity/crowdsec/pkg/exprhelpers" + "github.com/crowdsecurity/crowdsec/pkg/metrics" "github.com/crowdsecurity/crowdsec/pkg/pipeline" ) @@ -35,6 +39,7 @@ const ( hookPreEval hookPostEval hookOnMatch + hookOnChallenge ) func (s hookStage) String() string { @@ -47,6 +52,8 @@ func (s hookStage) String() string { return "post_eval" case hookOnMatch: return "on_match" + case hookOnChallenge: + return "on_challenge" default: return "unknown" } @@ -77,11 +84,15 @@ func (p *PhaseHooks) get(stage hookStage) []Hook { } const ( - BanRemediation = "ban" - CaptchaRemediation = "captcha" - AllowRemediation = "allow" + BanRemediation = "ban" + CaptchaRemediation = "captcha" + AllowRemediation = "allow" + ChallengeRemediation = "challenge" ) +const bodyChallengeOK = `{"status":"ok"}` +const bodyChallengeFailed = `{"status":"failed"}` + type phase int const ( @@ -89,21 +100,26 @@ const ( PhaseOutOfBand ) -func (h *Hook) Build(stage hookStage) error { +func (h *Hook) Build(stage hookStage, patcher *appsecExprPatcher) error { ctx := map[string]any{} switch stage { case hookOnLoad: ctx = GetOnLoadEnv(&AppsecRuntimeConfig{}) case hookPreEval: - ctx = GetPreEvalEnv(&AppsecRuntimeConfig{}, nil, &ParsedRequest{}) + ctx = GetPreEvalEnv(&AppsecRuntimeConfig{}, &AppsecRequestState{}, &ParsedRequest{}) case hookPostEval: - ctx = GetPostEvalEnv(&AppsecRuntimeConfig{}, nil, &ParsedRequest{}) + ctx = GetPostEvalEnv(&AppsecRuntimeConfig{}, &AppsecRequestState{}, &ParsedRequest{}) case hookOnMatch: - ctx = GetOnMatchEnv(&AppsecRuntimeConfig{}, nil, &ParsedRequest{}, pipeline.Event{}) + ctx = GetOnMatchEnv(&AppsecRuntimeConfig{}, &AppsecRequestState{}, &ParsedRequest{}, pipeline.Event{}) + case hookOnChallenge: + ctx = GetOnChallengeEnv(&AppsecRuntimeConfig{}, &AppsecRequestState{}, &ParsedRequest{}) } opts := exprhelpers.GetExprOptions(ctx) + if patcher != nil { + opts = append(opts, expr.Patch(patcher)) + } if h.Filter != "" { program, err := expr.Compile(h.Filter, opts...) // FIXME: opts if err != nil { @@ -128,11 +144,14 @@ func (h *Hook) Build(stage hookStage) error { type AppsecTempResponse struct { InBandInterrupt bool OutOfBandInterrupt bool - Action string // allow, deny, captcha, log - UserHTTPResponseCode int // The response code to send to the user - BouncerHTTPResponseCode int // The response code to send to the remediation component - SendEvent bool // do we send an internal event on rule match - SendAlert bool // do we send an alert on rule match + Action string // allow, deny, captcha, challenge, log + UserHTTPResponseCode int // The response code to send to the user + UserHTTPBodyContent string // The body content to send to the user, only for challenge response + UserHTTPCookies []cookie.AppsecCookie // Raw Set-Cookie headers to send to the user. + UserHeaders map[string][]string // Headers to send to the user + BouncerHTTPResponseCode int // The response code to send to the remediation component + SendEvent bool // do we send an internal event on rule match + SendAlert bool // do we send an alert on rule match } type AppsecDropInfo struct { @@ -150,6 +169,17 @@ type AppsecRequestState struct { PendingAction *string PendingHTTPCode *int + + RequireChallenge bool + Fingerprint *challenge.FingerprintData + CookiePowDifficulty int // PoW difficulty proven by the client for the current cookie (0 if no/invalid cookie) + ChallengeDifficulty *int // per-request PoW difficulty override (nil = use runtime default) + + // LastMismatchReport caches the result of the EvaluateMismatches expr + // closure for the current request, so repeated calls from a single + // rule expression don't redo the work (or re-emit observability). + // nil until the first call. + LastMismatchReport *challenge.MismatchReport } func (s *AppsecRequestState) ResetResponse(cfg *AppsecConfig) { @@ -164,8 +194,11 @@ func (s *AppsecRequestState) ResetResponse(cfg *AppsecConfig) { s.Response.UserHTTPResponseCode = cfg.UserPassedHTTPCode s.Response.SendEvent = true s.Response.SendAlert = true + s.Response.UserHTTPBodyContent = "" + s.Response.UserHTTPCookies = nil s.PendingAction = nil s.PendingHTTPCode = nil + s.RequireChallenge = false } func (s *AppsecRequestState) DropInfo(request *ParsedRequest) *AppsecDropInfo { @@ -198,11 +231,13 @@ type AppsecSubEngineOpts struct { // AppsecPhaseConfig holds configuration scoped to a specific phase (inband or outofband). // Hooks defined here are automatically dispatched only during the corresponding phase. +// on_challenge is in-band only; setting it under `outofband:` is rejected at Build() time. type AppsecPhaseConfig struct { Rules []string `yaml:"rules"` OnMatch []Hook `yaml:"on_match"` PreEval []Hook `yaml:"pre_eval"` PostEval []Hook `yaml:"post_eval"` + OnChallenge []Hook `yaml:"on_challenge"` Options AppsecSubEngineOpts `yaml:"options"` VariablesTracking []string `yaml:"variables_tracking"` } @@ -218,10 +253,11 @@ type AppsecRuntimeConfig struct { RemediationByTag map[string]string // Also used for ByName, as the name (for modsec rules) is a tag crowdsec-NAME RemediationById map[int]string - CompiledOnLoad []Hook // runs once at startup, not phase-scoped - CommonHooks PhaseHooks // apply to both phases - InBandHooks PhaseHooks // only run during in-band - OutOfBandHooks PhaseHooks // only run during out-of-band + CompiledOnLoad []Hook // runs once at startup, not phase-scoped + CompiledOnChallenge []Hook // in-band only; runs before pre_eval + CommonHooks PhaseHooks // apply to both phases + InBandHooks PhaseHooks // only run during in-band + OutOfBandHooks PhaseHooks // only run during out-of-band CompiledVariablesTracking []*regexp.Regexp Config *AppsecConfig @@ -235,6 +271,10 @@ type AppsecRuntimeConfig struct { DisabledOutOfBandRuleIds []int DisabledOutOfBandRulesTags []string // Also used for ByName, as the name (for modsec rules) is a tag crowdsec-NAME + + // True if at least one of the hooks use `RequireValidChallenge` + NeedWASMVM bool + ChallengeRuntime *challenge.ChallengeRuntime } type AppsecConfig struct { @@ -252,6 +292,7 @@ type AppsecConfig struct { PreEval []Hook `yaml:"pre_eval"` PostEval []Hook `yaml:"post_eval"` OnMatch []Hook `yaml:"on_match"` + OnChallenge []Hook `yaml:"on_challenge"` VariablesTracking []string `yaml:"variables_tracking"` InbandOptions AppsecSubEngineOpts `yaml:"inband_options"` OutOfBandOptions AppsecSubEngineOpts `yaml:"outofband_options"` @@ -376,6 +417,10 @@ func (wc *AppsecConfig) LoadByPath(file string) error { wc.OnMatch = append(wc.OnMatch, tmp.OnMatch...) } + if tmp.OnChallenge != nil { + wc.OnChallenge = append(wc.OnChallenge, tmp.OnChallenge...) + } + if tmp.VariablesTracking != nil { wc.VariablesTracking = append(wc.VariablesTracking, tmp.VariablesTracking...) } @@ -389,6 +434,7 @@ func (wc *AppsecConfig) LoadByPath(file string) error { wc.InBand.OnMatch = append(wc.InBand.OnMatch, tmp.InBand.OnMatch...) wc.InBand.PreEval = append(wc.InBand.PreEval, tmp.InBand.PreEval...) wc.InBand.PostEval = append(wc.InBand.PostEval, tmp.InBand.PostEval...) + wc.InBand.OnChallenge = append(wc.InBand.OnChallenge, tmp.InBand.OnChallenge...) } if tmp.OutOfBand != nil { @@ -399,6 +445,7 @@ func (wc *AppsecConfig) LoadByPath(file string) error { wc.OutOfBand.OnMatch = append(wc.OutOfBand.OnMatch, tmp.OutOfBand.OnMatch...) wc.OutOfBand.PreEval = append(wc.OutOfBand.PreEval, tmp.OutOfBand.PreEval...) wc.OutOfBand.PostEval = append(wc.OutOfBand.PostEval, tmp.OutOfBand.PostEval...) + wc.OutOfBand.OnChallenge = append(wc.OutOfBand.OnChallenge, tmp.OutOfBand.OnChallenge...) } // override other options @@ -468,7 +515,7 @@ func (wc *AppsecConfig) normalizePhaseScoped() { } // buildHookList validates and compiles a list of hooks of the given stage. -func buildHookList(hooks []Hook, stage hookStage) ([]Hook, error) { +func buildHookList(hooks []Hook, stage hookStage, patcher *appsecExprPatcher) ([]Hook, error) { var compiled []Hook for _, hook := range hooks { @@ -476,7 +523,7 @@ func buildHookList(hooks []Hook, stage hookStage) ([]Hook, error) { return nil, fmt.Errorf("invalid 'on_success' for %s hook : %s", stage, hook.OnSuccess) } - if err := hook.Build(stage); err != nil { + if err := hook.Build(stage, patcher); err != nil { return nil, fmt.Errorf("unable to build %s hook : %w", stage, err) } @@ -488,7 +535,7 @@ func buildHookList(hooks []Hook, stage hookStage) ([]Hook, error) { // buildPhaseHooks compiles pre_eval / post_eval / on_match hook lists into a // PhaseHooks. phaseName is only used to wrap errors ("" for the shared section). -func buildPhaseHooks(phaseName string, pre, post, onMatch []Hook) (PhaseHooks, error) { +func buildPhaseHooks(phaseName string, pre, post, onMatch []Hook, patcher *appsecExprPatcher) (PhaseHooks, error) { var ( out PhaseHooks err error @@ -501,15 +548,15 @@ func buildPhaseHooks(phaseName string, pre, post, onMatch []Hook) (PhaseHooks, e return fmt.Errorf("%s: %w", phaseName, e) } - if out.PreEval, err = buildHookList(pre, hookPreEval); err != nil { + if out.PreEval, err = buildHookList(pre, hookPreEval, patcher); err != nil { return PhaseHooks{}, wrap(err) } - if out.PostEval, err = buildHookList(post, hookPostEval); err != nil { + if out.PostEval, err = buildHookList(post, hookPostEval, patcher); err != nil { return PhaseHooks{}, wrap(err) } - if out.OnMatch, err = buildHookList(onMatch, hookOnMatch); err != nil { + if out.OnMatch, err = buildHookList(onMatch, hookOnMatch, patcher); err != nil { return PhaseHooks{}, wrap(err) } @@ -562,10 +609,10 @@ func (wc *AppsecConfig) Build(hub *cwhub.Hub) (*AppsecRuntimeConfig, error) { // set the defaults switch wc.DefaultRemediation { - case BanRemediation, CaptchaRemediation, AllowRemediation: + case BanRemediation, CaptchaRemediation, AllowRemediation, ChallengeRemediation: // those are the officially supported remediation(s) default: - wc.Logger.Warningf("default '%s' remediation of %s is none of [%s,%s,%s] ensure bouncer compatbility!", wc.DefaultRemediation, wc.Name, BanRemediation, CaptchaRemediation, AllowRemediation) + wc.Logger.Warningf("default '%s' remediation of %s is none of [%s,%s,%s,%s] ensure bouncer compatbility!", wc.DefaultRemediation, wc.Name, BanRemediation, CaptchaRemediation, AllowRemediation, ChallengeRemediation) } ret.Name = wc.Name @@ -600,29 +647,52 @@ func (wc *AppsecConfig) Build(hub *cwhub.Hub) (*AppsecRuntimeConfig, error) { wc.Logger.Infof("Loaded %d inband rules", len(ret.InBandRules)) + patcher := &appsecExprPatcher{} + // load hooks var err error - if ret.CompiledOnLoad, err = buildHookList(wc.OnLoad, hookOnLoad); err != nil { + if ret.CompiledOnLoad, err = buildHookList(wc.OnLoad, hookOnLoad, nil); err != nil { return nil, err } - if ret.CommonHooks, err = buildPhaseHooks("", wc.PreEval, wc.PostEval, wc.OnMatch); err != nil { + if ret.CommonHooks, err = buildPhaseHooks("", wc.PreEval, wc.PostEval, wc.OnMatch, patcher); err != nil { return nil, err } if wc.InBand != nil { if ret.InBandHooks, err = buildPhaseHooks("inband", - wc.InBand.PreEval, wc.InBand.PostEval, wc.InBand.OnMatch); err != nil { + wc.InBand.PreEval, wc.InBand.PostEval, wc.InBand.OnMatch, patcher); err != nil { return nil, err } } if wc.OutOfBand != nil { if ret.OutOfBandHooks, err = buildPhaseHooks("outofband", - wc.OutOfBand.PreEval, wc.OutOfBand.PostEval, wc.OutOfBand.OnMatch); err != nil { + wc.OutOfBand.PreEval, wc.OutOfBand.PostEval, wc.OutOfBand.OnMatch, patcher); err != nil { return nil, err } + + if len(wc.OutOfBand.OnChallenge) > 0 { + return nil, errors.New("on_challenge hooks are only valid in-band, not under outofband") + } + } + + // on_challenge hooks: merge top-level and inband-scoped (both are in-band only). + onChallengeHooks := wc.OnChallenge + if wc.InBand != nil { + onChallengeHooks = append(onChallengeHooks, wc.InBand.OnChallenge...) + } + + if ret.CompiledOnChallenge, err = buildHookList(onChallengeHooks, hookOnChallenge, patcher); err != nil { + return nil, err + } + + // Defining any on_challenge hook implies we need the challenge runtime to + // validate cookies and submissions, even if the hook bodies never call + // SendChallenge() themselves. + if len(ret.CompiledOnChallenge) > 0 { + patcher.NeedWASMVM = true } // variable tracking @@ -635,6 +705,8 @@ func (wc *AppsecConfig) Build(hub *cwhub.Hub) (*AppsecRuntimeConfig, error) { ret.CompiledVariablesTracking = append(ret.CompiledVariablesTracking, compiledVariableRule) } + ret.NeedWASMVM = patcher.NeedWASMVM + return ret, nil } @@ -713,6 +785,66 @@ func (w *AppsecRuntimeConfig) ProcessOnMatchRules(state *AppsecRequestState, req return w.runPhaseHooks(hookOnMatch, GetOnMatchEnv(w, state, request, evt), request) } +// ProcessOnChallengeRules is the in-band-only challenge entry point. It +// handles the PoW worker JS path and the challenge submission path internally, +// validates any existing challenge cookie to populate state.Fingerprint, and +// runs the user-defined on_challenge hook expressions ONLY when there is a +// fingerprint to inspect — i.e. on a valid submission or when a valid cookie +// was presented. Requests with no cookie / invalid cookie / invalid submission +// skip user hooks entirely (there's nothing to evaluate). +func (w *AppsecRuntimeConfig) ProcessOnChallengeRules(state *AppsecRequestState, request *ParsedRequest) error { + if w.ChallengeRuntime == nil { + return nil + } + + var path string + if request.HTTPRequest.URL != nil { + path = request.HTTPRequest.URL.Path + } + + // Serve the PoW worker JS (static asset). Skip user expressions. + if path == challenge.ChallengePowWorkerPath { + return w.setChallengeResponse(state, http.StatusOK, challenge.PowWorkerJS, + map[string]string{"Content-Type": "application/javascript", "Cache-Control": "public, max-age=3600"}, nil) + } + + // Challenge submission: validate and issue (or deny) the cookie. User hooks + // do NOT run here — they would overwrite the JSON submission response and + // confuse the client. Policy inspection of the fingerprint happens on the + // very next request, which will carry the cookie we just issued. + if path == challenge.ChallengeSubmitPath && request.HTTPRequest.Method == http.MethodPost { + w.Logger.Debugf("validating challenge response") + ck, _, err := w.ChallengeRuntime.ValidateChallengeResponse(request.HTTPRequest, request.Body) + if err != nil { + // TODO: find a way to propagate an event to the LP for use in scenarios + w.Logger.Errorf("challenge validation failed: %s", err) + return w.setChallengeResponse(state, http.StatusOK, bodyChallengeFailed, + map[string]string{"Content-Type": "application/json", "Cache-Control": "no-cache, no-store"}, nil) + } + return w.setChallengeResponse(state, http.StatusOK, bodyChallengeOK, + map[string]string{"Content-Type": "application/json", "Cache-Control": "no-cache, no-store"}, ck) + } + + // Regular request: validate the existing cookie (if any) to populate + // fingerprint and remember the difficulty the client proved. + if httpCookie, err := request.HTTPRequest.Cookie(challenge.ChallengeCookieName); err == nil { + if cookieData, validErr := w.ChallengeRuntime.ValidCookie(httpCookie, request.HTTPRequest.UserAgent()); validErr == nil { + w.Logger.Debugf("valid challenge cookie found, setting fingerprint data") + fp := cookieData.Fingerprint + state.Fingerprint = &fp + state.CookiePowDifficulty = cookieData.PowDifficulty + } + } + + // No fingerprint to inspect — skip user hooks. This avoids nil-deref inside + // expr filters like `fingerprint.Bot.X` when no cookie was presented. + if state.Fingerprint == nil { + return nil + } + + return w.processHooks(w.CompiledOnChallenge, GetOnChallengeEnv(w, state, request), "on_challenge") +} + func (w *AppsecRuntimeConfig) ProcessPreEvalRules(state *AppsecRequestState, request *ParsedRequest) error { return w.runPhaseHooks(hookPreEval, GetPreEvalEnv(w, state, request), request) } @@ -884,19 +1016,198 @@ func (w *AppsecRuntimeConfig) SetHTTPCode(state *AppsecRequestState, code int) e return nil } +func (w *AppsecRuntimeConfig) SetChallengeBody(state *AppsecRequestState, content string) error { + w.Logger.Debugf("setting challenge body content") + state.Response.UserHTTPBodyContent = content + return nil +} + +func (w *AppsecRuntimeConfig) SetChallengeCookie(state *AppsecRequestState, cookie cookie.AppsecCookie) error { + w.Logger.Debugf("adding challenge cookie") + state.Response.UserHTTPCookies = append(state.Response.UserHTTPCookies, cookie) + return nil +} + +func (w *AppsecRuntimeConfig) SetChallengeHeader(state *AppsecRequestState, name string, value string) error { + w.Logger.Debugf("adding challenge headers") + if state.Response.UserHeaders == nil { + state.Response.UserHeaders = make(map[string][]string) + } + state.Response.UserHeaders[name] = append(state.Response.UserHeaders[name], value) + return nil +} + +func (w *AppsecRuntimeConfig) setChallengeResponse(state *AppsecRequestState, code int, body string, headers map[string]string, cookie *cookie.AppsecCookie) error { + w.SetAction(state, ChallengeRemediation) + w.SetHTTPCode(state, code) + // FIXME: don't do this here, should be handled the same way as a block + state.Response.BouncerHTTPResponseCode = w.Config.BouncerBlockedHTTPCode + w.SetChallengeBody(state, body) + for name, value := range headers { + w.SetChallengeHeader(state, name, value) + } + if cookie != nil { + w.SetChallengeCookie(state, *cookie) + } + state.RequireChallenge = true + return nil +} + +// SetChallengeDifficulty sets the default PoW difficulty on the runtime (used from on_load). +func (w *AppsecRuntimeConfig) SetChallengeDifficulty(level string) error { + if w.ChallengeRuntime == nil { + return fmt.Errorf("challenge runtime not initialized") + } + + return w.ChallengeRuntime.SetDifficulty(level) +} + +// SetChallengeDifficultyPerRequest sets a per-request PoW difficulty override (used from pre_eval/post_eval). +func (w *AppsecRuntimeConfig) SetChallengeDifficultyPerRequest(state *AppsecRequestState, level string) error { + bits, err := challenge.DifficultyFromLevel(level) + if err != nil { + return err + } + + state.ChallengeDifficulty = &bits + + return nil +} + +// SendChallenge issues a challenge HTML page for the current request. Cookie +// and submission handling live in ProcessOnChallengeRules; by the time this +// runs, state.Fingerprint has already been populated if a valid cookie was +// presented. If the client already proved a PoW at least as hard as the +// target difficulty for this request, SendChallenge is a no-op. When the +// target difficulty is raised (e.g. on_challenge calls SetChallengeDifficulty +// to punish a suspect fingerprint), the stored difficulty is lower than the +// target and a fresh challenge is issued. +// EvaluateMismatches runs all library-native + custom fingerprint mismatch +// checks, caches the result on state, and emits one structured Debug log +// line + one metric bump per fired signal on the first call of a given +// request. Subsequent calls return the cached pointer so rules can reference +// the report multiple times without redoing the work. +func (w *AppsecRuntimeConfig) EvaluateMismatches(state *AppsecRequestState, request *ParsedRequest) *challenge.MismatchReport { + if state.LastMismatchReport != nil { + return state.LastMismatchReport + } + + country := exprhelpers.IPToCountryString(request.ClientIP) + report := state.Fingerprint.ComputeMismatchReport(request.HTTPRequest, country) + + state.LastMismatchReport = report + + if !report.Empty() { + w.emitMismatchObservability(state, request, report) + } + + return report +} + +// emitMismatchObservability logs the report at Debug level and bumps the +// per-reason/severity Prometheus counter. Called exactly once per request +// from EvaluateMismatches (guarded by state.LastMismatchReport being nil +// on entry). +func (w *AppsecRuntimeConfig) emitMismatchObservability( + state *AppsecRequestState, + request *ParsedRequest, + report *challenge.MismatchReport, +) { + fsid := "" + if state.Fingerprint != nil { + fsid = state.Fingerprint.FSID + } + + if w.Logger != nil { + w.Logger.WithFields(log.Fields{ + "fsid": fsid, + "source": request.RemoteAddrNormalized, + "reasons": report.Reasons(), + "high": report.High(), + "medium": report.Medium(), + "low": report.Low(), + "count": report.Count(), + }).Debug("fingerprint mismatch") + } + + for _, sig := range report.Signals { + metrics.AppsecFingerprintMismatch.With(prometheus.Labels{ + "reason": sig.Reason, + "severity": sig.Severity, + "appsec_engine": request.AppsecEngine, + }).Inc() + } +} + +func (w *AppsecRuntimeConfig) SendChallenge(state *AppsecRequestState, request *ParsedRequest) error { + if w.ChallengeRuntime == nil { + return fmt.Errorf("challenge runtime not initialized") + } + + target := w.ChallengeRuntime.Difficulty() + if state.ChallengeDifficulty != nil { + target = *state.ChallengeDifficulty + } + + if state.Fingerprint != nil && state.CookiePowDifficulty >= target { + w.Logger.Debugf("client already proved difficulty %d >= target %d, skipping challenge issue", + state.CookiePowDifficulty, target) + return nil + } + + w.Logger.Debugf("sending challenge at difficulty %d (client proved %d)", target, state.CookiePowDifficulty) + + challengePage, err := w.ChallengeRuntime.GetChallengePage(request.HTTPRequest.UserAgent(), target) + if err != nil { + return fmt.Errorf("unable to get challenge page: %w", err) + } + return w.setChallengeResponse(state, http.StatusOK, challengePage, map[string]string{"Content-Type": "text/html", "Cache-Control": "no-cache, no-store"}, nil) +} + type BodyResponse struct { - Action string `json:"action"` - HTTPStatus int `json:"http_status"` + Action string `json:"action"` + HTTPStatus int `json:"http_status"` + UserBodyContent string `json:"user_body_content,omitempty"` + UserCookies []string `json:"user_cookies,omitempty"` + UserHeaders map[string][]string `json:"user_headers,omitempty"` } func (w *AppsecRuntimeConfig) GenerateResponse(response AppsecTempResponse, logger *log.Entry) (int, BodyResponse) { var bouncerStatusCode int resp := BodyResponse{Action: response.Action} - if response.Action == AllowRemediation { + + //spew.Dump("Generating response", response) + + switch response.Action { + case AllowRemediation: resp.HTTPStatus = w.Config.UserPassedHTTPCode bouncerStatusCode = w.Config.BouncerPassedHTTPCode - } else { // ban, captcha and anything else + case ChallengeRemediation: + resp.UserBodyContent = response.UserHTTPBodyContent + resp.UserCookies = make([]string, 0, len(response.UserHTTPCookies)) + for _, cookie := range response.UserHTTPCookies { + resp.UserCookies = append(resp.UserCookies, cookie.String()) + } + resp.UserHeaders = response.UserHeaders + // If there's no Content-Security-Policy header, add a default one to make sure that the JS code can be evaluated + if _, ok := resp.UserHeaders["Content-Security-Policy"]; !ok { + resp.UserHeaders["Content-Security-Policy"] = []string{challenge.DefaultChallengeCSP} + } + // Return code are handled the same way for challenge/ban/captcha + // There's probably a less brittle way to do this, but falltrhough is easier + fallthrough + case BanRemediation, CaptchaRemediation: + resp.HTTPStatus = response.UserHTTPResponseCode + if resp.HTTPStatus == 0 { + resp.HTTPStatus = w.Config.UserBlockedHTTPCode + } + bouncerStatusCode = response.BouncerHTTPResponseCode + if bouncerStatusCode == 0 { + bouncerStatusCode = w.Config.BouncerBlockedHTTPCode + } + default: + // Custom remediations use the same status code logic as ban/captcha resp.HTTPStatus = response.UserHTTPResponseCode if resp.HTTPStatus == 0 { resp.HTTPStatus = w.Config.UserBlockedHTTPCode diff --git a/pkg/appsec/appsec_challenge_test.go b/pkg/appsec/appsec_challenge_test.go new file mode 100644 index 00000000000..5df92bbde1f --- /dev/null +++ b/pkg/appsec/appsec_challenge_test.go @@ -0,0 +1,239 @@ +package appsec + +import ( + "context" + "net/http" + "net/url" + "sync" + "testing" + + log "github.com/sirupsen/logrus" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" +) + +// sharedChallengeRuntime lazily creates a single ChallengeRuntime for the +// whole package test run. NewChallengeRuntime runs the obfuscator WASM to +// generate a challenge JS bundle (~15-20s), so spinning one up per test is +// prohibitively slow and unnecessary for logic-only dispatcher tests. +var ( + sharedChallengeRuntimeOnce sync.Once + sharedChallengeRuntimeInst *challenge.ChallengeRuntime + sharedChallengeRuntimeErr error +) + +func getSharedChallengeRuntime(t *testing.T) *challenge.ChallengeRuntime { + t.Helper() + sharedChallengeRuntimeOnce.Do(func() { + // Use context.Background so the runtime survives across tests. + // Goroutines it spawns leak for the duration of the test binary; that's + // acceptable here since the binary exits after tests complete. + sharedChallengeRuntimeInst, sharedChallengeRuntimeErr = challenge.NewChallengeRuntime(context.Background()) + }) + require.NoError(t, sharedChallengeRuntimeErr) + return sharedChallengeRuntimeInst +} + +// newChallengeTestRuntime builds an AppsecRuntimeConfig wired with a real +// ChallengeRuntime for dispatcher tests. Provided on_challenge hooks are +// compiled via buildHookList, so tests can assert that user expressions run. +func newChallengeTestRuntime(t *testing.T, hooks []Hook) *AppsecRuntimeConfig { + t.Helper() + + cr := getSharedChallengeRuntime(t) + + compiled, err := buildHookList(hooks, hookOnChallenge, &appsecExprPatcher{}) + require.NoError(t, err) + + logger := log.NewEntry(log.StandardLogger()) + + cfg := &AppsecConfig{ + Name: "test-challenge", + BouncerBlockedHTTPCode: http.StatusForbidden, + BouncerPassedHTTPCode: http.StatusOK, + UserBlockedHTTPCode: http.StatusForbidden, + UserPassedHTTPCode: http.StatusOK, + DefaultPassAction: AllowRemediation, + DefaultRemediation: BanRemediation, + } + + return &AppsecRuntimeConfig{ + Name: "test-challenge", + Config: cfg, + Logger: logger, + ChallengeRuntime: cr, + CompiledOnChallenge: compiled, + } +} + +func newInBandRequest(method, path string, body []byte) *ParsedRequest { + u, _ := url.Parse(path) + return &ParsedRequest{ + HTTPRequest: &http.Request{ + Method: method, + URL: u, + Header: http.Header{"User-Agent": []string{"go-test"}}, + }, + Body: body, + IsInBand: true, + } +} + +func TestProcessOnChallengeRulesNilRuntime(t *testing.T) { + rt := &AppsecRuntimeConfig{ + Logger: log.NewEntry(log.StandardLogger()), + Config: &AppsecConfig{}, + } + state := &AppsecRequestState{} + req := newInBandRequest(http.MethodGet, "/", nil) + + require.NoError(t, rt.ProcessOnChallengeRules(state, req)) + assert.False(t, state.RequireChallenge) + assert.Nil(t, state.Fingerprint) +} + +func TestProcessOnChallengeRulesServesPowWorker(t *testing.T) { + rt := newChallengeTestRuntime(t, nil) + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + + req := newInBandRequest(http.MethodGet, challenge.ChallengePowWorkerPath, nil) + + require.NoError(t, rt.ProcessOnChallengeRules(state, req)) + assert.True(t, state.RequireChallenge) + assert.Equal(t, ChallengeRemediation, state.Response.Action) + assert.Equal(t, http.StatusOK, state.Response.UserHTTPResponseCode) + assert.Equal(t, challenge.PowWorkerJS, state.Response.UserHTTPBodyContent) + assert.Contains(t, state.Response.UserHeaders["Content-Type"], "application/javascript") +} + +func TestProcessOnChallengeRulesSubmitInvalidBody(t *testing.T) { + rt := newChallengeTestRuntime(t, nil) + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + + // Empty body → ValidateChallengeResponse fails; dispatcher returns failed JSON body. + req := newInBandRequest(http.MethodPost, challenge.ChallengeSubmitPath, nil) + + require.NoError(t, rt.ProcessOnChallengeRules(state, req)) + assert.True(t, state.RequireChallenge) + assert.JSONEq(t, bodyChallengeFailed, state.Response.UserHTTPBodyContent) + assert.Contains(t, state.Response.UserHeaders["Content-Type"], "application/json") + // No cookie is issued on failure. + assert.Empty(t, state.Response.UserHTTPCookies) +} + +func TestProcessOnChallengeRulesNoCookieSkipsUserHooks(t *testing.T) { + // A hook that would unconditionally flip PendingAction must NOT run when + // there is no fingerprint to inspect — this prevents nil-deref panics on + // filters like `fingerprint.Bot.X`. + rt := newChallengeTestRuntime(t, []Hook{ + {Apply: []string{"SetRemediation('allow')"}}, + }) + + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + + req := newInBandRequest(http.MethodGet, "/", nil) + + require.NoError(t, rt.ProcessOnChallengeRules(state, req)) + assert.Nil(t, state.Fingerprint) + assert.Nil(t, state.PendingAction, "user hooks must not run when fingerprint is nil") +} + +func TestProcessOnChallengeRulesInvalidCookieSkipsUserHooks(t *testing.T) { + rt := newChallengeTestRuntime(t, []Hook{ + {Apply: []string{"SetReturnCode(418)"}}, + }) + + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + + // Attach an invalid cookie; ValidCookie fails silently and fingerprint stays nil. + u, _ := url.Parse("/") + httpReq := &http.Request{ + Method: http.MethodGet, + URL: u, + Header: http.Header{ + "User-Agent": []string{"go-test"}, + "Cookie": []string{challenge.ChallengeCookieName + "=garbage"}, + }, + } + req := &ParsedRequest{HTTPRequest: httpReq, IsInBand: true} + + require.NoError(t, rt.ProcessOnChallengeRules(state, req)) + assert.Nil(t, state.Fingerprint) + assert.Nil(t, state.PendingHTTPCode, "user hooks must not run when fingerprint is nil") +} + +func TestSendChallengeNoOpWhenStoredDifficultyMeetsTarget(t *testing.T) { + rt := newChallengeTestRuntime(t, nil) + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + // Simulate a client that already proved the runtime-default difficulty. + state.Fingerprint = &challenge.FingerprintData{} + state.CookiePowDifficulty = rt.ChallengeRuntime.Difficulty() + + req := newInBandRequest(http.MethodGet, "/protected", nil) + + require.NoError(t, rt.SendChallenge(state, req)) + assert.False(t, state.RequireChallenge) + assert.Empty(t, state.Response.UserHTTPBodyContent) + assert.NotEqual(t, ChallengeRemediation, state.Response.Action) +} + +func TestSendChallengeReIssuesWhenTargetExceedsStored(t *testing.T) { + rt := newChallengeTestRuntime(t, nil) + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + // Client proved medium; this request demands impossible. + state.Fingerprint = &challenge.FingerprintData{} + state.CookiePowDifficulty = challenge.PowDifficultyMedium + impossible := challenge.PowDifficultyImpossible + state.ChallengeDifficulty = &impossible + + req := newInBandRequest(http.MethodGet, "/protected", nil) + + require.NoError(t, rt.SendChallenge(state, req)) + assert.True(t, state.RequireChallenge) + assert.Equal(t, ChallengeRemediation, state.Response.Action) + assert.Contains(t, state.Response.UserHeaders["Content-Type"], "text/html") + assert.NotEmpty(t, state.Response.UserHTTPBodyContent) +} + +func TestSendChallengeNoOpWhenTargetLoweredBelowStored(t *testing.T) { + rt := newChallengeTestRuntime(t, nil) + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + // Client proved high; admin lowered the global target. + state.Fingerprint = &challenge.FingerprintData{} + state.CookiePowDifficulty = challenge.PowDifficultyHigh + low := challenge.PowDifficultyLow + state.ChallengeDifficulty = &low + + req := newInBandRequest(http.MethodGet, "/protected", nil) + + require.NoError(t, rt.SendChallenge(state, req)) + assert.False(t, state.RequireChallenge) +} + +func TestProcessOnChallengeRulesInvalidSubmissionSkipsUserHooks(t *testing.T) { + // A hook that would unconditionally flip PendingAction must NOT run when + // the submission is invalid — the failed JSON body is the only response. + rt := newChallengeTestRuntime(t, []Hook{ + {Apply: []string{"SetRemediation('allow')"}}, + }) + + state := &AppsecRequestState{} + state.ResetResponse(rt.Config) + + // Empty body → ValidateChallengeResponse fails. + req := newInBandRequest(http.MethodPost, challenge.ChallengeSubmitPath, nil) + + require.NoError(t, rt.ProcessOnChallengeRules(state, req)) + assert.True(t, state.RequireChallenge) + assert.JSONEq(t, bodyChallengeFailed, state.Response.UserHTTPBodyContent) + assert.Nil(t, state.PendingAction, "user hooks must not run on invalid submission") +} diff --git a/pkg/appsec/appsec_config_test.go b/pkg/appsec/appsec_config_test.go index da4fb35f038..0a0c936740a 100644 --- a/pkg/appsec/appsec_config_test.go +++ b/pkg/appsec/appsec_config_test.go @@ -326,6 +326,68 @@ func TestBuildNilPhaseConfig(t *testing.T) { assert.Empty(t, rt.OutOfBandHooks.OnMatch) } +func TestBuildOnChallengeTopLevelAndInband(t *testing.T) { + cfg := AppsecConfig{ + Logger: log.NewEntry(log.StandardLogger()), + DefaultRemediation: "ban", + OnChallenge: []Hook{ + {Apply: []string{"SetRemediation('allow')"}}, + }, + InBand: &AppsecPhaseConfig{ + OnChallenge: []Hook{ + {Filter: "IsInBand == true", Apply: []string{"SetReturnCode(418)"}}, + }, + }, + } + + hub := &cwhub.Hub{} + rt, err := cfg.Build(hub) + require.NoError(t, err) + + // Both top-level and inband on_challenge hooks end up in CompiledOnChallenge. + require.Len(t, rt.CompiledOnChallenge, 2) + assert.NotNil(t, rt.CompiledOnChallenge[0].ApplyExpr) + assert.NotNil(t, rt.CompiledOnChallenge[1].FilterExpr) + + // Defining on_challenge must force the challenge runtime on. + assert.True(t, rt.NeedWASMVM) +} + +func TestBuildOnChallengeUnderOutofbandRejected(t *testing.T) { + cfg := AppsecConfig{ + Logger: log.NewEntry(log.StandardLogger()), + DefaultRemediation: "ban", + OutOfBand: &AppsecPhaseConfig{ + OnChallenge: []Hook{{Apply: []string{"SetRemediation('allow')"}}}, + }, + } + + hub := &cwhub.Hub{} + _, err := cfg.Build(hub) + require.Error(t, err) + assert.Contains(t, err.Error(), "on_challenge hooks are only valid in-band") +} + +func TestLoadByPathOnChallengeYAML(t *testing.T) { + cfg := newTestConfig() + f := writeTempYAML(t, ` +name: test-on-challenge +on_challenge: + - filter: "fingerprint != nil" + apply: + - SetRemediation('allow') +inband: + on_challenge: + - apply: + - SendChallenge() +`) + + require.NoError(t, cfg.LoadByPath(f)) + assert.Len(t, cfg.OnChallenge, 1) + require.NotNil(t, cfg.InBand) + assert.Len(t, cfg.InBand.OnChallenge, 1) +} + func TestBuildOnLoadStaysOutOfPhaseHooks(t *testing.T) { cfg := AppsecConfig{ Logger: log.NewEntry(log.StandardLogger()), diff --git a/pkg/appsec/challenge/challenge.go b/pkg/appsec/challenge/challenge.go new file mode 100644 index 00000000000..e6853c20081 --- /dev/null +++ b/pkg/appsec/challenge/challenge.go @@ -0,0 +1,557 @@ +package challenge + +import ( + "bytes" + "compress/gzip" + "context" + "crypto/hmac" + crand "crypto/rand" + "crypto/sha256" + "encoding/base64" + "encoding/hex" + "encoding/json" + "fmt" + "io" + "math/rand/v2" + "net/http" + "net/url" + "strconv" + "strings" + "sync" + "time" + + _ "embed" + + "text/template" + + challengejs "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge/js" + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge/pb" + "github.com/crowdsecurity/crowdsec/pkg/appsec/cookie" + "github.com/google/uuid" + log "github.com/sirupsen/logrus" + "github.com/tetratelabs/wazero" + "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" +) + +const ChallengeJSPath = "/crowdsec-internal/challenge/challenge.js" +const ChallengeSubmitPath = "/crowdsec-internal/challenge/submit" +const ChallengePowWorkerPath = "/crowdsec-internal/challenge/pow-worker.js" +const ChallengeCookieName = "__crowdsec_challenge" +const challengeJSCacheSize = 10 +const challengeJSRefreshInterval = 10 * time.Minute + +// PoW difficulty levels in leading zero bits. Pure JS SHA-256 through the +// obfuscator runs ~500-5000 ops/sec, so keep these conservative. +const ( + PowDifficultyDisabled = 0 // no PoW required, nonce "0" always valid + PowDifficultyLow = 10 // ~1024 avg iterations ≈ 0.2-2s + PowDifficultyMedium = 12 // ~4096 avg iterations ≈ 1-8s + PowDifficultyHigh = 15 // ~32768 avg iterations ≈ 7-60s + PowDifficultyImpossible = 256 // full SHA-256 width: clients cannot solve, server always rejects + + defaultPowDifficulty = PowDifficultyMedium +) + +const DefaultChallengeCSP = "default-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; worker-src 'self' blob:;" + +// FIXME +const masterSecret = "SUPER_SECRET_KEY" + +//go:embed challenge.html.tmpl +var htmlTemplate string + +//go:embed pow-worker.js +var PowWorkerJS string + +//go:embed js/obfuscate/index.wasm.gz +var obfuscatorWasmGz []byte + +var ( + obfuscatorWasm []byte + obfuscatorWasmOnce sync.Once +) + +type ChallengeRuntime struct { + r wazero.Runtime + + obfuscatedJSCache []obfuscatedScript + cacheMutex sync.RWMutex + + powDifficulty int +} + +// DifficultyFromLevel resolves a named level ("low", "medium", "high") to +// a PoW difficulty in leading zero bits. Case-insensitive. +func DifficultyFromLevel(level string) (int, error) { + switch strings.ToLower(level) { + case "disabled": + return PowDifficultyDisabled, nil + case "low": + return PowDifficultyLow, nil + case "medium": + return PowDifficultyMedium, nil + case "high": + return PowDifficultyHigh, nil + case "impossible": + return PowDifficultyImpossible, nil + default: + return 0, fmt.Errorf("unknown challenge difficulty %q (expected disabled, low, medium, high, or impossible)", level) + } +} + +// Difficulty returns the current default PoW difficulty (in leading zero bits). +func (c *ChallengeRuntime) Difficulty() int { + return c.powDifficulty +} + +// SetDifficulty sets the default PoW difficulty from a named level. +func (c *ChallengeRuntime) SetDifficulty(level string) error { + bits, err := DifficultyFromLevel(level) + if err != nil { + return err + } + + c.powDifficulty = bits + + return nil +} + +type obfuscatedScript struct { + Code string // the obfuscated JS code + uuid uuid.UUID // unique ID to track the script +} + +func NewChallengeRuntime(ctx context.Context) (*ChallengeRuntime, error) { + r := wazero.NewRuntime(ctx) + + // No need to keep the closer around, we can just close the runtime itself when stopping + _, err := wasi_snapshot_preview1.Instantiate(ctx, r) + if err != nil { + return nil, fmt.Errorf("failed to instantiate WASI: %w", err) + } + + var obfuscatorWasmErr error + + obfuscatorWasmOnce.Do(func() { + r, err := gzip.NewReader(bytes.NewReader(obfuscatorWasmGz)) + if err != nil { + obfuscatorWasmErr = fmt.Errorf("failed to create gzip reader for obfuscator wasm: %w", err) + return + } + defer r.Close() + + obfuscatorWasm, err = io.ReadAll(r) + if err != nil { + obfuscatorWasmErr = fmt.Errorf("failed to decompress obfuscator wasm: %w", err) + return + } + }) + + if obfuscatorWasmErr != nil { + return nil, obfuscatorWasmErr + } + + challengeRuntime := &ChallengeRuntime{ + r: r, + obfuscatedJSCache: make([]obfuscatedScript, 0, challengeJSCacheSize), + powDifficulty: defaultPowDifficulty, + } + + if err := challengeRuntime.generateAndCacheChallengeJS(ctx); err != nil { + return nil, fmt.Errorf("failed to generate initial challenge bundle: %w", err) + } + + go challengeRuntime.challengeGenerator(ctx) + + return challengeRuntime, nil +} + +func (c *ChallengeRuntime) challengeGenerator(ctx context.Context) { + // Startup warm-up: grow the cache in background until full. + if err := c.fillCacheToCapacity(ctx); err != nil { + log.Errorf("failed to prefill challenge JS cache: %v", err) + } + + ticker := time.NewTicker(challengeJSRefreshInterval) + defer ticker.Stop() + + for { + select { + case <-ticker.C: + variants, err := c.generateChallengeVariants(ctx, challengeJSCacheSize) + if err != nil { + log.Errorf("failed to regenerate full challenge JS cache: %v", err) + continue + } + + c.replaceCachedChallengeJS(variants) + case <-ctx.Done(): + return + } + } +} + +func (c *ChallengeRuntime) buildChallengeBundle() string { + return strings.NewReplacer( + "__CROWDSEC_SUBMIT_PATH__", ChallengeSubmitPath, + "__CROWDSEC_POW_WORKER_PATH__", ChallengePowWorkerPath, + ).Replace(challengejs.FPScannerBundle) +} + +func (c *ChallengeRuntime) generateAndCacheChallengeJS(ctx context.Context) error { + variants, err := c.generateChallengeVariants(ctx, 1) + if err != nil { + return err + } + + c.appendCachedChallengeJS(variants) + + return nil +} + +func (c *ChallengeRuntime) generateChallengeVariants(ctx context.Context, count int) ([]obfuscatedScript, error) { + if count <= 0 { + return []obfuscatedScript{}, nil + } + + variants := make([]obfuscatedScript, 0, count) + + bundle := c.buildChallengeBundle() + + for range count { + o := obfuscatedScript{} + o.uuid = uuid.New() + obfuscatedJS, err := c.ObfuscateJS(ctx, bundle) + if err != nil { + return nil, err + } + o.Code = obfuscatedJS + variants = append(variants, o) + } + + return variants, nil +} + +func (c *ChallengeRuntime) fillCacheToCapacity(ctx context.Context) error { + c.cacheMutex.RLock() + missing := challengeJSCacheSize - len(c.obfuscatedJSCache) + c.cacheMutex.RUnlock() + + if missing <= 0 { + return nil + } + + variants, err := c.generateChallengeVariants(ctx, missing) + if err != nil { + return err + } + + c.appendCachedChallengeJS(variants) + return nil +} + +func (c *ChallengeRuntime) appendCachedChallengeJS(variants []obfuscatedScript) { + if len(variants) == 0 { + return + } + + c.cacheMutex.Lock() + c.obfuscatedJSCache = append(c.obfuscatedJSCache, variants...) + if len(c.obfuscatedJSCache) > challengeJSCacheSize { + c.obfuscatedJSCache = c.obfuscatedJSCache[len(c.obfuscatedJSCache)-challengeJSCacheSize:] + } + c.cacheMutex.Unlock() +} + +func (c *ChallengeRuntime) replaceCachedChallengeJS(variants []obfuscatedScript) { + if len(variants) == 0 { + return + } + + c.cacheMutex.Lock() + c.obfuscatedJSCache = append([]obfuscatedScript(nil), variants...) + c.cacheMutex.Unlock() +} + +func (c *ChallengeRuntime) getCachedChallengeJS() obfuscatedScript { + c.cacheMutex.RLock() + defer c.cacheMutex.RUnlock() + + cacheSize := len(c.obfuscatedJSCache) + if cacheSize == 0 { + return obfuscatedScript{} + } + + idx := rand.IntN(cacheSize) + return c.obfuscatedJSCache[idx] +} + +func (c *ChallengeRuntime) ObfuscateJS(ctx context.Context, inputJS string) (string, error) { + stdin := bytes.NewReader([]byte(inputJS)) + var stdout bytes.Buffer + var stderr bytes.Buffer + + config := wazero.NewModuleConfig(). + WithStdin(stdin). + WithStdout(&stdout). + WithStderr(&stderr) + + mod, err := c.r.InstantiateWithConfig(ctx, obfuscatorWasm, config) + if err != nil { + if stderr.Len() > 0 { + return "", fmt.Errorf("wasm runtime error: %v | stderr: %s", err, stderr.String()) + } + return "", fmt.Errorf("wasm instantiation error: %v", err) + } + + mod.Close(ctx) + + return stdout.String(), nil +} + +func computeTicket(ts string) string { + h := hmac.New(sha256.New, []byte(masterSecret)) + h.Write([]byte(ts)) + + return fmt.Sprintf("%x", h.Sum(nil)) +} + +// GetChallengePage renders the challenge HTML page with the given PoW difficulty. +// If difficulty is 0, the default difficulty is used. +func (c *ChallengeRuntime) GetChallengePage(userAgent string, difficulty int) (string, error) { + _ = userAgent + + if difficulty <= 0 { + difficulty = c.powDifficulty + } + + // We are using text/template instead of html/template because the data we send is pretty much hardcoded and trusted. + // Using html/template would escape the JS code we are adding, making it unusable. + templateObj, err := template.New("challenge").Parse(htmlTemplate) + if err != nil { + return "", fmt.Errorf("failed to parse challenge template: %w", err) + } + + obfuscatedJS := c.getCachedChallengeJS() + if obfuscatedJS.Code == "" { + if err := c.generateAndCacheChallengeJS(context.Background()); err != nil { + return "", fmt.Errorf("failed to generate challenge JS: %w", err) + } + obfuscatedJS = c.getCachedChallengeJS() + if obfuscatedJS.Code == "" { + return "", fmt.Errorf("challenge JS cache is empty") + } + } + + // All per-request values: ticket, timestamp, PoW salt, PoW MAC. + // Fully stateless — no server-side storage, works across HA instances. + ts := fmt.Sprintf("%d", time.Now().UnixNano()) + ticket := computeTicket(ts) + powSalt := generatePowPrefix() + powMAC := computePowMAC(powSalt, ticket, ts) + + var renderedPage strings.Builder + + templateObj.Execute(&renderedPage, map[string]interface{}{ + "JSChallenge": obfuscatedJS.Code, + "PowDifficulty": difficulty, + "PowPrefix": powSalt, + "PowMAC": powMAC, + "Ticket": ticket, + "Timestamp": ts, + }) + return renderedPage.String(), nil +} + +func generatePowPrefix() string { + buf := make([]byte, 16) + if _, err := crand.Read(buf); err != nil { + panic(fmt.Sprintf("failed to generate PoW prefix: %v", err)) + } + + return hex.EncodeToString(buf) +} + +// computePowMAC produces an HMAC that authenticates a PoW salt as server-generated +// and bound to a specific ticket window. Stateless: any instance sharing the +// masterSecret can verify it. +func computePowMAC(salt, ticket, ts string) string { + h := hmac.New(sha256.New, []byte(masterSecret)) + h.Write([]byte(salt)) + h.Write([]byte(ticket)) + h.Write([]byte(ts)) + + return fmt.Sprintf("%x", h.Sum(nil)) +} + +func hasLeadingZeroBits(hash []byte, bits int) bool { + fullBytes := bits / 8 + remainBits := bits % 8 + + for i := range fullBytes { + if hash[i] != 0 { + return false + } + } + + if remainBits > 0 { + mask := byte(0xFF << (8 - remainBits)) + if hash[fullBytes]&mask != 0 { + return false + } + } + + return true +} + +func (c *ChallengeRuntime) getSessionKey(ticket string, nonce string) string { + hash := sha256.Sum256([]byte(ticket + nonce)) + return fmt.Sprintf("%x", hash) +} + +func (c *ChallengeRuntime) decryptFingerprint(sessionKey string, encrypted string) (string, error) { + encryptedBytes, err := base64.StdEncoding.DecodeString(encrypted) + if err != nil { + return "", fmt.Errorf("failed to decode encrypted fingerprint: %w", err) + } + + decryptedBytes := make([]byte, len(encryptedBytes)) + + for i := range encryptedBytes { + decryptedBytes[i] = encryptedBytes[i] ^ sessionKey[i%len(sessionKey)] + } + + return string(decryptedBytes), nil +} + +// matchesChallenge verifies that the ticket/timestamp/PoW salt are authentically +// server-generated and the timestamp is recent. Fully stateless — any instance +// sharing masterSecret can verify. +func matchesChallenge(clientTicket, clientTS, clientPowSalt, clientPowMAC string) bool { + // Verify the ticket is an authentic HMAC of the timestamp. + expectedTicket := computeTicket(clientTS) + if !hmac.Equal([]byte(clientTicket), []byte(expectedTicket)) { + return false + } + + // Verify the timestamp is recent (within 2 refresh intervals for safety). + tsVal, err := strconv.ParseInt(clientTS, 10, 64) + if err != nil { + return false + } + + age := time.Since(time.Unix(0, tsVal)) + if age < 0 || age > 2*challengeJSRefreshInterval { + return false + } + + // Verify the PoW salt MAC is authentic and bound to this ticket+timestamp. + expectedMAC := computePowMAC(clientPowSalt, clientTicket, clientTS) + + return hmac.Equal([]byte(clientPowMAC), []byte(expectedMAC)) +} + +func (c *ChallengeRuntime) ValidateChallengeResponse(request *http.Request, body []byte) (*cookie.AppsecCookie, FingerprintData, error) { + vars, err := url.ParseQuery(string(body)) + if err != nil { + return nil, FingerprintData{}, fmt.Errorf("failed to parse challenge response: %w", err) + } + + encryptedFingerprint := vars.Get("f") + clientTicket := vars.Get("t") + clientTS := vars.Get("ts") + clientHMAC := vars.Get("h") + clientNonce := vars.Get("n") + clientPowSalt := vars.Get("p") + clientPowMAC := vars.Get("m") + + if encryptedFingerprint == "" || clientTicket == "" || clientTS == "" || clientHMAC == "" || clientNonce == "" || clientPowSalt == "" || clientPowMAC == "" { + return nil, FingerprintData{}, fmt.Errorf("missing required fields in challenge response") + } + + // Verify ticket/timestamp match and PoW salt is authentically server-generated (stateless). + if !matchesChallenge(clientTicket, clientTS, clientPowSalt, clientPowMAC) { + return nil, FingerprintData{}, fmt.Errorf("invalid ticket in challenge response") + } + + // An impossible difficulty is a deliberate hard-block: clients cannot solve + // it, and the server must not accept any submission. + if c.powDifficulty >= PowDifficultyImpossible { + return nil, FingerprintData{}, fmt.Errorf("challenge difficulty is impossible; submission rejected") + } + + // Verify proof-of-work: SHA256(powSalt + nonce) must have required leading zero bits + powHash := sha256.Sum256([]byte(clientPowSalt + clientNonce)) + if !hasLeadingZeroBits(powHash[:], c.powDifficulty) { + return nil, FingerprintData{}, fmt.Errorf("invalid proof-of-work in challenge response") + } + + // Derive session key from ticket + nonce (same as client-side) + sessionKey := c.getSessionKey(clientTicket, clientNonce) + + // Verify HMAC over encrypted fingerprint + timestamp + ticket + nonce + expectedHMAC := hmac.New(sha256.New, []byte(sessionKey)) + expectedHMAC.Write([]byte(encryptedFingerprint)) + expectedHMAC.Write([]byte(clientTS)) + expectedHMAC.Write([]byte(clientTicket)) + expectedHMAC.Write([]byte(clientNonce)) + + expectedHMACHex := fmt.Sprintf("%x", expectedHMAC.Sum(nil)) + + if !hmac.Equal([]byte(clientHMAC), []byte(expectedHMACHex)) { + return nil, FingerprintData{}, fmt.Errorf("invalid HMAC in challenge response") + } + + fingerprint, err := c.decryptFingerprint(sessionKey, encryptedFingerprint) + if err != nil { + return nil, FingerprintData{}, fmt.Errorf("failed to decrypt fingerprint: %w", err) + } + + var fpData FingerprintData + + if err := json.Unmarshal([]byte(fingerprint), &fpData); err != nil { + log.Errorf("fp: %s", fingerprint) + return nil, FingerprintData{}, fmt.Errorf("failed to unmarshal fingerprint data: %w", err) + } + + envelope := &pb.ChallengeCookie{ + Fingerprint: fpData.ToProto(), + PowDifficulty: int32(c.powDifficulty), + } + + cookieValue, err := sealCookie(envelope, masterSecret, []byte(request.UserAgent())) + if err != nil { + return nil, FingerprintData{}, fmt.Errorf("failed to seal challenge cookie: %w", err) + } + + ck := cookie.NewAppsecCookie(ChallengeCookieName).HttpOnly().Path("/").SameSite(cookie.SameSiteLax).ExpiresIn(2 * time.Hour).Value(cookieValue) + if request.URL.Scheme == "https" { + ck = ck.Secure() + } + + return ck, fpData, nil +} + +// CookieData bundles the decrypted fingerprint with cookie-envelope metadata +// (currently just the proven PoW difficulty) so callers can make re-challenge +// decisions without touching the fingerprint struct. +type CookieData struct { + Fingerprint FingerprintData + PowDifficulty int +} + +func (c *ChallengeRuntime) ValidCookie(ck *http.Cookie, userAgent string) (*CookieData, error) { + if ck == nil { + return nil, fmt.Errorf("nil cookie") + } + + envelope, err := openCookie(ck.Value, masterSecret, []byte(userAgent)) + if err != nil { + return nil, fmt.Errorf("invalid challenge cookie: %w", err) + } + + return &CookieData{ + Fingerprint: fingerprintDataFromProto(envelope.GetFingerprint()), + PowDifficulty: int(envelope.GetPowDifficulty()), + }, nil +} diff --git a/pkg/appsec/challenge/challenge.html.tmpl b/pkg/appsec/challenge/challenge.html.tmpl new file mode 100644 index 00000000000..0d774387e69 --- /dev/null +++ b/pkg/appsec/challenge/challenge.html.tmpl @@ -0,0 +1,469 @@ + + + + CrowdSec Challenge + + + + + +
+
+

Security Check

+

Your browser is being verified

+
+ +
+ +
+ +
+

Consulting the crowd...

+
+ + +
+ + + + + + + + + + + + + diff --git a/pkg/appsec/challenge/challenge.js b/pkg/appsec/challenge/challenge.js new file mode 100644 index 00000000000..4b196344912 --- /dev/null +++ b/pkg/appsec/challenge/challenge.js @@ -0,0 +1,237 @@ +import FingerprintScanner from "./js/fpscanner/src/index.ts"; + +// --- Pure JS SHA-256 (RFC 6234) --- + +const K = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2, +]; + +function sha256(data) { + let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a, + h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19; + + const len = data.length; + const bitLen = len * 8; + + const padLen = 64 - ((len + 9) % 64); + const totalLen = len + 1 + (padLen === 64 ? 0 : padLen) + 8; + const msg = new Uint8Array(totalLen); + msg.set(data); + msg[len] = 0x80; + const dv = new DataView(msg.buffer); + dv.setUint32(totalLen - 4, bitLen, false); + + const w = new Int32Array(64); + for (let offset = 0; offset < totalLen; offset += 64) { + for (let i = 0; i < 16; i++) { + w[i] = dv.getInt32(offset + i * 4, false); + } + for (let i = 16; i < 64; i++) { + const s0 = (((w[i-15] >>> 7) | (w[i-15] << 25)) ^ ((w[i-15] >>> 18) | (w[i-15] << 14)) ^ (w[i-15] >>> 3)) | 0; + const s1 = (((w[i-2] >>> 17) | (w[i-2] << 15)) ^ ((w[i-2] >>> 19) | (w[i-2] << 13)) ^ (w[i-2] >>> 10)) | 0; + w[i] = (w[i-16] + s0 + w[i-7] + s1) | 0; + } + + let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7; + + for (let i = 0; i < 64; i++) { + const S1 = (((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7))) | 0; + const ch = ((e & f) ^ (~e & g)) | 0; + const temp1 = (h + S1 + ch + K[i] + w[i]) | 0; + const S0 = (((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10))) | 0; + const maj = ((a & b) ^ (a & c) ^ (b & c)) | 0; + const temp2 = (S0 + maj) | 0; + + h = g; g = f; f = e; e = (d + temp1) | 0; + d = c; c = b; b = a; a = (temp1 + temp2) | 0; + } + + h0 = (h0 + a) | 0; h1 = (h1 + b) | 0; h2 = (h2 + c) | 0; h3 = (h3 + d) | 0; + h4 = (h4 + e) | 0; h5 = (h5 + f) | 0; h6 = (h6 + g) | 0; h7 = (h7 + h) | 0; + } + + const out = new Uint8Array(32); + const ov = new DataView(out.buffer); + ov.setUint32(0, h0, false); ov.setUint32(4, h1, false); + ov.setUint32(8, h2, false); ov.setUint32(12, h3, false); + ov.setUint32(16, h4, false); ov.setUint32(20, h5, false); + ov.setUint32(24, h6, false); ov.setUint32(28, h7, false); + return out; +} + +// --- Helpers --- + +function toHex(bytes) { + let hex = ""; + for (let i = 0; i < bytes.length; i++) { + hex += (bytes[i] >> 4).toString(16) + (bytes[i] & 0xf).toString(16); + } + return hex; +} + +function encode(str) { + return new TextEncoder().encode(str); +} + +function sha256Hex(str) { + return toHex(sha256(encode(str))); +} + +// --- HMAC-SHA256 --- + +function hmacSHA256(key, message) { + if (key.length > 64) { + key = sha256(key); + } + const paddedKey = new Uint8Array(64); + paddedKey.set(key); + + const ipad = new Uint8Array(64); + const opad = new Uint8Array(64); + for (let i = 0; i < 64; i++) { + ipad[i] = paddedKey[i] ^ 0x36; + opad[i] = paddedKey[i] ^ 0x5c; + } + + const inner = new Uint8Array(64 + message.length); + inner.set(ipad); + inner.set(message, 64); + const innerHash = sha256(inner); + + const outer = new Uint8Array(64 + 32); + outer.set(opad); + outer.set(innerHash, 64); + return sha256(outer); +} + +function hmacSHA256Hex(keyStr, msgStr) { + return toHex(hmacSHA256(encode(keyStr), encode(msgStr))); +} + +// --- Proof-of-Work (offloaded to Web Worker) --- + +const powWorkerPath = "__CROWDSEC_POW_WORKER_PATH__"; + +function solvePoWAsync(prefix, difficulty) { + if (difficulty <= 0) { + return Promise.resolve("0"); + } + + try { + const worker = new Worker(powWorkerPath); + + return new Promise((resolve) => { + worker.onmessage = (e) => { + worker.terminate(); + resolve(e.data); + }; + worker.onerror = () => { + worker.terminate(); + resolve(solvePoWMainThread(prefix, difficulty)); + }; + worker.postMessage({ p: prefix, d: difficulty }); + }); + } catch (_) { + return Promise.resolve(solvePoWMainThread(prefix, difficulty)); + } +} + +function solvePoWMainThread(prefix, difficulty) { + let nonce = 0; + while (true) { + const candidate = prefix + nonce.toString(36); + const hash = sha256(encode(candidate)); + const fullBytes = difficulty >> 3; + const remainBits = difficulty & 7; + let ok = true; + for (let i = 0; i < fullBytes; i++) { + if (hash[i] !== 0) { ok = false; break; } + } + if (ok && remainBits > 0) { + const mask = (0xff << (8 - remainBits)) & 0xff; + if ((hash[fullBytes] & mask) !== 0) ok = false; + } + if (ok) return nonce.toString(36); + nonce++; + } +} + +// --- Fingerprint encryption (XOR) --- + +function encryptFingerprint(key, fingerprint) { + const keyBytes = encode(key); + const textBytes = encode(fingerprint); + const encrypted = new Uint8Array(textBytes.length); + + for (let i = 0; i < textBytes.length; i++) { + encrypted[i] = textBytes[i] ^ keyBytes[i % keyBytes.length]; + } + + const binaryString = String.fromCharCode(...encrypted); + return btoa(binaryString); +} + +// --- Template-injected values (replaced server-side before obfuscation) --- + +const ts = typeof _ts !== "undefined" ? _ts : ""; +const ticket = typeof _t !== "undefined" ? _t : ""; +const powPrefix = typeof _powP !== "undefined" ? _powP : ""; +const powMAC = typeof _powM !== "undefined" ? _powM : ""; +const powDifficulty = typeof _powD !== "undefined" ? _powD : 12; +const submitPath = "__CROWDSEC_SUBMIT_PATH__"; + +// --- Challenge status reporting --- + +function reportChallengeStatus(status) { + if (typeof window.crowdsecSetChallengeStatus === "function") { + window.crowdsecSetChallengeStatus(status); + return; + } + + window.dispatchEvent( + new CustomEvent("crowdsec-challenge-status", { + detail: { status }, + }), + ); +} + +// --- Main flow --- +// PoW runs in a Web Worker while fingerprint collection runs on the main thread. +// Both run in parallel; the main thread stays responsive for event collection. + +const [nonce, fpResult] = await Promise.all([ + solvePoWAsync(powPrefix, powDifficulty), + new FingerprintScanner().collectFingerprint({ encrypt: false }), +]); + +const sessionKey = sha256Hex(ticket + nonce); +const f = encryptFingerprint(sessionKey, JSON.stringify(fpResult)); +const h = hmacSHA256Hex(sessionKey, f + ts + ticket + nonce); +fetch(submitPath, { + method: "POST", + credentials: "same-origin", + body: new URLSearchParams({ f: f, t: ticket, ts: ts, h: h, n: nonce, p: powPrefix, m: powMAC }), +}) + .then((response) => response.json()) + .then((data) => { + const status = typeof data?.status === "string" ? data.status : "fail"; + reportChallengeStatus(status); + }) + .catch(() => { + reportChallengeStatus("fail"); + }); diff --git a/pkg/appsec/challenge/challenge_test.go b/pkg/appsec/challenge/challenge_test.go new file mode 100644 index 00000000000..ded6354963f --- /dev/null +++ b/pkg/appsec/challenge/challenge_test.go @@ -0,0 +1,428 @@ +package challenge + +import ( + "crypto/hmac" + "crypto/sha256" + "encoding/base64" + "encoding/json" + "fmt" + "net/http" + "net/url" + "strings" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestHasLeadingZeroBits(t *testing.T) { + tests := []struct { + name string + hash []byte + bits int + expect bool + }{ + { + name: "0 bits required", + hash: []byte{0xff, 0xff}, + bits: 0, + expect: true, + }, + { + name: "8 bits - first byte zero", + hash: []byte{0x00, 0xff}, + bits: 8, + expect: true, + }, + { + name: "8 bits - first byte not zero", + hash: []byte{0x01, 0xff}, + bits: 8, + expect: false, + }, + { + name: "16 bits - two zero bytes", + hash: []byte{0x00, 0x00, 0xff}, + bits: 16, + expect: true, + }, + { + name: "10 bits - partial byte check passes", + hash: []byte{0x00, 0x20}, // 0b00000000 0b00100000 → 10 leading zeros + bits: 10, + expect: true, + }, + { + name: "10 bits - partial byte check fails", + hash: []byte{0x00, 0x40}, // 0b00000000 0b01000000 → 9 leading zeros + bits: 10, + expect: false, + }, + { + name: "1 bit - first bit zero", + hash: []byte{0x7f}, + bits: 1, + expect: true, + }, + { + name: "1 bit - first bit set", + hash: []byte{0x80}, + bits: 1, + expect: false, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + assert.Equal(t, tt.expect, hasLeadingZeroBits(tt.hash, tt.bits)) + }) + } +} + +func TestGeneratePowPrefix(t *testing.T) { + p1 := generatePowPrefix() + p2 := generatePowPrefix() + + assert.Len(t, p1, 32) // 16 bytes = 32 hex chars + assert.Len(t, p2, 32) + assert.NotEqual(t, p1, p2) // random, should differ +} + +func TestDifficultyFromLevel(t *testing.T) { + bits, err := DifficultyFromLevel("low") + assert.NoError(t, err) + assert.Equal(t, PowDifficultyLow, bits) + + bits, err = DifficultyFromLevel("MEDIUM") + assert.NoError(t, err) + assert.Equal(t, PowDifficultyMedium, bits) + + bits, err = DifficultyFromLevel("High") + assert.NoError(t, err) + assert.Equal(t, PowDifficultyHigh, bits) + + bits, err = DifficultyFromLevel("disabled") + assert.NoError(t, err) + assert.Equal(t, PowDifficultyDisabled, bits) + + bits, err = DifficultyFromLevel("IMPOSSIBLE") + assert.NoError(t, err) + assert.Equal(t, PowDifficultyImpossible, bits) + + _, err = DifficultyFromLevel("extreme") + assert.Error(t, err) +} + +func TestSetDifficulty(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: defaultPowDifficulty} + + assert.NoError(t, c.SetDifficulty("low")) + assert.Equal(t, PowDifficultyLow, c.powDifficulty) + + assert.NoError(t, c.SetDifficulty("MEDIUM")) + assert.Equal(t, PowDifficultyMedium, c.powDifficulty) + + assert.NoError(t, c.SetDifficulty("High")) + assert.Equal(t, PowDifficultyHigh, c.powDifficulty) + + assert.NoError(t, c.SetDifficulty("impossible")) + assert.Equal(t, PowDifficultyImpossible, c.powDifficulty) + + assert.Error(t, c.SetDifficulty("extreme")) + assert.Equal(t, PowDifficultyImpossible, c.powDifficulty) // unchanged on error +} + +func TestGetSessionKey(t *testing.T) { + c := &ChallengeRuntime{} + + key1 := c.getSessionKey("ticket1", "nonce1") + key2 := c.getSessionKey("ticket1", "nonce2") + key3 := c.getSessionKey("ticket1", "nonce1") + + assert.Len(t, key1, 64) // SHA-256 = 64 hex chars + assert.NotEqual(t, key1, key2) + assert.Equal(t, key1, key3) // deterministic + + expected := sha256.Sum256([]byte("ticket1nonce1")) + assert.Equal(t, fmt.Sprintf("%x", expected), key1) +} + +func TestComputeTicket(t *testing.T) { + // Deterministic for same timestamp + t1 := computeTicket("12345") + t2 := computeTicket("12345") + assert.Equal(t, t1, t2) + + // Different for different timestamps + t3 := computeTicket("67890") + assert.NotEqual(t, t1, t3) + + // Matches expected HMAC-SHA256 + h := hmac.New(sha256.New, []byte(masterSecret)) + h.Write([]byte("12345")) + assert.Equal(t, fmt.Sprintf("%x", h.Sum(nil)), t1) +} + +func TestMatchesChallenge(t *testing.T) { + ts := fmt.Sprintf("%d", time.Now().UnixNano()) + ticket := computeTicket(ts) + salt := generatePowPrefix() + mac := computePowMAC(salt, ticket, ts) + + // Valid challenge + assert.True(t, matchesChallenge(ticket, ts, salt, mac)) + + // Wrong ticket + assert.False(t, matchesChallenge("wrong-ticket", ts, salt, mac)) + + // Wrong timestamp (ticket doesn't match) + assert.False(t, matchesChallenge(ticket, "9999999999999999999", salt, mac)) + + // Forged MAC + assert.False(t, matchesChallenge(ticket, ts, salt, "forged-mac")) + + // MAC from different salt + otherSalt := generatePowPrefix() + assert.False(t, matchesChallenge(ticket, ts, otherSalt, mac)) + + // Expired timestamp (too old) + oldTS := fmt.Sprintf("%d", time.Now().Add(-3*challengeJSRefreshInterval).UnixNano()) + oldTicket := computeTicket(oldTS) + oldMAC := computePowMAC(salt, oldTicket, oldTS) + assert.False(t, matchesChallenge(oldTicket, oldTS, salt, oldMAC)) +} + +// solvePoWGo is a Go implementation of the PoW solver matching the JS client. +func solvePoWGo(prefix string, difficulty int) string { + for nonce := 0; ; nonce++ { + candidate := prefix + formatBase36(nonce) + hash := sha256.Sum256([]byte(candidate)) + if hasLeadingZeroBits(hash[:], difficulty) { + return formatBase36(nonce) + } + } +} + +func formatBase36(n int) string { + if n == 0 { + return "0" + } + + const digits = "0123456789abcdefghijklmnopqrstuvwxyz" + var buf [64]byte + i := len(buf) + + for n > 0 { + i-- + buf[i] = digits[n%36] + n /= 36 + } + + return string(buf[i:]) +} + +func TestPoWVerification(t *testing.T) { + prefix := generatePowPrefix() + difficulty := 8 + + nonce := solvePoWGo(prefix, difficulty) + + powHash := sha256.Sum256([]byte(prefix + nonce)) + assert.True(t, hasLeadingZeroBits(powHash[:], difficulty)) +} + +// freshTicket generates a per-request ticket+timestamp pair (matching GetChallengePage). +func freshTicket() (ticket, ts string) { + ts = fmt.Sprintf("%d", time.Now().UnixNano()) + ticket = computeTicket(ts) + return +} + +// buildValidBody constructs a valid challenge POST body. +func buildValidBody(difficulty int, ticket, ts string) string { + c := &ChallengeRuntime{} + salt := generatePowPrefix() + powMAC := computePowMAC(salt, ticket, ts) + nonce := solvePoWGo(salt, difficulty) + sessionKey := c.getSessionKey(ticket, nonce) + + fp := FingerprintData{} + fpJSON, _ := json.Marshal(fp) + + keyBytes := []byte(sessionKey) + encrypted := make([]byte, len(fpJSON)) + for i := range fpJSON { + encrypted[i] = fpJSON[i] ^ keyBytes[i%len(keyBytes)] + } + encryptedB64 := base64.StdEncoding.EncodeToString(encrypted) + + mac := hmac.New(sha256.New, []byte(sessionKey)) + mac.Write([]byte(encryptedB64)) + mac.Write([]byte(ts)) + mac.Write([]byte(ticket)) + mac.Write([]byte(nonce)) + hmacHex := fmt.Sprintf("%x", mac.Sum(nil)) + + return url.Values{ + "f": {encryptedB64}, + "t": {ticket}, + "ts": {ts}, + "h": {hmacHex}, + "n": {nonce}, + "p": {salt}, + "m": {powMAC}, + }.Encode() +} + +func TestValidateChallengeResponse(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + ticket, ts := freshTicket() + body := buildValidBody(c.powDifficulty, ticket, ts) + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + req.Header.Set("User-Agent", "test-agent") + + ck, fpResult, err := c.ValidateChallengeResponse(req, []byte(body)) + require.NoError(t, err) + assert.NotNil(t, ck) + assert.NotNil(t, fpResult) +} + +func TestValidateChallengeResponse_MultipleConcurrentClients(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + + for range 20 { + ticket, ts := freshTicket() + body := buildValidBody(c.powDifficulty, ticket, ts) + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + req.Header.Set("User-Agent", "test-agent") + + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + require.NoError(t, err) + } +} + +func TestValidateChallengeResponse_InvalidPoW(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + ticket, ts := freshTicket() + salt := generatePowPrefix() + powMAC := computePowMAC(salt, ticket, ts) + + body := url.Values{ + "f": {"dGVzdA=="}, + "t": {ticket}, + "ts": {ts}, + "h": {"deadbeef"}, + "n": {"invalid-nonce"}, + "p": {salt}, + "m": {powMAC}, + }.Encode() + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "invalid proof-of-work") +} + +func TestValidateChallengeResponse_ImpossibleDifficulty(t *testing.T) { + // A submission that would otherwise pass at low difficulty is rejected + // outright when the runtime is set to impossible. + c := &ChallengeRuntime{powDifficulty: PowDifficultyImpossible} + ticket, ts := freshTicket() + body := buildValidBody(8, ticket, ts) // satisfies 8-bit PoW but not impossible + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + req.Header.Set("User-Agent", "test-agent") + + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "impossible") +} + +func TestValidateChallengeResponse_ExpiredTimestamp(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + oldTS := fmt.Sprintf("%d", time.Now().Add(-3*challengeJSRefreshInterval).UnixNano()) + oldTicket := computeTicket(oldTS) + body := buildValidBody(c.powDifficulty, oldTicket, oldTS) + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + req.Header.Set("User-Agent", "test-agent") + + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "invalid ticket") +} + +func TestValidateChallengeResponse_InvalidTicket(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + ticket, ts := freshTicket() + salt := generatePowPrefix() + powMAC := computePowMAC(salt, ticket, ts) + + body := url.Values{ + "f": {"dGVzdA=="}, + "t": {"wrong-ticket"}, + "ts": {ts}, + "h": {"deadbeef"}, + "n": {"0"}, + "p": {salt}, + "m": {powMAC}, + }.Encode() + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "invalid ticket") +} + +func TestValidateChallengeResponse_ForgedMAC(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + ticket, ts := freshTicket() + salt := generatePowPrefix() + + body := url.Values{ + "f": {"dGVzdA=="}, + "t": {ticket}, + "ts": {ts}, + "h": {"deadbeef"}, + "n": {"0"}, + "p": {salt}, + "m": {"forged-mac-value"}, + }.Encode() + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "invalid ticket") +} + +func TestValidateChallengeResponse_InvalidHMAC(t *testing.T) { + c := &ChallengeRuntime{powDifficulty: 8} + ticket, ts := freshTicket() + salt := generatePowPrefix() + powMAC := computePowMAC(salt, ticket, ts) + nonce := solvePoWGo(salt, c.powDifficulty) + + body := url.Values{ + "f": {"dGVzdA=="}, + "t": {ticket}, + "ts": {ts}, + "h": {"0000000000000000000000000000000000000000000000000000000000000000"}, + "n": {nonce}, + "p": {salt}, + "m": {powMAC}, + }.Encode() + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "invalid HMAC") +} + +func TestValidateChallengeResponse_MissingFields(t *testing.T) { + c := &ChallengeRuntime{} + + body := url.Values{ + "f": {"dGVzdA=="}, + "t": {"ticket"}, + }.Encode() + + req, _ := http.NewRequest("POST", "http://example.com/submit", strings.NewReader(body)) + _, _, err := c.ValidateChallengeResponse(req, []byte(body)) + assert.ErrorContains(t, err, "missing required fields") +} diff --git a/pkg/appsec/challenge/crypto.go b/pkg/appsec/challenge/crypto.go new file mode 100644 index 00000000000..b70d8867f4d --- /dev/null +++ b/pkg/appsec/challenge/crypto.go @@ -0,0 +1,107 @@ +package challenge + +import ( + "crypto/aes" + "crypto/cipher" + "crypto/rand" + "crypto/sha256" + "encoding/base64" + "errors" + "fmt" + + "golang.org/x/crypto/hkdf" + + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge/pb" + "google.golang.org/protobuf/proto" +) + +var ( + ErrCookieMalformed = errors.New("malformed cookie") + ErrCookieSignature = errors.New("invalid cookie signature") + ErrCookiePayload = errors.New("invalid cookie payload") +) + +const hkdfInfo = "crowdsec-challenge-cookie" + +func deriveKey(secret string) ([]byte, error) { + h := hkdf.New(sha256.New, []byte(secret), nil, []byte(hkdfInfo)) + key := make([]byte, 32) // AES-256 + + if _, err := h.Read(key); err != nil { + return nil, fmt.Errorf("failed to derive key: %w", err) + } + + return key, nil +} + +func sealCookie(envelope *pb.ChallengeCookie, secret string, aad []byte) (string, error) { + plaintext, err := proto.Marshal(envelope) + if err != nil { + return "", fmt.Errorf("failed to marshal challenge cookie proto: %w", err) + } + + key, err := deriveKey(secret) + if err != nil { + return "", err + } + + block, err := aes.NewCipher(key) + if err != nil { + return "", fmt.Errorf("failed to create cipher: %w", err) + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return "", fmt.Errorf("failed to create GCM: %w", err) + } + + nonce := make([]byte, gcm.NonceSize()) + if _, err := rand.Read(nonce); err != nil { + return "", fmt.Errorf("failed to generate nonce: %w", err) + } + + ciphertext := gcm.Seal(nonce, nonce, plaintext, aad) + + return base64.RawURLEncoding.EncodeToString(ciphertext), nil +} + +func openCookie(encoded string, secret string, aad []byte) (*pb.ChallengeCookie, error) { + ciphertext, err := base64.RawURLEncoding.DecodeString(encoded) + if err != nil { + return nil, fmt.Errorf("%w: failed to decode: %w", ErrCookieMalformed, err) + } + + key, err := deriveKey(secret) + if err != nil { + return nil, err + } + + block, err := aes.NewCipher(key) + if err != nil { + return nil, fmt.Errorf("failed to create cipher: %w", err) + } + + gcm, err := cipher.NewGCM(block) + if err != nil { + return nil, fmt.Errorf("failed to create GCM: %w", err) + } + + nonceSize := gcm.NonceSize() + if len(ciphertext) < nonceSize { + return nil, fmt.Errorf("%w: ciphertext too short", ErrCookieMalformed) + } + + nonce, ciphertext := ciphertext[:nonceSize], ciphertext[nonceSize:] + + plaintext, err := gcm.Open(nil, nonce, ciphertext, aad) + if err != nil { + return nil, fmt.Errorf("%w: %w", ErrCookieSignature, err) + } + + envelope := &pb.ChallengeCookie{} + if err := proto.Unmarshal(plaintext, envelope); err != nil { + return nil, fmt.Errorf("%w: %w", ErrCookiePayload, err) + } + + return envelope, nil +} diff --git a/pkg/appsec/challenge/fingerprint.go b/pkg/appsec/challenge/fingerprint.go new file mode 100644 index 00000000000..13a910cb135 --- /dev/null +++ b/pkg/appsec/challenge/fingerprint.go @@ -0,0 +1,694 @@ +package challenge + +import ( + "encoding/json" + "strconv" +) + +// FlexInt handles JSON values that may be either a number or a string. +// The fingerprint JS library returns a string (error message) instead of +// a number when it fails to collect a value. +type FlexInt int + +// FlexBool handles JSON values that may be either a boolean or a string. +type FlexBool bool + +func (fb *FlexBool) UnmarshalJSON(data []byte) error { + var b bool + if err := json.Unmarshal(data, &b); err == nil { + *fb = FlexBool(b) + return nil + } + + var s string + if err := json.Unmarshal(data, &s); err != nil { + return err + } + + *fb = FlexBool(s == "true" || s == "1") + + return nil +} + +func (fb FlexBool) Bool() bool { + return bool(fb) +} + +func (fi *FlexInt) UnmarshalJSON(data []byte) error { + // Try number first (most common case). + var n int + if err := json.Unmarshal(data, &n); err == nil { + *fi = FlexInt(n) + return nil + } + + // Fall back to string → parse as int, or default to 0. + var s string + if err := json.Unmarshal(data, &s); err != nil { + return err + } + + parsed, err := strconv.Atoi(s) + if err != nil { + *fi = 0 + return nil + } + + *fi = FlexInt(parsed) + + return nil +} + +func (fi FlexInt) Int() int { + return int(fi) +} + +/* +{ + "signals": { + "automation": { + "webdriver": false, + "webdriverWritable": false, + "selenium": false, + "cdp": true, + "playwright": false, + "navigatorPropertyDescriptors": "00000" + }, + "device": { + "cpuCount": 14, + "memory": 8, + "platform": "MacIntel", + "screenResolution": { + "width": 2304, + "height": 1296, + "pixelDepth": 30, + "colorDepth": 30, + "availableWidth": 2304, + "availableHeight": 1265, + "innerWidth": 1444, + "innerHeight": 1144, + "hasMultipleDisplays": true + }, + "multimediaDevices": { + "speakers": 1, + "microphones": 1, + "webcams": 1 + }, + "mediaQueries": { + "prefersColorScheme": "dark", + "prefersReducedMotion": false, + "prefersReducedTransparency": false, + "colorGamut": "p3", + "pointer": "fine", + "anyPointer": "fine", + "hover": true, + "anyHover": true, + "colorDepth": 10 + } + }, + "browser": { + "userAgent": "Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_15_7)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/144.0.0.0+Safari/537.36", + "features": { + "bitmask": "1000111100", + "chrome": true, + "brave": false, + "applePaySupport": false, + "opera": false, + "serial": true, + "attachShadow": true, + "caches": true, + "webAssembly": true, + "buffer": false, + "showModalDialog": false + }, + "plugins": { + "isValidPluginArray": true, + "pluginCount": 5, + "pluginNamesHash": "-2cdc5c8b", + "pluginConsistency1": true, + "pluginOverflow": false + }, + "extensions": { + "bitmask": "00000000", + "extensions": [] + }, + "highEntropyValues": { + "architecture": "arm", + "bitness": "64", + "brands": [ + { + "brand": "Not(A:Brand", + "version": "8" + }, + { + "brand": "Chromium", + "version": "144" + }, + { + "brand": "Google+Chrome", + "version": "144" + } + ], + "mobile": false, + "model": "", + "platform": "macOS", + "platformVersion": "26.2.0", + "uaFullVersion": "144.0.7559.133" + }, + "etsl": 33, + "maths": "67d0b556", + "toSourceError": { + "toSourceError": "TypeError:+Cannot+read+properties+of+null+(reading+usdfsh)", + "hasToSource": false + } + }, + "graphics": { + "webGL": { + "vendor": "Google+Inc.+(Apple)", + "renderer": "ANGLE+(Apple,+ANGLE+Metal+Renderer:+Apple+M4+Max,+Unspecified+Version)" + }, + "webgpu": { + "vendor": "apple", + "architecture": "metal-3", + "device": "", + "description": "" + }, + "canvas": { + "hasModifiedCanvas": false, + "canvasFingerprint": "-421c84e0" + } + }, + "codecs": { + "audioCanPlayTypeHash": "688c7345", + "videoCanPlayTypeHash": "-126cde82", + "audioMediaSourceHash": "-3cbc04a4", + "videoMediaSourceHash": "-48c15d34", + "rtcAudioCapabilitiesHash": "26a15cc5", + "rtcVideoCapabilitiesHash": "4f24a817", + "hasMediaSource": true + }, + "locale": { + "internationalization": { + "timezone": "Europe/Paris", + "localeLanguage": "en-US" + }, + "languages": { + "languages": [ + "en", + "en-US", + "fr-FR", + "fr" + ], + "language": "en" + } + }, + "contexts": { + "iframe": { + "webdriver": false, + "userAgent": "Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_15_7)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/144.0.0.0+Safari/537.36", + "platform": "MacIntel", + "memory": 8, + "cpuCount": 14, + "language": "en" + }, + "webWorker": { + "vendor": "Google+Inc.+(Apple)", + "renderer": "ANGLE+(Apple,+ANGLE+Metal+Renderer:+Apple+M4+Max,+Unspecified+Version)", + "userAgent": "Mozilla/5.0+(Macintosh;+Intel+Mac+OS+X+10_15_7)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/144.0.0.0+Safari/537.36", + "language": "en", + "platform": "MacIntel", + "memory": 8, + "cpuCount": 14 + } + } + }, + "fsid": "FS1_00001000000000_00010h02ba_2304x1296c14m08b10011h-5db59_f1000111100e00000000p1100h-7ce12_0h06653c_1h-36e6b_en4h720e_0100h-156f8", + "nonce": "jb8t2jfm839", + "time": 1770669806462, + "url": "http://localhost/", + "fastBotDetection": true, + "fastBotDetectionDetails": { + "headlessChromeScreenResolution": { + "detected": false, + "severity": "high" + }, + "hasWebdriver": { + "detected": false, + "severity": "high" + }, + "hasWebdriverWritable": { + "detected": false, + "severity": "high" + }, + "hasSeleniumProperty": { + "detected": false, + "severity": "high" + }, + "hasCDP": { + "detected": true, + "severity": "high" + }, + "hasPlaywright": { + "detected": false, + "severity": "high" + }, + "hasImpossibleDeviceMemory": { + "detected": false, + "severity": "high" + }, + "hasHighCPUCount": { + "detected": false, + "severity": "high" + }, + "hasMissingChromeObject": { + "detected": false, + "severity": "high" + }, + "hasWebdriverIframe": { + "detected": false, + "severity": "high" + }, + "hasWebdriverWorker": { + "detected": false, + "severity": "high" + }, + "hasMismatchWebGLInWorker": { + "detected": false, + "severity": "high" + }, + "hasMismatchPlatformIframe": { + "detected": false, + "severity": "high" + }, + "hasMismatchPlatformWorker": { + "detected": false, + "severity": "high" + }, + "hasSwiftshaderRenderer": { + "detected": false, + "severity": "low" + }, + "hasUTCTimezone": { + "detected": false, + "severity": "medium" + } + } +} +*/ + +type FingerprintData struct { + Signals fingerprintSignals `json:"signals"` + FSID string `json:"fsid"` + Nonce string `json:"nonce"` + Time int64 `json:"time"` + URL string `json:"url"` + FastBotDetection FlexBool `json:"fastBotDetection"` + FastBotDetectionDetails fingerprintFastBotDetectionDetails `json:"fastBotDetectionDetails"` + Bot fingerprintBotAlias `json:"-"` +} + +type fingerprintSignals struct { + Automation fingerprintAutomation `json:"automation"` + Device fingerprintDevice `json:"device"` + Browser fingerprintBrowser `json:"browser"` + Graphics fingerprintGraphics `json:"graphics"` + Codecs fingerprintCodecs `json:"codecs"` + Locale fingerprintLocale `json:"locale"` + Contexts fingerprintContexts `json:"contexts"` +} + +type fingerprintAutomation struct { + Webdriver FlexBool `json:"webdriver"` + WebdriverWritable FlexBool `json:"webdriverWritable"` + Selenium FlexBool `json:"selenium"` + CDP FlexBool `json:"cdp"` + Playwright FlexBool `json:"playwright"` + NavigatorPropertyDescriptors string `json:"navigatorPropertyDescriptors"` +} + +type fingerprintDevice struct { + CPUCount FlexInt `json:"cpuCount"` + Memory FlexInt `json:"memory"` + Platform string `json:"platform"` + ScreenResolution fingerprintScreenResolution `json:"screenResolution"` + MultimediaDevices fingerprintMultimediaDevices `json:"multimediaDevices"` + MediaQueries fingerprintDeviceMediaQueries `json:"mediaQueries"` +} + +type fingerprintScreenResolution struct { + Width FlexInt `json:"width"` + Height FlexInt `json:"height"` + PixelDepth FlexInt `json:"pixelDepth"` + ColorDepth FlexInt `json:"colorDepth"` + AvailableWidth FlexInt `json:"availableWidth"` + AvailableHeight FlexInt `json:"availableHeight"` + InnerWidth FlexInt `json:"innerWidth"` + InnerHeight FlexInt `json:"innerHeight"` + HasMultipleDisplays FlexBool `json:"hasMultipleDisplays"` +} + +type fingerprintMultimediaDevices struct { + Speakers FlexInt `json:"speakers"` + Microphones FlexInt `json:"microphones"` + Webcams FlexInt `json:"webcams"` +} + +type fingerprintDeviceMediaQueries struct { + PrefersColorScheme string `json:"prefersColorScheme"` + PrefersReducedMotion FlexBool `json:"prefersReducedMotion"` + PrefersReducedTransparency FlexBool `json:"prefersReducedTransparency"` + ColorGamut string `json:"colorGamut"` + Pointer string `json:"pointer"` + AnyPointer string `json:"anyPointer"` + Hover FlexBool `json:"hover"` + AnyHover FlexBool `json:"anyHover"` + ColorDepth FlexInt `json:"colorDepth"` +} + +type fingerprintBrowser struct { + UserAgent string `json:"userAgent"` + Features fingerprintBrowserFeatures `json:"features"` + Plugins fingerprintBrowserPlugins `json:"plugins"` + Extensions fingerprintBrowserExtensions `json:"extensions"` + HighEntropyValues fingerprintBrowserHighEntropyValues `json:"highEntropyValues"` + ETSL FlexInt `json:"etsl"` + Maths string `json:"maths"` + ToSourceError fingerprintBrowserToSourceError `json:"toSourceError"` +} + +type fingerprintBrowserFeatures struct { + Bitmask string `json:"bitmask"` + Chrome FlexBool `json:"chrome"` + Brave FlexBool `json:"brave"` + ApplePaySupport FlexBool `json:"applePaySupport"` + Opera FlexBool `json:"opera"` + Serial FlexBool `json:"serial"` + AttachShadow FlexBool `json:"attachShadow"` + Caches FlexBool `json:"caches"` + WebAssembly FlexBool `json:"webAssembly"` + Buffer FlexBool `json:"buffer"` + ShowModalDialog FlexBool `json:"showModalDialog"` + Safari FlexBool `json:"safari"` + WebkitPrefixedFunction FlexBool `json:"webkitPrefixedFunction"` + MozPrefixedFunction FlexBool `json:"mozPrefixedFunction"` + USB FlexBool `json:"usb"` + BrowserCapture FlexBool `json:"browserCapture"` + PaymentRequestUpdateEvent FlexBool `json:"paymentRequestUpdateEvent"` + PressureObserver FlexBool `json:"pressureObserver"` + AudioSession FlexBool `json:"audioSession"` + SelectAudioOutput FlexBool `json:"selectAudioOutput"` + BarcodeDetector FlexBool `json:"barcodeDetector"` + Battery FlexBool `json:"battery"` + DevicePosture FlexBool `json:"devicePosture"` + DocumentPictureInPicture FlexBool `json:"documentPictureInPicture"` + EyeDropper FlexBool `json:"eyeDropper"` + EditContext FlexBool `json:"editContext"` + FencedFrame FlexBool `json:"fencedFrame"` + Sanitizer FlexBool `json:"sanitizer"` + OTPCredential FlexBool `json:"otpCredential"` +} + +type fingerprintBrowserPlugins struct { + IsValidPluginArray FlexBool `json:"isValidPluginArray"` + PluginCount FlexInt `json:"pluginCount"` + PluginNamesHash string `json:"pluginNamesHash"` + PluginConsistency1 FlexBool `json:"pluginConsistency1"` + PluginOverflow FlexBool `json:"pluginOverflow"` +} + +type fingerprintBrowserExtensions struct { + Bitmask string `json:"bitmask"` + Extensions []string `json:"extensions"` +} + +type fingerprintBrowserHighEntropyValues struct { + Architecture string `json:"architecture"` + Bitness string `json:"bitness"` + Brands FlexBrandVersions `json:"brands"` + Mobile FlexBool `json:"mobile"` + Model string `json:"model"` + Platform string `json:"platform"` + PlatformVersion string `json:"platformVersion"` + UAFullVersion string `json:"uaFullVersion"` +} + +type fingerprintBrandVersion struct { + Brand string `json:"brand"` + Version string `json:"version"` +} + +// FlexBrandVersions handles a JSON value that should be []fingerprintBrandVersion +// but may be a string (error) from the fingerprint library. +type FlexBrandVersions []fingerprintBrandVersion + +func (f *FlexBrandVersions) UnmarshalJSON(data []byte) error { + var arr []fingerprintBrandVersion + if err := json.Unmarshal(data, &arr); err == nil { + *f = arr + return nil + } + + // Probably a string error — ignore it, leave empty. + *f = nil + + return nil +} + +type fingerprintBrowserToSourceError struct { + ToSourceError string `json:"toSourceError"` + HasToSource FlexBool `json:"hasToSource"` +} + +type fingerprintGraphics struct { + WebGL fingerprintGraphicsWebGL `json:"webGL"` + WebGPU fingerprintGraphicsWebGPU `json:"webgpu"` + Canvas fingerprintGraphicsCanvas `json:"canvas"` +} + +type fingerprintGraphicsWebGL struct { + Vendor string `json:"vendor"` + Renderer string `json:"renderer"` +} + +type fingerprintGraphicsWebGPU struct { + Vendor string `json:"vendor"` + Architecture string `json:"architecture"` + Device string `json:"device"` + Description string `json:"description"` +} + +type fingerprintGraphicsCanvas struct { + HasModifiedCanvas FlexBool `json:"hasModifiedCanvas"` + CanvasFingerprint string `json:"canvasFingerprint"` +} + +type fingerprintCodecs struct { + AudioCanPlayTypeHash string `json:"audioCanPlayTypeHash"` + VideoCanPlayTypeHash string `json:"videoCanPlayTypeHash"` + AudioMediaSourceHash string `json:"audioMediaSourceHash"` + VideoMediaSourceHash string `json:"videoMediaSourceHash"` + RTCAudioCapabilitiesHash string `json:"rtcAudioCapabilitiesHash"` + RTCVideoCapabilitiesHash string `json:"rtcVideoCapabilitiesHash"` + HasMediaSource FlexBool `json:"hasMediaSource"` +} + +type fingerprintLocale struct { + Internationalization fingerprintLocaleInternationalization `json:"internationalization"` + Languages fingerprintLocaleLanguages `json:"languages"` +} + +type fingerprintLocaleInternationalization struct { + Timezone string `json:"timezone"` + LocaleLanguage string `json:"localeLanguage"` +} + +type fingerprintLocaleLanguages struct { + Languages []string `json:"languages"` + Language string `json:"language"` +} + +type fingerprintContexts struct { + Iframe fingerprintIframeContext `json:"iframe"` + WebWorker fingerprintWebWorkerContext `json:"webWorker"` +} + +type fingerprintIframeContext struct { + Webdriver FlexBool `json:"webdriver"` + UserAgent string `json:"userAgent"` + Platform string `json:"platform"` + Memory FlexInt `json:"memory"` + CPUCount FlexInt `json:"cpuCount"` + Language string `json:"language"` +} + +type fingerprintWebWorkerContext struct { + Vendor string `json:"vendor"` + Renderer string `json:"renderer"` + UserAgent string `json:"userAgent"` + Language string `json:"language"` + Platform string `json:"platform"` + Memory FlexInt `json:"memory"` + CPUCount FlexInt `json:"cpuCount"` +} + +type fingerprintFastBotDetectionDetails struct { + HeadlessChromeScreenResolution fingerprintDetectionResult `json:"headlessChromeScreenResolution"` + HasWebdriver fingerprintDetectionResult `json:"hasWebdriver"` + HasWebdriverWritable fingerprintDetectionResult `json:"hasWebdriverWritable"` + HasSeleniumProperty fingerprintDetectionResult `json:"hasSeleniumProperty"` + HasCDP fingerprintDetectionResult `json:"hasCDP"` + HasPlaywright fingerprintDetectionResult `json:"hasPlaywright"` + HasImpossibleDeviceMemory fingerprintDetectionResult `json:"hasImpossibleDeviceMemory"` + HasHighCPUCount fingerprintDetectionResult `json:"hasHighCPUCount"` + HasMissingChromeObject fingerprintDetectionResult `json:"hasMissingChromeObject"` + HasWebdriverIframe fingerprintDetectionResult `json:"hasWebdriverIframe"` + HasWebdriverWorker fingerprintDetectionResult `json:"hasWebdriverWorker"` + HasMismatchWebGLInWorker fingerprintDetectionResult `json:"hasMismatchWebGLInWorker"` + HasMismatchPlatformIframe fingerprintDetectionResult `json:"hasMismatchPlatformIframe"` + HasMismatchPlatformWorker fingerprintDetectionResult `json:"hasMismatchPlatformWorker"` + HasSwiftshaderRenderer fingerprintDetectionResult `json:"hasSwiftshaderRenderer"` + HasUTCTimezone fingerprintDetectionResult `json:"hasUTCTimezone"` + HasMismatchLanguages fingerprintDetectionResult `json:"hasMismatchLanguages"` + HasInconsistentEtsl fingerprintDetectionResult `json:"hasInconsistentEtsl"` + HasBotUserAgent fingerprintDetectionResult `json:"hasBotUserAgent"` + HasGPUMismatch fingerprintDetectionResult `json:"hasGPUMismatch"` + HasPlatformMismatch fingerprintDetectionResult `json:"hasPlatformMismatch"` +} + +type fingerprintDetectionResult struct { + Detected FlexBool `json:"detected"` +} + +type fingerprintBotAlias struct { + HeadlessChromeScreenResolution bool `json:"headlessChromeScreenResolution"` + Webdriver bool `json:"webdriver"` + WebdriverWritable bool `json:"webdriverWritable"` + Selenium bool `json:"selenium"` + CDP bool `json:"cdp"` + Playwright bool `json:"playwright"` + ImpossibleDeviceMemory bool `json:"impossibleDeviceMemory"` + HighCPUCount bool `json:"highCPUCount"` + MissingChromeObject bool `json:"missingChromeObject"` + WebdriverIframe bool `json:"webdriverIframe"` + WebdriverWorker bool `json:"webdriverWorker"` + MismatchWebGLInWorker bool `json:"mismatchWebGLInWorker"` + MismatchPlatformIframe bool `json:"mismatchPlatformIframe"` + MismatchPlatformWorker bool `json:"mismatchPlatformWorker"` + SwiftshaderRenderer bool `json:"swiftshaderRenderer"` + UTCTimezone bool `json:"utcTimezone"` + MismatchLanguages bool `json:"mismatchLanguages"` + InconsistentEtsl bool `json:"inconsistentEtsl"` + BotUserAgent bool `json:"botUserAgent"` + GPUMismatch bool `json:"gpuMismatch"` + PlatformMismatch bool `json:"platformMismatch"` + AnyDetected bool `json:"anyDetected"` + DetectedCount FlexInt `json:"detectedCount"` +} + +func (f *FingerprintData) UnmarshalJSON(data []byte) error { + type rawFingerprintData FingerprintData + + var raw rawFingerprintData + if err := json.Unmarshal(data, &raw); err != nil { + return err + } + + *f = FingerprintData(raw) + f.Bot = newFingerprintBotAlias(f.FastBotDetectionDetails) + + return nil +} + +func newFingerprintBotAlias(details fingerprintFastBotDetectionDetails) fingerprintBotAlias { + alias := fingerprintBotAlias{ + HeadlessChromeScreenResolution: bool(details.HeadlessChromeScreenResolution.Detected), + Webdriver: bool(details.HasWebdriver.Detected), + WebdriverWritable: bool(details.HasWebdriverWritable.Detected), + Selenium: bool(details.HasSeleniumProperty.Detected), + CDP: bool(details.HasCDP.Detected), + Playwright: bool(details.HasPlaywright.Detected), + ImpossibleDeviceMemory: bool(details.HasImpossibleDeviceMemory.Detected), + HighCPUCount: bool(details.HasHighCPUCount.Detected), + MissingChromeObject: bool(details.HasMissingChromeObject.Detected), + WebdriverIframe: bool(details.HasWebdriverIframe.Detected), + WebdriverWorker: bool(details.HasWebdriverWorker.Detected), + MismatchWebGLInWorker: bool(details.HasMismatchWebGLInWorker.Detected), + MismatchPlatformIframe: bool(details.HasMismatchPlatformIframe.Detected), + MismatchPlatformWorker: bool(details.HasMismatchPlatformWorker.Detected), + SwiftshaderRenderer: bool(details.HasSwiftshaderRenderer.Detected), + UTCTimezone: bool(details.HasUTCTimezone.Detected), + MismatchLanguages: bool(details.HasMismatchLanguages.Detected), + InconsistentEtsl: bool(details.HasInconsistentEtsl.Detected), + BotUserAgent: bool(details.HasBotUserAgent.Detected), + GPUMismatch: bool(details.HasGPUMismatch.Detected), + PlatformMismatch: bool(details.HasPlatformMismatch.Detected), + } + + if alias.HeadlessChromeScreenResolution { + alias.DetectedCount++ + } + if alias.Webdriver { + alias.DetectedCount++ + } + if alias.WebdriverWritable { + alias.DetectedCount++ + } + if alias.Selenium { + alias.DetectedCount++ + } + if alias.CDP { + alias.DetectedCount++ + } + if alias.Playwright { + alias.DetectedCount++ + } + if alias.ImpossibleDeviceMemory { + alias.DetectedCount++ + } + if alias.HighCPUCount { + alias.DetectedCount++ + } + if alias.MissingChromeObject { + alias.DetectedCount++ + } + if alias.WebdriverIframe { + alias.DetectedCount++ + } + if alias.WebdriverWorker { + alias.DetectedCount++ + } + if alias.MismatchWebGLInWorker { + alias.DetectedCount++ + } + if alias.MismatchPlatformIframe { + alias.DetectedCount++ + } + if alias.MismatchPlatformWorker { + alias.DetectedCount++ + } + if alias.SwiftshaderRenderer { + alias.DetectedCount++ + } + if alias.UTCTimezone { + alias.DetectedCount++ + } + if alias.MismatchLanguages { + alias.DetectedCount++ + } + if alias.InconsistentEtsl { + alias.DetectedCount++ + } + if alias.BotUserAgent { + alias.DetectedCount++ + } + if alias.GPUMismatch { + alias.DetectedCount++ + } + if alias.PlatformMismatch { + alias.DetectedCount++ + } + + alias.AnyDetected = alias.DetectedCount > 0 + + return alias +} diff --git a/pkg/appsec/challenge/fingerprint_helpers.go b/pkg/appsec/challenge/fingerprint_helpers.go new file mode 100644 index 00000000000..dfb5f51f158 --- /dev/null +++ b/pkg/appsec/challenge/fingerprint_helpers.go @@ -0,0 +1,168 @@ +package challenge + +// Handwritten helpers on *FingerprintData. Kept in a dedicated file (not +// fingerprint.go) so a future fpscanner library bump — which rewrites the +// data-shape structs — doesn't clobber these methods. + +// IsBot returns the library's fast-bot verdict as a native bool, so rules can write +// `fingerprint.IsBot()` instead of `fingerprint.FastBotDetection.Bool() == true`. +func (f *FingerprintData) IsBot() bool { + if f == nil { + return false + } + + return bool(f.FastBotDetection) +} + +// BotSignalCount returns the number of fast-bot-detection signals that fired. +func (f *FingerprintData) BotSignalCount() int { + if f == nil { + return 0 + } + + return f.Bot.DetectedCount.Int() +} + +// HasBotSignal returns true if any fast-bot-detection signal fired. +func (f *FingerprintData) HasBotSignal() bool { + if f == nil { + return false + } + + return f.Bot.AnyDetected +} + +// HasAutomationSignal returns true if any automation-framework signal fired +// (webdriver, selenium, CDP, playwright, bot user-agent regex). +func (f *FingerprintData) HasAutomationSignal() bool { + if f == nil { + return false + } + + b := f.Bot + + return b.Webdriver || + b.WebdriverWritable || + b.Selenium || + b.CDP || + b.Playwright || + b.BotUserAgent +} + +// HasHeadlessSignal returns true if any headless-browser signal fired. Also +// folds in inconsistent-etsl, which fires when the TLS-level `etsl` integer +// disagrees with the claimed browser family — characteristic of patched / +// forged headless environments. +func (f *FingerprintData) HasHeadlessSignal() bool { + if f == nil { + return false + } + + b := f.Bot + + return b.HeadlessChromeScreenResolution || + b.MissingChromeObject || + b.SwiftshaderRenderer || + b.InconsistentEtsl +} + +// HasMismatchSignal returns true if any cross-context or cross-API mismatch +// signal fired (iframe/worker webdriver, platform, WebGL in worker, UA-vs- +// navigator platform, GPU, languages). +func (f *FingerprintData) HasMismatchSignal() bool { + if f == nil { + return false + } + + b := f.Bot + + return b.MismatchWebGLInWorker || + b.MismatchPlatformIframe || + b.MismatchPlatformWorker || + b.WebdriverIframe || + b.WebdriverWorker || + b.PlatformMismatch || + b.GPUMismatch || + b.MismatchLanguages +} + +// HasImpossibleDeviceSignal returns true if the reported device specs are outside +// plausible bounds (memory / CPU count). +func (f *FingerprintData) HasImpossibleDeviceSignal() bool { + if f == nil { + return false + } + + b := f.Bot + + return b.ImpossibleDeviceMemory || b.HighCPUCount +} + +// UserAgent returns the user-agent reported by the browser. +func (f *FingerprintData) UserAgent() string { + if f == nil { + return "" + } + + return f.Signals.Browser.UserAgent +} + +// Platform returns the browser-reported platform, preferring the high-entropy +// client-hint value and falling back to navigator.platform. +func (f *FingerprintData) Platform() string { + if f == nil { + return "" + } + + if p := f.Signals.Browser.HighEntropyValues.Platform; p != "" { + return p + } + + return f.Signals.Device.Platform +} + +// Timezone returns the browser-reported IANA timezone. +func (f *FingerprintData) Timezone() string { + if f == nil { + return "" + } + + return f.Signals.Locale.Internationalization.Timezone +} + +// Language returns the browser's primary language. +func (f *FingerprintData) Language() string { + if f == nil { + return "" + } + + return f.Signals.Locale.Languages.Language +} + +// IsMobile returns true if the browser advertises a mobile form factor +// (via UA client hints). +func (f *FingerprintData) IsMobile() bool { + if f == nil { + return false + } + + return bool(f.Signals.Browser.HighEntropyValues.Mobile) +} + +// CPUCount returns navigator.hardwareConcurrency as a native int. +func (f *FingerprintData) CPUCount() int { + if f == nil { + return 0 + } + + return f.Signals.Device.CPUCount.Int() +} + +// Memory returns navigator.deviceMemory as a native int. +func (f *FingerprintData) Memory() int { + if f == nil { + return 0 + } + + return f.Signals.Device.Memory.Int() +} diff --git a/pkg/appsec/challenge/fingerprint_helpers_test.go b/pkg/appsec/challenge/fingerprint_helpers_test.go new file mode 100644 index 00000000000..34958c23cc6 --- /dev/null +++ b/pkg/appsec/challenge/fingerprint_helpers_test.go @@ -0,0 +1,158 @@ +package challenge + +import ( + "encoding/json" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +const sampleFingerprintJSON = `{ + "signals": { + "device": { + "cpuCount": 14, + "memory": 8, + "platform": "MacIntel" + }, + "browser": { + "userAgent": "Mozilla/5.0 Chrome", + "highEntropyValues": { + "platform": "macOS", + "mobile": false + } + }, + "locale": { + "internationalization": {"timezone": "Europe/Paris"}, + "languages": {"language": "en", "languages": ["en","fr"]} + } + }, + "fsid": "FS1_abc", + "nonce": "n1", + "time": 1770669806462, + "url": "http://localhost/", + "fastBotDetection": true, + "fastBotDetectionDetails": { + "hasCDP": {"detected": true, "severity": "high"}, + "headlessChromeScreenResolution": {"detected": false, "severity": "high"}, + "hasWebdriver": {"detected": false, "severity": "high"}, + "hasWebdriverWritable": {"detected": false, "severity": "high"}, + "hasSeleniumProperty": {"detected": false, "severity": "high"}, + "hasPlaywright": {"detected": false, "severity": "high"}, + "hasImpossibleDeviceMemory":{"detected": false, "severity": "high"}, + "hasHighCPUCount": {"detected": false, "severity": "high"}, + "hasMissingChromeObject": {"detected": false, "severity": "high"}, + "hasWebdriverIframe": {"detected": false, "severity": "high"}, + "hasWebdriverWorker": {"detected": false, "severity": "high"}, + "hasMismatchWebGLInWorker": {"detected": false, "severity": "high"}, + "hasMismatchPlatformIframe":{"detected": false, "severity": "high"}, + "hasMismatchPlatformWorker":{"detected": false, "severity": "high"}, + "hasSwiftshaderRenderer": {"detected": false, "severity": "low"}, + "hasUTCTimezone": {"detected": false, "severity": "medium"} + } +}` + +func TestFingerprintHelpers_Getters(t *testing.T) { + var fp FingerprintData + require.NoError(t, json.Unmarshal([]byte(sampleFingerprintJSON), &fp)) + + assert.True(t, fp.IsBot()) + assert.True(t, fp.HasBotSignal()) + assert.Equal(t, 1, fp.BotSignalCount()) + + // only CDP is set in the sample, so only HasAutomationSignal should flip + assert.True(t, fp.HasAutomationSignal()) + assert.False(t, fp.HasHeadlessSignal()) + assert.False(t, fp.HasMismatchSignal()) + assert.False(t, fp.HasImpossibleDeviceSignal()) + + assert.Equal(t, "Mozilla/5.0 Chrome", fp.UserAgent()) + assert.Equal(t, "macOS", fp.Platform()) // prefers high-entropy value + assert.Equal(t, "Europe/Paris", fp.Timezone()) + assert.Equal(t, "en", fp.Language()) + assert.False(t, fp.IsMobile()) + assert.Equal(t, 14, fp.CPUCount()) + assert.Equal(t, 8, fp.Memory()) +} + +func TestFingerprintHelpers_PlatformFallback(t *testing.T) { + // no high-entropy platform -> falls back to navigator.platform + fp := FingerprintData{} + fp.Signals.Device.Platform = "Linux x86_64" + assert.Equal(t, "Linux x86_64", fp.Platform()) +} + +func TestFingerprintHelpers_NilReceiver(t *testing.T) { + var fp *FingerprintData + + assert.False(t, fp.IsBot()) + assert.False(t, fp.HasBotSignal()) + assert.Equal(t, 0, fp.BotSignalCount()) + assert.False(t, fp.HasAutomationSignal()) + assert.False(t, fp.HasHeadlessSignal()) + assert.False(t, fp.HasMismatchSignal()) + assert.False(t, fp.HasImpossibleDeviceSignal()) + assert.Equal(t, "", fp.UserAgent()) + assert.Equal(t, "", fp.Platform()) + assert.Equal(t, "", fp.Timezone()) + assert.Equal(t, "", fp.Language()) + assert.False(t, fp.IsMobile()) + assert.Equal(t, 0, fp.CPUCount()) + assert.Equal(t, 0, fp.Memory()) +} + +func TestFingerprintHelpers_CategoryAggregates(t *testing.T) { + const ( + catAutomation = "automation" + catHeadless = "headless" + catMismatch = "mismatch" + catImpossibleDevice = "impossible_device" + ) + + cases := []struct { + name string + set func(*fingerprintBotAlias) + want string + }{ + {"webdriver", func(b *fingerprintBotAlias) { b.Webdriver = true }, catAutomation}, + {"webdriverWritable", func(b *fingerprintBotAlias) { b.WebdriverWritable = true }, catAutomation}, + {"selenium", func(b *fingerprintBotAlias) { b.Selenium = true }, catAutomation}, + {"cdp", func(b *fingerprintBotAlias) { b.CDP = true }, catAutomation}, + {"playwright", func(b *fingerprintBotAlias) { b.Playwright = true }, catAutomation}, + + {"headlessChromeScreenResolution", func(b *fingerprintBotAlias) { b.HeadlessChromeScreenResolution = true }, catHeadless}, + {"missingChromeObject", func(b *fingerprintBotAlias) { b.MissingChromeObject = true }, catHeadless}, + {"swiftshaderRenderer", func(b *fingerprintBotAlias) { b.SwiftshaderRenderer = true }, catHeadless}, + + {"mismatchWebGLInWorker", func(b *fingerprintBotAlias) { b.MismatchWebGLInWorker = true }, catMismatch}, + {"mismatchPlatformIframe", func(b *fingerprintBotAlias) { b.MismatchPlatformIframe = true }, catMismatch}, + {"mismatchPlatformWorker", func(b *fingerprintBotAlias) { b.MismatchPlatformWorker = true }, catMismatch}, + {"webdriverIframe", func(b *fingerprintBotAlias) { b.WebdriverIframe = true }, catMismatch}, + {"webdriverWorker", func(b *fingerprintBotAlias) { b.WebdriverWorker = true }, catMismatch}, + + {"impossibleDeviceMemory", func(b *fingerprintBotAlias) { b.ImpossibleDeviceMemory = true }, catImpossibleDevice}, + {"highCPUCount", func(b *fingerprintBotAlias) { b.HighCPUCount = true }, catImpossibleDevice}, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + fp := &FingerprintData{} + tc.set(&fp.Bot) + + got := map[string]bool{ + catAutomation: fp.HasAutomationSignal(), + catHeadless: fp.HasHeadlessSignal(), + catMismatch: fp.HasMismatchSignal(), + catImpossibleDevice: fp.HasImpossibleDeviceSignal(), + } + + for cat, fired := range got { + if cat == tc.want { + assert.True(t, fired, "expected category %q to fire", cat) + } else { + assert.False(t, fired, "expected category %q to stay false", cat) + } + } + }) + } +} diff --git a/pkg/appsec/challenge/fingerprint_mismatch.go b/pkg/appsec/challenge/fingerprint_mismatch.go new file mode 100644 index 00000000000..f7c2a3613c6 --- /dev/null +++ b/pkg/appsec/challenge/fingerprint_mismatch.go @@ -0,0 +1,256 @@ +package challenge + +import ( + "net/http" + "strings" + + "golang.org/x/text/language" +) + +// UAMobileMismatch reports whether the fingerprint's user-agent claims a +// mobile form factor while the reported inner viewport width is implausibly +// wide for a real device. Catches the "UA switcher set to Android while +// actually on a desktop" pattern. +// +// Returns false (no signal) when either the UA doesn't claim mobile or the +// inner width is zero/missing. +func (f *FingerprintData) UAMobileMismatch() bool { + if f == nil { + return false + } + + ua := f.UserAgent() + if ua == "" { + return false + } + + if !mobileUARegex.MatchString(ua) { + return false + } + + innerWidth := f.Signals.Device.ScreenResolution.InnerWidth.Int() + if innerWidth <= 0 { + return false + } + + return innerWidth >= mobileViewportThreshold +} + +// AcceptLanguageMismatch reports whether the request's Accept-Language +// header disagrees with the fingerprint's navigator.language. Both are +// derived from the same browser preference, so on a real browser they +// should agree at the base-language level. +// +// Returns false when either side is empty or unparseable — never a false +// positive on missing data. +// +// Deliberately different from the library's MismatchLanguages detection, +// which only compares navigator.languages[0] to navigator.language inside +// the browser; this helper brings the HTTP header into the comparison. +func (f *FingerprintData) AcceptLanguageMismatch(req *http.Request) bool { + if f == nil || req == nil { + return false + } + + fpLang := f.Language() + if fpLang == "" { + return false + } + + header := req.Header.Get("Accept-Language") + if header == "" { + return false + } + + tags, _, err := language.ParseAcceptLanguage(header) + if err != nil || len(tags) == 0 { + return false + } + + headerBase, _ := tags[0].Base() + + fpTag, err := language.Parse(fpLang) + if err != nil { + return false + } + + fpBase, _ := fpTag.Base() + + return headerBase.String() != fpBase.String() +} + +// TimezoneCountryMismatch reports whether the fingerprint's timezone +// disagrees with the client's country of origin (typically resolved via +// IPToCountry from the client IP). +// +// SOFT SIGNAL. Travelers whose OS timezone hasn't auto-adjusted and VPN +// users will legitimately trigger this. Rule authors should combine it +// with other signals (High()/Medium() counts, or reason-specific checks) +// before using it alone to ban. +// +// Returns false when either the timezone is unknown to our IANA table or +// the country is empty. +func (f *FingerprintData) TimezoneCountryMismatch(country string) bool { + if f == nil || country == "" { + return false + } + + tz := f.Timezone() + if tz == "" { + return false + } + + countries := lookupTimezoneCountries(tz) + if len(countries) == 0 { + return false + } + + for _, c := range countries { + if c == country { + return false + } + } + + return true +} + +// MismatchSignal is a single fired reason/severity pair on the report. +type MismatchSignal struct { + Reason string + Severity string +} + +// MismatchReport aggregates the fired mismatch signals for a single +// fingerprint evaluation. Returned by ComputeMismatchReport; typically +// accessed through the cached EvaluateMismatches closure in the +// on_challenge expr env. +type MismatchReport struct { + Signals []MismatchSignal +} + +// Count returns the total number of fired signals. +func (r *MismatchReport) Count() int { + if r == nil { + return 0 + } + return len(r.Signals) +} + +// Empty reports whether no signal fired. +func (r *MismatchReport) Empty() bool { + return r.Count() == 0 +} + +// Has reports whether a signal with the given reason key is present. +func (r *MismatchReport) Has(reason string) bool { + if r == nil { + return false + } + for _, s := range r.Signals { + if s.Reason == reason { + return true + } + } + return false +} + +// Reasons returns the stable-ordered list of fired reason keys. +func (r *MismatchReport) Reasons() []string { + if r == nil { + return nil + } + out := make([]string, len(r.Signals)) + for i, s := range r.Signals { + out[i] = s.Reason + } + return out +} + +// High returns the count of signals tagged with the "high" severity. +func (r *MismatchReport) High() int { + return r.BySeverity(SeverityHigh) +} + +// Medium returns the count of signals tagged with the "medium" severity. +func (r *MismatchReport) Medium() int { + return r.BySeverity(SeverityMedium) +} + +// Low returns the count of signals tagged with the "low" severity. +func (r *MismatchReport) Low() int { + return r.BySeverity(SeverityLow) +} + +// BySeverity returns the count of signals at the requested severity level. +func (r *MismatchReport) BySeverity(sev string) int { + if r == nil { + return 0 + } + n := 0 + for _, s := range r.Signals { + if s.Severity == sev { + n++ + } + } + return n +} + +// String renders the report as "reason1(sev),reason2(sev)" for log lines. +func (r *MismatchReport) String() string { + if r == nil || len(r.Signals) == 0 { + return "" + } + var b strings.Builder + for i, s := range r.Signals { + if i > 0 { + b.WriteByte(',') + } + b.WriteString(s.Reason) + b.WriteByte('(') + b.WriteString(s.Severity) + b.WriteByte(')') + } + return b.String() +} + +// ComputeMismatchReport walks the library-native bot alias plus the +// CrowdSec custom helpers and returns every fired signal in a stable +// order. It is the pure computation backing EvaluateMismatches; callers +// wanting caching + observability should use the env closure registered +// in GetOnChallengeEnv instead. +// +// `country` is the ISO-3166 alpha-2 code of the client's geolocated +// country, or "" when unknown. Pass `exprhelpers.IPToCountry(...)`'s +// return value (or equivalent) — resolved once at the call site so this +// method stays free of side-effects. +// +// Iteration order is libDetections first (in the order declared there), +// then customDetections. Reason / severity / accessor binding for every +// check lives in one place — fingerprint_mismatch_data.go. +func (f *FingerprintData) ComputeMismatchReport(req *http.Request, country string) *MismatchReport { + report := &MismatchReport{} + + if f == nil { + return report + } + + for _, d := range libDetections { + if d.Read(f.Bot) { + report.Signals = append(report.Signals, MismatchSignal{ + Reason: d.Key, + Severity: d.Severity, + }) + } + } + + for _, d := range customDetections { + if d.Fire(f, req, country) { + report.Signals = append(report.Signals, MismatchSignal{ + Reason: d.Key, + Severity: d.Severity, + }) + } + } + + return report +} diff --git a/pkg/appsec/challenge/fingerprint_mismatch_data.go b/pkg/appsec/challenge/fingerprint_mismatch_data.go new file mode 100644 index 00000000000..a163f73a880 --- /dev/null +++ b/pkg/appsec/challenge/fingerprint_mismatch_data.go @@ -0,0 +1,163 @@ +package challenge + +import ( + "net/http" + "regexp" +) + +// Severity labels. Mirror the fpscanner library's fastBotDetectionDetails[*].severity +// strings so the vocabulary is consistent end-to-end. +const ( + SeverityHigh = "high" + SeverityMedium = "medium" + SeverityLow = "low" +) + +// Stable reason keys. One per entry in libDetections / customDetections +// below. Kept as exported constants so rule authors can +// `Has("platform_mismatch")` without typos. +const ( + ReasonCDP = "cdp" + ReasonWebdriver = "webdriver" + ReasonWebdriverWritable = "webdriver_writable" + ReasonSelenium = "selenium" + ReasonPlaywright = "playwright" + ReasonWebdriverIframe = "webdriver_iframe" + ReasonWebdriverWorker = "webdriver_worker" + ReasonHeadlessScreenResolution = "headless_screen_resolution" + ReasonMissingChromeObject = "missing_chrome_object" + ReasonImpossibleMemory = "impossible_memory" + ReasonHighCPUCount = "high_cpu_count" + ReasonMismatchWebGLWorker = "mismatch_webgl_worker" + ReasonMismatchPlatformIframe = "mismatch_platform_iframe" + ReasonMismatchPlatformWorker = "mismatch_platform_worker" + ReasonPlatformMismatch = "platform_mismatch" + ReasonGPUMismatch = "gpu_mismatch" + ReasonBotUserAgent = "bot_user_agent" + ReasonInconsistentEtsl = "inconsistent_etsl" + ReasonUAMobile = "ua_mobile" + ReasonUTCTimezone = "utc_timezone" + ReasonAcceptLanguage = "accept_language" + ReasonSwiftshaderRenderer = "swiftshader_renderer" + ReasonMismatchLanguages = "mismatch_languages" + ReasonTimezoneCountry = "timezone_country" +) + +// libDetection binds an fpscanner-native signal to the bot-alias bool that +// carries its `detected` flag, together with our severity label for it. +// +// TODO: the fpscanner library ships each check with its own severity in the +// JSON payload. We don't unmarshal `severity` today (the struct only carries +// `detected`), so the severity values below are a mirror of what the library +// defaults to. When `fingerprintDetectionResult` grows a Severity field, we +// can drop the Severity column here and read it from the payload instead. +type libDetection struct { + Key string + Severity string + Read func(fingerprintBotAlias) bool +} + +// libDetections is the single source of truth for every library-native bot +// signal we surface: the reason key, its severity, and how to read its +// `detected` value from the bot alias. Append-only and ordering-stable so +// `MismatchReport.Reasons()` has a deterministic output. +var libDetections = []libDetection{ + {ReasonCDP, SeverityHigh, func(b fingerprintBotAlias) bool { return b.CDP }}, + {ReasonWebdriver, SeverityHigh, func(b fingerprintBotAlias) bool { return b.Webdriver }}, + {ReasonWebdriverWritable, SeverityHigh, func(b fingerprintBotAlias) bool { return b.WebdriverWritable }}, + {ReasonSelenium, SeverityHigh, func(b fingerprintBotAlias) bool { return b.Selenium }}, + {ReasonPlaywright, SeverityHigh, func(b fingerprintBotAlias) bool { return b.Playwright }}, + {ReasonWebdriverIframe, SeverityHigh, func(b fingerprintBotAlias) bool { return b.WebdriverIframe }}, + {ReasonWebdriverWorker, SeverityHigh, func(b fingerprintBotAlias) bool { return b.WebdriverWorker }}, + {ReasonHeadlessScreenResolution, SeverityHigh, func(b fingerprintBotAlias) bool { return b.HeadlessChromeScreenResolution }}, + {ReasonMissingChromeObject, SeverityHigh, func(b fingerprintBotAlias) bool { return b.MissingChromeObject }}, + {ReasonImpossibleMemory, SeverityHigh, func(b fingerprintBotAlias) bool { return b.ImpossibleDeviceMemory }}, + {ReasonHighCPUCount, SeverityHigh, func(b fingerprintBotAlias) bool { return b.HighCPUCount }}, + {ReasonMismatchWebGLWorker, SeverityHigh, func(b fingerprintBotAlias) bool { return b.MismatchWebGLInWorker }}, + {ReasonMismatchPlatformIframe, SeverityHigh, func(b fingerprintBotAlias) bool { return b.MismatchPlatformIframe }}, + {ReasonMismatchPlatformWorker, SeverityHigh, func(b fingerprintBotAlias) bool { return b.MismatchPlatformWorker }}, + {ReasonPlatformMismatch, SeverityHigh, func(b fingerprintBotAlias) bool { return b.PlatformMismatch }}, + {ReasonGPUMismatch, SeverityHigh, func(b fingerprintBotAlias) bool { return b.GPUMismatch }}, + {ReasonBotUserAgent, SeverityHigh, func(b fingerprintBotAlias) bool { return b.BotUserAgent }}, + {ReasonInconsistentEtsl, SeverityHigh, func(b fingerprintBotAlias) bool { return b.InconsistentEtsl }}, + {ReasonUTCTimezone, SeverityMedium, func(b fingerprintBotAlias) bool { return b.UTCTimezone }}, + {ReasonSwiftshaderRenderer, SeverityLow, func(b fingerprintBotAlias) bool { return b.SwiftshaderRenderer }}, + {ReasonMismatchLanguages, SeverityLow, func(b fingerprintBotAlias) bool { return b.MismatchLanguages }}, +} + +// customDetection binds a CrowdSec-authored mismatch helper (which may need +// request or geoip data) to its reason key and severity. The Fire function +// wraps whichever method-on-fp is the actual check — unified signature so +// customDetections can be iterated like libDetections. +type customDetection struct { + Key string + Severity string + Fire func(fp *FingerprintData, req *http.Request, country string) bool +} + +// customDetections lists every check we run on top of the library's own. +// Ordering is stable and comes after libDetections in the final report. +var customDetections = []customDetection{ + { + Key: ReasonUAMobile, + Severity: SeverityMedium, + Fire: func(fp *FingerprintData, _ *http.Request, _ string) bool { return fp.UAMobileMismatch() }, + }, + { + Key: ReasonAcceptLanguage, + Severity: SeverityMedium, + Fire: func(fp *FingerprintData, req *http.Request, _ string) bool { return fp.AcceptLanguageMismatch(req) }, + }, + { + Key: ReasonTimezoneCountry, + Severity: SeverityLow, + Fire: func(fp *FingerprintData, _ *http.Request, country string) bool { return fp.TimezoneCountryMismatch(country) }, + }, +} + +// severityByReason is derived once at init from the two detection tables +// above. It exists so callers that only need the severity for a reason key +// (metric labels, tests, SeverityFor) don't have to walk the tables. +var severityByReason = buildSeverityByReason() + +func buildSeverityByReason() map[string]string { + m := make(map[string]string, len(libDetections)+len(customDetections)) + for _, d := range libDetections { + m[d.Key] = d.Severity + } + for _, d := range customDetections { + m[d.Key] = d.Severity + } + return m +} + +// SeverityFor returns the severity tagged to a reason key, or "" for +// unknown reasons. +func SeverityFor(reason string) string { + return severityByReason[reason] +} + +// KnownReasons returns the full set of reason keys the aggregator may emit. +// Order is not guaranteed; callers that need deterministic ordering should +// walk libDetections / customDetections directly. +func KnownReasons() []string { + out := make([]string, 0, len(severityByReason)) + for k := range severityByReason { + out = append(out, k) + } + return out +} + +// mobileUARegex matches UAs that claim a PHONE form factor. Deliberately +// does not match bare "Android", because per Google's UA convention the +// `Mobile` / `Mobi` token is what phones add and tablets omit. Matching +// Android alone would FP on every Android tablet in landscape and on +// Samsung DeX / Android desktop mode (UA keeps "Android", viewport is +// ≥1000px). +var mobileUARegex = regexp.MustCompile(`(?i)Mobi|iPhone|iPod`) + +// mobileViewportThreshold is the innerWidth cutoff above which we treat a +// mobile-claiming UA as inconsistent. Real phones report CSS pixel widths +// well below this (typical phones: 360-430). Tablets run wider but don't +// match the UA regex above, so this threshold only applies to phone-UAs. +const mobileViewportThreshold = 1000 diff --git a/pkg/appsec/challenge/fingerprint_mismatch_test.go b/pkg/appsec/challenge/fingerprint_mismatch_test.go new file mode 100644 index 00000000000..b3f61450d09 --- /dev/null +++ b/pkg/appsec/challenge/fingerprint_mismatch_test.go @@ -0,0 +1,334 @@ +package challenge + +import ( + "encoding/json" + "net/http" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +// androidOnLinuxSample is the user-provided fingerprint with a spoofed +// Android/Firefox UA on a real Chromium-on-Linux environment. It's kept +// verbatim as a permanent regression fixture. +const androidOnLinuxSample = `{ + "signals": { + "automation": {"webdriver": false, "cdp": true}, + "device": { + "cpuCount": 16, + "memory": 8, + "platform": "Linux x86_64", + "screenResolution": { + "width": 1920, "height": 1080, + "innerWidth": 1920, "innerHeight": 993 + } + }, + "browser": { + "userAgent": "Mozilla/5.0 (Android 4.4; Mobile; rv:70.0) Gecko/70.0 Firefox/70.0", + "features": {"chrome": true}, + "highEntropyValues": {"platform": "", "mobile": false} + }, + "locale": { + "internationalization": {"timezone": "Europe/Paris"}, + "languages": {"language": "en-US", "languages": ["en-US"]} + } + }, + "fsid": "FS_SAMPLE", + "nonce": "n", + "time": 1776669341379, + "url": "https://example/", + "fastBotDetection": true, + "fastBotDetectionDetails": { + "hasCDP": {"detected": true, "severity": "high"}, + "hasInconsistentEtsl": {"detected": true, "severity": "high"}, + "hasPlatformMismatch": {"detected": true, "severity": "high"}, + "headlessChromeScreenResolution": {"detected": false, "severity": "high"}, + "hasWebdriver": {"detected": false, "severity": "high"}, + "hasWebdriverWritable": {"detected": false, "severity": "high"}, + "hasSeleniumProperty": {"detected": false, "severity": "high"}, + "hasPlaywright": {"detected": false, "severity": "high"}, + "hasImpossibleDeviceMemory":{"detected": false, "severity": "high"}, + "hasHighCPUCount": {"detected": false, "severity": "high"}, + "hasMissingChromeObject": {"detected": false, "severity": "high"}, + "hasWebdriverIframe": {"detected": false, "severity": "high"}, + "hasWebdriverWorker": {"detected": false, "severity": "high"}, + "hasMismatchWebGLInWorker": {"detected": false, "severity": "high"}, + "hasMismatchPlatformIframe":{"detected": false, "severity": "high"}, + "hasMismatchPlatformWorker":{"detected": false, "severity": "high"}, + "hasSwiftshaderRenderer": {"detected": false, "severity": "low"}, + "hasUTCTimezone": {"detected": false, "severity": "medium"}, + "hasMismatchLanguages": {"detected": false, "severity": "low"}, + "hasBotUserAgent": {"detected": false, "severity": "high"}, + "hasGPUMismatch": {"detected": false, "severity": "high"} + } +}` + +func mustUnmarshal(t *testing.T, raw string) *FingerprintData { + t.Helper() + fp := &FingerprintData{} + require.NoError(t, json.Unmarshal([]byte(raw), fp)) + return fp +} + +func TestUAMobileMismatch(t *testing.T) { + cases := []struct { + name string + ua string + innerWidth int + want bool + }{ + {"android phone UA desktop viewport", "Mozilla/5.0 (Android 4.4; Mobile; rv:70.0)", 1920, true}, + {"iphone UA huge viewport", "Mozilla/5.0 (iPhone; CPU iPhone OS 16_0)", 1440, true}, + {"real android phone small viewport", "Mozilla/5.0 (Linux; Android 14; Pixel 7) Mobile", 412, false}, + {"desktop UA desktop viewport", "Mozilla/5.0 (X11; Linux x86_64) Chrome/120", 1920, false}, + {"mobile UA missing innerWidth", "Mozilla/5.0 (Android 10; Mobile)", 0, false}, + {"empty UA", "", 1920, false}, + // Regression: a real Android tablet UA lacks the "Mobile" token by + // Google's convention. Its landscape viewport is wider than 1000px. + // Must NOT fire — previously a FP when the regex matched bare "Android". + {"android tablet landscape", "Mozilla/5.0 (Linux; Android 13; SM-X710) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36", 1280, false}, + // Regression: Samsung DeX / Android desktop mode keeps "Android" in + // the UA but the user is on a desktop-sized screen. Must NOT fire. + {"samsung dex desktop viewport", "Mozilla/5.0 (Linux; Android 13; SM-S908U) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Safari/537.36", 1920, false}, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + fp := &FingerprintData{} + fp.Signals.Browser.UserAgent = tc.ua + fp.Signals.Device.ScreenResolution.InnerWidth = FlexInt(tc.innerWidth) + assert.Equal(t, tc.want, fp.UAMobileMismatch()) + }) + } + + var nilFP *FingerprintData + assert.False(t, nilFP.UAMobileMismatch()) +} + +func TestAcceptLanguageMismatch(t *testing.T) { + cases := []struct { + name string + header string + fpLang string + want bool + }{ + {"match en simple", "en-US,fr;q=0.8", "en", false}, + {"match fr simple", "fr-FR,fr;q=0.9,en;q=0.5", "fr", false}, + {"mismatch de vs en", "de-DE,de;q=0.9", "en", true}, + {"mismatch zh vs en", "zh-CN", "en-US", true}, + {"missing header", "", "en", false}, + {"missing fp lang", "en-US", "", false}, + {"garbage header", "@@@", "en", false}, + {"garbage fp lang", "en-US", "@@@", false}, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + fp := &FingerprintData{} + fp.Signals.Locale.Languages.Language = tc.fpLang + + req, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + if tc.header != "" { + req.Header.Set("Accept-Language", tc.header) + } + + assert.Equal(t, tc.want, fp.AcceptLanguageMismatch(req)) + }) + } + + var nilFP *FingerprintData + assert.False(t, nilFP.AcceptLanguageMismatch(nil)) +} + +func TestTimezoneCountryMismatch(t *testing.T) { + cases := []struct { + name string + tz string + country string + want bool + }{ + {"paris in france", "Europe/Paris", "FR", false}, + {"paris for monaco too", "Europe/Paris", "MC", false}, + {"paris claimed from US", "Europe/Paris", "US", true}, + {"new york in us", "America/New_York", "US", false}, + {"new york claimed from fr", "America/New_York", "FR", true}, + {"alias calcutta", "Asia/Calcutta", "IN", false}, + {"alias kiev", "Europe/Kiev", "UA", false}, + {"unknown tz", "Made/Up", "FR", false}, + {"empty country", "Europe/Paris", "", false}, + {"empty tz", "", "FR", false}, + } + + for _, tc := range cases { + t.Run(tc.name, func(t *testing.T) { + fp := &FingerprintData{} + fp.Signals.Locale.Internationalization.Timezone = tc.tz + assert.Equal(t, tc.want, fp.TimezoneCountryMismatch(tc.country)) + }) + } + + var nilFP *FingerprintData + assert.False(t, nilFP.TimezoneCountryMismatch("FR")) +} + +func TestMismatchReport_Helpers(t *testing.T) { + r := &MismatchReport{Signals: []MismatchSignal{ + {Reason: ReasonCDP, Severity: SeverityHigh}, + {Reason: ReasonPlatformMismatch, Severity: SeverityHigh}, + {Reason: ReasonAcceptLanguage, Severity: SeverityMedium}, + {Reason: ReasonTimezoneCountry, Severity: SeverityLow}, + }} + + assert.Equal(t, 4, r.Count()) + assert.False(t, r.Empty()) + assert.Equal(t, 2, r.High()) + assert.Equal(t, 1, r.Medium()) + assert.Equal(t, 1, r.Low()) + assert.Equal(t, 2, r.BySeverity(SeverityHigh)) + assert.True(t, r.Has(ReasonCDP)) + assert.False(t, r.Has(ReasonBotUserAgent)) + assert.Equal(t, []string{ReasonCDP, ReasonPlatformMismatch, ReasonAcceptLanguage, ReasonTimezoneCountry}, r.Reasons()) + assert.Equal(t, + "cdp(high),platform_mismatch(high),accept_language(medium),timezone_country(low)", + r.String(), + ) +} + +func TestMismatchReport_NilReceiver(t *testing.T) { + var r *MismatchReport + assert.Equal(t, 0, r.Count()) + assert.True(t, r.Empty()) + assert.False(t, r.Has(ReasonCDP)) + assert.Nil(t, r.Reasons()) + assert.Equal(t, 0, r.High()) + assert.Equal(t, 0, r.Medium()) + assert.Equal(t, 0, r.Low()) + assert.Equal(t, "", r.String()) +} + +func TestComputeMismatchReport_AndroidOnLinuxSample(t *testing.T) { + fp := mustUnmarshal(t, androidOnLinuxSample) + + req, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + + // Request originates from France; timezone is also Europe/Paris, so + // timezone_country should NOT fire. The Android-UA + 1920 viewport + // should fire ua_mobile, and the library-native detections fire cdp, + // inconsistent_etsl, platform_mismatch. + report := fp.ComputeMismatchReport(req, "FR") + + assert.Equal(t, []string{ + ReasonCDP, + ReasonPlatformMismatch, + ReasonInconsistentEtsl, + ReasonUAMobile, + }, report.Reasons()) + assert.Equal(t, 3, report.High()) + assert.Equal(t, 1, report.Medium(), "ua_mobile is medium severity") + assert.Equal(t, 0, report.Low()) +} + +func TestComputeMismatchReport_BaselineConsistent(t *testing.T) { + // Minimal consistent fingerprint — no library detections, consistent + // UA/platform, en Accept-Language, FR timezone, from FR. + raw := `{ + "signals": { + "device": {"platform": "MacIntel"}, + "browser": { + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/120", + "highEntropyValues": {"platform": "macOS", "mobile": false} + }, + "locale": { + "internationalization": {"timezone": "Europe/Paris"}, + "languages": {"language": "en"} + } + }, + "fsid": "FS_OK", "nonce": "n", "time": 1, "url": "http://x/", + "fastBotDetection": false, + "fastBotDetectionDetails": {} + }` + fp := mustUnmarshal(t, raw) + + req, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + req.Header.Set("Accept-Language", "en-US,en;q=0.9") + + report := fp.ComputeMismatchReport(req, "FR") + assert.True(t, report.Empty()) +} + +func TestComputeMismatchReport_AcceptLanguageOnly(t *testing.T) { + raw := `{ + "signals": { + "device": {"platform": "MacIntel"}, + "browser": { + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X) Chrome/120", + "highEntropyValues": {"platform": "macOS"} + }, + "locale": { + "internationalization": {"timezone": "Europe/Paris"}, + "languages": {"language": "en"} + } + }, + "fsid": "X", "nonce": "n", "time": 1, "url": "http://x/", + "fastBotDetection": false, + "fastBotDetectionDetails": {} + }` + fp := mustUnmarshal(t, raw) + + req, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + req.Header.Set("Accept-Language", "zh-CN,zh;q=0.9") + + report := fp.ComputeMismatchReport(req, "FR") + assert.Equal(t, []string{ReasonAcceptLanguage}, report.Reasons()) + assert.Equal(t, 0, report.High()) + assert.Equal(t, 1, report.Medium()) + assert.Equal(t, 0, report.Low()) +} + +func TestComputeMismatchReport_TimezoneCountryOnly(t *testing.T) { + raw := `{ + "signals": { + "device": {"platform": "MacIntel"}, + "browser": { + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X) Chrome/120", + "highEntropyValues": {"platform": "macOS"} + }, + "locale": { + "internationalization": {"timezone": "Europe/Paris"}, + "languages": {"language": "en"} + } + }, + "fsid": "X", "nonce": "n", "time": 1, "url": "http://x/", + "fastBotDetection": false, + "fastBotDetectionDetails": {} + }` + fp := mustUnmarshal(t, raw) + + req, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + req.Header.Set("Accept-Language", "en-US") + + // Europe/Paris but client IP geolocated in the US. + report := fp.ComputeMismatchReport(req, "US") + assert.Equal(t, []string{ReasonTimezoneCountry}, report.Reasons()) + assert.Equal(t, 0, report.High()) + assert.Equal(t, 0, report.Medium()) + assert.Equal(t, 1, report.Low()) +} + +func TestComputeMismatchReport_NilFingerprint(t *testing.T) { + report := ((*FingerprintData)(nil)).ComputeMismatchReport(nil, "") + assert.True(t, report.Empty()) +} + +func TestSeverityFor(t *testing.T) { + assert.Equal(t, SeverityHigh, SeverityFor(ReasonCDP)) + assert.Equal(t, SeverityMedium, SeverityFor(ReasonAcceptLanguage)) + assert.Equal(t, SeverityLow, SeverityFor(ReasonTimezoneCountry)) + assert.Equal(t, "", SeverityFor("not_a_reason")) +} diff --git a/pkg/appsec/challenge/fingerprint_proto.go b/pkg/appsec/challenge/fingerprint_proto.go new file mode 100644 index 00000000000..101bcd58b9d --- /dev/null +++ b/pkg/appsec/challenge/fingerprint_proto.go @@ -0,0 +1,475 @@ +package challenge + +import ( + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge/pb" +) + +func fingerprintDataFromProto(p *pb.FingerprintData) FingerprintData { + f := FingerprintData{ + FSID: p.GetFsid(), + Nonce: p.GetNonce(), + Time: p.GetTime(), + URL: p.GetUrl(), + FastBotDetection: FlexBool(p.GetFastBotDetection()), + } + + if s := p.GetSignals(); s != nil { + if a := s.GetAutomation(); a != nil { + f.Signals.Automation = fingerprintAutomation{ + Webdriver: FlexBool(a.GetWebdriver()), + WebdriverWritable: FlexBool(a.GetWebdriverWritable()), + Selenium: FlexBool(a.GetSelenium()), + CDP: FlexBool(a.GetCdp()), + Playwright: FlexBool(a.GetPlaywright()), + NavigatorPropertyDescriptors: a.GetNavigatorPropertyDescriptors(), + } + } + + if d := s.GetDevice(); d != nil { + f.Signals.Device = fingerprintDevice{ + CPUCount: FlexInt(d.GetCpuCount()), + Memory: FlexInt(d.GetMemory()), + Platform: d.GetPlatform(), + } + if sr := d.GetScreenResolution(); sr != nil { + f.Signals.Device.ScreenResolution = fingerprintScreenResolution{ + Width: FlexInt(sr.GetWidth()), + Height: FlexInt(sr.GetHeight()), + PixelDepth: FlexInt(sr.GetPixelDepth()), + ColorDepth: FlexInt(sr.GetColorDepth()), + AvailableWidth: FlexInt(sr.GetAvailableWidth()), + AvailableHeight: FlexInt(sr.GetAvailableHeight()), + InnerWidth: FlexInt(sr.GetInnerWidth()), + InnerHeight: FlexInt(sr.GetInnerHeight()), + HasMultipleDisplays: FlexBool(sr.GetHasMultipleDisplays()), + } + } + if mm := d.GetMultimediaDevices(); mm != nil { + f.Signals.Device.MultimediaDevices = fingerprintMultimediaDevices{ + Speakers: FlexInt(mm.GetSpeakers()), + Microphones: FlexInt(mm.GetMicrophones()), + Webcams: FlexInt(mm.GetWebcams()), + } + } + if mq := d.GetMediaQueries(); mq != nil { + f.Signals.Device.MediaQueries = fingerprintDeviceMediaQueries{ + PrefersColorScheme: mq.GetPrefersColorScheme(), + PrefersReducedMotion: FlexBool(mq.GetPrefersReducedMotion()), + PrefersReducedTransparency: FlexBool(mq.GetPrefersReducedTransparency()), + ColorGamut: mq.GetColorGamut(), + Pointer: mq.GetPointer(), + AnyPointer: mq.GetAnyPointer(), + Hover: FlexBool(mq.GetHover()), + AnyHover: FlexBool(mq.GetAnyHover()), + ColorDepth: FlexInt(mq.GetColorDepth()), + } + } + } + + if b := s.GetBrowser(); b != nil { + f.Signals.Browser = fingerprintBrowser{ + UserAgent: b.GetUserAgent(), + ETSL: FlexInt(b.GetEtsl()), + Maths: b.GetMaths(), + } + if ft := b.GetFeatures(); ft != nil { + f.Signals.Browser.Features = fingerprintBrowserFeatures{ + Bitmask: ft.GetBitmask(), + Chrome: FlexBool(ft.GetChrome()), + Brave: FlexBool(ft.GetBrave()), + ApplePaySupport: FlexBool(ft.GetApplePaySupport()), + Opera: FlexBool(ft.GetOpera()), + Serial: FlexBool(ft.GetSerial()), + AttachShadow: FlexBool(ft.GetAttachShadow()), + Caches: FlexBool(ft.GetCaches()), + WebAssembly: FlexBool(ft.GetWebAssembly()), + Buffer: FlexBool(ft.GetBuffer()), + ShowModalDialog: FlexBool(ft.GetShowModalDialog()), + Safari: FlexBool(ft.GetSafari()), + WebkitPrefixedFunction: FlexBool(ft.GetWebkitPrefixedFunction()), + MozPrefixedFunction: FlexBool(ft.GetMozPrefixedFunction()), + USB: FlexBool(ft.GetUsb()), + BrowserCapture: FlexBool(ft.GetBrowserCapture()), + PaymentRequestUpdateEvent: FlexBool(ft.GetPaymentRequestUpdateEvent()), + PressureObserver: FlexBool(ft.GetPressureObserver()), + AudioSession: FlexBool(ft.GetAudioSession()), + SelectAudioOutput: FlexBool(ft.GetSelectAudioOutput()), + BarcodeDetector: FlexBool(ft.GetBarcodeDetector()), + Battery: FlexBool(ft.GetBattery()), + DevicePosture: FlexBool(ft.GetDevicePosture()), + DocumentPictureInPicture: FlexBool(ft.GetDocumentPictureInPicture()), + EyeDropper: FlexBool(ft.GetEyeDropper()), + EditContext: FlexBool(ft.GetEditContext()), + FencedFrame: FlexBool(ft.GetFencedFrame()), + Sanitizer: FlexBool(ft.GetSanitizer()), + OTPCredential: FlexBool(ft.GetOtpCredential()), + } + } + if pl := b.GetPlugins(); pl != nil { + f.Signals.Browser.Plugins = fingerprintBrowserPlugins{ + IsValidPluginArray: FlexBool(pl.GetIsValidPluginArray()), + PluginCount: FlexInt(pl.GetPluginCount()), + PluginNamesHash: pl.GetPluginNamesHash(), + PluginConsistency1: FlexBool(pl.GetPluginConsistency1()), + PluginOverflow: FlexBool(pl.GetPluginOverflow()), + } + } + if ext := b.GetExtensions(); ext != nil { + f.Signals.Browser.Extensions = fingerprintBrowserExtensions{ + Bitmask: ext.GetBitmask(), + Extensions: ext.GetExtensions(), + } + } + if hev := b.GetHighEntropyValues(); hev != nil { + f.Signals.Browser.HighEntropyValues = fingerprintBrowserHighEntropyValues{ + Architecture: hev.GetArchitecture(), + Bitness: hev.GetBitness(), + Mobile: FlexBool(hev.GetMobile()), + Model: hev.GetModel(), + Platform: hev.GetPlatform(), + PlatformVersion: hev.GetPlatformVersion(), + UAFullVersion: hev.GetUaFullVersion(), + } + for _, bv := range hev.GetBrands() { + f.Signals.Browser.HighEntropyValues.Brands = append(f.Signals.Browser.HighEntropyValues.Brands, fingerprintBrandVersion{ + Brand: bv.GetBrand(), + Version: bv.GetVersion(), + }) + } + } + if tse := b.GetToSourceError(); tse != nil { + f.Signals.Browser.ToSourceError = fingerprintBrowserToSourceError{ + ToSourceError: tse.GetToSourceError(), + HasToSource: FlexBool(tse.GetHasToSource()), + } + } + } + + if g := s.GetGraphics(); g != nil { + if gl := g.GetWebGL(); gl != nil { + f.Signals.Graphics.WebGL = fingerprintGraphicsWebGL{ + Vendor: gl.GetVendor(), + Renderer: gl.GetRenderer(), + } + } + if gpu := g.GetWebgpu(); gpu != nil { + f.Signals.Graphics.WebGPU = fingerprintGraphicsWebGPU{ + Vendor: gpu.GetVendor(), + Architecture: gpu.GetArchitecture(), + Device: gpu.GetDevice(), + Description: gpu.GetDescription(), + } + } + if cv := g.GetCanvas(); cv != nil { + f.Signals.Graphics.Canvas = fingerprintGraphicsCanvas{ + HasModifiedCanvas: FlexBool(cv.GetHasModifiedCanvas()), + CanvasFingerprint: cv.GetCanvasFingerprint(), + } + } + } + + if c := s.GetCodecs(); c != nil { + f.Signals.Codecs = fingerprintCodecs{ + AudioCanPlayTypeHash: c.GetAudioCanPlayTypeHash(), + VideoCanPlayTypeHash: c.GetVideoCanPlayTypeHash(), + AudioMediaSourceHash: c.GetAudioMediaSourceHash(), + VideoMediaSourceHash: c.GetVideoMediaSourceHash(), + RTCAudioCapabilitiesHash: c.GetRtcAudioCapabilitiesHash(), + RTCVideoCapabilitiesHash: c.GetRtcVideoCapabilitiesHash(), + HasMediaSource: FlexBool(c.GetHasMediaSource()), + } + } + + if l := s.GetLocale(); l != nil { + if i18n := l.GetInternationalization(); i18n != nil { + f.Signals.Locale.Internationalization = fingerprintLocaleInternationalization{ + Timezone: i18n.GetTimezone(), + LocaleLanguage: i18n.GetLocaleLanguage(), + } + } + if lang := l.GetLanguages(); lang != nil { + f.Signals.Locale.Languages = fingerprintLocaleLanguages{ + Languages: lang.GetLanguages(), + Language: lang.GetLanguage(), + } + } + } + + if ctx := s.GetContexts(); ctx != nil { + if iframe := ctx.GetIframe(); iframe != nil { + f.Signals.Contexts.Iframe = fingerprintIframeContext{ + Webdriver: FlexBool(iframe.GetWebdriver()), + UserAgent: iframe.GetUserAgent(), + Platform: iframe.GetPlatform(), + Memory: FlexInt(iframe.GetMemory()), + CPUCount: FlexInt(iframe.GetCpuCount()), + Language: iframe.GetLanguage(), + } + } + if ww := ctx.GetWebWorker(); ww != nil { + f.Signals.Contexts.WebWorker = fingerprintWebWorkerContext{ + Vendor: ww.GetVendor(), + Renderer: ww.GetRenderer(), + UserAgent: ww.GetUserAgent(), + Language: ww.GetLanguage(), + Platform: ww.GetPlatform(), + Memory: FlexInt(ww.GetMemory()), + CPUCount: FlexInt(ww.GetCpuCount()), + } + } + } + } + + if det := p.GetFastBotDetectionDetails(); det != nil { + f.FastBotDetectionDetails = fingerprintFastBotDetectionDetails{ + HeadlessChromeScreenResolution: fingerprintDetectionResult{Detected: FlexBool(det.GetHeadlessChromeScreenResolution().GetDetected())}, + HasWebdriver: fingerprintDetectionResult{Detected: FlexBool(det.GetHasWebdriver().GetDetected())}, + HasWebdriverWritable: fingerprintDetectionResult{Detected: FlexBool(det.GetHasWebdriverWritable().GetDetected())}, + HasSeleniumProperty: fingerprintDetectionResult{Detected: FlexBool(det.GetHasSeleniumProperty().GetDetected())}, + HasCDP: fingerprintDetectionResult{Detected: FlexBool(det.GetHasCDP().GetDetected())}, + HasPlaywright: fingerprintDetectionResult{Detected: FlexBool(det.GetHasPlaywright().GetDetected())}, + HasImpossibleDeviceMemory: fingerprintDetectionResult{Detected: FlexBool(det.GetHasImpossibleDeviceMemory().GetDetected())}, + HasHighCPUCount: fingerprintDetectionResult{Detected: FlexBool(det.GetHasHighCPUCount().GetDetected())}, + HasMissingChromeObject: fingerprintDetectionResult{Detected: FlexBool(det.GetHasMissingChromeObject().GetDetected())}, + HasWebdriverIframe: fingerprintDetectionResult{Detected: FlexBool(det.GetHasWebdriverIframe().GetDetected())}, + HasWebdriverWorker: fingerprintDetectionResult{Detected: FlexBool(det.GetHasWebdriverWorker().GetDetected())}, + HasMismatchWebGLInWorker: fingerprintDetectionResult{Detected: FlexBool(det.GetHasMismatchWebGLInWorker().GetDetected())}, + HasMismatchPlatformIframe: fingerprintDetectionResult{Detected: FlexBool(det.GetHasMismatchPlatformIframe().GetDetected())}, + HasMismatchPlatformWorker: fingerprintDetectionResult{Detected: FlexBool(det.GetHasMismatchPlatformWorker().GetDetected())}, + HasSwiftshaderRenderer: fingerprintDetectionResult{Detected: FlexBool(det.GetHasSwiftshaderRenderer().GetDetected())}, + HasUTCTimezone: fingerprintDetectionResult{Detected: FlexBool(det.GetHasUTCTimezone().GetDetected())}, + HasMismatchLanguages: fingerprintDetectionResult{Detected: FlexBool(det.GetHasMismatchLanguages().GetDetected())}, + HasInconsistentEtsl: fingerprintDetectionResult{Detected: FlexBool(det.GetHasInconsistentEtsl().GetDetected())}, + HasBotUserAgent: fingerprintDetectionResult{Detected: FlexBool(det.GetHasBotUserAgent().GetDetected())}, + HasGPUMismatch: fingerprintDetectionResult{Detected: FlexBool(det.GetHasGPUMismatch().GetDetected())}, + HasPlatformMismatch: fingerprintDetectionResult{Detected: FlexBool(det.GetHasPlatformMismatch().GetDetected())}, + } + } + + f.Bot = newFingerprintBotAlias(f.FastBotDetectionDetails) + + return f +} + +func (f *FingerprintData) ToProto() *pb.FingerprintData { + brands := make([]*pb.FingerprintBrandVersion, len(f.Signals.Browser.HighEntropyValues.Brands)) + for i, b := range f.Signals.Browser.HighEntropyValues.Brands { + brands[i] = &pb.FingerprintBrandVersion{ + Brand: b.Brand, + Version: b.Version, + } + } + + return &pb.FingerprintData{ + Signals: &pb.FingerprintSignals{ + Automation: &pb.FingerprintAutomation{ + Webdriver: bool(f.Signals.Automation.Webdriver), + WebdriverWritable: bool(f.Signals.Automation.WebdriverWritable), + Selenium: bool(f.Signals.Automation.Selenium), + Cdp: bool(f.Signals.Automation.CDP), + Playwright: bool(f.Signals.Automation.Playwright), + NavigatorPropertyDescriptors: f.Signals.Automation.NavigatorPropertyDescriptors, + }, + Device: &pb.FingerprintDevice{ + CpuCount: int32(f.Signals.Device.CPUCount), + Memory: int32(f.Signals.Device.Memory), + Platform: f.Signals.Device.Platform, + ScreenResolution: &pb.FingerprintScreenResolution{ + Width: int32(f.Signals.Device.ScreenResolution.Width), + Height: int32(f.Signals.Device.ScreenResolution.Height), + PixelDepth: int32(f.Signals.Device.ScreenResolution.PixelDepth), + ColorDepth: int32(f.Signals.Device.ScreenResolution.ColorDepth), + AvailableWidth: int32(f.Signals.Device.ScreenResolution.AvailableWidth), + AvailableHeight: int32(f.Signals.Device.ScreenResolution.AvailableHeight), + InnerWidth: int32(f.Signals.Device.ScreenResolution.InnerWidth), + InnerHeight: int32(f.Signals.Device.ScreenResolution.InnerHeight), + HasMultipleDisplays: bool(f.Signals.Device.ScreenResolution.HasMultipleDisplays), + }, + MultimediaDevices: &pb.FingerprintMultimediaDevices{ + Speakers: int32(f.Signals.Device.MultimediaDevices.Speakers), + Microphones: int32(f.Signals.Device.MultimediaDevices.Microphones), + Webcams: int32(f.Signals.Device.MultimediaDevices.Webcams), + }, + MediaQueries: &pb.FingerprintDeviceMediaQueries{ + PrefersColorScheme: f.Signals.Device.MediaQueries.PrefersColorScheme, + PrefersReducedMotion: bool(f.Signals.Device.MediaQueries.PrefersReducedMotion), + PrefersReducedTransparency: bool(f.Signals.Device.MediaQueries.PrefersReducedTransparency), + ColorGamut: f.Signals.Device.MediaQueries.ColorGamut, + Pointer: f.Signals.Device.MediaQueries.Pointer, + AnyPointer: f.Signals.Device.MediaQueries.AnyPointer, + Hover: bool(f.Signals.Device.MediaQueries.Hover), + AnyHover: bool(f.Signals.Device.MediaQueries.AnyHover), + ColorDepth: int32(f.Signals.Device.MediaQueries.ColorDepth), + }, + }, + Browser: &pb.FingerprintBrowser{ + UserAgent: f.Signals.Browser.UserAgent, + Features: &pb.FingerprintBrowserFeatures{ + Bitmask: f.Signals.Browser.Features.Bitmask, + Chrome: bool(f.Signals.Browser.Features.Chrome), + Brave: bool(f.Signals.Browser.Features.Brave), + ApplePaySupport: bool(f.Signals.Browser.Features.ApplePaySupport), + Opera: bool(f.Signals.Browser.Features.Opera), + Serial: bool(f.Signals.Browser.Features.Serial), + AttachShadow: bool(f.Signals.Browser.Features.AttachShadow), + Caches: bool(f.Signals.Browser.Features.Caches), + WebAssembly: bool(f.Signals.Browser.Features.WebAssembly), + Buffer: bool(f.Signals.Browser.Features.Buffer), + ShowModalDialog: bool(f.Signals.Browser.Features.ShowModalDialog), + Safari: bool(f.Signals.Browser.Features.Safari), + WebkitPrefixedFunction: bool(f.Signals.Browser.Features.WebkitPrefixedFunction), + MozPrefixedFunction: bool(f.Signals.Browser.Features.MozPrefixedFunction), + Usb: bool(f.Signals.Browser.Features.USB), + BrowserCapture: bool(f.Signals.Browser.Features.BrowserCapture), + PaymentRequestUpdateEvent: bool(f.Signals.Browser.Features.PaymentRequestUpdateEvent), + PressureObserver: bool(f.Signals.Browser.Features.PressureObserver), + AudioSession: bool(f.Signals.Browser.Features.AudioSession), + SelectAudioOutput: bool(f.Signals.Browser.Features.SelectAudioOutput), + BarcodeDetector: bool(f.Signals.Browser.Features.BarcodeDetector), + Battery: bool(f.Signals.Browser.Features.Battery), + DevicePosture: bool(f.Signals.Browser.Features.DevicePosture), + DocumentPictureInPicture: bool(f.Signals.Browser.Features.DocumentPictureInPicture), + EyeDropper: bool(f.Signals.Browser.Features.EyeDropper), + EditContext: bool(f.Signals.Browser.Features.EditContext), + FencedFrame: bool(f.Signals.Browser.Features.FencedFrame), + Sanitizer: bool(f.Signals.Browser.Features.Sanitizer), + OtpCredential: bool(f.Signals.Browser.Features.OTPCredential), + }, + Plugins: &pb.FingerprintBrowserPlugins{ + IsValidPluginArray: bool(f.Signals.Browser.Plugins.IsValidPluginArray), + PluginCount: int32(f.Signals.Browser.Plugins.PluginCount), + PluginNamesHash: f.Signals.Browser.Plugins.PluginNamesHash, + PluginConsistency1: bool(f.Signals.Browser.Plugins.PluginConsistency1), + PluginOverflow: bool(f.Signals.Browser.Plugins.PluginOverflow), + }, + Extensions: &pb.FingerprintBrowserExtensions{ + Bitmask: f.Signals.Browser.Extensions.Bitmask, + Extensions: f.Signals.Browser.Extensions.Extensions, + }, + HighEntropyValues: &pb.FingerprintBrowserHighEntropyValues{ + Architecture: f.Signals.Browser.HighEntropyValues.Architecture, + Bitness: f.Signals.Browser.HighEntropyValues.Bitness, + Brands: brands, + Mobile: bool(f.Signals.Browser.HighEntropyValues.Mobile), + Model: f.Signals.Browser.HighEntropyValues.Model, + Platform: f.Signals.Browser.HighEntropyValues.Platform, + PlatformVersion: f.Signals.Browser.HighEntropyValues.PlatformVersion, + UaFullVersion: f.Signals.Browser.HighEntropyValues.UAFullVersion, + }, + Etsl: int32(f.Signals.Browser.ETSL), + Maths: f.Signals.Browser.Maths, + ToSourceError: &pb.FingerprintBrowserToSourceError{ + ToSourceError: f.Signals.Browser.ToSourceError.ToSourceError, + HasToSource: bool(f.Signals.Browser.ToSourceError.HasToSource), + }, + }, + Graphics: &pb.FingerprintGraphics{ + WebGL: &pb.FingerprintGraphicsWebGL{ + Vendor: f.Signals.Graphics.WebGL.Vendor, + Renderer: f.Signals.Graphics.WebGL.Renderer, + }, + Webgpu: &pb.FingerprintGraphicsWebGPU{ + Vendor: f.Signals.Graphics.WebGPU.Vendor, + Architecture: f.Signals.Graphics.WebGPU.Architecture, + Device: f.Signals.Graphics.WebGPU.Device, + Description: f.Signals.Graphics.WebGPU.Description, + }, + Canvas: &pb.FingerprintGraphicsCanvas{ + HasModifiedCanvas: bool(f.Signals.Graphics.Canvas.HasModifiedCanvas), + CanvasFingerprint: f.Signals.Graphics.Canvas.CanvasFingerprint, + }, + }, + Codecs: &pb.FingerprintCodecs{ + AudioCanPlayTypeHash: f.Signals.Codecs.AudioCanPlayTypeHash, + VideoCanPlayTypeHash: f.Signals.Codecs.VideoCanPlayTypeHash, + AudioMediaSourceHash: f.Signals.Codecs.AudioMediaSourceHash, + VideoMediaSourceHash: f.Signals.Codecs.VideoMediaSourceHash, + RtcAudioCapabilitiesHash: f.Signals.Codecs.RTCAudioCapabilitiesHash, + RtcVideoCapabilitiesHash: f.Signals.Codecs.RTCVideoCapabilitiesHash, + HasMediaSource: bool(f.Signals.Codecs.HasMediaSource), + }, + Locale: &pb.FingerprintLocale{ + Internationalization: &pb.FingerprintLocaleInternationalization{ + Timezone: f.Signals.Locale.Internationalization.Timezone, + LocaleLanguage: f.Signals.Locale.Internationalization.LocaleLanguage, + }, + Languages: &pb.FingerprintLocaleLanguages{ + Languages: f.Signals.Locale.Languages.Languages, + Language: f.Signals.Locale.Languages.Language, + }, + }, + Contexts: &pb.FingerprintContexts{ + Iframe: &pb.FingerprintIframeContext{ + Webdriver: bool(f.Signals.Contexts.Iframe.Webdriver), + UserAgent: f.Signals.Contexts.Iframe.UserAgent, + Platform: f.Signals.Contexts.Iframe.Platform, + Memory: int32(f.Signals.Contexts.Iframe.Memory), + CpuCount: int32(f.Signals.Contexts.Iframe.CPUCount), + Language: f.Signals.Contexts.Iframe.Language, + }, + WebWorker: &pb.FingerprintWebWorkerContext{ + Vendor: f.Signals.Contexts.WebWorker.Vendor, + Renderer: f.Signals.Contexts.WebWorker.Renderer, + UserAgent: f.Signals.Contexts.WebWorker.UserAgent, + Language: f.Signals.Contexts.WebWorker.Language, + Platform: f.Signals.Contexts.WebWorker.Platform, + Memory: int32(f.Signals.Contexts.WebWorker.Memory), + CpuCount: int32(f.Signals.Contexts.WebWorker.CPUCount), + }, + }, + }, + Fsid: f.FSID, + Nonce: f.Nonce, + Time: f.Time, + Url: f.URL, + FastBotDetection: bool(f.FastBotDetection), + FastBotDetectionDetails: &pb.FingerprintFastBotDetectionDetails{ + HeadlessChromeScreenResolution: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HeadlessChromeScreenResolution.Detected)}, + HasWebdriver: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasWebdriver.Detected)}, + HasWebdriverWritable: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasWebdriverWritable.Detected)}, + HasSeleniumProperty: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasSeleniumProperty.Detected)}, + HasCDP: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasCDP.Detected)}, + HasPlaywright: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasPlaywright.Detected)}, + HasImpossibleDeviceMemory: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasImpossibleDeviceMemory.Detected)}, + HasHighCPUCount: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasHighCPUCount.Detected)}, + HasMissingChromeObject: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasMissingChromeObject.Detected)}, + HasWebdriverIframe: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasWebdriverIframe.Detected)}, + HasWebdriverWorker: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasWebdriverWorker.Detected)}, + HasMismatchWebGLInWorker: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasMismatchWebGLInWorker.Detected)}, + HasMismatchPlatformIframe: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasMismatchPlatformIframe.Detected)}, + HasMismatchPlatformWorker: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasMismatchPlatformWorker.Detected)}, + HasSwiftshaderRenderer: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasSwiftshaderRenderer.Detected)}, + HasUTCTimezone: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasUTCTimezone.Detected)}, + HasMismatchLanguages: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasMismatchLanguages.Detected)}, + HasInconsistentEtsl: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasInconsistentEtsl.Detected)}, + HasBotUserAgent: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasBotUserAgent.Detected)}, + HasGPUMismatch: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasGPUMismatch.Detected)}, + HasPlatformMismatch: &pb.FingerprintDetectionResult{Detected: bool(f.FastBotDetectionDetails.HasPlatformMismatch.Detected)}, + }, + Bot: &pb.FingerprintBotAlias{ + HeadlessChromeScreenResolution: f.Bot.HeadlessChromeScreenResolution, + Webdriver: f.Bot.Webdriver, + WebdriverWritable: f.Bot.WebdriverWritable, + Selenium: f.Bot.Selenium, + Cdp: f.Bot.CDP, + Playwright: f.Bot.Playwright, + ImpossibleDeviceMemory: f.Bot.ImpossibleDeviceMemory, + HighCPUCount: f.Bot.HighCPUCount, + MissingChromeObject: f.Bot.MissingChromeObject, + WebdriverIframe: f.Bot.WebdriverIframe, + WebdriverWorker: f.Bot.WebdriverWorker, + MismatchWebGLInWorker: f.Bot.MismatchWebGLInWorker, + MismatchPlatformIframe: f.Bot.MismatchPlatformIframe, + MismatchPlatformWorker: f.Bot.MismatchPlatformWorker, + SwiftshaderRenderer: f.Bot.SwiftshaderRenderer, + UtcTimezone: f.Bot.UTCTimezone, + MismatchLanguages: f.Bot.MismatchLanguages, + InconsistentEtsl: f.Bot.InconsistentEtsl, + BotUserAgent: f.Bot.BotUserAgent, + GpuMismatch: f.Bot.GPUMismatch, + PlatformMismatch: f.Bot.PlatformMismatch, + AnyDetected: f.Bot.AnyDetected, + DetectedCount: int32(f.Bot.DetectedCount), + }, + } +} diff --git a/pkg/appsec/challenge/js/cmd/bundle/main.go b/pkg/appsec/challenge/js/cmd/bundle/main.go new file mode 100644 index 00000000000..0b4b3f60d61 --- /dev/null +++ b/pkg/appsec/challenge/js/cmd/bundle/main.go @@ -0,0 +1,46 @@ +package main + +import ( + "fmt" + "os" + + esbuildapi "github.com/evanw/esbuild/pkg/api" +) + +const ( + entryPoint = "../challenge.js" + outFile = "fpscanner/bundle.js" +) + +func main() { + result := esbuildapi.Build(esbuildapi.BuildOptions{ + EntryPoints: []string{entryPoint}, + Bundle: true, + Write: false, + Format: esbuildapi.FormatESModule, + Platform: esbuildapi.PlatformBrowser, + Target: esbuildapi.ES2022, + MinifyWhitespace: true, + MinifyIdentifiers: true, + MinifySyntax: true, + Sourcemap: esbuildapi.SourceMapNone, + }) + + if len(result.Errors) > 0 { + fmt.Fprintf(os.Stderr, "esbuild failed with %d error(s)\n", len(result.Errors)) + for _, msg := range result.Errors { + fmt.Fprintln(os.Stderr, msg.Text) + } + os.Exit(1) + } + + if len(result.OutputFiles) == 0 { + fmt.Fprintln(os.Stderr, "esbuild returned no output files") + os.Exit(1) + } + + if err := os.WriteFile(outFile, result.OutputFiles[0].Contents, 0o644); err != nil { + fmt.Fprintf(os.Stderr, "failed to write %s: %v\n", outFile, err) + os.Exit(1) + } +} diff --git a/pkg/appsec/challenge/js/cmd/obfuscate/main.go b/pkg/appsec/challenge/js/cmd/obfuscate/main.go new file mode 100644 index 00000000000..2077aaf3ec1 --- /dev/null +++ b/pkg/appsec/challenge/js/cmd/obfuscate/main.go @@ -0,0 +1,107 @@ +package main + +import ( + "compress/gzip" + "fmt" + "os" + "os/exec" + "time" + + esbuildapi "github.com/evanw/esbuild/pkg/api" +) + +const ( + entryPoint = "obfuscate/obfuscate.js" + bundleFile = "obfuscate/bundle.js" + wasmFile = "obfuscate/index.wasm" + wasmGzFile = "obfuscate/index.wasm.gz" +) + +func main() { + if err := buildObfuscatorBundle(); err != nil { + fmt.Fprintf(os.Stderr, "failed to build obfuscator bundle: %v\n", err) + os.Exit(1) + } + + if err := buildWASM(); err != nil { + fmt.Fprintf(os.Stderr, "failed to build obfuscator wasm: %v\n", err) + os.Exit(1) + } + + if err := gzipWASM(); err != nil { + fmt.Fprintf(os.Stderr, "failed to compress obfuscator wasm: %v\n", err) + os.Exit(1) + } +} + +func buildObfuscatorBundle() error { + result := esbuildapi.Build(esbuildapi.BuildOptions{ + EntryPoints: []string{entryPoint}, + Bundle: true, + Write: false, + Format: esbuildapi.FormatIIFE, + Platform: esbuildapi.PlatformBrowser, + Target: esbuildapi.ES2022, + Sourcemap: esbuildapi.SourceMapNone, + Banner: map[string]string{"js": "var self=globalThis; var window=globalThis; var global=globalThis;"}, // JS obfuscator expects to have this available, but in WASM we don't have a window or global object, so we alias them to globalThis + }) + + if len(result.Errors) > 0 { + return fmt.Errorf("esbuild failed with %d error(s): %s", len(result.Errors), result.Errors[0].Text) + } + if len(result.OutputFiles) == 0 { + return fmt.Errorf("esbuild returned no output files") + } + + return os.WriteFile(bundleFile, result.OutputFiles[0].Contents, 0o644) +} + +func buildWASM() error { + if _, err := exec.LookPath("javy"); err != nil { + return fmt.Errorf("javy was not found in PATH") + } + + cmd := exec.Command("javy", "build", "-o", wasmFile, bundleFile) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + + if err := cmd.Run(); err != nil { + return fmt.Errorf("javy build failed: %w", err) + } + + return nil +} + +func gzipWASM() error { + wasmData, err := os.ReadFile(wasmFile) + if err != nil { + return fmt.Errorf("failed to read %s: %w", wasmFile, err) + } + + f, err := os.Create(wasmGzFile) + if err != nil { + return fmt.Errorf("failed to create %s: %w", wasmGzFile, err) + } + defer f.Close() + + zw, err := gzip.NewWriterLevel(f, gzip.BestCompression) + if err != nil { + return fmt.Errorf("failed to create gzip writer: %w", err) + } + zw.Name = "index.wasm" + zw.ModTime = time.Unix(0, 0) + + if _, err := zw.Write(wasmData); err != nil { + zw.Close() + return fmt.Errorf("failed to write gzip data: %w", err) + } + + if err := zw.Close(); err != nil { + return fmt.Errorf("failed to close gzip writer: %w", err) + } + + os.Remove(wasmFile) + os.Remove(bundleFile) + + return nil +} diff --git a/pkg/appsec/challenge/js/fpscanner/bundle.js b/pkg/appsec/challenge/js/fpscanner/bundle.js new file mode 100644 index 00000000000..a2ee21b7f03 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/bundle.js @@ -0,0 +1,32 @@ +function q(){return navigator.webdriver}function J(){return navigator.userAgent}function Y(){return navigator.platform}var c="ERROR",n="INIT";var S="SKIPPED",y="high";var Z="medium";function h(t){let e=0;for(let r=0,i=t.length;r=0?(t.vendor=r.getParameter(r.getExtension("WEBGL_debug_renderer_info").UNMASKED_VENDOR_WEBGL),t.renderer=r.getParameter(r.getExtension("WEBGL_debug_renderer_info").UNMASKED_RENDERER_WEBGL)):m(t,"NA")}catch{m(t,c)}return t}function re(){return"__pwInitScripts"in window||"__playwright__binding__"in window}function ne(){return navigator.hardwareConcurrency||"NA"}function ie(){let t=[],e=.123456789;return["E","LN10","LN2","LOG10E","LOG2E","PI","SQRT1_2","SQRT2"].forEach(function(o){try{t.push(Math[o])}catch{t.push(-1)}}),["tan","sin","exp","atan","acosh","asinh","atanh","expm1","log1p","sinh"].forEach(function(o){try{t.push(Math[o](e))}catch{t.push(-1)}}),h(t.map(String).join(","))}function oe(){return navigator.deviceMemory||"NA"}function ae(){return eval.toString().length}function se(){let t={timezone:n,localeLanguage:n};try{if(typeof Intl<"u"&&typeof Intl.DateTimeFormat<"u"){let e=Intl.DateTimeFormat().resolvedOptions();t.timezone=e.timeZone,t.localeLanguage=e.locale}else t.timezone="NA",t.localeLanguage="NA"}catch{t.timezone=c,t.localeLanguage=c}return t}function ce(){return{width:window.screen.width,height:window.screen.height,pixelDepth:window.screen.pixelDepth,colorDepth:window.screen.colorDepth,availableWidth:window.screen.availWidth,availableHeight:window.screen.availHeight,innerWidth:window.innerWidth,innerHeight:window.innerHeight,hasMultipleDisplays:typeof screen.isExtended<"u"?screen.isExtended:"NA"}}function le(){return{languages:navigator.languages,language:navigator.language}}async function ue(){let t={vendor:n,architecture:n,device:n,description:n};if("gpu"in navigator)try{let e=await navigator.gpu.requestAdapter();e&&(t.vendor=e.info.vendor,t.architecture=e.info.architecture,t.device=e.info.device,t.description=e.info.description)}catch{m(t,c)}else m(t,"NA");return t}function de(){let t=["__driver_evaluate","__webdriver_evaluate","__selenium_evaluate","__fxdriver_evaluate","__driver_unwrapped","__webdriver_unwrapped","__selenium_unwrapped","__fxdriver_unwrapped","_Selenium_IDE_Recorder","_selenium","calledSelenium","$cdc_asdjflasutopfhvcZLmcfl_","$chrome_asyncScriptInfo","__$webdriverAsyncExecutor","webdriver","__webdriverFunc","domAutomation","domAutomationController","__lastWatirAlert","__lastWatirConfirm","__lastWatirPrompt","__webdriver_script_fn","_WEBDRIVER_ELEM_CACHE"],e=!1;for(let r=0;r{let e={vendor:n,renderer:n,userAgent:n,language:n,platform:n,memory:n,cpuCount:n},r=null,i=null,o=null,u=()=>{o&&clearTimeout(o),r&&r.terminate(),i&&URL.revokeObjectURL(i)};try{let l=`try { + var fingerprintWorker = {}; + + fingerprintWorker.userAgent = navigator.userAgent; + fingerprintWorker.language = navigator.language; + fingerprintWorker.cpuCount = navigator.hardwareConcurrency; + fingerprintWorker.platform = navigator.platform; + fingerprintWorker.memory = navigator.deviceMemory; + + + var canvas = new OffscreenCanvas(1, 1); + fingerprintWorker.vendor = 'INIT'; + fingerprintWorker.renderer = 'INIT'; + var gl = canvas.getContext('webgl'); + const isFirefox = navigator.userAgent.includes('Firefox'); + try { + if (gl && !isFirefox) { + var glExt = gl.getExtension('WEBGL_debug_renderer_info'); + fingerprintWorker.vendor = gl.getParameter(glExt.UNMASKED_VENDOR_WEBGL); + fingerprintWorker.renderer = gl.getParameter(glExt.UNMASKED_RENDERER_WEBGL); + } else { + fingerprintWorker.vendor = 'NA'; + fingerprintWorker.renderer = 'NA'; + } + } catch (_) { + fingerprintWorker.vendor = 'ERROR'; + fingerprintWorker.renderer = 'ERROR'; + } + self.postMessage(fingerprintWorker); + } catch (e) { + self.postMessage(fingerprintWorker); + }`,f=new Blob([l],{type:"application/javascript"});i=URL.createObjectURL(f),r=new Worker(i),o=window.setTimeout(()=>{u(),m(e,c),t(e)},2e3),r.onmessage=function(a){try{e.vendor=a.data.vendor,e.renderer=a.data.renderer,e.userAgent=a.data.userAgent,e.language=a.data.language,e.platform=a.data.platform,e.memory=a.data.memory,e.cpuCount=a.data.cpuCount}catch{m(e,c)}finally{u(),t(e)}},r.onerror=function(){u(),m(e,c),t(e)}}catch{u(),m(e,c),t(e)}})}function ve(){let t={toSourceError:n,hasToSource:!1};try{null.usdfsh}catch(e){t.toSourceError=e.toString()}try{throw"xyz"}catch(e){try{e.toSource(),t.hasToSource=!0}catch{t.hasToSource=!1}}return t}var we=['audio/mp4; codecs="mp4a.40.2"',"audio/mpeg;",'audio/webm; codecs="vorbis"','audio/ogg; codecs="vorbis"','audio/wav; codecs="1"','audio/ogg; codecs="speex"','audio/ogg; codecs="flac"','audio/3gpp; codecs="samr"'],be=['video/mp4; codecs="avc1.42E01E, mp4a.40.2"','video/mp4; codecs="avc1.42E01E"','video/mp4; codecs="avc1.58A01E"','video/mp4; codecs="avc1.4D401E"','video/mp4; codecs="avc1.64001E"','video/mp4; codecs="mp4v.20.8"','video/mp4; codecs="mp4v.20.240"','video/webm; codecs="vp8"','video/ogg; codecs="theora"','video/ogg; codecs="dirac"','video/3gpp; codecs="mp4v.20.8"','video/x-matroska; codecs="theora"'];function xe(t,e){let r={};try{let i=document.createElement(e);for(let o of t)try{r[o]=i.canPlayType(o)||null}catch{r[o]=null}}catch{for(let i of t)r[i]=null}return r}function Se(t){let e={},r=window.MediaSource;if(!r||typeof r.isTypeSupported!="function"){for(let i of t)e[i]=null;return e}for(let i of t)try{e[i]=r.isTypeSupported(i)}catch{e[i]=null}return e}function Re(t){try{let e=window.RTCRtpReceiver;if(e&&typeof e.getCapabilities=="function"){let r=e.getCapabilities(t);return h(JSON.stringify(r))}return"NA"}catch{return c}}function Ce(){let t={audioCanPlayTypeHash:"NA",videoCanPlayTypeHash:"NA",audioMediaSourceHash:"NA",videoMediaSourceHash:"NA",rtcAudioCapabilitiesHash:"NA",rtcVideoCapabilitiesHash:"NA",hasMediaSource:!1};try{t.hasMediaSource=!!window.MediaSource;let e=xe(we,"audio"),r=xe(be,"video");t.audioCanPlayTypeHash=h(JSON.stringify(e)),t.videoCanPlayTypeHash=h(JSON.stringify(r));let i=Se(we),o=Se(be);t.audioMediaSourceHash=h(JSON.stringify(i)),t.videoMediaSourceHash=h(JSON.stringify(o)),t.rtcAudioCapabilitiesHash=Re("audio"),t.rtcVideoCapabilitiesHash=Re("video")}catch{m(t,c)}return t}async function Rt(){return new Promise(t=>{try{let e=new Image,r=document.createElement("canvas").getContext("2d");e.onload=()=>{r.drawImage(e,0,0),t(r.getImageData(0,0,1,1).data.filter(i=>i===0).length!=4)},e.onerror=()=>{t(c)},e.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII="}catch{t(c)}})}function Ct(){var t=document.createElement("canvas");t.width=400,t.height=200,t.style.display="inline";var e=t.getContext("2d");try{return e.rect(0,0,10,10),e.rect(2,2,6,6),e.textBaseline="alphabetic",e.fillStyle="#f60",e.fillRect(125,1,62,20),e.fillStyle="#069",e.font="11pt no-real-font-123",e.fillText("Cwm fjordbank glyphs vext quiz, \u{1F603}",2,15),e.fillStyle="rgba(102, 204, 0, 0.2)",e.font="18pt Arial",e.fillText("Cwm fjordbank glyphs vext quiz, \u{1F603}",4,45),e.globalCompositeOperation="multiply",e.fillStyle="rgb(255,0,255)",e.beginPath(),e.arc(50,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(0,255,255)",e.beginPath(),e.arc(100,50,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,255,0)",e.beginPath(),e.arc(75,100,50,0,2*Math.PI,!0),e.closePath(),e.fill(),e.fillStyle="rgb(255,0,255)",e.arc(75,75,75,0,2*Math.PI,!0),e.arc(75,75,25,0,2*Math.PI,!0),e.fill("evenodd"),h(t.toDataURL())}catch{return c}}async function Ae(){let t={hasModifiedCanvas:n,canvasFingerprint:n};return t.hasModifiedCanvas=await Rt(),t.canvasFingerprint=Ct(),t}function Ee(){let t=["deviceMemory","hardwareConcurrency","language","languages","platform"],e=[];for(let r of t){let i=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(navigator),r);i&&i.value?e.push("1"):e.push("0")}return e.join("")}function Pe(){return Math.random().toString(36).substring(2,15)}function We(){return new Date().getTime()}function Me(){return window.location.href}function G(t,e){let r=t.signals;return e==="iframe"?r.contexts.iframe.webdriver!==r.automation.webdriver||r.contexts.iframe.userAgent!==r.browser.userAgent||r.contexts.iframe.platform!==r.device.platform||r.contexts.iframe.memory!==r.device.memory||r.contexts.iframe.cpuCount!==r.device.cpuCount:r.contexts.webWorker.webdriver!==r.automation.webdriver||r.contexts.webWorker.userAgent!==r.browser.userAgent||r.contexts.webWorker.platform!==r.device.platform||r.contexts.webWorker.memory!==r.device.memory||r.contexts.webWorker.cpuCount!==r.device.cpuCount}function ke(){let t={bitmask:n,extensions:[]},e=document.body.hasAttribute("data-gr-ext-installed"),r=typeof window.ethereum<"u",i=document.getElementById("coupon-birds-drop-div")!==null,o=document.querySelector("deepl-input-controller")!==null,u=document.getElementById("monica-content-root")!==null,l=document.querySelector("chatgpt-sidebar")!==null,f=typeof window.__REQUESTLY__<"u",a=Array.from(document.querySelectorAll("*")).filter(w=>w.tagName.toLowerCase().startsWith("veepn-")).length>0;return t.bitmask=[e?"1":"0",r?"1":"0",i?"1":"0",o?"1":"0",u?"1":"0",l?"1":"0",f?"1":"0",a?"1":"0"].join(""),e&&t.extensions.push("grammarly"),r&&t.extensions.push("metamask"),i&&t.extensions.push("coupon-birds"),o&&t.extensions.push("deepl"),u&&t.extensions.push("monica-ai"),l&&t.extensions.push("sider-ai"),f&&t.extensions.push("requestly"),a&&t.extensions.push("veepn"),t}function d(t){try{return t()}catch{return!1}}function De(){let t={bitmask:n,chrome:d(()=>"chrome"in window),brave:d(()=>"brave"in navigator),applePaySupport:d(()=>"ApplePaySetup"in window),opera:d(()=>typeof window.opr<"u"||typeof window.onoperadetachedviewchange=="object"),serial:d(()=>window.navigator.serial!==void 0),attachShadow:d(()=>!!Element.prototype.attachShadow),caches:d(()=>!!window.caches),webAssembly:d(()=>!!window.WebAssembly&&!!window.WebAssembly.instantiate),buffer:d(()=>"Buffer"in window),showModalDialog:d(()=>"showModalDialog"in window),safari:d(()=>"safari"in window),webkitPrefixedFunction:d(()=>"webkitCancelAnimationFrame"in window),mozPrefixedFunction:d(()=>"mozGetUserMedia"in navigator),usb:d(()=>typeof window.USB=="function"),browserCapture:d(()=>typeof window.BrowserCaptureMediaStreamTrack=="function"),paymentRequestUpdateEvent:d(()=>typeof window.PaymentRequestUpdateEvent=="function"),pressureObserver:d(()=>typeof window.PressureObserver=="function"),audioSession:d(()=>"audioSession"in navigator),selectAudioOutput:d(()=>typeof navigator<"u"&&typeof navigator.mediaDevices<"u"&&typeof navigator.mediaDevices.selectAudioOutput=="function"),barcodeDetector:d(()=>"BarcodeDetector"in window),battery:d(()=>"getBattery"in navigator),devicePosture:d(()=>"DevicePosture"in window),documentPictureInPicture:d(()=>"documentPictureInPicture"in window),eyeDropper:d(()=>"EyeDropper"in window),editContext:d(()=>"EditContext"in window),fencedFrame:d(()=>"FencedFrameConfig"in window),sanitizer:d(()=>"Sanitizer"in window),otpCredential:d(()=>"OTPCredential"in window)},e=Object.keys(t).filter(r=>r!=="bitmask").map(r=>t[r]?"1":"0").join("");return t.bitmask=e,t}function Ie(){let t={prefersColorScheme:n,prefersReducedMotion:n,prefersReducedTransparency:n,colorGamut:n,pointer:n,anyPointer:n,hover:n,anyHover:n,colorDepth:n};try{window.matchMedia("(prefers-color-scheme: dark)").matches?t.prefersColorScheme="dark":window.matchMedia("(prefers-color-scheme: light)").matches?t.prefersColorScheme="light":t.prefersColorScheme=null,t.prefersReducedMotion=window.matchMedia("(prefers-reduced-motion: reduce)").matches,t.prefersReducedTransparency=window.matchMedia("(prefers-reduced-transparency: reduce)").matches,window.matchMedia("(color-gamut: rec2020)").matches?t.colorGamut="rec2020":window.matchMedia("(color-gamut: p3)").matches?t.colorGamut="p3":window.matchMedia("(color-gamut: srgb)").matches?t.colorGamut="srgb":t.colorGamut=null,window.matchMedia("(pointer: fine)").matches?t.pointer="fine":window.matchMedia("(pointer: coarse)").matches?t.pointer="coarse":window.matchMedia("(pointer: none)").matches?t.pointer="none":t.pointer=null,window.matchMedia("(any-pointer: fine)").matches?t.anyPointer="fine":window.matchMedia("(any-pointer: coarse)").matches?t.anyPointer="coarse":window.matchMedia("(any-pointer: none)").matches?t.anyPointer="none":t.anyPointer=null,t.hover=window.matchMedia("(hover: hover)").matches,t.anyHover=window.matchMedia("(any-hover: hover)").matches;let e=0;for(let r=0;r<=16;r++)window.matchMedia(`(color: ${r})`).matches&&(e=r);t.colorDepth=e}catch{m(t,c)}return t}function _e(t){let e=t.signals.device.screenResolution;return e.width===800&&e.height===600||e.availableWidth===800&&e.availableHeight===600||e.innerWidth===800&&e.innerHeight===600}function Oe(t){return t.signals.automation.webdriver===!0}function Fe(t){return!!t.signals.automation.selenium}function Te(t){return t.signals.automation.cdp===!0}function Ne(t){return t.signals.automation.playwright===!0}function Ue(t){return typeof t.signals.device.memory!="number"?!1:t.signals.device.memory>32||t.signals.device.memory<.25}function Le(t){return typeof t.signals.device.cpuCount!="number"?!1:t.signals.device.cpuCount>70}function He(t){let e=t.signals.browser.userAgent;return t.signals.browser.features.chrome===!1&&typeof e=="string"&&e.includes("Chrome")}function Ve(t){return t.signals.contexts.iframe.webdriver===!0}function je(t){return t.signals.contexts.webWorker.webdriver===!0}function Be(t){let e=t.signals.contexts.webWorker,r=t.signals.graphics.webGL;return e.vendor===c||e.renderer===c||r.vendor==="NA"||r.renderer==="NA"||e.vendor===S?!1:e.vendor!==r.vendor||e.renderer!==r.renderer}function Ge(t){return t.signals.contexts.webWorker.platform==="NA"||t.signals.contexts.webWorker.platform===c||t.signals.contexts.webWorker.platform===S?!1:t.signals.device.platform!==t.signals.contexts.webWorker.platform}function ze(t){return t.signals.contexts.iframe.platform==="NA"||t.signals.contexts.iframe.platform===c?!1:t.signals.device.platform!==t.signals.contexts.iframe.platform}function $e(t){return t.signals.automation.webdriverWritable===!0}function Qe(t){return t.signals.graphics.webGL.renderer.includes("SwiftShader")}function Ke(t){return t.signals.locale.internationalization.timezone==="UTC"}function qe(t){let e=t.signals.locale.languages.languages,r=t.signals.locale.languages.language;return r&&e&&Array.isArray(e)&&e.length>0?e[0]!==r:!1}function Je(t){return!!(t.signals.browser.features.chrome&&t.signals.browser.etsl!==33||t.signals.browser.features.safari&&t.signals.browser.etsl!==37||t.signals.browser.userAgent.includes("Firefox")&&t.signals.browser.etsl!==37)}function Ye(t){return[t.signals.browser.userAgent,t.signals.contexts.iframe.userAgent,t.signals.contexts.webWorker.userAgent].some(r=>/bot|headless/i.test(r.toLowerCase()))}function Ze(t){let e=t.signals.graphics.webgpu,r=t.signals.graphics.webGL,i=t.signals.browser.userAgent;return!!((r.vendor.includes("Apple")||r.renderer.includes("Apple"))&&!i.includes("Mac")||e.vendor.includes("apple")&&!i.includes("Mac")||e.vendor.includes("apple")&&!r.renderer.includes("Apple"))}function Xe(t){let e=t.signals.device.platform,r=t.signals.browser.userAgent,i=t.signals.browser.highEntropyValues.platform;return!!(r.includes("Mac")&&(e.includes("Win")||e.includes("Linux"))||r.includes("Windows")&&(e.includes("Mac")||e.includes("Linux"))||r.includes("Linux")&&(e.includes("Mac")||e.includes("Win"))||i!==c&&i!=="NA"&&(i.includes("Mac")&&(e.includes("Win")||e.includes("Linux"))||i.includes("Windows")&&(e.includes("Mac")||e.includes("Linux"))||i.includes("Linux")&&(e.includes("Mac")||e.includes("Win"))))}async function et(t,e){let r=new TextEncoder().encode(e),i=new TextEncoder().encode(t),o=new Uint8Array(i.length);for(let l=0;lg?"1":"0").join(""),l=[e.automation.webdriver===!0,e.automation.webdriverWritable===!0,e.automation.selenium===!0,e.automation.cdp===!0,e.automation.playwright===!0].map(g=>g?"1":"0").join(""),f=h(String(e.automation.navigatorPropertyDescriptors)).slice(0,4),a=`${l}h${f}`,w=typeof e.device.screenResolution.width=="number"?e.device.screenResolution.width:0,M=typeof e.device.screenResolution.height=="number"?e.device.screenResolution.height:0,U=typeof e.device.cpuCount=="number"?String(e.device.cpuCount).padStart(2,"0"):"00",k=typeof e.device.memory=="number"?String(Math.round(e.device.memory)).padStart(2,"0"):"00",D=[e.device.screenResolution.hasMultipleDisplays===!0,e.device.mediaQueries.prefersReducedMotion===!0,e.device.mediaQueries.prefersReducedTransparency===!0,e.device.mediaQueries.hover===!0,e.device.mediaQueries.anyHover===!0].map(g=>g?"1":"0").join(""),L=[e.device.platform,e.device.screenResolution.pixelDepth,e.device.screenResolution.colorDepth,e.device.multimediaDevices.speakers,e.device.multimediaDevices.microphones,e.device.multimediaDevices.webcams,e.device.mediaQueries.prefersColorScheme,e.device.mediaQueries.colorGamut,e.device.mediaQueries.pointer,e.device.mediaQueries.anyPointer,e.device.mediaQueries.colorDepth].map(g=>String(g)).join("|"),v=h(L).slice(0,6),H=`${w}x${M}c${U}m${k}b${D}h${v}`,R=typeof e.browser.features.bitmask=="string"?e.browser.features.bitmask:"0000000000",I=typeof e.browser.extensions.bitmask=="string"?e.browser.extensions.bitmask:"00000000",b=[e.browser.plugins.isValidPluginArray===!0,e.browser.plugins.pluginConsistency1===!0,e.browser.plugins.pluginOverflow===!0,e.browser.toSourceError.hasToSource===!0].map(g=>g?"1":"0").join(""),C=[e.browser.userAgent,e.browser.etsl,e.browser.maths,e.browser.plugins.pluginCount,e.browser.plugins.pluginNamesHash,e.browser.toSourceError.toSourceError,e.browser.highEntropyValues.architecture,e.browser.highEntropyValues.bitness,e.browser.highEntropyValues.platform,e.browser.highEntropyValues.platformVersion,e.browser.highEntropyValues.uaFullVersion,e.browser.highEntropyValues.mobile].map(g=>String(g)).join("|"),A=h(C).slice(0,6),_=`f${R}e${I}p${b}h${A}`,x=[e.graphics.canvas.hasModifiedCanvas===!0].map(g=>g?"1":"0").join(""),E=[e.graphics.webGL.vendor,e.graphics.webGL.renderer,e.graphics.webgpu.vendor,e.graphics.webgpu.architecture,e.graphics.webgpu.device,e.graphics.webgpu.description,e.graphics.canvas.canvasFingerprint].map(g=>String(g)).join("|"),P=h(E).slice(0,6),O=`${x}h${P}`,p=[e.codecs.hasMediaSource===!0].map(g=>g?"1":"0").join(""),F=[e.codecs.audioCanPlayTypeHash,e.codecs.videoCanPlayTypeHash,e.codecs.audioMediaSourceHash,e.codecs.videoMediaSourceHash,e.codecs.rtcAudioCapabilitiesHash,e.codecs.rtcVideoCapabilitiesHash].map(g=>String(g)).join("|"),T=h(F).slice(0,6),V=`${p}h${T}`,j=typeof e.locale.languages.language=="string"?e.locale.languages.language.slice(0,2).toLowerCase():"xx",B=Array.isArray(e.locale.languages.languages)?e.locale.languages.languages.length:0,ut=(typeof e.locale.internationalization.timezone=="string"?e.locale.internationalization.timezone:"unknown").replace(/[\/\s]/g,"-"),dt=[e.locale.internationalization.timezone,e.locale.internationalization.localeLanguage,Array.isArray(e.locale.languages.languages)?e.locale.languages.languages.join(","):e.locale.languages.languages,e.locale.languages.language].map(g=>String(g)).join("|"),pt=h(dt).slice(0,4),mt=`${j}${B}t${ut}_h${pt}`,gt=[G(this.fingerprint,"iframe"),G(this.fingerprint,"worker"),e.contexts.iframe.webdriver===!0,e.contexts.webWorker.webdriver===!0].map(g=>g?"1":"0").join(""),ft=[e.contexts.iframe.userAgent,e.contexts.iframe.platform,e.contexts.iframe.memory,e.contexts.iframe.cpuCount,e.contexts.iframe.language,e.contexts.webWorker.userAgent,e.contexts.webWorker.platform,e.contexts.webWorker.memory,e.contexts.webWorker.cpuCount,e.contexts.webWorker.language,e.contexts.webWorker.vendor,e.contexts.webWorker.renderer].map(g=>String(g)).join("|"),ht=h(ft).slice(0,6),yt=`${gt}h${ht}`;return[i,u,a,H,_,O,V,mt,yt].join("_")}catch(e){return console.error("Error generating fingerprint scanner id",e),c}}async encryptFingerprint(e){let r=__FP_ENCRYPTION_KEY__;return r.length>20&&r.indexOf("DEFAULT")>0&&r.indexOf("FPSCANNER")>0&&console.warn('[fpscanner] WARNING: Using default encryption key! Run "npx fpscanner build --key=your-secret-key" to inject your own key. See: https://github.com/antoinevastel/fpscanner#advanced-custom-builds'),await et(JSON.stringify(e),r)}getDetectionRules(){return[{name:"headlessChromeScreenResolution",severity:y,test:_e},{name:"hasWebdriver",severity:y,test:Oe},{name:"hasWebdriverWritable",severity:y,test:$e},{name:"hasSeleniumProperty",severity:y,test:Fe},{name:"hasCDP",severity:y,test:Te},{name:"hasPlaywright",severity:y,test:Ne},{name:"hasImpossibleDeviceMemory",severity:y,test:Ue},{name:"hasHighCPUCount",severity:y,test:Le},{name:"hasMissingChromeObject",severity:y,test:He},{name:"hasWebdriverIframe",severity:y,test:Ve},{name:"hasWebdriverWorker",severity:y,test:je},{name:"hasMismatchWebGLInWorker",severity:y,test:Be},{name:"hasMismatchPlatformIframe",severity:y,test:ze},{name:"hasMismatchPlatformWorker",severity:y,test:Ge},{name:"hasSwiftshaderRenderer",severity:"low",test:Qe},{name:"hasUTCTimezone",severity:Z,test:Ke},{name:"hasMismatchLanguages",severity:"low",test:qe},{name:"hasInconsistentEtsl",severity:y,test:Je},{name:"hasBotUserAgent",severity:y,test:Ye},{name:"hasGPUMismatch",severity:y,test:Ze},{name:"hasPlatformMismatch",severity:y,test:Xe}]}runDetectionRules(){let e=this.getDetectionRules(),r={headlessChromeScreenResolution:{detected:!1,severity:"high"},hasWebdriver:{detected:!1,severity:"high"},hasWebdriverWritable:{detected:!1,severity:"high"},hasSeleniumProperty:{detected:!1,severity:"high"},hasCDP:{detected:!1,severity:"high"},hasPlaywright:{detected:!1,severity:"high"},hasImpossibleDeviceMemory:{detected:!1,severity:"high"},hasHighCPUCount:{detected:!1,severity:"high"},hasMissingChromeObject:{detected:!1,severity:"high"},hasWebdriverIframe:{detected:!1,severity:"high"},hasWebdriverWorker:{detected:!1,severity:"high"},hasMismatchWebGLInWorker:{detected:!1,severity:"high"},hasMismatchPlatformIframe:{detected:!1,severity:"high"},hasMismatchPlatformWorker:{detected:!1,severity:"high"},hasSwiftshaderRenderer:{detected:!1,severity:"low"},hasUTCTimezone:{detected:!1,severity:"medium"},hasMismatchLanguages:{detected:!1,severity:"low"},hasInconsistentEtsl:{detected:!1,severity:"high"},hasBotUserAgent:{detected:!1,severity:"high"},hasGPUMismatch:{detected:!1,severity:"high"},hasPlatformMismatch:{detected:!1,severity:"high"}};for(let i of e)try{let o=i.test(this.fingerprint);r[i.name]={detected:o,severity:i.severity}}catch{r[i.name]={detected:!1,severity:i.severity}}return r}async collectFingerprint(e={encrypt:!0}){let{encrypt:r=!0,skipWorker:i=!1}=e,o=this.fingerprint.signals,u={webdriver:this.collectSignal(q),webdriverWritable:this.collectSignal(pe),selenium:this.collectSignal(de),cdp:this.collectSignal(ee),playwright:this.collectSignal(re),navigatorPropertyDescriptors:this.collectSignal(Ee),cpuCount:this.collectSignal(ne),memory:this.collectSignal(oe),platform:this.collectSignal(Y),screenResolution:this.collectSignal(ce),multimediaDevices:this.collectSignal(fe),mediaQueries:this.collectSignal(Ie),userAgent:this.collectSignal(J),browserFeatures:this.collectSignal(De),plugins:this.collectSignal(ge),browserExtensions:this.collectSignal(ke),highEntropyValues:this.collectSignal(me),etsl:this.collectSignal(ae),maths:this.collectSignal(ie),toSourceError:this.collectSignal(ve),webGL:this.collectSignal(te),webgpu:this.collectSignal(ue),canvas:this.collectSignal(Ae),mediaCodecs:this.collectSignal(Ce),internationalization:this.collectSignal(se),languages:this.collectSignal(le),iframe:this.collectSignal(he),webWorker:i?Promise.resolve({webdriver:S,userAgent:S,platform:S,memory:S,cpuCount:S,language:S,vendor:S,renderer:S}):this.collectSignal(ye),nonce:this.collectSignal(Pe),time:this.collectSignal(We),url:this.collectSignal(Me)},l=Object.keys(u),f=await Promise.all(Object.values(u)),a=Object.fromEntries(l.map((w,M)=>[w,f[M]]));return o.automation.webdriver=a.webdriver,o.automation.webdriverWritable=a.webdriverWritable,o.automation.selenium=a.selenium,o.automation.cdp=a.cdp,o.automation.playwright=a.playwright,o.automation.navigatorPropertyDescriptors=a.navigatorPropertyDescriptors,o.device.cpuCount=a.cpuCount,o.device.memory=a.memory,o.device.platform=a.platform,o.device.screenResolution=a.screenResolution,o.device.multimediaDevices=a.multimediaDevices,o.device.mediaQueries=a.mediaQueries,o.browser.userAgent=a.userAgent,o.browser.features=a.browserFeatures,o.browser.plugins=a.plugins,o.browser.extensions=a.browserExtensions,o.browser.highEntropyValues=a.highEntropyValues,o.browser.etsl=a.etsl,o.browser.maths=a.maths,o.browser.toSourceError=a.toSourceError,o.graphics.webGL=a.webGL,o.graphics.webgpu=a.webgpu,o.graphics.canvas=a.canvas,o.codecs=a.mediaCodecs,o.locale.internationalization=a.internationalization,o.locale.languages=a.languages,o.contexts.iframe=a.iframe,o.contexts.webWorker=a.webWorker,this.fingerprint.nonce=a.nonce,this.fingerprint.time=a.time,this.fingerprint.url=a.url,this.fingerprint.fastBotDetectionDetails=this.runDetectionRules(),this.fingerprint.fastBotDetection=Object.values(this.fingerprint.fastBotDetectionDetails).some(w=>w.detected),this.fingerprint.fsid=this.generateFingerprintScannerId(),r?await this.encryptFingerprint(JSON.stringify(this.fingerprint)):this.fingerprint}},rt=z;var At=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function N(t){let e=1779033703,r=3144134277,i=1013904242,o=2773480762,u=1359893119,l=2600822924,f=528734635,a=1541459225,w=t.length,M=w*8,U=64-(w+9)%64,k=w+1+(U===64?0:U)+8,D=new Uint8Array(k);D.set(t),D[w]=128;let L=new DataView(D.buffer);L.setUint32(k-4,M,!1);let v=new Int32Array(64);for(let I=0;I>>7|v[p-15]<<25)^(v[p-15]>>>18|v[p-15]<<14)^v[p-15]>>>3|0,T=(v[p-2]>>>17|v[p-2]<<15)^(v[p-2]>>>19|v[p-2]<<13)^v[p-2]>>>10|0;v[p]=v[p-16]+F+v[p-7]+T|0}let b=e,C=r,A=i,_=o,x=u,E=l,P=f,O=a;for(let p=0;p<64;p++){let F=(x>>>6|x<<26)^(x>>>11|x<<21)^(x>>>25|x<<7)|0,T=x&E^~x&P|0,V=O+F+T+At[p]+v[p]|0,j=(b>>>2|b<<30)^(b>>>13|b<<19)^(b>>>22|b<<10)|0,B=b&C^b&A^C&A|0,K=j+B|0;O=P,P=E,E=x,x=_+V|0,_=A,A=C,C=b,b=V+K|0}e=e+b|0,r=r+C|0,i=i+A|0,o=o+_|0,u=u+x|0,l=l+E|0,f=f+P|0,a=a+O|0}let H=new Uint8Array(32),R=new DataView(H.buffer);return R.setUint32(0,e,!1),R.setUint32(4,r,!1),R.setUint32(8,i,!1),R.setUint32(12,o,!1),R.setUint32(16,u,!1),R.setUint32(20,l,!1),R.setUint32(24,f,!1),R.setUint32(28,a,!1),H}function ot(t){let e="";for(let r=0;r>4).toString(16)+(t[r]&15).toString(16);return e}function W(t){return new TextEncoder().encode(t)}function Et(t){return ot(N(W(t)))}function Pt(t,e){t.length>64&&(t=N(t));let r=new Uint8Array(64);r.set(t);let i=new Uint8Array(64),o=new Uint8Array(64);for(let a=0;a<64;a++)i[a]=r[a]^54,o[a]=r[a]^92;let u=new Uint8Array(64+e.length);u.set(i),u.set(e,64);let l=N(u),f=new Uint8Array(96);return f.set(o),f.set(l,64),N(f)}function Wt(t,e){return ot(Pt(W(t),W(e)))}var Mt="__CROWDSEC_POW_WORKER_PATH__";function kt(t,e){if(e<=0)return Promise.resolve("0");try{let r=new Worker(Mt);return new Promise(i=>{r.onmessage=o=>{r.terminate(),i(o.data)},r.onerror=()=>{r.terminate(),i(nt(t,e))},r.postMessage({p:t,d:e})})}catch{return Promise.resolve(nt(t,e))}}function nt(t,e){let r=0;for(;;){let i=t+r.toString(36),o=N(W(i)),u=e>>3,l=e&7,f=!0;for(let a=0;a0){let a=255<<8-l&255;(o[u]&a)!==0&&(f=!1)}if(f)return r.toString(36);r++}}function Dt(t,e){let r=W(t),i=W(e),o=new Uint8Array(i.length);for(let l=0;lt.json()).then(t=>{let e=typeof t?.status=="string"?t.status:"fail";it(e)}).catch(()=>{it("fail")}); diff --git a/pkg/appsec/challenge/js/fpscanner/src/crypto-helpers.ts b/pkg/appsec/challenge/js/fpscanner/src/crypto-helpers.ts new file mode 100644 index 00000000000..26833cd4157 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/crypto-helpers.ts @@ -0,0 +1,50 @@ +/** + * Simple and fast XOR-based encryption/decryption + * Note: This is NOT cryptographically secure - use only for obfuscation + */ + +/** + * Encrypts a string using XOR cipher with the provided key + * @param plaintext - The string to encrypt + * @param key - The encryption key as a string + * @returns Encrypted string (base64 encoded) + */ +export async function encryptString(plaintext: string, key: string): Promise { + const keyBytes = new TextEncoder().encode(key); + const textBytes = new TextEncoder().encode(plaintext); + const encrypted = new Uint8Array(textBytes.length); + + for (let i = 0; i < textBytes.length; i++) { + encrypted[i] = textBytes[i] ^ keyBytes[i % keyBytes.length]; + } + + // Convert to base64 for safe string representation + const binaryString = String.fromCharCode(...encrypted); + return btoa(binaryString); +} + +/** + * Decrypts a string that was encrypted with encryptString + * @param ciphertext - The encrypted string (base64 encoded) + * @param key - The decryption key as a string (must match encryption key) + * @returns Decrypted string + */ +export async function decryptString(ciphertext: string, key: string): Promise { + // Decode from base64 + const binaryString = atob(ciphertext); + const encrypted = new Uint8Array(binaryString.length); + for (let i = 0; i < binaryString.length; i++) { + encrypted[i] = binaryString.charCodeAt(i); + } + + const keyBytes = new TextEncoder().encode(key); + const decrypted = new Uint8Array(encrypted.length); + + // XOR is symmetric, so decryption is the same as encryption + for (let i = 0; i < encrypted.length; i++) { + decrypted[i] = encrypted[i] ^ keyBytes[i % keyBytes.length]; + } + + return new TextDecoder().decode(decrypted); +} + diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasBotUserAgent.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasBotUserAgent.ts new file mode 100644 index 00000000000..c1a97c10ec1 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasBotUserAgent.ts @@ -0,0 +1,11 @@ +import { Fingerprint } from "../types"; + +export function hasBotUserAgent(fingerprint: Fingerprint) { + const userAgents = [ + fingerprint.signals.browser.userAgent, + fingerprint.signals.contexts.iframe.userAgent, + fingerprint.signals.contexts.webWorker.userAgent, + ]; + + return userAgents.some(userAgent => /bot|headless/i.test(userAgent.toLowerCase())); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasCDP.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasCDP.ts new file mode 100644 index 00000000000..a49aa69fe11 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasCDP.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasCDP(fingerprint: Fingerprint) { + return fingerprint.signals.automation.cdp === true; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasContextMismatch.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasContextMismatch.ts new file mode 100644 index 00000000000..e3155396d38 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasContextMismatch.ts @@ -0,0 +1,19 @@ +import { Fingerprint } from "../types"; + +// Not used as a detection rule since, more like an indicator +export function hasContextMismatch(fingerprint: Fingerprint, context: 'iframe' | 'worker'): boolean { + const s = fingerprint.signals; + if (context === 'iframe') { + return s.contexts.iframe.webdriver !== s.automation.webdriver || + s.contexts.iframe.userAgent !== s.browser.userAgent || + s.contexts.iframe.platform !== s.device.platform || + s.contexts.iframe.memory !== s.device.memory || + s.contexts.iframe.cpuCount !== s.device.cpuCount; + } else { + return s.contexts.webWorker.webdriver !== s.automation.webdriver || + s.contexts.webWorker.userAgent !== s.browser.userAgent || + s.contexts.webWorker.platform !== s.device.platform || + s.contexts.webWorker.memory !== s.device.memory || + s.contexts.webWorker.cpuCount !== s.device.cpuCount; + } +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasGPUMismatch.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasGPUMismatch.ts new file mode 100644 index 00000000000..4f34b96e6ea --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasGPUMismatch.ts @@ -0,0 +1,25 @@ +import { Fingerprint } from "../types"; + +// For the moment, we only detect GPU mismatches related to Apple OS/GPU + +export function hasGPUMismatch(fingerprint: Fingerprint) { + const gpu = fingerprint.signals.graphics.webgpu; + const webGL = fingerprint.signals.graphics.webGL; + const userAgent = fingerprint.signals.browser.userAgent; + + + // Inconsistencies around Apple OS/GPU + if ((webGL.vendor.includes('Apple') || webGL.renderer.includes('Apple')) && !userAgent.includes('Mac')) { + return true; + } + + if (gpu.vendor.includes('apple') && !userAgent.includes('Mac')) { + return true; + } + + if (gpu.vendor.includes('apple') && !webGL.renderer.includes('Apple')) { + return true; + } + + return false; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasHeadlessChromeScreenResolution.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasHeadlessChromeScreenResolution.ts new file mode 100644 index 00000000000..f3d39c34a80 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasHeadlessChromeScreenResolution.ts @@ -0,0 +1,7 @@ +import { Fingerprint } from '../types'; + +export function hasHeadlessChromeScreenResolution(fingerprint: Fingerprint) { + const screen = fingerprint.signals.device.screenResolution; + + return (screen.width === 800 && screen.height === 600) || (screen.availableWidth === 800 && screen.availableHeight === 600) || (screen.innerWidth === 800 && screen.innerHeight === 600); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasHighCPUCount.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasHighCPUCount.ts new file mode 100644 index 00000000000..2242a063414 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasHighCPUCount.ts @@ -0,0 +1,9 @@ +import { Fingerprint } from "../types"; + +export function hasHighCPUCount(fingerprint: Fingerprint) { + if (typeof fingerprint.signals.device.cpuCount !== 'number') { + return false; + } + + return fingerprint.signals.device.cpuCount > 70; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasImpossibleDeviceMemory.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasImpossibleDeviceMemory.ts new file mode 100644 index 00000000000..4c4edc9e7b9 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasImpossibleDeviceMemory.ts @@ -0,0 +1,9 @@ +import { Fingerprint } from "../types"; + +export function hasImpossibleDeviceMemory(fingerprint: Fingerprint) { + if (typeof fingerprint.signals.device.memory !== 'number') { + return false; + } + + return (fingerprint.signals.device.memory > 32 || fingerprint.signals.device.memory < 0.25); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasInconsistentEtsl.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasInconsistentEtsl.ts new file mode 100644 index 00000000000..0bbc49ba58d --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasInconsistentEtsl.ts @@ -0,0 +1,21 @@ +import { Fingerprint } from "../types"; + +export function hasInconsistentEtsl(fingerprint: Fingerprint) { + + // On Chromium-based browsers, ETSL should be 33 + if (fingerprint.signals.browser.features.chrome && fingerprint.signals.browser.etsl !== 33) { + return true; + } + + // On Safari, ETSL should be 37 + if (fingerprint.signals.browser.features.safari && fingerprint.signals.browser.etsl !== 37) { + return true; + } + + // On Firefox, ETSL should be 37 + if (fingerprint.signals.browser.userAgent.includes('Firefox') && fingerprint.signals.browser.etsl !== 37) { + return true; + } + + return false; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchLanguages.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchLanguages.ts new file mode 100644 index 00000000000..d1d38d7652d --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchLanguages.ts @@ -0,0 +1,13 @@ +import { Fingerprint } from "../types"; + +export function hasMismatchLanguages(fingerprint: Fingerprint) { + const languages = fingerprint.signals.locale.languages.languages; + const language = fingerprint.signals.locale.languages.language; + + + if (language && languages && Array.isArray(languages) && languages.length > 0) { + return languages[0] !== language; + } + + return false; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchPlatformIframe.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchPlatformIframe.ts new file mode 100644 index 00000000000..3bbcfbeb721 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchPlatformIframe.ts @@ -0,0 +1,10 @@ +import { Fingerprint } from "../types"; +import { ERROR, NA } from "../signals/utils"; + +export function hasMismatchPlatformIframe(fingerprint: Fingerprint) { + if (fingerprint.signals.contexts.iframe.platform === NA || fingerprint.signals.contexts.iframe.platform === ERROR) { + return false; + } + + return fingerprint.signals.device.platform !== fingerprint.signals.contexts.iframe.platform; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchPlatformWorker.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchPlatformWorker.ts new file mode 100644 index 00000000000..025598899f8 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchPlatformWorker.ts @@ -0,0 +1,10 @@ +import { Fingerprint } from "../types"; +import { ERROR, NA, SKIPPED } from "../signals/utils"; + +export function hasMismatchPlatformWorker(fingerprint: Fingerprint) { + if (fingerprint.signals.contexts.webWorker.platform === NA || fingerprint.signals.contexts.webWorker.platform === ERROR || fingerprint.signals.contexts.webWorker.platform === SKIPPED) { + return false; + } + + return fingerprint.signals.device.platform !== fingerprint.signals.contexts.webWorker.platform; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchWebGLInWorker.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchWebGLInWorker.ts new file mode 100644 index 00000000000..0ebe8a18337 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMismatchWebGLInWorker.ts @@ -0,0 +1,13 @@ +import { Fingerprint } from "../types"; +import { ERROR, NA, SKIPPED } from "../signals/utils"; + +export function hasMismatchWebGLInWorker(fingerprint: Fingerprint) { + const worker = fingerprint.signals.contexts.webWorker; + const webGL = fingerprint.signals.graphics.webGL; + + if (worker.vendor === ERROR || worker.renderer === ERROR || webGL.vendor === NA || webGL.renderer === NA || worker.vendor === SKIPPED) { + return false; + } + + return worker.vendor !== webGL.vendor || worker.renderer !== webGL.renderer; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasMissingChromeObject.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMissingChromeObject.ts new file mode 100644 index 00000000000..2d12ac5e772 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasMissingChromeObject.ts @@ -0,0 +1,6 @@ +import { Fingerprint } from "../types"; + +export function hasMissingChromeObject(fingerprint: Fingerprint) { + const userAgent = fingerprint.signals.browser.userAgent; + return fingerprint.signals.browser.features.chrome === false && typeof userAgent === 'string' && userAgent.includes('Chrome'); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasPlatformMismatch.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasPlatformMismatch.ts new file mode 100644 index 00000000000..9ea694173e2 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasPlatformMismatch.ts @@ -0,0 +1,38 @@ +import { Fingerprint } from "../types"; +import { ERROR, NA } from "../signals/utils"; + +export function hasPlatformMismatch(fingerprint: Fingerprint) { + const platform = fingerprint.signals.device.platform; + const userAgent = fingerprint.signals.browser.userAgent; + const highEntropyPlatform = fingerprint.signals.browser.highEntropyValues.platform; + + if (userAgent.includes('Mac') && (platform.includes('Win') || platform.includes('Linux'))) { + return true; + } + + if (userAgent.includes('Windows') && (platform.includes('Mac') || platform.includes('Linux'))) { + return true; + } + + if (userAgent.includes('Linux') && (platform.includes('Mac') || platform.includes('Win'))) { + return true; + } + + + // Check applied only if highEntropyPlatform is not ERROR or NA + if (highEntropyPlatform !== ERROR && highEntropyPlatform !== NA) { + if (highEntropyPlatform.includes('Mac') && (platform.includes('Win') || platform.includes('Linux'))) { + return true; + } + + if (highEntropyPlatform.includes('Windows') && (platform.includes('Mac') || platform.includes('Linux'))) { + return true; + } + + if (highEntropyPlatform.includes('Linux') && (platform.includes('Mac') || platform.includes('Win'))) { + return true; + } + } + + return false; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasPlaywright.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasPlaywright.ts new file mode 100644 index 00000000000..d8ca3f62439 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasPlaywright.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasPlaywright(fingerprint: Fingerprint) { + return fingerprint.signals.automation.playwright === true; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasSeleniumProperty.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasSeleniumProperty.ts new file mode 100644 index 00000000000..153c2d936bf --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasSeleniumProperty.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasSeleniumProperty(fingerprint: Fingerprint) { + return !!fingerprint.signals.automation.selenium; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasSwiftshaderRenderer.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasSwiftshaderRenderer.ts new file mode 100644 index 00000000000..7e95d946b94 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasSwiftshaderRenderer.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasSwiftshaderRenderer(fingerprint: Fingerprint) { + return fingerprint.signals.graphics.webGL.renderer.includes('SwiftShader'); +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasUTCTimezone.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasUTCTimezone.ts new file mode 100644 index 00000000000..b048798b14d --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasUTCTimezone.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasUTCTimezone(fingerprint: Fingerprint) { + return fingerprint.signals.locale.internationalization.timezone === 'UTC'; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriver.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriver.ts new file mode 100644 index 00000000000..20854ac94b9 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriver.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasWebdriver(fingerprint: Fingerprint) { + return fingerprint.signals.automation.webdriver === true; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverIframe.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverIframe.ts new file mode 100644 index 00000000000..223a4c350e4 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverIframe.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasWebdriverIframe(fingerprint: Fingerprint) { + return fingerprint.signals.contexts.iframe.webdriver === true; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverWorker.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverWorker.ts new file mode 100644 index 00000000000..7e3e10932b9 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverWorker.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasWebdriverWorker(fingerprint: Fingerprint) { + return fingerprint.signals.contexts.webWorker.webdriver === true; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverWritable.ts b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverWritable.ts new file mode 100644 index 00000000000..26fddd9018f --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/detections/hasWebdriverWritable.ts @@ -0,0 +1,5 @@ +import { Fingerprint } from "../types"; + +export function hasWebdriverWritable(fingerprint: Fingerprint) { + return fingerprint.signals.automation.webdriverWritable === true; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/globals.d.ts b/pkg/appsec/challenge/js/fpscanner/src/globals.d.ts new file mode 100644 index 00000000000..a072a6c658e --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/globals.d.ts @@ -0,0 +1,10 @@ +/** + * Build-time constant injected via Vite's define option. + * This is replaced with the actual encryption key during the build process. + * + * Customers provide their key via: + * - npx fpscanner build --key=their-key + * - FINGERPRINT_KEY environment variable + * - .env file with FINGERPRINT_KEY=their-key + */ +declare const __FP_ENCRYPTION_KEY__: string; diff --git a/pkg/appsec/challenge/js/fpscanner/src/index.ts b/pkg/appsec/challenge/js/fpscanner/src/index.ts new file mode 100644 index 00000000000..b0e355ea390 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/index.ts @@ -0,0 +1,698 @@ +// Import all signals +import { webdriver } from './signals/webdriver'; +import { userAgent } from './signals/userAgent'; +import { platform } from './signals/platform'; +import { cdp } from './signals/cdp'; +import { webGL } from './signals/webGL'; +import { playwright } from './signals/playwright'; +import { cpuCount } from './signals/cpuCount'; +import { maths } from './signals/maths'; +import { memory } from './signals/memory'; +import { etsl } from './signals/etsl'; +import { internationalization } from './signals/internationalization'; +import { screenResolution } from './signals/screenResolution'; +import { languages } from './signals/languages'; +import { webgpu } from './signals/webgpu'; +import { hasSeleniumProperties } from './signals/seleniumProperties'; +import { webdriverWritable } from './signals/webdriverWritable'; +import { highEntropyValues } from './signals/highEntropyValues'; +import { plugins } from './signals/plugins'; +import { multimediaDevices } from './signals/multimediaDevices'; +import { iframe } from './signals/iframe'; +import { worker } from './signals/worker'; +import { toSourceError } from './signals/toSourceError'; +import { mediaCodecs } from './signals/mediaCodecs'; +import { canvas } from './signals/canvas'; +import { navigatorPropertyDescriptors } from './signals/navigatorPropertyDescriptors'; +import { nonce } from './signals/nonce'; +import { time } from './signals/time'; +import { pageURL } from './signals/url'; +import { hasContextMismatch } from './detections/hasContextMismatch'; +import { browserExtensions } from './signals/browserExtensions'; +import { browserFeatures } from './signals/browserFeatures'; +import { mediaQueries } from './signals/mediaQueries'; + +// Fast Bot Detection tests +import { hasHeadlessChromeScreenResolution } from './detections/hasHeadlessChromeScreenResolution'; +import { hasWebdriver } from './detections/hasWebdriver'; +import { hasSeleniumProperty } from './detections/hasSeleniumProperty'; +import { hasCDP } from './detections/hasCDP'; +import { hasPlaywright } from './detections/hasPlaywright'; +import { hasImpossibleDeviceMemory } from './detections/hasImpossibleDeviceMemory'; +import { hasHighCPUCount } from './detections/hasHighCPUCount'; +import { hasMissingChromeObject } from './detections/hasMissingChromeObject'; +import { hasWebdriverIframe } from './detections/hasWebdriverIframe'; +import { hasWebdriverWorker } from './detections/hasWebdriverWorker'; +import { hasMismatchWebGLInWorker } from './detections/hasMismatchWebGLInWorker'; +import { hasMismatchPlatformWorker } from './detections/hasMismatchPlatformWorker'; +import { hasMismatchPlatformIframe } from './detections/hasMismatchPlatformIframe'; +import { hasWebdriverWritable } from './detections/hasWebdriverWritable'; +import { hasSwiftshaderRenderer } from './detections/hasSwiftshaderRenderer'; +import { hasUTCTimezone } from './detections/hasUTCTimezone'; +import { hasMismatchLanguages } from './detections/hasMismatchLanguages'; +import { hasInconsistentEtsl } from './detections/hasInconsistentEtsl'; +import { hasBotUserAgent } from './detections/hasBotUserAgent'; +import { hasGPUMismatch } from './detections/hasGPUMismatch'; +import { hasPlatformMismatch } from './detections/hasPlatformMismatch'; + +import { ERROR, HIGH, INIT, LOW, MEDIUM, SKIPPED, hashCode } from './signals/utils'; +import { encryptString } from './crypto-helpers'; +import { Fingerprint, FastBotDetectionDetails, DetectionRule, CollectFingerprintOptions } from './types'; + + +class FingerprintScanner { + private fingerprint: Fingerprint; + + constructor() { + this.fingerprint = { + signals: { + // Automation/Bot detection signals + automation: { + webdriver: INIT, + webdriverWritable: INIT, + selenium: INIT, + cdp: INIT, + playwright: INIT, + navigatorPropertyDescriptors: INIT, + }, + // Device hardware characteristics + device: { + cpuCount: INIT, + memory: INIT, + platform: INIT, + screenResolution: { + width: INIT, + height: INIT, + pixelDepth: INIT, + colorDepth: INIT, + availableWidth: INIT, + availableHeight: INIT, + innerWidth: INIT, + innerHeight: INIT, + hasMultipleDisplays: INIT, + }, + multimediaDevices: { + speakers: INIT, + microphones: INIT, + webcams: INIT, + }, + mediaQueries: { + prefersColorScheme: INIT, + prefersReducedMotion: INIT, + prefersReducedTransparency: INIT, + colorGamut: INIT, + pointer: INIT, + anyPointer: INIT, + hover: INIT, + anyHover: INIT, + colorDepth: INIT, + }, + }, + // Browser identity & features + browser: { + userAgent: INIT, + features: { + bitmask: INIT, + chrome: INIT, + brave: INIT, + applePaySupport: INIT, + opera: INIT, + serial: INIT, + attachShadow: INIT, + caches: INIT, + webAssembly: INIT, + buffer: INIT, + showModalDialog: INIT, + safari: INIT, + webkitPrefixedFunction: INIT, + mozPrefixedFunction: INIT, + usb: INIT, + browserCapture: INIT, + paymentRequestUpdateEvent: INIT, + pressureObserver: INIT, + audioSession: INIT, + selectAudioOutput: INIT, + barcodeDetector: INIT, + battery: INIT, + devicePosture: INIT, + documentPictureInPicture: INIT, + eyeDropper: INIT, + editContext: INIT, + fencedFrame: INIT, + sanitizer: INIT, + otpCredential: INIT, + }, + plugins: { + isValidPluginArray: INIT, + pluginCount: INIT, + pluginNamesHash: INIT, + pluginConsistency1: INIT, + pluginOverflow: INIT, + }, + extensions: { + bitmask: INIT, + extensions: INIT, + }, + highEntropyValues: { + architecture: INIT, + bitness: INIT, + brands: INIT, + mobile: INIT, + model: INIT, + platform: INIT, + platformVersion: INIT, + uaFullVersion: INIT, + }, + etsl: INIT, + maths: INIT, + toSourceError: { + toSourceError: INIT, + hasToSource: INIT, + }, + }, + // Graphics & rendering + graphics: { + webGL: { + vendor: INIT, + renderer: INIT, + }, + webgpu: { + vendor: INIT, + architecture: INIT, + device: INIT, + description: INIT, + }, + canvas: { + hasModifiedCanvas: INIT, + canvasFingerprint: INIT, + }, + }, + // Media codecs (at root level) + codecs: { + audioCanPlayTypeHash: INIT, + videoCanPlayTypeHash: INIT, + audioMediaSourceHash: INIT, + videoMediaSourceHash: INIT, + rtcAudioCapabilitiesHash: INIT, + rtcVideoCapabilitiesHash: INIT, + hasMediaSource: INIT, + }, + // Locale & internationalization + locale: { + internationalization: { + timezone: INIT, + localeLanguage: INIT, + }, + languages: { + languages: INIT, + language: INIT, + }, + }, + // Isolated execution contexts + contexts: { + iframe: { + webdriver: INIT, + userAgent: INIT, + platform: INIT, + memory: INIT, + cpuCount: INIT, + language: INIT, + }, + webWorker: { + webdriver: INIT, + userAgent: INIT, + platform: INIT, + memory: INIT, + cpuCount: INIT, + language: INIT, + vendor: INIT, + renderer: INIT, + }, + }, + }, + fsid: INIT, + nonce: INIT, + time: INIT, + url: INIT, + fastBotDetection: false, + fastBotDetectionDetails: { + headlessChromeScreenResolution: { detected: false, severity: 'high' }, + hasWebdriver: { detected: false, severity: 'high' }, + hasWebdriverWritable: { detected: false, severity: 'high' }, + hasSeleniumProperty: { detected: false, severity: 'high' }, + hasCDP: { detected: false, severity: 'high' }, + hasPlaywright: { detected: false, severity: 'high' }, + hasImpossibleDeviceMemory: { detected: false, severity: 'high' }, + hasHighCPUCount: { detected: false, severity: 'high' }, + hasMissingChromeObject: { detected: false, severity: 'high' }, + hasWebdriverIframe: { detected: false, severity: 'high' }, + hasWebdriverWorker: { detected: false, severity: 'high' }, + hasMismatchWebGLInWorker: { detected: false, severity: 'high' }, + hasMismatchPlatformIframe: { detected: false, severity: 'high' }, + hasMismatchPlatformWorker: { detected: false, severity: 'high' }, + hasSwiftshaderRenderer: { detected: false, severity: 'low' }, + hasUTCTimezone: { detected: false, severity: 'medium' }, + hasMismatchLanguages: { detected: false, severity: 'low' }, + hasInconsistentEtsl: { detected: false, severity: 'high' }, + hasBotUserAgent: { detected: false, severity: 'high' }, + hasGPUMismatch: { detected: false, severity: 'high' }, + hasPlatformMismatch: { detected: false, severity: 'high' }, + }, + }; + } + + private async collectSignal(signal: () => any) { + try { + return await signal(); + } catch (e) { + return ERROR; + } + } + + /** + * Generate a JA4-inspired fingerprint scanner ID + * Format: FS1________ + * + * Each section is delimited by '_', allowing partial matching. + * Sections use the pattern: h where applicable. + * Bitmasks are extensible - new boolean fields are appended without breaking existing positions. + * + * Sections: + * - det: fastBotDetectionDetails bitmask (21 bits: headlessChromeScreenResolution, hasWebdriver, + * hasWebdriverWritable, hasSeleniumProperty, hasCDP, hasPlaywright, hasImpossibleDeviceMemory, + * hasHighCPUCount, hasMissingChromeObject, hasWebdriverIframe, hasWebdriverWorker, + * hasMismatchWebGLInWorker, hasMismatchPlatformIframe, hasMismatchPlatformWorker, + * hasMismatchLanguages, hasInconsistentEtsl, hasBotUserAgent, hasGPUMismatch, hasPlatformMismatch) + * - auto: automation bitmask (5 bits: webdriver, webdriverWritable, selenium, cdp, playwright) + hash + * - dev: WIDTHxHEIGHT + cpu + mem + device bitmask + hash of all device signals + * - brw: features.bitmask + extensions.bitmask + plugins bitmask (3 bits) + hash of browser signals + * - gfx: canvas bitmask (1 bit: hasModifiedCanvas) + hash of all graphics signals + * - cod: codecs bitmask (1 bit: hasMediaSource) + hash of all codec hashes + * - loc: language code (2 chars) + language count + hash of locale signals + * - ctx: context mismatch bitmask (2 bits: iframe, worker) + hash of all context signals + */ + private generateFingerprintScannerId(): string { + try { + const s = this.fingerprint.signals; + const det = this.fingerprint.fastBotDetectionDetails; + + // Section 1: Version + const version = 'FS1'; + + // Section 2: Detection bitmask - all 21 fastBotDetectionDetails booleans + // Order matches FastBotDetectionDetails interface for consistency + const detBitmask = [ + det.headlessChromeScreenResolution.detected, + det.hasWebdriver.detected, + det.hasWebdriverWritable.detected, + det.hasSeleniumProperty.detected, + det.hasCDP.detected, + det.hasPlaywright.detected, + det.hasImpossibleDeviceMemory.detected, + det.hasHighCPUCount.detected, + det.hasMissingChromeObject.detected, + det.hasWebdriverIframe.detected, + det.hasWebdriverWorker.detected, + det.hasMismatchWebGLInWorker.detected, + det.hasMismatchPlatformIframe.detected, + det.hasMismatchPlatformWorker.detected, + det.hasSwiftshaderRenderer.detected, + det.hasUTCTimezone.detected, + det.hasMismatchLanguages.detected, + det.hasInconsistentEtsl.detected, + det.hasBotUserAgent.detected, + det.hasGPUMismatch.detected, + det.hasPlatformMismatch.detected, + // Add other detection rules output here + ].map(b => b ? '1' : '0').join(''); + const detSection = detBitmask; + + // Section 3: Automation - bitmask + hash of non-boolean fields + const autoBitmask = [ + s.automation.webdriver === true, + s.automation.webdriverWritable === true, + s.automation.selenium === true, + s.automation.cdp === true, + s.automation.playwright === true, + ].map(b => b ? '1' : '0').join(''); + const autoHash = hashCode(String(s.automation.navigatorPropertyDescriptors)).slice(0, 4); + const autoSection = `${autoBitmask}h${autoHash}`; + + // Section 4: Device - screen dims + cpu + mem + bitmask + hash + const width = typeof s.device.screenResolution.width === 'number' ? s.device.screenResolution.width : 0; + const height = typeof s.device.screenResolution.height === 'number' ? s.device.screenResolution.height : 0; + const cpu = typeof s.device.cpuCount === 'number' ? String(s.device.cpuCount).padStart(2, '0') : '00'; + const mem = typeof s.device.memory === 'number' ? String(Math.round(s.device.memory)).padStart(2, '0') : '00'; + const devBitmask = [ + s.device.screenResolution.hasMultipleDisplays === true, + s.device.mediaQueries.prefersReducedMotion === true, + s.device.mediaQueries.prefersReducedTransparency === true, + s.device.mediaQueries.hover === true, + s.device.mediaQueries.anyHover === true, + ].map(b => b ? '1' : '0').join(''); + const devStr = [ + s.device.platform, + s.device.screenResolution.pixelDepth, + s.device.screenResolution.colorDepth, + s.device.multimediaDevices.speakers, + s.device.multimediaDevices.microphones, + s.device.multimediaDevices.webcams, + s.device.mediaQueries.prefersColorScheme, + s.device.mediaQueries.colorGamut, + s.device.mediaQueries.pointer, + s.device.mediaQueries.anyPointer, + s.device.mediaQueries.colorDepth, + ].map(v => String(v)).join('|'); + const devHash = hashCode(devStr).slice(0, 6); + const devSection = `${width}x${height}c${cpu}m${mem}b${devBitmask}h${devHash}`; + + // Section 5: Browser - use existing bitmasks + plugins bitmask + hash + const featuresBitmask = typeof s.browser.features.bitmask === 'string' ? s.browser.features.bitmask : '0000000000'; + const extensionsBitmask = typeof s.browser.extensions.bitmask === 'string' ? s.browser.extensions.bitmask : '00000000'; + const pluginsBitmask = [ + s.browser.plugins.isValidPluginArray === true, + s.browser.plugins.pluginConsistency1 === true, + s.browser.plugins.pluginOverflow === true, + s.browser.toSourceError.hasToSource === true, + ].map(b => b ? '1' : '0').join(''); + const brwStr = [ + s.browser.userAgent, + s.browser.etsl, + s.browser.maths, + s.browser.plugins.pluginCount, + s.browser.plugins.pluginNamesHash, + s.browser.toSourceError.toSourceError, + s.browser.highEntropyValues.architecture, + s.browser.highEntropyValues.bitness, + s.browser.highEntropyValues.platform, + s.browser.highEntropyValues.platformVersion, + s.browser.highEntropyValues.uaFullVersion, + s.browser.highEntropyValues.mobile, + ].map(v => String(v)).join('|'); + const brwHash = hashCode(brwStr).slice(0, 6); + const brwSection = `f${featuresBitmask}e${extensionsBitmask}p${pluginsBitmask}h${brwHash}`; + + // Section 6: Graphics - bitmask + hash + const gfxBitmask = [ + s.graphics.canvas.hasModifiedCanvas === true, + ].map(b => b ? '1' : '0').join(''); + const gfxStr = [ + s.graphics.webGL.vendor, + s.graphics.webGL.renderer, + s.graphics.webgpu.vendor, + s.graphics.webgpu.architecture, + s.graphics.webgpu.device, + s.graphics.webgpu.description, + s.graphics.canvas.canvasFingerprint, + ].map(v => String(v)).join('|'); + const gfxHash = hashCode(gfxStr).slice(0, 6); + const gfxSection = `${gfxBitmask}h${gfxHash}`; + + // Section 7: Codecs - bitmask + hash of all codec hashes + const codBitmask = [ + s.codecs.hasMediaSource === true, + ].map(b => b ? '1' : '0').join(''); + const codStr = [ + s.codecs.audioCanPlayTypeHash, + s.codecs.videoCanPlayTypeHash, + s.codecs.audioMediaSourceHash, + s.codecs.videoMediaSourceHash, + s.codecs.rtcAudioCapabilitiesHash, + s.codecs.rtcVideoCapabilitiesHash, + ].map(v => String(v)).join('|'); + const codHash = hashCode(codStr).slice(0, 6); + const codSection = `${codBitmask}h${codHash}`; + + // Section 8: Locale - language code + count + timezone + hash + const primaryLang = typeof s.locale.languages.language === 'string' + ? s.locale.languages.language.slice(0, 2).toLowerCase() + : 'xx'; + const langCount = Array.isArray(s.locale.languages.languages) ? s.locale.languages.languages.length : 0; + // Sanitize timezone: replace / and spaces with - for fingerprint compatibility + const rawTimezone = typeof s.locale.internationalization.timezone === 'string' + ? s.locale.internationalization.timezone + : 'unknown'; + const sanitizedTimezone = rawTimezone.replace(/[\/\s]/g, '-'); + const locStr = [ + s.locale.internationalization.timezone, + s.locale.internationalization.localeLanguage, + Array.isArray(s.locale.languages.languages) ? s.locale.languages.languages.join(',') : s.locale.languages.languages, + s.locale.languages.language, + ].map(v => String(v)).join('|'); + const locHash = hashCode(locStr).slice(0, 4); + const locSection = `${primaryLang}${langCount}t${sanitizedTimezone}_h${locHash}`; + + // Section 9: Contexts - mismatch bitmask + hash of all context signals + const ctxBitmask = [ + hasContextMismatch(this.fingerprint, 'iframe'), + hasContextMismatch(this.fingerprint, 'worker'), + s.contexts.iframe.webdriver === true, + s.contexts.webWorker.webdriver === true, + ].map(b => b ? '1' : '0').join(''); + const ctxStr = [ + s.contexts.iframe.userAgent, + s.contexts.iframe.platform, + s.contexts.iframe.memory, + s.contexts.iframe.cpuCount, + s.contexts.iframe.language, + s.contexts.webWorker.userAgent, + s.contexts.webWorker.platform, + s.contexts.webWorker.memory, + s.contexts.webWorker.cpuCount, + s.contexts.webWorker.language, + s.contexts.webWorker.vendor, + s.contexts.webWorker.renderer, + ].map(v => String(v)).join('|'); + const ctxHash = hashCode(ctxStr).slice(0, 6); + const ctxSection = `${ctxBitmask}h${ctxHash}`; + + return [ + version, + detSection, + autoSection, + devSection, + brwSection, + gfxSection, + codSection, + locSection, + ctxSection, + ].join('_'); + } catch (e) { + console.error('Error generating fingerprint scanner id', e); + return ERROR; + } + } + + private async encryptFingerprint(fingerprint: string) { + // Key is injected at build time via Vite's define option + // Customers run: npx fpscanner build --key=their-key + const key = __FP_ENCRYPTION_KEY__; + + // Runtime safety check: warn if using the default sentinel key + // Use a dynamic check that prevents build-time optimization + if (key.length > 20 && key.indexOf('DEFAULT') > 0 && key.indexOf('FPSCANNER') > 0) { + console.warn( + '[fpscanner] WARNING: Using default encryption key! ' + + 'Run "npx fpscanner build --key=your-secret-key" to inject your own key. ' + + 'See: https://github.com/antoinevastel/fpscanner#advanced-custom-builds' + ); + } + + const enc = await encryptString(JSON.stringify(fingerprint), key); + + return enc; + } + + /** + * Detection rules with name and severity. + */ + private getDetectionRules(): DetectionRule[] { + return [ + { name: 'headlessChromeScreenResolution', severity: HIGH, test: hasHeadlessChromeScreenResolution }, + { name: 'hasWebdriver', severity: HIGH, test: hasWebdriver }, + { name: 'hasWebdriverWritable', severity: HIGH, test: hasWebdriverWritable }, + { name: 'hasSeleniumProperty', severity: HIGH, test: hasSeleniumProperty }, + { name: 'hasCDP', severity: HIGH, test: hasCDP }, + { name: 'hasPlaywright', severity: HIGH, test: hasPlaywright }, + { name: 'hasImpossibleDeviceMemory', severity: HIGH, test: hasImpossibleDeviceMemory }, + { name: 'hasHighCPUCount', severity: HIGH, test: hasHighCPUCount }, + { name: 'hasMissingChromeObject', severity: HIGH, test: hasMissingChromeObject }, + { name: 'hasWebdriverIframe', severity: HIGH, test: hasWebdriverIframe }, + { name: 'hasWebdriverWorker', severity: HIGH, test: hasWebdriverWorker }, + { name: 'hasMismatchWebGLInWorker', severity: HIGH, test: hasMismatchWebGLInWorker }, + { name: 'hasMismatchPlatformIframe', severity: HIGH, test: hasMismatchPlatformIframe }, + { name: 'hasMismatchPlatformWorker', severity: HIGH, test: hasMismatchPlatformWorker }, + { name: 'hasSwiftshaderRenderer', severity: LOW, test: hasSwiftshaderRenderer }, + { name: 'hasUTCTimezone', severity: MEDIUM, test: hasUTCTimezone }, + { name: 'hasMismatchLanguages', severity: LOW, test: hasMismatchLanguages }, + { name: 'hasInconsistentEtsl', severity: HIGH, test: hasInconsistentEtsl }, + { name: 'hasBotUserAgent', severity: HIGH, test: hasBotUserAgent }, + { name: 'hasGPUMismatch', severity: HIGH, test: hasGPUMismatch }, + { name: 'hasPlatformMismatch', severity: HIGH, test: hasPlatformMismatch }, + ]; + } + + private runDetectionRules(): FastBotDetectionDetails { + const rules = this.getDetectionRules(); + const results: FastBotDetectionDetails = { + headlessChromeScreenResolution: { detected: false, severity: 'high' }, + hasWebdriver: { detected: false, severity: 'high' }, + hasWebdriverWritable: { detected: false, severity: 'high' }, + hasSeleniumProperty: { detected: false, severity: 'high' }, + hasCDP: { detected: false, severity: 'high' }, + hasPlaywright: { detected: false, severity: 'high' }, + hasImpossibleDeviceMemory: { detected: false, severity: 'high' }, + hasHighCPUCount: { detected: false, severity: 'high' }, + hasMissingChromeObject: { detected: false, severity: 'high' }, + hasWebdriverIframe: { detected: false, severity: 'high' }, + hasWebdriverWorker: { detected: false, severity: 'high' }, + hasMismatchWebGLInWorker: { detected: false, severity: 'high' }, + hasMismatchPlatformIframe: { detected: false, severity: 'high' }, + hasMismatchPlatformWorker: { detected: false, severity: 'high' }, + hasSwiftshaderRenderer: { detected: false, severity: 'low' }, + hasUTCTimezone: { detected: false, severity: 'medium' }, + hasMismatchLanguages: { detected: false, severity: 'low' }, + hasInconsistentEtsl: { detected: false, severity: 'high' }, + hasBotUserAgent: { detected: false, severity: 'high' }, + hasGPUMismatch: { detected: false, severity: 'high' }, + hasPlatformMismatch: { detected: false, severity: 'high' }, + }; + + for (const rule of rules) { + try { + const detected = rule.test(this.fingerprint); + (results as any)[rule.name] = { detected, severity: rule.severity }; + } catch (e) { + (results as any)[rule.name] = { detected: false, severity: rule.severity }; + } + } + + return results; + } + + async collectFingerprint(options: CollectFingerprintOptions = { encrypt: true }) { + const { encrypt = true, skipWorker = false } = options; + const s = this.fingerprint.signals; + + // Define all signal collection tasks to run in parallel + const signalTasks = { + // Automation signals + webdriver: this.collectSignal(webdriver), + webdriverWritable: this.collectSignal(webdriverWritable), + selenium: this.collectSignal(hasSeleniumProperties), + cdp: this.collectSignal(cdp), + playwright: this.collectSignal(playwright), + navigatorPropertyDescriptors: this.collectSignal(navigatorPropertyDescriptors), + // Device signals + cpuCount: this.collectSignal(cpuCount), + memory: this.collectSignal(memory), + platform: this.collectSignal(platform), + screenResolution: this.collectSignal(screenResolution), + multimediaDevices: this.collectSignal(multimediaDevices), + mediaQueries: this.collectSignal(mediaQueries), + // Browser signals + userAgent: this.collectSignal(userAgent), + browserFeatures: this.collectSignal(browserFeatures), + plugins: this.collectSignal(plugins), + browserExtensions: this.collectSignal(browserExtensions), + highEntropyValues: this.collectSignal(highEntropyValues), + etsl: this.collectSignal(etsl), + maths: this.collectSignal(maths), + toSourceError: this.collectSignal(toSourceError), + // Graphics signals + webGL: this.collectSignal(webGL), + webgpu: this.collectSignal(webgpu), + canvas: this.collectSignal(canvas), + // Codecs + mediaCodecs: this.collectSignal(mediaCodecs), + // Locale signals + internationalization: this.collectSignal(internationalization), + languages: this.collectSignal(languages), + // Context signals + iframe: this.collectSignal(iframe), + webWorker: skipWorker + ? Promise.resolve({ + webdriver: SKIPPED, + userAgent: SKIPPED, + platform: SKIPPED, + memory: SKIPPED, + cpuCount: SKIPPED, + language: SKIPPED, + vendor: SKIPPED, + renderer: SKIPPED, + }) + : this.collectSignal(worker), + // Meta signals + nonce: this.collectSignal(nonce), + time: this.collectSignal(time), + url: this.collectSignal(pageURL), + }; + + // Run all signal collections in parallel + const keys = Object.keys(signalTasks) as (keyof typeof signalTasks)[]; + const results = await Promise.all(Object.values(signalTasks)); + const r = Object.fromEntries(keys.map((key, i) => [key, results[i]])) as Record; + + // Assign results to fingerprint structure + // Automation + s.automation.webdriver = r.webdriver; + s.automation.webdriverWritable = r.webdriverWritable; + s.automation.selenium = r.selenium; + s.automation.cdp = r.cdp; + s.automation.playwright = r.playwright; + s.automation.navigatorPropertyDescriptors = r.navigatorPropertyDescriptors; + // Device + s.device.cpuCount = r.cpuCount; + s.device.memory = r.memory; + s.device.platform = r.platform; + s.device.screenResolution = r.screenResolution; + s.device.multimediaDevices = r.multimediaDevices; + s.device.mediaQueries = r.mediaQueries; + // Browser + s.browser.userAgent = r.userAgent; + s.browser.features = r.browserFeatures; + s.browser.plugins = r.plugins; + s.browser.extensions = r.browserExtensions; + s.browser.highEntropyValues = r.highEntropyValues; + s.browser.etsl = r.etsl; + s.browser.maths = r.maths; + s.browser.toSourceError = r.toSourceError; + // Graphics + s.graphics.webGL = r.webGL; + s.graphics.webgpu = r.webgpu; + s.graphics.canvas = r.canvas; + // Codecs + s.codecs = r.mediaCodecs; + // Locale + s.locale.internationalization = r.internationalization; + s.locale.languages = r.languages; + // Contexts + s.contexts.iframe = r.iframe; + s.contexts.webWorker = r.webWorker; + // Meta + this.fingerprint.nonce = r.nonce; + this.fingerprint.time = r.time; + this.fingerprint.url = r.url; + + // Run detection rules (needed for fsid generation) + this.fingerprint.fastBotDetectionDetails = this.runDetectionRules(); + + // fastBotDetection = true if any detection rule was triggered + this.fingerprint.fastBotDetection = Object.values(this.fingerprint.fastBotDetectionDetails) + .some(result => result.detected); + + // Generate fsid after all signals and detections are collected + this.fingerprint.fsid = this.generateFingerprintScannerId(); + + if (encrypt) { + const encryptedFingerprint = await this.encryptFingerprint(JSON.stringify(this.fingerprint)); + return encryptedFingerprint; + } + + // Return the raw fingerprint if no encryption is requested + return this.fingerprint; + } +} + +export default FingerprintScanner; +export * from './types'; \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/browserExtensions.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/browserExtensions.ts new file mode 100644 index 00000000000..eb7dc665a4c --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/browserExtensions.ts @@ -0,0 +1,57 @@ +import { INIT } from "./utils"; + +export function browserExtensions() { + const browserExtensionsData = { + bitmask: INIT, + extensions: [] as string[], + }; + + const hasGrammarly = document.body.hasAttribute('data-gr-ext-installed'); + const hasMetamask = typeof (window as any).ethereum !=='undefined'; + const hasCouponBirds = document.getElementById('coupon-birds-drop-div') !== null; + const hasDeepL = document.querySelector('deepl-input-controller') !== null; + const hasMonicaAI = document.getElementById('monica-content-root') !== null; + const hasSiderAI = document.querySelector('chatgpt-sidebar') !== null; + const hasRequestly = typeof (window as any).__REQUESTLY__ !== 'undefined'; + const hasVeepn = Array.from(document.querySelectorAll('*')) + .filter(el => el.tagName.toLowerCase().startsWith('veepn-')).length > 0; + + browserExtensionsData.bitmask = [ + hasGrammarly ? '1' : '0', + hasMetamask ? '1' : '0', + hasCouponBirds ? '1' : '0', + hasDeepL ? '1' : '0', + hasMonicaAI ? '1' : '0', + hasSiderAI ? '1' : '0', + hasRequestly ? '1' : '0', + hasVeepn ? '1' : '0', + ].join(''); + + + if (hasGrammarly) { + browserExtensionsData.extensions.push('grammarly'); + } + if (hasMetamask) { + browserExtensionsData.extensions.push('metamask'); + } + if (hasCouponBirds) { + browserExtensionsData.extensions.push('coupon-birds'); + } + if (hasDeepL) { + browserExtensionsData.extensions.push('deepl'); + } + if (hasMonicaAI) { + browserExtensionsData.extensions.push('monica-ai'); + } + if (hasSiderAI) { + browserExtensionsData.extensions.push('sider-ai'); + } + if (hasRequestly) { + browserExtensionsData.extensions.push('requestly'); + } + if (hasVeepn) { + browserExtensionsData.extensions.push('veepn'); + } + + return browserExtensionsData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/browserFeatures.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/browserFeatures.ts new file mode 100644 index 00000000000..2eaf71415cf --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/browserFeatures.ts @@ -0,0 +1,50 @@ +import { INIT } from "./utils"; + +function safeCheck(check: () => boolean): boolean { + try { + return check(); + } catch { + return false; + } +} + +export function browserFeatures() { + const browserFeaturesData = { + bitmask: INIT, + chrome: safeCheck(() => 'chrome' in window), + brave: safeCheck(() => 'brave' in navigator), + applePaySupport: safeCheck(() => 'ApplePaySetup' in window), + opera: safeCheck(() => (typeof (window as any).opr !== "undefined") || + (typeof (window as any).onoperadetachedviewchange === "object")), + serial: safeCheck(() => (window.navigator as any).serial !== undefined), + attachShadow: safeCheck(() => !!Element.prototype.attachShadow), + caches: safeCheck(() => !!window.caches), + webAssembly: safeCheck(() => !!window.WebAssembly && !!window.WebAssembly.instantiate), + buffer: safeCheck(() => 'Buffer' in window), + showModalDialog: safeCheck(() => 'showModalDialog' in window), + safari: safeCheck(() => 'safari' in window), + webkitPrefixedFunction: safeCheck(() => 'webkitCancelAnimationFrame' in window), + mozPrefixedFunction: safeCheck(() => 'mozGetUserMedia' in navigator), + usb: safeCheck(() => typeof (window as any).USB === 'function'), + browserCapture: safeCheck(() => typeof (window as any).BrowserCaptureMediaStreamTrack === 'function'), + paymentRequestUpdateEvent: safeCheck(() => typeof (window as any).PaymentRequestUpdateEvent === 'function'), + pressureObserver: safeCheck(() => typeof (window as any).PressureObserver === 'function'), + audioSession: safeCheck(() => 'audioSession' in navigator), + selectAudioOutput: safeCheck(() => typeof navigator !== 'undefined' && typeof navigator.mediaDevices !== 'undefined' && typeof (navigator.mediaDevices as any).selectAudioOutput === 'function'), + barcodeDetector: safeCheck(() => 'BarcodeDetector' in window), + battery: safeCheck(() => 'getBattery' in navigator), + devicePosture: safeCheck(() => 'DevicePosture' in window), + documentPictureInPicture: safeCheck(() => 'documentPictureInPicture' in window), + eyeDropper: safeCheck(() => 'EyeDropper' in window), + editContext: safeCheck(() => 'EditContext' in window), + fencedFrame: safeCheck(() => 'FencedFrameConfig' in window), + sanitizer: safeCheck(() => 'Sanitizer' in window), + otpCredential: safeCheck(() => 'OTPCredential' in window), + }; + + // set bitmask to 0/1 string based on browserFeaturesData, exclude bitmask property itself (you need to filter on the key) + // use the filter function to exclude the bitmask property itself + const bitmask = Object.keys(browserFeaturesData).filter((key) => key !== 'bitmask').map(key => (browserFeaturesData as any)[key] ? '1' : '0').join(''); + browserFeaturesData.bitmask = bitmask; + return browserFeaturesData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/canvas.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/canvas.ts new file mode 100644 index 00000000000..d01e2d69b5c --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/canvas.ts @@ -0,0 +1,84 @@ +import { ERROR, INIT, hashCode } from './utils'; +import { SignalValue } from '../types'; + +async function hasModifiedCanvas(): Promise> { + return new Promise((resolve) => { + + try { + const img = new Image(); + const ctx = document.createElement('canvas').getContext('2d') as CanvasRenderingContext2D; + img.onload = () => { + ctx.drawImage(img, 0, 0); + resolve(ctx.getImageData(0, 0, 1, 1).data.filter(x => x === 0).length != 4); + }; + + img.onerror = () => { + resolve(ERROR); + }; + img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII='; + } catch (e) { + resolve(ERROR); + } + }); +} + + +function getCanvasFingerprint(): SignalValue { + var canvas = document.createElement('canvas'); + canvas.width = 400; + canvas.height = 200; + canvas.style.display = "inline"; + var context = canvas.getContext("2d") as CanvasRenderingContext2D; + + try { + context.rect(0, 0, 10, 10); + context.rect(2, 2, 6, 6); + context.textBaseline = "alphabetic"; + context.fillStyle = "#f60"; + context.fillRect(125, 1, 62, 20); + context.fillStyle = "#069"; + context.font = "11pt no-real-font-123"; + context.fillText("Cwm fjordbank glyphs vext quiz, 😃", 2, 15); + context.fillStyle = "rgba(102, 204, 0, 0.2)"; + context.font = "18pt Arial"; + context.fillText("Cwm fjordbank glyphs vext quiz, 😃", 4, 45); + + context.globalCompositeOperation = "multiply"; + context.fillStyle = "rgb(255,0,255)"; + context.beginPath(); + context.arc(50, 50, 50, 0, 2 * Math.PI, !0); + context.closePath(); + context.fill(); + context.fillStyle = "rgb(0,255,255)"; + context.beginPath(); + context.arc(100, 50, 50, 0, 2 * Math.PI, !0); + context.closePath(); + context.fill(); + context.fillStyle = "rgb(255,255,0)"; + context.beginPath(); + context.arc(75, 100, 50, 0, 2 * Math.PI, !0); + context.closePath(); + context.fill(); + context.fillStyle = "rgb(255,0,255)"; + context.arc(75, 75, 75, 0, 2 * Math.PI, !0); + context.arc(75, 75, 25, 0, 2 * Math.PI, !0); + context.fill("evenodd"); + return hashCode(canvas.toDataURL()); + + } catch (e) { + return ERROR; + } +} + +export async function canvas() { + const canvasData = { + hasModifiedCanvas: INIT as SignalValue, + canvasFingerprint: INIT as SignalValue, + }; + + canvasData.hasModifiedCanvas = await hasModifiedCanvas(); + + canvasData.canvasFingerprint = getCanvasFingerprint(); + + return canvasData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/cdp.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/cdp.ts new file mode 100644 index 00000000000..406117d87fb --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/cdp.ts @@ -0,0 +1,18 @@ +import { ERROR } from './utils'; + +export function cdp() { + try { + let wasAccessed = false; + const originalPrepareStackTrace = (Error as any).prepareStackTrace; + (Error as any).prepareStackTrace = function () { + wasAccessed = true; + return originalPrepareStackTrace; + }; + const err = new Error(''); + console.log(err); + + return wasAccessed; + } catch (e) { + return ERROR; + } +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/cpuCount.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/cpuCount.ts new file mode 100644 index 00000000000..4522d4fb5ac --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/cpuCount.ts @@ -0,0 +1,5 @@ +import { NA } from './utils'; + +export function cpuCount() { + return navigator.hardwareConcurrency || NA; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/etsl.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/etsl.ts new file mode 100644 index 00000000000..ce189b69320 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/etsl.ts @@ -0,0 +1,3 @@ +export function etsl() { + return eval.toString().length; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/highEntropyValues.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/highEntropyValues.ts new file mode 100644 index 00000000000..5a9eb7f0298 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/highEntropyValues.ts @@ -0,0 +1,48 @@ +import { ERROR, INIT, NA, setObjectValues } from "./utils"; + +export async function highEntropyValues() { + const navigator = window.navigator as any; + const highEntropyValues = { + architecture: INIT, + bitness: INIT, + brands: INIT, + mobile: INIT, + model: INIT, + platform: INIT, + platformVersion: INIT, + uaFullVersion: INIT, + }; + + if ('userAgentData' in navigator) { + try { + const ua = await navigator.userAgentData.getHighEntropyValues([ + "architecture", + "bitness", + "brands", + "mobile", + "model", + "platform", + "platformVersion", + "uaFullVersion" + ]); + + highEntropyValues.architecture = ua.architecture; + highEntropyValues.bitness = ua.bitness; + highEntropyValues.brands = ua.brands; + highEntropyValues.mobile = ua.mobile; + highEntropyValues.model = ua.model; + highEntropyValues.platform = ua.platform; + highEntropyValues.platformVersion = ua.platformVersion; + highEntropyValues.uaFullVersion = ua.uaFullVersion; + + + } catch (e) { + setObjectValues(highEntropyValues, ERROR); + } + + } else { + setObjectValues(highEntropyValues, NA); + } + + return highEntropyValues; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/iframe.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/iframe.ts new file mode 100644 index 00000000000..842bcd8dfd3 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/iframe.ts @@ -0,0 +1,42 @@ +import { ERROR, INIT, NA, setObjectValues } from './utils'; + +export function iframe() { + const iframeData = { + webdriver: INIT, + userAgent: INIT, + platform: INIT, + memory: INIT, + cpuCount: INIT, + language: INIT, + }; + const iframe = document.createElement('iframe'); + let iframeAdded = false; + + try { + iframe.style.display = 'none'; + iframe.src = 'about:blank'; + document.body.appendChild(iframe); + iframeAdded = true; + + const iframeWindowNavigator = (iframe.contentWindow?.navigator as any); + + iframeData.webdriver = iframeWindowNavigator.webdriver ?? false; + iframeData.userAgent = iframeWindowNavigator.userAgent ?? NA; + iframeData.platform = iframeWindowNavigator.platform ?? NA; + iframeData.memory = iframeWindowNavigator.deviceMemory ?? NA; + iframeData.cpuCount = iframeWindowNavigator.hardwareConcurrency ?? NA; + iframeData.language = iframeWindowNavigator.language ?? NA; + } catch (e) { + setObjectValues(iframeData, ERROR); + } finally { + if (iframeAdded) { + try { + document.body.removeChild(iframe); + } catch (_) { + // Ignore removal errors + } + } + } + + return iframeData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/internationalization.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/internationalization.ts new file mode 100644 index 00000000000..5e9622c173b --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/internationalization.ts @@ -0,0 +1,24 @@ +import { INIT, ERROR, NA } from "./utils"; + +export function internationalization() { + const internationalizationData = { + timezone: INIT, + localeLanguage: INIT, + }; + + try { + if (typeof Intl !== 'undefined' && typeof Intl.DateTimeFormat !== 'undefined') { + const dtfOptions = Intl.DateTimeFormat().resolvedOptions(); + internationalizationData.timezone = dtfOptions.timeZone; + internationalizationData.localeLanguage = dtfOptions.locale; + } else { + internationalizationData.timezone = NA; + internationalizationData.localeLanguage = NA; + } + } catch (e) { + internationalizationData.timezone = ERROR; + internationalizationData.localeLanguage = ERROR; + } + + return internationalizationData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/languages.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/languages.ts new file mode 100644 index 00000000000..619c0d14551 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/languages.ts @@ -0,0 +1,6 @@ +export function languages() { + return { + languages: navigator.languages, + language: navigator.language, + } +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/maths.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/maths.ts new file mode 100644 index 00000000000..ba3e2125bbd --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/maths.ts @@ -0,0 +1,30 @@ +import { hashCode } from './utils'; + +export function maths() { + const results: number[] = []; + const testValue = 0.123456789; + + // Math constants + const constants = ["E", "LN10", "LN2", "LOG10E", "LOG2E", "PI", "SQRT1_2", "SQRT2"]; + constants.forEach(function (name) { + try { + results.push((Math as any)[name]); + } catch (e) { + results.push(-1); + } + }); + + // Math functions (can reveal VM/browser differences) + const mathFunctions = ["tan", "sin", "exp", "atan", "acosh", "asinh", "atanh", "expm1", "log1p", "sinh"]; + + + mathFunctions.forEach(function (name) { + try { + results.push((Math as any)[name](testValue)); + } catch (e) { + results.push(-1); + } + }); + + return hashCode(results.map(String).join(",")); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/mediaCodecs.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/mediaCodecs.ts new file mode 100644 index 00000000000..48a4e2e8b7f --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/mediaCodecs.ts @@ -0,0 +1,120 @@ +import { ERROR, NA, hashCode, setObjectValues } from './utils'; + + +const AUDIO_CODECS = [ + 'audio/mp4; codecs="mp4a.40.2"', + 'audio/mpeg;', + 'audio/webm; codecs="vorbis"', + 'audio/ogg; codecs="vorbis"', + 'audio/wav; codecs="1"', + 'audio/ogg; codecs="speex"', + 'audio/ogg; codecs="flac"', + 'audio/3gpp; codecs="samr"', +]; + +const VIDEO_CODECS = [ + 'video/mp4; codecs="avc1.42E01E, mp4a.40.2"', + 'video/mp4; codecs="avc1.42E01E"', + 'video/mp4; codecs="avc1.58A01E"', + 'video/mp4; codecs="avc1.4D401E"', + 'video/mp4; codecs="avc1.64001E"', + 'video/mp4; codecs="mp4v.20.8"', + 'video/mp4; codecs="mp4v.20.240"', + 'video/webm; codecs="vp8"', + 'video/ogg; codecs="theora"', + 'video/ogg; codecs="dirac"', + 'video/3gpp; codecs="mp4v.20.8"', + 'video/x-matroska; codecs="theora"', +]; + + +function getCanPlayTypeSupport(codecs: string[], mediaType: 'audio' | 'video'): Record { + const result: Record = {}; + try { + const element = document.createElement(mediaType); + for (const codec of codecs) { + try { + result[codec] = element.canPlayType(codec) || null; + } catch { + result[codec] = null; + } + } + } catch { + for (const codec of codecs) { + result[codec] = null; + } + } + return result; +} + +function getMediaSourceSupport(codecs: string[]): Record { + const result: Record = {}; + const MediaSource = window.MediaSource; + + if (!MediaSource || typeof MediaSource.isTypeSupported !== 'function') { + for (const codec of codecs) { + result[codec] = null; + } + return result; + } + + for (const codec of codecs) { + try { + result[codec] = MediaSource.isTypeSupported(codec); + } catch { + result[codec] = null; + } + } + return result; +} + +function getRtcCapabilities(kind: 'audio' | 'video'): string | typeof NA | typeof ERROR { + try { + const RTCRtpReceiver = window.RTCRtpReceiver; + if (RTCRtpReceiver && typeof RTCRtpReceiver.getCapabilities === 'function') { + const capabilities = RTCRtpReceiver.getCapabilities(kind); + return hashCode(JSON.stringify(capabilities)); + } + return NA; + } catch (e) { + return ERROR; + } +} + +export function mediaCodecs() { + const mediaCodecsData = { + audioCanPlayTypeHash: NA as string | typeof NA | typeof ERROR, + videoCanPlayTypeHash: NA as string | typeof NA | typeof ERROR, + audioMediaSourceHash: NA as string | typeof NA | typeof ERROR, + videoMediaSourceHash: NA as string | typeof NA | typeof ERROR, + rtcAudioCapabilitiesHash: NA as string | typeof NA | typeof ERROR, + rtcVideoCapabilitiesHash: NA as string | typeof NA | typeof ERROR, + hasMediaSource: false, + }; + + try { + // Check MediaSource availability + mediaCodecsData.hasMediaSource = !!window.MediaSource; + + // canPlayType support - hash the results + const audioCanPlayType = getCanPlayTypeSupport(AUDIO_CODECS, 'audio'); + const videoCanPlayType = getCanPlayTypeSupport(VIDEO_CODECS, 'video'); + mediaCodecsData.audioCanPlayTypeHash = hashCode(JSON.stringify(audioCanPlayType)); + mediaCodecsData.videoCanPlayTypeHash = hashCode(JSON.stringify(videoCanPlayType)); + + // MediaSource.isTypeSupported - hash the results + const audioMediaSource = getMediaSourceSupport(AUDIO_CODECS); + const videoMediaSource = getMediaSourceSupport(VIDEO_CODECS); + mediaCodecsData.audioMediaSourceHash = hashCode(JSON.stringify(audioMediaSource)); + mediaCodecsData.videoMediaSourceHash = hashCode(JSON.stringify(videoMediaSource)); + + // RTCRtpReceiver.getCapabilities - already returns hash + mediaCodecsData.rtcAudioCapabilitiesHash = getRtcCapabilities('audio'); + mediaCodecsData.rtcVideoCapabilitiesHash = getRtcCapabilities('video'); + + } catch (e) { + setObjectValues(mediaCodecsData, ERROR); + } + + return mediaCodecsData; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/mediaQueries.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/mediaQueries.ts new file mode 100644 index 00000000000..f0cc8a5242a --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/mediaQueries.ts @@ -0,0 +1,85 @@ +import { ERROR, INIT, setObjectValues } from './utils'; + +export function mediaQueries() { + const mediaQueriesData = { + prefersColorScheme: INIT as string | null | typeof INIT | typeof ERROR, + prefersReducedMotion: INIT as boolean | typeof INIT | typeof ERROR, + prefersReducedTransparency: INIT as boolean | typeof INIT | typeof ERROR, + colorGamut: INIT as string | null | typeof INIT | typeof ERROR, + pointer: INIT as string | null | typeof INIT | typeof ERROR, + anyPointer: INIT as string | null | typeof INIT | typeof ERROR, + hover: INIT as boolean | typeof INIT | typeof ERROR, + anyHover: INIT as boolean | typeof INIT | typeof ERROR, + colorDepth: INIT as number | typeof INIT | typeof ERROR, + }; + + try { + // Prefers color scheme + if (window.matchMedia('(prefers-color-scheme: dark)').matches) { + mediaQueriesData.prefersColorScheme = 'dark'; + } else if (window.matchMedia('(prefers-color-scheme: light)').matches) { + mediaQueriesData.prefersColorScheme = 'light'; + } else { + mediaQueriesData.prefersColorScheme = null; + } + + // Prefers reduced motion + mediaQueriesData.prefersReducedMotion = window.matchMedia('(prefers-reduced-motion: reduce)').matches; + + // Prefers reduced transparency + mediaQueriesData.prefersReducedTransparency = window.matchMedia('(prefers-reduced-transparency: reduce)').matches; + + // Color gamut + if (window.matchMedia('(color-gamut: rec2020)').matches) { + mediaQueriesData.colorGamut = 'rec2020'; + } else if (window.matchMedia('(color-gamut: p3)').matches) { + mediaQueriesData.colorGamut = 'p3'; + } else if (window.matchMedia('(color-gamut: srgb)').matches) { + mediaQueriesData.colorGamut = 'srgb'; + } else { + mediaQueriesData.colorGamut = null; + } + + // Pointer + if (window.matchMedia('(pointer: fine)').matches) { + mediaQueriesData.pointer = 'fine'; + } else if (window.matchMedia('(pointer: coarse)').matches) { + mediaQueriesData.pointer = 'coarse'; + } else if (window.matchMedia('(pointer: none)').matches) { + mediaQueriesData.pointer = 'none'; + } else { + mediaQueriesData.pointer = null; + } + + // Any pointer + if (window.matchMedia('(any-pointer: fine)').matches) { + mediaQueriesData.anyPointer = 'fine'; + } else if (window.matchMedia('(any-pointer: coarse)').matches) { + mediaQueriesData.anyPointer = 'coarse'; + } else if (window.matchMedia('(any-pointer: none)').matches) { + mediaQueriesData.anyPointer = 'none'; + } else { + mediaQueriesData.anyPointer = null; + } + + // Hover + mediaQueriesData.hover = window.matchMedia('(hover: hover)').matches; + + // Any hover + mediaQueriesData.anyHover = window.matchMedia('(any-hover: hover)').matches; + + // Color depth - find the maximum supported color depth + let maxColorDepth = 0; + for (let c = 0; c <= 16; c++) { + if (window.matchMedia(`(color: ${c})`).matches) { + maxColorDepth = c; + } + } + mediaQueriesData.colorDepth = maxColorDepth; + + } catch (e) { + setObjectValues(mediaQueriesData, ERROR); + } + + return mediaQueriesData; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/memory.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/memory.ts new file mode 100644 index 00000000000..06023c22e2e --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/memory.ts @@ -0,0 +1,5 @@ +import { NA } from "./utils"; + +export function memory() { + return (navigator as any).deviceMemory || NA; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/multimediaDevices.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/multimediaDevices.ts new file mode 100644 index 00000000000..02793cce0ad --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/multimediaDevices.ts @@ -0,0 +1,34 @@ +import { NA, setObjectValues } from "./utils"; + +export async function multimediaDevices() { + return new Promise(async function (resolve) { + var deviceToCount = { + "audiooutput": 0, + "audioinput": 0, + "videoinput": 0 + }; + + if (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices) { + const devices = await navigator.mediaDevices.enumerateDevices(); + if (typeof devices !== "undefined") { + for (var i = 0; i < devices.length; i++) { + var name = devices[i].kind as keyof typeof deviceToCount; + deviceToCount[name] = deviceToCount[name] + 1; + } + + return resolve({ + speakers: deviceToCount.audiooutput, + microphones: deviceToCount.audioinput, + webcams: deviceToCount.videoinput + }); + } else { + setObjectValues(deviceToCount, NA); + return resolve(deviceToCount); + } + + } else { + setObjectValues(deviceToCount, NA); + return resolve(deviceToCount); + } + }); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/navigatorPropertyDescriptors.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/navigatorPropertyDescriptors.ts new file mode 100644 index 00000000000..13fe0e3e381 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/navigatorPropertyDescriptors.ts @@ -0,0 +1,17 @@ +export function navigatorPropertyDescriptors() { + const properties = ['deviceMemory', 'hardwareConcurrency', 'language', 'languages', 'platform']; + + const results = []; + + for (const property of properties) { + const res = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(navigator), property); + + if (res && res.value) { + results.push('1'); + } else { + results.push('0'); + } + } + + return results.join(''); +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/nonce.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/nonce.ts new file mode 100644 index 00000000000..a0dd3a964f5 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/nonce.ts @@ -0,0 +1,3 @@ +export function nonce() { + return Math.random().toString(36).substring(2, 15); +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/platform.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/platform.ts new file mode 100644 index 00000000000..3cb45b539cf --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/platform.ts @@ -0,0 +1,3 @@ +export function platform() { + return navigator.platform; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/playwright.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/playwright.ts new file mode 100644 index 00000000000..f25bc74c20f --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/playwright.ts @@ -0,0 +1,3 @@ +export function playwright() { + return '__pwInitScripts' in window || '__playwright__binding__' in window; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/plugins.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/plugins.ts new file mode 100644 index 00000000000..657114bba50 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/plugins.ts @@ -0,0 +1,70 @@ +import { SignalValue } from "../types"; +import { INIT, NA, hashCode, ERROR, setObjectValues} from "./utils"; + +function isValidPluginArray() { + if (!navigator.plugins) return false; + const str = typeof navigator.plugins.toString === "function" + ? navigator.plugins.toString() + : navigator.plugins.constructor && typeof navigator.plugins.constructor.toString === "function" + ? navigator.plugins.constructor.toString() + : typeof navigator.plugins; + return str === "[object PluginArray]" || + str === "[object MSPluginsCollection]" || + str === "[object HTMLPluginsCollection]"; + } + + function getPluginNamesHash() { + if (!navigator.plugins) return NA; + + const pluginNames = []; + for (let i = 0; i < navigator.plugins.length; i++) { + pluginNames.push(navigator.plugins[i].name); + } + return hashCode(pluginNames.join(",")); + } + + + function getPluginCount() { + if (!navigator.plugins) return NA; + return navigator.plugins.length; + } + + function getPluginConsistency1() { + if (!navigator.plugins) return NA; + try { + return navigator.plugins[0] === navigator.plugins[0][0].enabledPlugin; + } catch (e) { + return ERROR; + } + } + + function getPluginOverflow() { + if (!navigator.plugins) return NA; + + try { + return navigator.plugins.item(4294967296) !== navigator.plugins[0]; + } catch (e) { + return ERROR; + } + } + +export function plugins() { + const pluginsData = { + isValidPluginArray: INIT as SignalValue, + pluginCount: INIT as SignalValue, + pluginNamesHash: INIT as SignalValue, + pluginConsistency1: INIT as SignalValue, + pluginOverflow: INIT as SignalValue, + } + + try { + pluginsData.isValidPluginArray = isValidPluginArray(); + pluginsData.pluginCount = getPluginCount(); + pluginsData.pluginNamesHash = getPluginNamesHash(); + pluginsData.pluginConsistency1 = getPluginConsistency1(); + pluginsData.pluginOverflow = getPluginOverflow(); + } catch (e) { + setObjectValues(pluginsData, ERROR); + } + return pluginsData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/screenResolution.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/screenResolution.ts new file mode 100644 index 00000000000..f37426b6a4b --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/screenResolution.ts @@ -0,0 +1,15 @@ +import { NA } from './utils'; + +export function screenResolution() { + return { + width: window.screen.width, + height: window.screen.height, + pixelDepth: window.screen.pixelDepth, + colorDepth: window.screen.colorDepth, + availableWidth: window.screen.availWidth, + availableHeight: window.screen.availHeight, + innerWidth: window.innerWidth, + innerHeight: window.innerHeight, + hasMultipleDisplays: typeof (screen as any).isExtended !== 'undefined' ? (screen as any).isExtended : NA, + }; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/seleniumProperties.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/seleniumProperties.ts new file mode 100644 index 00000000000..583568c1a28 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/seleniumProperties.ts @@ -0,0 +1,40 @@ +export function hasSeleniumProperties() { + const seleniumProps = [ + "__driver_evaluate", + "__webdriver_evaluate", + "__selenium_evaluate", + "__fxdriver_evaluate", + "__driver_unwrapped", + "__webdriver_unwrapped", + "__selenium_unwrapped", + "__fxdriver_unwrapped", + "_Selenium_IDE_Recorder", + "_selenium", + "calledSelenium", + "$cdc_asdjflasutopfhvcZLmcfl_", + "$chrome_asyncScriptInfo", + "__$webdriverAsyncExecutor", + "webdriver", + "__webdriverFunc", + "domAutomation", + "domAutomationController", + "__lastWatirAlert", + "__lastWatirConfirm", + "__lastWatirPrompt", + "__webdriver_script_fn", + "_WEBDRIVER_ELEM_CACHE" + ]; + + let hasSeleniumProperty = false; + + for (let i = 0; i < seleniumProps.length; i++) { + if (seleniumProps[i] in window) { + hasSeleniumProperty = true; + break; + } + } + + hasSeleniumProperty = hasSeleniumProperty || !!(document as any).__webdriver_script_fn || !!(window as any).domAutomation || !!(window as any).domAutomationController + + return hasSeleniumProperty; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/time.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/time.ts new file mode 100644 index 00000000000..81ca22b39bc --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/time.ts @@ -0,0 +1,3 @@ +export function time() { + return new Date().getTime(); +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/toSourceError.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/toSourceError.ts new file mode 100644 index 00000000000..b5820e411a1 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/toSourceError.ts @@ -0,0 +1,27 @@ +import { INIT } from './utils'; + +export function toSourceError() { + const toSourceErrorData = { + toSourceError: INIT, + hasToSource: false, + }; + + try { + (null as any).usdfsh; + } catch (e) { + toSourceErrorData.toSourceError = (e as Error).toString(); + } + + try { + throw "xyz"; + } catch (e: any) { + try { + e.toSource(); + toSourceErrorData.hasToSource = true; + } catch (e2) { + toSourceErrorData.hasToSource = false; + } + } + + return toSourceErrorData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/url.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/url.ts new file mode 100644 index 00000000000..bfb122214cc --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/url.ts @@ -0,0 +1,3 @@ +export function pageURL() { + return window.location.href; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/userAgent.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/userAgent.ts new file mode 100644 index 00000000000..382582bdb01 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/userAgent.ts @@ -0,0 +1,3 @@ +export function userAgent() { + return navigator.userAgent; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/utils.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/utils.ts new file mode 100644 index 00000000000..3ddbf723399 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/utils.ts @@ -0,0 +1,29 @@ +export const ERROR = 'ERROR'; +export const INIT = 'INIT'; +export const NA = 'NA'; +export const SKIPPED = 'SKIPPED'; +export const HIGH = 'high' +export const LOW = 'low' +export const MEDIUM = 'medium' + + +export function hashCode(str: string) { + let hash = 0; + for (let i = 0, len = str.length; i < len; i++) { + let chr = str.charCodeAt(i); + hash = (hash << 5) - hash + chr; + hash |= 0; + } + return hash.toString(16).padStart(8, "0"); +} + +export function setObjectValues(object: any, value: any) { + for (const key in object) { + object[key] = value; + } +} + + +export function isFirefox() { + return (navigator as any).buildID === "20181001000000"; +} diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/webGL.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/webGL.ts new file mode 100644 index 00000000000..1f5e08813ea --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/webGL.ts @@ -0,0 +1,28 @@ +import { ERROR, INIT, NA, isFirefox, setObjectValues } from './utils'; + +export function webGL() { + const webGLData = { + vendor: INIT, + renderer: INIT, + }; + + if (isFirefox()) { + setObjectValues(webGLData, NA); + return webGLData; + } + + try { + var canvas = document.createElement('canvas'); + var ctx = (canvas.getContext("webgl") || canvas.getContext("experimental-webgl")) as any; + if (ctx.getSupportedExtensions().indexOf("WEBGL_debug_renderer_info") >= 0) { + webGLData.vendor = ctx.getParameter(ctx.getExtension('WEBGL_debug_renderer_info').UNMASKED_VENDOR_WEBGL); + webGLData.renderer = ctx.getParameter(ctx.getExtension('WEBGL_debug_renderer_info').UNMASKED_RENDERER_WEBGL); + } else { + setObjectValues(webGLData, NA); + } + } catch (e) { + setObjectValues(webGLData, ERROR); + } + + return webGLData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/webdriver.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/webdriver.ts new file mode 100644 index 00000000000..a11f60abf13 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/webdriver.ts @@ -0,0 +1,3 @@ +export function webdriver() { + return navigator.webdriver; +}; \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/webdriverWritable.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/webdriverWritable.ts new file mode 100644 index 00000000000..abdc1671dbf --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/webdriverWritable.ts @@ -0,0 +1,15 @@ +export function webdriverWritable() { + try { + const prop = "webdriver"; + const navigator = window.navigator as any; + if (!navigator[prop] && !navigator.hasOwnProperty(prop)) { + navigator[prop] = 1; + const writable = navigator[prop] === 1; + delete navigator[prop]; + return writable; + } + return true; + } catch (e) { + return false; + } +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/webgpu.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/webgpu.ts new file mode 100644 index 00000000000..4ac65e70751 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/webgpu.ts @@ -0,0 +1,28 @@ +import { ERROR, INIT, NA, setObjectValues } from "./utils"; + +export async function webgpu() { + const webGPUData = { + vendor: INIT, + architecture: INIT, + device: INIT, + description: INIT, + }; + + if ('gpu' in navigator) { + try { + const adapter = await (navigator as any).gpu.requestAdapter(); + if (adapter) { + webGPUData.vendor = adapter.info.vendor; + webGPUData.architecture = adapter.info.architecture; + webGPUData.device = adapter.info.device; + webGPUData.description = adapter.info.description; + } + } catch (e) { + setObjectValues(webGPUData, ERROR); + } + } else { + setObjectValues(webGPUData, NA); + } + + return webGPUData; +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/signals/worker.ts b/pkg/appsec/challenge/js/fpscanner/src/signals/worker.ts new file mode 100644 index 00000000000..01864b91e70 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/signals/worker.ts @@ -0,0 +1,101 @@ +import { ERROR, INIT, setObjectValues } from './utils'; + +export async function worker() { + return new Promise((resolve) => { + const workerData = { + vendor: INIT, + renderer: INIT, + userAgent: INIT, + language: INIT, + platform: INIT, + memory: INIT, + cpuCount: INIT, + }; + + let worker: Worker | null = null; + let workerUrl: string | null = null; + let timeoutId: number | null = null; + + const cleanup = () => { + if (timeoutId) clearTimeout(timeoutId); + if (worker) worker.terminate(); + if (workerUrl) URL.revokeObjectURL(workerUrl); + }; + + try { + const workerCode = `try { + var fingerprintWorker = {}; + + fingerprintWorker.userAgent = navigator.userAgent; + fingerprintWorker.language = navigator.language; + fingerprintWorker.cpuCount = navigator.hardwareConcurrency; + fingerprintWorker.platform = navigator.platform; + fingerprintWorker.memory = navigator.deviceMemory; + + + var canvas = new OffscreenCanvas(1, 1); + fingerprintWorker.vendor = 'INIT'; + fingerprintWorker.renderer = 'INIT'; + var gl = canvas.getContext('webgl'); + const isFirefox = navigator.userAgent.includes('Firefox'); + try { + if (gl && !isFirefox) { + var glExt = gl.getExtension('WEBGL_debug_renderer_info'); + fingerprintWorker.vendor = gl.getParameter(glExt.UNMASKED_VENDOR_WEBGL); + fingerprintWorker.renderer = gl.getParameter(glExt.UNMASKED_RENDERER_WEBGL); + } else { + fingerprintWorker.vendor = 'NA'; + fingerprintWorker.renderer = 'NA'; + } + } catch (_) { + fingerprintWorker.vendor = 'ERROR'; + fingerprintWorker.renderer = 'ERROR'; + } + self.postMessage(fingerprintWorker); + } catch (e) { + self.postMessage(fingerprintWorker); + }` + + + const blob = new Blob([workerCode], { type: 'application/javascript' }); + workerUrl = URL.createObjectURL(blob); + worker = new Worker(workerUrl); + + // Set timeout to prevent infinite hang + timeoutId = window.setTimeout(() => { + cleanup(); + setObjectValues(workerData, ERROR); + resolve(workerData); + }, 2000); + + worker.onmessage = function (e) { + try { + workerData.vendor = e.data.vendor; + workerData.renderer = e.data.renderer; + workerData.userAgent = e.data.userAgent; + workerData.language = e.data.language; + workerData.platform = e.data.platform; + workerData.memory = e.data.memory; + workerData.cpuCount = e.data.cpuCount; + } catch (_) { + setObjectValues(workerData, ERROR); + } finally { + cleanup(); + resolve(workerData); + } + }; + + worker.onerror = function () { + cleanup(); + setObjectValues(workerData, ERROR); + resolve(workerData); + }; + } catch (e) { + cleanup(); + setObjectValues(workerData, ERROR); + resolve(workerData); + } + + }); + +} \ No newline at end of file diff --git a/pkg/appsec/challenge/js/fpscanner/src/types.ts b/pkg/appsec/challenge/js/fpscanner/src/types.ts new file mode 100644 index 00000000000..a627811e025 --- /dev/null +++ b/pkg/appsec/challenge/js/fpscanner/src/types.ts @@ -0,0 +1,260 @@ +import { ERROR, INIT, NA, SKIPPED } from './signals/utils'; + +export type SignalValue = T | typeof ERROR | typeof INIT | typeof NA | typeof SKIPPED; + +export interface WebGLSignal { + vendor: SignalValue; + renderer: SignalValue; +} + +export interface InternationalizationSignal { + timezone: SignalValue; + localeLanguage: SignalValue; +} + +export interface ScreenResolutionSignal { + width: SignalValue; + height: SignalValue; + pixelDepth: SignalValue; + colorDepth: SignalValue; + availableWidth: SignalValue; + availableHeight: SignalValue; + innerWidth: SignalValue; + innerHeight: SignalValue; + hasMultipleDisplays: SignalValue; +} + +export interface LanguagesSignal { + languages: SignalValue; + language: SignalValue; +} + +export interface WebGPUSignal { + vendor: SignalValue; + architecture: SignalValue; + device: SignalValue; + description: SignalValue; +} + +export interface IframeSignal { + webdriver: SignalValue; + userAgent: SignalValue; + platform: SignalValue; + memory: SignalValue; + cpuCount: SignalValue; + language: SignalValue; +} + +export interface WebWorkerSignal { + webdriver: SignalValue; + userAgent: SignalValue; + platform: SignalValue; + memory: SignalValue; + cpuCount: SignalValue; + language: SignalValue; + vendor: SignalValue; + renderer: SignalValue; +} + +export interface BrowserExtensionsSignal { + bitmask: SignalValue; + extensions: SignalValue; +} + +export interface BrowserFeaturesSignal { + bitmask: SignalValue; + chrome: SignalValue; + brave: SignalValue; + applePaySupport: SignalValue; + opera: SignalValue; + serial: SignalValue; + attachShadow: SignalValue; + caches: SignalValue; + webAssembly: SignalValue; + buffer: SignalValue; + showModalDialog: SignalValue; + safari: SignalValue; + webkitPrefixedFunction: SignalValue; + mozPrefixedFunction: SignalValue; + usb: SignalValue; + browserCapture: SignalValue; + paymentRequestUpdateEvent: SignalValue; + pressureObserver: SignalValue; + audioSession: SignalValue; + selectAudioOutput: SignalValue; + barcodeDetector: SignalValue; + battery: SignalValue; + devicePosture: SignalValue; + documentPictureInPicture: SignalValue; + eyeDropper: SignalValue; + editContext: SignalValue; + fencedFrame: SignalValue; + sanitizer: SignalValue; + otpCredential: SignalValue; +} + +export interface MediaQueriesSignal { + prefersColorScheme: SignalValue; + prefersReducedMotion: SignalValue; + prefersReducedTransparency: SignalValue; + colorGamut: SignalValue; + pointer: SignalValue; + anyPointer: SignalValue; + hover: SignalValue; + anyHover: SignalValue; + colorDepth: SignalValue; +} + +export interface ToSourceErrorSignal { + toSourceError: SignalValue; + hasToSource: SignalValue; +} + +export interface CanvasSignal { + hasModifiedCanvas: SignalValue; + canvasFingerprint: SignalValue; +} + +export interface HighEntropyValuesSignal { + architecture: SignalValue; + bitness: SignalValue; + brands: SignalValue; + mobile: SignalValue; + model: SignalValue; + platform: SignalValue; + platformVersion: SignalValue; + uaFullVersion: SignalValue; +} + +export interface PluginsSignal { + isValidPluginArray: SignalValue; + pluginCount: SignalValue; + pluginNamesHash: SignalValue; + pluginConsistency1: SignalValue; + pluginOverflow: SignalValue; +} + +export interface MultimediaDevicesSignal { + speakers: SignalValue; + microphones: SignalValue; + webcams: SignalValue; +} + +export interface MediaCodecsSignal { + audioCanPlayTypeHash: SignalValue; + videoCanPlayTypeHash: SignalValue; + audioMediaSourceHash: SignalValue; + videoMediaSourceHash: SignalValue; + rtcAudioCapabilitiesHash: SignalValue; + rtcVideoCapabilitiesHash: SignalValue; + hasMediaSource: SignalValue; +} + +// Grouped signal interfaces +export interface AutomationSignals { + webdriver: SignalValue; + webdriverWritable: SignalValue; + selenium: SignalValue; + cdp: SignalValue; + playwright: SignalValue; + navigatorPropertyDescriptors: SignalValue; +} + +export interface DeviceSignals { + cpuCount: SignalValue; + memory: SignalValue; + platform: SignalValue; + screenResolution: ScreenResolutionSignal; + multimediaDevices: MultimediaDevicesSignal; + mediaQueries: MediaQueriesSignal; +} + +export interface BrowserSignals { + userAgent: SignalValue; + features: BrowserFeaturesSignal; + plugins: PluginsSignal; + extensions: BrowserExtensionsSignal; + highEntropyValues: HighEntropyValuesSignal; + etsl: SignalValue; + maths: SignalValue; + toSourceError: ToSourceErrorSignal; +} + +export interface GraphicsSignals { + webGL: WebGLSignal; + webgpu: WebGPUSignal; + canvas: CanvasSignal; +} + +export interface LocaleSignals { + internationalization: InternationalizationSignal; + languages: LanguagesSignal; +} + +export interface ContextsSignals { + iframe: IframeSignal; + webWorker: WebWorkerSignal; +} + +export interface FingerprintSignals { + automation: AutomationSignals; + device: DeviceSignals; + browser: BrowserSignals; + graphics: GraphicsSignals; + codecs: MediaCodecsSignal; + locale: LocaleSignals; + contexts: ContextsSignals; +} + +export interface FastBotDetectionDetails { + headlessChromeScreenResolution: DetectionRuleResult; + hasWebdriver: DetectionRuleResult; + hasWebdriverWritable: DetectionRuleResult; + hasSeleniumProperty: DetectionRuleResult; + hasCDP: DetectionRuleResult; + hasPlaywright: DetectionRuleResult; + hasImpossibleDeviceMemory: DetectionRuleResult; + hasHighCPUCount: DetectionRuleResult; + hasMissingChromeObject: DetectionRuleResult; + hasWebdriverIframe: DetectionRuleResult; + hasWebdriverWorker: DetectionRuleResult; + hasMismatchWebGLInWorker: DetectionRuleResult; + hasMismatchPlatformIframe: DetectionRuleResult; + hasMismatchPlatformWorker: DetectionRuleResult; + hasSwiftshaderRenderer: DetectionRuleResult; + hasUTCTimezone: DetectionRuleResult; + hasMismatchLanguages: DetectionRuleResult; + hasInconsistentEtsl: DetectionRuleResult; + hasBotUserAgent: DetectionRuleResult; + hasGPUMismatch: DetectionRuleResult; + hasPlatformMismatch: DetectionRuleResult; +} +export interface Fingerprint { + signals: FingerprintSignals; + fsid: string; + nonce: string; + time: SignalValue; + url: string; + fastBotDetection: boolean; + fastBotDetectionDetails: FastBotDetectionDetails; +} + +export type DetectionSeverity = 'low' | 'medium' | 'high'; + +export interface DetectionRuleResult { + detected: boolean; + severity: DetectionSeverity; +} + +export interface DetectionRule { + name: string; + severity: DetectionSeverity; + test: (fingerprint: Fingerprint) => boolean; +} + +export interface CollectFingerprintOptions { + encrypt?: boolean; + timeout?: number; + skipWorker?: boolean; +} + diff --git a/pkg/appsec/challenge/js/generate.go b/pkg/appsec/challenge/js/generate.go new file mode 100644 index 00000000000..ca068f252bf --- /dev/null +++ b/pkg/appsec/challenge/js/generate.go @@ -0,0 +1,4 @@ +package js + +//go:generate go run ./cmd/bundle +//go:generate go run ./cmd/obfuscate diff --git a/pkg/appsec/challenge/js/js.go b/pkg/appsec/challenge/js/js.go new file mode 100644 index 00000000000..4431d38b5dd --- /dev/null +++ b/pkg/appsec/challenge/js/js.go @@ -0,0 +1,13 @@ +// This package contain all Javascript related code for challenge/fingerprinting by the WAF. +// fpscanner is https://github.com/antoinevastel/fpscanner/ +// obfuscate is a custom wrapper around javascript obfuscator. +// It uses a vendored bundle of javascript-obfuscator to avoir any dependancy on npm at build time. +// The goal is to build a WASM module that can be used to dynamically obfuscate the challenge code at runtime. +// We bundle both fpscanner and our custom fingerprinting code together, and this bundle is what is ob + +package js + +import _ "embed" + +//go:embed fpscanner/bundle.js +var FPScannerBundle string diff --git a/pkg/appsec/challenge/js/obfuscate/index.wasm.gz b/pkg/appsec/challenge/js/obfuscate/index.wasm.gz new file mode 100644 index 00000000000..04bdf12130b Binary files /dev/null and b/pkg/appsec/challenge/js/obfuscate/index.wasm.gz differ diff --git a/pkg/appsec/challenge/js/obfuscate/javascript-obfuscator.js b/pkg/appsec/challenge/js/obfuscate/javascript-obfuscator.js new file mode 100644 index 00000000000..eee36e008ca --- /dev/null +++ b/pkg/appsec/challenge/js/obfuscate/javascript-obfuscator.js @@ -0,0 +1,54 @@ +/*! +Copyright (C) 2016-2026 Timofei Kachalov + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.JavaScriptObfuscator=t():e.JavaScriptObfuscator=t()}(self,()=>(()=>{var __webpack_modules__={218:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetString=void 0,t.alphabetString="abcdefghijklmnopqrstuvwxyz"},410:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),e.replace(new RegExp("[".concat(t,"]+"),"g"),"")};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},561:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e);var r=t?"\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F":"\\x00-\\x1F\\x7F";return(0,i.default)(e,r)};var n=a(r(83399)),i=a(r(410));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},1391:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(t&&m.NodeGuards.isVariableDeclarationNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(!m.NodeGuards.isNodeWithStatements(t))return e;const r=g.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&m.NodeGuards.isVariableDeclarationNode(r)?e.kind!==r.kind?e:(r.declarations.push(...e.declarations),f.VisitorOption.Remove):e}};t.VariableDeclarationsMergeTransformer=b,t.VariableDeclarationsMergeTransformer=b=o([(0,l.injectable)(),u(0,(0,l.inject)(d.ServiceIdentifiers.IRandomGenerator)),u(1,(0,l.inject)(d.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Object,Object])],b)},1555:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.named=function(e){return(0,c.createTaggedDecorator)(new s.Metadata(o.NAMED_TAG,e))};var o=a(r(2006)),s=r(14425),c=r(24157)},1683:(e,t,r)=>{var n=r(54041).x,i=r(90251),a=/(\r?\n)/,o="$$$isSourceNode$$$";function s(e,t,r,n,i){this.children=[],this.sourceContents={},this.line=null==e?null:e,this.column=null==t?null:t,this.source=null==r?null:r,this.name=null==i?null:i,this[o]=!0,null!=n&&this.add(n)}s.fromStringWithSourceMap=function(e,t,r){var n=new s,o=e.split(a),c=0,u=function(){return e()+(e()||"");function e(){return c=0;t--)this.prepend(e[t]);else{if(!e[o]&&"string"!=typeof e)throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e);this.children.unshift(e)}return this},s.prototype.walk=function(e){for(var t,r=0,n=this.children.length;r0){for(t=[],r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:o;if((0,n.default)(e),t.loose)return(0,i.default)(c,e.toLowerCase());return(0,i.default)(s,e)};var n=a(r(83399)),i=a(r(78644));function a(e){return e&&e.__esModule?e:{default:e}}var o={loose:!1},s=["true","false","1","0"],c=[].concat(s,["yes","no"]);e.exports=t.default,e.exports.default=t.default},2006:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NON_CUSTOM_TAG_KEYS=t.PRE_DESTROY=t.POST_CONSTRUCT=t.DESIGN_PARAM_TYPES=t.PARAM_TYPES=t.TAGGED_PROP=t.TAGGED=t.MULTI_INJECT_TAG=t.INJECT_TAG=t.OPTIONAL_TAG=t.UNMANAGED_TAG=t.NAME_TAG=t.NAMED_TAG=void 0,t.NAMED_TAG="named",t.NAME_TAG="name",t.UNMANAGED_TAG="unmanaged",t.OPTIONAL_TAG="optional",t.INJECT_TAG="inject",t.MULTI_INJECT_TAG="multi_inject",t.TAGGED="inversify:tagged",t.TAGGED_PROP="inversify:tagged_props",t.PARAM_TYPES="inversify:paramtypes",t.DESIGN_PARAM_TYPES="design:paramtypes",t.POST_CONSTRUCT="post_construct",t.PRE_DESTROY="pre_destroy",t.NON_CUSTOM_TAG_KEYS=[t.INJECT_TAG,t.MULTI_INJECT_TAG,t.NAME_TAG,t.UNMANAGED_TAG,t.NAMED_TAG,t.OPTIONAL_TAG]},2056:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)(e),0===((t=(0,i.default)(t,o)).ignore_whitespace?e.trim().length:e.length)};var n=a(r(83399)),i=a(r(93610));function a(e){return e&&e.__esModule?e:{default:e}}var o={ignore_whitespace:!1};e.exports=t.default,e.exports.default=t.default},2070:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperTransformer=void 0;const o=r(71519),s=r(32287),c=r(96390),u=r(18436),l=r(68736),d=r(60056),f=r(76893),p=r(30386),h=r(23615);let m=class extends f.AbstractNodeTransformer{constructor(e,t,r,n,i,a){super(e,t),this.runAfter=[c.NodeTransformer.StringArrayRotateFunctionTransformer],this.visitedLexicalScopeNodesStackStorage=r,this.stringArrayStorage=n,this.stringArrayScopeCallsWrappersDataStorage=i,this.stringArrayTransformerCustomNodeFactory=a}getVisitor(e){return this.options.stringArrayWrappersCount&&e===u.NodeTransformationStage.StringArray?{enter:(e,t)=>{t&&h.NodeGuards.isNodeWithLexicalScopeStatements(e,t)&&this.onLexicalScopeNodeEnter(e)},leave:(e,t)=>{if(t&&h.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.onLexicalScopeNodeLeave(),this.transformNode(e)}}:null}transformNode(e){var t;const r=null!==(t=this.stringArrayScopeCallsWrappersDataStorage.get(e))&&void 0!==t?t:null;if(!r)return e;const n=Object.values(r);for(const t of n){if(!t)continue;const{scopeCallsWrappersData:r}=t,n=r.length,i=this.getUpperStringArrayCallsWrapperData(t);for(let t=n-1;t>=0;t--){const n=r[t];this.getAndAppendStringArrayScopeCallsWrapperNode(e,n,i)}}return e}getRootStringArrayCallsWrapperData(e){const{encoding:t}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),index:0,parameterIndexesData:null}}getUpperStringArrayCallsWrapperData(e){var t,r,n,i;const{encoding:a}=e,o=this.getRootStringArrayCallsWrapperData(e);if(!this.options.stringArrayWrappersChainedCalls)return o;const s=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null;if(!s)return o;const c=null!==(r=this.stringArrayScopeCallsWrappersDataStorage.get(s))&&void 0!==r?r:null,u=null!==(i=null===(n=null==c?void 0:c[a])||void 0===n?void 0:n.scopeCallsWrappersData)&&void 0!==i?i:null;return(null==u?void 0:u.length)?this.randomGenerator.getRandomGenerator().pickone(u):o}getAndAppendStringArrayScopeCallsWrapperNode(e,t,r){let n;switch(this.options.stringArrayWrappersType){case d.StringArrayWrappersType.Function:{const i=this.randomGenerator.getRandomInteger(0,e.body.length-1);n=this.getStringArrayScopeCallsWrapperFunctionNode(t,r),p.NodeAppender.insertAtIndex(e,n,i);break}case d.StringArrayWrappersType.Variable:default:n=this.getStringArrayScopeCallsWrapperVariableNode(t,r),p.NodeAppender.prepend(e,n)}}getStringArrayScopeCallsWrapperVariableNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(l.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode);return r.initialize(e,t),r.getNode()}getStringArrayScopeCallsWrapperFunctionNode(e,t){const r=this.stringArrayTransformerCustomNodeFactory(l.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode);return r.initialize(e,t),r.getNode()}onLexicalScopeNodeEnter(e){this.visitedLexicalScopeNodesStackStorage.push(e)}onLexicalScopeNodeLeave(){this.visitedLexicalScopeNodesStackStorage.pop()}};t.StringArrayScopeCallsWrapperTransformer=m,t.StringArrayScopeCallsWrapperTransformer=m=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(2,(0,o.inject)(s.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),a(3,(0,o.inject)(s.ServiceIdentifiers.IStringArrayStorage)),a(4,(0,o.inject)(s.ServiceIdentifiers.IStringArrayScopeCallsWrappersDataStorage)),a(5,(0,o.inject)(s.ServiceIdentifiers.Factory__IStringArrayCustomNode)),i("design:paramtypes",[Object,Object,Object,Object,Object,Function])],m)},2665:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionTemplate=function(){return"\n function {debugProtectionFunctionName} (ret) {\n function debuggerProtection (counter) {\n {debuggerTemplate}\n \n debuggerProtection(++counter);\n }\n \n try {\n if (ret) {\n return debuggerProtection;\n } else {\n debuggerProtection(0);\n }\n } catch (y) {}\n }\n "}},2731:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;ir&&(n=Math.round(r+t*i.limitThreshold),n>t&&(n=t)),n}analyze(e){return this.analyzeRecursive(e.body)}analyzeRecursive(e){const t=i.getLimitIndex(e.length),r=[],n=e.length;for(let i=0;it);i++){const t=e[i];p.traverse(t,{enter:n=>{if(m.NodeGuards.isCallExpressionNode(n))return t.parentNode!==g.NodeStatementUtils.getParentNodeWithStatements(n)?p.VisitorOption.Skip:void this.analyzeCallExpressionNode(r,e,n)}})}return r}analyzeCallExpressionNode(e,t,r){i.calleeDataExtractorsList.forEach(n=>{const i=this.calleeDataExtractorFactory(n).extract(t,r.callee);i&&e.push({...i,callsGraph:this.analyzeRecursive(i.callee.body)})})}};t.CallsGraphAnalyzer=b,b.calleeDataExtractorsList=[h.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor,h.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor,h.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor],b.limitThresholdActivationLength=25,b.limitThreshold=.002,t.CallsGraphAnalyzer=b=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.Factory__ICalleeDataExtractor)),u("design:paramtypes",[Function])],b)},2747:e=>{"use strict";e.exports={stdout:!1,stderr:!1}},2781:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Rc4Template=function(){return"\n const {rc4FunctionName} = function (str, key) {\n let s = [], j = 0, x, output = '';\n \n str = {atobFunctionName}(str);\n \n let i;\n \t \n for (i = 0; i < 256; i++) {\n s[i] = i;\n }\n \n for (i = 0; i < 256; i++) {\n j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n }\n \n i = 0;\n j = 0;\n \n for (let y = 0; y < str.length; y++) {\n i = (i + 1) % 256;\n j = (j + s[i]) % 256;\n x = s[i];\n s[i] = s[j];\n s[j] = x;\n output += String.fromCharCode(str.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);\n }\n \n return output;\n }\n "}},2953:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(83404),l=r(88318),d=r(25120);let f=class extends l.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t){this.debugProtectionFunctionName=e,this.callsControllerFunctionName=t}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate((0,u.DebugProtectionFunctionCallTemplate)(),{debugProtectionFunctionName:this.debugProtectionFunctionName,callControllerFunctionName:this.callsControllerFunctionName})}};t.DebugProtectionFunctionCallCodeHelper=f,n([(0,c.initializable)(),i("design:type",String)],f.prototype,"callsControllerFunctionName",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"debugProtectionFunctionName",void 0),t.DebugProtectionFunctionCallCodeHelper=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],f)},3158:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.has(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=new Set(["004","008","010","012","016","020","024","028","031","032","036","040","044","048","050","051","052","056","060","064","068","070","072","074","076","084","086","090","092","096","100","104","108","112","116","120","124","132","136","140","144","148","152","156","158","162","166","170","174","175","178","180","184","188","191","192","196","203","204","208","212","214","218","222","226","231","232","233","234","238","239","242","246","248","250","254","258","260","262","266","268","270","275","276","288","292","296","300","304","308","312","316","320","324","328","332","334","336","340","344","348","352","356","360","364","368","372","376","380","384","388","392","398","400","404","408","410","414","417","418","422","426","428","430","434","438","440","442","446","450","454","458","462","466","470","474","478","480","484","492","496","498","499","500","504","508","512","516","520","524","528","531","533","534","535","540","548","554","558","562","566","570","574","578","580","581","583","584","585","586","591","598","600","604","608","612","616","620","624","626","630","634","638","642","643","646","652","654","659","660","662","663","666","670","674","678","682","686","688","690","694","702","703","704","705","706","710","716","724","728","729","732","740","744","748","752","756","760","762","764","768","772","776","780","784","788","792","795","796","798","800","804","807","818","826","831","832","833","834","840","850","854","858","860","862","876","882","887","894"]);e.exports=t.default,e.exports.default=t.default},3196:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t,r){(0,i.default)(t),null!=r&&r.eui&&(r.eui=String(r.eui));if(null!=r&&r.no_colons||null!=r&&r.no_separators)return"48"===r.eui?o.test(t):"64"===r.eui?u.test(t):o.test(t)||u.test(t);if("48"===(null==r?void 0:r.eui))return a.test(t)||s.test(t);if("64"===(null==r?void 0:r.eui))return c.test(t)||l.test(t);return e(t,{eui:"48"})||e(t,{eui:"64"})};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){4}([0-9a-fA-F]{2})$/,o=/^([0-9a-fA-F]){12}$/,s=/^([0-9a-fA-F]{4}\.){2}([0-9a-fA-F]{4})$/,c=/^(?:[0-9a-fA-F]{2}([-:\s]))([0-9a-fA-F]{2}\1){6}([0-9a-fA-F]{2})$/,u=/^([0-9a-fA-F]){16}$/,l=/^([0-9a-fA-F]{4}\.){3}([0-9a-fA-F]{4})$/;e.exports=t.default,e.exports.default=t.default},3654:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getReflectMetadata=function(e,t){return Reflect.getMetadata(t,e)}},3939:e=>{var t,r;t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r={rotl:function(e,t){return e<>>32-t},rotr:function(e,t){return e<<32-t|e>>>t},endian:function(e){if(e.constructor==Number)return 16711935&r.rotl(e,8)|4278255360&r.rotl(e,24);for(var t=0;t0;e--)t.push(Math.floor(256*Math.random()));return t},bytesToWords:function(e){for(var t=[],r=0,n=0;r>>5]|=e[r]<<24-n%32;return t},wordsToBytes:function(e){for(var t=[],r=0;r<32*e.length;r+=8)t.push(e[r>>>5]>>>24-r%32&255);return t},bytesToHex:function(e){for(var t=[],r=0;r>>4).toString(16)),t.push((15&e[r]).toString(16));return t.join("")},hexToBytes:function(e){for(var t=[],r=0;r>>6*(3-a)&63)):r.push("=");return r.join("")},base64ToBytes:function(e){e=e.replace(/[^A-Z0-9+\/]/gi,"");for(var r=[],n=0,i=0;n>>6-2*i);return r}},e.exports=r},4058:e=>{"use strict";e.exports={stringReplaceAll:(e,t,r)=>{let n=e.indexOf(t);if(-1===n)return e;const i=t.length;let a=0,o="";do{o+=e.substr(a,n-a)+t+r,a=n+i,n=e.indexOf(t,a)}while(-1!==n);return o+=e.substr(a),o},stringEncaseCRLFWithFirstIndex:(e,t,r,n)=>{let i=0,a="";do{const o="\r"===e[n-1];a+=e.substr(i,(o?n-1:n)-i)+t+(o?"\r\n":"\n")+r,i=n+1,n=e.indexOf("\n",i)}while(-1!==n);return a+=e.substr(i),a}}},4185:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DictionaryIdentifierNamesGenerator=void 0;const s=r(71519),c=r(32287),u=r(34003),l=r(32504);let d=n=class extends u.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.arrayUtils=r,this.identifierNamesSet=new Set(this.getInitialIdentifierNames(this.options.identifiersDictionary)),this.identifiersIterator=this.identifierNamesSet.values()}static incrementIdentifierName(e){let t="",r=!1;for(const n of e)r||n!==n.toUpperCase()?r||n!==n.toLowerCase()?t+=n:(t+=n.toUpperCase(),r=!0):t+=n.toLowerCase();return r?t:null}generateNext(){const e=this.generateNewDictionaryName();return this.preserveName(e),e}generateForGlobalScope(){return this.generateForGlobalScopeInternal(e=>this.isValidIdentifierName(e))}generateForGlobalScopeWithAllScopesValidation(){return this.generateForGlobalScopeInternal(e=>this.isValidIdentifierNameInAllScopes(e))}generateForLexicalScope(e){const t=[e,...l.NodeLexicalScopeUtils.getLexicalScopes(e)],r=this.generateNewDictionaryName(e=>this.isValidIdentifierNameInLexicalScopes(e,t));return this.preserveNameForLexicalScope(r,e),r}generateForLabel(e){return this.generateNewDictionaryName()}generateForGlobalScopeInternal(e){const t=this.options.identifiersPrefix?`${this.options.identifiersPrefix}`:"",r=this.generateNewDictionaryName(r=>e(`${t}${r}`)),n=`${t}${r}`;return this.preserveName(n),n}generateNewDictionaryName(e){const t=()=>{var r;if(!this.identifierNamesSet.size)throw new Error("Too many identifiers in the code, add more words to identifiers dictionary");const n=this.identifiersIterator.next();if(!n.done){const i=n.value;return(null!==(r=null==e?void 0:e(i))&&void 0!==r?r:this.isValidIdentifierName(i))?n.value:t()}return this.identifierNamesSet=new Set(this.getIncrementedIdentifierNames([...this.identifierNamesSet])),this.identifiersIterator=this.identifierNamesSet.values(),t()};return t()}getInitialIdentifierNames(e){const t=e.filter(Boolean).map(e=>e.toLowerCase());return this.arrayUtils.shuffle(t)}getIncrementedIdentifierNames(e){const t=[];for(const r of e){const e=n.incrementIdentifierName(r);e&&t.push(e)}return this.arrayUtils.shuffle(t)}};t.DictionaryIdentifierNamesGenerator=d,t.DictionaryIdentifierNamesGenerator=d=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptions)),o(2,(0,s.inject)(c.ServiceIdentifiers.IArrayUtils)),a("design:paramtypes",[Object,Object,Object])],d)},4223:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NO_ADDITIONAL_NODES_PRESET=void 0;const n=r(93844),i=r(72167),a=r(36833),o=r(54042),s=r(48096),c=r(70885),u=r(60056),l=r(66822);t.NO_ADDITIONAL_NODES_PRESET=Object.freeze({compact:!0,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0,deadCodeInjection:!1,deadCodeInjectionThreshold:0,debugProtection:!1,debugProtectionInterval:0,disableConsoleOutput:!1,domainLock:[],domainLockRedirectUrl:"about:blank",exclude:[],forceTransformStrings:[],identifierNamesGenerator:n.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,renameGlobals:!1,renameProperties:!1,renamePropertiesMode:a.RenamePropertiesMode.Safe,reservedNames:[],reservedStrings:[],stringArrayRotate:!1,seed:0,selfDefending:!1,stringArrayShuffle:!1,simplify:!1,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:o.SourceMapMode.Separate,sourceMapSourcesMode:s.SourceMapSourcesMode.SourcesContent,splitStrings:!1,splitStringsChunkLength:0,stringArray:!1,stringArrayCallsTransform:!1,stringArrayCallsTransformThreshold:0,stringArrayEncoding:[c.StringArrayEncoding.None],stringArrayIndexesType:[l.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:u.StringArrayWrappersType.Variable,stringArrayThreshold:0,target:i.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},4533:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementSimplifyTransformer=void 0;const o=r(71519),s=r(32287),c=r(96390),u=r(18436),l=r(21818),d=r(23615),f=r(91363),p=r(25120);let h=class extends l.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t),this.runAfter=[c.NodeTransformer.VariableDeclarationsMergeTransformer]}getVisitor(e){return e===u.NodeTransformationStage.Simplifying?{leave:(e,t)=>{if(t&&d.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){const r=this.getStatementSimplifyData(e);if(!r)return e;const n=this.getPartialStatement(r),i=d.NodeGuards.isBlockStatementNode(n)?n:f.NodeFactory.blockStatementNode([n]);return p.NodeUtils.parentizeNode(i,t)}};t.BlockStatementSimplifyTransformer=h,t.BlockStatementSimplifyTransformer=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],h)},5036:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{const n=this.nodeTransformerFactory(r);return n.getVisitor(t)?{...e,[r]:n}:e},{})}mergeVisitorsForDirection(e,t){const r=e.length;return r?(n,i)=>{if(m.NodeMetadata.isIgnoredNode(n))return f.VisitorOption.Skip;for(let a=0;ae}};t.NodeTransformersRunner=g,t.NodeTransformersRunner=g=o([(0,l.injectable)(),u(0,(0,l.inject)(d.ServiceIdentifiers.Factory__INodeTransformer)),u(1,(0,l.inject)(d.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder)),c("design:paramtypes",[Function,Object])],g)},5265:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LazyServiceIdentifier=void 0;const n=r(82151);Object.defineProperty(t,"LazyServiceIdentifier",{enumerable:!0,get:function(){return n.LazyServiceIdentifier}})},5502:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableServiceWorkerTemplate=function(){return"const that = typeof global === 'object' ? global : this;"}},5643:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getFunctionName=void 0,t.getDependencies=function(e,t){return(0,o.getTargets)(e)(t)},t.getBaseClassDependencyCount=function e(t,r){var n=Object.getPrototypeOf(r.prototype).constructor;if(n!==Object){var i=(0,o.getTargets)(t)(n),a=i.map(function(e){return e.metadata.filter(function(e){return e.key===s.UNMANAGED_TAG})}),c=[].concat.apply([],a).length,u=i.length-c;return u>0?u:e(t,n)}return 0};var o=r(69687),s=a(r(2006)),c=r(92172);Object.defineProperty(t,"getFunctionName",{enumerable:!0,get:function(){return c.getFunctionName}})},5830:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),t=(0,i.default)(t,d),!(0,a.default)(e,","))return!1;var r=e.split(",");if(r[0].startsWith("(")&&!r[1].endsWith(")")||r[1].endsWith(")")&&!r[0].startsWith("("))return!1;if(t.checkDMS)return u.test(r[0])&&l.test(r[1]);return s.test(r[0])&&c.test(r[1])};var n=o(r(83399)),i=o(r(93610)),a=o(r(94636));function o(e){return e&&e.__esModule?e:{default:e}}var s=/^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/,c=/^\s?[+-]?(180(\.0+)?|1[0-7]\d(\.\d+)?|\d{1,2}(\.\d+)?)\)?$/,u=/^(([1-8]?\d)\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|90\D+0\D+0)\D+[NSns]?$/i,l=/^\s*([1-7]?\d{1,2}\D+([1-5]?\d|60)\D+([1-5]?\d|60)(\.\d+)?|180\D+0\D+0)\D+[EWew]?$/i,d={checkDMS:!1};e.exports=t.default,e.exports.default=t.default},6377:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.FunctionControlFlowStorage=void 0;const o=r(71519),s=r(32287),c=r(11440);let u=class extends c.MapStorage{constructor(e,t,r){super(e,t),this.identifierNamesGenerator=r(t)}};t.FunctionControlFlowStorage=u,t.FunctionControlFlowStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(2,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i("design:paramtypes",[Object,Object,Function])],u)},6480:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(71780),l=r(88318),d=r(25120);let f=class extends l.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t,r){this.stringArrayFunctionName=e,this.comparisonValue=t,this.comparisonExpressionNode=r}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=d.NodeUtils.convertStructureToCode([this.comparisonExpressionNode]);return this.customCodeHelperFormatter.formatTemplate((0,u.StringArrayRotateFunctionTemplate)(),{comparisonExpressionCode:e,comparisonValue:this.comparisonValue,stringArrayFunctionName:this.stringArrayFunctionName})}};t.StringArrayRotateFunctionCodeHelper=f,n([(0,c.initializable)(),i("design:type",Number)],f.prototype,"comparisonValue",void 0),n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"comparisonExpressionNode",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"stringArrayFunctionName",void 0),t.StringArrayRotateFunctionCodeHelper=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],f)},6596:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.tryAndThrowErrorIfStackOverflow=void 0,t.isStackOverflowException=s;var o=a(r(95507));function s(e){return e instanceof RangeError||e.message===o.STACK_OVERFLOW}t.tryAndThrowErrorIfStackOverflow=function(e,t){try{return e()}catch(e){if(s(e))throw t();throw e}}},6768:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(b.NodeGuards.isWhileStatementNode(e))return p.VisitorOption.Skip;i.isProhibitedStatementNode(e)&&(t=!1)}}),t}getVisitor(e){return this.options.controlFlowFlattening&&e===m.NodeTransformationStage.ControlFlowFlattening?{leave:(e,t)=>{if(t&&b.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(this.randomGenerator.getMathRandom()>this.options.controlFlowFlatteningThreshold||!i.canTransformBlockStatementNode(e))return e;const r=e.body,n=this.arrayUtils.createWithRange(r.length),a=this.arrayUtils.shuffle(n),o=new Map(a.map((e,t)=>[e,t])),s=n.map(e=>o.get(e)),c=this.controlFlowCustomNodeFactory(h.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode);c.initialize(r,a,s);const u=c.getNode()[0];return y.NodeUtils.parentizeNode(u,t),u}};t.BlockStatementControlFlowTransformer=S,t.BlockStatementControlFlowTransformer=S=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,(0,d.inject)(f.ServiceIdentifiers.IArrayUtils)),l(2,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(3,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Object,Object,Object])],S)},6782:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),function(e){var t="\\d{".concat(e.digits_after_decimal[0],"}");e.digits_after_decimal.forEach(function(e,r){0!==r&&(t="".concat(t,"|\\d{").concat(e,"}"))});var r="(".concat(e.symbol.replace(/\W/,function(e){return"\\".concat(e)}),")").concat(e.require_symbol?"":"?"),n="-?",i="[1-9]\\d{0,2}(\\".concat(e.thousands_separator,"\\d{3})*"),a="(".concat(["0","[1-9]\\d*",i].join("|"),")?"),o="(\\".concat(e.decimal_separator,"(").concat(t,"))").concat(e.require_decimal?"":"?"),s=a+(e.allow_decimal||e.require_decimal?o:"");e.allow_negatives&&!e.parens_for_negatives&&(e.negative_sign_after_digits?s+=n:e.negative_sign_before_digits&&(s=n+s));e.allow_negative_sign_placeholder?s="( (?!\\-))?".concat(s):e.allow_space_after_symbol?s=" ?".concat(s):e.allow_space_after_digits&&(s+="( (?!$))?");e.symbol_after_digits?s+=r:s=r+s;e.allow_negatives&&(e.parens_for_negatives?s="(\\(".concat(s,"\\)|").concat(s,")"):e.negative_sign_before_digits||e.negative_sign_after_digits||(s=n+s));return new RegExp("^(?!-? )(?=.*\\d)".concat(s,"$"))}(t=(0,n.default)(t,o)).test(e)};var n=a(r(93610)),i=a(r(83399));function a(e){return e&&e.__esModule?e:{default:e}}var o={symbol:"$",require_symbol:!1,allow_space_after_symbol:!1,symbol_after_digits:!1,allow_negatives:!0,parens_for_negatives:!1,negative_sign_before_digits:!1,negative_sign_after_digits:!1,allow_negative_sign_placeholder:!1,thousands_separator:",",decimal_separator:".",allow_decimal:!0,require_decimal:!1,digits_after_decimal:[2],allow_space_after_digits:!1};e.exports=t.default,e.exports.default=t.default},6928:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledShuffledIdentifierNamesGenerator=void 0;const s=r(71519),c=r(32287),u=r(23877),l=r(218),d=r(98376),f=r(68983);let p=n=class extends f.MangledIdentifierNamesGenerator{constructor(e,t,r,n){super(t,r,n),this.arrayUtils=e}initialize(){this.initializeNameSequence([...`${u.numbersString}`,...this.arrayUtils.shuffle([...`${l.alphabetString}${d.alphabetStringUppercase}`])])}initializeNameSequence(e){this.getNameSequence()||(n.shuffledNameSequence=e)}getNameSequence(){return n.shuffledNameSequence}};t.MangledShuffledIdentifierNamesGenerator=p,i([(0,s.postConstruct)(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],p.prototype,"initialize",null),t.MangledShuffledIdentifierNamesGenerator=p=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IArrayUtils)),o(1,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IOptions)),o(3,(0,s.inject)(c.ServiceIdentifiers.ISetUtils)),a("design:paramtypes",[Object,Object,Object,Object])],p)},7071:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),d.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a="(([a-zA-Z]{2,3}(-".concat("([A-Za-z]{3}(-[A-Za-z]{3}){0,2})",")?)|([a-zA-Z]{5,8}))"),o="(".concat("(\\d|[A-W]|[Y-Z]|[a-w]|[y-z])","(-[A-Za-z0-9]{2,8})+)"),s="(x(-[A-Za-z0-9]{1,8})+)",c="(".concat("((en-GB-oed)|(i-ami)|(i-bnn)|(i-default)|(i-enochian)|(i-hak)|(i-klingon)|(i-lux)|(i-mingo)|(i-navajo)|(i-pwn)|(i-tao)|(i-tay)|(i-tsu)|(sgn-BE-FR)|(sgn-BE-NL)|(sgn-CH-DE))","|").concat("((art-lojban)|(cel-gaulish)|(no-bok)|(no-nyn)|(zh-guoyu)|(zh-hakka)|(zh-min)|(zh-min-nan)|(zh-xiang))",")"),u="(-|_)",l="".concat(a,"(").concat(u).concat("([A-Za-z]{4})",")?(").concat(u).concat("([A-Za-z]{2}|\\d{3})",")?(").concat(u).concat("([A-Za-z0-9]{5,8}|(\\d[A-Z-a-z0-9]{3}))",")*(").concat(u).concat(o,")*(").concat(u).concat(s,")?"),d=new RegExp("(^".concat(s,"$)|(^").concat(c,"$)|(^").concat(l,"$)"));e.exports=t.default,e.exports.default=t.default},7155:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.simplifyingTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(4533),s=r(60498),c=r(46183),u=r(1391);t.simplifyingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(o.BlockStatementSimplifyTransformer).whenTargetNamed(a.NodeTransformer.BlockStatementSimplifyTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(s.ExpressionStatementsMergeTransformer).whenTargetNamed(a.NodeTransformer.ExpressionStatementsMergeTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(c.IfStatementSimplifyTransformer).whenTargetNamed(a.NodeTransformer.IfStatementSimplifyTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.VariableDeclarationsMergeTransformer).whenTargetNamed(a.NodeTransformer.VariableDeclarationsMergeTransformer)})},7520:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassMetadataPropertiesFromMetadataReader=function(e,t){const r=t.getPropertiesMetadata(e),i=new Map;for(const t of Reflect.ownKeys(r)){const a=r[t];i.set(t,(0,n.getPropertyMetadataFromLegacyMetadata)(e,t,a))}return i};const n=r(23498)},7673:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,i.default)(t,c)).crockford)return s.test(e);if(e.length%8==0&&o.test(e))return!0;return!1};var n=a(r(83399)),i=a(r(93610));function a(e){return e&&e.__esModule?e:{default:e}}var o=/^[A-Z2-7]+=*$/,s=/^[A-HJKMNP-TV-Z0-9]+$/,c={crockford:!1};e.exports=t.default,e.exports.default=t.default},8156:e=>{"use strict";e.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}},8461:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(e);var r=a;(t=t||{}).allow_hyphens&&(r=o);if(!r.test(e))return!1;e=e.replace(/-/g,"");for(var n=0,s=2,c=0;c<14;c++){var u=e.substring(14-c-1,14-c),l=parseInt(u,10)*s;n+=l>=10?l%10+1:l,1===s?s+=1:s-=1}if((10-n%10)%10!==parseInt(e.substring(14,15),10))return!1;return!0};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[0-9]{15}$/,o=/^\d{2}-\d{6}-\d{6}-\d{1}$/;e.exports=t.default,e.exports.default=t.default},8507:(e,t,r)=>{const n=r(15659);function i(e){const t=function(){const e={},t=Object.keys(n);for(let r=t.length,n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassMetadataFromMetadataReader=function(e,t){const r=(0,n.getReflectMetadata)(e,i.POST_CONSTRUCT),s=(0,n.getReflectMetadata)(e,i.PRE_DESTROY);return{constructorArguments:(0,a.getClassMetadataConstructorArgumentsFromMetadataReader)(e,t),lifecycle:{postConstructMethodName:r?.value,preDestroyMethodName:s?.value},properties:(0,o.getClassMetadataPropertiesFromMetadataReader)(e,t)}};const n=r(59517),i=r(83313),a=r(86249),o=r(7520)},9696:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingMessage=void 0;r(91576);var n;!function(e){e.EmptySourceCode="Empty source code. Obfuscation canceled...",e.ObfuscationCompleted="Obfuscation completed. Total time: %s sec.",e.ObfuscationStarted="Obfuscation started...",e.RandomGeneratorSeed="Random generator seed: %s...",e.CodeTransformationStage="Code transformation stage: %s...",e.NodeTransformationStage="AST transformation stage: %s...",e.Version="Version: %s",e.JavaScriptObfuscatorProAdFirstPart="🛡️ JavaScript Obfuscator Pro is now available — with powerful Virtual Machine-based obfuscation\n(bytecode virtualization, anti-decompilation, unique opcode and VM structure each compilation, and more).",e.JavaScriptObfuscatorProAdSecondPart="👉️ Get your API key at https://obfuscator.io and start using Virtual Machine obfuscation with javascript-obfuscator package."}(n||(t.LoggingMessage=n={}))},9750:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassMetadataProperties=function(e){const t=(0,n.getReflectMetadata)(e,i.TAGGED_PROP),r=new Map;if(void 0!==t)for(const n of Reflect.ownKeys(t)){const i=t[n];r.set(n,(0,a.getPropertyMetadataFromLegacyMetadata)(e,n,i))}return r};const n=r(59517),i=r(83313),a=r(23498)},9756:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowReplacer=void 0;const s=r(71519),c=r(32287),u=r(96747),l=r(94914),d=r(23615),f=r(90253);let p=n=class extends l.AbstractControlFlowReplacer{constructor(e,t,r,n){super(e,t,r,n)}replace(e,t,r){if(d.NodeGuards.isPropertyNode(t)&&t.key===e)return e;if(!f.NodeLiteralUtils.isStringLiteralNode(e)||e.value.length<3)return e;const i=e.value,a=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.LiteralNode);a.initialize(e);const o=this.insertCustomNodeToControlFlowStorage(a,r,i,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),o)}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const n=r.getNode()[0];if(!n||!d.NodeGuards.isExpressionStatementNode(n))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return n.expression}};t.StringLiteralControlFlowReplacer=p,p.usingExistingIdentifierChance=1,t.StringLiteralControlFlowReplacer=p=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__IControlFlowCustomNode)),o(1,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(3,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Function,Object,Object])],p)},10094:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabetSwapped=void 0;const n=r(98376),i=r(218),a=r(23877);t.base64alphabetSwapped=`${i.alphabetString}${n.alphabetStringUppercase}${a.numbersString}+/=`},10548:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializable=function(){return(e,t)=>{const l=e[c];if(!l||"function"!=typeof l)throw new Error(`\`${c}\` method with initialization logic not found. \`@${r}\` decorator requires \`${c}\` method`);return u(i,!1,e),u(a,new Set,e),u(o,new Set,e),function(e){const t=Object.getOwnPropertyNames(e),r=new Set([c,s]);t.forEach(t=>{var s;const u=Reflect.getMetadata(a,e),l=Reflect.getMetadata(o,e);if(r.has(t)||u.has(t)||l.has(t))return;if("function"!=typeof e[t])return;const d=null!==(s=Object.getOwnPropertyDescriptor(e,t))&&void 0!==s?s:n,f=d.value;Object.defineProperty(e,t,{...d,value(){if(!Reflect.getMetadata(i,this))throw new Error(`Class should be initialized with \`${c}()\` method`);return f.apply(this,arguments)}}),l.add(t)})}(e),function(e,t){var r;const a=null!==(r=Object.getOwnPropertyDescriptor(e,c))&&void 0!==r?r:n,o=a.value;Object.defineProperty(e,c,{...a,value:function(){Reflect.defineMetadata(i,!0,this);const e=o.apply(this,arguments);return this[t],e}})}(e,t),function(e,t){var r;const i=Reflect.getMetadata(a,e);i.add(t);const o=`_${t.toString()}`,s=null!==(r=Object.getOwnPropertyDescriptor(e,o))&&void 0!==r?r:n;return Object.defineProperty(e,t,{...s,get:function(){if(void 0===this[o])throw new Error(`Property \`${t.toString()}\` is not initialized! Initialize it first!`);return this[o]},set:function(e){this[o]=e}}),s}(e,t)}};const r="initializable",n={configurable:!0,enumerable:!0},i="_initialized",a="_initializablePropertiesSet",o="_wrappedMethodsSet",s="constructor",c="initialize";function u(e,t,r){Reflect.hasMetadata(e,r)||Reflect.defineMetadata(e,t,r)}},10618:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTransformer=void 0;const s=r(71519),c=r(32287),u=r(96390),l=r(18436),d=r(68736),f=r(60056),p=r(76893),h=r(23615),m=r(90253),g=r(12720),b=r(25120);let y=n=class extends p.AbstractNodeTransformer{constructor(e,t,r,n,i,a,o,s,c){super(e,t),this.runAfter=[u.NodeTransformer.StringArrayRotateFunctionTransformer],this.literalNodesCacheStorage=r,this.visitedLexicalScopeNodesStackStorage=n,this.stringArrayStorage=i,this.stringArrayScopeCallsWrappersDataStorage=a,this.stringArrayStorageAnalyzer=o,this.identifierNamesGenerator=s(t),this.stringArrayTransformerCustomNodeFactory=c}getVisitor(e){return e===l.NodeTransformationStage.StringArray?{enter:(e,t)=>{if(h.NodeGuards.isProgramNode(e)&&this.prepareNode(e),t&&h.NodeGuards.isLiteralNode(e)&&!g.NodeMetadata.isStringArrayCallLiteralNode(e))return this.transformNode(e,t)}}:null}prepareNode(e){this.options.stringArray&&this.stringArrayStorageAnalyzer.analyze(e),this.options.stringArrayShuffle&&this.stringArrayStorage.shuffleStorage(),this.options.stringArrayRotate&&this.stringArrayStorage.rotateStorage()}transformNode(e,t){if(!m.NodeLiteralUtils.isStringLiteralNode(e)||m.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=e.value,n=this.stringArrayStorageAnalyzer.getItemDataForLiteralNode(e),i=this.literalNodesCacheStorage.buildKey(r,n);let a;if(this.literalNodesCacheStorage.shouldUseCachedValue(i,n)){const e=this.literalNodesCacheStorage.get(i);a=b.NodeUtils.clone(e)}else a=n?this.getStringArrayCallNode(n):e,this.literalNodesCacheStorage.set(i,a);return b.NodeUtils.parentizeNode(a,t),a}getStringArrayCallNode(e){const t=this.getStringArrayScopeCallsWrapperData(e),{decodeKey:r,index:n}=e,i=this.stringArrayTransformerCustomNodeFactory(d.StringArrayCustomNode.StringArrayCallNode);i.initialize(n,this.stringArrayStorage.getIndexShiftAmount(),t,r);const a=i.getNode()[0];if(!h.NodeGuards.isExpressionStatementNode(a))throw new Error("`stringArrayCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}getStringArrayScopeCallsWrapperData(e){return this.options.stringArrayWrappersCount?this.getUpperStringArrayScopeCallsWrapperData(e):this.getRootStringArrayScopeCallsWrapperData(e)}getRootStringArrayScopeCallsWrapperData(e){const{encoding:t}=e;return{name:this.stringArrayStorage.getStorageCallsWrapperName(t),index:0,parameterIndexesData:null}}getUpperStringArrayScopeCallsWrapperData(e){var t,r,n;const{encoding:i}=e,a=null!==(t=this.visitedLexicalScopeNodesStackStorage.getLastElement())&&void 0!==t?t:null;if(!a)throw new Error("Cannot find current lexical scope body node");const o=null!==(n=null===(r=this.getAndUpdateStringArrayScopeCallsWrappersDataByEncoding(a,e)[i])||void 0===r?void 0:r.scopeCallsWrappersData)&&void 0!==n?n:[];return this.randomGenerator.getRandomGenerator().pickone(o)}getAndUpdateStringArrayScopeCallsWrappersDataByEncoding(e,t){var r,n,i;const{encoding:a}=t,o=null!==(r=this.stringArrayScopeCallsWrappersDataStorage.get(e))&&void 0!==r?r:{};if((null!==(i=null===(n=o[a])||void 0===n?void 0:n.scopeCallsWrappersData)&&void 0!==i?i:[]).length===this.options.stringArrayWrappersCount)return o;const s={name:h.NodeGuards.isProgramNode(e)?this.identifierNamesGenerator.generateForGlobalScope():this.identifierNamesGenerator.generateNext(),index:this.getStringArrayCallsWrapperShiftedIndex(),parameterIndexesData:this.getStringArrayCallsWrapperParameterIndexesData()};let c=o[a];return c?c.scopeCallsWrappersData.push(s):(c={encoding:a,scopeCallsWrappersData:[s]},o[a]=c),this.stringArrayScopeCallsWrappersDataStorage.set(e,o),o}getStringArrayCallsWrapperShiftedIndex(){return this.options.stringArrayWrappersType===f.StringArrayWrappersType.Function?this.randomGenerator.getRandomInteger(n.minShiftedIndexValue,n.maxShiftedIndexValue):0}getStringArrayCallsWrapperParameterIndexesData(){if(this.options.stringArrayWrappersType!==f.StringArrayWrappersType.Function)return null;const e=this.options.stringArrayWrappersParametersMaxCount-1,t=this.randomGenerator.getRandomInteger(0,e);return{valueIndexParameterIndex:t,decodeKeyParameterIndex:this.randomGenerator.getRandomIntegerExcluding(0,e,[t])}}};t.StringArrayTransformer=y,y.minShiftedIndexValue=-1e3,y.maxShiftedIndexValue=1e3,t.StringArrayTransformer=y=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptions)),o(2,(0,s.inject)(c.ServiceIdentifiers.ILiteralNodesCacheStorage)),o(3,(0,s.inject)(c.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage)),o(4,(0,s.inject)(c.ServiceIdentifiers.IStringArrayStorage)),o(5,(0,s.inject)(c.ServiceIdentifiers.IStringArrayScopeCallsWrappersDataStorage)),o(6,(0,s.inject)(c.ServiceIdentifiers.IStringArrayStorageAnalyzer)),o(7,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(8,(0,s.inject)(c.ServiceIdentifiers.Factory__IStringArrayCustomNode)),a("design:paramtypes",[Object,Object,Object,Object,Object,Object,Object,Function,Function])],y)},10676:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),t in a)return a[t](e);if("any"===t){for(var r in a){if((0,a[r])(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a={"cs-CZ":function(e){return/^(([ABCDEFHIJKLMNPRSTUVXYZ]|[0-9])-?){5,8}$/.test(e)},"de-DE":function(e){return/^((A|AA|AB|AC|AE|AH|AK|AM|AN|AÖ|AP|AS|AT|AU|AW|AZ|B|BA|BB|BC|BE|BF|BH|BI|BK|BL|BM|BN|BO|BÖ|BS|BT|BZ|C|CA|CB|CE|CO|CR|CW|D|DA|DD|DE|DH|DI|DL|DM|DN|DO|DU|DW|DZ|E|EA|EB|ED|EE|EF|EG|EH|EI|EL|EM|EN|ER|ES|EU|EW|F|FB|FD|FF|FG|FI|FL|FN|FO|FR|FS|FT|FÜ|FW|FZ|G|GA|GC|GD|GE|GF|GG|GI|GK|GL|GM|GN|GÖ|GP|GR|GS|GT|GÜ|GV|GW|GZ|H|HA|HB|HC|HD|HE|HF|HG|HH|HI|HK|HL|HM|HN|HO|HP|HR|HS|HU|HV|HX|HY|HZ|IK|IL|IN|IZ|J|JE|JL|K|KA|KB|KC|KE|KF|KG|KH|KI|KK|KL|KM|KN|KO|KR|KS|KT|KU|KW|KY|L|LA|LB|LC|LD|LF|LG|LH|LI|LL|LM|LN|LÖ|LP|LR|LU|M|MA|MB|MC|MD|ME|MG|MH|MI|MK|ML|MM|MN|MO|MQ|MR|MS|MÜ|MW|MY|MZ|N|NB|ND|NE|NF|NH|NI|NK|NM|NÖ|NP|NR|NT|NU|NW|NY|NZ|OA|OB|OC|OD|OE|OF|OG|OH|OK|OL|OP|OS|OZ|P|PA|PB|PE|PF|PI|PL|PM|PN|PR|PS|PW|PZ|R|RA|RC|RD|RE|RG|RH|RI|RL|RM|RN|RO|RP|RS|RT|RU|RV|RW|RZ|S|SB|SC|SE|SG|SI|SK|SL|SM|SN|SO|SP|SR|ST|SU|SW|SY|SZ|TE|TF|TG|TO|TP|TR|TS|TT|TÜ|ÜB|UE|UH|UL|UM|UN|V|VB|VG|VK|VR|VS|W|WA|WB|WE|WF|WI|WK|WL|WM|WN|WO|WR|WS|WT|WÜ|WW|WZ|Z|ZE|ZI|ZP|ZR|ZW|ZZ)[- ]?[A-Z]{1,2}[- ]?\d{1,4}|(ABG|ABI|AIB|AIC|ALF|ALZ|ANA|ANG|ANK|APD|ARN|ART|ASL|ASZ|AUR|AZE|BAD|BAR|BBG|BCH|BED|BER|BGD|BGL|BID|BIN|BIR|BIT|BIW|BKS|BLB|BLK|BNA|BOG|BOH|BOR|BOT|BRA|BRB|BRG|BRK|BRL|BRV|BSB|BSK|BTF|BÜD|BUL|BÜR|BÜS|BÜZ|CAS|CHA|CLP|CLZ|COC|COE|CUX|DAH|DAN|DAU|DBR|DEG|DEL|DGF|DIL|DIN|DIZ|DKB|DLG|DON|DUD|DÜW|EBE|EBN|EBS|ECK|EIC|EIL|EIN|EIS|EMD|EMS|ERB|ERH|ERK|ERZ|ESB|ESW|FDB|FDS|FEU|FFB|FKB|FLÖ|FOR|FRG|FRI|FRW|FTL|FÜS|GAN|GAP|GDB|GEL|GEO|GER|GHA|GHC|GLA|GMN|GNT|GOA|GOH|GRA|GRH|GRI|GRM|GRZ|GTH|GUB|GUN|GVM|HAB|HAL|HAM|HAS|HBN|HBS|HCH|HDH|HDL|HEB|HEF|HEI|HER|HET|HGN|HGW|HHM|HIG|HIP|HMÜ|HOG|HOH|HOL|HOM|HOR|HÖS|HOT|HRO|HSK|HST|HVL|HWI|IGB|ILL|JÜL|KEH|KEL|KEM|KIB|KLE|KLZ|KÖN|KÖT|KÖZ|KRU|KÜN|KUS|KYF|LAN|LAU|LBS|LBZ|LDK|LDS|LEO|LER|LEV|LIB|LIF|LIP|LÖB|LOS|LRO|LSZ|LÜN|LUP|LWL|MAB|MAI|MAK|MAL|MED|MEG|MEI|MEK|MEL|MER|MET|MGH|MGN|MHL|MIL|MKK|MOD|MOL|MON|MOS|MSE|MSH|MSP|MST|MTK|MTL|MÜB|MÜR|MYK|MZG|NAB|NAI|NAU|NDH|NEA|NEB|NEC|NEN|NES|NEW|NMB|NMS|NOH|NOL|NOM|NOR|NVP|NWM|OAL|OBB|OBG|OCH|OHA|ÖHR|OHV|OHZ|OPR|OSL|OVI|OVL|OVP|PAF|PAN|PAR|PCH|PEG|PIR|PLÖ|PRÜ|QFT|QLB|RDG|REG|REH|REI|RID|RIE|ROD|ROF|ROK|ROL|ROS|ROT|ROW|RSL|RÜD|RÜG|SAB|SAD|SAN|SAW|SBG|SBK|SCZ|SDH|SDL|SDT|SEB|SEE|SEF|SEL|SFB|SFT|SGH|SHA|SHG|SHK|SHL|SIG|SIM|SLE|SLF|SLK|SLN|SLS|SLÜ|SLZ|SMÜ|SOB|SOG|SOK|SÖM|SON|SPB|SPN|SRB|SRO|STA|STB|STD|STE|STL|SUL|SÜW|SWA|SZB|TBB|TDO|TET|TIR|TÖL|TUT|UEM|UER|UFF|USI|VAI|VEC|VER|VIB|VIE|VIT|VOH|WAF|WAK|WAN|WAR|WAT|WBS|WDA|WEL|WEN|WER|WES|WHV|WIL|WIS|WIT|WIZ|WLG|WMS|WND|WOB|WOH|WOL|WOR|WOS|WRN|WSF|WST|WSW|WTL|WTM|WUG|WÜM|WUN|WUR|WZL|ZEL|ZIG)[- ]?(([A-Z][- ]?\d{1,4})|([A-Z]{2}[- ]?\d{1,3})))[- ]?(E|H)?$/.test(e)},"de-LI":function(e){return/^FL[- ]?\d{1,5}[UZ]?$/.test(e)},"en-IN":function(e){return/^[A-Z]{2}[ -]?[0-9]{1,2}(?:[ -]?[A-Z])(?:[ -]?[A-Z]*)?[ -]?[0-9]{4}$/.test(e)},"en-SG":function(e){return/^[A-Z]{3}[ -]?[\d]{4}[ -]?[A-Z]{1}$/.test(e)},"es-AR":function(e){return/^(([A-Z]{2} ?[0-9]{3} ?[A-Z]{2})|([A-Z]{3} ?[0-9]{3}))$/.test(e)},"fi-FI":function(e){return/^(?=.{4,7})(([A-Z]{1,3}|[0-9]{1,3})[\s-]?([A-Z]{1,3}|[0-9]{1,5}))$/.test(e)},"hu-HU":function(e){return/^((((?!AAA)(([A-NPRSTVZWXY]{1})([A-PR-Z]{1})([A-HJ-NPR-Z]))|(A[ABC]I)|A[ABC]O|A[A-W]Q|BPI|BPO|UCO|UDO|XAO)-(?!000)\d{3})|(M\d{6})|((CK|DT|CD|HC|H[ABEFIKLMNPRSTVX]|MA|OT|R[A-Z]) \d{2}-\d{2})|(CD \d{3}-\d{3})|(C-(C|X) \d{4})|(X-(A|B|C) \d{4})|(([EPVZ]-\d{5}))|(S A[A-Z]{2} \d{2})|(SP \d{2}-\d{2}))$/.test(e)},"pt-BR":function(e){return/^[A-Z]{3}[ -]?[0-9][A-Z][0-9]{2}|[A-Z]{3}[ -]?[0-9]{4}$/.test(e)},"pt-PT":function(e){return/^(([A-Z]{2}[ -·]?[0-9]{2}[ -·]?[0-9]{2})|([0-9]{2}[ -·]?[A-Z]{2}[ -·]?[0-9]{2})|([0-9]{2}[ -·]?[0-9]{2}[ -·]?[A-Z]{2})|([A-Z]{2}[ -·]?[0-9]{2}[ -·]?[A-Z]{2}))$/.test(e)},"sq-AL":function(e){return/^[A-Z]{2}[- ]?((\d{3}[- ]?(([A-Z]{2})|T))|(R[- ]?\d{3}))$/.test(e)},"sv-SE":function(e){return/^[A-HJ-PR-UW-Z]{3} ?[\d]{2}[A-HJ-PR-UW-Z1-9]$|(^[A-ZÅÄÖ ]{2,7}$)/.test(e.trim())},"en-PK":function(e){return/(^[A-Z]{2}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{3}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]{4}((\s|-){0,1})[0-9]{3,4}((\s|-)[0-9]{2}){0,1}$)|(^[A-Z]((\s|-){0,1})[0-9]{4}((\s|-)[0-9]{2}){0,1}$)/.test(e.trim())}};e.exports=t.default,e.exports.default=t.default},10734:(e,t,r)=>{const n=r(15659),i=r(8507),a={};Object.keys(n).forEach(e=>{a[e]={},Object.defineProperty(a[e],"channels",{value:n[e].channels}),Object.defineProperty(a[e],"labels",{value:n[e].labels});const t=i(e);Object.keys(t).forEach(r=>{const n=t[r];a[e][r]=function(e){const t=function(...t){const r=t[0];if(null==r)return r;r.length>1&&(t=r);const n=e(t);if("object"==typeof n)for(let e=n.length,t=0;t1&&(t=r),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}(n)})}),e.exports=a},10955:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiError=void 0;class r extends Error{constructor(e,t,r){super(e),this.name="ApiError",this.statusCode=t,this.response=r}}t.ApiError=r},10958:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.unmanaged=function(){return function(e,t,r){var n=new s.Metadata(o.UNMANAGED_TAG,!0);(0,c.tagParameter)(e,t,r,n)}};var o=a(r(2006)),s=r(14425),c=r(24157)},11440:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MapStorage=void 0;const o=r(71519),s=r(32287),c=r(10548);let u=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in map storage with key \`${e}\``);return t}getKeyOf(e){for(const[t,r]of this.storage)if(e===r)return t;return null}getLength(){return this.storage.size}getStorage(){return this.storage}getStorageAsDictionary(){return Object.fromEntries(this.storage)}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}mergeWith(e,t=!1){this.storage=new Map([...this.storage,...e.getStorage()]),t&&(this.storageId=e.getStorageId())}set(e,t){this.storage.set(e,t)}};t.MapStorage=u,n([(0,c.initializable)(),i("design:type",String)],u.prototype,"storageId",void 0),n([(0,c.initializable)(),i("design:type",Map)],u.prototype,"storage",void 0),n([(0,o.postConstruct)(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],u.prototype,"initialize",null),t.MapStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},11839:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DEFAULT_PRESET=void 0;const n=r(93844),i=r(72167),a=r(94838),o=r(36833),s=r(54042),c=r(48096),u=r(66822),l=r(70885),d=r(60056);t.DEFAULT_PRESET=Object.freeze({compact:!0,config:"",controlFlowFlattening:!1,controlFlowFlatteningThreshold:.75,deadCodeInjection:!1,deadCodeInjectionThreshold:.4,debugProtection:!1,debugProtectionInterval:0,disableConsoleOutput:!1,domainLock:[],domainLockRedirectUrl:"about:blank",exclude:[],forceTransformStrings:[],identifierNamesCache:null,identifierNamesGenerator:n.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,identifiersPrefix:"",identifiersDictionary:[],ignoreImports:!1,inputFileName:"",log:!1,numbersToExpressions:!1,optionsPreset:a.OptionsPreset.Default,renameGlobals:!1,renameProperties:!1,renamePropertiesMode:o.RenamePropertiesMode.Safe,reservedNames:[],reservedStrings:[],stringArrayRotate:!0,seed:0,selfDefending:!1,stringArrayShuffle:!0,simplify:!0,sourceMap:!1,sourceMapBaseUrl:"",sourceMapFileName:"",sourceMapMode:s.SourceMapMode.Separate,sourceMapSourcesMode:c.SourceMapSourcesMode.SourcesContent,splitStrings:!1,splitStringsChunkLength:10,stringArray:!0,stringArrayCallsTransform:!1,stringArrayCallsTransformThreshold:.5,stringArrayEncoding:[l.StringArrayEncoding.None],stringArrayIndexesType:[u.StringArrayIndexesType.HexadecimalNumber],stringArrayIndexShift:!0,stringArrayWrappersChainedCalls:!0,stringArrayWrappersCount:1,stringArrayWrappersParametersMaxCount:2,stringArrayWrappersType:d.StringArrayWrappersType.Variable,stringArrayThreshold:.75,target:i.ObfuscationTarget.Browser,transformObjectKeys:!1,unicodeEscapeSequence:!1})},11980:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumericStringIndexNode=void 0;const o=r(71519),s=r(32287),c=r(79883),u=r(91363),l=r(57876);let d=class extends c.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=l.NumberUtils.toHex(e);return u.NodeFactory.literalNode(t)}};t.StringArrayHexadecimalNumericStringIndexNode=d,t.StringArrayHexadecimalNumericStringIndexNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],d)},12408:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(d.NodeGuards.isFunctionExpressionNode(e)&&n&&d.NodeGuards.isVariableDeclaratorNode(n)&&d.NodeGuards.isIdentifierNode(n.id)&&n.id.name===t)return r=e.body,u.VisitorOption.Break}}),r}};t.FunctionExpressionCalleeDataExtractor=p,t.FunctionExpressionCalleeDataExtractor=p=o([(0,c.injectable)()],p)},12483:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),t){var r=new RegExp("[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+$"),"g");return e.replace(r,"")}var n=e.length-1;for(;/\s/.test(e.charAt(n));)n-=1;return e.slice(0,n+1)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},12505:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CalleeDataExtractor=void 0,function(e){e.FunctionDeclarationCalleeDataExtractor="FunctionDeclarationCalleeDataExtractor",e.FunctionExpressionCalleeDataExtractor="FunctionExpressionCalleeDataExtractor",e.ObjectExpressionCalleeDataExtractor="ObjectExpressionCalleeDataExtractor"}(r||(t.CalleeDataExtractor=r={}))},12720:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeMetadata=void 0;class r{static set(e,t){var r;e.metadata=Object.assign(null!==(r=e.metadata)&&void 0!==r?r:{},t)}static get(e,t){return void 0!==e.metadata?e.metadata[t]:void 0}static isEvalHostNode(e){return!0===r.get(e,"evalHostNode")}static isForceTransformNode(e){return!0===r.get(e,"forceTransformNode")}static isIgnoredNode(e){return!0===r.get(e,"ignoredNode")}static isPropertyKeyToRenameNode(e){return!0===r.get(e,"propertyKeyToRenameNode")}static isStringArrayCallLiteralNode(e){return!0===r.get(e,"stringArrayCallLiteralNode")}}t.NodeMetadata=r},12798:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRule=void 0;const n=r(65063);t.DomainLockRule=e=>{if(e.domainLock.length){const t=[];for(const r of e.domainLock)t.push(n.Utils.extractDomainFrom(r));e={...e,domainLock:t}}return e}},12818:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getConstructorArgumentMetadataFromLegacyMetadata=function(e,t,r){try{return(0,a.getClassElementMetadataFromLegacyMetadata)(r)}catch(r){throw n.InversifyCoreError.isErrorOfKind(r,i.InversifyCoreErrorKind.missingInjectionDecorator)?new n.InversifyCoreError(i.InversifyCoreErrorKind.missingInjectionDecorator,`Expected a single @inject, @multiInject or @unmanaged decorator at type "${e.name}" at constructor arguments at index "${t.toString()}"`,{cause:r}):r}};const n=r(21773),i=r(94931),a=r(44063)},12920:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeTransformersModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(75252);t.nodeTransformersModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.Factory__INodeTransformer).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.INodeTransformer)),e(a.ServiceIdentifiers.INodeTransformerNamesGroupsBuilder).to(o.NodeTransformerNamesGroupsBuilder).inSingletonScope()})},12930:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardsTransformer=void 0;const s=r(71519),c=r(32287),u=r(96390),l=r(18436),d=r(85032),f=r(50275),p=r(76893),h=r(23615),m=r(12720);let g=n=class extends p.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.runAfter=[u.NodeTransformer.ParentificationTransformer,u.NodeTransformer.VariablePreserveTransformer],this.obfuscatingGuards=n.obfuscatingGuardsList.map(e)}getVisitor(e){return e===l.NodeTransformationStage.Preparing?{enter:(e,t)=>this.transformNode(e,t)}:null}transformNode(e,t){const r=this.obfuscatingGuards.map(t=>t.check(e));return this.setNodeMetadata(e,r),e}setNodeMetadata(e,t){let r=!1,n=!1;t.every(e=>e===f.ObfuscatingGuardResult.Transform)||(r=t.includes(f.ObfuscatingGuardResult.ForceTransform),n=!r&&t.includes(f.ObfuscatingGuardResult.Ignore)),m.NodeMetadata.set(e,{forceTransformNode:r&&!h.NodeGuards.isProgramNode(e),ignoredNode:n&&!h.NodeGuards.isProgramNode(e)})}};t.ObfuscatingGuardsTransformer=g,g.obfuscatingGuardsList=[d.ObfuscatingGuard.BlackListObfuscatingGuard,d.ObfuscatingGuard.ConditionalCommentObfuscatingGuard,d.ObfuscatingGuard.ForceTransformStringObfuscatingGuard,d.ObfuscatingGuard.IgnoredImportObfuscatingGuard,d.ObfuscatingGuard.ImportMetaObfuscationGuard,d.ObfuscatingGuard.ProcessEnvObfuscationGuard,d.ObfuscatingGuard.ReservedStringObfuscatingGuard],t.ObfuscatingGuardsTransformer=g=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__INodeGuard)),o(1,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Object,Object])],g)},12991:e=>{"use strict";const t=/(?:\\(u(?:[a-f\d]{4}|\{[a-f\d]{1,6}\})|x[a-f\d]{2}|.))|(?:\{(~)?(\w+(?:\([^)]*\))?(?:\.\w+(?:\([^)]*\))?)*)(?:[ \t]|(?=\r?\n)))|(\})|((?:.|[\r\n\f])+?)/gi,r=/(?:^|\.)(\w+)(?:\(([^)]*)\))?/g,n=/^(['"])((?:\\.|(?!\1)[^\\])*)\1$/,i=/\\(u(?:[a-f\d]{4}|{[a-f\d]{1,6}})|x[a-f\d]{2}|.)|([^\\])/gi,a=new Map([["n","\n"],["r","\r"],["t","\t"],["b","\b"],["f","\f"],["v","\v"],["0","\0"],["\\","\\"],["e",""],["a",""]]);function o(e){const t="u"===e[0],r="{"===e[1];return t&&!r&&5===e.length||"x"===e[0]&&3===e.length?String.fromCharCode(parseInt(e.slice(1),16)):t&&r?String.fromCodePoint(parseInt(e.slice(2,-1),16)):a.get(e)||e}function s(e,t){const r=[],a=t.trim().split(/\s*,\s*/g);let s;for(const t of a){const a=Number(t);if(Number.isNaN(a)){if(!(s=t.match(n)))throw new Error(`Invalid Chalk template style argument: ${t} (in style '${e}')`);r.push(s[2].replace(i,(e,t,r)=>t?o(t):r))}else r.push(a)}return r}function c(e){r.lastIndex=0;const t=[];let n;for(;null!==(n=r.exec(e));){const e=n[1];if(n[2]){const r=s(e,n[2]);t.push([e].concat(r))}else t.push([e])}return t}function u(e,t){const r={};for(const e of t)for(const t of e.styles)r[t[0]]=e.inverse?null:t.slice(1);let n=e;for(const[e,t]of Object.entries(r))if(Array.isArray(t)){if(!(e in n))throw new Error(`Unknown Chalk style: ${e}`);n=t.length>0?n[e](...t):n[e]}return n}e.exports=(e,r)=>{const n=[],i=[];let a=[];if(r.replace(t,(t,r,s,l,d,f)=>{if(r)a.push(o(r));else if(l){const t=a.join("");a=[],i.push(0===n.length?t:u(e,n)(t)),n.push({inverse:s,styles:c(l)})}else if(d){if(0===n.length)throw new Error("Found extraneous } in Chalk template literal");i.push(u(e,n)(a.join(""))),a=[],n.pop()}else a.push(f)}),i.push(a.join("")),n.length>0){const e=`Chalk template literal is missing ${n.length} closing bracket${1===n.length?"":"s"} (\`}\`)`;throw new Error(e)}return i.join("")}},13013:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o"),s=`...${n.slice(i,a).replace(/^\s+/,"")}...`;throw new Error(`ERROR at line ${r.line}: ${t}\n${o} ${s}`)}}t.ASTParserFacade=l,l.colorError=u.default.red,l.nearestSymbolsCount=15,l.sourceTypes=["script","module"]},13165:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getFirstArrayDuplicate=function(e){for(var t=new Set,r=0,n=e;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.farsiLocales=t.englishLocales=t.dotDecimal=t.decimal=t.commaDecimal=t.bengaliLocales=t.arabicLocales=t.alphanumeric=t.alpha=void 0;for(var r,n=t.alpha={"en-US":/^[A-Z]+$/i,"az-AZ":/^[A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[А-Я]+$/i,"cs-CZ":/^[A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[A-ZÆØÅ]+$/i,"de-DE":/^[A-ZÄÖÜß]+$/i,"el-GR":/^[Α-ώ]+$/i,"es-ES":/^[A-ZÁÉÍÑÓÚÜ]+$/i,"fa-IR":/^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i,"fi-FI":/^[A-ZÅÄÖ]+$/i,"fr-FR":/^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[A-ZÀÉÈÌÎÓÒÙ]+$/i,"ja-JP":/^[ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,"nb-NO":/^[A-ZÆØÅ]+$/i,"nl-NL":/^[A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[A-ZÆØÅ]+$/i,"hu-HU":/^[A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"pl-PL":/^[A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[А-ЯЁ]+$/i,"kk-KZ":/^[А-ЯЁ\u04D8\u04B0\u0406\u04A2\u0492\u04AE\u049A\u04E8\u04BA]+$/i,"sl-SI":/^[A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๐\s]+$/i,"tr-TR":/^[A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[А-ЩЬЮЯЄIЇҐі]+$/i,"vi-VN":/^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,"ko-KR":/^[ㄱ-ㅎㅏ-ㅣ가-힣]*$/,"ku-IQ":/^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,ar:/^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[א-ת]+$/,fa:/^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i,bn:/^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,eo:/^[ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,"hi-IN":/^[\u0900-\u0961]+[\u0972-\u097F]*$/i,"si-LK":/^[\u0D80-\u0DFF]+$/,"ta-IN":/^[\u0B80-\u0BFF]+$/i,"te-IN":/^[\u0C00-\u0C7F]+$/i,"kn-IN":/^[\u0C80-\u0CFF]+$/i,"ml-IN":/^[\u0D00-\u0D7F]+$/i,"gu-IN":/^[\u0A80-\u0AFF]+$/i,"pa-IN":/^[\u0A00-\u0A7F]+$/i,"or-IN":/^[\u0B00-\u0B7F]+$/i},i=t.alphanumeric={"en-US":/^[0-9A-Z]+$/i,"az-AZ":/^[0-9A-VXYZÇƏĞİıÖŞÜ]+$/i,"bg-BG":/^[0-9А-Я]+$/i,"cs-CZ":/^[0-9A-ZÁČĎÉĚÍŇÓŘŠŤÚŮÝŽ]+$/i,"da-DK":/^[0-9A-ZÆØÅ]+$/i,"de-DE":/^[0-9A-ZÄÖÜß]+$/i,"el-GR":/^[0-9Α-ω]+$/i,"es-ES":/^[0-9A-ZÁÉÍÑÓÚÜ]+$/i,"fi-FI":/^[0-9A-ZÅÄÖ]+$/i,"fr-FR":/^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i,"it-IT":/^[0-9A-ZÀÉÈÌÎÓÒÙ]+$/i,"ja-JP":/^[0-90-9ぁ-んァ-ヶヲ-゚一-龠ー・。、]+$/i,"hu-HU":/^[0-9A-ZÁÉÍÓÖŐÚÜŰ]+$/i,"nb-NO":/^[0-9A-ZÆØÅ]+$/i,"nl-NL":/^[0-9A-ZÁÉËÏÓÖÜÚ]+$/i,"nn-NO":/^[0-9A-ZÆØÅ]+$/i,"pl-PL":/^[0-9A-ZĄĆĘŚŁŃÓŻŹ]+$/i,"pt-PT":/^[0-9A-ZÃÁÀÂÄÇÉÊËÍÏÕÓÔÖÚÜ]+$/i,"ru-RU":/^[0-9А-ЯЁ]+$/i,"kk-KZ":/^[0-9А-ЯЁ\u04D8\u04B0\u0406\u04A2\u0492\u04AE\u049A\u04E8\u04BA]+$/i,"sl-SI":/^[0-9A-ZČĆĐŠŽ]+$/i,"sk-SK":/^[0-9A-ZÁČĎÉÍŇÓŠŤÚÝŽĹŔĽÄÔ]+$/i,"sr-RS@latin":/^[0-9A-ZČĆŽŠĐ]+$/i,"sr-RS":/^[0-9А-ЯЂЈЉЊЋЏ]+$/i,"sv-SE":/^[0-9A-ZÅÄÖ]+$/i,"th-TH":/^[ก-๙\s]+$/i,"tr-TR":/^[0-9A-ZÇĞİıÖŞÜ]+$/i,"uk-UA":/^[0-9А-ЩЬЮЯЄIЇҐі]+$/i,"ko-KR":/^[0-9ㄱ-ㅎㅏ-ㅣ가-힣]*$/,"ku-IQ":/^[٠١٢٣٤٥٦٧٨٩0-9ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i,"vi-VN":/^[0-9A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i,ar:/^[٠١٢٣٤٥٦٧٨٩0-9ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/,he:/^[0-9א-ת]+$/,fa:/^['0-9آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی۱۲۳۴۵۶۷۸۹۰']+$/i,bn:/^['ঀঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ৲৳৴৵৶৷৸৹৺৻']+$/,eo:/^[0-9ABCĈD-GĜHĤIJĴK-PRSŜTUŬVZ]+$/i,"hi-IN":/^[\u0900-\u0963]+[\u0966-\u097F]*$/i,"si-LK":/^[0-9\u0D80-\u0DFF]+$/,"ta-IN":/^[0-9\u0B80-\u0BFF.]+$/i,"te-IN":/^[0-9\u0C00-\u0C7F.]+$/i,"kn-IN":/^[0-9\u0C80-\u0CFF.]+$/i,"ml-IN":/^[0-9\u0D00-\u0D7F.]+$/i,"gu-IN":/^[0-9\u0A80-\u0AFF.]+$/i,"pa-IN":/^[0-9\u0A00-\u0A7F.]+$/i,"or-IN":/^[0-9\u0B00-\u0B7F.]+$/i},a=t.decimal={"en-US":".",ar:"٫"},o=t.englishLocales=["AU","GB","HK","IN","NZ","ZA","ZM"],s=0;s{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.reservedIdentifierNames=void 0,t.reservedIdentifierNames=["byte","case","char","do","else","enum","eval","for","goto","if","in","int","let","long","new","null","this","true","try","var","void","with","Array","Attr","Audio","Blob","Cache","Date","Error","Event","Feed","File","Hz","Image","Intl","Lock","Map","Math","Node","Proxy","Range","Rect","Set","Table","Text","Touch"]},13447:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.getFactoryDetails=t.ensureFullyBound=t.multiBindToService=void 0;var o=a(r(95507)),s=r(27801),c=r(92172),u=r(62817);t.multiBindToService=function(e){return function(t){return function(){for(var r=[],n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionThresholdRule=void 0;t.DeadCodeInjectionThresholdRule=e=>(0===e.deadCodeInjectionThreshold&&(e={...e,deadCodeInjection:!1,deadCodeInjectionThreshold:0}),e)},13662:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(t&&m.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,e=>{const{isGlobalDeclaration:t,variable:r,variableLexicalScopeNode:n}=e;if(!this.options.renameGlobals&&t){if(!r.defs.every(e=>"ImportBinding"===e.type||"CatchClause"===e.type))return}this.transformScopeVariableIdentifiers(r,n,t)}),e}transformScopeVariableIdentifiers(e,t,r){var n;const i=null!==(n=e.identifiers[0])&&void 0!==n?n:null;i&&this.isReplaceableIdentifierNode(i,t,e)&&(this.storeIdentifierName(i,t,r),this.replaceIdentifierName(i,t,e))}storeIdentifierName(e,t,r){r?this.identifierReplacer.storeGlobalName(e,t):this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const n=this.identifierReplacer.replace(e,t);r.identifiers.forEach(e=>{e.name=n.name}),r.references.forEach(t=>{t.identifier.name=e.name})}isReplaceableIdentifierNode(e,t,r){const n=e.parentNode;return!(!n||g.NodeMetadata.isIgnoredNode(e)||this.isProhibitedPropertyIdentifierNode(e,n)||this.isProhibitedPropertyAssignmentPatternIdentifierNode(e,n)||this.isProhibitedClassDeclarationNameIdentifierNode(r,e,n)||this.isProhibitedExportNamedClassDeclarationIdentifierNode(e,n)||this.isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,n)||this.isProhibitedExportNamedVariableDeclarationIdentifierNode(e,n)||this.isProhibitedImportSpecifierNode(e,n)||this.isProhibitedVariableNameUsedInObjectPatternNode(r,e,t)||m.NodeGuards.isLabelIdentifierNode(e,n))}isProhibitedClassDeclarationNameIdentifierNode(e,t,r){return m.NodeGuards.isClassDeclarationNode(e.scope.block)&&m.NodeGuards.isClassDeclarationNode(r)&&r.id===t}isProhibitedExportNamedClassDeclarationIdentifierNode(e,t){return m.NodeGuards.isClassDeclarationNode(t)&&t.id===e&&!!t.parentNode&&m.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedFunctionDeclarationIdentifierNode(e,t){return m.NodeGuards.isFunctionDeclarationNode(t)&&t.id===e&&!!t.parentNode&&m.NodeGuards.isExportNamedDeclarationNode(t.parentNode)}isProhibitedExportNamedVariableDeclarationIdentifierNode(e,t){return m.NodeGuards.isVariableDeclaratorNode(t)&&t.id===e&&!!t.parentNode&&m.NodeGuards.isVariableDeclarationNode(t.parentNode)&&!!t.parentNode.parentNode&&m.NodeGuards.isExportNamedDeclarationNode(t.parentNode.parentNode)}isProhibitedImportSpecifierNode(e,t){return m.NodeGuards.isImportSpecifierNode(t)&&t.imported.name===t.local.name}isProhibitedPropertyIdentifierNode(e,t){return m.NodeGuards.isPropertyNode(t)&&!t.computed&&m.NodeGuards.isIdentifierNode(t.key)&&m.NodeGuards.isIdentifierNode(e)&&t.shorthand&&t.key.name===e.name}isProhibitedPropertyAssignmentPatternIdentifierNode(e,t){return m.NodeGuards.isAssignmentPatternNode(t)&&t.left===e&&!!t.parentNode&&m.NodeGuards.isPropertyNode(t.parentNode)&&m.NodeGuards.isIdentifierNode(t.left)&&m.NodeGuards.isIdentifierNode(t.parentNode.key)&&t.left.name===t.parentNode.key.name}isProhibitedVariableNameUsedInObjectPatternNode(e,t,r){let n=this.lexicalScopesWithObjectPatternWithoutDeclarationMap.get(r);if(!1===n)return!1;if(!e.defs.some(e=>"var"===e.kind))return!1;let i=!1;return f.traverse(r,{enter:(e,r)=>{if(m.NodeGuards.isObjectPatternNode(e)&&r&&m.NodeGuards.isAssignmentExpressionNode(r)){n=!0;const r=e.properties;for(const e of r)if(i=m.NodeGuards.isPropertyNode(e)&&!e.computed&&e.shorthand&&m.NodeGuards.isIdentifierNode(e.key)&&t.name===e.key.name,i)return f.VisitorOption.Break}}}),this.lexicalScopesWithObjectPatternWithoutDeclarationMap.set(r,null!=n&&n),i}};t.ScopeIdentifiersTransformer=b,t.ScopeIdentifiersTransformer=b=o([(0,l.injectable)(),u(0,(0,l.inject)(d.ServiceIdentifiers.IIdentifierReplacer)),u(1,(0,l.inject)(d.ServiceIdentifiers.IRandomGenerator)),u(2,(0,l.inject)(d.ServiceIdentifiers.IOptions)),u(3,(0,l.inject)(d.ServiceIdentifiers.IScopeIdentifiersTraverser)),c("design:paramtypes",[Object,Object,Object,Object])],b)},13735:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)(e),(0,i.default)(e)%parseInt(t,10)===0};var n=a(r(83399)),i=a(r(33752));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},13752:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),e=Date.parse(e),isNaN(e)?null:new Date(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},14325:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,i.default)(e),!a.test(e))return!1;for(var t=0,r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ValidationErrorsFormatter=void 0;class r{static format(e){return e.reduce((e,t)=>[...e,r.formatWithNestedConstraints(t)],[]).join("\n")}static formatWithNestedConstraints(e){const t=e.constraints;if(!t)return`\`${e.property}\` error\n`;return`${`\`${e.property}\` errors:\n`}${Object.keys(t).map(e=>` - ${t[e]}\n`).join()}`}}t.ValidationErrorsFormatter=r},14425:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Metadata=void 0;var o=a(r(2006)),s=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.toString=function(){return this.key===o.NAMED_TAG?"named: ".concat(String(this.value).toString()," "):"tagged: { key:".concat(this.key.toString(),", value: ").concat(String(this.value)," }")},e}();t.Metadata=s},14613:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.utilsModule=void 0;const n=r(71519),i=r(32287),a=r(36202),o=r(49081),s=r(48211),c=r(22292),u=r(99319),l=r(30486),d=r(62717);t.utilsModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.IArrayUtils).to(a.ArrayUtils).inSingletonScope(),e(i.ServiceIdentifiers.IRandomGenerator).to(l.RandomGenerator).inSingletonScope(),e(i.ServiceIdentifiers.ICryptUtils).to(o.CryptUtils).inSingletonScope(),e(i.ServiceIdentifiers.ICryptUtilsStringArray).to(s.CryptUtilsStringArray).inSingletonScope(),e(i.ServiceIdentifiers.IEscapeSequenceEncoder).to(c.EscapeSequenceEncoder).inSingletonScope(),e(i.ServiceIdentifiers.ILevelledTopologicalSorter).to(u.LevelledTopologicalSorter),e(i.ServiceIdentifiers.ISetUtils).to(d.SetUtils).inSingletonScope()})},14866:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.preDestroy=void 0;var o=a(r(95507)),s=a(r(2006)),c=(0,r(44872).propertyEventDecorator)(s.PRE_DESTROY,o.MULTIPLE_PRE_DESTROY_METHODS);t.preDestroy=c},15061:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(72167),u=r(10548),l=r(83142),d=r(23787),f=r(2665),p=r(88318),h=r(25120);let m=class extends p.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e){this.debugProtectionFunctionName=e}getNodeStructure(e){return h.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==c.ObfuscationTarget.BrowserNoEval?(0,l.DebuggerTemplate)():(0,d.DebuggerTemplateNoEval)();return this.customCodeHelperFormatter.formatTemplate((0,f.DebugProtectionFunctionTemplate)(),{debuggerTemplate:e,debugProtectionFunctionName:this.debugProtectionFunctionName})}};t.DebugProtectionFunctionCodeHelper=m,n([(0,u.initializable)(),i("design:type",String)],m.prototype,"debugProtectionFunctionName",void 0),t.DebugProtectionFunctionCodeHelper=m=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],m)},15140:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformerNamesGroupsBuilder=void 0;const i=r(71519),a=r(17412);let o=class extends a.AbstractTransformerNamesGroupsBuilder{};t.CodeTransformerNamesGroupsBuilder=o,t.CodeTransformerNamesGroupsBuilder=o=n([(0,i.injectable)()],o)},15236:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(72167),u=r(10548),l=r(90828),d=r(44010),f=r(88318),p=r(25120);let h=class extends f.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t){this.debugProtectionFunctionName=e,this.debugProtectionInterval=t}getNodeStructure(e){return p.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.target!==c.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():(0,d.GlobalVariableNoEvalTemplate)();return this.customCodeHelperFormatter.formatTemplate((0,l.DebugProtectionFunctionIntervalTemplate)(),{debugProtectionFunctionName:this.debugProtectionFunctionName,debugProtectionInterval:this.debugProtectionInterval,globalVariableTemplate:e})}};t.DebugProtectionFunctionIntervalCodeHelper=h,n([(0,u.initializable)(),i("design:type",String)],h.prototype,"debugProtectionFunctionName",void 0),n([(0,u.initializable)(),i("design:type",Number)],h.prototype,"debugProtectionInterval",void 0),t.DebugProtectionFunctionIntervalCodeHelper=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],h)},15426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncodingRule=void 0;const n=r(70885);t.StringArrayEncodingRule=e=>(e.stringArrayEncoding.length||(e={...e,stringArrayEncoding:[n.StringArrayEncoding.None]}),e)},15639:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(t&&S.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(v.NodeLiteralUtils.isProhibitedLiteralNode(e,t))return e;const r=this.transformLiteralNodeByChunkLength(e,i.firstPassChunkLength),n=p.replace(r,{enter:(e,t)=>{if(S.NodeGuards.isLiteralNode(e))return this.transformLiteralNodeByChunkLength(e,this.options.splitStringsChunkLength)}});return _.NodeUtils.parentizeNode(n,t),_.NodeUtils.parentizeAst(n),n}transformLiteralNodeByChunkLength(e,t){if(!v.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=h.length(e.value);if(t>=r)return e;const n=i.chunkString(e.value,r,t);return this.transformStringChunksToBinaryExpressionNode(n)}transformStringChunksToBinaryExpressionNode(e){const t=e.length;if(t<2)throw new Error("First and second chunks values should not be empty");let r=y.NodeFactory.binaryExpressionNode("+",y.NodeFactory.literalNode(e[0]),y.NodeFactory.literalNode(e[1]));for(let n=2;n{const n=r(8156),i={};for(const e of Object.keys(n))i[n[e]]=e;const a={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};e.exports=a;for(const e of Object.keys(a)){if(!("channels"in a[e]))throw new Error("missing channels property: "+e);if(!("labels"in a[e]))throw new Error("missing channel labels property: "+e);if(a[e].labels.length!==a[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:r}=a[e];delete a[e].channels,delete a[e].labels,Object.defineProperty(a[e],"channels",{value:t}),Object.defineProperty(a[e],"labels",{value:r})}function o(e,t){return(e[0]-t[0])**2+(e[1]-t[1])**2+(e[2]-t[2])**2}a.rgb.hsl=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=a-i;let s,c;a===i?s=0:t===a?s=(r-n)/o:r===a?s=2+(n-t)/o:n===a&&(s=4+(t-r)/o),s=Math.min(60*s,360),s<0&&(s+=360);const u=(i+a)/2;return c=a===i?0:u<=.5?o/(a+i):o/(2-a-i),[s,100*c,100*u]},a.rgb.hsv=function(e){let t,r,n,i,a;const o=e[0]/255,s=e[1]/255,c=e[2]/255,u=Math.max(o,s,c),l=u-Math.min(o,s,c),d=function(e){return(u-e)/6/l+.5};return 0===l?(i=0,a=0):(a=l/u,t=d(o),r=d(s),n=d(c),o===u?i=n-r:s===u?i=1/3+t-n:c===u&&(i=2/3+r-t),i<0?i+=1:i>1&&(i-=1)),[360*i,100*a,100*u]},a.rgb.hwb=function(e){const t=e[0],r=e[1];let n=e[2];const i=a.rgb.hsl(e)[0],o=1/255*Math.min(t,Math.min(r,n));return n=1-1/255*Math.max(t,Math.max(r,n)),[i,100*o,100*n]},a.rgb.cmyk=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(1-t,1-r,1-n);return[100*((1-t-i)/(1-i)||0),100*((1-r-i)/(1-i)||0),100*((1-n-i)/(1-i)||0),100*i]},a.rgb.keyword=function(e){const t=i[e];if(t)return t;let r,a=1/0;for(const t of Object.keys(n)){const i=o(e,n[t]);i.04045?((t+.055)/1.055)**2.4:t/12.92,r=r>.04045?((r+.055)/1.055)**2.4:r/12.92,n=n>.04045?((n+.055)/1.055)**2.4:n/12.92;return[100*(.4124*t+.3576*r+.1805*n),100*(.2126*t+.7152*r+.0722*n),100*(.0193*t+.1192*r+.9505*n)]},a.rgb.lab=function(e){const t=a.rgb.xyz(e);let r=t[0],n=t[1],i=t[2];r/=95.047,n/=100,i/=108.883,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116,i=i>.008856?i**(1/3):7.787*i+16/116;return[116*n-16,500*(r-n),200*(n-i)]},a.hsl.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;let i,a,o;if(0===r)return o=255*n,[o,o,o];i=n<.5?n*(1+r):n+r-n*r;const s=2*n-i,c=[0,0,0];for(let e=0;e<3;e++)a=t+1/3*-(e-1),a<0&&a++,a>1&&a--,o=6*a<1?s+6*(i-s)*a:2*a<1?i:3*a<2?s+(i-s)*(2/3-a)*6:s,c[e]=255*o;return c},a.hsl.hsv=function(e){const t=e[0];let r=e[1]/100,n=e[2]/100,i=r;const a=Math.max(n,.01);n*=2,r*=n<=1?n:2-n,i*=a<=1?a:2-a;return[t,100*(0===n?2*i/(a+i):2*r/(n+r)),100*((n+r)/2)]},a.hsv.rgb=function(e){const t=e[0]/60,r=e[1]/100;let n=e[2]/100;const i=Math.floor(t)%6,a=t-Math.floor(t),o=255*n*(1-r),s=255*n*(1-r*a),c=255*n*(1-r*(1-a));switch(n*=255,i){case 0:return[n,c,o];case 1:return[s,n,o];case 2:return[o,n,c];case 3:return[o,s,n];case 4:return[c,o,n];case 5:return[n,o,s]}},a.hsv.hsl=function(e){const t=e[0],r=e[1]/100,n=e[2]/100,i=Math.max(n,.01);let a,o;o=(2-r)*n;const s=(2-r)*i;return a=r*i,a/=s<=1?s:2-s,a=a||0,o/=2,[t,100*a,100*o]},a.hwb.rgb=function(e){const t=e[0]/360;let r=e[1]/100,n=e[2]/100;const i=r+n;let a;i>1&&(r/=i,n/=i);const o=Math.floor(6*t),s=1-n;a=6*t-o,1&o&&(a=1-a);const c=r+a*(s-r);let u,l,d;switch(o){default:case 6:case 0:u=s,l=c,d=r;break;case 1:u=c,l=s,d=r;break;case 2:u=r,l=s,d=c;break;case 3:u=r,l=c,d=s;break;case 4:u=c,l=r,d=s;break;case 5:u=s,l=r,d=c}return[255*u,255*l,255*d]},a.cmyk.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i)),255*(1-Math.min(1,n*(1-i)+i))]},a.xyz.rgb=function(e){const t=e[0]/100,r=e[1]/100,n=e[2]/100;let i,a,o;return i=3.2406*t+-1.5372*r+-.4986*n,a=-.9689*t+1.8758*r+.0415*n,o=.0557*t+-.204*r+1.057*n,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,a=a>.0031308?1.055*a**(1/2.4)-.055:12.92*a,o=o>.0031308?1.055*o**(1/2.4)-.055:12.92*o,i=Math.min(Math.max(0,i),1),a=Math.min(Math.max(0,a),1),o=Math.min(Math.max(0,o),1),[255*i,255*a,255*o]},a.xyz.lab=function(e){let t=e[0],r=e[1],n=e[2];t/=95.047,r/=100,n/=108.883,t=t>.008856?t**(1/3):7.787*t+16/116,r=r>.008856?r**(1/3):7.787*r+16/116,n=n>.008856?n**(1/3):7.787*n+16/116;return[116*r-16,500*(t-r),200*(r-n)]},a.lab.xyz=function(e){let t,r,n;r=(e[0]+16)/116,t=e[1]/500+r,n=r-e[2]/200;const i=r**3,a=t**3,o=n**3;return r=i>.008856?i:(r-16/116)/7.787,t=a>.008856?a:(t-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,t*=95.047,r*=100,n*=108.883,[t,r,n]},a.lab.lch=function(e){const t=e[0],r=e[1],n=e[2];let i;i=360*Math.atan2(n,r)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(r*r+n*n),i]},a.lch.lab=function(e){const t=e[0],r=e[1],n=e[2]/360*2*Math.PI;return[t,r*Math.cos(n),r*Math.sin(n)]},a.rgb.ansi16=function(e,t=null){const[r,n,i]=e;let o=null===t?a.rgb.hsv(e)[2]:t;if(o=Math.round(o/50),0===o)return 30;let s=30+(Math.round(i/255)<<2|Math.round(n/255)<<1|Math.round(r/255));return 2===o&&(s+=60),s},a.hsv.ansi16=function(e){return a.rgb.ansi16(a.hsv.rgb(e),e[2])},a.rgb.ansi256=function(e){const t=e[0],r=e[1],n=e[2];if(t===r&&r===n)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(r/255*5)+Math.round(n/255*5)},a.ansi16.rgb=function(e){let t=e%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const r=.5*(1+~~(e>50));return[(1&t)*r*255,(t>>1&1)*r*255,(t>>2&1)*r*255]},a.ansi256.rgb=function(e){if(e>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},a.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".substring(t.length)+t},a.hex.rgb=function(e){const t=e.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!t)return[0,0,0];let r=t[0];3===t[0].length&&(r=r.split("").map(e=>e+e).join(""));const n=parseInt(r,16);return[n>>16&255,n>>8&255,255&n]},a.rgb.hcg=function(e){const t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.max(Math.max(t,r),n),a=Math.min(Math.min(t,r),n),o=i-a;let s,c;return s=o<1?a/(1-o):0,c=o<=0?0:i===t?(r-n)/o%6:i===r?2+(n-t)/o:4+(t-r)/o,c/=6,c%=1,[360*c,100*o,100*s]},a.hsl.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=r<.5?2*t*r:2*t*(1-r);let i=0;return n<1&&(i=(r-.5*n)/(1-n)),[e[0],100*n,100*i]},a.hsv.hcg=function(e){const t=e[1]/100,r=e[2]/100,n=t*r;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},a.hcg.rgb=function(e){const t=e[0]/360,r=e[1]/100,n=e[2]/100;if(0===r)return[255*n,255*n,255*n];const i=[0,0,0],a=t%1*6,o=a%1,s=1-o;let c=0;switch(Math.floor(a)){case 0:i[0]=1,i[1]=o,i[2]=0;break;case 1:i[0]=s,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=o;break;case 3:i[0]=0,i[1]=s,i[2]=1;break;case 4:i[0]=o,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=s}return c=(1-r)*n,[255*(r*i[0]+c),255*(r*i[1]+c),255*(r*i[2]+c)]},a.hcg.hsv=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);let n=0;return r>0&&(n=t/r),[e[0],100*n,100*r]},a.hcg.hsl=function(e){const t=e[1]/100,r=e[2]/100*(1-t)+.5*t;let n=0;return r>0&&r<.5?n=t/(2*r):r>=.5&&r<1&&(n=t/(2*(1-r))),[e[0],100*n,100*r]},a.hcg.hwb=function(e){const t=e[1]/100,r=t+e[2]/100*(1-t);return[e[0],100*(r-t),100*(1-r)]},a.hwb.hcg=function(e){const t=e[1]/100,r=1-e[2]/100,n=r-t;let i=0;return n<1&&(i=(r-n)/(1-n)),[e[0],100*n,100*i]},a.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},a.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},a.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},a.gray.hsl=function(e){return[0,0,e[0]]},a.gray.hsv=a.gray.hsl,a.gray.hwb=function(e){return[0,100,e[0]]},a.gray.cmyk=function(e){return[0,0,0,e[0]]},a.gray.lab=function(e){return[e[0],0,0]},a.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),r=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".substring(r.length)+r},a.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]}},15882:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperFunctionNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(35126),l=r(91363),d=r(25120);let f=class extends u.AbstractStringArrayCallNode{constructor(e,t,r,n,i,a,o){super(e,t,r,n,i,a,o)}initialize(e,t){this.stringArrayScopeCallsWrapperData=e,this.upperStringArrayCallsWrapperData=t}getNodeStructure(){var e,t,r,n,i,a,o,s;const c=l.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),f=l.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6)),p=this.getUpperStringArrayCallNode(c,this.getStringArrayIndexNode(this.stringArrayScopeCallsWrapperData.index-this.upperStringArrayCallsWrapperData.index)),h=this.arrayUtils.fillWithRange(this.stringArrayScopeCallsWrapperData.parameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:u.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,()=>this.getFakeParameterNode());h.splice(null!==(t=null===(e=this.stringArrayScopeCallsWrapperData.parameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,c),h.splice(null!==(n=null===(r=this.stringArrayScopeCallsWrapperData.parameterIndexesData)||void 0===r?void 0:r.decodeKeyParameterIndex)&&void 0!==n?n:1,1,f);const m=this.arrayUtils.fillWithRange(this.upperStringArrayCallsWrapperData.parameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:u.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,e=>this.getUpperStringArrayCallNode(h[e],this.getFakeUpperStringArrayIndexNode()));m.splice(null!==(a=null===(i=this.upperStringArrayCallsWrapperData.parameterIndexesData)||void 0===i?void 0:i.valueIndexParameterIndex)&&void 0!==a?a:0,1,p),m.splice(null!==(s=null===(o=this.upperStringArrayCallsWrapperData.parameterIndexesData)||void 0===o?void 0:o.decodeKeyParameterIndex)&&void 0!==s?s:1,1,f);const g=l.NodeFactory.functionDeclarationNode(this.stringArrayScopeCallsWrapperData.name,h,l.NodeFactory.blockStatementNode([l.NodeFactory.returnStatementNode(l.NodeFactory.callExpressionNode(l.NodeFactory.identifierNode(this.upperStringArrayCallsWrapperData.name),m))])),b=g;d.NodeUtils.parentizeAst(b);for(const e of h)e.name=this.identifierNamesGenerator.generateForLexicalScope(g);return[b]}getUpperStringArrayCallNode(e,t){return l.NodeFactory.binaryExpressionNode("-",e,t)}getFakeParameterNode(){return l.NodeFactory.identifierNode(this.randomGenerator.getRandomString(6))}getFakeUpperStringArrayIndexNode(){return this.getStringArrayIndexNode(this.randomGenerator.getRandomInteger(0,500))}};t.StringArrayScopeCallsWrapperFunctionNode=f,n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"upperStringArrayCallsWrapperData",void 0),n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"stringArrayScopeCallsWrapperData",void 0),t.StringArrayScopeCallsWrapperFunctionNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IStringArrayIndexNode)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(3,(0,o.inject)(s.ServiceIdentifiers.IStringArrayStorage)),a(4,(0,o.inject)(s.ServiceIdentifiers.IArrayUtils)),a(5,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(6,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],f)},16128:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceCode=void 0;t.SourceCode=class{constructor(e,t){this.sourceCode=e,this.sourceMap=t}getSourceCode(){return this.sourceCode}getSourceMap(){return this.sourceMap}toString(){return this.sourceCode}}},16586:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTargetsFromMetadataProviders=function(e,t){return function(r){const o=e(r);let s=(0,i.getBaseType)(r);for(;void 0!==s&&s!==Object;){const e=t(s);for(const[t,r]of e)o.properties.has(t)||o.properties.set(t,r);s=(0,i.getBaseType)(s)}const c=[];for(const e of o.constructorArguments)if(e.kind!==n.ClassElementMetadataKind.unmanaged){const t=e.targetName??"";c.push(new a.LegacyTargetImpl(t,e,"ConstructorArgument"))}for(const[e,t]of o.properties)if(t.kind!==n.ClassElementMetadataKind.unmanaged){const r=t.targetName??e;c.push(new a.LegacyTargetImpl(r,t,"ClassProperty"))}return c}};const n=r(86277),i=r(55028),a=r(80877)},16744:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.codeTransformersModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(30102),s=r(15140),c=r(64522);t.codeTransformersModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.Factory__ICodeTransformer).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.ICodeTransformer)),e(a.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder).to(s.CodeTransformerNamesGroupsBuilder).inSingletonScope(),e(a.ServiceIdentifiers.ICodeTransformer).to(c.HashbangOperatorTransformer).whenTargetNamed(o.CodeTransformer.HashbangOperatorTransformer)})},16811:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Plan=void 0;var r=function(e,t){this.parentContext=e,this.rootRequest=t};t.Plan=r},17092:(e,t,r)=>{var n=r(32364);t.encode=function(e){var t,r="",i=function(e){return e<0?1+(-e<<1):0+(e<<1)}(e);do{t=31&i,(i>>>=5)>0&&(t|=32),r+=n.encode(t)}while(i>0);return r},t.decode=function(e,t,r){var i,a,o,s,c=e.length,u=0,l=0;do{if(t>=c)throw new Error("Expected more digits in base 64 VLQ value.");if(-1===(a=n.decode(e.charCodeAt(t++))))throw new Error("Invalid base64 digit: "+e.charAt(t-1));i=!!(32&a),u+=(a&=31)<>1,1&~o?s:-s),r.rest=t}},17115:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";(0,n.default)(e);var r=e.split("/");if(2!==r.length)return!1;if(!o.test(r[1]))return!1;if(r[1].length>1&&r[1].startsWith("0"))return!1;if(!(0,i.default)(r[0],t))return!1;var a=null;switch(String(t)){case"4":a=s;break;case"6":a=c;break;default:a=(0,i.default)(r[0],"6")?c:s}return r[1]<=a&&r[1]>=0};var n=a(r(83399)),i=a(r(35372));function a(e){return e&&e.__esModule?e:{default:e}}var o=/^\d{1,3}$/,s=32,c=128;e.exports=t.default,e.exports.default=t.default},17179:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;(0,i.default)(e);var r=function(e){var t=function(e){var t={};return Array.from(e).forEach(function(e){t[e]?t[e]+=1:t[e]=1}),t}(e),r={length:e.length,uniqueChars:Object.keys(t).length,uppercaseCount:0,lowercaseCount:0,numberCount:0,symbolCount:0};return Object.keys(t).forEach(function(e){o.test(e)?r.uppercaseCount+=t[e]:s.test(e)?r.lowercaseCount+=t[e]:c.test(e)?r.numberCount+=t[e]:u.test(e)&&(r.symbolCount+=t[e])}),r}(e);if((t=(0,n.default)(t||{},l)).returnScore)return function(e,t){var r=0;r+=e.uniqueChars*t.pointsPerUnique,r+=(e.length-e.uniqueChars)*t.pointsPerRepeat,e.lowercaseCount>0&&(r+=t.pointsForContainingLower);e.uppercaseCount>0&&(r+=t.pointsForContainingUpper);e.numberCount>0&&(r+=t.pointsForContainingNumber);e.symbolCount>0&&(r+=t.pointsForContainingSymbol);return r}(r,t);return r.length>=t.minLength&&r.lowercaseCount>=t.minLowercase&&r.uppercaseCount>=t.minUppercase&&r.numberCount>=t.minNumbers&&r.symbolCount>=t.minSymbols};var n=a(r(93610)),i=a(r(83399));function a(e){return e&&e.__esModule?e:{default:e}}var o=/^[A-Z]$/,s=/^[a-z]$/,c=/^[0-9]$/,u=/^[-#!$@£%^&*()_+|~=`{}\[\]:";'<>?,.\/\\ ]$/,l={minLength:8,minLowercase:1,minUppercase:1,minNumbers:1,minSymbols:1,returnScore:!1,pointsPerUnique:1,pointsPerRepeat:.5,pointsForContainingLower:10,pointsForContainingUpper:10,pointsForContainingNumber:10,pointsForContainingSymbol:10};e.exports=t.default,e.exports.default=t.default},17336:(e,t,r)=>{var n=r(75617);e.exports=function(e,t){return new Promise(function(r,i){var a,o=t||{};function s(e){i(e||new Error("Aborted"))}function c(e,t){e.bail?s(e):a.retry(e)?o.onRetry&&o.onRetry(e,t):i(a.mainError())}"randomize"in o||(o.randomize=!0),(a=n.operation(o)).attempt(function(t){var n;try{n=e(s,t)}catch(e){return void c(e,t)}Promise.resolve(n).then(r).catch(function(e){c(e,t)})})})}},17412:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractTransformerNamesGroupsBuilder=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e){this.levelledTopologicalSorter=e}build(e){const t=Object.keys(e),r=this.buildTransformersRelationEdges(t,e);for(const[e,t]of r)this.levelledTopologicalSorter.add(e,t);return this.levelledTopologicalSorter.sortByGroups()}buildTransformersRelationEdges(e,t){const r=[];for(const n of e){const e=t[n].runAfter;if(!(null==e?void 0:e.length))r.push([n,null]);else for(const i of e){void 0===t[i]?r.push([n,null]):r.push([i,n])}}return r}};t.AbstractTransformerNamesGroupsBuilder=c,t.AbstractTransformerNamesGroupsBuilder=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.ILevelledTopologicalSorter)),i("design:paramtypes",[Object])],c)},17604:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InputFileNameRule=void 0;const n=r(19793);t.InputFileNameRule=e=>{let{inputFileName:t}=e;return t&&(t=t.replace(/^\/+/,"").split(n.StringSeparator.Dot).slice(0,-1).join(n.StringSeparator.Dot)||t,e={...e,inputFileName:`${t}.js`}),e}},17793:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.convertingTransformersModule=void 0;const n=r(71519),i=r(59404),a=r(32287),o=r(96390),s=r(46263),c=r(35614),u=r(17893),l=r(66826),d=r(30664),f=r(77344),p=r(61936),h=r(23908),m=r(60739),g=r(34516),b=r(88691),y=r(78134),S=r(15639),v=r(80391);t.convertingTransformersModule=new n.ContainerModule(e=>{e(a.ServiceIdentifiers.INodeTransformer).to(u.BooleanLiteralTransformer).whenTargetNamed(o.NodeTransformer.BooleanLiteralTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(l.ExportSpecifierTransformer).whenTargetNamed(o.NodeTransformer.ExportSpecifierTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(d.MemberExpressionTransformer).whenTargetNamed(o.NodeTransformer.MemberExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(f.ClassFieldTransformer).whenTargetNamed(o.NodeTransformer.ClassFieldTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(p.NumberLiteralTransformer).whenTargetNamed(o.NodeTransformer.NumberLiteralTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(h.NumberToNumericalExpressionTransformer).whenTargetNamed(o.NodeTransformer.NumberToNumericalExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(m.ObjectExpressionKeysTransformer).whenTargetNamed(o.NodeTransformer.ObjectExpressionKeysTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(b.ObjectExpressionTransformer).whenTargetNamed(o.NodeTransformer.ObjectExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(y.ObjectPatternPropertiesTransformer).whenTargetNamed(o.NodeTransformer.ObjectPatternPropertiesTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(S.SplitStringTransformer).whenTargetNamed(o.NodeTransformer.SplitStringTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(v.TemplateLiteralTransformer).whenTargetNamed(o.NodeTransformer.TemplateLiteralTransformer),e(a.ServiceIdentifiers.IObjectExpressionExtractor).to(g.ObjectExpressionToVariableDeclarationExtractor).whenTargetNamed(s.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor),e(a.ServiceIdentifiers.IObjectExpressionExtractor).to(c.BasePropertiesExtractor).whenTargetNamed(s.ObjectExpressionExtractor.BasePropertiesExtractor),e(a.ServiceIdentifiers.Factory__IObjectExpressionExtractor).toFactory(i.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IObjectExpressionExtractor))})},17893:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BooleanLiteralTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(23615),d=r(25120),f=r(91363);let p=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&l.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if("boolean"!=typeof e.value)return e;const r=e.value?this.getTrueUnaryExpressionNode():this.getFalseUnaryExpressionNode();return d.NodeUtils.parentizeNode(r,t),r}getTrueUnaryExpressionNode(){return f.NodeFactory.unaryExpressionNode("!",this.getFalseUnaryExpressionNode())}getFalseUnaryExpressionNode(){return f.NodeFactory.unaryExpressionNode("!",f.NodeFactory.arrayExpressionNode())}};t.BooleanLiteralTransformer=p,t.BooleanLiteralTransformer=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],p)},18316:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperRc4CodeHelper=void 0;const i=r(71519),a=r(54618),o=r(2781),s=r(32047),c=r(51507);let u=class extends c.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=this.customCodeHelperFormatter.formatTemplate((0,a.AtobTemplate)(this.options.selfDefending),{atobFunctionName:e}),n=this.customCodeHelperFormatter.formatTemplate((0,o.Rc4Template)(),{atobFunctionName:e,rc4FunctionName:t}),i=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate((0,s.StringArrayRC4DecodeTemplate)(this.randomGenerator),{atobPolyfill:r,rc4FunctionName:t,rc4Polyfill:n,selfDefendingCode:i,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayFunctionName:this.stringArrayFunctionName})}};t.StringArrayCallsWrapperRc4CodeHelper=u,t.StringArrayCallsWrapperRc4CodeHelper=u=n([(0,i.injectable)()],u)},18436:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformationStage=void 0,function(e){e.ControlFlowFlattening="ControlFlowFlattening",e.Converting="Converting",e.DeadCodeInjection="DeadCodeInjection",e.Finalizing="Finalizing",e.Initializing="Initializing",e.Preparing="Preparing",e.RenameIdentifiers="RenameIdentifiers",e.RenameProperties="RenameProperties",e.Simplifying="Simplifying",e.StringArray="StringArray"}(r||(t.NodeTransformationStage=r={}))},18649:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsAllowedForObfuscationTargets=function(e,t){return(r,n)=>{(0,i.registerDecorator)({propertyName:n,constraints:[e],name:"IsAllowedForObfuscationTargets",options:t,target:r.constructor,validator:{validate(t,r){const i=r.object,o=s.DEFAULT_PRESET[n];return(0,a.default)(t,o)||e.includes(i.target)},defaultMessage:t=>`This option allowed only for obfuscation targets: ${e.join(`${o.StringSeparator.Comma} `)}`}})}};const i=r(90804),a=n(r(32017)),o=r(19793),s=r(11839)},19e3:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringControlFlowStorage=void 0;const o=r(71519),s=r(32287),c=r(6377);let u=class extends c.FunctionControlFlowStorage{constructor(e,t,r){super(e,t,r)}initialize(){super.initialize(),this.storageId=this.identifierNamesGenerator.generateForGlobalScope()}};t.StringControlFlowStorage=u,t.StringControlFlowStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(2,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),i("design:paramtypes",[Object,Object,Function])],u)},19158:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(t&&m.NodeGuards.isLabeledStatementNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){const r=g.NodeLexicalScopeUtils.getLexicalScope(e);return r?(this.storeLabeledStatementName(e,r),this.replaceLabeledStatementName(e,r),e):e}storeLabeledStatementName(e,t){this.identifierReplacer.storeLocalName(e.label,t)}replaceLabeledStatementName(e,t){f.replace(e,{enter:(e,r)=>{if(r&&m.NodeGuards.isLabelIdentifierNode(e,r)){const r=this.identifierReplacer.replace(e,t);e.name=r.name}}})}};t.LabeledStatementTransformer=b,t.LabeledStatementTransformer=b=o([(0,l.injectable)(),u(0,(0,l.inject)(d.ServiceIdentifiers.IIdentifierReplacer)),u(1,(0,l.inject)(d.ServiceIdentifiers.IRandomGenerator)),u(2,(0,l.inject)(d.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Object,Object,Object])],b)},19225:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeIdentifiersTraverser=void 0;const s=r(71519),c=r(32287),u=r(23615);let l=n=class{constructor(e){this.scopeAnalyzer=e}traverseScopeIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const n=this.scopeAnalyzer.acquireScope(e);this.traverseScopeIdentifiersRecursive(n,n,r)}traverseScopeThroughIdentifiers(e,t,r){this.scopeAnalyzer.analyze(e);const n=this.scopeAnalyzer.acquireScope(e);this.traverseScopeThroughIdentifiersRecursive(n,n,r)}traverseScopeIdentifiersRecursive(e,t,r){const i=t.variableScope,a=u.NodeGuards.isNodeWithBlockLexicalScope(i.block)?i.block:null,o=n.globalScopeNames.includes(i.type);if(a){for(const s of t.variables){if(s.name===n.argumentsVariableName)continue;r({isGlobalDeclaration:o,isBubblingDeclaration:s.identifiers.some(e=>e.parentNode&&u.NodeGuards.isPropertyNode(e.parentNode)&&e.parentNode.shorthand),rootScope:e,variable:s,variableScope:i,variableLexicalScopeNode:a})}for(const n of t.childScopes)this.traverseScopeIdentifiersRecursive(e,n,r)}}traverseScopeThroughIdentifiersRecursive(e,t,r){const i=t.variableScope,a=u.NodeGuards.isNodeWithBlockLexicalScope(i.block)?i.block:null,o=n.globalScopeNames.includes(i.type);if(a){for(const e of t.through)r({isGlobalDeclaration:o,reference:e,variableLexicalScopeNode:a});for(const n of t.childScopes)this.traverseScopeThroughIdentifiersRecursive(e,n,r)}}};t.ScopeIdentifiersTraverser=l,l.argumentsVariableName="arguments",l.globalScopeNames=["global","module"],t.ScopeIdentifiersTraverser=l=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IScopeAnalyzer)),a("design:paramtypes",[Object])],l)},19266:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r;if((0,n.default)(e),"[object Array]"===Object.prototype.toString.call(t)){var a=[];for(r in t)({}).hasOwnProperty.call(t,r)&&(a[r]=(0,i.default)(t[r]));return a.indexOf(e)>=0}if("object"===o(t))return t.hasOwnProperty(e);if(t&&"function"==typeof t.indexOf)return t.indexOf(e)>=0;return!1};var n=a(r(83399)),i=a(r(45772));function a(e){return e&&e.__esModule?e:{default:e}}function o(e){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},o(e)}e.exports=t.default,e.exports.default=t.default},19384:(e,t,r)=>{"use strict";var n=r(65606);Object.defineProperty(t,"__esModule",{value:!0});var i=r(45906),a=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}(r(88262)),o=r(65903);function s(e){return function(t){if(!t.token.startsWith("vercel_blob_client_"))throw new(0,i.BlobError)(`${e} must be called with a client token`);if(void 0!==t.addRandomSuffix||void 0!==t.allowOverwrite||void 0!==t.cacheControlMaxAge)throw new(0,i.BlobError)(`${e} doesn't allow \`addRandomSuffix\`, \`cacheControlMaxAge\` or \`allowOverwrite\`. Configure these options at the server side when generating client tokens.`)}}var c=i.createPutMethod.call(void 0,{allowedOptions:["contentType"],extraChecks:s("client/`put`")}),u=i.createCreateMultipartUploadMethod.call(void 0,{allowedOptions:["contentType"],extraChecks:s("client/`createMultipartUpload`")}),l=i.createCreateMultipartUploaderMethod.call(void 0,{allowedOptions:["contentType"],extraChecks:s("client/`createMultipartUpload`")}),d=i.createUploadPartMethod.call(void 0,{allowedOptions:["contentType"],extraChecks:s("client/`multipartUpload`")}),f=i.createCompleteMultipartUploadMethod.call(void 0,{allowedOptions:["contentType"],extraChecks:s("client/`completeMultipartUpload`")}),p=i.createPutMethod.call(void 0,{allowedOptions:["contentType"],extraChecks(e){if(void 0===e.handleUploadUrl)throw new(0,i.BlobError)("client/`upload` requires the 'handleUploadUrl' parameter");if(void 0!==e.addRandomSuffix||void 0!==e.createPutExtraChecks||void 0!==e.cacheControlMaxAge)throw new(0,i.BlobError)("client/`upload` doesn't allow `addRandomSuffix`, `cacheControlMaxAge` or `allowOverwrite`. Configure these options at the server side when generating client tokens.")},async getToken(e,t){var r,n;return async function(e){const{handleUploadUrl:t,pathname:r}=e,n=function(e){try{return Boolean(new URL(e))}catch(e){return!1}}(t)?t:function(e){return new URL(e,location.href).href}(t),a={type:g.generateClientToken,payload:{pathname:r,clientPayload:e.clientPayload,multipart:e.multipart}},s=await o.fetch.call(void 0,n,{method:"POST",body:JSON.stringify(a),headers:{"content-type":"application/json",...e.headers},signal:e.abortSignal});if(!s.ok)throw new(0,i.BlobError)("Failed to retrieve the client token");try{const{clientToken:e}=await s.json();return e}catch(e){throw new(0,i.BlobError)("Failed to retrieve the client token")}}({handleUploadUrl:t.handleUploadUrl,pathname:e,clientPayload:null!=(r=t.clientPayload)?r:null,multipart:null!=(n=t.multipart)&&n,headers:t.headers})}});async function h(e){return globalThis.crypto.subtle.importKey("raw",(new TextEncoder).encode(e),{name:"HMAC",hash:"SHA-256"},!1,["sign","verify"])}async function m({token:e,signature:t,body:r}){const n=e;if(!globalThis.crypto){const e=a.createHmac("sha256",n).update(r).digest("hex"),i=Buffer.from(e),o=Buffer.from(t);return i.length===o.length&&a.timingSafeEqual(i,o)}return await globalThis.crypto.subtle.verify("HMAC",await h(e),function(e){if(e.length%2!=0)throw new RangeError("Expected string to be an even number of characters");const t=new Uint8Array(e.length/2);for(let r=0;r{r(54041).x,r(47446),t.SourceNode=r(1683).SourceNode},19793:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringSeparator=void 0,function(e){e.Comma=",",e.Dot=".",e.VerticalLine="|"}(r||(t.StringSeparator=r={}))},20088:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelperGroup=void 0;const s=r(71519),c=r(32287),u=r(10548),l=r(79011),d=r(70885),f=r(87415),p=r(30386);let h=n=class extends f.AbstractCustomCodeHelperGroup{constructor(e,t,r,n,i){super(r,n,i),this.customCodeHelperFactory=e,this.stringArrayStorage=t}appendOnFinalizingStage(e,t){if(!this.stringArrayStorage.getLength())return;const r=p.NodeAppender.getScopeStatements(e);this.appendCustomNodeIfExist(l.CustomCodeHelper.StringArray,t=>{p.NodeAppender.insertAtIndex(e,t.getNode(),this.getScopeStatementRandomIndex(r))});for(const t of this.options.stringArrayEncoding){const n=this.getStringArrayCallsWrapperCodeHelperName(t);this.appendCustomNodeIfExist(n,t=>{p.NodeAppender.insertAtIndex(e,t.getNode(),this.getScopeStatementRandomIndex(r))})}}initialize(){if(this.customCodeHelpers=new Map,!this.options.stringArray)return;const e=this.stringArrayStorage.getStorageName(),t=this.customCodeHelperFactory(l.CustomCodeHelper.StringArray);t.initialize(this.stringArrayStorage,e),this.customCodeHelpers.set(l.CustomCodeHelper.StringArray,t);for(const t of this.options.stringArrayEncoding){const r=this.getStringArrayCallsWrapperCodeHelperName(t),n=this.customCodeHelperFactory(r),i=this.stringArrayStorage.getStorageCallsWrapperName(t);n.initialize(e,i,this.stringArrayStorage.getIndexShiftAmount()),this.customCodeHelpers.set(r,n)}}getStringArrayCallsWrapperCodeHelperName(e){var t;return null!==(t=n.stringArrayCallsWrapperCodeHelperMap.get(e))&&void 0!==t?t:l.CustomCodeHelper.StringArrayCallsWrapper}getScopeStatementRandomIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,e.length))}};t.StringArrayCodeHelperGroup=h,h.stringArrayCallsWrapperCodeHelperMap=new Map([[d.StringArrayEncoding.None,l.CustomCodeHelper.StringArrayCallsWrapper],[d.StringArrayEncoding.Base64,l.CustomCodeHelper.StringArrayCallsWrapperBase64],[d.StringArrayEncoding.Rc4,l.CustomCodeHelper.StringArrayCallsWrapperRc4]]),i([(0,u.initializable)(),a("design:type",Map)],h.prototype,"customCodeHelpers",void 0),t.StringArrayCodeHelperGroup=h=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__ICustomCodeHelper)),o(1,(0,s.inject)(c.ServiceIdentifiers.IStringArrayStorage)),o(2,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(3,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(4,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Object,Function,Object,Object])],h)},20652:e=>{function t(e){return!!e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)} +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +e.exports=function(e){return null!=e&&(t(e)||function(e){return"function"==typeof e.readFloatLE&&"function"==typeof e.slice&&t(e.slice(0,0))}(e)||!!e._isBuffer)}},20795:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.typeConstraint=t.namedConstraint=t.taggedConstraint=t.traverseAncerstors=void 0;var o=a(r(2006)),s=r(14425),c=function(e,t){var r=e.parentRequest;return null!==r&&(!!t(r)||c(r,t))};t.traverseAncerstors=c;var u=function(e){return function(t){var r=function(r){return null!==r&&null!==r.target&&r.target.matchesTag(e)(t)};return r.metaData=new s.Metadata(e,t),r}};t.taggedConstraint=u;var l=u(o.NAMED_TAG);t.namedConstraint=l;t.typeConstraint=function(e){return function(t){var r=null;if(null!==t){if(r=t.bindings[0],"string"==typeof e)return r.serviceIdentifier===e;var n=t.bindings[0].implementationType;return e===n}return!1}}},21069:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customCodeHelpersModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(79011),s=r(71332),c=r(48498),u=r(51774),l=r(40043),d=r(56370),f=r(20088),p=r(63871),h=r(64712),m=r(62402),g=r(2953),b=r(15236),y=r(15061),S=r(50229),v=r(28609),_=r(87381),C=r(51507),A=r(42540),E=r(18316),x=r(31691),N=r(6480);t.customCodeHelpersModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.ICustomCodeHelper).to(p.ConsoleOutputDisableCodeHelper).whenTargetNamed(o.CustomCodeHelper.ConsoleOutputDisable),e(a.ServiceIdentifiers.ICustomCodeHelper).to(g.DebugProtectionFunctionCallCodeHelper).whenTargetNamed(o.CustomCodeHelper.DebugProtectionFunctionCall),e(a.ServiceIdentifiers.ICustomCodeHelper).to(b.DebugProtectionFunctionIntervalCodeHelper).whenTargetNamed(o.CustomCodeHelper.DebugProtectionFunctionInterval),e(a.ServiceIdentifiers.ICustomCodeHelper).to(y.DebugProtectionFunctionCodeHelper).whenTargetNamed(o.CustomCodeHelper.DebugProtectionFunction),e(a.ServiceIdentifiers.ICustomCodeHelper).to(S.DomainLockCodeHelper).whenTargetNamed(o.CustomCodeHelper.DomainLock),e(a.ServiceIdentifiers.ICustomCodeHelper).to(v.CallsControllerFunctionCodeHelper).whenTargetNamed(o.CustomCodeHelper.CallsControllerFunction),e(a.ServiceIdentifiers.ICustomCodeHelper).to(_.SelfDefendingCodeHelper).whenTargetNamed(o.CustomCodeHelper.SelfDefending),e(a.ServiceIdentifiers.ICustomCodeHelper).to(C.StringArrayCallsWrapperCodeHelper).whenTargetNamed(o.CustomCodeHelper.StringArrayCallsWrapper),e(a.ServiceIdentifiers.ICustomCodeHelper).to(A.StringArrayCallsWrapperBase64CodeHelper).whenTargetNamed(o.CustomCodeHelper.StringArrayCallsWrapperBase64),e(a.ServiceIdentifiers.ICustomCodeHelper).to(E.StringArrayCallsWrapperRc4CodeHelper).whenTargetNamed(o.CustomCodeHelper.StringArrayCallsWrapperRc4),e(a.ServiceIdentifiers.ICustomCodeHelper).to(x.StringArrayCodeHelper).whenTargetNamed(o.CustomCodeHelper.StringArray),e(a.ServiceIdentifiers.ICustomCodeHelper).to(N.StringArrayRotateFunctionCodeHelper).whenTargetNamed(o.CustomCodeHelper.StringArrayRotateFunction),e(a.ServiceIdentifiers.ICustomCodeHelperGroup).to(c.ConsoleOutputCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.ConsoleOutput),e(a.ServiceIdentifiers.ICustomCodeHelperGroup).to(u.DebugProtectionCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DebugProtection),e(a.ServiceIdentifiers.ICustomCodeHelperGroup).to(l.DomainLockCustomCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.DomainLock),e(a.ServiceIdentifiers.ICustomCodeHelperGroup).to(d.SelfDefendingCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.SelfDefending),e(a.ServiceIdentifiers.ICustomCodeHelperGroup).to(f.StringArrayCodeHelperGroup).whenTargetNamed(s.CustomCodeHelperGroup.StringArray),e(a.ServiceIdentifiers.Factory__ICustomCodeHelper).toFactory(n.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomCodeHelper)),e(a.ServiceIdentifiers.Factory__ICustomCodeHelperGroup).toFactory(n.InversifyContainerFacade.getFactory(a.ServiceIdentifiers.ICustomCodeHelperGroup)),e(a.ServiceIdentifiers.ICustomCodeHelperFormatter).to(h.CustomCodeHelperFormatter).inSingletonScope(),e(a.ServiceIdentifiers.ICustomCodeHelperObfuscator).to(m.CustomCodeHelperObfuscator).inSingletonScope()})},21146:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelpersTransformer=void 0;const o=r(71519),s=r(32287),c=r(96390),u=r(18436),l=r(76893),d=r(23615);let f=class extends l.AbstractNodeTransformer{constructor(e,t,r,n,i){super(n,i),this.runAfter=[c.NodeTransformer.ParentificationTransformer,c.NodeTransformer.VariablePreserveTransformer],this.callsGraphData=[],this.callsGraphAnalyzer=e,this.prevailingKindOfVariablesAnalyzer=t,this.customCodeHelperGroupStorage=r}getVisitor(e){return e===u.NodeTransformationStage.Preparing?{leave:(e,t)=>{if(d.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),this.appendCustomNodesForPreparingStage(e,t),this.transformNode(e,t)}}:{leave:(t,r)=>(d.NodeGuards.isProgramNode(t)&&this.appendCustomNodesForStage(e,t,r),t)}}prepareNode(e,t){this.callsGraphData=this.callsGraphAnalyzer.analyze(e),this.prevailingKindOfVariablesAnalyzer.analyze(e)}transformNode(e,t){return e}appendCustomNodesForPreparingStage(e,t){this.customCodeHelperGroupStorage.getStorage().forEach(t=>{var r;t.initialize(),null===(r=t.appendOnPreparingStage)||void 0===r||r.call(t,e,this.callsGraphData)})}appendCustomNodesForStage(e,t,r){this.customCodeHelperGroupStorage.getStorage().forEach(r=>{var n;null===(n=r[`appendOn${e}Stage`])||void 0===n||n.call(r,t,this.callsGraphData)})}};t.CustomCodeHelpersTransformer=f,t.CustomCodeHelpersTransformer=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.ICallsGraphAnalyzer)),a(1,(0,o.inject)(s.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),a(2,(0,o.inject)(s.ServiceIdentifiers.TCustomNodeGroupStorage)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object,Object,Object,Object])],f)},21186:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionCustomNode=void 0,function(e){e.BlockStatementDeadCodeInjectionNode="BlockStatementDeadCodeInjectionNode"}(r||(t.DeadCodeInjectionCustomNode=r={}))},21385:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.finalizingTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(25360),s=r(30490);t.finalizingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(o.DirectivePlacementTransformer).whenTargetNamed(a.NodeTransformer.DirectivePlacementTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(s.EscapeSequenceTransformer).whenTargetNamed(a.NodeTransformer.EscapeSequenceTransformer)})},21666:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),t&&t.no_symbols)return o.test(e);return new RegExp("^[+-]?([0-9]*[".concat((t||{}).locale?a.decimal[t.locale]:".","])?[0-9]+$")).test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n},a=r(13237);var o=/^[0-9]+$/;e.exports=t.default,e.exports.default=t.default},21773:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyCoreError=t.isAppErrorSymbol=void 0,t.isAppErrorSymbol=Symbol.for("@inversifyjs/core/InversifyCoreError");class r extends Error{[t.isAppErrorSymbol];kind;constructor(e,r,n){super(r,n),this[t.isAppErrorSymbol]=!0,this.kind=e}static is(e){return"object"==typeof e&&null!==e&&!0===e[t.isAppErrorSymbol]}static isErrorOfKind(e,t){return r.is(e)&&e.kind===t}}t.InversifyCoreError=r},21818:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStatementSimplifyTransformer=void 0;const o=r(71519),s=r(32287),c=r(96390),u=r(76893),l=r(23615),d=r(91363);let f=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[c.NodeTransformer.ExpressionStatementsMergeTransformer,c.NodeTransformer.VariableDeclarationsMergeTransformer]}getStatementSimplifyData(e){if(!e)return null;if(!l.NodeGuards.isBlockStatementNode(e))return{leadingStatements:[e],trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const{startIndex:t,unwrappedExpressions:r,hasReturnStatement:n,hasStatementsAfterReturnStatement:i}=this.collectIteratedStatementsSimplifyData(e);if(i)return{leadingStatements:e.body,trailingStatement:null,hasReturnStatement:!1,hasSingleExpression:!1};const a=this.getLeadingStatements(e,t);if(!r.length)return{leadingStatements:a,trailingStatement:null,hasReturnStatement:n,hasSingleExpression:!1};const o=1===r.length,s=o?r[0]:d.NodeFactory.sequenceExpressionNode(r);return{leadingStatements:a,trailingStatement:{statement:n?d.NodeFactory.returnStatementNode(s):d.NodeFactory.expressionStatementNode(s),expression:s},hasReturnStatement:n,hasSingleExpression:o}}collectIteratedStatementsSimplifyData(e){const t=e.body.length,r=[];let n=!1,i=!1,a=null;for(let o=t-1;o>=0;o--){const s=e.body[o];if(l.NodeGuards.isExpressionStatementNode(s))l.NodeGuards.isSequenceExpressionNode(s.expression)?r.unshift(...s.expression.expressions):r.unshift(s.expression),a=o;else{if(!l.NodeGuards.isReturnStatementNode(s)||!s.argument)break;r.unshift(s.argument),n=!0,i=o!==t-1,a=o}}return{startIndex:a,unwrappedExpressions:r,hasReturnStatement:n,hasStatementsAfterReturnStatement:i}}getLeadingStatements(e,t){return null===t?e.body:0===t?[]:e.body.slice(0,t)}getPartialStatement(e){return!e.leadingStatements.length&&e.trailingStatement?e.trailingStatement.statement:d.NodeFactory.blockStatementNode([...e.leadingStatements.length?e.leadingStatements:[],...e.trailingStatement?[e.trailingStatement.statement]:[]])}};t.AbstractStatementSimplifyTransformer=f,t.AbstractStatementSimplifyTransformer=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],f)},21965:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCodeTransformer=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t){this.randomGenerator=e,this.options=t}};t.AbstractCodeTransformer=c,t.AbstractCodeTransformer=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],c)},22292:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceEncoder=void 0;const a=r(71519);let o=n=class{constructor(){this.stringsCache=new Map}encode(e,t){const r=`${e}-${String(t)}`;if(this.stringsCache.has(r))return this.stringsCache.get(r);let i,a;const o=e.replace(n.replaceRegExp,e=>t||n.forceEscapeCharactersRegExp.test(e)?(n.ASCIICharactersRegExp.test(e)?(i="\\x",a="00"):(i="\\u",a="0000"),`${i}${(a+e.charCodeAt(0).toString(16)).slice(-a.length)}`):e);return this.stringsCache.set(r,o),this.stringsCache.set(`${o}-${String(t)}`,o),o}};t.EscapeSequenceEncoder=o,o.ASCIICharactersRegExp=/[\x00-\x7F]/,o.forceEscapeCharactersRegExp=/[\x00-\x1F\x7F-\x9F'"\\\s]/,o.replaceRegExp=/[\s\S]/g,t.EscapeSequenceEncoder=o=n=i([(0,a.injectable)()],o)},22671:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateReflectMetadata=function(e,t,r,i){const a=(0,n.getReflectMetadata)(e,t)??r,o=i(a);Reflect.defineMetadata(t,o,e)};const n=r(3654)},22767:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowFlatteningThresholdRule=void 0;t.ControlFlowFlatteningThresholdRule=e=>(0===e.controlFlowFlatteningThreshold&&(e={...e,controlFlowFlattening:!1,controlFlowFlatteningThreshold:0}),e)},23334:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingWhenOnSyntax=void 0;var n=r(42903),i=r(36744),a=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new i.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new n.BindingOnSyntax(this._binding)}return e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e.prototype.onDeactivation=function(e){return this._bindingOnSyntax.onDeactivation(e)},e}();t.BindingWhenOnSyntax=a},23498:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getPropertyMetadataFromLegacyMetadata=function(e,t,r){try{return(0,a.getClassElementMetadataFromLegacyMetadata)(r)}catch(r){throw n.InversifyCoreError.isErrorOfKind(r,i.InversifyCoreErrorKind.missingInjectionDecorator)?new n.InversifyCoreError(i.InversifyCoreErrorKind.missingInjectionDecorator,`Expected a single @inject, @multiInject or @unmanaged decorator at type "${e.name}" at property "${t.toString()}"`,{cause:r}):r}};const n=r(21773),i=r(94931),a=r(44063)},23615:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeGuards=void 0;const n=r(81568);class i{static isArrayPatternNode(e){return e.type===n.NodeType.ArrayPattern}static isArrowFunctionExpressionNode(e){return e.type===n.NodeType.ArrowFunctionExpression}static isAssignmentExpressionNode(e){return e.type===n.NodeType.AssignmentExpression}static isAssignmentPatternNode(e){return e.type===n.NodeType.AssignmentPattern}static isAwaitExpressionNode(e){return e.type===n.NodeType.AwaitExpression}static isBigIntLiteralNode(e){return i.isLiteralNode(e)&&!!e.bigint}static isBlockStatementNode(e){return e.type===n.NodeType.BlockStatement}static isBreakStatementNode(e){return e.type===n.NodeType.BreakStatement}static isCallExpressionNode(e){return e.type===n.NodeType.CallExpression}static isChainExpressionNode(e){return e.type===n.NodeType.ChainExpression}static isClassBodyNode(e){return e.type===n.NodeType.ClassBody}static isClassDeclarationNode(e){return e.type===n.NodeType.ClassDeclaration&&null!==e.id}static isConditionalExpressionNode(e){return e.type===n.NodeType.ConditionalExpression}static isContinueStatementNode(e){return e.type===n.NodeType.ContinueStatement}static isDirectiveNode(e){return e.type===n.NodeType.ExpressionStatement&&"directive"in e}static isDoWhileStatementNode(e){return e.type===n.NodeType.DoWhileStatement}static isExportAllDeclarationNode(e){return e.type===n.NodeType.ExportAllDeclaration}static isExportNamedDeclarationNode(e){return e.type===n.NodeType.ExportNamedDeclaration}static isExportSpecifierNode(e){return e.type===n.NodeType.ExportSpecifier}static isExpressionStatementNode(e){return e.type===n.NodeType.ExpressionStatement&&!("directive"in e)}static isForStatementNode(e){return e.type===n.NodeType.ForStatement}static isForInStatementNode(e){return e.type===n.NodeType.ForInStatement}static isForOfStatementNode(e){return e.type===n.NodeType.ForOfStatement}static isFunctionNode(e){return i.isFunctionDeclarationNode(e)||i.isFunctionExpressionNode(e)||i.isArrowFunctionExpressionNode(e)}static isFunctionDeclarationNode(e){return e.type===n.NodeType.FunctionDeclaration&&null!==e.id}static isFunctionExpressionNode(e){return e.type===n.NodeType.FunctionExpression}static isIdentifierNode(e){return e.type===n.NodeType.Identifier}static isIfStatementNode(e){return e.type===n.NodeType.IfStatement}static isIfStatementNodeWithSingleStatementBody(e){return!!i.isIfStatementNode(e)&&(!i.isBlockStatementNode(e.consequent)||!!e.alternate&&!i.isBlockStatementNode(e.alternate))}static isImportDeclarationNode(e){return e.type===n.NodeType.ImportDeclaration}static isImportExpressionNode(e){return e.type===n.NodeType.ImportExpression}static isImportSpecifierNode(e){return e.type===n.NodeType.ImportSpecifier}static isLabelIdentifierNode(e,t){const r=i.isLabeledStatementNode(t)&&t.label===e,n=i.isContinueStatementNode(t)&&t.label===e,a=i.isBreakStatementNode(t)&&t.label===e;return r||n||a}static isLabeledStatementNode(e){return e.type===n.NodeType.LabeledStatement}static isLiteralNode(e){return e.type===n.NodeType.Literal}static isLogicalExpressionNode(e){return e.type===n.NodeType.LogicalExpression}static isLoopStatementNode(e){return i.isForStatementNode(e)||i.isForInStatementNode(e)||i.isForOfStatementNode(e)||i.isWhileStatementNode(e)||i.isDoWhileStatementNode(e)}static isMemberExpressionNode(e){return e.type===n.NodeType.MemberExpression}static isMetaPropertyNode(e){return e.type===n.NodeType.MetaProperty}static isMethodDefinitionNode(e){return e.type===n.NodeType.MethodDefinition}static isNewExpressionNode(e){return e.type===n.NodeType.NewExpression}static isNode(e){return e&&void 0!==!e.type}static isNodeWithLexicalScope(e){return i.isProgramNode(e)||i.isFunctionNode(e)}static isNodeWithBlockLexicalScope(e){return i.isNodeWithLexicalScope(e)||i.isBlockStatementNode(e)||i.isStaticBlockNode(e)}static isNodeWithSingleStatementBody(e){return i.isIfStatementNode(e)?i.isIfStatementNodeWithSingleStatementBody(e):(i.isForStatementNode(e)||i.isForOfStatementNode(e)||i.isForInStatementNode(e)||i.isWhileStatementNode(e)||i.isDoWhileStatementNode(e)||i.isWithStatementNode(e)||i.isLabeledStatementNode(e))&&!i.isBlockStatementNode(e.body)}static isNodeWithLexicalScopeStatements(e,t){return i.isProgramNode(e)||i.isBlockStatementNode(e)&&i.nodesWithLexicalStatements.includes(t.type)}static isNodeWithStatements(e){return i.isProgramNode(e)||i.isBlockStatementNode(e)||i.isStaticBlockNode(e)||i.isSwitchCaseNode(e)}static isNodeWithComments(e){return Boolean(e.leadingComments)||Boolean(e.trailingComments)}static isObjectPatternNode(e){return e.type===n.NodeType.ObjectPattern}static isObjectExpressionNode(e){return e.type===n.NodeType.ObjectExpression}static isPrivateIdentifierNode(e){return e.type===n.NodeType.PrivateIdentifier}static isProgramNode(e){return e.type===n.NodeType.Program}static isPropertyNode(e){return e.type===n.NodeType.Property}static isPropertyDefinitionNode(e){return e.type===n.NodeType.PropertyDefinition}static isRestElementNode(e){return e.type===n.NodeType.RestElement}static isReturnStatementNode(e){return e.type===n.NodeType.ReturnStatement}static isSequenceExpressionNode(e){return e.type===n.NodeType.SequenceExpression}static isSpreadElementNode(e){return e.type===n.NodeType.SpreadElement}static isStaticBlockNode(e){return e.type===n.NodeType.StaticBlock}static isSuperNode(e){return e.type===n.NodeType.Super}static isSwitchCaseNode(e){return e.type===n.NodeType.SwitchCase}static isTaggedTemplateExpressionNode(e){return e.type===n.NodeType.TaggedTemplateExpression}static isTemplateLiteralNode(e){return e.type===n.NodeType.TemplateLiteral}static isThisExpressionNode(e){return e.type===n.NodeType.ThisExpression}static isUnaryExpressionNode(e){return e.type===n.NodeType.UnaryExpression}static isVariableDeclarationNode(e){return e.type===n.NodeType.VariableDeclaration}static isVariableDeclaratorNode(e){return e.type===n.NodeType.VariableDeclarator}static isWithStatementNode(e){return e.type===n.NodeType.WithStatement}static isWhileStatementNode(e){return e.type===n.NodeType.WhileStatement}static isYieldExpressionNode(e){return e.type===n.NodeType.YieldExpression}}t.NodeGuards=i,i.nodesWithLexicalStatements=[n.NodeType.ArrowFunctionExpression,n.NodeType.FunctionDeclaration,n.NodeType.FunctionExpression,n.NodeType.MethodDefinition]},23641:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(0,n.default)(e),function(e,t){var r=e.replace(/[\s\-]+/gi,"").toUpperCase(),n=r.slice(0,2).toUpperCase(),a=n in o;if(t.whitelist){if(!function(e){if(e.filter(function(e){return!(e in o)}).length>0)return!1;return!0}(t.whitelist))return!1;if(!(0,i.default)(t.whitelist,n))return!1}if(t.blacklist){if((0,i.default)(t.blacklist,n))return!1}return a&&o[n].test(r)}(e,t)&&function(e){var t=e.replace(/[^A-Z0-9]+/gi,"").toUpperCase();return 1===(t.slice(4)+t.slice(0,4)).replace(/[A-Z]/g,function(e){return e.charCodeAt(0)-55}).match(/\d{1,7}/g).reduce(function(e,t){return Number(e+t)%97},"")}(e)},t.locales=void 0;var n=a(r(83399)),i=a(r(78644));function a(e){return e&&e.__esModule?e:{default:e}}var o={AD:/^(AD[0-9]{2})\d{8}[A-Z0-9]{12}$/,AE:/^(AE[0-9]{2})\d{3}\d{16}$/,AL:/^(AL[0-9]{2})\d{8}[A-Z0-9]{16}$/,AT:/^(AT[0-9]{2})\d{16}$/,AZ:/^(AZ[0-9]{2})[A-Z0-9]{4}\d{20}$/,BA:/^(BA[0-9]{2})\d{16}$/,BE:/^(BE[0-9]{2})\d{12}$/,BG:/^(BG[0-9]{2})[A-Z]{4}\d{6}[A-Z0-9]{8}$/,BH:/^(BH[0-9]{2})[A-Z]{4}[A-Z0-9]{14}$/,BR:/^(BR[0-9]{2})\d{23}[A-Z]{1}[A-Z0-9]{1}$/,BY:/^(BY[0-9]{2})[A-Z0-9]{4}\d{20}$/,CH:/^(CH[0-9]{2})\d{5}[A-Z0-9]{12}$/,CR:/^(CR[0-9]{2})\d{18}$/,CY:/^(CY[0-9]{2})\d{8}[A-Z0-9]{16}$/,CZ:/^(CZ[0-9]{2})\d{20}$/,DE:/^(DE[0-9]{2})\d{18}$/,DK:/^(DK[0-9]{2})\d{14}$/,DO:/^(DO[0-9]{2})[A-Z]{4}\d{20}$/,DZ:/^(DZ\d{24})$/,EE:/^(EE[0-9]{2})\d{16}$/,EG:/^(EG[0-9]{2})\d{25}$/,ES:/^(ES[0-9]{2})\d{20}$/,FI:/^(FI[0-9]{2})\d{14}$/,FO:/^(FO[0-9]{2})\d{14}$/,FR:/^(FR[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,GB:/^(GB[0-9]{2})[A-Z]{4}\d{14}$/,GE:/^(GE[0-9]{2})[A-Z0-9]{2}\d{16}$/,GI:/^(GI[0-9]{2})[A-Z]{4}[A-Z0-9]{15}$/,GL:/^(GL[0-9]{2})\d{14}$/,GR:/^(GR[0-9]{2})\d{7}[A-Z0-9]{16}$/,GT:/^(GT[0-9]{2})[A-Z0-9]{4}[A-Z0-9]{20}$/,HR:/^(HR[0-9]{2})\d{17}$/,HU:/^(HU[0-9]{2})\d{24}$/,IE:/^(IE[0-9]{2})[A-Z]{4}\d{14}$/,IL:/^(IL[0-9]{2})\d{19}$/,IQ:/^(IQ[0-9]{2})[A-Z]{4}\d{15}$/,IR:/^(IR[0-9]{2})0\d{2}0\d{18}$/,IS:/^(IS[0-9]{2})\d{22}$/,IT:/^(IT[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,JO:/^(JO[0-9]{2})[A-Z]{4}\d{22}$/,KW:/^(KW[0-9]{2})[A-Z]{4}[A-Z0-9]{22}$/,KZ:/^(KZ[0-9]{2})\d{3}[A-Z0-9]{13}$/,LB:/^(LB[0-9]{2})\d{4}[A-Z0-9]{20}$/,LC:/^(LC[0-9]{2})[A-Z]{4}[A-Z0-9]{24}$/,LI:/^(LI[0-9]{2})\d{5}[A-Z0-9]{12}$/,LT:/^(LT[0-9]{2})\d{16}$/,LU:/^(LU[0-9]{2})\d{3}[A-Z0-9]{13}$/,LV:/^(LV[0-9]{2})[A-Z]{4}[A-Z0-9]{13}$/,MA:/^(MA[0-9]{26})$/,MC:/^(MC[0-9]{2})\d{10}[A-Z0-9]{11}\d{2}$/,MD:/^(MD[0-9]{2})[A-Z0-9]{20}$/,ME:/^(ME[0-9]{2})\d{18}$/,MK:/^(MK[0-9]{2})\d{3}[A-Z0-9]{10}\d{2}$/,MR:/^(MR[0-9]{2})\d{23}$/,MT:/^(MT[0-9]{2})[A-Z]{4}\d{5}[A-Z0-9]{18}$/,MU:/^(MU[0-9]{2})[A-Z]{4}\d{19}[A-Z]{3}$/,MZ:/^(MZ[0-9]{2})\d{21}$/,NL:/^(NL[0-9]{2})[A-Z]{4}\d{10}$/,NO:/^(NO[0-9]{2})\d{11}$/,PK:/^(PK[0-9]{2})[A-Z0-9]{4}\d{16}$/,PL:/^(PL[0-9]{2})\d{24}$/,PS:/^(PS[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,PT:/^(PT[0-9]{2})\d{21}$/,QA:/^(QA[0-9]{2})[A-Z]{4}[A-Z0-9]{21}$/,RO:/^(RO[0-9]{2})[A-Z]{4}[A-Z0-9]{16}$/,RS:/^(RS[0-9]{2})\d{18}$/,SA:/^(SA[0-9]{2})\d{2}[A-Z0-9]{18}$/,SC:/^(SC[0-9]{2})[A-Z]{4}\d{20}[A-Z]{3}$/,SE:/^(SE[0-9]{2})\d{20}$/,SI:/^(SI[0-9]{2})\d{15}$/,SK:/^(SK[0-9]{2})\d{20}$/,SM:/^(SM[0-9]{2})[A-Z]{1}\d{10}[A-Z0-9]{12}$/,SV:/^(SV[0-9]{2})[A-Z0-9]{4}\d{20}$/,TL:/^(TL[0-9]{2})\d{19}$/,TN:/^(TN[0-9]{2})\d{20}$/,TR:/^(TR[0-9]{2})\d{5}[A-Z0-9]{17}$/,UA:/^(UA[0-9]{2})\d{6}[A-Z0-9]{19}$/,VA:/^(VA[0-9]{2})\d{18}$/,VG:/^(VG[0-9]{2})[A-Z]{4}\d{16}$/,XK:/^(XK[0-9]{2})\d{16}$/};t.locales=Object.keys(o)},23684:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Binding=void 0;var n=r(27801),i=r(38615),a=function(){function e(e,t){this.id=(0,i.id)(),this.activated=!1,this.serviceIdentifier=e,this.scope=t,this.type=n.BindingTypeEnum.Invalid,this.constraint=function(e){return!0},this.implementationType=null,this.cache=null,this.factory=null,this.provider=null,this.onActivation=null,this.onDeactivation=null,this.dynamicValue=null}return e.prototype.clone=function(){var t=new e(this.serviceIdentifier,this.scope);return t.activated=t.scope===n.BindingScopeEnum.Singleton&&this.activated,t.implementationType=this.implementationType,t.dynamicValue=this.dynamicValue,t.scope=this.scope,t.type=this.type,t.factory=this.factory,t.provider=this.provider,t.constraint=this.constraint,t.onActivation=this.onActivation,t.onDeactivation=this.onDeactivation,t.cache=this.cache,t},e}();t.Binding=a},23787:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplateNoEval=function(){return"\n if (typeof counter === 'string') {\n const func = function () {\n while (true) {}\n };\n \n return func();\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n debugger;\n } else {\n debugger;\n }\n \n }\n "}},23877:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.numbersString=void 0,t.numbersString="0123456789"},23908:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberToNumericalExpressionTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(23615),d=r(91363),f=r(94556),p=r(57876),h=r(94766);let m=class extends u.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.numberNumericalExpressionAnalyzer=e}getVisitor(e){return this.options.numbersToExpressions&&e===c.NodeTransformationStage.Converting?{leave:(e,t)=>{if(t&&l.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if("number"!=typeof e.value)return e;if(l.NodeGuards.isPropertyNode(t)&&!t.computed)return e;const r=e.value,[n,i]=p.NumberUtils.extractIntegerAndDecimalParts(r),a=this.numberNumericalExpressionAnalyzer.analyze(n,f.NumberNumericalExpressionAnalyzer.defaultAdditionalPartsCount);return i?h.NumericalExpressionDataToNodeConverter.convertFloatNumberData(a,i,this.getNumberNumericalExpressionLiteralNode):h.NumericalExpressionDataToNodeConverter.convertIntegerNumberData(a,this.getNumberNumericalExpressionLiteralNode)}getNumberNumericalExpressionLiteralNode(e,t){const r=d.NodeFactory.literalNode(e);return t?r:d.NodeFactory.unaryExpressionNode("-",r)}};t.NumberToNumericalExpressionTransformer=m,t.NumberToNumericalExpressionTransformer=m=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),a(1,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object,Object])],m)},24116:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IsInputFileName=void 0;const n=r(90804),i=r(48096);t.IsInputFileName=()=>(e,t)=>{(0,n.IsString)()(e,t),(0,n.ValidateIf)(({sourceMapSourcesMode:e})=>e===i.SourceMapSourcesMode.Sources)(e,t),(0,n.IsNotEmpty)()(e,t)}},24157:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.decorate=function(e,t,r){"number"==typeof r?f([p(r,e)],t):"string"==typeof r?Reflect.decorate([e],t,r):f([e],t)},t.tagParameter=u,t.tagProperty=l,t.createTaggedDecorator=function(e){return function(t,r,n){"number"==typeof n?u(t,r,n,e):l(t,r,e)}};var o=a(r(95507)),s=a(r(2006)),c=r(13165);function u(e,t,r,n){!function(e){if(void 0!==e)throw new Error(o.INVALID_DECORATOR_OPERATION)}(t),d(s.TAGGED,e,r.toString(),n)}function l(e,t,r){if(void 0!==e.prototype)throw new Error(o.INVALID_DECORATOR_OPERATION);d(s.TAGGED_PROP,e.constructor,t,r)}function d(e,t,r,n){var i=function(e){var t=[];if(Array.isArray(e)){t=e;var r=(0,c.getFirstArrayDuplicate)(t.map(function(e){return e.key}));if(void 0!==r)throw new Error("".concat(o.DUPLICATED_METADATA," ").concat(r.toString()))}else t=[e];return t}(n),a={};Reflect.hasOwnMetadata(e,t)&&(a=Reflect.getMetadata(e,t));var s=a[r];if(void 0===s)s=[];else for(var u=function(e){if(i.some(function(t){return t.key===e.key}))throw new Error("".concat(o.DUPLICATED_METADATA," ").concat(e.key.toString()))},l=0,d=s;l{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersChainedCallsRule=void 0;t.StringArrayWrappersChainedCallsRule=e=>(0===e.stringArrayWrappersCount&&(e={...e,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0}),e)},24641:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^#?([0-9A-F]{3}|[0-9A-F]{4}|[0-9A-F]{6}|[0-9A-F]{8})$/i;e.exports=t.default,e.exports.default=t.default},24712:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsNormalizer=void 0;const a=r(71519),o=r(22767),s=r(60509),c=r(13450),u=r(65889),l=r(12798),d=r(36264),f=r(17604),p=r(88996),h=r(48983),m=r(89420),g=r(31309),b=r(51066),y=r(43735),S=r(73661),v=r(15426),_=r(24248);let C=n=class{normalize(e){let t={...e};for(const e of n.normalizerRules)t=e(t);return t}};t.OptionsNormalizer=C,C.normalizerRules=[o.ControlFlowFlatteningThresholdRule,s.DeadCodeInjectionRule,c.DeadCodeInjectionThresholdRule,u.DomainLockRedirectUrlRule,l.DomainLockRule,d.IdentifierNamesCacheRule,f.InputFileNameRule,p.SeedRule,h.SelfDefendingRule,m.SourceMapBaseUrlRule,g.SourceMapFileNameRule,b.SplitStringsChunkLengthRule,y.StringArrayRule,S.StringArrayCallsTransformThresholdRule,v.StringArrayEncodingRule,_.StringArrayWrappersChainedCallsRule],t.OptionsNormalizer=C=n=i([(0,a.injectable)()],C)},24808:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)};Object.defineProperty(t,"__esModule",{value:!0}),t.BlackListObfuscatingGuard=void 0;const o=r(71519),s=r(50275),c=r(23615);let u=n=class{constructor(){this.blackListGuardsLength=n.blackListGuards.length}check(e){for(let t=0;t(p.parentizeNode(e,t),d.NodeGuards.isLiteralNode(e)&&p.addXVerbatimPropertyTo(e),f.NodeMetadata.set(e,{ignoredNode:!1}),e)}),t.body}static convertStructureToCode(e){return e.reduce((e,t)=>e+s.generate(t,{sourceMapWithCode:!0}).code,"")}static getUnaryExpressionArgumentNode(e){return d.NodeGuards.isUnaryExpressionNode(e.argument)?p.getUnaryExpressionArgumentNode(e.argument):e.argument}static parentizeAst(e){var t;const r=null!==(t=e.parentNode)&&void 0!==t?t:null;return c.replace(e,{enter:p.parentizeNode}),r&&(e.parentNode=r),e}static parentizeNode(e,t){return e.parentNode=null!=t?t:e,e}static cloneRecursive(e){if(null===e)return e;if("object"!=typeof e)return e;const t={};return Object.keys(e).forEach(r=>{var n;if("parentNode"===r)return;const i=null!==(n=e[r])&&void 0!==n?n:null;let a;a=null===i||i instanceof RegExp?i:i instanceof Array?i.map(p.cloneRecursive):"object"==typeof i?p.cloneRecursive(i):i,t[r]=a}),t}}t.NodeUtils=p},25191:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.controlFlowTransformersModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(80231),s=r(96390),c=r(55613),u=r(6768),l=r(76822),d=r(59070),f=r(83595),p=r(70906),h=r(83682),m=r(9756);t.controlFlowTransformersModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.INodeTransformer).to(u.BlockStatementControlFlowTransformer).whenTargetNamed(s.NodeTransformer.BlockStatementControlFlowTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(d.FunctionControlFlowTransformer).whenTargetNamed(s.NodeTransformer.FunctionControlFlowTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(h.StringArrayControlFlowTransformer).whenTargetNamed(s.NodeTransformer.StringArrayControlFlowTransformer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(c.BinaryExpressionControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.BinaryExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(l.CallExpressionControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.CallExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(f.LogicalExpressionControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.LogicalExpressionControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(p.StringArrayCallControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.StringArrayCallControlFlowReplacer),e(a.ServiceIdentifiers.IControlFlowReplacer).to(m.StringLiteralControlFlowReplacer).whenTargetNamed(o.ControlFlowReplacer.StringLiteralControlFlowReplacer),e(a.ServiceIdentifiers.Factory__IControlFlowReplacer).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IControlFlowReplacer))})},25360:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DirectivePlacementTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(96390),l=r(76893),d=r(30386),f=r(23615),p=r(25120);let h=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[u.NodeTransformer.CustomCodeHelpersTransformer],this.lexicalScopeDirectives=new WeakMap}getVisitor(e){switch(e){case c.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t&&f.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.analyzeNode(e,t)}};case c.NodeTransformationStage.Finalizing:return{enter:(e,t)=>{if(t&&f.NodeGuards.isNodeWithLexicalScopeStatements(e,t))return this.transformNode(e,t)}};default:return null}}analyzeNode(e,t){var r;if(!f.NodeGuards.isNodeWithLexicalScope(t))return e;const n=null!==(r=e.body[0])&&void 0!==r?r:null;return n&&f.NodeGuards.isDirectiveNode(n)&&this.lexicalScopeDirectives.set(t,n),e}transformNode(e,t){if(!f.NodeGuards.isNodeWithLexicalScope(t))return e;const r=this.lexicalScopeDirectives.get(t);if(r){const t=p.NodeUtils.clone(r);d.NodeAppender.prepend(e,[t]),e.body=e.body.filter(e=>e!==r)}return e}};t.DirectivePlacementTransformer=h,t.DirectivePlacementTransformer=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],h)},25748:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)||o.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^(bc1|tb1|bc1p|tb1p)[ac-hj-np-z02-9]{39,58}$/,o=/^(1|2|3|m)[A-HJ-NP-Za-km-z1-9]{25,39}$/;e.exports=t.default,e.exports.default=t.default},25860:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorage=void 0,function(e){e.FunctionControlFlowStorage="function-control-flow-storage",e.StringControlFlowStorage="string-control-flow-storage"}(r||(t.ControlFlowStorage=r={}))},26617:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,i.default)(e),a.test(e))return!0;return!1};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[A-HJ-NP-Za-km-z1-9]*$/;e.exports=t.default,e.exports.default=t.default},27349:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,i.default)(e),0!==e.indexOf("magnet:?"))return!1;return a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/(?:^magnet:\?|[^?&]&)xt(?:\.1)?=urn:(?:(?:aich|bitprint|btih|ed2k|ed2khash|kzhash|md5|sha1|tree:tiger):[a-z0-9]{32}(?:[a-z0-9]{8})?|btmh:1220[a-z0-9]{64})(?:$|&)/i;e.exports=t.default,e.exports.default=t.default},27418:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(){return"\n const {selfDefendingFunctionName} = {callControllerFunctionName}(this, function () {\n return {selfDefendingFunctionName}\n .toString()\n .search('(((.+)+)+)+$')\n .toString()\n .constructor({selfDefendingFunctionName})\n .search('(((.+)+)+)+$');\n });\n \n {selfDefendingFunctionName}();\n "}},27480:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.base64alphabet=void 0;const n=r(98376),i=r(218),a=r(23877);t.base64alphabet=`${n.alphabetStringUppercase}${i.alphabetString}${a.numbersString}+/=`},27600:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(t)return g.NodeMetadata.isIgnoredNode(e)?p.VisitorOption.Skip:void(h.NodeGuards.isLiteralNode(e)&&this.analyzeLiteralNode(e,t))}})}analyzeLiteralNode(e,t){m.NodeLiteralUtils.isStringLiteralNode(e)&&(m.NodeLiteralUtils.isProhibitedLiteralNode(e,t)||this.shouldAddValueToStringArray(e)&&this.addItemDataForLiteralNode(e))}addItemDataForLiteralNode(e){this.stringArrayStorageData.set(e,this.stringArrayStorage.getOrThrow(e.value))}getItemDataForLiteralNode(e){return this.stringArrayStorageData.get(e)}shouldAddValueToStringArray(e){return!!g.NodeMetadata.isForceTransformNode(e)||e.value.length>=i.minimumLengthForStringArray&&!!this.options.stringArrayThreshold&&this.randomGenerator.getMathRandom()<=this.options.stringArrayThreshold}};t.StringArrayStorageAnalyzer=b,b.minimumLengthForStringArray=3,t.StringArrayStorageAnalyzer=b=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.IStringArrayStorage)),l(1,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(2,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Object,Object,Object])],b)},27680:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionFunctionNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(57013),l=r(91363),d=r(25120),f=r(23615);let p=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.expressionArguments=e,this.isChainExpressionParent=t}getNodeStructure(){const e=l.NodeFactory.identifierNode("callee"),t=[],r=[],n=this.expressionArguments.length;for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(e);var t=Number(e.slice(-1));return s.test(e)&&t===(r=e,n=10-r.slice(0,-1).split("").map(function(e,t){return Number(e)*function(e,t){return e===a||e===o?t%2==0?3:1:t%2==0?1:3}(r.length,t)}).reduce(function(e,t){return e+t},0)%10,n<10?n:0);var r,n};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=8,o=14,s=/^(\d{8}|\d{13}|\d{14})$/;e.exports=t.default,e.exports.default=t.default},27801:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.TargetTypeEnum=t.BindingTypeEnum=t.BindingScopeEnum=void 0;t.BindingScopeEnum={Request:"Request",Singleton:"Singleton",Transient:"Transient"};t.BindingTypeEnum={ConstantValue:"ConstantValue",Constructor:"Constructor",DynamicValue:"DynamicValue",Factory:"Factory",Function:"Function",Instance:"Instance",Invalid:"Invalid",Provider:"Provider"};t.TargetTypeEnum={ClassProperty:"ClassProperty",ConstructorArgument:"ConstructorArgument",Variable:"Variable"}},28609:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallsControllerFunctionCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(10548),l=r(79820),d=r(88318),f=r(25120);let p=class extends d.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t){this.nodeTransformationStage=e,this.callsControllerFunctionName=t}getNodeStructure(e){return f.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.nodeTransformationStage===c.NodeTransformationStage.Finalizing?this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate((0,l.SingleCallControllerTemplate)(),{callControllerFunctionName:this.callsControllerFunctionName})):this.customCodeHelperFormatter.formatTemplate((0,l.SingleCallControllerTemplate)(),{callControllerFunctionName:this.callsControllerFunctionName})}};t.CallsControllerFunctionCodeHelper=p,n([(0,u.initializable)(),i("design:type",String)],p.prototype,"callsControllerFunctionName",void 0),n([(0,u.initializable)(),i("design:type",String)],p.prototype,"nodeTransformationStage",void 0),t.CallsControllerFunctionCodeHelper=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],p)},28650:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.assertConstructorMetadataArrayFilled=function(e,t){const r=[];for(let e=0;e0)throw new n.InversifyCoreError(i.InversifyCoreErrorKind.missingInjectionDecorator,`Found unexpected missing metadata on type "${e.name}" at constructor indexes "${r.join('", "')}".\n\nAre you using @inject, @multiInject or @unmanaged decorators at those indexes?\n\nIf you're using typescript and want to rely on auto injection, set "emitDecoratorMetadata" compiler option to true`)};const n=r(21773),i=r(94931)},28901:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementControlFlowFlatteningNode=void 0;const o=r(71519),s=r(32287),c=r(19793),u=r(10548),l=r(57013),d=r(91363),f=r(23615),p=r(25120);let h=class extends l.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t,r){this.blockStatementBody=e,this.shuffledKeys=t,this.originalKeysIndexesInShuffledArray=r}getNodeStructure(){const e=this.randomGenerator.getRandomString(6),t=this.randomGenerator.getRandomString(6),r=d.NodeFactory.blockStatementNode([d.NodeFactory.variableDeclarationNode([d.NodeFactory.variableDeclaratorNode(d.NodeFactory.identifierNode(e),d.NodeFactory.callExpressionNode(d.NodeFactory.memberExpressionNode(d.NodeFactory.literalNode(this.originalKeysIndexesInShuffledArray.join(c.StringSeparator.VerticalLine)),d.NodeFactory.identifierNode("split")),[d.NodeFactory.literalNode(c.StringSeparator.VerticalLine)]))],"const"),d.NodeFactory.variableDeclarationNode([d.NodeFactory.variableDeclaratorNode(d.NodeFactory.identifierNode(t),d.NodeFactory.literalNode(0))],"let"),d.NodeFactory.whileStatementNode(d.NodeFactory.literalNode(!0),d.NodeFactory.blockStatementNode([d.NodeFactory.switchStatementNode(d.NodeFactory.memberExpressionNode(d.NodeFactory.identifierNode(e),d.NodeFactory.updateExpressionNode("++",d.NodeFactory.identifierNode(t)),!0),this.shuffledKeys.map((e,t)=>{const r=this.blockStatementBody[e],n=[r];return f.NodeGuards.isReturnStatementNode(r)||n.push(d.NodeFactory.continueStatement()),d.NodeFactory.switchCaseNode(d.NodeFactory.literalNode(String(t)),n)})),d.NodeFactory.breakStatement()]))]);return p.NodeUtils.parentizeAst(r),[r]}};t.BlockStatementControlFlowFlatteningNode=h,n([(0,u.initializable)(),i("design:type",Array)],h.prototype,"blockStatementBody",void 0),n([(0,u.initializable)(),i("design:type",Array)],h.prototype,"originalKeysIndexesInShuffledArray",void 0),n([(0,u.initializable)(),i("design:type",Array)],h.prototype,"shuffledKeys",void 0),t.BlockStatementControlFlowFlatteningNode=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],h)},29172:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,n.default)(e);var t=e.split(".");if(3!==t.length)return!1;return t.reduce(function(e,t){return e&&(0,i.default)(t,{urlSafe:!0})},!0)};var n=a(r(83399)),i=a(r(98274));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},29285:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,n;(0,i.default)(e),"object"===a(t)?(r=t.min||0,n=t.max):(r=arguments[1]||0,n=arguments[2]);var o=e.match(/[^\uFE0F\uFE0E][\uFE0F\uFE0E]/g)||[],s=e.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g)||[],c=e.length-o.length-s.length,u=c>=r&&(void 0===n||c<=n);if(u&&Array.isArray(null==t?void 0:t.discreteLengths))return t.discreteLengths.some(function(e){return e===c});return u};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}e.exports=t.default,e.exports.default=t.default},29378:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.Lookup=void 0;var o=a(r(95507)),s=r(76804),c=function(){function e(){this._map=new Map}return e.prototype.getMap=function(){return this._map},e.prototype.add=function(e,t){if(this._checkNonNulish(e),null==t)throw new Error(o.NULL_ARGUMENT);var r=this._map.get(e);void 0!==r?r.push(t):this._map.set(e,[t])},e.prototype.get=function(e){this._checkNonNulish(e);var t=this._map.get(e);if(void 0!==t)return t;throw new Error(o.KEY_NOT_FOUND)},e.prototype.remove=function(e){if(this._checkNonNulish(e),!this._map.delete(e))throw new Error(o.KEY_NOT_FOUND)},e.prototype.removeIntersection=function(e){var t=this;this.traverse(function(r,n){var i=e.hasKey(r)?e.get(r):void 0;if(void 0!==i){var a=n.filter(function(e){return!i.some(function(t){return e===t})});t._setValue(r,a)}})},e.prototype.removeByCondition=function(e){var t=this,r=[];return this._map.forEach(function(n,i){for(var a=[],o=0,s=n;o0?this._map.set(e,t):this._map.delete(e)},e}();t.Lookup=c},29666:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)},t.fullWidth=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=t.fullWidth=/[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/},29947:e=>{"use strict";e.exports=()=>{const e="\\ud800-\\udfff",t=`[${e}]`,r="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\u1ab0-\\u1aff\\u1dc0-\\u1dff]",n="\\ud83c[\\udffb-\\udfff]",i=`[^${e}]`,a="(?:\\uD83C[\\uDDE6-\\uDDFF]){2}",o="[\\ud800-\\udbff][\\udc00-\\udfff]",s="[\\uD83D\\uDC69\\uD83C\\uDFFB\\u200D\\uD83C\\uDF93]",c=`${`(?:${r}|${n})`}?`,u="[\\ufe0e\\ufe0f]?",l=u+c+`(?:\\u200d(?:${[i,a,o].join("|")})${u+c})*`,d=`(?:${[`${i}${r}?`,r,a,o,t,s].join("|")})`;return new RegExp(`(?:\\ud83c\\udff4\\udb40\\udc67\\udb40\\udc62\\udb40(?:\\udc65|\\udc73|\\udc77)\\udb40(?:\\udc6e|\\udc63|\\udc6c)\\udb40(?:\\udc67|\\udc74|\\udc73)\\udb40\\udc7f)|${n}(?=${n})|${d+l}`,"g")}},30102:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformer=void 0,function(e){e.HashbangOperatorTransformer="HashbangOperatorTransformer"}(r||(t.CodeTransformer=r={}))},30221:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionIdentifiersTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(23615);let d=class extends u.AbstractNodeTransformer{constructor(e,t,r,n){super(t,r),this.identifierReplacer=e,this.scopeIdentifiersTraverser=n}getVisitor(e){return e===c.NodeTransformationStage.RenameIdentifiers?{enter:(e,t)=>{if(t&&l.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)}),e}transformScopeThroughIdentifiers(e,t){if(e.resolved)return;const r=e.identifier;this.storeIdentifierName(r,t),this.replaceIdentifierName(r,t,e)}storeIdentifierName(e,t){this.identifierReplacer.storeLocalName(e,t)}replaceIdentifierName(e,t,r){const n=this.identifierReplacer.replace(e,t);r.identifier.name=n.name}};t.DeadCodeInjectionIdentifiersTransformer=d,t.DeadCodeInjectionIdentifiersTransformer=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IIdentifierReplacer)),a(1,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(3,(0,o.inject)(s.ServiceIdentifiers.IScopeIdentifiersTraverser)),i("design:paramtypes",[Object,Object,Object,Object])],d)},30317:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,n.default)((0,i.default)(e,t),t)};var n=a(r(12483)),i=a(r(62309));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},30386:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeAppender=void 0;const n=r(23615);class i{static append(e,t){t=i.parentizeScopeStatementsBeforeAppend(e,t);const r=i.getScopeStatements(e).concat(t);i.setScopeStatements(e,r)}static appendToOptimalBlockScope(e,t,r,n=0){const a=e.length?i.getOptimalBlockScope(e,n):t;i.prepend(a,r)}static getOptimalBlockScope(e,t,r=1/0){const n=e[t];if(r<=0)throw new Error("Invalid `deep` argument value. Value should be bigger then 0.");return r>1&&n.callsGraph.length?i.getOptimalBlockScope(n.callsGraph,0,--r):n.callee}static getScopeStatements(e){return n.NodeGuards.isSwitchCaseNode(e)?e.consequent:e.body}static insertBefore(e,t,r){const n=i.getScopeStatements(e).indexOf(r);i.insertAtIndex(e,t,n)}static insertAfter(e,t,r){const n=i.getScopeStatements(e).indexOf(r);i.insertAtIndex(e,t,n+1)}static insertAtIndex(e,t,r){t=i.parentizeScopeStatementsBeforeAppend(e,t),i.setScopeStatements(e,[...i.getScopeStatements(e).slice(0,r),...t,...i.getScopeStatements(e).slice(r)])}static prepend(e,t){const r=(t=i.parentizeScopeStatementsBeforeAppend(e,t)).concat(i.getScopeStatements(e));i.setScopeStatements(e,r)}static remove(e,t){const r=i.getScopeStatements(e),n=r.indexOf(t);if(-1===n)return;const a=[...r];a.splice(n,1),i.setScopeStatements(e,a)}static parentizeScopeStatementsBeforeAppend(e,t){return t.forEach(t=>{t.parentNode=e}),t}static setScopeStatements(e,t){n.NodeGuards.isSwitchCaseNode(e)?e.consequent=t:e.body=t}}t.NodeAppender=i},30486:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RandomGenerator=void 0;const c=r(71519),u=r(32287),l=s(r(83503)),d=r(97677),f=r(10548),p=r(218),h=r(98376);let m=n=class{constructor(e,t){this.sourceCode=e,this.options=t}initialize(){this.randomGenerator=new d.Chance(this.getRawSeed())}getMathRandom(){return this.getRandomInteger(0,99999)/1e5}getRandomGenerator(){return this.randomGenerator}getRandomInteger(e,t){return this.getRandomGenerator().integer({min:e,max:t})}getRandomIntegerExcluding(e,t,r){const n=[];for(let i=e;i<=t;i++)r.includes(i)||n.push(i);return this.randomGenerator.pickone(n)}getRandomString(e,t=n.randomGeneratorPool){return this.getRandomGenerator().string({length:e,pool:t})}getInputSeed(){return this.options.seed.toString()}getRawSeed(){const e=this.getInputSeed();if(`${e}`.split("|").length>1)return e;return`${e}|${(0,l.default)(this.sourceCode.getSourceCode())}`}};t.RandomGenerator=m,m.randomGeneratorPool=`${p.alphabetString}${h.alphabetStringUppercase}`,i([(0,f.initializable)(),a("design:type",Object)],m.prototype,"randomGenerator",void 0),i([(0,c.postConstruct)(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],m.prototype,"initialize",null),t.RandomGenerator=m=n=i([(0,c.injectable)(),o(0,(0,c.inject)(u.ServiceIdentifiers.ISourceCode)),o(1,(0,c.inject)(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object,Object])],m)},30490:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EscapeSequenceTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(96390),l=r(76893),d=r(23615),f=r(90253),p=r(91363),h=r(25120);let m=class extends l.AbstractNodeTransformer{constructor(e,t,r){super(e,t),this.runAfter=[u.NodeTransformer.CustomCodeHelpersTransformer],this.escapeSequenceEncoder=r}getVisitor(e){return e===c.NodeTransformationStage.Finalizing?{enter:(e,t)=>{if(d.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(!f.NodeLiteralUtils.isStringLiteralNode(e))return e;const r=this.escapeSequenceEncoder.encode(e.value,this.options.unicodeEscapeSequence),n=p.NodeFactory.literalNode(r);return h.NodeUtils.parentizeNode(n,t),n}};t.EscapeSequenceTransformer=m,t.EscapeSequenceTransformer=m=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(2,(0,o.inject)(s.ServiceIdentifiers.IEscapeSequenceEncoder)),i("design:paramtypes",[Object,Object,Object])],m)},30607:function(e,t,r){"use strict";var n,i=r(65606),a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;il.blobUploadThreshold?this.obfuscateWithBlobUpload(n,r):this.obfuscateDirect(n,r)}async obfuscateDirect(e,t){const r={"Content-Type":"application/json",Accept:"application/x-ndjson",Authorization:`Bearer ${this.config.apiToken}`},n=new AbortController,i=setTimeout(()=>n.abort(),this.config.timeout);let a=l.apiUrl;this.config.version&&(a=`${l.apiUrl}?version=${encodeURIComponent(this.config.version)}`);try{const o=await fetch(a,{method:"POST",headers:r,body:e,signal:n.signal});return clearTimeout(i),this.handleStreamingResponse(o,t)}catch(e){if(clearTimeout(i),e instanceof Error&&"AbortError"===e.name)throw new c.ApiError("Request timeout",408);throw e}}async obfuscateWithBlobUpload(e,t){null==t||t("Uploading large file...");const r=await this.uploadToBlob(e);null==t||t("File uploaded, starting obfuscation...");const n={"Content-Type":"application/json",Accept:"application/x-ndjson",Authorization:`Bearer ${this.config.apiToken}`},i=new AbortController,a=setTimeout(()=>i.abort(),this.config.timeout);let o=l.apiUrl;this.config.version&&(o=`${l.apiUrl}?version=${encodeURIComponent(this.config.version)}`);try{const e=await fetch(o,{method:"POST",headers:n,body:JSON.stringify({blobUrl:r}),signal:i.signal});return clearTimeout(a),this.handleStreamingResponse(e,t)}catch(e){if(clearTimeout(a),e instanceof Error&&"AbortError"===e.name)throw new c.ApiError("Request timeout",408);throw e}}async uploadToBlob(e){const t="obfuscate-request.json",r=await this.getUploadToken(t);return this.uploadWithClientToken(r,t,e)}async getUploadToken(e){var t;const r=new AbortController,n=setTimeout(()=>r.abort(),3e4);try{const i=await fetch(l.uploadTokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.config.apiToken}`},body:JSON.stringify({pathname:e}),signal:r.signal});clearTimeout(n);const a=await i.text();let o;try{o=JSON.parse(a)}catch(e){throw new c.ApiError(a||"Failed to get upload token",i.status)}if(!i.ok)throw new c.ApiError(null!==(t=o.error)&&void 0!==t?t:"Failed to get upload token",i.status);if(!o.clientToken)throw new c.ApiError("No client token returned",500);return o.clientToken}catch(e){if(clearTimeout(n),e instanceof c.ApiError)throw e;if(e instanceof Error&&"AbortError"===e.name)throw new c.ApiError("Token request timeout",408);throw e}}async uploadWithClientToken(e,t,n){const i=await Promise.resolve().then(()=>s(r(19384))),a=new AbortController,o=setTimeout(()=>a.abort(),12e4);try{const r=await i.put(t,n,{access:"public",token:e});return clearTimeout(o),r.url}catch(e){if(clearTimeout(o),e instanceof c.ApiError)throw e;if(e instanceof Error&&"AbortError"===e.name)throw new c.ApiError("Upload timeout",408);if(e instanceof Error)throw new c.ApiError(`Upload failed: ${e.message}`,500);throw e}}async handleStreamingResponse(e,t){var r;const n=(await e.text()).trim().split("\n"),i=[];for(const e of n)if(e.trim())try{const r=JSON.parse(e);i.push(r),"progress"===r.type&&r.message&&t&&t(r.message)}catch(e){}const a=i.find(e=>"error"===e.type);if(a)throw new c.ApiError(null!==(r=a.message)&&void 0!==r?r:"Unknown API error",e.status);const o=this.reassembleChunkedResponse(i);if(!o.code)throw new c.ApiError("No result received from API",500);return new u.ProApiObfuscationResult(o.code,o.sourceMap||"")}reassembleChunkedResponse(e){var t,r,n;const i=[],a=[];let o={code:"",sourceMap:""};for(const s of e)switch(s.type){case"chunk":"code"===s.field&&void 0!==s.data&&void 0!==s.index?i[s.index]=s.data:"sourceMap"===s.field&&void 0!==s.data&&void 0!==s.index&&(a[s.index]=s.data);break;case"chunk_end":o.code=i.join(""),o.sourceMap=null!==(t=a.join("")||s.sourceMap)&&void 0!==t?t:"";break;case"result":o={code:null!==(r=s.code)&&void 0!==r?r:"",sourceMap:null!==(n=s.sourceMap)&&void 0!==n?n:""}}return o}}t.ProApiClient=l,l.apiHost=i.env.OBFUSCATOR_API_HOST||"https://obfuscator.io",l.apiUrl=`${l.apiHost}/api/v1/obfuscate`,l.uploadTokenUrl=`${l.apiHost}/api/v1/upload/token`,l.defaultTimeout=3e5,l.blobUploadThreshold=4613734.4},30664:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MemberExpressionTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(91363),d=r(23615),f=r(12720);let p=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&d.NodeGuards.isMemberExpressionNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(f.NodeMetadata.isIgnoredNode(e.object)||f.NodeMetadata.isIgnoredNode(e.property))return e;if(d.NodeGuards.isIdentifierNode(e.property)){if(e.computed)return e;e.computed=!0,e.property=l.NodeFactory.literalNode(e.property.name)}return e}};t.MemberExpressionTransformer=p,t.MemberExpressionTransformer=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],p)},31252:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,n.default)(e),(0,i.default)(e)&&24===e.length};var n=a(r(83399)),i=a(r(82002));function a(e){return e&&e.__esModule?e:{default:e}}e.exports=t.default,e.exports.default=t.default},31309:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapFileNameRule=void 0;const n=r(19793);t.SourceMapFileNameRule=e=>{let{sourceMapFileName:t}=e;if(t){t=t.replace(/^\/+/,"").replace(/(?:\.js)?(?:\.map)?$/,"");let r=t.split(n.StringSeparator.Dot);const i=r.length,a=r[i-1];i>1&&a.length<=3&&(r=r.slice(0,-1)),t=r.join(n.StringSeparator.Dot),e={...e,sourceMapFileName:`${t}.js.map`}}return e}},31449:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.fullWidth.test(e)&&o.halfWidth.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n},a=r(29666),o=r(49534);e.exports=t.default,e.exports.default=t.default},31601:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.injectBase=function(e){return function(t){return function(r,o,s){if(void 0===t){var c="function"==typeof r?r.name:r.constructor.name;throw new Error((0,n.UNDEFINED_INJECT_ANNOTATION)(c))}(0,a.createTaggedDecorator)(new i.Metadata(e,t))(r,o,s)}}};var n=r(95507),i=r(14425),a=r(24157)},31691:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(65104),l=r(88318),d=r(25120),f=r(37004);let p=class extends l.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t){this.stringArrayStorage=e,this.stringArrayFunctionName=t}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.identifierNamesGenerator.generateNext();return this.customCodeHelperFormatter.formatTemplate((0,u.StringArrayTemplate)(),{stringArrayFunctionName:this.stringArrayFunctionName,stringArrayName:e,stringArrayStorageItems:this.getEncodedStringArrayStorageItems()})}getEncodedStringArrayStorageItems(){return Array.from(this.stringArrayStorage.getStorage().values()).map(e=>`'${f.StringUtils.escapeJsString(e.encodedValue)}'`).toString()}};t.StringArrayCodeHelper=p,n([(0,c.initializable)(),i("design:type",Object)],p.prototype,"stringArrayStorage",void 0),n([(0,c.initializable)(),i("design:type",String)],p.prototype,"stringArrayFunctionName",void 0),t.StringArrayCodeHelper=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],p)},31954:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[A-Z]{2}[0-9A-Z]{3}\d{2}\d{5}$/;e.exports=t.default,e.exports.default=t.default},32017:e=>{"use strict";e.exports=function e(t,r){if(t===r)return!0;if(t&&r&&"object"==typeof t&&"object"==typeof r){if(t.constructor!==r.constructor)return!1;var n,i,a;if(Array.isArray(t)){if((n=t.length)!=r.length)return!1;for(i=n;0!==i--;)if(!e(t[i],r[i]))return!1;return!0}if(t.constructor===RegExp)return t.source===r.source&&t.flags===r.flags;if(t.valueOf!==Object.prototype.valueOf)return t.valueOf()===r.valueOf();if(t.toString!==Object.prototype.toString)return t.toString()===r.toString();if((n=(a=Object.keys(t)).length)!==Object.keys(r).length)return!1;for(i=n;0!==i--;)if(!Object.prototype.hasOwnProperty.call(r,a[i]))return!1;for(i=n;0!==i--;){var o=a[i];if(!e(t[o],r[o]))return!1}return!0}return t!=t&&r!=r}},32047:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRC4DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6),i=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n {rc4Polyfill}\n {stringArrayCallsWrapperName}.${r} = {rc4FunctionName};\n \n {stringArrayCallsWrapperName}.${n} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const firstValue = stringArray[0];\n const cacheKey = index + firstValue;\n const cachedValue = {stringArrayCallsWrapperName}.${n}[cacheKey];\n\n if (!cachedValue) {\n if ({stringArrayCallsWrapperName}.${i} === undefined) {\n {selfDefendingCode}\n \n {stringArrayCallsWrapperName}.${i} = true;\n }\n \n value = {stringArrayCallsWrapperName}.${r}(value, key);\n {stringArrayCallsWrapperName}.${n}[cacheKey] = value;\n } else {\n value = cachedValue;\n }\n `}},32287:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ServiceIdentifiers=void 0,function(e){e.Factory__ICalleeDataExtractor="Factory",e.Factory__ICodeTransformer="Factory",e.Factory__IControlFlowCustomNode="Factory",e.Factory__IControlFlowReplacer="Factory",e.Factory__ICustomCodeHelper="Factory",e.Factory__ICustomCodeHelperGroup="Factory",e.Factory__IDeadCodeInjectionCustomNode="Factory",e.Factory__IIdentifierNamesGenerator="Factory",e.Factory__INodeGuard="Factory",e.Factory__INodeTransformer="Factory",e.Factory__IObfuscationResult="Factory",e.Factory__IObjectExpressionKeysTransformerCustomNode="Factory",e.Factory__IObjectExpressionExtractor="Factory",e.Factory__IStringArrayCustomNode="Factory",e.Factory__IStringArrayIndexNode="Factory",e.Factory__TControlFlowStorage="Factory",e.IArrayUtils="IArrayUtils",e.ICalleeDataExtractor="ICalleeDataExtractor",e.ICallsGraphAnalyzer="ICallsGraphAnalyzer",e.ICodeTransformer="ICodeTransformer",e.ICodeTransformerNamesGroupsBuilder="ICodeTransformerNamesGroupsBuilder",e.ICodeTransformersRunner="ICodeTransformersRunner",e.IControlFlowStorage="IControlFlowStorage",e.ICryptUtils="ICryptUtils",e.ICryptUtilsStringArray="ICryptUtilsStringArray",e.ICustomCodeHelper="ICustomCodeHelper",e.ICustomCodeHelperGroup="ICustomCodeHelperGroup",e.IControlFlowReplacer="IControlFlowReplacer",e.ICustomCodeHelperFormatter="ICustomCodeHelperFormatter",e.ICustomCodeHelperObfuscator="ICustomCodeHelperObfuscator",e.IEscapeSequenceEncoder="IEscapeSequenceEncoder",e.IGlobalIdentifierNamesCacheStorage="IGlobalIdentifierNamesCacheStorage",e.IIdentifierNamesGenerator="IIdentifierNamesGenerator",e.IIdentifierReplacer="IIdentifierReplacer",e.IJavaScriptObfuscator="IJavaScriptObfuscator",e.ILevelledTopologicalSorter="ILevelledTopologicalSorter",e.ILiteralNodesCacheStorage="ILiteralNodesCacheStorage",e.ILogger="ILogger",e.INodeGuard="INodeGuard",e.INodeTransformer="INodeTransformer",e.INodeTransformerNamesGroupsBuilder="INodeTransformerNamesGroupsBuilder",e.INodeTransformersRunner="INodeTransformersRunner",e.INumberNumericalExpressionAnalyzer="INumberNumericalExpressionAnalyzer",e.IObfuscationResult="IObfuscationResult",e.IOptions="IOptions",e.IOptionsNormalizer="IOptionsNormalizer",e.IPrevailingKindOfVariablesAnalyzer="IPrevailingKindOfVariablesAnalyzer",e.IPropertyIdentifierNamesCacheStorage="IPropertyIdentifierNamesCacheStorage",e.IObjectExpressionExtractor="IObjectExpressionExtractor",e.IRandomGenerator="IRandomGenerator",e.IRenamePropertiesReplacer="IRenamePropertiesReplacer",e.IScopeIdentifiersTraverser="IScopeIdentifiersTraverser",e.ISetUtils="ISetUtils",e.ISourceCode="ISourceCode",e.IScopeAnalyzer="IScopeAnalyzer",e.IStringArrayIndexNode="IStringArrayIndexNode",e.IStringArrayScopeCallsWrappersDataStorage="IStringArrayScopeCallsWrappersDataStorage",e.IStringArrayStorage="IStringArrayStorage",e.IStringArrayStorageAnalyzer="IStringArrayStorageAnalyzer",e.IThroughIdentifierReplacer="IThroughIdentifierReplacer",e.IVisitedLexicalScopeNodesStackStorage="IVisitedLexicalScopeNodesStackStorage",e.Newable__ICustomNode="Newable",e.TCustomNodeGroupStorage="TCustomNodeGroupStorage",e.TInputOptions="TInputOptions"}(r||(t.ServiceIdentifiers=r={}))},32337:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,a.default)(e),0!==e.indexOf("mailto:"))return!1;var r=s(e.replace("mailto:","").split("?"),2),o=r[0],u=r[1],l=void 0===u?"":u;if(!o&&!l)return!0;var d=function(e){var t=new Set(["subject","body","cc","bcc"]),r={cc:"",bcc:""},n=!1,i=e.split("&");if(i.length>4)return!1;var a,o=function(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=c(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,o=!0,s=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return o=e.done,e},e:function(e){s=!0,a=e},f:function(){try{o||null==r.return||r.return()}finally{if(s)throw a}}}}(i);try{for(o.s();!(a=o.n()).done;){var u=s(a.value.split("="),2),l=u[0],d=u[1];if(l&&!t.has(l)){n=!0;break}!d||"cc"!==l&&"bcc"!==l||(r[l]=d),l&&t.delete(l)}}catch(e){o.e(e)}finally{o.f()}return!n&&r}(l);if(!d)return!1;return"".concat(o,",").concat(d.cc,",").concat(d.bcc).split(",").every(function(e){return!(e=(0,n.default)(e," "))||(0,i.default)(e,t)})};var n=o(r(30317)),i=o(r(69517)),a=o(r(83399));function o(e){return e&&e.__esModule?e:{default:e}}function s(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,s=[],c=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(e,t){if(e){if("string"==typeof e)return u(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r{var r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");t.encode=function(e){if(0<=e&&e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLexicalScopeUtils=void 0;const n=r(23615);class i{static getLexicalScope(e){return i.getLexicalScopesRecursive(e,1)[0]}static getLexicalScopes(e){return i.getLexicalScopesRecursive(e)}static getLexicalScopesRecursive(e,t=1/0,r=[],a=0){if(r.length>=t)return r;const o=e.parentNode;if(!o)throw new ReferenceError("`parentNode` property of given node is `undefined`");return n.NodeGuards.isNodeWithLexicalScope(e)&&r.push(e),e!==o?i.getLexicalScopesRecursive(o,t,r,++a):r}}t.NodeLexicalScopeUtils=i},32644:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IgnoredImportObfuscatingGuard=void 0;const s=r(71519),c=r(50275),u=r(32287),l=r(23615);let d=n=class{constructor(e){this.options=e}static isDynamicImport(e){return l.NodeGuards.isImportExpressionNode(e)}static isRequireImport(e){return l.NodeGuards.isCallExpressionNode(e)&&l.NodeGuards.isIdentifierNode(e.callee)&&"require"===e.callee.name}check(e){if(this.options.ignoreImports){if(n.isDynamicImport(e)||n.isRequireImport(e))return c.ObfuscatingGuardResult.Ignore}return c.ObfuscatingGuardResult.Transform}};t.IgnoredImportObfuscatingGuard=d,t.IgnoredImportObfuscatingGuard=d=n=i([(0,s.injectable)(),o(0,(0,s.inject)(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object])],d)},32795:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowStorageNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(57013),l=r(91363),d=r(23615);let f=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.controlFlowStorage=e}getNodeStructure(){const e=[],t=this.controlFlowStorage.getStorage();for(const[r,n]of t){const t=n.getNode()[0];if(!d.NodeGuards.isExpressionStatementNode(t))throw new Error("Function node for control flow storage object should be passed inside the `ExpressionStatement` node!");e.push(l.NodeFactory.propertyNode(l.NodeFactory.identifierNode(r),t.expression))}return[l.NodeFactory.variableDeclarationNode([l.NodeFactory.variableDeclaratorNode(l.NodeFactory.identifierNode(this.controlFlowStorage.getStorageId()),l.NodeFactory.objectExpressionNode(e))],"const")]}};t.ControlFlowStorageNode=f,n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"controlFlowStorage",void 0),t.ControlFlowStorageNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],f)},33078:(e,t)=>{"use strict";const r={ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],AwaitExpression:["argument"],BinaryExpression:["left","right"],BlockStatement:["body"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExperimentalRestProperty:["argument"],ExperimentalSpreadProperty:["argument"],ExportAllDeclaration:["exported","source","attributes"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source","attributes"],ExportSpecifier:["local","exported"],ExpressionStatement:["expression"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],ForStatement:["init","test","update","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportAttribute:["key","value"],ImportDeclaration:["specifiers","source","attributes"],ImportDefaultSpecifier:["local"],ImportExpression:["source","options"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],JSXAttribute:["name","value"],JSXClosingElement:["name"],JSXClosingFragment:[],JSXElement:["openingElement","children","closingElement"],JSXEmptyExpression:[],JSXExpressionContainer:["expression"],JSXFragment:["openingFragment","children","closingFragment"],JSXIdentifier:[],JSXMemberExpression:["object","property"],JSXNamespacedName:["namespace","name"],JSXOpeningElement:["name","attributes"],JSXOpeningFragment:[],JSXSpreadAttribute:["argument"],JSXSpreadChild:["expression"],JSXText:[],LabeledStatement:["label","body"],Literal:[],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],StaticBlock:["body"],Super:[],SwitchCase:["test","consequent"],SwitchStatement:["discriminant","cases"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n=Object.keys(r);for(const e of n)Object.freeze(r[e]);Object.freeze(r);const i=new Set(["parent","leadingComments","trailingComments"]);function a(e){return!i.has(e)&&"_"!==e[0]}t.KEYS=r,t.getKeys=function(e){return Object.keys(e).filter(a)},t.unionWith=function(e){const t=Object.assign({},r);for(const r of Object.keys(e))if(Object.hasOwn(t,r)){const n=new Set(e[r]);for(const e of t[r])n.add(e);t[r]=Object.freeze(Array.from(n))}else t[r]=Object.freeze(Array.from(e[r]));return Object.freeze(t)}},33389:function(e,t,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.WeakMapStorage=void 0;const o=r(71519),s=r(32287),c=r(10548);let u=class{constructor(e,t){this.randomGenerator=e,this.options=t}initialize(){this.storage=new Map,this.storageId=this.randomGenerator.getRandomString(6)}get(e){return this.storage.get(e)}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in weak map storage with key \`${e}\``);return t}getStorage(){return this.storage}getStorageId(){return this.storageId}has(e){return this.storage.has(e)}set(e,t){this.storage.set(e,t)}};t.WeakMapStorage=u,n([(0,c.initializable)(),i("design:type",String)],u.prototype,"storageId",void 0),n([(0,c.initializable)(),i("design:type",WeakMap)],u.prototype,"storage",void 0),n([(0,o.postConstruct)(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],u.prototype,"initialize",null),t.WeakMapStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},33655:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.multiInject=void 0;var o=a(r(2006)),s=(0,r(31601).injectBase)(o.MULTI_INJECT_TAG);t.multiInject=s},33752:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e)?parseFloat(e):NaN};var n,i=(n=r(50995))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},33906:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e,{allow_leading_zeroes:!1,min:0,max:65535})};var n,i=(n=r(76084))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},33973:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),new RegExp("^[a-fA-F0-9]{".concat(a[t],"}$")).test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a={md5:32,md4:32,sha1:40,sha256:64,sha384:96,sha512:128,ripemd128:32,ripemd160:40,tiger128:32,tiger160:40,tiger192:48,crc32:8,crc32b:8};e.exports=t.default,e.exports.default=t.default},34003:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractIdentifierNamesGenerator=void 0;const o=r(71519),s=r(32287),c=r(23615);let u=class{constructor(e,t){this.preservedNamesSet=new Set,this.lexicalScopesPreservedNamesMap=new WeakMap,this.allLexicalScopePreservedNames=new Set,this.randomGenerator=e,this.options=t}generate(e,t){return c.NodeGuards.isProgramNode(e)?this.generateForGlobalScope():this.generateForLexicalScope(e)}preserveName(e){this.preservedNamesSet.add(e)}preserveNameForLexicalScope(e,t){var r;const n=null!==(r=this.lexicalScopesPreservedNamesMap.get(t))&&void 0!==r?r:new Set;n.add(e),this.lexicalScopesPreservedNamesMap.set(t,n),this.allLexicalScopePreservedNames.add(e)}isValidIdentifierName(e){return!this.isReservedName(e)&&!this.preservedNamesSet.has(e)}isValidIdentifierNameInLexicalScopes(e,t){var r;if(!this.isValidIdentifierName(e))return!1;for(const n of t){const t=null!==(r=this.lexicalScopesPreservedNamesMap.get(n))&&void 0!==r?r:null;if(t&&t.has(e))return!1}return!0}isValidIdentifierNameInAllScopes(e){return!!this.isValidIdentifierName(e)&&!this.allLexicalScopePreservedNames.has(e)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};t.AbstractIdentifierNamesGenerator=u,t.AbstractIdentifierNamesGenerator=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},34516:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionToVariableDeclarationExtractor=void 0;const o=r(71519),s=r(32287),c=r(63726),u=r(30386),l=r(23615),d=r(50027),f=r(25120),p=r(32504);let h=class{constructor(e){this.objectExpressionKeysTransformerCustomNodeFactory=e}extract(e,t){return this.transformObjectExpressionToVariableDeclaration(e,t)}transformObjectExpressionToVariableDeclaration(e,t){var r;const n=d.NodeStatementUtils.getScopeOfNode(t),i=l.NodeGuards.isNodeWithLexicalScope(n)?n:null!==(r=p.NodeLexicalScopeUtils.getLexicalScope(n))&&void 0!==r?r:null;if(!i)throw new Error("Cannot find lexical scope node for the host statement node");const a=e.properties,o=this.getObjectExpressionHostNode(i,a),s=[o];u.NodeAppender.insertBefore(n,s,t),f.NodeUtils.parentizeAst(o),f.NodeUtils.parentizeNode(o,n);return{nodeToReplace:this.getObjectExpressionIdentifierNode(o),objectExpressionHostStatement:o,objectExpressionNode:this.getObjectExpressionNode(o)}}getObjectExpressionHostNode(e,t){const r=this.objectExpressionKeysTransformerCustomNodeFactory(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode);r.initialize(e,t);const n=r.getNode()[0];if(!n||!l.NodeGuards.isVariableDeclarationNode(n))throw new Error("`objectExpressionHostCustomNode.getNode()[0]` should returns array with `VariableDeclaration` node");return n}getObjectExpressionIdentifierNode(e){const t=e.declarations[0].id;if(!l.NodeGuards.isIdentifierNode(t))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `Identifier` id property");return t}getObjectExpressionNode(e){var t;const r=null!==(t=e.declarations[0].init)&&void 0!==t?t:null;if(!r||!l.NodeGuards.isObjectExpressionNode(r))throw new Error("`objectExpressionHostNode` should contain `VariableDeclarator` node with `ObjectExpression` init property");return r}};t.ObjectExpressionToVariableDeclarationExtractor=h,t.ObjectExpressionToVariableDeclarationExtractor=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode)),i("design:paramtypes",[Function])],h)},34608:(e,t)=>{!function e(t){"use strict";var r,n,i,a,o,s;function c(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?c(r):r);return n}function u(e,t){this.parent=e,this.key=t}function l(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function d(){}function f(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function p(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function h(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function m(e,t){return(new d).traverse(e,t)}function g(e,t){var r;return r=function(e,t){var r,n,i,a;for(n=e.length,i=0;n;)t(e[a=i+(r=n>>>1)])?n=r:(i=a+1,n-=r+1);return i}(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",StaticBlock:"StaticBlock",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},i={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],StaticBlock:["body"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:a={},Skip:o={},Remove:s={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},d.prototype.path=function(){var e,t,r,n,i;function a(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(y=s[d=b[m]])if(Array.isArray(y)){for(g=y.length;(g-=1)>=0;)if(y[g]&&!h(n,y[g])){if(p(c,b[m]))i=new l(y[g],[d,g],"Property",null);else{if(!f(y[g]))continue;i=new l(y[g],[d,g],null,null)}r.push(i)}}else if(f(y)){if(h(n,y))continue;r.push(new l(y,d,null,null))}}}else if(i=n.pop(),u=this.__execute(t.leave,i),this.__state===a||u===a)return},d.prototype.replace=function(e,t){var r,n,i,c,d,h,m,g,b,y,S,v,_;function C(e){var t,n,i,a;if(e.ref.remove())for(n=e.ref.key,a=e.ref.parent,t=r.length;t--;)if((i=r[t]).ref&&i.ref.parent===a){if(i.ref.key=0;)if(y=i[_=b[m]])if(Array.isArray(y)){for(g=y.length;(g-=1)>=0;)if(y[g]){if(p(c,b[m]))h=new l(y[g],[_,g],"Property",new u(y,g));else{if(!f(y[g]))continue;h=new l(y[g],[_,g],null,new u(y,g))}r.push(h)}}else f(y)&&r.push(new l(y,_,null,new u(i,_)))}}else if(h=n.pop(),void 0!==(d=this.__execute(t.leave,h))&&d!==a&&d!==o&&d!==s&&h.ref.replace(d),this.__state!==s&&d!==s||C(h),this.__state===a||d===a)return v.root;return v.root},t.Syntax=r,t.traverse=m,t.replace=function(e,t){return(new d).replace(e,t)},t.attachComments=function(e,t,r){var i,a,o,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(o=0,a=t.length;oe.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?n.Break:u[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,m(e,{leave:function(e){for(var t;se.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=i,t.VisitorOption=n,t.Controller=d,t.cloneEnvironment=function(){return e({})},t}(t)},35041:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.EvalCallExpressionTransformer=void 0;const s=r(71519),c=r(32287),u=r(96390),l=r(18436),d=r(76893),f=r(91363),p=r(23615),h=r(12720),m=r(25120),g=r(37004);let b=n=class extends d.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[u.NodeTransformer.EscapeSequenceTransformer,u.NodeTransformer.ParentificationTransformer,u.NodeTransformer.VariablePreserveTransformer]}static extractEvalStringFromCallExpressionArgument(e){return p.NodeGuards.isLiteralNode(e)?n.extractEvalStringFromLiteralNode(e):p.NodeGuards.isTemplateLiteralNode(e)?n.extractEvalStringFromTemplateLiteralNode(e):null}static extractEvalStringFromLiteralNode(e){return"string"==typeof e.value?e.value:null}static extractEvalStringFromTemplateLiteralNode(e){var t;const r=e.quasis;return 1!==r.length||e.expressions.length?null:null!==(t=r[0].value.cooked)&&void 0!==t?t:null}getVisitor(e){switch(e){case l.NodeTransformationStage.Preparing:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};case l.NodeTransformationStage.Finalizing:return{leave:(e,t)=>{if(t)return this.restoreNode(e,t)}};default:return null}}transformNode(e,t){if(!(t&&p.NodeGuards.isCallExpressionNode(e)&&p.NodeGuards.isIdentifierNode(e.callee)&&"eval"===e.callee.name))return e;const r=e.arguments[0];if(!r)return e;const i=n.extractEvalStringFromCallExpressionArgument(r);if(!i)return e;let a;try{a=m.NodeUtils.convertCodeToStructure(i)}catch(t){return e}const o=f.NodeFactory.functionExpressionNode([],f.NodeFactory.blockStatementNode(a));return h.NodeMetadata.set(o,{evalHostNode:!0}),m.NodeUtils.parentizeAst(o),m.NodeUtils.parentizeNode(o,t),o}restoreNode(e,t){if(!this.isEvalRootAstHostNode(e))return e;const r=e.body.body,n=m.NodeUtils.convertStructureToCode(r);return f.NodeFactory.callExpressionNode(f.NodeFactory.identifierNode("eval"),[f.NodeFactory.literalNode(g.StringUtils.escapeJsString(n))])}isEvalRootAstHostNode(e){return h.NodeMetadata.isEvalHostNode(e)}};t.EvalCallExpressionTransformer=b,t.EvalCallExpressionTransformer=b=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object,Object])],b)},35126:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayCallNode=void 0;const s=r(71519),c=r(32287),u=r(66822),l=r(38094),d=r(57013),f=r(91363),p=r(12720),h=r(25120);let m=n=class extends d.AbstractCustomNode{constructor(e,t,r,n,i,a,o){super(e,r,a,o),this.stringArrayIndexNodeFactory=t,this.stringArrayStorage=n,this.arrayUtils=i}getStringArrayIndexNode(e){var t;const r=e>=0,i=Math.abs(e),a=this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayIndexesType),o=null!==(t=n.stringArrayIndexNodesMap.get(a))&&void 0!==t?t:null;if(!o)throw new Error("Invalid string array index node name");const s=this.stringArrayIndexNodeFactory(o).getNode(i);p.NodeMetadata.set(s,{stringArrayCallLiteralNode:!0});const c=r?s:f.NodeFactory.unaryExpressionNode("-",s);return h.NodeUtils.parentizeAst(c),c}getRc4KeyLiteralNode(e){const t=f.NodeFactory.literalNode(e);return p.NodeMetadata.set(t,{stringArrayCallLiteralNode:!0}),t}};t.AbstractStringArrayCallNode=m,m.stringArrayRootCallsWrapperParametersCount=2,m.stringArrayIndexNodesMap=new Map([[u.StringArrayIndexesType.HexadecimalNumber,l.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode],[u.StringArrayIndexesType.HexadecimalNumericString,l.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode]]),t.AbstractStringArrayCallNode=m=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.Factory__IStringArrayIndexNode)),o(2,(0,s.inject)(c.ServiceIdentifiers.ICustomCodeHelperFormatter)),o(3,(0,s.inject)(c.ServiceIdentifiers.IStringArrayStorage)),o(4,(0,s.inject)(c.ServiceIdentifiers.IArrayUtils)),o(5,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(6,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],m)},35355:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ParentificationTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(25120);let d=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Preparing?{enter:(e,t)=>this.transformNode(e,t)}:null}transformNode(e,t){return l.NodeUtils.parentizeNode(e,t)}};t.ParentificationTransformer=d,t.ParentificationTransformer=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],d)},35372:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(t);var n=("object"===a(r)?r.version:arguments[1])||"";if(!n)return e(t,{version:4})||e(t,{version:6});if("4"===n.toString())return c.test(t);if("6"===n.toString())return l.test(t);return!1};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var o="(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])",s="(".concat(o,"[.]){3}").concat(o),c=new RegExp("^".concat(s,"$")),u="(?:[0-9a-fA-F]{1,4})",l=new RegExp("^("+"(?:".concat(u,":){7}(?:").concat(u,"|:)|")+"(?:".concat(u,":){6}(?:").concat(s,"|:").concat(u,"|:)|")+"(?:".concat(u,":){5}(?::").concat(s,"|(:").concat(u,"){1,2}|:)|")+"(?:".concat(u,":){4}(?:(:").concat(u,"){0,1}:").concat(s,"|(:").concat(u,"){1,3}|:)|")+"(?:".concat(u,":){3}(?:(:").concat(u,"){0,2}:").concat(s,"|(:").concat(u,"){1,4}|:)|")+"(?:".concat(u,":){2}(?:(:").concat(u,"){0,3}:").concat(s,"|(:").concat(u,"){1,5}|:)|")+"(?:".concat(u,":){1}(?:(:").concat(u,"){0,4}:").concat(s,"|(:").concat(u,"){1,6}|:)|")+"(?::((?::".concat(u,"){0,5}:").concat(s,"|(?::").concat(u,"){1,7}|:))")+")(%[0-9a-zA-Z.]{1,})?$");e.exports=t.default,e.exports.default=t.default},35614:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.BasePropertiesExtractor=void 0;const a=r(71519),o=r(30386),s=r(91363),c=r(23615),u=r(50027),l=r(25120);let d=n=class{static getPropertyNodeKeyName(e){const t=e.key;return!c.NodeGuards.isLiteralNode(t)||"string"!=typeof t.value&&"number"!=typeof t.value?c.NodeGuards.isIdentifierNode(t)?t.name:null:t.value.toString()}static isProhibitedPropertyNode(e){return"init"!==e.kind}static isProhibitedPattern(e){return!e||c.NodeGuards.isObjectPatternNode(e)||c.NodeGuards.isArrayPatternNode(e)||c.NodeGuards.isAssignmentPatternNode(e)||c.NodeGuards.isRestElementNode(e)}static shouldCreateLiteralNode(e){return!e.computed||e.computed&&!!e.key&&c.NodeGuards.isLiteralNode(e.key)}extract(e,t){const r=e.parentNode;return r&&c.NodeGuards.isVariableDeclaratorNode(r)&&c.NodeGuards.isIdentifierNode(r.id)?this.transformObjectExpressionNode(e,t,r.id):{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}transformObjectExpressionNode(e,t,r){const n=e.properties,[i,a]=this.extractPropertiesToExpressionStatements(n,t,r),s=u.NodeStatementUtils.getScopeOfNode(t);return this.filterExtractedObjectExpressionProperties(e,a),o.NodeAppender.insertAfter(s,i,t),i.forEach(e=>{l.NodeUtils.parentizeAst(e),l.NodeUtils.parentizeNode(e,s)}),{nodeToReplace:e,objectExpressionHostStatement:t,objectExpressionNode:e}}extractPropertiesToExpressionStatements(e,t,r){const i=[],a=[];for(let o=e.length-1;o>=0;o--){const u=e[o];if(c.NodeGuards.isSpreadElementNode(u))break;if(n.isProhibitedPropertyNode(u))continue;const l=u.value;if(n.isProhibitedPattern(l))continue;const d=n.getPropertyNodeKeyName(u);if(!d)continue;const f=n.shouldCreateLiteralNode(u)?s.NodeFactory.literalNode(d):s.NodeFactory.identifierNode(d),p=s.NodeFactory.memberExpressionNode(r,f,!0),h=s.NodeFactory.expressionStatementNode(s.NodeFactory.assignmentExpressionNode("=",p,l));c.NodeGuards.isObjectExpressionNode(u.value)&&this.transformObjectExpressionNode(u.value,t,p),i.unshift(h),a.unshift(o)}return[i,a]}filterExtractedObjectExpressionProperties(e,t){const r=new Set(t);e.properties=e.properties.filter((e,t)=>!r.has(t))}};t.BasePropertiesExtractor=d,t.BasePropertiesExtractor=d=n=i([(0,a.injectable)()],d)},36202:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayUtils=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e){this.randomGenerator=e}createWithRange(e){const t=[];for(let r=0;ri&&(n=a,i=e),r[a]=e}return n}getLastElement(e){return this.getLastElementByIndex(e,0)}getLastElementByIndex(e,t){var r;return null!==(r=e[e.length-1-t])&&void 0!==r?r:void 0}rotate(e,t){const r=e.length;if(!r)throw new ReferenceError("Cannot rotate empty array.");if(t<=0)return e;const n=t%r;return 0===n?[...e]:[...e.slice(-n),...e.slice(0,-n)]}shuffle(e){const t=[...e];for(let e=t.length;e;e--){const r=Math.floor(this.randomGenerator.getMathRandom()*e);[t[e-1],t[r]]=[t[r],t[e-1]]}return t}};t.ArrayUtils=c,t.ArrayUtils=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",[Object])],c)},36264:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesCacheRule=void 0;t.IdentifierNamesCacheRule=e=>{let t=e.identifierNamesCache;return t&&!t.globalIdentifiers&&(t={...t,globalIdentifiers:{}}),t&&!t.propertyIdentifiers&&(t={...t,propertyIdentifiers:{}}),e={...e,identifierNamesCache:t}}},36323:(e,t,r)=>{!function(){"use strict";t.ast=r(62890),t.code=r(67989),t.keyword=r(83921)}()},36338:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyQueryableStringImpl=void 0;t.LegacyQueryableStringImpl=class{#e;constructor(e){this.#e=e}startsWith(e){return this.#e.startsWith(e)}endsWith(e){return this.#e.endsWith(e)}contains(e){return this.#e.includes(e)}equals(e){return this.#e===e}value(){return this.#e}}},36744:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingWhenSyntax=void 0;var n=r(42903),i=r(20795),a=function(){function e(e){this._binding=e}return e.prototype.when=function(e){return this._binding.constraint=e,new n.BindingOnSyntax(this._binding)},e.prototype.whenTargetNamed=function(e){return this._binding.constraint=(0,i.namedConstraint)(e),new n.BindingOnSyntax(this._binding)},e.prototype.whenTargetIsDefault=function(){return this._binding.constraint=function(e){return null!==e&&(null!==e.target&&!e.target.isNamed()&&!e.target.isTagged())},new n.BindingOnSyntax(this._binding)},e.prototype.whenTargetTagged=function(e,t){return this._binding.constraint=(0,i.taggedConstraint)(e)(t),new n.BindingOnSyntax(this._binding)},e.prototype.whenInjectedInto=function(e){return this._binding.constraint=function(t){return null!==t&&(0,i.typeConstraint)(e)(t.parentRequest)},new n.BindingOnSyntax(this._binding)},e.prototype.whenParentNamed=function(e){return this._binding.constraint=function(t){return null!==t&&(0,i.namedConstraint)(e)(t.parentRequest)},new n.BindingOnSyntax(this._binding)},e.prototype.whenParentTagged=function(e,t){return this._binding.constraint=function(r){return null!==r&&(0,i.taggedConstraint)(e)(t)(r.parentRequest)},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorIs=function(e){return this._binding.constraint=function(t){return null!==t&&(0,i.traverseAncerstors)(t,(0,i.typeConstraint)(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorIs=function(e){return this._binding.constraint=function(t){return null!==t&&!(0,i.traverseAncerstors)(t,(0,i.typeConstraint)(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorNamed=function(e){return this._binding.constraint=function(t){return null!==t&&(0,i.traverseAncerstors)(t,(0,i.namedConstraint)(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorNamed=function(e){return this._binding.constraint=function(t){return null!==t&&!(0,i.traverseAncerstors)(t,(0,i.namedConstraint)(e))},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._binding.constraint=function(r){return null!==r&&(0,i.traverseAncerstors)(r,(0,i.taggedConstraint)(e)(t))},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorTagged=function(e,t){return this._binding.constraint=function(r){return null!==r&&!(0,i.traverseAncerstors)(r,(0,i.taggedConstraint)(e)(t))},new n.BindingOnSyntax(this._binding)},e.prototype.whenAnyAncestorMatches=function(e){return this._binding.constraint=function(t){return null!==t&&(0,i.traverseAncerstors)(t,e)},new n.BindingOnSyntax(this._binding)},e.prototype.whenNoAncestorMatches=function(e){return this._binding.constraint=function(t){return null!==t&&!(0,i.traverseAncerstors)(t,e)},new n.BindingOnSyntax(this._binding)},e}();t.BindingWhenSyntax=a},36791:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayBase64DecodeTemplate=function(e){const t=e.getRandomString(6),r=e.getRandomString(6),n=e.getRandomString(6);return`\n if ({stringArrayCallsWrapperName}.${t} === undefined) {\n {atobPolyfill}\n {stringArrayCallsWrapperName}.${r} = {atobFunctionName};\n\n {stringArrayCallsWrapperName}.${n} = {};\n \n {stringArrayCallsWrapperName}.${t} = true;\n }\n \n const firstValue = stringArray[0];\n const cacheKey = index + firstValue;\n const cachedValue = {stringArrayCallsWrapperName}.${n}[cacheKey];\n \n if (!cachedValue) {\n {selfDefendingCode}\n \n value = {stringArrayCallsWrapperName}.${r}(value);\n {stringArrayCallsWrapperName}.${n}[cacheKey] = value;\n } else {\n value = cachedValue;\n }\n `}},36833:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesMode=void 0;const n=r(65063);t.RenamePropertiesMode=n.Utils.makeEnum({Safe:"safe",Unsafe:"unsafe"})},37004:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringUtils=void 0;const i=n(r(69560));t.StringUtils=class{static escapeJsString(e){return(0,i.default)(e)}}},37612:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),e===e.toLowerCase()};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},37694:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperTemplate=function(){return"\n function {stringArrayCallsWrapperName} (index, key) {\n index = index - {indexShiftAmount};\n\n const stringArray = {stringArrayFunctionName}();\n let value = stringArray[index];\n \n {decodeCodeHelperTemplate}\n\n return value;\n }\n "}},37956:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n=r(63437),i=r(51851);function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=a(n),s=a(i);function c(e,t="Assertion failed."){if(!e)throw new Error(t)}class u{constructor(e,t,r,n,i,a,o){this.identifier=e,this.from=t,this.tainted=!1,this.resolved=null,this.flag=r,this.isWrite()&&(this.writeExpr=n,this.partial=a,this.init=o),this.__maybeImplicitGlobal=i}isStatic(){return!this.tainted&&this.resolved&&this.resolved.scope.isStatic()}isWrite(){return!!(this.flag&u.WRITE)}isRead(){return!!(this.flag&u.READ)}isReadOnly(){return this.flag===u.READ}isWriteOnly(){return this.flag===u.WRITE}isReadWrite(){return this.flag===u.RW}}u.READ=1,u.WRITE=2,u.RW=3;class l{constructor(e,t){this.name=e,this.identifiers=[],this.references=[],this.defs=[],this.tainted=!1,this.stack=!0,this.scope=t}}l.CatchClause="CatchClause",l.Parameter="Parameter",l.FunctionName="FunctionName",l.ClassName="ClassName",l.Variable="Variable",l.ImportBinding="ImportBinding",l.ImplicitGlobalVariable="ImplicitGlobalVariable";class d{constructor(e,t,r,n,i,a){this.type=e,this.name=t,this.node=r,this.parent=n,this.index=i,this.kind=a}}class f extends d{constructor(e,t,r,n){super(l.Parameter,e,t,null,r,null),this.rest=n}}const{Syntax:p}=o.default;function h(e){return e.type===l.ClassName||e.type===l.Variable&&"var"!==e.parent.kind}class m{constructor(e,t,r,n,i){this.type=t,this.set=new Map,this.taints=new Map,this.dynamic="global"===this.type||"with"===this.type,this.block=n,this.through=[],this.variables=[],this.references=[],this.variableScope="global"===this.type||"module"===this.type||"function"===this.type||"class-field-initializer"===this.type||"class-static-block"===this.type?this:r.variableScope,this.functionExpressionScope=!1,this.directCallToEvalScope=!1,this.thisFound=!1,this.__left=[],this.upper=r,this.isStrict=!!e.isStrictModeSupported()&&function(e,t,r){let n;if(e.upper&&e.upper.isStrict)return!0;if(r)return!0;if("class"===e.type||"module"===e.type)return!0;if("block"===e.type||"switch"===e.type)return!1;if("function"===e.type){if(t.type===p.ArrowFunctionExpression&&t.body.type!==p.BlockStatement)return!1;if(n=t.type===p.Program?t:t.body,!n)return!1}else{if("global"!==e.type)return!1;n=t}for(let e=0,t=n.body.length;e0&&r.every(h)}__staticCloseRef(e){this.__resolve(e)||this.__delegateToUpperScope(e)}__dynamicCloseRef(e){let t=this;do{t.through.push(e),t=t.upper}while(t)}__globalCloseRef(e){this.__shouldStaticallyCloseForGlobal(e)?this.__staticCloseRef(e):this.__dynamicCloseRef(e)}__close(e){let t;t=this.__shouldStaticallyClose(e)?this.__staticCloseRef:"global"!==this.type?this.__dynamicCloseRef:this.__globalCloseRef;for(let e=0,r=this.__left.length;ee.name.range[0]>=r))}}class E extends m{constructor(e,t,r){super(e,"for",t,r,!1)}}class x extends m{constructor(e,t,r){super(e,"class",t,r,!1)}}class N extends m{constructor(e,t,r){super(e,"class-field-initializer",t,r,!0)}}class I extends m{constructor(e,t,r){super(e,"class-static-block",t,r,!0)}}class T{constructor(e){this.scopes=[],this.globalScope=null,this.__nodeToScope=new WeakMap,this.__currentScope=null,this.__options=e,this.__declaredVariables=new WeakMap}__isOptimistic(){return this.__options.optimistic}__ignoreEval(){return this.__options.ignoreEval}__isJSXEnabled(){return!0===this.__options.jsx}isGlobalReturn(){return this.__options.nodejsScope||"commonjs"===this.__options.sourceType}isModule(){return"module"===this.__options.sourceType}isImpliedStrict(){return this.__options.impliedStrict}isStrictModeSupported(){return this.__options.ecmaVersion>=5}__get(e){return this.__nodeToScope.get(e)}getDeclaredVariables(e){return this.__declaredVariables.get(e)||[]}acquire(e,t){function r(e){return"function"!==e.type||!e.functionExpressionScope}const n=this.__get(e);if(!n||0===n.length)return null;if(1===n.length)return n[0];if(t)for(let e=n.length-1;e>=0;--e){const t=n[e];if(r(t))return t}else for(let e=0,t=n.length;e=6}}const{Syntax:D}=o.default;class O extends s.default.Visitor{static isPattern(e){const t=e.type;return t===D.Identifier||t===D.ObjectPattern||t===D.ArrayPattern||t===D.SpreadElement||t===D.RestElement||t===D.AssignmentPattern}constructor(e,t,r){super(null,e),this.rootPattern=t,this.callback=r,this.assignments=[],this.rightHandNodes=[],this.restElements=[]}Identifier(e){const t=this.restElements.at(-1)||null;this.callback(e,{topLevel:e===this.rootPattern,rest:null!=t&&t.argument===e,assignments:this.assignments})}Property(e){e.computed&&this.rightHandNodes.push(e.key),this.visit(e.value)}ArrayPattern(e){for(let t=0,r=e.elements.length;t{this.rightHandNodes.push(e)}),this.visit(e.callee)}}const{Syntax:M}=o.default;class R extends s.default.Visitor{constructor(e,t){super(null,t.options),this.declaration=e,this.referencer=t}visitImport(e,t){this.referencer.visitPattern(e,e=>{this.referencer.currentScope().__define(e,new d(l.ImportBinding,e,t,this.declaration,null,null))})}ImportNamespaceSpecifier(e){const t=e.local||e.id;t&&this.visitImport(t,e)}ImportDefaultSpecifier(e){const t=e.local||e.id;this.visitImport(t,e)}ImportSpecifier(e){const t=e.local||e.id;e.name?this.visitImport(e.name,e):this.visitImport(t,e)}}class F extends s.default.Visitor{constructor(e,t){super(null,e),this.options=e,this.scopeManager=t,this.parent=null,this.isInnerMethodDefinition=!1}currentScope(){return this.scopeManager.__currentScope}close(e){for(;this.currentScope()&&e===this.currentScope().block;)this.scopeManager.__currentScope=this.currentScope().__close(this.scopeManager)}pushInnerMethodDefinition(e){const t=this.isInnerMethodDefinition;return this.isInnerMethodDefinition=e,t}popInnerMethodDefinition(e){this.isInnerMethodDefinition=e}referencingDefaultValue(e,t,r,n){const i=this.currentScope();t.forEach(t=>{i.__referencing(e,u.WRITE,t.right,r,e!==t.left,n)})}visitPattern(e,t,r){let n=t,i=r;"function"==typeof t&&(i=t,n={processRightHandNodes:!1}),function(e,t,r,n){const i=new O(e,t,n);i.visit(t),null!=r&&i.rightHandNodes.forEach(r.visit,r)}(this.options,e,n.processRightHandNodes?this:null,i)}visitFunction(e){let t,r;e.type===M.FunctionDeclaration&&this.currentScope().__define(e.id,new d(l.FunctionName,e.id,e,null,null,null)),e.type===M.FunctionExpression&&e.id&&this.scopeManager.__nestFunctionExpressionNameScope(e),this.scopeManager.__nestFunctionScope(e,this.isInnerMethodDefinition);const n=this;function i(r,i){n.currentScope().__define(r,new f(r,e,t,i.rest)),n.referencingDefaultValue(r,i.assignments,null,!0)}for(t=0,r=e.params.length;t{this.currentScope().__define(t,new f(t,e,e.params.length,!0))}),e.body&&(e.body.type===M.BlockStatement?this.visitChildren(e.body):this.visit(e.body)),this.close(e)}visitClass(e){e.type===M.ClassDeclaration&&this.currentScope().__define(e.id,new d(l.ClassName,e.id,e,null,null,null)),this.scopeManager.__nestClassScope(e),e.id&&this.currentScope().__define(e.id,new d(l.ClassName,e.id,e)),this.visit(e.superClass),this.visit(e.body),this.close(e)}visitProperty(e){let t;e.computed&&this.visit(e.key);const r=e.type===M.MethodDefinition;r&&(t=this.pushInnerMethodDefinition(!0)),this.visit(e.value),r&&this.popInnerMethodDefinition(t)}visitForIn(e){e.left.type===M.VariableDeclaration&&"var"!==e.left.kind&&this.scopeManager.__nestForScope(e),e.left.type===M.VariableDeclaration?(this.visit(e.left),this.visitPattern(e.left.declarations[0].id,t=>{this.currentScope().__referencing(t,u.WRITE,e.right,null,!0,!0)})):this.visitPattern(e.left,{processRightHandNodes:!0},(t,r)=>{let n=null;this.currentScope().isStrict||(n={pattern:t,node:e}),this.referencingDefaultValue(t,r.assignments,n,!1),this.currentScope().__referencing(t,u.WRITE,e.right,n,!0,!1)}),this.visit(e.right),this.visit(e.body),this.close(e)}visitVariableDeclaration(e,t,r,n){const i=r.declarations[n],a=i.init;this.visitPattern(i.id,{processRightHandNodes:!0},(o,s)=>{e.__define(o,new d(t,o,i,r,n,r.kind)),this.referencingDefaultValue(o,s.assignments,null,!0),a&&this.currentScope().__referencing(o,u.WRITE,a,null,!s.topLevel,!0)})}AssignmentExpression(e){O.isPattern(e.left)?"="===e.operator?this.visitPattern(e.left,{processRightHandNodes:!0},(t,r)=>{let n=null;this.currentScope().isStrict||(n={pattern:t,node:e}),this.referencingDefaultValue(t,r.assignments,n,!1),this.currentScope().__referencing(t,u.WRITE,e.right,n,!r.topLevel,!1)}):this.currentScope().__referencing(e.left,u.RW,e.right):this.visit(e.left),this.visit(e.right)}CatchClause(e){this.scopeManager.__nestCatchScope(e),this.visitPattern(e.param,{processRightHandNodes:!0},(t,r)=>{this.currentScope().__define(t,new d(l.CatchClause,t,e,null,null,null)),this.referencingDefaultValue(t,r.assignments,null,!0)}),this.visit(e.body),this.close(e)}Program(e){this.scopeManager.__nestGlobalScope(e),this.scopeManager.isGlobalReturn()&&(this.currentScope().isStrict=!1,this.scopeManager.__nestFunctionScope(e,!1)),this.scopeManager.__isES6()&&this.scopeManager.isModule()&&this.scopeManager.__nestModuleScope(e),this.scopeManager.isStrictModeSupported()&&this.scopeManager.isImpliedStrict()&&(this.currentScope().isStrict=!0),this.visitChildren(e),this.close(e)}Identifier(e){this.currentScope().__referencing(e)}PrivateIdentifier(){}UpdateExpression(e){O.isPattern(e.argument)?this.currentScope().__referencing(e.argument,u.RW,null):this.visitChildren(e)}MemberExpression(e){this.visit(e.object),e.computed&&this.visit(e.property)}Property(e){this.visitProperty(e)}PropertyDefinition(e){const{computed:t,key:r,value:n}=e;t&&this.visit(r),n&&(this.scopeManager.__nestClassFieldInitializerScope(n),this.visit(n),this.close(n))}StaticBlock(e){this.scopeManager.__nestClassStaticBlockScope(e),this.visitChildren(e),this.close(e)}MethodDefinition(e){this.visitProperty(e)}BreakStatement(){}ContinueStatement(){}LabeledStatement(e){this.visit(e.body)}ForStatement(e){e.init&&e.init.type===M.VariableDeclaration&&"var"!==e.init.kind&&this.scopeManager.__nestForScope(e),this.visitChildren(e),this.close(e)}ClassExpression(e){this.visitClass(e)}ClassDeclaration(e){this.visitClass(e)}CallExpression(e){this.scopeManager.__ignoreEval()||e.callee.type!==M.Identifier||"eval"!==e.callee.name||this.currentScope().variableScope.__detectEval(),this.visitChildren(e)}BlockStatement(e){this.scopeManager.__isES6()&&this.scopeManager.__nestBlockScope(e),this.visitChildren(e),this.close(e)}ThisExpression(){this.currentScope().variableScope.__detectThis()}WithStatement(e){this.visit(e.object),this.scopeManager.__nestWithScope(e),this.visit(e.body),this.close(e)}VariableDeclaration(e){const t="var"===e.kind?this.currentScope().variableScope:this.currentScope();for(let r=0,n=e.declarations.length;r{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexNode=void 0,function(e){e.StringArrayHexadecimalNumberIndexNode="StringArrayHexadecimalNumberIndexNode",e.StringArrayHexadecimalNumericStringIndexNode="StringArrayHexadecimalNumericStringIndexNode"}(r||(t.StringArrayIndexNode=r={}))},38615:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.id=function(){return r++};var r=0},38630:(e,t,r)=>{ +/*! ***************************************************************************** +Copyright (C) Microsoft. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */ +var n;!function(e){!function(){var t="object"==typeof globalThis?globalThis:"object"==typeof r.g?r.g:"object"==typeof self?self:"object"==typeof this?this:function(){try{return Function("return this;")()}catch(e){}}()||function(){try{return(0,eval)("(function() { return this; })()")}catch(e){}}(),n=i(e);function i(e,t){return function(r,n){Object.defineProperty(e,r,{configurable:!0,writable:!0,value:n}),t&&t(r,n)}}void 0!==t.Reflect&&(n=i(t.Reflect,n)),function(e,t){var r=Object.prototype.hasOwnProperty,n="function"==typeof Symbol,i=n&&void 0!==Symbol.toPrimitive?Symbol.toPrimitive:"@@toPrimitive",a=n&&void 0!==Symbol.iterator?Symbol.iterator:"@@iterator",o="function"==typeof Object.create,s={__proto__:[]}instanceof Array,c=!o&&!s,u={create:o?function(){return de(Object.create(null))}:s?function(){return de({__proto__:null})}:function(){return de({})},has:c?function(e,t){return r.call(e,t)}:function(e,t){return t in e},get:c?function(e,t){return r.call(e,t)?e[t]:void 0}:function(e,t){return e[t]}},l=Object.getPrototypeOf(Function),d="function"==typeof Map&&"function"==typeof Map.prototype.entries?Map:ce(),f="function"==typeof Set&&"function"==typeof Set.prototype.entries?Set:ue(),p="function"==typeof WeakMap?WeakMap:le(),h=n?Symbol.for("@reflect-metadata:registry"):void 0,m=ie(),g=ae(m);function b(e,t,r,n){if(k(r)){if(!W(e))throw new TypeError;if(!X(t))throw new TypeError;return I(e,t)}if(!W(e))throw new TypeError;if(!j(t))throw new TypeError;if(!j(n)&&!k(n)&&!L(n))throw new TypeError;return L(n)&&(n=void 0),T(e,t,r=K(r),n)}function y(e,t){function r(r,n){if(!j(r))throw new TypeError;if(!k(n)&&!Y(n))throw new TypeError;F(e,t,r,n)}return r}function S(e,t,r,n){if(!j(r))throw new TypeError;return k(n)||(n=K(n)),F(e,t,r,n)}function v(e,t,r){if(!j(t))throw new TypeError;return k(r)||(r=K(r)),D(e,t,r)}function _(e,t,r){if(!j(t))throw new TypeError;return k(r)||(r=K(r)),O(e,t,r)}function C(e,t,r){if(!j(t))throw new TypeError;return k(r)||(r=K(r)),M(e,t,r)}function A(e,t,r){if(!j(t))throw new TypeError;return k(r)||(r=K(r)),R(e,t,r)}function E(e,t){if(!j(e))throw new TypeError;return k(t)||(t=K(t)),P(e,t)}function x(e,t){if(!j(e))throw new TypeError;return k(t)||(t=K(t)),w(e,t)}function N(e,t,r){if(!j(t))throw new TypeError;if(k(r)||(r=K(r)),!j(t))throw new TypeError;k(r)||(r=K(r));var n=se(t,r,!1);return!k(n)&&n.OrdinaryDeleteMetadata(e,t,r)}function I(e,t){for(var r=e.length-1;r>=0;--r){var n=(0,e[r])(t);if(!k(n)&&!L(n)){if(!X(n))throw new TypeError;t=n}}return t}function T(e,t,r,n){for(var i=e.length-1;i>=0;--i){var a=(0,e[i])(t,r,n);if(!k(a)&&!L(a)){if(!j(a))throw new TypeError;n=a}}return n}function D(e,t,r){if(O(e,t,r))return!0;var n=re(t);return!L(n)&&D(e,n,r)}function O(e,t,r){var n=se(t,r,!1);return!k(n)&&U(n.OrdinaryHasOwnMetadata(e,t,r))}function M(e,t,r){if(O(e,t,r))return R(e,t,r);var n=re(t);return L(n)?void 0:M(e,n,r)}function R(e,t,r){var n=se(t,r,!1);if(!k(n))return n.OrdinaryGetOwnMetadata(e,t,r)}function F(e,t,r,n){se(r,n,!0).OrdinaryDefineOwnMetadata(e,t,r,n)}function P(e,t){var r=w(e,t),n=re(e);if(null===n)return r;var i=P(n,t);if(i.length<=0)return r;if(r.length<=0)return i;for(var a=new f,o=[],s=0,c=r;s=0&&e=this._keys.length?(this._index=-1,this._keys=t,this._values=t):this._index++,{value:r,done:!1}}return{value:void 0,done:!0}},e.prototype.throw=function(e){throw this._index>=0&&(this._index=-1,this._keys=t,this._values=t),e},e.prototype.return=function(e){return this._index>=0&&(this._index=-1,this._keys=t,this._values=t),{value:e,done:!0}},e}();return function(){function t(){this._keys=[],this._values=[],this._cacheKey=e,this._cacheIndex=-2}return Object.defineProperty(t.prototype,"size",{get:function(){return this._keys.length},enumerable:!0,configurable:!0}),t.prototype.has=function(e){return this._find(e,!1)>=0},t.prototype.get=function(e){var t=this._find(e,!1);return t>=0?this._values[t]:void 0},t.prototype.set=function(e,t){var r=this._find(e,!0);return this._values[r]=t,this},t.prototype.delete=function(t){var r=this._find(t,!1);if(r>=0){for(var n=this._keys.length,i=r+1;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renamePropertiesTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(57192),s=r(42504);t.renamePropertiesTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(s.RenamePropertiesTransformer).whenTargetNamed(a.NodeTransformer.RenamePropertiesTransformer),e(i.ServiceIdentifiers.IRenamePropertiesReplacer).to(o.RenamePropertiesReplacer)})},40043:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCustomCodeHelperGroup=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(79011),l=r(18436),d=r(87415),f=r(30386),p=r(32504);let h=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.customCodeHelperFactory=e}appendOnPreparingStage(e,t){var r;if(!this.options.domainLock.length)return;const n=this.getRandomCallsGraphIndex(t.length),i=t.length?f.NodeAppender.getOptimalBlockScope(t,n):e,a=t.length?f.NodeAppender.getOptimalBlockScope(t,n,1):e,o=null!==(r=p.NodeLexicalScopeUtils.getLexicalScope(i))&&void 0!==r?r:null,s=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext(),c=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(u.CustomCodeHelper.DomainLock,e=>{e.initialize(c,s),f.NodeAppender.prepend(i,e.getNode())}),this.appendCustomNodeIfExist(u.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(l.NodeTransformationStage.Preparing,c),f.NodeAppender.prepend(a,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.domainLock.length)return;const e=this.customCodeHelperFactory(u.CustomCodeHelper.DomainLock),t=this.customCodeHelperFactory(u.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(u.CustomCodeHelper.DomainLock,e),this.customCodeHelpers.set(u.CustomCodeHelper.CallsControllerFunction,t)}};t.DomainLockCustomCodeHelperGroup=h,n([(0,c.initializable)(),i("design:type",Map)],h.prototype,"customCodeHelpers",void 0),t.DomainLockCustomCodeHelperGroup=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object])],h)},40700:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),e===t};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},41129:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getDescription=function(e){return e.toString().slice(r,n)};const r=7,n=-1},41163:(e,t)=>{function r(e,n,i,a,o,s){var c=Math.floor((n-e)/2)+e,u=o(i,a[c],!0);return 0===u?c:u>0?n-c>1?r(c,n,i,a,o,s):s==t.LEAST_UPPER_BOUND?n1?r(e,c,i,a,o,s):s==t.LEAST_UPPER_BOUND?c:e<0?-1:e}t.GREATEST_LOWER_BOUND=1,t.LEAST_UPPER_BOUND=2,t.search=function(e,n,i,a){if(0===n.length)return-1;var o=r(-1,n.length,e,n,i,a||t.GREATEST_LOWER_BOUND);if(o<0)return-1;for(;o-1>=0&&0===i(n[o],n[o-1],!0);)--o;return o}},42504:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesTransformer=void 0;const s=r(71519),c=r(32287),u=r(18436),l=r(36833),d=r(76893),f=r(23615),p=r(90253),h=r(12720);let m=n=class extends d.AbstractNodeTransformer{constructor(e,t,r){super(t,r),this.renamePropertiesReplacer=e}static isValidPropertyNode(e,t){return!f.NodeGuards.isIdentifierNode(t)||!e.computed}getVisitor(e){switch(e){case u.NodeTransformationStage.Preparing:return{enter:(e,t)=>{t&&this.prepareNode(e,t)}};case u.NodeTransformationStage.RenameProperties:return{enter:(e,t)=>{if(t)return this.transformNode(e,t)}};default:return null}}prepareNode(e,t){f.NodeGuards.isPropertyNode(t)&&t.key===e||f.NodeGuards.isMemberExpressionNode(t)&&t.property===e||f.NodeGuards.isMethodDefinitionNode(t)&&t.key===e||f.NodeGuards.isPropertyDefinitionNode(t)&&t.key===e?h.NodeMetadata.set(e,{propertyKeyToRenameNode:!0}):this.options.renamePropertiesMode===l.RenamePropertiesMode.Safe&&this.analyzeAutoExcludedPropertyNames(e,t)}transformNode(e,t){if(!f.NodeGuards.isIdentifierNode(e)&&!f.NodeGuards.isLiteralNode(e))return e;if(!h.NodeMetadata.isPropertyKeyToRenameNode(e))return e;const r=f.NodeGuards.isPropertyNode(t);return(r||f.NodeGuards.isPropertyDefinitionNode(t)||f.NodeGuards.isMemberExpressionNode(t)||f.NodeGuards.isMethodDefinitionNode(t))&&!n.isValidPropertyNode(t,e)?e:(r&&(t.shorthand=!1),this.renamePropertiesReplacer.replace(e))}analyzeAutoExcludedPropertyNames(e,t){f.NodeGuards.isLiteralNode(e)&&p.NodeLiteralUtils.isStringLiteralNode(e)&&this.renamePropertiesReplacer.excludePropertyName(e.value)}};t.RenamePropertiesTransformer=m,t.RenamePropertiesTransformer=m=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRenamePropertiesReplacer)),o(1,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object,Object,Object])],m)},42540:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperBase64CodeHelper=void 0;const i=r(71519),a=r(54618),o=r(36791),s=r(51507);let c=class extends s.StringArrayCallsWrapperCodeHelper{getDecodeStringArrayTemplate(){const e=this.randomGenerator.getRandomString(6),t=this.customCodeHelperFormatter.formatTemplate((0,a.AtobTemplate)(this.options.selfDefending),{atobFunctionName:e}),r=this.getSelfDefendingTemplate();return this.customCodeHelperFormatter.formatTemplate((0,o.StringArrayBase64DecodeTemplate)(this.randomGenerator),{atobPolyfill:t,atobFunctionName:e,selfDefendingCode:r,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayFunctionName:this.stringArrayFunctionName})}};t.StringArrayCallsWrapperBase64CodeHelper=c,t.StringArrayCallsWrapperBase64CodeHelper=c=n([(0,i.injectable)()],c)},42792:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableTemplate=function(){return"\n const {consoleLogDisableFunctionName} = {callControllerFunctionName}(this, function () {\n {globalVariableTemplate}\n\n const consoleObject = (that.console = that.console || {});\n const methods = ['log', 'warn', 'info', 'error', 'exception', 'table', 'trace'];\n\n for (let index = 0; index < methods.length; index++){\n const func = {callControllerFunctionName}.constructor.prototype.bind({callControllerFunctionName});\n const methodName = methods[index];\n const originalFunction = consoleObject[methodName] || func;\n\n func.__proto__ = {callControllerFunctionName}.bind({callControllerFunctionName});\n func.toString = originalFunction.toString.bind(originalFunction);\n \n consoleObject[methodName] = func;\n }\n });\n\n {consoleLogDisableFunctionName}();\n "}},42903:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingOnSyntax=void 0;var n=r(36744),i=function(){function e(e){this._binding=e}return e.prototype.onActivation=function(e){return this._binding.onActivation=e,new n.BindingWhenSyntax(this._binding)},e.prototype.onDeactivation=function(e){return this._binding.onDeactivation=e,new n.BindingWhenSyntax(this._binding)},e}();t.BindingOnSyntax=i},43214:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),t)return"1"===e||/^true$/i.test(e);return"0"!==e&&!/^false$/i.test(e)&&""!==e};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},43254:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.deadCodeInjectionTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(83951);t.deadCodeInjectionTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(o.DeadCodeInjectionTransformer).whenTargetNamed(a.NodeTransformer.DeadCodeInjectionTransformer)})},43302:(e,t,r)=>{var n=r(90251);function i(){this._array=[],this._sorted=!0,this._last={generatedLine:-1,generatedColumn:0}}i.prototype.unsortedForEach=function(e,t){this._array.forEach(e,t)},i.prototype.add=function(e){var t,r,i,a,o,s;t=this._last,r=e,i=t.generatedLine,a=r.generatedLine,o=t.generatedColumn,s=r.generatedColumn,a>i||a==i&&s>=o||n.compareByGeneratedPositionsInflated(t,r)<=0?(this._last=e,this._array.push(e)):(this._sorted=!1,this._array.push(e))},i.prototype.toArray=function(){return this._sorted||(this._array.sort(n.compareByGeneratedPositionsInflated),this._sorted=!0),this._array},t.P=i},43459:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/[\uD800-\uDBFF][\uDC00-\uDFFF]/;e.exports=t.default,e.exports.default=t.default},43663:(e,t,r)=>{"use strict";r.r(t),r.d(t,{Readable:()=>n});const n={toWeb(){throw new Error("Vercel Blob: Sorry, we cannot get a Readable stream in this environment. If you see this message please open an issue here: https://github.com/vercel/storage/ with details on your environment.")}}},43735:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRule=void 0;const n=r(70885);t.StringArrayRule=e=>(e.stringArray||(e={...e,stringArray:!1,stringArrayCallsTransform:!1,stringArrayCallsTransformThreshold:0,stringArrayEncoding:[n.StringArrayEncoding.None],stringArrayIndexShift:!1,stringArrayRotate:!1,stringArrayShuffle:!1,stringArrayWrappersChainedCalls:!1,stringArrayWrappersCount:0,stringArrayThreshold:0}),e)},43801:(e,t)=>{function r(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}function n(e,t,i,a){if(i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableNoEvalTemplate=function(){return"\n const that = (typeof window !== 'undefined'\n ? window\n : (typeof process === 'object' &&\n typeof require === 'function' &&\n typeof global === 'object')\n ? global\n : this);\n "}},44063:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassElementMetadataFromLegacyMetadata=function(e){const t=e.find(e=>e.key===a.INJECT_TAG),r=e.find(e=>e.key===a.MULTI_INJECT_TAG);if(void 0!==e.find(e=>e.key===a.UNMANAGED_TAG))return function(e,t){if(void 0!==t||void 0!==e)throw new n.InversifyCoreError(i.InversifyCoreErrorKind.missingInjectionDecorator,"Expected a single @inject, @multiInject or @unmanaged metadata");return{kind:o.ClassElementMetadataKind.unmanaged}}(t,r);if(void 0===r&&void 0===t)throw new n.InversifyCoreError(i.InversifyCoreErrorKind.missingInjectionDecorator,"Expected @inject, @multiInject or @unmanaged metadata");const s=e.find(e=>e.key===a.NAMED_TAG),c=e.find(e=>e.key===a.OPTIONAL_TAG),u=e.find(e=>e.key===a.NAME_TAG);return{kind:void 0===t?o.ClassElementMetadataKind.multipleInjection:o.ClassElementMetadataKind.singleInjection,name:s?.value,optional:void 0!==c,tags:new Map(e.filter(e=>a.NON_CUSTOM_TAG_KEYS.every(t=>e.key!==t)).map(e=>[e.key,e.value])),targetName:u?.value,value:void 0===t?r?.value:t.value}};const n=r(21773),i=r(94931),a=r(83313),o=r(86277)},44173:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ArrayStorage=void 0;const o=r(71519),s=r(32287),c=r(10548);let u=class{constructor(e,t){this.storageLength=0,this.randomGenerator=e,this.options=t}initialize(){this.storage=[],this.storageId=this.randomGenerator.getRandomString(6)}delete(e){var t;const r=null!==(t=this.storage.splice(e,1)[0])&&void 0!==t?t:void 0;return r&&this.storageLength--,r}get(e){return this.storage[e]}getOrThrow(e){const t=this.get(e);if(!t)throw new Error(`No value found in array storage with key \`${e}\``);return t}getKeyOf(e){const t=this.storage.indexOf(e);return t>=0?t:null}getLength(){return this.storageLength}getStorage(){return this.storage}getStorageId(){return this.storageId}mergeWith(e,t=!1){this.storage=[...this.storage,...e.getStorage()],t&&(this.storageId=e.getStorageId())}set(e,t){e===this.storageLength?this.storage.push(t):this.storage.splice(e,0,t),this.storageLength++}};t.ArrayStorage=u,n([(0,c.initializable)(),i("design:type",Array)],u.prototype,"storage",void 0),n([(0,c.initializable)(),i("design:type",String)],u.prototype,"storageId",void 0),n([(0,o.postConstruct)(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],u.prototype,"initialize",null),t.ArrayStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},44269:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowStorageCallNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(57013),l=r(91363),d=r(25120);let f=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t,r,n){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.callee=r,this.expressionArguments=n}getNodeStructure(){const e=l.NodeFactory.expressionStatementNode(l.NodeFactory.callExpressionNode(l.NodeFactory.memberExpressionNode(l.NodeFactory.identifierNode(this.controlFlowStorageName),l.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.callee,...this.expressionArguments]));return d.NodeUtils.parentizeAst(e),[e]}};t.CallExpressionControlFlowStorageCallNode=f,n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"callee",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"controlFlowStorageKey",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"controlFlowStorageName",void 0),n([(0,c.initializable)(),i("design:type",Array)],f.prototype,"expressionArguments",void 0),t.CallExpressionControlFlowStorageCallNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],f)},44441:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ReservedStringObfuscatingGuard=void 0;const o=r(71519),s=r(50275),c=r(32287),u=r(23615);let l=class{constructor(e){this.options=e}check(e){return this.options.reservedStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isReservedString(e.value)?s.ObfuscatingGuardResult.Ignore:s.ObfuscatingGuardResult.Transform}isReservedString(e){return this.options.reservedStrings.some(t=>null!==new RegExp(t,"g").exec(e))}};t.ReservedStringObfuscatingGuard=l,t.ReservedStringObfuscatingGuard=l=n([(0,o.injectable)(),a(0,(0,o.inject)(c.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object])],l)},44834:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.iso7064Check=function(e){for(var t=10,r=0;r=0;n--){if(r){var i=2*parseInt(e[n],10);t+=i>9?i.toString().split("").map(function(e){return parseInt(e,10)}).reduce(function(e,t){return e+t},0):i}else t+=parseInt(e[n],10);r=!r}return t%10==0},t.reverseMultiplyAndSum=function(e,t){for(var r=0,n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.propertyEventDecorator=function(e,t){return function(){return function(r,i){var a=new n.Metadata(e,i);if(Reflect.hasOwnMetadata(e,r.constructor))throw new Error(t);Reflect.defineMetadata(e,a,r.constructor)}}};var n=r(14425)},45408:e=>{e.exports=function(e,t){if("function"!=typeof e)throw new TypeError(`Expected the first argument to be a \`function\`, got \`${typeof e}\`.`);let r,n=0;return function(...i){clearTimeout(r);const a=Date.now(),o=t-(a-n);o<=0?(n=a,e.apply(this,i)):r=setTimeout(()=>{n=Date.now(),e.apply(this,i)},o)}}},45467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(e);var r=!1,n=!0;"object"!==a(t)?arguments.length>=2&&(n=arguments[1]):(r=void 0!==t.allowSpaces?t.allowSpaces:r,n=void 0!==t.includePercentValues?t.includePercentValues:n);if(r){if(!l.test(e))return!1;e=e.replace(/\s/g,"")}if(!n)return o.test(e)||s.test(e);return o.test(e)||s.test(e)||c.test(e)||u.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}var o=/^rgb\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){2}([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\)$/,s=/^rgba\((([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5]),){3}(0?\.\d\d?|1(\.0)?|0(\.0)?)\)$/,c=/^rgb\((([0-9]%|[1-9][0-9]%|100%),){2}([0-9]%|[1-9][0-9]%|100%)\)$/,u=/^rgba\((([0-9]%|[1-9][0-9]%|100%),){3}(0?\.\d\d?|1(\.0)?|0(\.0)?)\)$/,l=/^rgba?/;e.exports=t.default,e.exports.default=t.default},45772:(e,t)=>{"use strict";function r(e){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},r(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){"object"===r(e)&&null!==e?e="function"==typeof e.toString?e.toString():"[object Object]":(null==e||isNaN(e)&&!e.length)&&(e="");return String(e)},e.exports=t.default,e.exports.default=t.default},45777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isFreightContainerID=void 0,t.isISO6346=s;var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[A-Z]{3}(U[0-9]{7})|([J,Z][0-9]{6,7})$/,o=/^[0-9]$/;function s(e){if((0,i.default)(e),e=e.toUpperCase(),!a.test(e))return!1;if(11===e.length){for(var t=0,r=0;r=11&&n<=20?12+n%11:n>=21&&n<=30?23+n%21:34+n%31)*Math.pow(2,r)}var s=t%11;return 10===s&&(s=0),Number(e[e.length-1])===s}return!0}t.isFreightContainerID=s},45906:(e,t,r)=>{"use strict";var n=r(65606);function i(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var a=r(88308),o=i(r(87206)),s=r(43663),c=new Promise(e=>{try{const t=new Uint8Array([104,101,108,108,111]);new Blob([t]).text().then(t=>{e("hello"===t)}).catch(()=>{e(!1)})}catch(t){e(!1)}});async function u(e){if(e instanceof ReadableStream)return e;if(e instanceof Blob)return e.stream();if(l(e))return s.Readable.toWeb(e);let t;var r;return e instanceof ArrayBuffer?t=new Uint8Array(e):!function(e){return o.default.call(void 0,e)}(e)?(r=e,t=(new TextEncoder).encode(r)):t=e,await c?new Blob([t]).stream():new ReadableStream({start(e){e.enqueue(t),e.close()}})}function l(e){return"object"==typeof e&&"function"==typeof e.pipe&&e.readable&&"function"==typeof e._read&&"object"==typeof e._readableState}var d=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i,f={b:1,kb:1024,mb:1<<20,gb:1<<30,tb:1024**4,pb:1024**5};function p(e){if("number"==typeof e&&!Number.isNaN(e))return e;if("string"!=typeof e)return null;const t=d.exec(e);let r,n="b";if(t){const[,e,,,i]=t;if(!e)return null;r=parseFloat(e),i&&(n=i.toLowerCase())}else r=parseInt(e,10);return Number.isNaN(r)?null:Math.floor(f[n]*r)}function h(e){if(null==e?void 0:e.token)return e.token;if(n.env.BLOB_READ_WRITE_TOKEN)return n.env.BLOB_READ_WRITE_TOKEN;throw new m("No token found. Either configure the `BLOB_READ_WRITE_TOKEN` environment variable, or pass a `token` option to your calls.")}var m=class extends Error{constructor(e){super(`Vercel Blob: ${e}`)}};function g(e){if("object"!=typeof e||null===e)return!1;const t=Object.getPrototypeOf(e);return!(null!==t&&t!==Object.prototype&&null!==Object.getPrototypeOf(t)||Symbol.toStringTag in e||Symbol.iterator in e)}var b=["//"],y=(()=>{if(a.isNodeProcess.call(void 0))return!0;if(S().startsWith("http://localhost"))return!1;let e=!1;const t=new Request(S(),{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})();function S(e=""){let t=null;try{t=n.env.VERCEL_BLOB_API_URL||n.env.NEXT_PUBLIC_VERCEL_BLOB_API_URL}catch(e){}return`${t||"https://vercel.com/api/blob"}${e}`}var v="function"==typeof TextEncoder?new TextEncoder:null;function _(e){return e?"string"==typeof e?v?v.encode(e).byteLength:new Blob([e]).size:"byteLength"in e&&"number"==typeof e.byteLength?e.byteLength:"size"in e&&"number"==typeof e.size?e.size:0:0}function C(e){return globalThis.ReadableStream&&e instanceof ReadableStream}var A,E,x,N=i(r(17336)),I=!1;try{((null==(A=n.env.DEBUG)?void 0:A.includes("blob"))||(null==(E=n.env.NEXT_PUBLIC_DEBUG)?void 0:E.includes("blob")))&&(I=!0)}catch(e){}function T(e,...t){I&&console.debug(`vercel-blob: ${e}`,...t)}var D=null!=(x=globalThis.DOMException)?x:(()=>{try{atob("~")}catch(e){return Object.getPrototypeOf(e).constructor}})(),O=Object.prototype.toString,M=new Set(["network error","Failed to fetch","NetworkError when attempting to fetch resource.","The Internet connection appears to be offline.","Load failed","Network request failed","fetch failed","terminated"]);function R(e){var t;return!(!e||(t=e,"[object Error]"!==O.call(t))||"TypeError"!==e.name||"string"!=typeof e.message)&&("Load failed"===e.message?void 0===e.stack:M.has(e.message))}var F=r(65903),P="function"==typeof F.fetch,w=P&&y,B=async({input:e,init:t,onUploadProgress:r})=>{let n;if(T("using fetch"),t.body)if(r){const e=await u(t.body);let i=0;const a=((e,t)=>{let r=new Uint8Array(0);return new TransformStream({transform(n,i){queueMicrotask(()=>{const a=new Uint8Array(r.length+n.byteLength);for(a.set(r),a.set(new Uint8Array(n),r.length),r=a;r.length>=e;){const n=r.slice(0,e);i.enqueue(n),null==t||t(n.byteLength),r=r.slice(e)}})},flush(e){queueMicrotask(()=>{r.length>0&&(e.enqueue(r),null==t||t(r.byteLength))})}})})(65536,e=>{i+=e,r(i)});n=e.pipeThrough(a)}else n=t.body;const i=y&&n&&(C(a=n)||l(a))?"half":void 0;var a;return F.fetch.call(void 0,e,{...t,...t.body?{body:n}:{},duplex:i})},k="undefined"!=typeof XMLHttpRequest,L=async({input:e,init:t,onUploadProgress:r})=>{T("using xhr");let n=null;return t.body&&(n=C(t.body)?await new Response(t.body).blob():t.body),new Promise((i,a)=>{const o=new XMLHttpRequest;if(o.open(t.method||"GET",e.toString(),!0),r&&o.upload.addEventListener("progress",e=>{e.lengthComputable&&r(e.loaded)}),o.onload=()=>{var e;if(null==(e=t.signal)?void 0:e.aborted)return void a(new DOMException("The user aborted the request.","AbortError"));const r=new Headers;o.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(e=>{const t=e.split(": "),n=t.shift(),i=t.join(": ");n&&r.set(n.toLowerCase(),i)});const n=new Response(o.response,{status:o.status,statusText:o.statusText,headers:r});i(n)},o.onerror=()=>{a(new TypeError("Network request failed"))},o.ontimeout=()=>{a(new TypeError("Network request timed out"))},o.onabort=()=>{a(new DOMException("The user aborted a request.","AbortError"))},t.headers){new Headers(t.headers).forEach((e,t)=>{o.setRequestHeader(t,e)})}t.signal&&(t.signal.addEventListener("abort",()=>{o.abort()}),t.signal.aborted)?o.abort():o.send(n)})},$=class extends m{constructor(){super("Access denied, please provide a valid token for this resource.")}},j=class extends m{constructor(e){super(`Content type mismatch, ${e}.`)}},G=class extends m{constructor(e){super(`Pathname mismatch, ${e}. Check the pathname used in upload() or put() matches the one from the client token.`)}},V=class extends m{constructor(){super("Client token has expired.")}},U=class extends m{constructor(e){super(`File is too large, ${e}.`)}},H=class extends m{constructor(){super("This store does not exist.")}},K=class extends m{constructor(){super("This store has been suspended.")}},W=class extends m{constructor(){super("Unknown error, please visit https://vercel.com/help.")}},z=class extends m{constructor(){super("The requested blob does not exist")}},X=class extends m{constructor(){super("The blob service is currently not available. Please try again.")}},Y=class extends m{constructor(e){super(`Too many requests please lower the number of concurrent requests ${e?` - try again in ${e} seconds`:""}.`),this.retryAfter=null!=e?e:0}},Z=class extends m{constructor(){super("The request was aborted.")}};function q(){try{const e=n.env.VERCEL_BLOB_RETRIES||"10";return parseInt(e,10)}catch(e){return 10}}async function J(e){var t,r,n;let i,a,o;try{const o=await e.json();i=null!=(r=null==(t=o.error)?void 0:t.code)?r:"unknown_error",a=null==(n=o.error)?void 0:n.message}catch(e){i="unknown_error"}switch((null==a?void 0:a.includes("contentType"))&&a.includes("is not allowed")&&(i="content_type_not_allowed"),(null==a?void 0:a.includes('"pathname"'))&&a.includes("does not match the token payload")&&(i="client_token_pathname_mismatch"),"Token expired"===a&&(i="client_token_expired"),(null==a?void 0:a.includes("the file length cannot be greater than"))&&(i="file_too_large"),i){case"store_suspended":o=new K;break;case"forbidden":o=new $;break;case"content_type_not_allowed":o=new j(a);break;case"client_token_pathname_mismatch":o=new G(a);break;case"client_token_expired":o=new V;break;case"file_too_large":o=new U(a);break;case"not_found":o=new z;break;case"store_not_found":o=new H;break;case"bad_request":o=new m(null!=a?a:"Bad request");break;case"service_unavailable":o=new X;break;case"rate_limited":o=function(e){const t=e.headers.get("retry-after");return new Y(t?parseInt(t,10):void 0)}(e);break;default:o=new W}return{code:i,error:o}}async function Q(e,t,r){const i=function(){let e=null;try{e=n.env.VERCEL_BLOB_API_VERSION_OVERRIDE||n.env.NEXT_PUBLIC_VERCEL_BLOB_API_VERSION_OVERRIDE}catch(e){}return`${null!=e?e:11}`}(),a=h(r),o=function(){const e={};try{"VERCEL_BLOB_PROXY_THROUGH_ALTERNATIVE_API"in n.env&&void 0!==n.env.VERCEL_BLOB_PROXY_THROUGH_ALTERNATIVE_API?e["x-proxy-through-alternative-api"]=n.env.VERCEL_BLOB_PROXY_THROUGH_ALTERNATIVE_API:"NEXT_PUBLIC_VERCEL_BLOB_PROXY_THROUGH_ALTERNATIVE_API"in n.env&&void 0!==n.env.NEXT_PUBLIC_VERCEL_BLOB_PROXY_THROUGH_ALTERNATIVE_API&&(e["x-proxy-through-alternative-api"]=n.env.NEXT_PUBLIC_VERCEL_BLOB_PROXY_THROUGH_ALTERNATIVE_API)}catch(e){}return e}(),[,,,s=""]=a.split("_"),c=`${s}:${Date.now()}:${Math.random().toString(16).slice(2)}`;let u=0,l=0,d=0;const f=(null==r?void 0:r.onUploadProgress)||function(){try{return"1"===n.env.VERCEL_BLOB_USE_X_CONTENT_LENGTH}catch(e){return!1}}();t.body&&f&&(l=_(t.body)),(null==r?void 0:r.onUploadProgress)&&r.onUploadProgress({loaded:0,total:l,percentage:0});const p=await N.default.call(void 0,async n=>{let s;try{s=await(async({input:e,init:t,onUploadProgress:r})=>{if(r){if(w)return B({input:e,init:t,onUploadProgress:r});if(k)return L({input:e,init:t,onUploadProgress:r})}if(P)return B({input:e,init:t});if(k)return L({input:e,init:t});throw new Error("No request implementation available")})({input:S(e),init:{...t,headers:{"x-api-blob-request-id":c,"x-api-blob-request-attempt":String(u),"x-api-version":i,...f?{"x-content-length":String(l)}:{},authorization:`Bearer ${a}`,...o,...t.headers}},onUploadProgress:(null==r?void 0:r.onUploadProgress)?e=>{var t;const n=0!==l?l:e;d=e;const i=l>0?Number((e/n*100).toFixed(2)):0;100===i&&l>0||null==(t=r.onUploadProgress)||t.call(r,{loaded:e,total:n,percentage:i})}:void 0})}catch(e){if(e instanceof D&&"AbortError"===e.name)return void n(new Z);if(R(e))throw e;if(e instanceof TypeError)return void n(e);throw e}if(s.ok)return s;const{code:p,error:h}=await J(s);if("unknown_error"===p||"service_unavailable"===p||"internal_server_error"===p)throw h;n(h)},{retries:q(),onRetry:t=>{t instanceof Error&&T(`retrying API request to ${e}`,t.message),u+=1}});if(!p)throw new W;return(null==r?void 0:r.onUploadProgress)&&r.onUploadProgress({loaded:d,total:d,percentage:100}),await p.json()}var ee="x-cache-control-max-age",te="x-add-random-suffix",re="x-allow-overwrite",ne="x-content-type";function ie(e,t){const r={};return e.includes("contentType")&&t.contentType&&(r[ne]=t.contentType),e.includes("addRandomSuffix")&&void 0!==t.addRandomSuffix&&(r[te]=t.addRandomSuffix?"1":"0"),e.includes("allowOverwrite")&&void 0!==t.allowOverwrite&&(r[re]=t.allowOverwrite?"1":"0"),e.includes("cacheControlMaxAge")&&void 0!==t.cacheControlMaxAge&&(r[ee]=t.cacheControlMaxAge.toString()),r}async function ae({pathname:e,options:t,extraChecks:r,getToken:n}){if(!e)throw new m("pathname is required");if(e.length>950)throw new m("pathname is too long, maximum length is 950");for(const t of b)if(e.includes(t))throw new m(`pathname cannot contain "${t}", please encode it if needed`);if(!t)throw new m("missing options, see usage");if("public"!==t.access)throw new m('access must be "public"');return r&&r(t),n&&(t.token=await n(e,t)),t}async function oe({uploadId:e,key:t,pathname:r,parts:n,headers:i,options:a}){const o=new URLSearchParams({pathname:r});try{const r=await Q(`/mpu?${o.toString()}`,{method:"POST",headers:{...i,"content-type":"application/json","x-mpu-action":"complete","x-mpu-upload-id":e,"x-mpu-key":encodeURIComponent(t)},body:JSON.stringify(n),signal:a.abortSignal},a);return T("mpu: complete",r),r}catch(e){throw e instanceof TypeError&&("Failed to fetch"===e.message||"fetch failed"===e.message)?new X:e}}async function se(e,t,r){T("mpu: create","pathname:",e);const n=new URLSearchParams({pathname:e});try{const e=await Q(`/mpu?${n.toString()}`,{method:"POST",headers:{...t,"x-mpu-action":"create"},signal:r.abortSignal},r);return T("mpu: create",e),e}catch(e){if(e instanceof TypeError&&("Failed to fetch"===e.message||"fetch failed"===e.message))throw new X;throw e}}var ce=i(r(45408));async function ue({uploadId:e,key:t,pathname:r,headers:n,options:i,internalAbortController:a=new AbortController,part:o}){var s,c,u;const l=Q(`/mpu?${new URLSearchParams({pathname:r}).toString()}`,{signal:a.signal,method:"POST",headers:{...n,"x-mpu-action":"upload","x-mpu-key":encodeURIComponent(t),"x-mpu-upload-id":e,"x-mpu-part-number":o.partNumber.toString()},body:o.blob},i);function d(){a.abort()}(null==(s=i.abortSignal)?void 0:s.aborted)?d():null==(c=i.abortSignal)||c.addEventListener("abort",d);const f=await l;return null==(u=i.abortSignal)||u.removeEventListener("abort",d),f}var le="undefined"!=typeof window?6:8,de=8388608,fe=le*de*2;async function pe(e,t,r,n){T("mpu: init","pathname:",e,"headers:",r);const i={...n,onUploadProgress:void 0},a=await se(e,r,i),o=_(t),s=await u(t),c=await function({uploadId:e,key:t,pathname:r,stream:n,headers:i,options:a,totalToLoad:o}){T("mpu: upload init","key:",t);const s=new AbortController;return new Promise((c,u)=>{const l=[],d=[],f=n.getReader();let h,m=0,g=!1,b=1,y=!1,S=0,v=!1,_=0,C=[],A=0;const E={};async function x(){for(T("mpu: upload read start","activeUploads:",m,"currentBytesInMemory:",`${p(S)}/${p(fe)}`,"bytesSent:",p(_)),g=!0;S0&&(l.push({partNumber:b++,blob:new Blob(C,{type:"application/octet-stream"})}),I()),void(g=!1);S+=e.byteLength;let r=0;for(;r{E[n.partNumber]=e.loaded,h&&h()}:void 0,u=await ue({uploadId:e,key:t,pathname:r,headers:i,options:{...a,onUploadProgress:o},internalAbortController:s,part:n});if(T("mpu: upload send part end","partNumber:",n.partNumber,"activeUploads",m,"currentBytesInMemory:",`${p(S)}/${p(fe)}`,"bytesSent:",p(_)),y)return;if(d.push({partNumber:n.partNumber,etag:u.etag}),S-=n.blob.size,m--,_+=n.blob.size,l.length>0&&I(),v)return void(0===m&&(f.releaseLock(),c(d)));g||x().catch(D)}catch(e){D(e)}}function I(){if(!y)for(T("send parts","activeUploads",m,"partsToUpload",l.length);m0;){const e=l.shift();e&&N(e)}}function D(e){y||(y=!0,s.abort(),f.releaseLock(),e instanceof TypeError&&("Failed to fetch"===e.message||"fetch failed"===e.message)?u(new X):u(e))}a.onUploadProgress&&(h=ce.default.call(void 0,()=>{var e;const t=Object.values(E).reduce((e,t)=>e+t,0),r=o||t,n=o>0?Number((100*(t/o||t)).toFixed(2)):0;null==(e=a.onUploadProgress)||e.call(a,{loaded:t,total:r,percentage:n})},150)),x().catch(D)})}({uploadId:a.uploadId,key:a.key,pathname:e,stream:s,headers:r,options:n,totalToLoad:o});return await oe({uploadId:a.uploadId,key:a.key,pathname:e,parts:c,headers:r,options:i})}t.getTokenFromOptionsOrEnv=h,t.BlobError=m,t.getDownloadUrl=function(e){const t=new URL(e);return t.searchParams.set("download","1"),t.toString()},t.disallowedPathnameCharacters=b,t.MAXIMUM_PATHNAME_LENGTH=950,t.BlobAccessError=$,t.BlobContentTypeNotAllowedError=j,t.BlobPathnameMismatchError=G,t.BlobClientTokenExpiredError=V,t.BlobFileTooLargeError=U,t.BlobStoreNotFoundError=H,t.BlobStoreSuspendedError=K,t.BlobUnknownError=W,t.BlobNotFoundError=z,t.BlobServiceNotAvailable=X,t.BlobServiceRateLimited=Y,t.BlobRequestAbortedError=Z,t.requestApi=Q,t.createCompleteMultipartUploadMethod=function({allowedOptions:e,getToken:t,extraChecks:r}){return async(n,i,a)=>{const o=await ae({pathname:n,options:a,extraChecks:r,getToken:t}),s=ie(e,o);return oe({uploadId:o.uploadId,key:o.key,pathname:n,headers:s,options:o,parts:i})}},t.createCreateMultipartUploadMethod=function({allowedOptions:e,getToken:t,extraChecks:r}){return async(n,i)=>{const a=await ae({pathname:n,options:i,extraChecks:r,getToken:t}),o=ie(e,a),s=await se(n,o,a);return{key:s.key,uploadId:s.uploadId}}},t.createUploadPartMethod=function({allowedOptions:e,getToken:t,extraChecks:r}){return async(n,i,a)=>{const o=await ae({pathname:n,options:a,extraChecks:r,getToken:t}),s=ie(e,o);if(g(i))throw new m("Body must be a string, buffer or stream. You sent a plain JavaScript object, double check what you're trying to upload.");return{etag:(await ue({uploadId:o.uploadId,key:o.key,pathname:n,part:{blob:i,partNumber:o.partNumber},headers:s,options:o})).etag,partNumber:o.partNumber}}},t.createCreateMultipartUploaderMethod=function({allowedOptions:e,getToken:t,extraChecks:r}){return async(n,i)=>{const a=await ae({pathname:n,options:i,extraChecks:r,getToken:t}),o=ie(e,a),s=await se(n,o,a);return{key:s.key,uploadId:s.uploadId,async uploadPart(e,t){if(g(t))throw new m("Body must be a string, buffer or stream. You sent a plain JavaScript object, double check what you're trying to upload.");return{etag:(await ue({uploadId:s.uploadId,key:s.key,pathname:n,part:{partNumber:e,blob:t},headers:o,options:a})).etag,partNumber:e}},complete:async e=>oe({uploadId:s.uploadId,key:s.key,pathname:n,parts:e,headers:o,options:a})}}},t.createPutMethod=function({allowedOptions:e,getToken:t,extraChecks:r}){return async function(n,i,a){if(!i)throw new m("body is required");if(g(i))throw new m("Body must be a string, buffer or stream. You sent a plain JavaScript object, double check what you're trying to upload.");const o=await ae({pathname:n,options:a,extraChecks:r,getToken:t}),s=ie(e,o);if(!0===o.multipart)return pe(n,i,s,o);const c=o.onUploadProgress?ce.default.call(void 0,o.onUploadProgress,100):void 0,u=new URLSearchParams({pathname:n}),l=await Q(`/?${u.toString()}`,{method:"PUT",body:i,headers:s,signal:o.abortSignal},{...o,onUploadProgress:c});return{url:l.url,downloadUrl:l.downloadUrl,pathname:l.pathname,contentType:l.contentType,contentDisposition:l.contentDisposition}}},t.createFolder=async function(e,t={}){const r=e.endsWith("/")?e:`${e}/`,n={};n[te]="0";const i=new URLSearchParams({pathname:r}),a=await Q(`/?${i.toString()}`,{method:"PUT",headers:n,signal:t.abortSignal},t);return{url:a.url,pathname:a.pathname}}},45926:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),(t=(0,n.default)(t,c)).locale in o.decimal)return!(0,a.default)(u,e.replace(/ /g,""))&&function(e){var t=new RegExp("^[-+]?([0-9]+)?(\\".concat(o.decimal[e.locale],"[0-9]{").concat(e.decimal_digits,"})").concat(e.force_decimal?"":"?","$"));return t}(t).test(e);throw new Error("Invalid locale '".concat(t.locale,"'"))};var n=s(r(93610)),i=s(r(83399)),a=s(r(78644)),o=r(13237);function s(e){return e&&e.__esModule?e:{default:e}}var c={force_decimal:!1,decimal_digits:"1,",locale:"en-US"},u=["","-","+"];e.exports=t.default,e.exports.default=t.default},46183:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IfStatementSimplifyTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(21818),l=r(23615),d=r(91363),f=r(25120);let p=class extends u.AbstractStatementSimplifyTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Simplifying?{leave:(e,t)=>{if(t&&l.NodeGuards.isIfStatementNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){const r=this.getStatementSimplifyData(e.consequent);if(!r)return e;let n;if(e.alternate){const t=this.getStatementSimplifyData(e.alternate);if(!t)return e;n=this.getConsequentAndAlternateNode(e,r,t)}else n=this.getConsequentNode(e,r);return f.NodeUtils.parentizeNode(n,t)}getConsequentNode(e,t){return t.leadingStatements.length||!t.trailingStatement?d.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t)):t.hasReturnStatement?d.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement):d.NodeFactory.expressionStatementNode(d.NodeFactory.logicalExpressionNode("&&",e.test,t.trailingStatement.expression))}getConsequentAndAlternateNode(e,t,r){return t.leadingStatements.length||r.leadingStatements.length||!t.trailingStatement||!r.trailingStatement?d.NodeFactory.ifStatementNode(e.test,this.getPartialStatement(t),this.getPartialStatement(r)):t.hasReturnStatement&&r.hasReturnStatement?d.NodeFactory.returnStatementNode(d.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression)):t.hasReturnStatement||r.hasReturnStatement?d.NodeFactory.ifStatementNode(e.test,t.trailingStatement.statement,r.trailingStatement.statement):d.NodeFactory.expressionStatementNode(d.NodeFactory.conditionalExpressionNode(e.test,t.trailingStatement.expression,r.trailingStatement.expression))}getPartialStatement(e){const t=super.getPartialStatement(e);return l.NodeGuards.isBlockStatementNode(t)?1!==t.body.length||this.isProhibitedSingleStatementForIfStatementBranch(t.body[0])?t:t.body[0]:t}isProhibitedSingleStatementForIfStatementBranch(e){return l.NodeGuards.isFunctionDeclarationNode(e)||l.NodeGuards.isIfStatementNode(e)||l.NodeGuards.isNodeWithSingleStatementBody(e)||l.NodeGuards.isVariableDeclarationNode(e)&&"var"!==e.kind}};t.IfStatementSimplifyTransformer=p,t.IfStatementSimplifyTransformer=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],p)},46255:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,n;(0,i.default)(e),"object"===a(t)?(r=t.min||0,n=t.max):(r=arguments[1],n=arguments[2]);var o=encodeURI(e).split(/%..|./).length-1;return o>=r&&(void 0===n||o<=n)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}e.exports=t.default,e.exports.default=t.default},46263:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionExtractor=void 0,function(e){e.BasePropertiesExtractor="BasePropertiesExtractor",e.ObjectExpressionToVariableDeclarationExtractor="ObjectExpressionToVariableDeclarationExtractor"}(r||(t.ObjectExpressionExtractor=r={}))},46404:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ProApiObfuscationResult=void 0;t.ProApiObfuscationResult=class{constructor(e,t=""){this.obfuscatedCode=e,this.sourceMapValue=t}getObfuscatedCode(){return this.obfuscatedCode}getSourceMap(){return this.sourceMapValue}getIdentifierNamesCache(){return null}toString(){return this.obfuscatedCode}}},46438:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrapperVariableNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(35126),l=r(91363),d=r(25120);let f=class extends u.AbstractStringArrayCallNode{constructor(e,t,r,n,i,a,o){super(e,t,r,n,i,a,o)}initialize(e,t){this.stringArrayScopeCallsWrapperData=e,this.stringArrayCallsWrapperData=t}getNodeStructure(){const e=l.NodeFactory.variableDeclarationNode([l.NodeFactory.variableDeclaratorNode(l.NodeFactory.identifierNode(this.stringArrayScopeCallsWrapperData.name),l.NodeFactory.identifierNode(this.stringArrayCallsWrapperData.name))],"const");return d.NodeUtils.parentizeAst(e),[e]}};t.StringArrayScopeCallsWrapperVariableNode=f,n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"stringArrayCallsWrapperData",void 0),n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"stringArrayScopeCallsWrapperData",void 0),t.StringArrayScopeCallsWrapperVariableNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IStringArrayIndexNode)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(3,(0,o.inject)(s.ServiceIdentifiers.IStringArrayStorage)),a(4,(0,o.inject)(s.ServiceIdentifiers.IArrayUtils)),a(5,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(6,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],f)},46459:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ForceTransformStringObfuscatingGuard=void 0;const o=r(71519),s=r(50275),c=r(32287),u=r(23615);let l=class{constructor(e){this.options=e}check(e){return this.options.forceTransformStrings.length&&u.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value&&this.isForceTransformString(e.value)?s.ObfuscatingGuardResult.ForceTransform:s.ObfuscatingGuardResult.Transform}isForceTransformString(e){return this.options.forceTransformStrings.some(t=>null!==new RegExp(t,"g").exec(e))}};t.ForceTransformStringObfuscatingGuard=l,t.ForceTransformStringObfuscatingGuard=l=n([(0,o.injectable)(),a(0,(0,o.inject)(c.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object])],l)},46837:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayStorage=void 0;const s=r(71519),c=r(32287),u=r(70885),l=r(11440);let d=n=class extends l.MapStorage{constructor(e,t,r,i,a){super(r,i),this.rc4EncodedValuesSourcesCache=new Map,this.indexShiftAmount=0,this.rotationAmount=0,this.stringArrayStorageCallsWrapperNamesMap=new Map,this.identifierNamesGenerator=e(i),this.arrayUtils=t,this.cryptUtilsStringArray=a,this.rc4Keys=this.randomGenerator.getRandomGenerator().n(()=>this.randomGenerator.getRandomGenerator().string({length:n.rc4KeyLength}),n.rc4KeysCount)}initialize(){super.initialize(),this.indexShiftAmount=this.options.stringArrayIndexShift?this.randomGenerator.getRandomInteger(n.minimumIndexShiftAmount,n.maximumIndexShiftAmount):0,this.rotationAmount=this.options.stringArrayRotate?this.randomGenerator.getRandomInteger(n.minimumRotationAmount,n.maximumRotationAmount):0}get(e){return this.getOrSetIfDoesNotExist(e)}getIndexShiftAmount(){return this.indexShiftAmount}getRotationAmount(){return this.rotationAmount}getStorageName(){return this.getStorageId()}getStorageId(){return this.stringArrayStorageName||(this.stringArrayStorageName=this.identifierNamesGenerator.generateForGlobalScope(n.stringArrayFunctionNameLength)),this.stringArrayStorageName}getStorageCallsWrapperName(e){var t;const r=null!==(t=this.stringArrayStorageCallsWrapperNamesMap.get(e))&&void 0!==t?t:null;if(r)return r;const i=this.identifierNamesGenerator.generateForGlobalScope(n.stringArrayFunctionNameLength);return this.stringArrayStorageCallsWrapperNamesMap.set(e,i),i}rotateStorage(){this.getLength()&&(this.storage=new Map(this.arrayUtils.rotate(Array.from(this.storage.entries()),this.rotationAmount)))}shuffleStorage(){this.storage=new Map(this.arrayUtils.shuffle(Array.from(this.storage.entries())).map(([e,t],r)=>(t.index=r,[e,t])))}getOrSetIfDoesNotExist(e){const{encodedValue:t,encoding:r,decodeKey:n}=this.getEncodedValue(e),i=`${t}-${r}`,a=this.storage.get(i);if(a)return a;const o={encodedValue:t,encoding:r,decodeKey:n,value:e,index:this.getLength()};return this.storage.set(i,o),o}getEncodedValue(e){var t;const r=this.options.stringArrayEncoding.length?this.randomGenerator.getRandomGenerator().pickone(this.options.stringArrayEncoding):null;if(!r)throw new Error("`stringArrayEncoding` option array is empty");switch(r){case u.StringArrayEncoding.Rc4:{const n=50;for(let i=0;i{var n=r(90251),i=r(41163),a=r(80735).C,o=r(17092),s=r(43801).g;function c(e,t){var r=e;return"string"==typeof e&&(r=n.parseSourceMapInput(e)),null!=r.sections?new d(r,t):new u(r,t)}function u(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var i=n.getArg(r,"version"),o=n.getArg(r,"sources"),s=n.getArg(r,"names",[]),c=n.getArg(r,"sourceRoot",null),u=n.getArg(r,"sourcesContent",null),l=n.getArg(r,"mappings"),d=n.getArg(r,"file",null);if(i!=this._version)throw new Error("Unsupported version: "+i);c&&(c=n.normalize(c)),o=o.map(String).map(n.normalize).map(function(e){return c&&n.isAbsolute(c)&&n.isAbsolute(e)?n.relative(c,e):e}),this._names=a.fromArray(s.map(String),!0),this._sources=a.fromArray(o,!0),this._absoluteSources=this._sources.toArray().map(function(e){return n.computeSourceURL(c,e,t)}),this.sourceRoot=c,this.sourcesContent=u,this._mappings=l,this._sourceMapURL=t,this.file=d}function l(){this.generatedLine=0,this.generatedColumn=0,this.source=null,this.originalLine=null,this.originalColumn=null,this.name=null}function d(e,t){var r=e;"string"==typeof e&&(r=n.parseSourceMapInput(e));var i=n.getArg(r,"version"),o=n.getArg(r,"sections");if(i!=this._version)throw new Error("Unsupported version: "+i);this._sources=new a,this._names=new a;var s={line:-1,column:0};this._sections=o.map(function(e){if(e.url)throw new Error("Support for url field in sections not implemented.");var r=n.getArg(e,"offset"),i=n.getArg(r,"line"),a=n.getArg(r,"column");if(i=0){var s=this._originalMappings[o];if(void 0===e.column)for(var c=s.originalLine;s&&s.originalLine===c;)a.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++o];else for(var u=s.originalColumn;s&&s.originalLine===t&&s.originalColumn==u;)a.push({line:n.getArg(s,"generatedLine",null),column:n.getArg(s,"generatedColumn",null),lastColumn:n.getArg(s,"lastGeneratedColumn",null)}),s=this._originalMappings[++o]}return a},u.prototype=Object.create(c.prototype),u.prototype.consumer=c,u.prototype._findSourceIndex=function(e){var t,r=e;if(null!=this.sourceRoot&&(r=n.relative(this.sourceRoot,r)),this._sources.has(r))return this._sources.indexOf(r);for(t=0;t1&&(r.source=m+a[1],m+=a[1],r.originalLine=p+a[2],p=r.originalLine,r.originalLine+=1,r.originalColumn=h+a[3],h=r.originalColumn,a.length>4&&(r.name=g+a[4],g+=a[4])),C.push(r),"number"==typeof r.originalLine&&_.push(r)}s(C,n.compareByGeneratedPositionsDeflated),this.__generatedMappings=C,s(_,n.compareByOriginalPositions),this.__originalMappings=_},u.prototype._findMapping=function(e,t,r,n,a,o){if(e[r]<=0)throw new TypeError("Line must be greater than or equal to 1, got "+e[r]);if(e[n]<0)throw new TypeError("Column must be greater than or equal to 0, got "+e[n]);return i.search(e,t,a,o)},u.prototype.computeColumnSpans=function(){for(var e=0;e=0){var i=this._generatedMappings[r];if(i.generatedLine===t.generatedLine){var a=n.getArg(i,"source",null);null!==a&&(a=this._sources.at(a),a=n.computeSourceURL(this.sourceRoot,a,this._sourceMapURL));var o=n.getArg(i,"name",null);return null!==o&&(o=this._names.at(o)),{source:a,line:n.getArg(i,"originalLine",null),column:n.getArg(i,"originalColumn",null),name:o}}}return{source:null,line:null,column:null,name:null}},u.prototype.hasContentsOfAllSources=function(){return!!this.sourcesContent&&(this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some(function(e){return null==e}))},u.prototype.sourceContentFor=function(e,t){if(!this.sourcesContent)return null;var r=this._findSourceIndex(e);if(r>=0)return this.sourcesContent[r];var i,a=e;if(null!=this.sourceRoot&&(a=n.relative(this.sourceRoot,a)),null!=this.sourceRoot&&(i=n.urlParse(this.sourceRoot))){var o=a.replace(/^file:\/\//,"");if("file"==i.scheme&&this._sources.has(o))return this.sourcesContent[this._sources.indexOf(o)];if((!i.path||"/"==i.path)&&this._sources.has("/"+a))return this.sourcesContent[this._sources.indexOf("/"+a)]}if(t)return null;throw new Error('"'+a+'" is not in the SourceMap.')},u.prototype.generatedPositionFor=function(e){var t=n.getArg(e,"source");if((t=this._findSourceIndex(t))<0)return{line:null,column:null,lastColumn:null};var r={source:t,originalLine:n.getArg(e,"line"),originalColumn:n.getArg(e,"column")},i=this._findMapping(r,this._originalMappings,"originalLine","originalColumn",n.compareByOriginalPositions,n.getArg(e,"bias",c.GREATEST_LOWER_BOUND));if(i>=0){var a=this._originalMappings[i];if(a.source===r.source)return{line:n.getArg(a,"generatedLine",null),column:n.getArg(a,"generatedColumn",null),lastColumn:n.getArg(a,"lastGeneratedColumn",null)}}return{line:null,column:null,lastColumn:null}},d.prototype=Object.create(c.prototype),d.prototype.constructor=c,d.prototype._version=3,Object.defineProperty(d.prototype,"sources",{get:function(){for(var e=[],t=0;t=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayHexadecimalNumberIndexNode=void 0;const o=r(71519),s=r(32287),c=r(79883),u=r(91363),l=r(57876);let d=class extends c.AbstractStringArrayIndexNode{constructor(e,t){super(e,t)}getNode(e){const t=l.NumberUtils.toHex(e);return u.NodeFactory.literalNode(e,t)}};t.StringArrayHexadecimalNumberIndexNode=d,t.StringArrayHexadecimalNumberIndexNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],d)},47926:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(b.NodeGuards.isProgramNode(e))return this.transformNode(e)}};case h.NodeTransformationStage.Finalizing:return{leave:e=>{if(b.NodeGuards.isProgramNode(e))return this.filterCommentsOnFinalizingTraverse(e)}};default:return null}}transformNode(e){var t;if(!(null===(t=(e=this.filterCommentsOnPrimaryTraverse(e)).comments)||void 0===t?void 0:t.length))return e;const r=e.comments.reverse();if(0===r.length)return e;if(!e.body.length)return e.leadingComments=r,e;let n=!0;return p.traverse(e,{enter:t=>{if(t===e)return;const i=r.findIndex(e=>e.range&&t.range&&e.range[0]=0&&((n?e:t).leadingComments=r.splice(i,r.length-i).reverse()),n=!1}}),r.length>0&&(e.trailingComments=r.reverse()),e}filterCommentsOnPrimaryTraverse(e){var t;return e.comments=null===(t=e.comments)||void 0===t?void 0:t.filter(e=>this.filterComment(e,!0)),e}filterCommentsOnFinalizingTraverse(e){return p.replace(e,{enter:e=>{var t,r;return e.leadingComments&&(e.leadingComments=null===(t=e.leadingComments)||void 0===t?void 0:t.filter(e=>this.filterComment(e,!1))),e.trailingComments&&(e.trailingComments=null===(r=e.trailingComments)||void 0===r?void 0:r.filter(e=>this.filterComment(e,!1))),e}}),e}filterComment(e,t){return!(!t||!g.ConditionalCommentObfuscatingGuard.isConditionalComment(e))||i.preservedWords.some(t=>e.value.includes(t))}};t.CommentsTransformer=y,y.preservedWords=["@license","@preserve"],t.CommentsTransformer=y=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(1,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Object,Object])],y)},48007:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.nodeModule=void 0;const n=r(71519),i=r(32287),a=r(19225);t.nodeModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.IScopeIdentifiersTraverser).to(a.ScopeIdentifiersTraverser).inSingletonScope()})},48033:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.has(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=new Set(["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"]);e.exports=t.default,e.exports.default=t.default},48096:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapSourcesMode=void 0;const n=r(65063);t.SourceMapSourcesMode=n.Utils.makeEnum({Sources:"sources",SourcesContent:"sources-content"})},48211:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtilsStringArray=void 0;const o=r(71519),s=r(32287),c=r(10094),u=r(49081);let l=class extends u.CryptUtils{constructor(e){super(e),this.base64Alphabet=c.base64alphabetSwapped}btoa(e){return super.btoa(e).replace(/=+$/,"")}};t.CryptUtilsStringArray=l,t.CryptUtilsStringArray=l=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),i("design:paramtypes",[Object])],l)},48284:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.renameIdentifiersTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(30221),s=r(65284),c=r(19158),u=r(13662),l=r(74819),d=r(49808);t.renameIdentifiersTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(o.DeadCodeInjectionIdentifiersTransformer).whenTargetNamed(a.NodeTransformer.DeadCodeInjectionIdentifiersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(c.LabeledStatementTransformer).whenTargetNamed(a.NodeTransformer.LabeledStatementTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(u.ScopeIdentifiersTransformer).whenTargetNamed(a.NodeTransformer.ScopeIdentifiersTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(l.ScopeThroughIdentifiersTransformer).whenTargetNamed(a.NodeTransformer.ScopeThroughIdentifiersTransformer),e(i.ServiceIdentifiers.IIdentifierReplacer).to(s.IdentifierReplacer).inSingletonScope(),e(i.ServiceIdentifiers.IThroughIdentifierReplacer).to(d.ThroughIdentifierReplacer).inSingletonScope()})},48427:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(y.NodeGuards.isLiteralNode(e)&&v.NodeLiteralUtils.isStringLiteralNode(e))return t=!0,p.VisitorOption.Break}}),t}getVisitor(e){return this.options.stringArrayRotate&&e===m.NodeTransformationStage.StringArray?{enter:e=>y.NodeGuards.isProgramNode(e)?i.isProgramNodeHasStringLiterals(e)?this.transformNode(e):p.VisitorOption.Break:e}:null}transformNode(e){const t=this.getStringArrayRotateFunctionNode(),r=S.NodeFactory.programNode([t]);A.NodeUtils.parentizeAst(r);const n=[m.NodeTransformationStage.Preparing,m.NodeTransformationStage.Converting,m.NodeTransformationStage.RenameIdentifiers,m.NodeTransformationStage.Finalizing];for(const e of n)this.transformersRunner.transform(r,i.stringArrayRotateFunctionTransformers,e);return p.traverse(r,{enter:e=>{y.NodeGuards.isLiteralNode(e)&&v.NodeLiteralUtils.isStringLiteralNode(e)&&(this.isComparisonExpressionStringLiteralNode(e)?this.stringArrayStorageAnalyzer.addItemDataForLiteralNode(e):_.NodeMetadata.set(e,{ignoredNode:!0}))}}),b.NodeAppender.prepend(e,[t]),e}getStringArrayRotateFunctionNode(){const e=this.getComparisonValue(),t=this.numberNumericalExpressionAnalyzer.analyze(e,i.comparisonExpressionAdditionalPartsCount);let r=1;const n=E.NumericalExpressionDataToNodeConverter.convertIntegerNumberData(t,(e,t)=>{const n=e*r,i=S.NodeFactory.literalNode(`${n}${this.randomGenerator.getRandomString(6)}`),a=S.NodeFactory.callExpressionNode(S.NodeFactory.identifierNode("parseInt"),[i]),o=S.NodeFactory.binaryExpressionNode("/",t?a:S.NodeFactory.unaryExpressionNode("-",a),S.NodeFactory.literalNode(r,r.toString()));return r++,o}),a=this.customCodeHelperFactory(h.CustomCodeHelper.StringArrayRotateFunction);return a.initialize(this.stringArrayStorage.getStorageName(),e,n),a.getNode()[0]}isComparisonExpressionStringLiteralNode(e){return/\d/.test(e.value)}getComparisonValue(){return this.randomGenerator.getRandomInteger(1e5,1e6)}};t.StringArrayRotateFunctionTransformer=x,x.stringArrayRotateFunctionTransformers=[C.NodeTransformer.BooleanLiteralTransformer,C.NodeTransformer.MemberExpressionTransformer,C.NodeTransformer.NumberLiteralTransformer,C.NodeTransformer.NumberToNumericalExpressionTransformer,C.NodeTransformer.ParentificationTransformer,C.NodeTransformer.ScopeIdentifiersTransformer],x.comparisonExpressionAdditionalPartsCount=7,t.StringArrayRotateFunctionTransformer=x=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(1,(0,d.inject)(f.ServiceIdentifiers.IOptions)),l(2,(0,d.inject)(f.ServiceIdentifiers.INodeTransformersRunner)),l(3,(0,d.inject)(f.ServiceIdentifiers.IStringArrayStorage)),l(4,(0,d.inject)(f.ServiceIdentifiers.IStringArrayStorageAnalyzer)),l(5,(0,d.inject)(f.ServiceIdentifiers.Factory__ICustomCodeHelper)),l(6,(0,d.inject)(f.ServiceIdentifiers.INumberNumericalExpressionAnalyzer)),u("design:paramtypes",[Object,Object,Object,Object,Object,Function,Object])],x)},48498:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputCodeHelperGroup=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(79011),l=r(18436),d=r(87415),f=r(30386),p=r(32504);let h=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.customCodeHelperFactory=e}appendOnPreparingStage(e,t){var r;if(!this.options.disableConsoleOutput)return;const n=this.getRandomCallsGraphIndex(t.length),i=t.length?f.NodeAppender.getOptimalBlockScope(t,n):e,a=t.length?f.NodeAppender.getOptimalBlockScope(t,n,1):e,o=null!==(r=p.NodeLexicalScopeUtils.getLexicalScope(i))&&void 0!==r?r:null,s=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext(),c=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(u.CustomCodeHelper.ConsoleOutputDisable,e=>{e.initialize(c,s),f.NodeAppender.prepend(i,e.getNode())}),this.appendCustomNodeIfExist(u.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(l.NodeTransformationStage.Preparing,c),f.NodeAppender.prepend(a,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.disableConsoleOutput)return;const e=this.customCodeHelperFactory(u.CustomCodeHelper.ConsoleOutputDisable),t=this.customCodeHelperFactory(u.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(u.CustomCodeHelper.ConsoleOutputDisable,e),this.customCodeHelpers.set(u.CustomCodeHelper.CallsControllerFunction,t)}};t.ConsoleOutputCodeHelperGroup=h,n([(0,c.initializable)(),i("design:type",Map)],h.prototype,"customCodeHelpers",void 0),t.ConsoleOutputCodeHelperGroup=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object])],h)},48630:function(e,t){!function(e){"use strict";var t=[509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,7,9,32,4,318,1,80,3,71,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,3,0,158,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,68,8,2,0,3,0,2,3,2,4,2,0,15,1,83,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,7,19,58,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,343,9,54,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,10,1,2,0,49,6,4,4,14,10,5350,0,7,14,11465,27,2343,9,87,9,39,4,60,6,26,9,535,9,470,0,2,54,8,3,82,0,12,1,19628,1,4178,9,519,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,101,0,161,6,10,9,357,0,62,13,499,13,245,1,2,9,726,6,110,6,6,9,4759,9,787719,239],r=[0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,4,51,13,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,39,27,10,22,251,41,7,1,17,2,60,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,20,1,64,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,31,9,2,0,3,0,2,37,2,0,26,0,2,0,45,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,200,32,32,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,16,0,2,12,2,33,125,0,80,921,103,110,18,195,2637,96,16,1071,18,5,26,3994,6,582,6842,29,1763,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,433,44,212,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,42,9,8936,3,2,6,2,1,2,290,16,0,30,2,3,0,15,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,7,5,262,61,147,44,11,6,17,0,322,29,19,43,485,27,229,29,3,0,496,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4153,7,221,3,5761,15,7472,16,621,2467,541,1507,4938,6,4191],n="‌‍·̀-ͯ·҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-٩ٰۖ-ۜ۟-۪ۤۧۨ-ۭ۰-۹ܑܰ-݊ަ-ް߀-߉߫-߽߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࢗ-࢟࣊-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣ०-९ঁ-ঃ়া-ৄেৈো-্ৗৢৣ০-৯৾ਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑ੦-ੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣ૦-૯ૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍୕-ୗୢୣ୦-୯ஂா-ூெ-ைொ-்ௗ௦-௯ఀ-ఄ఼ా-ౄె-ైొ-్ౕౖౢౣ౦-౯ಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣ೦-೯ೳഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣ൦-൯ඁ-ඃ්ා-ුූෘ-ෟ෦-෯ෲෳัิ-ฺ็-๎๐-๙ັິ-ຼ່-໎໐-໙༘༙༠-༩༹༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှ၀-၉ၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏ-ႝ፝-፟፩-፱ᜒ-᜕ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝០-៩᠋-᠍᠏-᠙ᢩᤠ-ᤫᤰ-᤻᥆-᥏᧐-᧚ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪰-᪽ᪿ-ᫎᬀ-ᬄ᬴-᭄᭐-᭙᭫-᭳ᮀ-ᮂᮡ-ᮭ᮰-᮹᯦-᯳ᰤ-᰷᱀-᱉᱐-᱙᳐-᳔᳒-᳨᳭᳴᳷-᳹᷀-᷿‌‍‿⁀⁔⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯・꘠-꘩꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧ꠬ꢀꢁꢴ-ꣅ꣐-꣙꣠-꣱ꣿ-꤉ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀꧐-꧙ꧥ꧰-꧹ꨩ-ꨶꩃꩌꩍ꩐-꩙ꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭꯰-꯹ﬞ︀-️︠-︯︳︴﹍-﹏0-9_・",i="ªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙՠ-ֈא-תׯ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࡰ-ࢇࢉ-ࢎࢠ-ࣉऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౝౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೝೞೠೡೱೲഄ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄຆ-ຊຌ-ຣລວ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜑᜟ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡸᢀ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭌᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲊᲐ-ᲺᲽ-Ჿᳩ-ᳬᳮ-ᳳᳵᳶᳺᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕ℘-ℝℤΩℨK-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⰀ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ々-〇〡-〩〱-〵〸-〼ぁ-ゖ゛-ゟァ-ヺー-ヿㄅ-ㄯㄱ-ㆎㆠ-ㆿㇰ-ㇿ㐀-䶿一-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꟍꟐꟑꟓꟕ-Ƛꟲ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꣾꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭩꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",a={3:"abstract boolean byte char class double enum export extends final float goto implements import int interface long native package private protected public short static super synchronized throws transient volatile",5:"class enum extends super const export import",6:"enum",strict:"implements interface let package private protected public static yield",strictBind:"eval arguments"},o="break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this",s={5:o,"5module":o+" export import",6:o+" const class extends export import super"},c=/^in(stanceof)?$/,u=new RegExp("["+i+"]"),l=new RegExp("["+i+n+"]");function d(e,t){for(var r=65536,n=0;ne)return!1;if((r+=t[n+1])>=e)return!0}return!1}function f(e,t){return e<65?36===e:e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&u.test(String.fromCharCode(e)):!1!==t&&d(e,r)))}function p(e,n){return e<48?36===e:e<58||!(e<65)&&(e<91||(e<97?95===e:e<123||(e<=65535?e>=170&&l.test(String.fromCharCode(e)):!1!==n&&(d(e,r)||d(e,t)))))}var h=function(e,t){void 0===t&&(t={}),this.label=e,this.keyword=t.keyword,this.beforeExpr=!!t.beforeExpr,this.startsExpr=!!t.startsExpr,this.isLoop=!!t.isLoop,this.isAssign=!!t.isAssign,this.prefix=!!t.prefix,this.postfix=!!t.postfix,this.binop=t.binop||null,this.updateContext=null};function m(e,t){return new h(e,{beforeExpr:!0,binop:t})}var g={beforeExpr:!0},b={startsExpr:!0},y={};function S(e,t){return void 0===t&&(t={}),t.keyword=e,y[e]=new h(e,t)}var v={num:new h("num",b),regexp:new h("regexp",b),string:new h("string",b),name:new h("name",b),privateId:new h("privateId",b),eof:new h("eof"),bracketL:new h("[",{beforeExpr:!0,startsExpr:!0}),bracketR:new h("]"),braceL:new h("{",{beforeExpr:!0,startsExpr:!0}),braceR:new h("}"),parenL:new h("(",{beforeExpr:!0,startsExpr:!0}),parenR:new h(")"),comma:new h(",",g),semi:new h(";",g),colon:new h(":",g),dot:new h("."),question:new h("?",g),questionDot:new h("?."),arrow:new h("=>",g),template:new h("template"),invalidTemplate:new h("invalidTemplate"),ellipsis:new h("...",g),backQuote:new h("`",b),dollarBraceL:new h("${",{beforeExpr:!0,startsExpr:!0}),eq:new h("=",{beforeExpr:!0,isAssign:!0}),assign:new h("_=",{beforeExpr:!0,isAssign:!0}),incDec:new h("++/--",{prefix:!0,postfix:!0,startsExpr:!0}),prefix:new h("!/~",{beforeExpr:!0,prefix:!0,startsExpr:!0}),logicalOR:m("||",1),logicalAND:m("&&",2),bitwiseOR:m("|",3),bitwiseXOR:m("^",4),bitwiseAND:m("&",5),equality:m("==/!=/===/!==",6),relational:m("/<=/>=",7),bitShift:m("<>/>>>",8),plusMin:new h("+/-",{beforeExpr:!0,binop:9,prefix:!0,startsExpr:!0}),modulo:m("%",10),star:m("*",10),slash:m("/",10),starstar:new h("**",{beforeExpr:!0}),coalesce:m("??",1),_break:S("break"),_case:S("case",g),_catch:S("catch"),_continue:S("continue"),_debugger:S("debugger"),_default:S("default",g),_do:S("do",{isLoop:!0,beforeExpr:!0}),_else:S("else",g),_finally:S("finally"),_for:S("for",{isLoop:!0}),_function:S("function",b),_if:S("if"),_return:S("return",g),_switch:S("switch"),_throw:S("throw",g),_try:S("try"),_var:S("var"),_const:S("const"),_while:S("while",{isLoop:!0}),_with:S("with"),_new:S("new",{beforeExpr:!0,startsExpr:!0}),_this:S("this",b),_super:S("super",b),_class:S("class",b),_extends:S("extends",g),_export:S("export"),_import:S("import",b),_null:S("null",b),_true:S("true",b),_false:S("false",b),_in:S("in",{beforeExpr:!0,binop:7}),_instanceof:S("instanceof",{beforeExpr:!0,binop:7}),_typeof:S("typeof",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_void:S("void",{beforeExpr:!0,prefix:!0,startsExpr:!0}),_delete:S("delete",{beforeExpr:!0,prefix:!0,startsExpr:!0})},_=/\r\n?|\n|\u2028|\u2029/,C=new RegExp(_.source,"g");function A(e){return 10===e||13===e||8232===e||8233===e}function E(e,t,r){void 0===r&&(r=e.length);for(var n=t;n>10),56320+(1023&e)))}var w=/(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/,B=function(e,t){this.line=e,this.column=t};B.prototype.offset=function(e){return new B(this.line,this.column+e)};var k=function(e,t,r){this.start=t,this.end=r,null!==e.sourceFile&&(this.source=e.sourceFile)};function L(e,t){for(var r=1,n=0;;){var i=E(e,n,t);if(i<0)return new B(r,t-n);++r,n=i}}var $={ecmaVersion:null,sourceType:"script",onInsertedSemicolon:null,onTrailingComma:null,allowReserved:null,allowReturnOutsideFunction:!1,allowImportExportEverywhere:!1,allowAwaitOutsideFunction:null,allowSuperOutsideMethod:null,allowHashBang:!1,checkPrivateFields:!0,locations:!1,onToken:null,onComment:null,ranges:!1,program:null,sourceFile:null,directSourceFile:null,preserveParens:!1},j=!1;function G(e){var t={};for(var r in $)t[r]=e&&O(e,r)?e[r]:$[r];if("latest"===t.ecmaVersion?t.ecmaVersion=1e8:null==t.ecmaVersion?(!j&&"object"==typeof console&&console.warn&&(j=!0,console.warn("Since Acorn 8.0.0, options.ecmaVersion is required.\nDefaulting to 2020, but this will stop working in the future.")),t.ecmaVersion=11):t.ecmaVersion>=2015&&(t.ecmaVersion-=2009),null==t.allowReserved&&(t.allowReserved=t.ecmaVersion<5),e&&null!=e.allowHashBang||(t.allowHashBang=t.ecmaVersion>=14),M(t.onToken)){var n=t.onToken;t.onToken=function(e){return n.push(e)}}return M(t.onComment)&&(t.onComment=V(t,t.onComment)),t}function V(e,t){return function(r,n,i,a,o,s){var c={type:r?"Block":"Line",value:n,start:i,end:a};e.locations&&(c.loc=new k(this,o,s)),e.ranges&&(c.range=[i,a]),t.push(c)}}var U=1,H=2,K=4,W=8,z=16,X=32,Y=64,Z=128,q=256,J=512,Q=U|H|q;function ee(e,t){return H|(e?K:0)|(t?W:0)}var te=0,re=1,ne=2,ie=3,ae=4,oe=5,se=function(e,t,r){this.options=e=G(e),this.sourceFile=e.sourceFile,this.keywords=F(s[e.ecmaVersion>=6?6:"module"===e.sourceType?"5module":5]);var n="";!0!==e.allowReserved&&(n=a[e.ecmaVersion>=6?6:5===e.ecmaVersion?5:3],"module"===e.sourceType&&(n+=" await")),this.reservedWords=F(n);var i=(n?n+" ":"")+a.strict;this.reservedWordsStrict=F(i),this.reservedWordsStrictBind=F(i+" "+a.strictBind),this.input=String(t),this.containsEsc=!1,r?(this.pos=r,this.lineStart=this.input.lastIndexOf("\n",r-1)+1,this.curLine=this.input.slice(0,this.lineStart).split(_).length):(this.pos=this.lineStart=0,this.curLine=1),this.type=v.eof,this.value=null,this.start=this.end=this.pos,this.startLoc=this.endLoc=this.curPosition(),this.lastTokEndLoc=this.lastTokStartLoc=null,this.lastTokStart=this.lastTokEnd=this.pos,this.context=this.initialContext(),this.exprAllowed=!0,this.inModule="module"===e.sourceType,this.strict=this.inModule||this.strictDirective(this.pos),this.potentialArrowAt=-1,this.potentialArrowInForAwait=!1,this.yieldPos=this.awaitPos=this.awaitIdentPos=0,this.labels=[],this.undefinedExports=Object.create(null),0===this.pos&&e.allowHashBang&&"#!"===this.input.slice(0,2)&&this.skipLineComment(2),this.scopeStack=[],this.enterScope(U),this.regexpState=null,this.privateNameStack=[]},ce={inFunction:{configurable:!0},inGenerator:{configurable:!0},inAsync:{configurable:!0},canAwait:{configurable:!0},allowSuper:{configurable:!0},allowDirectSuper:{configurable:!0},treatFunctionsAsVar:{configurable:!0},allowNewDotTarget:{configurable:!0},inClassStaticBlock:{configurable:!0}};se.prototype.parse=function(){var e=this.options.program||this.startNode();return this.nextToken(),this.parseTopLevel(e)},ce.inFunction.get=function(){return(this.currentVarScope().flags&H)>0},ce.inGenerator.get=function(){return(this.currentVarScope().flags&W)>0},ce.inAsync.get=function(){return(this.currentVarScope().flags&K)>0},ce.canAwait.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(t&(q|J))return!1;if(t&H)return(t&K)>0}return this.inModule&&this.options.ecmaVersion>=13||this.options.allowAwaitOutsideFunction},ce.allowSuper.get=function(){return(this.currentThisScope().flags&Y)>0||this.options.allowSuperOutsideMethod},ce.allowDirectSuper.get=function(){return(this.currentThisScope().flags&Z)>0},ce.treatFunctionsAsVar.get=function(){return this.treatFunctionsAsVarInScope(this.currentScope())},ce.allowNewDotTarget.get=function(){for(var e=this.scopeStack.length-1;e>=0;e--){var t=this.scopeStack[e].flags;if(t&(q|J)||t&H&&!(t&z))return!0}return!1},ce.inClassStaticBlock.get=function(){return(this.currentVarScope().flags&q)>0},se.extend=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var r=this,n=0;n=,?^&]/.test(i)||"!"===i&&"="===this.input.charAt(n+1))}e+=t[0].length,N.lastIndex=e,e+=N.exec(this.input)[0].length,";"===this.input[e]&&e++}},ue.eat=function(e){return this.type===e&&(this.next(),!0)},ue.isContextual=function(e){return this.type===v.name&&this.value===e&&!this.containsEsc},ue.eatContextual=function(e){return!!this.isContextual(e)&&(this.next(),!0)},ue.expectContextual=function(e){this.eatContextual(e)||this.unexpected()},ue.canInsertSemicolon=function(){return this.type===v.eof||this.type===v.braceR||_.test(this.input.slice(this.lastTokEnd,this.start))},ue.insertSemicolon=function(){if(this.canInsertSemicolon())return this.options.onInsertedSemicolon&&this.options.onInsertedSemicolon(this.lastTokEnd,this.lastTokEndLoc),!0},ue.semicolon=function(){this.eat(v.semi)||this.insertSemicolon()||this.unexpected()},ue.afterTrailingComma=function(e,t){if(this.type===e)return this.options.onTrailingComma&&this.options.onTrailingComma(this.lastTokStart,this.lastTokStartLoc),t||this.next(),!0},ue.expect=function(e){this.eat(e)||this.unexpected()},ue.unexpected=function(e){this.raise(null!=e?e:this.start,"Unexpected token")};var de=function(){this.shorthandAssign=this.trailingComma=this.parenthesizedAssign=this.parenthesizedBind=this.doubleProto=-1};ue.checkPatternErrors=function(e,t){if(e){e.trailingComma>-1&&this.raiseRecoverable(e.trailingComma,"Comma is not permitted after the rest element");var r=t?e.parenthesizedAssign:e.parenthesizedBind;r>-1&&this.raiseRecoverable(r,t?"Assigning to rvalue":"Parenthesized pattern")}},ue.checkExpressionErrors=function(e,t){if(!e)return!1;var r=e.shorthandAssign,n=e.doubleProto;if(!t)return r>=0||n>=0;r>=0&&this.raise(r,"Shorthand property assignments are valid only in destructuring patterns"),n>=0&&this.raiseRecoverable(n,"Redefinition of __proto__ property")},ue.checkYieldAwaitInDefaultParams=function(){this.yieldPos&&(!this.awaitPos||this.yieldPos55295&&n<56320)return!0;if(f(n,!0)){for(var i=r+1;p(n=this.input.charCodeAt(i),!0);)++i;if(92===n||n>55295&&n<56320)return!0;var a=this.input.slice(r,i);if(!c.test(a))return!0}return!1},fe.isAsyncFunction=function(){if(this.options.ecmaVersion<8||!this.isContextual("async"))return!1;N.lastIndex=this.pos;var e,t=N.exec(this.input),r=this.pos+t[0].length;return!(_.test(this.input.slice(this.pos,r))||"function"!==this.input.slice(r,r+8)||r+8!==this.input.length&&(p(e=this.input.charCodeAt(r+8))||e>55295&&e<56320))},fe.isUsingKeyword=function(e,t){if(this.options.ecmaVersion<17||!this.isContextual(e?"await":"using"))return!1;N.lastIndex=this.pos;var r=N.exec(this.input),n=this.pos+r[0].length;if(_.test(this.input.slice(this.pos,n)))return!1;if(e){var i,a=n+5;if("using"!==this.input.slice(n,a)||a===this.input.length||p(i=this.input.charCodeAt(a))||i>55295&&i<56320)return!1;N.lastIndex=a;var o=N.exec(this.input);if(o&&_.test(this.input.slice(a,a+o[0].length)))return!1}if(t){var s,c=n+2;if(!("of"!==this.input.slice(n,c)||c!==this.input.length&&(p(s=this.input.charCodeAt(c))||s>55295&&s<56320)))return!1}var u=this.input.charCodeAt(n);return f(u,!0)||92===u},fe.isAwaitUsing=function(e){return this.isUsingKeyword(!0,e)},fe.isUsing=function(e){return this.isUsingKeyword(!1,e)},fe.parseStatement=function(e,t,r){var n,i=this.type,a=this.startNode();switch(this.isLet(e)&&(i=v._var,n="let"),i){case v._break:case v._continue:return this.parseBreakContinueStatement(a,i.keyword);case v._debugger:return this.parseDebuggerStatement(a);case v._do:return this.parseDoStatement(a);case v._for:return this.parseForStatement(a);case v._function:return e&&(this.strict||"if"!==e&&"label"!==e)&&this.options.ecmaVersion>=6&&this.unexpected(),this.parseFunctionStatement(a,!1,!e);case v._class:return e&&this.unexpected(),this.parseClass(a,!0);case v._if:return this.parseIfStatement(a);case v._return:return this.parseReturnStatement(a);case v._switch:return this.parseSwitchStatement(a);case v._throw:return this.parseThrowStatement(a);case v._try:return this.parseTryStatement(a);case v._const:case v._var:return n=n||this.value,e&&"var"!==n&&this.unexpected(),this.parseVarStatement(a,n);case v._while:return this.parseWhileStatement(a);case v._with:return this.parseWithStatement(a);case v.braceL:return this.parseBlock(!0,a);case v.semi:return this.parseEmptyStatement(a);case v._export:case v._import:if(this.options.ecmaVersion>10&&i===v._import){N.lastIndex=this.pos;var o=N.exec(this.input),s=this.pos+o[0].length,c=this.input.charCodeAt(s);if(40===c||46===c)return this.parseExpressionStatement(a,this.parseExpression())}return this.options.allowImportExportEverywhere||(t||this.raise(this.start,"'import' and 'export' may only appear at the top level"),this.inModule||this.raise(this.start,"'import' and 'export' may appear only with 'sourceType: module'")),i===v._import?this.parseImport(a):this.parseExport(a,r);default:if(this.isAsyncFunction())return e&&this.unexpected(),this.next(),this.parseFunctionStatement(a,!0,!e);var u=this.isAwaitUsing(!1)?"await using":this.isUsing(!1)?"using":null;if(u)return t&&"script"===this.options.sourceType&&this.raise(this.start,"Using declaration cannot appear in the top level when source type is `script`"),"await using"===u&&(this.canAwait||this.raise(this.start,"Await using cannot appear outside of async function"),this.next()),this.next(),this.parseVar(a,!1,u),this.semicolon(),this.finishNode(a,"VariableDeclaration");var l=this.value,d=this.parseExpression();return i===v.name&&"Identifier"===d.type&&this.eat(v.colon)?this.parseLabeledStatement(a,l,d,e):this.parseExpressionStatement(a,d)}},fe.parseBreakContinueStatement=function(e,t){var r="break"===t;this.next(),this.eat(v.semi)||this.insertSemicolon()?e.label=null:this.type!==v.name?this.unexpected():(e.label=this.parseIdent(),this.semicolon());for(var n=0;n=6?this.eat(v.semi):this.semicolon(),this.finishNode(e,"DoWhileStatement")},fe.parseForStatement=function(e){this.next();var t=this.options.ecmaVersion>=9&&this.canAwait&&this.eatContextual("await")?this.lastTokStart:-1;if(this.labels.push(pe),this.enterScope(0),this.expect(v.parenL),this.type===v.semi)return t>-1&&this.unexpected(t),this.parseFor(e,null);var r=this.isLet();if(this.type===v._var||this.type===v._const||r){var n=this.startNode(),i=r?"let":this.value;return this.next(),this.parseVar(n,!0,i),this.finishNode(n,"VariableDeclaration"),this.parseForAfterInit(e,n,t)}var a=this.isContextual("let"),o=!1,s=this.isUsing(!0)?"using":this.isAwaitUsing(!0)?"await using":null;if(s){var c=this.startNode();return this.next(),"await using"===s&&this.next(),this.parseVar(c,!0,s),this.finishNode(c,"VariableDeclaration"),this.parseForAfterInit(e,c,t)}var u=this.containsEsc,l=new de,d=this.start,f=t>-1?this.parseExprSubscripts(l,"await"):this.parseExpression(!0,l);return this.type===v._in||(o=this.options.ecmaVersion>=6&&this.isContextual("of"))?(t>-1?(this.type===v._in&&this.unexpected(t),e.await=!0):o&&this.options.ecmaVersion>=8&&(f.start!==d||u||"Identifier"!==f.type||"async"!==f.name?this.options.ecmaVersion>=9&&(e.await=!1):this.unexpected()),a&&o&&this.raise(f.start,"The left-hand side of a for-of loop may not start with 'let'."),this.toAssignable(f,!1,l),this.checkLValPattern(f),this.parseForIn(e,f)):(this.checkExpressionErrors(l,!0),t>-1&&this.unexpected(t),this.parseFor(e,f))},fe.parseForAfterInit=function(e,t,r){return(this.type===v._in||this.options.ecmaVersion>=6&&this.isContextual("of"))&&1===t.declarations.length?(this.options.ecmaVersion>=9&&(this.type===v._in?r>-1&&this.unexpected(r):e.await=r>-1),this.parseForIn(e,t)):(r>-1&&this.unexpected(r),this.parseFor(e,t))},fe.parseFunctionStatement=function(e,t,r){return this.next(),this.parseFunction(e,ge|(r?0:be),!1,t)},fe.parseIfStatement=function(e){return this.next(),e.test=this.parseParenExpression(),e.consequent=this.parseStatement("if"),e.alternate=this.eat(v._else)?this.parseStatement("if"):null,this.finishNode(e,"IfStatement")},fe.parseReturnStatement=function(e){return this.inFunction||this.options.allowReturnOutsideFunction||this.raise(this.start,"'return' outside of function"),this.next(),this.eat(v.semi)||this.insertSemicolon()?e.argument=null:(e.argument=this.parseExpression(),this.semicolon()),this.finishNode(e,"ReturnStatement")},fe.parseSwitchStatement=function(e){var t;this.next(),e.discriminant=this.parseParenExpression(),e.cases=[],this.expect(v.braceL),this.labels.push(he),this.enterScope(0);for(var r=!1;this.type!==v.braceR;)if(this.type===v._case||this.type===v._default){var n=this.type===v._case;t&&this.finishNode(t,"SwitchCase"),e.cases.push(t=this.startNode()),t.consequent=[],this.next(),n?t.test=this.parseExpression():(r&&this.raiseRecoverable(this.lastTokStart,"Multiple default clauses"),r=!0,t.test=null),this.expect(v.colon)}else t||this.unexpected(),t.consequent.push(this.parseStatement(null));return this.exitScope(),t&&this.finishNode(t,"SwitchCase"),this.next(),this.labels.pop(),this.finishNode(e,"SwitchStatement")},fe.parseThrowStatement=function(e){return this.next(),_.test(this.input.slice(this.lastTokEnd,this.start))&&this.raise(this.lastTokEnd,"Illegal newline after throw"),e.argument=this.parseExpression(),this.semicolon(),this.finishNode(e,"ThrowStatement")};var me=[];fe.parseCatchClauseParam=function(){var e=this.parseBindingAtom(),t="Identifier"===e.type;return this.enterScope(t?X:0),this.checkLValPattern(e,t?ae:ne),this.expect(v.parenR),e},fe.parseTryStatement=function(e){if(this.next(),e.block=this.parseBlock(),e.handler=null,this.type===v._catch){var t=this.startNode();this.next(),this.eat(v.parenL)?t.param=this.parseCatchClauseParam():(this.options.ecmaVersion<10&&this.unexpected(),t.param=null,this.enterScope(0)),t.body=this.parseBlock(!1),this.exitScope(),e.handler=this.finishNode(t,"CatchClause")}return e.finalizer=this.eat(v._finally)?this.parseBlock():null,e.handler||e.finalizer||this.raise(e.start,"Missing catch or finally clause"),this.finishNode(e,"TryStatement")},fe.parseVarStatement=function(e,t,r){return this.next(),this.parseVar(e,!1,t,r),this.semicolon(),this.finishNode(e,"VariableDeclaration")},fe.parseWhileStatement=function(e){return this.next(),e.test=this.parseParenExpression(),this.labels.push(pe),e.body=this.parseStatement("while"),this.labels.pop(),this.finishNode(e,"WhileStatement")},fe.parseWithStatement=function(e){return this.strict&&this.raise(this.start,"'with' in strict mode"),this.next(),e.object=this.parseParenExpression(),e.body=this.parseStatement("with"),this.finishNode(e,"WithStatement")},fe.parseEmptyStatement=function(e){return this.next(),this.finishNode(e,"EmptyStatement")},fe.parseLabeledStatement=function(e,t,r,n){for(var i=0,a=this.labels;i=0;s--){var c=this.labels[s];if(c.statementStart!==e.start)break;c.statementStart=this.start,c.kind=o}return this.labels.push({name:t,kind:o,statementStart:this.start}),e.body=this.parseStatement(n?-1===n.indexOf("label")?n+"label":n:"label"),this.labels.pop(),e.label=r,this.finishNode(e,"LabeledStatement")},fe.parseExpressionStatement=function(e,t){return e.expression=t,this.semicolon(),this.finishNode(e,"ExpressionStatement")},fe.parseBlock=function(e,t,r){for(void 0===e&&(e=!0),void 0===t&&(t=this.startNode()),t.body=[],this.expect(v.braceL),e&&this.enterScope(0);this.type!==v.braceR;){var n=this.parseStatement(null);t.body.push(n)}return r&&(this.strict=!1),this.next(),e&&this.exitScope(),this.finishNode(t,"BlockStatement")},fe.parseFor=function(e,t){return e.init=t,this.expect(v.semi),e.test=this.type===v.semi?null:this.parseExpression(),this.expect(v.semi),e.update=this.type===v.parenR?null:this.parseExpression(),this.expect(v.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,"ForStatement")},fe.parseForIn=function(e,t){var r=this.type===v._in;return this.next(),"VariableDeclaration"===t.type&&null!=t.declarations[0].init&&(!r||this.options.ecmaVersion<8||this.strict||"var"!==t.kind||"Identifier"!==t.declarations[0].id.type)&&this.raise(t.start,(r?"for-in":"for-of")+" loop variable declaration may not have an initializer"),e.left=t,e.right=r?this.parseExpression():this.parseMaybeAssign(),this.expect(v.parenR),e.body=this.parseStatement("for"),this.exitScope(),this.labels.pop(),this.finishNode(e,r?"ForInStatement":"ForOfStatement")},fe.parseVar=function(e,t,r,n){for(e.declarations=[],e.kind=r;;){var i=this.startNode();if(this.parseVarId(i,r),this.eat(v.eq)?i.init=this.parseMaybeAssign(t):n||"const"!==r||this.type===v._in||this.options.ecmaVersion>=6&&this.isContextual("of")?n||"using"!==r&&"await using"!==r||!(this.options.ecmaVersion>=17)||this.type===v._in||this.isContextual("of")?n||"Identifier"===i.id.type||t&&(this.type===v._in||this.isContextual("of"))?i.init=null:this.raise(this.lastTokEnd,"Complex binding patterns require an initialization value"):this.raise(this.lastTokEnd,"Missing initializer in "+r+" declaration"):this.unexpected(),e.declarations.push(this.finishNode(i,"VariableDeclarator")),!this.eat(v.comma))break}return e},fe.parseVarId=function(e,t){e.id="using"===t||"await using"===t?this.parseIdent():this.parseBindingAtom(),this.checkLValPattern(e.id,"var"===t?re:ne,!1)};var ge=1,be=2,ye=4;function Se(e,t){var r=t.key.name,n=e[r],i="true";return"MethodDefinition"!==t.type||"get"!==t.kind&&"set"!==t.kind||(i=(t.static?"s":"i")+t.kind),"iget"===n&&"iset"===i||"iset"===n&&"iget"===i||"sget"===n&&"sset"===i||"sset"===n&&"sget"===i?(e[r]="true",!1):!!n||(e[r]=i,!1)}function ve(e,t){var r=e.computed,n=e.key;return!r&&("Identifier"===n.type&&n.name===t||"Literal"===n.type&&n.value===t)}fe.parseFunction=function(e,t,r,n,i){this.initFunction(e),(this.options.ecmaVersion>=9||this.options.ecmaVersion>=6&&!n)&&(this.type===v.star&&t&be&&this.unexpected(),e.generator=this.eat(v.star)),this.options.ecmaVersion>=8&&(e.async=!!n),t&ge&&(e.id=t&ye&&this.type!==v.name?null:this.parseIdent(),!e.id||t&be||this.checkLValSimple(e.id,this.strict||e.generator||e.async?this.treatFunctionsAsVar?re:ne:ie));var a=this.yieldPos,o=this.awaitPos,s=this.awaitIdentPos;return this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(ee(e.async,e.generator)),t&ge||(e.id=this.type===v.name?this.parseIdent():null),this.parseFunctionParams(e),this.parseFunctionBody(e,r,!1,i),this.yieldPos=a,this.awaitPos=o,this.awaitIdentPos=s,this.finishNode(e,t&ge?"FunctionDeclaration":"FunctionExpression")},fe.parseFunctionParams=function(e){this.expect(v.parenL),e.params=this.parseBindingList(v.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams()},fe.parseClass=function(e,t){this.next();var r=this.strict;this.strict=!0,this.parseClassId(e,t),this.parseClassSuper(e);var n=this.enterClassBody(),i=this.startNode(),a=!1;for(i.body=[],this.expect(v.braceL);this.type!==v.braceR;){var o=this.parseClassElement(null!==e.superClass);o&&(i.body.push(o),"MethodDefinition"===o.type&&"constructor"===o.kind?(a&&this.raiseRecoverable(o.start,"Duplicate constructor in the same class"),a=!0):o.key&&"PrivateIdentifier"===o.key.type&&Se(n,o)&&this.raiseRecoverable(o.key.start,"Identifier '#"+o.key.name+"' has already been declared"))}return this.strict=r,this.next(),e.body=this.finishNode(i,"ClassBody"),this.exitClassBody(),this.finishNode(e,t?"ClassDeclaration":"ClassExpression")},fe.parseClassElement=function(e){if(this.eat(v.semi))return null;var t=this.options.ecmaVersion,r=this.startNode(),n="",i=!1,a=!1,o="method",s=!1;if(this.eatContextual("static")){if(t>=13&&this.eat(v.braceL))return this.parseClassStaticBlock(r),r;this.isClassElementNameStart()||this.type===v.star?s=!0:n="static"}if(r.static=s,!n&&t>=8&&this.eatContextual("async")&&(!this.isClassElementNameStart()&&this.type!==v.star||this.canInsertSemicolon()?n="async":a=!0),!n&&(t>=9||!a)&&this.eat(v.star)&&(i=!0),!n&&!a&&!i){var c=this.value;(this.eatContextual("get")||this.eatContextual("set"))&&(this.isClassElementNameStart()?o=c:n=c)}if(n?(r.computed=!1,r.key=this.startNodeAt(this.lastTokStart,this.lastTokStartLoc),r.key.name=n,this.finishNode(r.key,"Identifier")):this.parseClassElementName(r),t<13||this.type===v.parenL||"method"!==o||i||a){var u=!r.static&&ve(r,"constructor"),l=u&&e;u&&"method"!==o&&this.raise(r.key.start,"Constructor can't have get/set modifier"),r.kind=u?"constructor":o,this.parseClassMethod(r,i,a,l)}else this.parseClassField(r);return r},fe.isClassElementNameStart=function(){return this.type===v.name||this.type===v.privateId||this.type===v.num||this.type===v.string||this.type===v.bracketL||this.type.keyword},fe.parseClassElementName=function(e){this.type===v.privateId?("constructor"===this.value&&this.raise(this.start,"Classes can't have an element named '#constructor'"),e.computed=!1,e.key=this.parsePrivateIdent()):this.parsePropertyName(e)},fe.parseClassMethod=function(e,t,r,n){var i=e.key;"constructor"===e.kind?(t&&this.raise(i.start,"Constructor can't be a generator"),r&&this.raise(i.start,"Constructor can't be an async method")):e.static&&ve(e,"prototype")&&this.raise(i.start,"Classes may not have a static property named prototype");var a=e.value=this.parseMethod(t,r,n);return"get"===e.kind&&0!==a.params.length&&this.raiseRecoverable(a.start,"getter should have no params"),"set"===e.kind&&1!==a.params.length&&this.raiseRecoverable(a.start,"setter should have exactly one param"),"set"===e.kind&&"RestElement"===a.params[0].type&&this.raiseRecoverable(a.params[0].start,"Setter cannot use rest params"),this.finishNode(e,"MethodDefinition")},fe.parseClassField=function(e){return ve(e,"constructor")?this.raise(e.key.start,"Classes can't have a field named 'constructor'"):e.static&&ve(e,"prototype")&&this.raise(e.key.start,"Classes can't have a static field named 'prototype'"),this.eat(v.eq)?(this.enterScope(J|Y),e.value=this.parseMaybeAssign(),this.exitScope()):e.value=null,this.semicolon(),this.finishNode(e,"PropertyDefinition")},fe.parseClassStaticBlock=function(e){e.body=[];var t=this.labels;for(this.labels=[],this.enterScope(q|Y);this.type!==v.braceR;){var r=this.parseStatement(null);e.body.push(r)}return this.next(),this.exitScope(),this.labels=t,this.finishNode(e,"StaticBlock")},fe.parseClassId=function(e,t){this.type===v.name?(e.id=this.parseIdent(),t&&this.checkLValSimple(e.id,ne,!1)):(!0===t&&this.unexpected(),e.id=null)},fe.parseClassSuper=function(e){e.superClass=this.eat(v._extends)?this.parseExprSubscripts(null,!1):null},fe.enterClassBody=function(){var e={declared:Object.create(null),used:[]};return this.privateNameStack.push(e),e.declared},fe.exitClassBody=function(){var e=this.privateNameStack.pop(),t=e.declared,r=e.used;if(this.options.checkPrivateFields)for(var n=this.privateNameStack.length,i=0===n?null:this.privateNameStack[n-1],a=0;a=11&&(this.eatContextual("as")?(e.exported=this.parseModuleExportName(),this.checkExport(t,e.exported,this.lastTokStart)):e.exported=null),this.expectContextual("from"),this.type!==v.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,"ExportAllDeclaration")},fe.parseExport=function(e,t){if(this.next(),this.eat(v.star))return this.parseExportAllDeclaration(e,t);if(this.eat(v._default))return this.checkExport(t,"default",this.lastTokStart),e.declaration=this.parseExportDefaultDeclaration(),this.finishNode(e,"ExportDefaultDeclaration");if(this.shouldParseExportStatement())e.declaration=this.parseExportDeclaration(e),"VariableDeclaration"===e.declaration.type?this.checkVariableExport(t,e.declaration.declarations):this.checkExport(t,e.declaration.id,e.declaration.id.start),e.specifiers=[],e.source=null,this.options.ecmaVersion>=16&&(e.attributes=[]);else{if(e.declaration=null,e.specifiers=this.parseExportSpecifiers(t),this.eatContextual("from"))this.type!==v.string&&this.unexpected(),e.source=this.parseExprAtom(),this.options.ecmaVersion>=16&&(e.attributes=this.parseWithClause());else{for(var r=0,n=e.specifiers;r=16&&(e.attributes=[])}this.semicolon()}return this.finishNode(e,"ExportNamedDeclaration")},fe.parseExportDeclaration=function(e){return this.parseStatement(null)},fe.parseExportDefaultDeclaration=function(){var e;if(this.type===v._function||(e=this.isAsyncFunction())){var t=this.startNode();return this.next(),e&&this.next(),this.parseFunction(t,ge|ye,!1,e)}if(this.type===v._class){var r=this.startNode();return this.parseClass(r,"nullableID")}var n=this.parseMaybeAssign();return this.semicolon(),n},fe.checkExport=function(e,t,r){e&&("string"!=typeof t&&(t="Identifier"===t.type?t.name:t.value),O(e,t)&&this.raiseRecoverable(r,"Duplicate export '"+t+"'"),e[t]=!0)},fe.checkPatternExport=function(e,t){var r=t.type;if("Identifier"===r)this.checkExport(e,t,t.start);else if("ObjectPattern"===r)for(var n=0,i=t.properties;n=16&&(e.attributes=this.parseWithClause()),this.semicolon(),this.finishNode(e,"ImportDeclaration")},fe.parseImportSpecifier=function(){var e=this.startNode();return e.imported=this.parseModuleExportName(),this.eatContextual("as")?e.local=this.parseIdent():(this.checkUnreserved(e.imported),e.local=e.imported),this.checkLValSimple(e.local,ne),this.finishNode(e,"ImportSpecifier")},fe.parseImportDefaultSpecifier=function(){var e=this.startNode();return e.local=this.parseIdent(),this.checkLValSimple(e.local,ne),this.finishNode(e,"ImportDefaultSpecifier")},fe.parseImportNamespaceSpecifier=function(){var e=this.startNode();return this.next(),this.expectContextual("as"),e.local=this.parseIdent(),this.checkLValSimple(e.local,ne),this.finishNode(e,"ImportNamespaceSpecifier")},fe.parseImportSpecifiers=function(){var e=[],t=!0;if(this.type===v.name&&(e.push(this.parseImportDefaultSpecifier()),!this.eat(v.comma)))return e;if(this.type===v.star)return e.push(this.parseImportNamespaceSpecifier()),e;for(this.expect(v.braceL);!this.eat(v.braceR);){if(t)t=!1;else if(this.expect(v.comma),this.afterTrailingComma(v.braceR))break;e.push(this.parseImportSpecifier())}return e},fe.parseWithClause=function(){var e=[];if(!this.eat(v._with))return e;this.expect(v.braceL);for(var t={},r=!0;!this.eat(v.braceR);){if(r)r=!1;else if(this.expect(v.comma),this.afterTrailingComma(v.braceR))break;var n=this.parseImportAttribute(),i="Identifier"===n.key.type?n.key.name:n.key.value;O(t,i)&&this.raiseRecoverable(n.key.start,"Duplicate attribute key '"+i+"'"),t[i]=!0,e.push(n)}return e},fe.parseImportAttribute=function(){var e=this.startNode();return e.key=this.type===v.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved),this.expect(v.colon),this.type!==v.string&&this.unexpected(),e.value=this.parseExprAtom(),this.finishNode(e,"ImportAttribute")},fe.parseModuleExportName=function(){if(this.options.ecmaVersion>=13&&this.type===v.string){var e=this.parseLiteral(this.value);return w.test(e.value)&&this.raise(e.start,"An export name cannot include a lone surrogate."),e}return this.parseIdent(!0)},fe.adaptDirectivePrologue=function(e){for(var t=0;t=5&&"ExpressionStatement"===e.type&&"Literal"===e.expression.type&&"string"==typeof e.expression.value&&('"'===this.input[e.start]||"'"===this.input[e.start])};var _e=se.prototype;_e.toAssignable=function(e,t,r){if(this.options.ecmaVersion>=6&&e)switch(e.type){case"Identifier":this.inAsync&&"await"===e.name&&this.raise(e.start,"Cannot use 'await' as identifier inside an async function");break;case"ObjectPattern":case"ArrayPattern":case"AssignmentPattern":case"RestElement":break;case"ObjectExpression":e.type="ObjectPattern",r&&this.checkPatternErrors(r,!0);for(var n=0,i=e.properties;n=8&&!s&&"async"===c.name&&!this.canInsertSemicolon()&&this.eat(v._function))return this.overrideContext(Ae.f_expr),this.parseFunction(this.startNodeAt(a,o),0,!1,!0,t);if(i&&!this.canInsertSemicolon()){if(this.eat(v.arrow))return this.parseArrowExpression(this.startNodeAt(a,o),[c],!1,t);if(this.options.ecmaVersion>=8&&"async"===c.name&&this.type===v.name&&!s&&(!this.potentialArrowInForAwait||"of"!==this.value||this.containsEsc))return c=this.parseIdent(!1),!this.canInsertSemicolon()&&this.eat(v.arrow)||this.unexpected(),this.parseArrowExpression(this.startNodeAt(a,o),[c],!0,t)}return c;case v.regexp:var u=this.value;return(n=this.parseLiteral(u.value)).regex={pattern:u.pattern,flags:u.flags},n;case v.num:case v.string:return this.parseLiteral(this.value);case v._null:case v._true:case v._false:return(n=this.startNode()).value=this.type===v._null?null:this.type===v._true,n.raw=this.type.keyword,this.next(),this.finishNode(n,"Literal");case v.parenL:var l=this.start,d=this.parseParenAndDistinguishExpression(i,t);return e&&(e.parenthesizedAssign<0&&!this.isSimpleAssignTarget(d)&&(e.parenthesizedAssign=l),e.parenthesizedBind<0&&(e.parenthesizedBind=l)),d;case v.bracketL:return n=this.startNode(),this.next(),n.elements=this.parseExprList(v.bracketR,!0,!0,e),this.finishNode(n,"ArrayExpression");case v.braceL:return this.overrideContext(Ae.b_expr),this.parseObj(!1,e);case v._function:return n=this.startNode(),this.next(),this.parseFunction(n,0);case v._class:return this.parseClass(this.startNode(),!1);case v._new:return this.parseNew();case v.backQuote:return this.parseTemplate();case v._import:return this.options.ecmaVersion>=11?this.parseExprImport(r):this.unexpected();default:return this.parseExprAtomDefault()}},xe.parseExprAtomDefault=function(){this.unexpected()},xe.parseExprImport=function(e){var t=this.startNode();if(this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword import"),this.next(),this.type===v.parenL&&!e)return this.parseDynamicImport(t);if(this.type===v.dot){var r=this.startNodeAt(t.start,t.loc&&t.loc.start);return r.name="import",t.meta=this.finishNode(r,"Identifier"),this.parseImportMeta(t)}this.unexpected()},xe.parseDynamicImport=function(e){if(this.next(),e.source=this.parseMaybeAssign(),this.options.ecmaVersion>=16)this.eat(v.parenR)?e.options=null:(this.expect(v.comma),this.afterTrailingComma(v.parenR)?e.options=null:(e.options=this.parseMaybeAssign(),this.eat(v.parenR)||(this.expect(v.comma),this.afterTrailingComma(v.parenR)||this.unexpected())));else if(!this.eat(v.parenR)){var t=this.start;this.eat(v.comma)&&this.eat(v.parenR)?this.raiseRecoverable(t,"Trailing comma is not allowed in import()"):this.unexpected(t)}return this.finishNode(e,"ImportExpression")},xe.parseImportMeta=function(e){this.next();var t=this.containsEsc;return e.property=this.parseIdent(!0),"meta"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for import is 'import.meta'"),t&&this.raiseRecoverable(e.start,"'import.meta' must not contain escaped characters"),"module"===this.options.sourceType||this.options.allowImportExportEverywhere||this.raiseRecoverable(e.start,"Cannot use 'import.meta' outside a module"),this.finishNode(e,"MetaProperty")},xe.parseLiteral=function(e){var t=this.startNode();return t.value=e,t.raw=this.input.slice(this.start,this.end),110===t.raw.charCodeAt(t.raw.length-1)&&(t.bigint=null!=t.value?t.value.toString():t.raw.slice(0,-1).replace(/_/g,"")),this.next(),this.finishNode(t,"Literal")},xe.parseParenExpression=function(){this.expect(v.parenL);var e=this.parseExpression();return this.expect(v.parenR),e},xe.shouldParseArrow=function(e){return!this.canInsertSemicolon()},xe.parseParenAndDistinguishExpression=function(e,t){var r,n=this.start,i=this.startLoc,a=this.options.ecmaVersion>=8;if(this.options.ecmaVersion>=6){this.next();var o,s=this.start,c=this.startLoc,u=[],l=!0,d=!1,f=new de,p=this.yieldPos,h=this.awaitPos;for(this.yieldPos=0,this.awaitPos=0;this.type!==v.parenR;){if(l?l=!1:this.expect(v.comma),a&&this.afterTrailingComma(v.parenR,!0)){d=!0;break}if(this.type===v.ellipsis){o=this.start,u.push(this.parseParenItem(this.parseRestBinding())),this.type===v.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element");break}u.push(this.parseMaybeAssign(!1,f,this.parseParenItem))}var m=this.lastTokEnd,g=this.lastTokEndLoc;if(this.expect(v.parenR),e&&this.shouldParseArrow(u)&&this.eat(v.arrow))return this.checkPatternErrors(f,!1),this.checkYieldAwaitInDefaultParams(),this.yieldPos=p,this.awaitPos=h,this.parseParenArrowList(n,i,u,t);u.length&&!d||this.unexpected(this.lastTokStart),o&&this.unexpected(o),this.checkExpressionErrors(f,!0),this.yieldPos=p||this.yieldPos,this.awaitPos=h||this.awaitPos,u.length>1?((r=this.startNodeAt(s,c)).expressions=u,this.finishNodeAt(r,"SequenceExpression",m,g)):r=u[0]}else r=this.parseParenExpression();if(this.options.preserveParens){var b=this.startNodeAt(n,i);return b.expression=r,this.finishNode(b,"ParenthesizedExpression")}return r},xe.parseParenItem=function(e){return e},xe.parseParenArrowList=function(e,t,r,n){return this.parseArrowExpression(this.startNodeAt(e,t),r,!1,n)};var Te=[];xe.parseNew=function(){this.containsEsc&&this.raiseRecoverable(this.start,"Escape sequence in keyword new");var e=this.startNode();if(this.next(),this.options.ecmaVersion>=6&&this.type===v.dot){var t=this.startNodeAt(e.start,e.loc&&e.loc.start);t.name="new",e.meta=this.finishNode(t,"Identifier"),this.next();var r=this.containsEsc;return e.property=this.parseIdent(!0),"target"!==e.property.name&&this.raiseRecoverable(e.property.start,"The only valid meta property for new is 'new.target'"),r&&this.raiseRecoverable(e.start,"'new.target' must not contain escaped characters"),this.allowNewDotTarget||this.raiseRecoverable(e.start,"'new.target' can only be used in functions and class static block"),this.finishNode(e,"MetaProperty")}var n=this.start,i=this.startLoc;return e.callee=this.parseSubscripts(this.parseExprAtom(null,!1,!0),n,i,!0,!1),this.eat(v.parenL)?e.arguments=this.parseExprList(v.parenR,this.options.ecmaVersion>=8,!1):e.arguments=Te,this.finishNode(e,"NewExpression")},xe.parseTemplateElement=function(e){var t=e.isTagged,r=this.startNode();return this.type===v.invalidTemplate?(t||this.raiseRecoverable(this.start,"Bad escape sequence in untagged template literal"),r.value={raw:this.value.replace(/\r\n?/g,"\n"),cooked:null}):r.value={raw:this.input.slice(this.start,this.end).replace(/\r\n?/g,"\n"),cooked:this.value},this.next(),r.tail=this.type===v.backQuote,this.finishNode(r,"TemplateElement")},xe.parseTemplate=function(e){void 0===e&&(e={});var t=e.isTagged;void 0===t&&(t=!1);var r=this.startNode();this.next(),r.expressions=[];var n=this.parseTemplateElement({isTagged:t});for(r.quasis=[n];!n.tail;)this.type===v.eof&&this.raise(this.pos,"Unterminated template literal"),this.expect(v.dollarBraceL),r.expressions.push(this.parseExpression()),this.expect(v.braceR),r.quasis.push(n=this.parseTemplateElement({isTagged:t}));return this.next(),this.finishNode(r,"TemplateLiteral")},xe.isAsyncProp=function(e){return!e.computed&&"Identifier"===e.key.type&&"async"===e.key.name&&(this.type===v.name||this.type===v.num||this.type===v.string||this.type===v.bracketL||this.type.keyword||this.options.ecmaVersion>=9&&this.type===v.star)&&!_.test(this.input.slice(this.lastTokEnd,this.start))},xe.parseObj=function(e,t){var r=this.startNode(),n=!0,i={};for(r.properties=[],this.next();!this.eat(v.braceR);){if(n)n=!1;else if(this.expect(v.comma),this.options.ecmaVersion>=5&&this.afterTrailingComma(v.braceR))break;var a=this.parseProperty(e,t);e||this.checkPropClash(a,i,t),r.properties.push(a)}return this.finishNode(r,e?"ObjectPattern":"ObjectExpression")},xe.parseProperty=function(e,t){var r,n,i,a,o=this.startNode();if(this.options.ecmaVersion>=9&&this.eat(v.ellipsis))return e?(o.argument=this.parseIdent(!1),this.type===v.comma&&this.raiseRecoverable(this.start,"Comma is not permitted after the rest element"),this.finishNode(o,"RestElement")):(o.argument=this.parseMaybeAssign(!1,t),this.type===v.comma&&t&&t.trailingComma<0&&(t.trailingComma=this.start),this.finishNode(o,"SpreadElement"));this.options.ecmaVersion>=6&&(o.method=!1,o.shorthand=!1,(e||t)&&(i=this.start,a=this.startLoc),e||(r=this.eat(v.star)));var s=this.containsEsc;return this.parsePropertyName(o),!e&&!s&&this.options.ecmaVersion>=8&&!r&&this.isAsyncProp(o)?(n=!0,r=this.options.ecmaVersion>=9&&this.eat(v.star),this.parsePropertyName(o)):n=!1,this.parsePropertyValue(o,e,r,n,i,a,t,s),this.finishNode(o,"Property")},xe.parseGetterSetter=function(e){var t=e.key.name;this.parsePropertyName(e),e.value=this.parseMethod(!1),e.kind=t;var r="get"===e.kind?0:1;if(e.value.params.length!==r){var n=e.value.start;"get"===e.kind?this.raiseRecoverable(n,"getter should have no params"):this.raiseRecoverable(n,"setter should have exactly one param")}else"set"===e.kind&&"RestElement"===e.value.params[0].type&&this.raiseRecoverable(e.value.params[0].start,"Setter cannot use rest params")},xe.parsePropertyValue=function(e,t,r,n,i,a,o,s){(r||n)&&this.type===v.colon&&this.unexpected(),this.eat(v.colon)?(e.value=t?this.parseMaybeDefault(this.start,this.startLoc):this.parseMaybeAssign(!1,o),e.kind="init"):this.options.ecmaVersion>=6&&this.type===v.parenL?(t&&this.unexpected(),e.method=!0,e.value=this.parseMethod(r,n),e.kind="init"):t||s||!(this.options.ecmaVersion>=5)||e.computed||"Identifier"!==e.key.type||"get"!==e.key.name&&"set"!==e.key.name||this.type===v.comma||this.type===v.braceR||this.type===v.eq?this.options.ecmaVersion>=6&&!e.computed&&"Identifier"===e.key.type?((r||n)&&this.unexpected(),this.checkUnreserved(e.key),"await"!==e.key.name||this.awaitIdentPos||(this.awaitIdentPos=i),t?e.value=this.parseMaybeDefault(i,a,this.copyNode(e.key)):this.type===v.eq&&o?(o.shorthandAssign<0&&(o.shorthandAssign=this.start),e.value=this.parseMaybeDefault(i,a,this.copyNode(e.key))):e.value=this.copyNode(e.key),e.kind="init",e.shorthand=!0):this.unexpected():((r||n)&&this.unexpected(),this.parseGetterSetter(e))},xe.parsePropertyName=function(e){if(this.options.ecmaVersion>=6){if(this.eat(v.bracketL))return e.computed=!0,e.key=this.parseMaybeAssign(),this.expect(v.bracketR),e.key;e.computed=!1}return e.key=this.type===v.num||this.type===v.string?this.parseExprAtom():this.parseIdent("never"!==this.options.allowReserved)},xe.initFunction=function(e){e.id=null,this.options.ecmaVersion>=6&&(e.generator=e.expression=!1),this.options.ecmaVersion>=8&&(e.async=!1)},xe.parseMethod=function(e,t,r){var n=this.startNode(),i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.initFunction(n),this.options.ecmaVersion>=6&&(n.generator=e),this.options.ecmaVersion>=8&&(n.async=!!t),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,this.enterScope(ee(t,n.generator)|Y|(r?Z:0)),this.expect(v.parenL),n.params=this.parseBindingList(v.parenR,!1,this.options.ecmaVersion>=8),this.checkYieldAwaitInDefaultParams(),this.parseFunctionBody(n,!1,!0,!1),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(n,"FunctionExpression")},xe.parseArrowExpression=function(e,t,r,n){var i=this.yieldPos,a=this.awaitPos,o=this.awaitIdentPos;return this.enterScope(ee(r,!1)|z),this.initFunction(e),this.options.ecmaVersion>=8&&(e.async=!!r),this.yieldPos=0,this.awaitPos=0,this.awaitIdentPos=0,e.params=this.toAssignableList(t,!0),this.parseFunctionBody(e,!0,!1,n),this.yieldPos=i,this.awaitPos=a,this.awaitIdentPos=o,this.finishNode(e,"ArrowFunctionExpression")},xe.parseFunctionBody=function(e,t,r,n){var i=t&&this.type!==v.braceL,a=this.strict,o=!1;if(i)e.body=this.parseMaybeAssign(n),e.expression=!0,this.checkParams(e,!1);else{var s=this.options.ecmaVersion>=7&&!this.isSimpleParamList(e.params);a&&!s||(o=this.strictDirective(this.end))&&s&&this.raiseRecoverable(e.start,"Illegal 'use strict' directive in function with non-simple parameter list");var c=this.labels;this.labels=[],o&&(this.strict=!0),this.checkParams(e,!a&&!o&&!t&&!r&&this.isSimpleParamList(e.params)),this.strict&&e.id&&this.checkLValSimple(e.id,oe),e.body=this.parseBlock(!1,void 0,o&&!a),e.expression=!1,this.adaptDirectivePrologue(e.body.body),this.labels=c}this.exitScope()},xe.isSimpleParamList=function(e){for(var t=0,r=e;t-1||i.functions.indexOf(e)>-1||i.var.indexOf(e)>-1,i.lexical.push(e),this.inModule&&i.flags&U&&delete this.undefinedExports[e]}else if(t===ae)this.currentScope().lexical.push(e);else if(t===ie){var a=this.currentScope();n=this.treatFunctionsAsVar?a.lexical.indexOf(e)>-1:a.lexical.indexOf(e)>-1||a.var.indexOf(e)>-1,a.functions.push(e)}else for(var o=this.scopeStack.length-1;o>=0;--o){var s=this.scopeStack[o];if(s.lexical.indexOf(e)>-1&&!(s.flags&X&&s.lexical[0]===e)||!this.treatFunctionsAsVarInScope(s)&&s.functions.indexOf(e)>-1){n=!0;break}if(s.var.push(e),this.inModule&&s.flags&U&&delete this.undefinedExports[e],s.flags&Q)break}n&&this.raiseRecoverable(r,"Identifier '"+e+"' has already been declared")},Oe.checkLocalExport=function(e){-1===this.scopeStack[0].lexical.indexOf(e.name)&&-1===this.scopeStack[0].var.indexOf(e.name)&&(this.undefinedExports[e.name]=e)},Oe.currentScope=function(){return this.scopeStack[this.scopeStack.length-1]},Oe.currentVarScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(Q|J|q))return t}},Oe.currentThisScope=function(){for(var e=this.scopeStack.length-1;;e--){var t=this.scopeStack[e];if(t.flags&(Q|J|q)&&!(t.flags&z))return t}};var Re=function(e,t,r){this.type="",this.start=t,this.end=0,e.options.locations&&(this.loc=new k(e,r)),e.options.directSourceFile&&(this.sourceFile=e.options.directSourceFile),e.options.ranges&&(this.range=[t,0])},Fe=se.prototype;function Pe(e,t,r,n){return e.type=t,e.end=r,this.options.locations&&(e.loc.end=n),this.options.ranges&&(e.range[1]=r),e}Fe.startNode=function(){return new Re(this,this.start,this.startLoc)},Fe.startNodeAt=function(e,t){return new Re(this,e,t)},Fe.finishNode=function(e,t){return Pe.call(this,e,t,this.lastTokEnd,this.lastTokEndLoc)},Fe.finishNodeAt=function(e,t,r,n){return Pe.call(this,e,t,r,n)},Fe.copyNode=function(e){var t=new Re(this,e.start,this.startLoc);for(var r in e)t[r]=e[r];return t};var we="ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Assigned Bidi_Control Bidi_C Bidi_Mirrored Bidi_M Case_Ignorable CI Cased Changes_When_Casefolded CWCF Changes_When_Casemapped CWCM Changes_When_Lowercased CWL Changes_When_NFKC_Casefolded CWKCF Changes_When_Titlecased CWT Changes_When_Uppercased CWU Dash Default_Ignorable_Code_Point DI Deprecated Dep Diacritic Dia Emoji Emoji_Component Emoji_Modifier Emoji_Modifier_Base Emoji_Presentation Extender Ext Grapheme_Base Gr_Base Grapheme_Extend Gr_Ext Hex_Digit Hex IDS_Binary_Operator IDSB IDS_Trinary_Operator IDST ID_Continue IDC ID_Start IDS Ideographic Ideo Join_Control Join_C Logical_Order_Exception LOE Lowercase Lower Math Noncharacter_Code_Point NChar Pattern_Syntax Pat_Syn Pattern_White_Space Pat_WS Quotation_Mark QMark Radical Regional_Indicator RI Sentence_Terminal STerm Soft_Dotted SD Terminal_Punctuation Term Unified_Ideograph UIdeo Uppercase Upper Variation_Selector VS White_Space space XID_Continue XIDC XID_Start XIDS",Be=we+" Extended_Pictographic",ke=Be+" EBase EComp EMod EPres ExtPict",Le={9:we,10:Be,11:Be,12:ke,13:ke,14:ke},$e={9:"",10:"",11:"",12:"",13:"",14:"Basic_Emoji Emoji_Keycap_Sequence RGI_Emoji_Modifier_Sequence RGI_Emoji_Flag_Sequence RGI_Emoji_Tag_Sequence RGI_Emoji_ZWJ_Sequence RGI_Emoji"},je="Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu",Ge="Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb",Ve=Ge+" Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd",Ue=Ve+" Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho",He=Ue+" Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi",Ke=He+" Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith",We={9:Ge,10:Ve,11:Ue,12:He,13:Ke,14:Ke+" Gara Garay Gukh Gurung_Khema Hrkt Katakana_Or_Hiragana Kawi Kirat_Rai Krai Nag_Mundari Nagm Ol_Onal Onao Sunu Sunuwar Todhri Todr Tulu_Tigalari Tutg Unknown Zzzz"},ze={};function Xe(e){var t=ze[e]={binary:F(Le[e]+" "+je),binaryOfStrings:F($e[e]),nonBinary:{General_Category:F(je),Script:F(We[e])}};t.nonBinary.Script_Extensions=t.nonBinary.Script,t.nonBinary.gc=t.nonBinary.General_Category,t.nonBinary.sc=t.nonBinary.Script,t.nonBinary.scx=t.nonBinary.Script_Extensions}for(var Ye=0,Ze=[9,10,11,12,13,14];Ye=6?"uy":"")+(e.options.ecmaVersion>=9?"s":"")+(e.options.ecmaVersion>=13?"d":"")+(e.options.ecmaVersion>=15?"v":""),this.unicodeProperties=ze[e.options.ecmaVersion>=14?14:e.options.ecmaVersion],this.source="",this.flags="",this.start=0,this.switchU=!1,this.switchV=!1,this.switchN=!1,this.pos=0,this.lastIntValue=0,this.lastStringValue="",this.lastAssertionIsQuantifiable=!1,this.numCapturingParens=0,this.maxBackReference=0,this.groupNames=Object.create(null),this.backReferenceNames=[],this.branchID=null};function et(e){for(var t in e)return!0;return!1}function tt(e){return 105===e||109===e||115===e}function rt(e){return 36===e||e>=40&&e<=43||46===e||63===e||e>=91&&e<=94||e>=123&&e<=125}function nt(e){return f(e,!0)||36===e||95===e}function it(e){return p(e,!0)||36===e||95===e||8204===e||8205===e}function at(e){return e>=65&&e<=90||e>=97&&e<=122}function ot(e){return e>=0&&e<=1114111}Qe.prototype.reset=function(e,t,r){var n=-1!==r.indexOf("v"),i=-1!==r.indexOf("u");this.start=0|e,this.source=t+"",this.flags=r,n&&this.parser.options.ecmaVersion>=15?(this.switchU=!0,this.switchV=!0,this.switchN=!0):(this.switchU=i&&this.parser.options.ecmaVersion>=6,this.switchV=!1,this.switchN=i&&this.parser.options.ecmaVersion>=9)},Qe.prototype.raise=function(e){this.parser.raiseRecoverable(this.start,"Invalid regular expression: /"+this.source+"/: "+e)},Qe.prototype.at=function(e,t){void 0===t&&(t=!1);var r=this.source,n=r.length;if(e>=n)return-1;var i=r.charCodeAt(e);if(!t&&!this.switchU||i<=55295||i>=57344||e+1>=n)return i;var a=r.charCodeAt(e+1);return a>=56320&&a<=57343?(i<<10)+a-56613888:i},Qe.prototype.nextIndex=function(e,t){void 0===t&&(t=!1);var r=this.source,n=r.length;if(e>=n)return n;var i,a=r.charCodeAt(e);return!t&&!this.switchU||a<=55295||a>=57344||e+1>=n||(i=r.charCodeAt(e+1))<56320||i>57343?e+1:e+2},Qe.prototype.current=function(e){return void 0===e&&(e=!1),this.at(this.pos,e)},Qe.prototype.lookahead=function(e){return void 0===e&&(e=!1),this.at(this.nextIndex(this.pos,e),e)},Qe.prototype.advance=function(e){void 0===e&&(e=!1),this.pos=this.nextIndex(this.pos,e)},Qe.prototype.eat=function(e,t){return void 0===t&&(t=!1),this.current(t)===e&&(this.advance(t),!0)},Qe.prototype.eatChars=function(e,t){void 0===t&&(t=!1);for(var r=this.pos,n=0,i=e;n-1&&this.raise(e.start,"Duplicate regular expression flag"),"u"===o&&(n=!0),"v"===o&&(i=!0)}this.options.ecmaVersion>=15&&n&&i&&this.raise(e.start,"Invalid regular expression flag")},qe.validateRegExpPattern=function(e){this.regexp_pattern(e),!e.switchN&&this.options.ecmaVersion>=9&&et(e.groupNames)&&(e.switchN=!0,this.regexp_pattern(e))},qe.regexp_pattern=function(e){e.pos=0,e.lastIntValue=0,e.lastStringValue="",e.lastAssertionIsQuantifiable=!1,e.numCapturingParens=0,e.maxBackReference=0,e.groupNames=Object.create(null),e.backReferenceNames.length=0,e.branchID=null,this.regexp_disjunction(e),e.pos!==e.source.length&&(e.eat(41)&&e.raise("Unmatched ')'"),(e.eat(93)||e.eat(125))&&e.raise("Lone quantifier brackets")),e.maxBackReference>e.numCapturingParens&&e.raise("Invalid escape");for(var t=0,r=e.backReferenceNames;t=16;for(t&&(e.branchID=new Je(e.branchID,null)),this.regexp_alternative(e);e.eat(124);)t&&(e.branchID=e.branchID.sibling()),this.regexp_alternative(e);t&&(e.branchID=e.branchID.parent),this.regexp_eatQuantifier(e,!0)&&e.raise("Nothing to repeat"),e.eat(123)&&e.raise("Lone quantifier brackets")},qe.regexp_alternative=function(e){for(;e.pos=9&&(r=e.eat(60)),e.eat(61)||e.eat(33))return this.regexp_disjunction(e),e.eat(41)||e.raise("Unterminated group"),e.lastAssertionIsQuantifiable=!r,!0}return e.pos=t,!1},qe.regexp_eatQuantifier=function(e,t){return void 0===t&&(t=!1),!!this.regexp_eatQuantifierPrefix(e,t)&&(e.eat(63),!0)},qe.regexp_eatQuantifierPrefix=function(e,t){return e.eat(42)||e.eat(43)||e.eat(63)||this.regexp_eatBracedQuantifier(e,t)},qe.regexp_eatBracedQuantifier=function(e,t){var r=e.pos;if(e.eat(123)){var n=0,i=-1;if(this.regexp_eatDecimalDigits(e)&&(n=e.lastIntValue,e.eat(44)&&this.regexp_eatDecimalDigits(e)&&(i=e.lastIntValue),e.eat(125)))return-1!==i&&i=16){var r=this.regexp_eatModifiers(e),n=e.eat(45);if(r||n){for(var i=0;i-1&&e.raise("Duplicate regular expression modifiers")}if(n){var o=this.regexp_eatModifiers(e);r||o||58!==e.current()||e.raise("Invalid regular expression modifiers");for(var s=0;s-1||r.indexOf(c)>-1)&&e.raise("Duplicate regular expression modifiers")}}}}if(e.eat(58)){if(this.regexp_disjunction(e),e.eat(41))return!0;e.raise("Unterminated group")}}e.pos=t}return!1},qe.regexp_eatCapturingGroup=function(e){if(e.eat(40)){if(this.options.ecmaVersion>=9?this.regexp_groupSpecifier(e):63===e.current()&&e.raise("Invalid group"),this.regexp_disjunction(e),e.eat(41))return e.numCapturingParens+=1,!0;e.raise("Unterminated group")}return!1},qe.regexp_eatModifiers=function(e){for(var t="",r=0;-1!==(r=e.current())&&tt(r);)t+=P(r),e.advance();return t},qe.regexp_eatExtendedAtom=function(e){return e.eat(46)||this.regexp_eatReverseSolidusAtomEscape(e)||this.regexp_eatCharacterClass(e)||this.regexp_eatUncapturingGroup(e)||this.regexp_eatCapturingGroup(e)||this.regexp_eatInvalidBracedQuantifier(e)||this.regexp_eatExtendedPatternCharacter(e)},qe.regexp_eatInvalidBracedQuantifier=function(e){return this.regexp_eatBracedQuantifier(e,!0)&&e.raise("Nothing to repeat"),!1},qe.regexp_eatSyntaxCharacter=function(e){var t=e.current();return!!rt(t)&&(e.lastIntValue=t,e.advance(),!0)},qe.regexp_eatPatternCharacters=function(e){for(var t=e.pos,r=0;-1!==(r=e.current())&&!rt(r);)e.advance();return e.pos!==t},qe.regexp_eatExtendedPatternCharacter=function(e){var t=e.current();return!(-1===t||36===t||t>=40&&t<=43||46===t||63===t||91===t||94===t||124===t||(e.advance(),0))},qe.regexp_groupSpecifier=function(e){if(e.eat(63)){this.regexp_eatGroupName(e)||e.raise("Invalid group");var t=this.options.ecmaVersion>=16,r=e.groupNames[e.lastStringValue];if(r)if(t)for(var n=0,i=r;n=11,n=e.current(r);return e.advance(r),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(n=e.lastIntValue),nt(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},qe.regexp_eatRegExpIdentifierPart=function(e){var t=e.pos,r=this.options.ecmaVersion>=11,n=e.current(r);return e.advance(r),92===n&&this.regexp_eatRegExpUnicodeEscapeSequence(e,r)&&(n=e.lastIntValue),it(n)?(e.lastIntValue=n,!0):(e.pos=t,!1)},qe.regexp_eatAtomEscape=function(e){return!!(this.regexp_eatBackReference(e)||this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)||e.switchN&&this.regexp_eatKGroupName(e))||(e.switchU&&(99===e.current()&&e.raise("Invalid unicode escape"),e.raise("Invalid escape")),!1)},qe.regexp_eatBackReference=function(e){var t=e.pos;if(this.regexp_eatDecimalEscape(e)){var r=e.lastIntValue;if(e.switchU)return r>e.maxBackReference&&(e.maxBackReference=r),!0;if(r<=e.numCapturingParens)return!0;e.pos=t}return!1},qe.regexp_eatKGroupName=function(e){if(e.eat(107)){if(this.regexp_eatGroupName(e))return e.backReferenceNames.push(e.lastStringValue),!0;e.raise("Invalid named reference")}return!1},qe.regexp_eatCharacterEscape=function(e){return this.regexp_eatControlEscape(e)||this.regexp_eatCControlLetter(e)||this.regexp_eatZero(e)||this.regexp_eatHexEscapeSequence(e)||this.regexp_eatRegExpUnicodeEscapeSequence(e,!1)||!e.switchU&&this.regexp_eatLegacyOctalEscapeSequence(e)||this.regexp_eatIdentityEscape(e)},qe.regexp_eatCControlLetter=function(e){var t=e.pos;if(e.eat(99)){if(this.regexp_eatControlLetter(e))return!0;e.pos=t}return!1},qe.regexp_eatZero=function(e){return 48===e.current()&&!gt(e.lookahead())&&(e.lastIntValue=0,e.advance(),!0)},qe.regexp_eatControlEscape=function(e){var t=e.current();return 116===t?(e.lastIntValue=9,e.advance(),!0):110===t?(e.lastIntValue=10,e.advance(),!0):118===t?(e.lastIntValue=11,e.advance(),!0):102===t?(e.lastIntValue=12,e.advance(),!0):114===t&&(e.lastIntValue=13,e.advance(),!0)},qe.regexp_eatControlLetter=function(e){var t=e.current();return!!at(t)&&(e.lastIntValue=t%32,e.advance(),!0)},qe.regexp_eatRegExpUnicodeEscapeSequence=function(e,t){void 0===t&&(t=!1);var r=e.pos,n=t||e.switchU;if(e.eat(117)){if(this.regexp_eatFixedHexDigits(e,4)){var i=e.lastIntValue;if(n&&i>=55296&&i<=56319){var a=e.pos;if(e.eat(92)&&e.eat(117)&&this.regexp_eatFixedHexDigits(e,4)){var o=e.lastIntValue;if(o>=56320&&o<=57343)return e.lastIntValue=1024*(i-55296)+(o-56320)+65536,!0}e.pos=a,e.lastIntValue=i}return!0}if(n&&e.eat(123)&&this.regexp_eatHexDigits(e)&&e.eat(125)&&ot(e.lastIntValue))return!0;n&&e.raise("Invalid unicode escape"),e.pos=r}return!1},qe.regexp_eatIdentityEscape=function(e){if(e.switchU)return!!this.regexp_eatSyntaxCharacter(e)||!!e.eat(47)&&(e.lastIntValue=47,!0);var t=e.current();return!(99===t||e.switchN&&107===t||(e.lastIntValue=t,e.advance(),0))},qe.regexp_eatDecimalEscape=function(e){e.lastIntValue=0;var t=e.current();if(t>=49&&t<=57){do{e.lastIntValue=10*e.lastIntValue+(t-48),e.advance()}while((t=e.current())>=48&&t<=57);return!0}return!1};var st=0,ct=1,ut=2;function lt(e){return 100===e||68===e||115===e||83===e||119===e||87===e}function dt(e){return at(e)||95===e}function ft(e){return dt(e)||gt(e)}function pt(e){return 33===e||e>=35&&e<=38||e>=42&&e<=44||46===e||e>=58&&e<=64||94===e||96===e||126===e}function ht(e){return 40===e||41===e||45===e||47===e||e>=91&&e<=93||e>=123&&e<=125}function mt(e){return 33===e||35===e||37===e||38===e||44===e||45===e||e>=58&&e<=62||64===e||96===e||126===e}function gt(e){return e>=48&&e<=57}function bt(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function yt(e){return e>=65&&e<=70?e-65+10:e>=97&&e<=102?e-97+10:e-48}function St(e){return e>=48&&e<=55}qe.regexp_eatCharacterClassEscape=function(e){var t=e.current();if(lt(t))return e.lastIntValue=-1,e.advance(),ct;var r=!1;if(e.switchU&&this.options.ecmaVersion>=9&&((r=80===t)||112===t)){var n;if(e.lastIntValue=-1,e.advance(),e.eat(123)&&(n=this.regexp_eatUnicodePropertyValueExpression(e))&&e.eat(125))return r&&n===ut&&e.raise("Invalid property name"),n;e.raise("Invalid property name")}return st},qe.regexp_eatUnicodePropertyValueExpression=function(e){var t=e.pos;if(this.regexp_eatUnicodePropertyName(e)&&e.eat(61)){var r=e.lastStringValue;if(this.regexp_eatUnicodePropertyValue(e)){var n=e.lastStringValue;return this.regexp_validateUnicodePropertyNameAndValue(e,r,n),ct}}if(e.pos=t,this.regexp_eatLoneUnicodePropertyNameOrValue(e)){var i=e.lastStringValue;return this.regexp_validateUnicodePropertyNameOrValue(e,i)}return st},qe.regexp_validateUnicodePropertyNameAndValue=function(e,t,r){O(e.unicodeProperties.nonBinary,t)||e.raise("Invalid property name"),e.unicodeProperties.nonBinary[t].test(r)||e.raise("Invalid property value")},qe.regexp_validateUnicodePropertyNameOrValue=function(e,t){return e.unicodeProperties.binary.test(t)?ct:e.switchV&&e.unicodeProperties.binaryOfStrings.test(t)?ut:void e.raise("Invalid property name")},qe.regexp_eatUnicodePropertyName=function(e){var t=0;for(e.lastStringValue="";dt(t=e.current());)e.lastStringValue+=P(t),e.advance();return""!==e.lastStringValue},qe.regexp_eatUnicodePropertyValue=function(e){var t=0;for(e.lastStringValue="";ft(t=e.current());)e.lastStringValue+=P(t),e.advance();return""!==e.lastStringValue},qe.regexp_eatLoneUnicodePropertyNameOrValue=function(e){return this.regexp_eatUnicodePropertyValue(e)},qe.regexp_eatCharacterClass=function(e){if(e.eat(91)){var t=e.eat(94),r=this.regexp_classContents(e);return e.eat(93)||e.raise("Unterminated character class"),t&&r===ut&&e.raise("Negated character class may contain strings"),!0}return!1},qe.regexp_classContents=function(e){return 93===e.current()?ct:e.switchV?this.regexp_classSetExpression(e):(this.regexp_nonEmptyClassRanges(e),ct)},qe.regexp_nonEmptyClassRanges=function(e){for(;this.regexp_eatClassAtom(e);){var t=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassAtom(e)){var r=e.lastIntValue;!e.switchU||-1!==t&&-1!==r||e.raise("Invalid character class"),-1!==t&&-1!==r&&t>r&&e.raise("Range out of order in character class")}}},qe.regexp_eatClassAtom=function(e){var t=e.pos;if(e.eat(92)){if(this.regexp_eatClassEscape(e))return!0;if(e.switchU){var r=e.current();(99===r||St(r))&&e.raise("Invalid class escape"),e.raise("Invalid escape")}e.pos=t}var n=e.current();return 93!==n&&(e.lastIntValue=n,e.advance(),!0)},qe.regexp_eatClassEscape=function(e){var t=e.pos;if(e.eat(98))return e.lastIntValue=8,!0;if(e.switchU&&e.eat(45))return e.lastIntValue=45,!0;if(!e.switchU&&e.eat(99)){if(this.regexp_eatClassControlLetter(e))return!0;e.pos=t}return this.regexp_eatCharacterClassEscape(e)||this.regexp_eatCharacterEscape(e)},qe.regexp_classSetExpression=function(e){var t,r=ct;if(this.regexp_eatClassSetRange(e));else if(t=this.regexp_eatClassSetOperand(e)){t===ut&&(r=ut);for(var n=e.pos;e.eatChars([38,38]);)38!==e.current()&&(t=this.regexp_eatClassSetOperand(e))?t!==ut&&(r=ct):e.raise("Invalid character in character class");if(n!==e.pos)return r;for(;e.eatChars([45,45]);)this.regexp_eatClassSetOperand(e)||e.raise("Invalid character in character class");if(n!==e.pos)return r}else e.raise("Invalid character in character class");for(;;)if(!this.regexp_eatClassSetRange(e)){if(!(t=this.regexp_eatClassSetOperand(e)))return r;t===ut&&(r=ut)}},qe.regexp_eatClassSetRange=function(e){var t=e.pos;if(this.regexp_eatClassSetCharacter(e)){var r=e.lastIntValue;if(e.eat(45)&&this.regexp_eatClassSetCharacter(e)){var n=e.lastIntValue;return-1!==r&&-1!==n&&r>n&&e.raise("Range out of order in character class"),!0}e.pos=t}return!1},qe.regexp_eatClassSetOperand=function(e){return this.regexp_eatClassSetCharacter(e)?ct:this.regexp_eatClassStringDisjunction(e)||this.regexp_eatNestedClass(e)},qe.regexp_eatNestedClass=function(e){var t=e.pos;if(e.eat(91)){var r=e.eat(94),n=this.regexp_classContents(e);if(e.eat(93))return r&&n===ut&&e.raise("Negated character class may contain strings"),n;e.pos=t}if(e.eat(92)){var i=this.regexp_eatCharacterClassEscape(e);if(i)return i;e.pos=t}return null},qe.regexp_eatClassStringDisjunction=function(e){var t=e.pos;if(e.eatChars([92,113])){if(e.eat(123)){var r=this.regexp_classStringDisjunctionContents(e);if(e.eat(125))return r}else e.raise("Invalid escape");e.pos=t}return null},qe.regexp_classStringDisjunctionContents=function(e){for(var t=this.regexp_classString(e);e.eat(124);)this.regexp_classString(e)===ut&&(t=ut);return t},qe.regexp_classString=function(e){for(var t=0;this.regexp_eatClassSetCharacter(e);)t++;return 1===t?ct:ut},qe.regexp_eatClassSetCharacter=function(e){var t=e.pos;if(e.eat(92))return!(!this.regexp_eatCharacterEscape(e)&&!this.regexp_eatClassSetReservedPunctuator(e)&&(e.eat(98)?(e.lastIntValue=8,0):(e.pos=t,1)));var r=e.current();return!(r<0||r===e.lookahead()&&pt(r)||ht(r)||(e.advance(),e.lastIntValue=r,0))},qe.regexp_eatClassSetReservedPunctuator=function(e){var t=e.current();return!!mt(t)&&(e.lastIntValue=t,e.advance(),!0)},qe.regexp_eatClassControlLetter=function(e){var t=e.current();return!(!gt(t)&&95!==t||(e.lastIntValue=t%32,e.advance(),0))},qe.regexp_eatHexEscapeSequence=function(e){var t=e.pos;if(e.eat(120)){if(this.regexp_eatFixedHexDigits(e,2))return!0;e.switchU&&e.raise("Invalid escape"),e.pos=t}return!1},qe.regexp_eatDecimalDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;gt(r=e.current());)e.lastIntValue=10*e.lastIntValue+(r-48),e.advance();return e.pos!==t},qe.regexp_eatHexDigits=function(e){var t=e.pos,r=0;for(e.lastIntValue=0;bt(r=e.current());)e.lastIntValue=16*e.lastIntValue+yt(r),e.advance();return e.pos!==t},qe.regexp_eatLegacyOctalEscapeSequence=function(e){if(this.regexp_eatOctalDigit(e)){var t=e.lastIntValue;if(this.regexp_eatOctalDigit(e)){var r=e.lastIntValue;t<=3&&this.regexp_eatOctalDigit(e)?e.lastIntValue=64*t+8*r+e.lastIntValue:e.lastIntValue=8*t+r}else e.lastIntValue=t;return!0}return!1},qe.regexp_eatOctalDigit=function(e){var t=e.current();return St(t)?(e.lastIntValue=t-48,e.advance(),!0):(e.lastIntValue=0,!1)},qe.regexp_eatFixedHexDigits=function(e,t){var r=e.pos;e.lastIntValue=0;for(var n=0;n=this.input.length?this.finishToken(v.eof):e.override?e.override(this):void this.readToken(this.fullCharCodeAtPos())},_t.readToken=function(e){return f(e,this.options.ecmaVersion>=6)||92===e?this.readWord():this.getTokenFromCode(e)},_t.fullCharCodeAtPos=function(){var e=this.input.charCodeAt(this.pos);if(e<=55295||e>=56320)return e;var t=this.input.charCodeAt(this.pos+1);return t<=56319||t>=57344?e:(e<<10)+t-56613888},_t.skipBlockComment=function(){var e=this.options.onComment&&this.curPosition(),t=this.pos,r=this.input.indexOf("*/",this.pos+=2);if(-1===r&&this.raise(this.pos-2,"Unterminated comment"),this.pos=r+2,this.options.locations)for(var n=void 0,i=t;(n=E(this.input,i,this.pos))>-1;)++this.curLine,i=this.lineStart=n;this.options.onComment&&this.options.onComment(!0,this.input.slice(t+2,r),t,this.pos,e,this.curPosition())},_t.skipLineComment=function(e){for(var t=this.pos,r=this.options.onComment&&this.curPosition(),n=this.input.charCodeAt(this.pos+=e);this.pos8&&e<14||e>=5760&&x.test(String.fromCharCode(e))))break e;++this.pos}}},_t.finishToken=function(e,t){this.end=this.pos,this.options.locations&&(this.endLoc=this.curPosition());var r=this.type;this.type=e,this.value=t,this.updateContext(r)},_t.readToken_dot=function(){var e=this.input.charCodeAt(this.pos+1);if(e>=48&&e<=57)return this.readNumber(!0);var t=this.input.charCodeAt(this.pos+2);return this.options.ecmaVersion>=6&&46===e&&46===t?(this.pos+=3,this.finishToken(v.ellipsis)):(++this.pos,this.finishToken(v.dot))},_t.readToken_slash=function(){var e=this.input.charCodeAt(this.pos+1);return this.exprAllowed?(++this.pos,this.readRegexp()):61===e?this.finishOp(v.assign,2):this.finishOp(v.slash,1)},_t.readToken_mult_modulo_exp=function(e){var t=this.input.charCodeAt(this.pos+1),r=1,n=42===e?v.star:v.modulo;return this.options.ecmaVersion>=7&&42===e&&42===t&&(++r,n=v.starstar,t=this.input.charCodeAt(this.pos+2)),61===t?this.finishOp(v.assign,r+1):this.finishOp(n,r)},_t.readToken_pipe_amp=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?this.options.ecmaVersion>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(v.assign,3):this.finishOp(124===e?v.logicalOR:v.logicalAND,2):61===t?this.finishOp(v.assign,2):this.finishOp(124===e?v.bitwiseOR:v.bitwiseAND,1)},_t.readToken_caret=function(){return 61===this.input.charCodeAt(this.pos+1)?this.finishOp(v.assign,2):this.finishOp(v.bitwiseXOR,1)},_t.readToken_plus_min=function(e){var t=this.input.charCodeAt(this.pos+1);return t===e?45!==t||this.inModule||62!==this.input.charCodeAt(this.pos+2)||0!==this.lastTokEnd&&!_.test(this.input.slice(this.lastTokEnd,this.pos))?this.finishOp(v.incDec,2):(this.skipLineComment(3),this.skipSpace(),this.nextToken()):61===t?this.finishOp(v.assign,2):this.finishOp(v.plusMin,1)},_t.readToken_lt_gt=function(e){var t=this.input.charCodeAt(this.pos+1),r=1;return t===e?(r=62===e&&62===this.input.charCodeAt(this.pos+2)?3:2,61===this.input.charCodeAt(this.pos+r)?this.finishOp(v.assign,r+1):this.finishOp(v.bitShift,r)):33!==t||60!==e||this.inModule||45!==this.input.charCodeAt(this.pos+2)||45!==this.input.charCodeAt(this.pos+3)?(61===t&&(r=2),this.finishOp(v.relational,r)):(this.skipLineComment(4),this.skipSpace(),this.nextToken())},_t.readToken_eq_excl=function(e){var t=this.input.charCodeAt(this.pos+1);return 61===t?this.finishOp(v.equality,61===this.input.charCodeAt(this.pos+2)?3:2):61===e&&62===t&&this.options.ecmaVersion>=6?(this.pos+=2,this.finishToken(v.arrow)):this.finishOp(61===e?v.eq:v.prefix,1)},_t.readToken_question=function(){var e=this.options.ecmaVersion;if(e>=11){var t=this.input.charCodeAt(this.pos+1);if(46===t){var r=this.input.charCodeAt(this.pos+2);if(r<48||r>57)return this.finishOp(v.questionDot,2)}if(63===t)return e>=12&&61===this.input.charCodeAt(this.pos+2)?this.finishOp(v.assign,3):this.finishOp(v.coalesce,2)}return this.finishOp(v.question,1)},_t.readToken_numberSign=function(){var e=35;if(this.options.ecmaVersion>=13&&(++this.pos,f(e=this.fullCharCodeAtPos(),!0)||92===e))return this.finishToken(v.privateId,this.readWord1());this.raise(this.pos,"Unexpected character '"+P(e)+"'")},_t.getTokenFromCode=function(e){switch(e){case 46:return this.readToken_dot();case 40:return++this.pos,this.finishToken(v.parenL);case 41:return++this.pos,this.finishToken(v.parenR);case 59:return++this.pos,this.finishToken(v.semi);case 44:return++this.pos,this.finishToken(v.comma);case 91:return++this.pos,this.finishToken(v.bracketL);case 93:return++this.pos,this.finishToken(v.bracketR);case 123:return++this.pos,this.finishToken(v.braceL);case 125:return++this.pos,this.finishToken(v.braceR);case 58:return++this.pos,this.finishToken(v.colon);case 96:if(this.options.ecmaVersion<6)break;return++this.pos,this.finishToken(v.backQuote);case 48:var t=this.input.charCodeAt(this.pos+1);if(120===t||88===t)return this.readRadixNumber(16);if(this.options.ecmaVersion>=6){if(111===t||79===t)return this.readRadixNumber(8);if(98===t||66===t)return this.readRadixNumber(2)}case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:return this.readNumber(!1);case 34:case 39:return this.readString(e);case 47:return this.readToken_slash();case 37:case 42:return this.readToken_mult_modulo_exp(e);case 124:case 38:return this.readToken_pipe_amp(e);case 94:return this.readToken_caret();case 43:case 45:return this.readToken_plus_min(e);case 60:case 62:return this.readToken_lt_gt(e);case 61:case 33:return this.readToken_eq_excl(e);case 63:return this.readToken_question();case 126:return this.finishOp(v.prefix,1);case 35:return this.readToken_numberSign()}this.raise(this.pos,"Unexpected character '"+P(e)+"'")},_t.finishOp=function(e,t){var r=this.input.slice(this.pos,this.pos+t);return this.pos+=t,this.finishToken(e,r)},_t.readRegexp=function(){for(var e,t,r=this.pos;;){this.pos>=this.input.length&&this.raise(r,"Unterminated regular expression");var n=this.input.charAt(this.pos);if(_.test(n)&&this.raise(r,"Unterminated regular expression"),e)e=!1;else{if("["===n)t=!0;else if("]"===n&&t)t=!1;else if("/"===n&&!t)break;e="\\"===n}++this.pos}var i=this.input.slice(r,this.pos);++this.pos;var a=this.pos,o=this.readWord1();this.containsEsc&&this.unexpected(a);var s=this.regexpState||(this.regexpState=new Qe(this));s.reset(r,i,o),this.validateRegExpFlags(s),this.validateRegExpPattern(s);var c=null;try{c=new RegExp(i,o)}catch(e){}return this.finishToken(v.regexp,{pattern:i,flags:o,value:c})},_t.readInt=function(e,t,r){for(var n=this.options.ecmaVersion>=12&&void 0===t,i=r&&48===this.input.charCodeAt(this.pos),a=this.pos,o=0,s=0,c=0,u=null==t?1/0:t;c=97?l-97+10:l>=65?l-65+10:l>=48&&l<=57?l-48:1/0)>=e)break;s=l,o=o*e+d}}return n&&95===s&&this.raiseRecoverable(this.pos-1,"Numeric separator is not allowed at the last of digits"),this.pos===a||null!=t&&this.pos-a!==t?null:o},_t.readRadixNumber=function(e){var t=this.pos;this.pos+=2;var r=this.readInt(e);return null==r&&this.raise(this.start+2,"Expected number in radix "+e),this.options.ecmaVersion>=11&&110===this.input.charCodeAt(this.pos)?(r=At(this.input.slice(t,this.pos)),++this.pos):f(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(v.num,r)},_t.readNumber=function(e){var t=this.pos;e||null!==this.readInt(10,void 0,!0)||this.raise(t,"Invalid number");var r=this.pos-t>=2&&48===this.input.charCodeAt(t);r&&this.strict&&this.raise(t,"Invalid number");var n=this.input.charCodeAt(this.pos);if(!r&&!e&&this.options.ecmaVersion>=11&&110===n){var i=At(this.input.slice(t,this.pos));return++this.pos,f(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number"),this.finishToken(v.num,i)}r&&/[89]/.test(this.input.slice(t,this.pos))&&(r=!1),46!==n||r||(++this.pos,this.readInt(10),n=this.input.charCodeAt(this.pos)),69!==n&&101!==n||r||(43!==(n=this.input.charCodeAt(++this.pos))&&45!==n||++this.pos,null===this.readInt(10)&&this.raise(t,"Invalid number")),f(this.fullCharCodeAtPos())&&this.raise(this.pos,"Identifier directly after number");var a=Ct(this.input.slice(t,this.pos),r);return this.finishToken(v.num,a)},_t.readCodePoint=function(){var e;if(123===this.input.charCodeAt(this.pos)){this.options.ecmaVersion<6&&this.unexpected();var t=++this.pos;e=this.readHexChar(this.input.indexOf("}",this.pos)-this.pos),++this.pos,e>1114111&&this.invalidStringToken(t,"Code point out of bounds")}else e=this.readHexChar(4);return e},_t.readString=function(e){for(var t="",r=++this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated string constant");var n=this.input.charCodeAt(this.pos);if(n===e)break;92===n?(t+=this.input.slice(r,this.pos),t+=this.readEscapedChar(!1),r=this.pos):8232===n||8233===n?(this.options.ecmaVersion<10&&this.raise(this.start,"Unterminated string constant"),++this.pos,this.options.locations&&(this.curLine++,this.lineStart=this.pos)):(A(n)&&this.raise(this.start,"Unterminated string constant"),++this.pos)}return t+=this.input.slice(r,this.pos++),this.finishToken(v.string,t)};var Et={};_t.tryReadTemplateToken=function(){this.inTemplateElement=!0;try{this.readTmplToken()}catch(e){if(e!==Et)throw e;this.readInvalidTemplateToken()}this.inTemplateElement=!1},_t.invalidStringToken=function(e,t){if(this.inTemplateElement&&this.options.ecmaVersion>=9)throw Et;this.raise(e,t)},_t.readTmplToken=function(){for(var e="",t=this.pos;;){this.pos>=this.input.length&&this.raise(this.start,"Unterminated template");var r=this.input.charCodeAt(this.pos);if(96===r||36===r&&123===this.input.charCodeAt(this.pos+1))return this.pos!==this.start||this.type!==v.template&&this.type!==v.invalidTemplate?(e+=this.input.slice(t,this.pos),this.finishToken(v.template,e)):36===r?(this.pos+=2,this.finishToken(v.dollarBraceL)):(++this.pos,this.finishToken(v.backQuote));if(92===r)e+=this.input.slice(t,this.pos),e+=this.readEscapedChar(!0),t=this.pos;else if(A(r)){switch(e+=this.input.slice(t,this.pos),++this.pos,r){case 13:10===this.input.charCodeAt(this.pos)&&++this.pos;case 10:e+="\n";break;default:e+=String.fromCharCode(r)}this.options.locations&&(++this.curLine,this.lineStart=this.pos),t=this.pos}else++this.pos}},_t.readInvalidTemplateToken=function(){for(;this.pos=48&&t<=55){var n=this.input.substr(this.pos-1,3).match(/^[0-7]+/)[0],i=parseInt(n,8);return i>255&&(n=n.slice(0,-1),i=parseInt(n,8)),this.pos+=n.length-1,t=this.input.charCodeAt(this.pos),"0"===n&&56!==t&&57!==t||!this.strict&&!e||this.invalidStringToken(this.pos-1-n.length,e?"Octal literal in template string":"Octal literal in strict mode"),String.fromCharCode(i)}return A(t)?(this.options.locations&&(this.lineStart=this.pos,++this.curLine),""):String.fromCharCode(t)}},_t.readHexChar=function(e){var t=this.pos,r=this.readInt(16,e);return null===r&&this.invalidStringToken(t,"Bad character escape sequence"),r},_t.readWord1=function(){this.containsEsc=!1;for(var e="",t=!0,r=this.pos,n=this.options.ecmaVersion>=6;this.pos{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.LoggingPrefix=void 0,function(e){e.Base="[javascript-obfuscator]",e.CLI="[javascript-obfuscator-cli]"}(r||(t.LoggingPrefix=r={}))},48983:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingRule=void 0;t.SelfDefendingRule=e=>(e.selfDefending&&(e={...e,compact:!0,selfDefending:!0}),e)},49081:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CryptUtils=void 0;const o=r(71519),s=r(32287),c=r(27480),u=r(30486),l=r(65063);let d=class{constructor(e){this.base64Alphabet=c.base64alphabet,this.randomGenerator=e}btoa(e){const t=this.base64Alphabet;let r="";e=encodeURIComponent(e).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(parseInt(`${l.Utils.hexadecimalPrefix}${t}`,16)));for(let n,i,a=0,o=t;e.charAt(0|a)||(o="=",a%1);r+=o.charAt(63&n>>8-a%1*8)){if(i=e.charCodeAt(a+=3/4),i>255)throw new Error("'btoa' failed: The string to be encoded contains characters outside of the Latin1 range.");n=n<<8|i}return r}hideString(e,t){let r=this.randomGenerator.getRandomGenerator().string({length:t,pool:u.RandomGenerator.randomGeneratorPool}).replace(new RegExp(`[${n=e,n.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),"");var n;const i=r.split("");return this.randomGenerator.getRandomGenerator().shuffle(i),r=i.join(""),[((e,t)=>{let r=-1,n=-1,i="";for(;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTargets=void 0;const n=r(49343),i=r(8841),a=r(9750),o=r(7520),s=r(16586);t.getTargets=e=>{const t=void 0===e?n.getClassMetadata:t=>(0,i.getClassMetadataFromMetadataReader)(t,e),r=void 0===e?a.getClassMetadataProperties:t=>(0,o.getClassMetadataPropertiesFromMetadataReader)(t,e);return(0,s.getTargetsFromMetadataProviders)(t,r)}},49343:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassMetadata=function(e){const t=(0,n.getReflectMetadata)(e,i.POST_CONSTRUCT),r=(0,n.getReflectMetadata)(e,i.PRE_DESTROY);return{constructorArguments:(0,a.getClassMetadataConstructorArguments)(e),lifecycle:{postConstructMethodName:t?.value,preDestroyMethodName:r?.value},properties:(0,o.getClassMetadataProperties)(e)}};const n=r(59517),i=r(83313),a=r(62719),o=r(9750)},49517:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HIGH_OBFUSCATION_PRESET=void 0;const n=r(94838),i=r(70885),a=r(73184);t.HIGH_OBFUSCATION_PRESET=Object.freeze({...a.MEDIUM_OBFUSCATION_PRESET,controlFlowFlatteningThreshold:1,deadCodeInjectionThreshold:1,debugProtection:!0,debugProtectionInterval:4e3,optionsPreset:n.OptionsPreset.HighObfuscation,splitStringsChunkLength:5,stringArrayCallsTransformThreshold:1,stringArrayEncoding:[i.StringArrayEncoding.Rc4],stringArrayWrappersCount:5,stringArrayWrappersParametersMaxCount:5,stringArrayThreshold:1})},49534:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)},t.halfWidth=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=t.halfWidth=/[\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]/},49808:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ThroughIdentifierReplacer=void 0;const o=r(71519),s=r(32287),c=r(91363);let u=class{constructor(e,t){this.identifierNamesCacheStorage=e,this.options=t}replace(e){var t;const r=e.name,n=this.options.identifierNamesCache&&!this.isReservedName(r)&&null!==(t=this.identifierNamesCacheStorage.get(r))&&void 0!==t?t:r;return c.NodeFactory.identifierNode(n)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};t.ThroughIdentifierReplacer=u,t.ThroughIdentifierReplacer=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},49840:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.stringArrayTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(48427),s=r(2070),c=r(10618);t.stringArrayTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(o.StringArrayRotateFunctionTransformer).whenTargetNamed(a.NodeTransformer.StringArrayRotateFunctionTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(s.StringArrayScopeCallsWrapperTransformer).whenTargetNamed(a.NodeTransformer.StringArrayScopeCallsWrapperTransformer),e(i.ServiceIdentifiers.INodeTransformer).to(c.StringArrayTransformer).whenTargetNamed(a.NodeTransformer.StringArrayTransformer)})},49872:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AsyncContainerModule=t.ContainerModule=void 0;var n=r(38615),i=function(e){this.id=(0,n.id)(),this.registry=e};t.ContainerModule=i;var a=function(e){this.id=(0,n.id)(),this.registry=e};t.AsyncContainerModule=a},49877:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),/^[0-7][0-9A-HJKMNP-TV-Z]{25}$/i.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},50027:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeStatementUtils=void 0;const n=r(23615);class i{static getParentNodeWithStatements(e){return i.getParentNodesWithStatementsRecursive(e,1)[0]}static getParentNodesWithStatements(e){return i.getParentNodesWithStatementsRecursive(e)}static getNextSiblingStatement(e){return i.getSiblingStatementByOffset(e,1)}static getPreviousSiblingStatement(e){return i.getSiblingStatementByOffset(e,-1)}static getRootStatementOfNode(e){if(n.NodeGuards.isProgramNode(e))throw new Error("Unable to find root statement for `Program` node");const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return n.NodeGuards.isNodeWithStatements(t)?e:i.getRootStatementOfNode(t)}static getScopeOfNode(e){const t=e.parentNode;if(!t)throw new ReferenceError("`parentNode` property of given node is `undefined`");return n.NodeGuards.isNodeWithStatements(t)?t:i.getScopeOfNode(t)}static getParentNodesWithStatementsRecursive(e,t=1/0,r=[],a=0){if(r.length>=t)return r;const o=e.parentNode;if(!o)throw new ReferenceError("`parentNode` property of given node is `undefined`");return(n.NodeGuards.isProgramNode(e)||n.NodeGuards.isNodeWithLexicalScopeStatements(e,o)&&a>0)&&r.push(e),e!==o?i.getParentNodesWithStatementsRecursive(o,t,r,++a):r}static getSiblingStatementByOffset(e,t){const r=i.getScopeOfNode(e),a=n.NodeGuards.isSwitchCaseNode(r)?r.consequent:r.body,o=a.indexOf(e);return a[o+t]||null}}t.NodeStatementUtils=i},50069:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Logger=void 0;const c=r(71519),u=r(32287),l=s(r(55248)),d=r(48767);let f=n=class{constructor(e){this.options=e}static log(e,t,r,n){const i=e(`\n${t} ${r}`);console.log(i,null!=n?n:"")}info(e,t){this.options.log&&n.log(n.colorInfo,d.LoggingPrefix.Base,e,t)}success(e,t){this.options.log&&n.log(n.colorSuccess,d.LoggingPrefix.Base,e,t)}warn(e,t){this.options.log&&n.log(n.colorWarn,d.LoggingPrefix.Base,e,t)}advertise(e){n.log(n.colorInfo,d.LoggingPrefix.Base,e)}};t.Logger=f,f.colorInfo=l.default.cyan,f.colorSuccess=l.default.green,f.colorWarn=l.default.yellow,t.Logger=f=n=i([(0,c.injectable)(),o(0,(0,c.inject)(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object])],f)},50229:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(72167),u=r(10548),l=r(76382),d=r(44010),f=r(88318),p=r(25120);let h=class extends f.AbstractCustomCodeHelper{constructor(e,t,r,n,i,a){super(e,t,r,n,i),this.cryptUtils=a}initialize(e,t){this.callsControllerFunctionName=e,this.domainLockFunctionName=t}getNodeStructure(e){return p.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.options.domainLock.join(";"),t=this.options.domainLockRedirectUrl,[r,n]=this.cryptUtils.hideString(e,3*e.length),[i,a]=this.cryptUtils.hideString(t,3*t.length),o=this.options.target!==c.ObfuscationTarget.BrowserNoEval?this.getGlobalVariableTemplate():(0,d.GlobalVariableNoEvalTemplate)();return this.customCodeHelperFormatter.formatTemplate((0,l.DomainLockTemplate)(),{callControllerFunctionName:this.callsControllerFunctionName,domainLockFunctionName:this.domainLockFunctionName,domainsStringDiff:n,domains:r,domainLockRedirectUrlDiff:a,hiddenDomainLockRedirectUrl:i,globalVariableTemplate:o})}};t.DomainLockCodeHelper=h,n([(0,u.initializable)(),i("design:type",String)],h.prototype,"callsControllerFunctionName",void 0),n([(0,u.initializable)(),i("design:type",String)],h.prototype,"domainLockFunctionName",void 0),t.DomainLockCodeHelper=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(5,(0,o.inject)(s.ServiceIdentifiers.ICryptUtils)),i("design:paramtypes",[Function,Object,Object,Object,Object,Object])],h)},50275:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuardResult=void 0,function(e){e.ForceTransform="ForceTransform",e.Ignore="Ignore",e.Transform="Transform"}(r||(t.ObfuscatingGuardResult=r={}))},50821:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return null==e},e.exports=t.default,e.exports.default=t.default},50855:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),parseInt(e,t||10)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},50995:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),t=t||{};var r=new RegExp("^(?:[-+])?(?:[0-9]+)?(?:\\".concat(t.locale?a.decimal[t.locale]:".","[0-9]*)?(?:[eE][\\+\\-]?(?:[0-9]+))?$"));if(""===e||"."===e||","===e||"-"===e||"+"===e)return!1;var o=parseFloat(e.replace(",","."));return r.test(e)&&(!t.hasOwnProperty("min")||(0,i.default)(t.min)||o>=t.min)&&(!t.hasOwnProperty("max")||(0,i.default)(t.max)||o<=t.max)&&(!t.hasOwnProperty("lt")||(0,i.default)(t.lt)||ot.gt)},t.locales=void 0;var n=o(r(83399)),i=o(r(50821)),a=r(13237);function o(e){return e&&e.__esModule?e:{default:e}}t.locales=Object.keys(a.decimal)},51066:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SplitStringsChunkLengthRule=void 0;t.SplitStringsChunkLengthRule=e=>e=0===e.splitStringsChunkLength?{...e,splitStrings:!1,splitStringsChunkLength:0}:{...e,splitStringsChunkLength:Math.floor(e.splitStringsChunkLength)}},51155:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.generatorsModule=void 0;const n=r(71519),i=r(32287),a=r(93844),o=r(4185),s=r(62978),c=r(68983),u=r(6928);t.generatorsModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.IIdentifierNamesGenerator).to(o.DictionaryIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),e(i.ServiceIdentifiers.IIdentifierNamesGenerator).to(s.HexadecimalIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator),e(i.ServiceIdentifiers.IIdentifierNamesGenerator).to(c.MangledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator),e(i.ServiceIdentifiers.IIdentifierNamesGenerator).to(u.MangledShuffledIdentifierNamesGenerator).inSingletonScope().whenTargetNamed(a.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator),e(i.ServiceIdentifiers.Factory__IIdentifierNamesGenerator).toFactory(function(){let e=null;return t=>r=>{if(e)return e;let n;switch(r.identifierNamesGenerator){case a.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator:n=t.container.getNamed(i.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator);break;case a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator:n=t.container.getNamed(i.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.MangledIdentifierNamesGenerator);break;case a.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator:n=t.container.getNamed(i.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator);break;case a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator:default:n=t.container.getNamed(i.ServiceIdentifiers.IIdentifierNamesGenerator,a.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator)}return e=n,n}}())})},51174:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.ConditionalCommentObfuscatingGuard=void 0;const a=r(71519),o=r(50275),s=r(23615);let c=n=class{constructor(){this.obfuscationAllowed=!0}static isConditionalComment(e){return n.obfuscationEnableCommentRegExp.test(e.value)||n.obfuscationDisableCommentRegExp.test(e.value)}check(e){if(s.NodeGuards.isNodeWithComments(e)){const t=e.leadingComments;t&&(this.obfuscationAllowed=this.checkComments(t))}return this.obfuscationAllowed?o.ObfuscatingGuardResult.Transform:o.ObfuscatingGuardResult.Ignore}checkComments(e){const t=e.length;let r=this.obfuscationAllowed;for(let i=0;i=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsWrapperCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(71626),l=r(37694),d=r(88318),f=r(25120);let p=class extends d.AbstractCustomCodeHelper{constructor(e,t,r,n,i,a){super(e,t,r,n,i),this.escapeSequenceEncoder=a}initialize(e,t,r){this.stringArrayFunctionName=e,this.stringArrayCallsWrapperName=t,this.indexShiftAmount=r,this.stringArrayCacheName=this.randomGenerator.getRandomString(6)}getNodeStructure(e){return f.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){const e=this.getDecodeStringArrayTemplate(),t=[`^${this.stringArrayFunctionName}$`];return this.customCodeHelperObfuscator.obfuscateTemplate(this.customCodeHelperFormatter.formatTemplate((0,l.StringArrayCallsWrapperTemplate)(),{decodeCodeHelperTemplate:e,stringArrayCallsWrapperName:this.stringArrayCallsWrapperName,stringArrayFunctionName:this.stringArrayFunctionName,indexShiftAmount:this.indexShiftAmount}),{reservedNames:t})}getDecodeStringArrayTemplate(){return""}getSelfDefendingTemplate(){return this.options.selfDefending?this.customCodeHelperFormatter.formatTemplate((0,u.SelfDefendingTemplate)(this.randomGenerator,this.escapeSequenceEncoder),{stringArrayCallsWrapperName:this.stringArrayCallsWrapperName}):""}};t.StringArrayCallsWrapperCodeHelper=p,n([(0,c.initializable)(),i("design:type",Number)],p.prototype,"indexShiftAmount",void 0),n([(0,c.initializable)(),i("design:type",String)],p.prototype,"stringArrayCallsWrapperName",void 0),n([(0,c.initializable)(),i("design:type",String)],p.prototype,"stringArrayFunctionName",void 0),n([(0,c.initializable)(),i("design:type",String)],p.prototype,"stringArrayCacheName",void 0),t.StringArrayCallsWrapperCodeHelper=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(5,(0,o.inject)(s.ServiceIdentifiers.IEscapeSequenceEncoder)),i("design:paramtypes",[Function,Object,Object,Object,Object,Object])],p)},51774:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionCodeHelperGroup=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(79011),l=r(18436),d=r(87415),f=r(30386),p=r(23615),h=r(32504);let m=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.customCodeHelperFactory=e}appendOnPreparingStage(e,t){var r;if(!this.options.debugProtection)return;const n=this.getRandomCallsGraphIndex(t.length),i=t.length?f.NodeAppender.getOptimalBlockScope(t,n):e,a=t.length?f.NodeAppender.getOptimalBlockScope(t,n,1):e,o=null!==(r=h.NodeLexicalScopeUtils.getLexicalScope(i))&&void 0!==r?r:null,s=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext(),c=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(u.CustomCodeHelper.DebugProtectionFunctionCall,e=>{e.initialize(s,c),f.NodeAppender.prepend(i,e.getNode())}),this.appendCustomNodeIfExist(u.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(l.NodeTransformationStage.Preparing,c),f.NodeAppender.prepend(a,e.getNode())}),this.appendCustomNodeIfExist(u.CustomCodeHelper.DebugProtectionFunction,t=>{t.initialize(s),f.NodeAppender.append(e,t.getNode())}),this.appendCustomNodeIfExist(u.CustomCodeHelper.DebugProtectionFunctionInterval,t=>{const r=p.NodeGuards.isSwitchCaseNode(e)?e.consequent.length:e.body.length,n=this.randomGenerator.getRandomInteger(0,r);t.initialize(s,this.options.debugProtectionInterval),f.NodeAppender.insertAtIndex(e,t.getNode(),n)})}initialize(){if(this.customCodeHelpers=new Map,!this.options.debugProtection)return;const e=this.customCodeHelperFactory(u.CustomCodeHelper.DebugProtectionFunction),t=this.customCodeHelperFactory(u.CustomCodeHelper.DebugProtectionFunctionCall),r=this.customCodeHelperFactory(u.CustomCodeHelper.DebugProtectionFunctionInterval),n=this.customCodeHelperFactory(u.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(u.CustomCodeHelper.DebugProtectionFunction,e),this.customCodeHelpers.set(u.CustomCodeHelper.DebugProtectionFunctionCall,t),this.options.debugProtectionInterval&&this.customCodeHelpers.set(u.CustomCodeHelper.DebugProtectionFunctionInterval,r),this.customCodeHelpers.set(u.CustomCodeHelper.CallsControllerFunction,n)}};t.DebugProtectionCodeHelperGroup=m,n([(0,c.initializable)(),i("design:type",Map)],m.prototype,"customCodeHelpers",void 0),t.DebugProtectionCodeHelperGroup=m=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object])],m)},51851:(e,t,r)=>{!function(){"use strict";var e=r(63437);function n(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function i(t,r){return(t===e.Syntax.ObjectExpression||t===e.Syntax.ObjectPattern)&&"properties"===r}function a(t,r){r=r||{},this.__visitor=t||this,this.__childVisitorKeys=r.childVisitorKeys?Object.assign({},e.VisitorKeys,r.childVisitorKeys):e.VisitorKeys,"iteration"===r.fallback?this.__fallback=Object.keys:"function"==typeof r.fallback&&(this.__fallback=r.fallback)}a.prototype.visitChildren=function(t){var r,a,o,s,c,u,l;if(null!=t){if(r=t.type||e.Syntax.Property,!(a=this.__childVisitorKeys[r])){if(!this.__fallback)throw new Error("Unknown node type "+r+".");a=this.__fallback(t)}for(o=0,s=a.length;o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassElementMetadataFromNewable=function(e){return{kind:n.ClassElementMetadataKind.singleInjection,name:void 0,optional:!1,tags:new Map,targetName:void 0,value:e}};const n=r(86277)},53405:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ScriptCodes=void 0,t.default=function(e){return(0,i.default)(e),a.has(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=new Set(["Adlm","Afak","Aghb","Ahom","Arab","Aran","Armi","Armn","Avst","Bali","Bamu","Bass","Batk","Beng","Bhks","Blis","Bopo","Brah","Brai","Bugi","Buhd","Cakm","Cans","Cari","Cham","Cher","Chis","Chrs","Cirt","Copt","Cpmn","Cprt","Cyrl","Cyrs","Deva","Diak","Dogr","Dsrt","Dupl","Egyd","Egyh","Egyp","Elba","Elym","Ethi","Gara","Geok","Geor","Glag","Gong","Gonm","Goth","Gran","Grek","Gujr","Gukh","Guru","Hanb","Hang","Hani","Hano","Hans","Hant","Hatr","Hebr","Hira","Hluw","Hmng","Hmnp","Hrkt","Hung","Inds","Ital","Jamo","Java","Jpan","Jurc","Kali","Kana","Kawi","Khar","Khmr","Khoj","Kitl","Kits","Knda","Kore","Kpel","Krai","Kthi","Lana","Laoo","Latf","Latg","Latn","Leke","Lepc","Limb","Lina","Linb","Lisu","Loma","Lyci","Lydi","Mahj","Maka","Mand","Mani","Marc","Maya","Medf","Mend","Merc","Mero","Mlym","Modi","Mong","Moon","Mroo","Mtei","Mult","Mymr","Nagm","Nand","Narb","Nbat","Newa","Nkdb","Nkgb","Nkoo","Nshu","Ogam","Olck","Onao","Orkh","Orya","Osge","Osma","Ougr","Palm","Pauc","Pcun","Pelm","Perm","Phag","Phli","Phlp","Phlv","Phnx","Plrd","Piqd","Prti","Psin","Qaaa","Qaab","Qaac","Qaad","Qaae","Qaaf","Qaag","Qaah","Qaai","Qaaj","Qaak","Qaal","Qaam","Qaan","Qaao","Qaap","Qaaq","Qaar","Qaas","Qaat","Qaau","Qaav","Qaaw","Qaax","Qaay","Qaaz","Qaba","Qabb","Qabc","Qabd","Qabe","Qabf","Qabg","Qabh","Qabi","Qabj","Qabk","Qabl","Qabm","Qabn","Qabo","Qabp","Qabq","Qabr","Qabs","Qabt","Qabu","Qabv","Qabw","Qabx","Ranj","Rjng","Rohg","Roro","Runr","Samr","Sara","Sarb","Saur","Sgnw","Shaw","Shrd","Shui","Sidd","Sidt","Sind","Sinh","Sogd","Sogo","Sora","Soyo","Sund","Sunu","Sylo","Syrc","Syre","Syrj","Syrn","Tagb","Takr","Tale","Talu","Taml","Tang","Tavt","Tayo","Telu","Teng","Tfng","Tglg","Thaa","Thai","Tibt","Tirh","Tnsa","Todr","Tols","Toto","Tutg","Ugar","Vaii","Visp","Vith","Wara","Wcho","Wole","Xpeo","Xsux","Yezi","Yiii","Zanb","Zinh","Zmth","Zsye","Zsym","Zxxx","Zyyy","Zzzz"]);t.ScriptCodes=a},53832:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.has(e.toUpperCase())};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=new Set(["AFG","ALA","ALB","DZA","ASM","AND","AGO","AIA","ATA","ATG","ARG","ARM","ABW","AUS","AUT","AZE","BHS","BHR","BGD","BRB","BLR","BEL","BLZ","BEN","BMU","BTN","BOL","BES","BIH","BWA","BVT","BRA","IOT","BRN","BGR","BFA","BDI","KHM","CMR","CAN","CPV","CYM","CAF","TCD","CHL","CHN","CXR","CCK","COL","COM","COG","COD","COK","CRI","CIV","HRV","CUB","CUW","CYP","CZE","DNK","DJI","DMA","DOM","ECU","EGY","SLV","GNQ","ERI","EST","ETH","FLK","FRO","FJI","FIN","FRA","GUF","PYF","ATF","GAB","GMB","GEO","DEU","GHA","GIB","GRC","GRL","GRD","GLP","GUM","GTM","GGY","GIN","GNB","GUY","HTI","HMD","VAT","HND","HKG","HUN","ISL","IND","IDN","IRN","IRQ","IRL","IMN","ISR","ITA","JAM","JPN","JEY","JOR","KAZ","KEN","KIR","PRK","KOR","KWT","KGZ","LAO","LVA","LBN","LSO","LBR","LBY","LIE","LTU","LUX","MAC","MKD","MDG","MWI","MYS","MDV","MLI","MLT","MHL","MTQ","MRT","MUS","MYT","MEX","FSM","MDA","MCO","MNG","MNE","MSR","MAR","MOZ","MMR","NAM","NRU","NPL","NLD","NCL","NZL","NIC","NER","NGA","NIU","NFK","MNP","NOR","OMN","PAK","PLW","PSE","PAN","PNG","PRY","PER","PHL","PCN","POL","PRT","PRI","QAT","REU","ROU","RUS","RWA","BLM","SHN","KNA","LCA","MAF","SPM","VCT","WSM","SMR","STP","SAU","SEN","SRB","SYC","SLE","SGP","SXM","SVK","SVN","SLB","SOM","ZAF","SGS","SSD","ESP","LKA","SDN","SUR","SJM","SWZ","SWE","CHE","SYR","TWN","TJK","TZA","THA","TLS","TGO","TKL","TON","TTO","TUN","TUR","TKM","TCA","TUV","UGA","UKR","ARE","GBR","USA","UMI","URY","UZB","VUT","VEN","VNM","VGB","VIR","WLF","ESH","YEM","ZMB","ZWE"]);e.exports=t.default,e.exports.default=t.default},54041:(e,t,r)=>{var n=r(17092),i=r(90251),a=r(80735).C,o=r(43302).P;function s(e){e||(e={}),this._file=i.getArg(e,"file",null),this._sourceRoot=i.getArg(e,"sourceRoot",null),this._skipValidation=i.getArg(e,"skipValidation",!1),this._sources=new a,this._names=new a,this._mappings=new o,this._sourcesContents=null}s.prototype._version=3,s.fromSourceMap=function(e){var t=e.sourceRoot,r=new s({file:e.file,sourceRoot:t});return e.eachMapping(function(e){var n={generated:{line:e.generatedLine,column:e.generatedColumn}};null!=e.source&&(n.source=e.source,null!=t&&(n.source=i.relative(t,n.source)),n.original={line:e.originalLine,column:e.originalColumn},null!=e.name&&(n.name=e.name)),r.addMapping(n)}),e.sources.forEach(function(n){var a=n;null!==t&&(a=i.relative(t,n)),r._sources.has(a)||r._sources.add(a);var o=e.sourceContentFor(n);null!=o&&r.setSourceContent(n,o)}),r},s.prototype.addMapping=function(e){var t=i.getArg(e,"generated"),r=i.getArg(e,"original",null),n=i.getArg(e,"source",null),a=i.getArg(e,"name",null);this._skipValidation||this._validateMapping(t,r,n,a),null!=n&&(n=String(n),this._sources.has(n)||this._sources.add(n)),null!=a&&(a=String(a),this._names.has(a)||this._names.add(a)),this._mappings.add({generatedLine:t.line,generatedColumn:t.column,originalLine:null!=r&&r.line,originalColumn:null!=r&&r.column,source:n,name:a})},s.prototype.setSourceContent=function(e,t){var r=e;null!=this._sourceRoot&&(r=i.relative(this._sourceRoot,r)),null!=t?(this._sourcesContents||(this._sourcesContents=Object.create(null)),this._sourcesContents[i.toSetString(r)]=t):this._sourcesContents&&(delete this._sourcesContents[i.toSetString(r)],0===Object.keys(this._sourcesContents).length&&(this._sourcesContents=null))},s.prototype.applySourceMap=function(e,t,r){var n=t;if(null==t){if(null==e.file)throw new Error('SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, or the source map\'s "file" property. Both were omitted.');n=e.file}var o=this._sourceRoot;null!=o&&(n=i.relative(o,n));var s=new a,c=new a;this._mappings.unsortedForEach(function(t){if(t.source===n&&null!=t.originalLine){var a=e.originalPositionFor({line:t.originalLine,column:t.originalColumn});null!=a.source&&(t.source=a.source,null!=r&&(t.source=i.join(r,t.source)),null!=o&&(t.source=i.relative(o,t.source)),t.originalLine=a.line,t.originalColumn=a.column,null!=a.name&&(t.name=a.name))}var u=t.source;null==u||s.has(u)||s.add(u);var l=t.name;null==l||c.has(l)||c.add(l)},this),this._sources=s,this._names=c,e.sources.forEach(function(t){var n=e.sourceContentFor(t);null!=n&&(null!=r&&(t=i.join(r,t)),null!=o&&(t=i.relative(o,t)),this.setSourceContent(t,n))},this)},s.prototype._validateMapping=function(e,t,r,n){if(t&&"number"!=typeof t.line&&"number"!=typeof t.column)throw new Error("original.line and original.column are not numbers -- you probably meant to omit the original mapping entirely and only map the generated position. If so, pass null for the original mapping instead of an object with empty or null values.");if((!(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0)||t||r||n)&&!(e&&"line"in e&&"column"in e&&t&&"line"in t&&"column"in t&&e.line>0&&e.column>=0&&t.line>0&&t.column>=0&&r))throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:r,original:t,name:n}))},s.prototype._serializeMappings=function(){for(var e,t,r,a,o=0,s=1,c=0,u=0,l=0,d=0,f="",p=this._mappings.toArray(),h=0,m=p.length;h0){if(!i.compareByGeneratedPositionsInflated(t,p[h-1]))continue;e+=","}e+=n.encode(t.generatedColumn-o),o=t.generatedColumn,null!=t.source&&(a=this._sources.indexOf(t.source),e+=n.encode(a-d),d=a,e+=n.encode(t.originalLine-1-u),u=t.originalLine-1,e+=n.encode(t.originalColumn-c),c=t.originalColumn,null!=t.name&&(r=this._names.indexOf(t.name),e+=n.encode(r-l),l=r)),f+=e}return f},s.prototype._generateSourcesContent=function(e,t){return e.map(function(e){if(!this._sourcesContents)return null;null!=t&&(e=i.relative(t,e));var r=i.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,r)?this._sourcesContents[r]:null},this)},s.prototype.toJSON=function(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};return null!=this._file&&(e.file=this._file),null!=this._sourceRoot&&(e.sourceRoot=this._sourceRoot),this._sourcesContents&&(e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)),e},s.prototype.toString=function(){return JSON.stringify(this.toJSON())},t.x=s},54042:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapMode=void 0;const n=r(65063);t.SourceMapMode=n.Utils.makeEnum({Inline:"inline",Separate:"separate"})},54306:(__unused_webpack_module,exports,__webpack_require__)=>{"use strict";var process=__webpack_require__(65606);Object.defineProperty(exports,"__esModule",{value:!0}),exports.AdvertisementUtils=void 0;class AdvertisementUtils{static isCI(){return!!this.isNodeEnvironment()&&this.ciEnvVars.some(e=>{const t=process.env[e];return void 0!==t&&""!==t&&"0"!==t&&"false"!==t})}static shouldShowAdvertisement(){if(!this.isNodeEnvironment())return!1;if(this.isCI())return!1;if(!process.stdout.isTTY)return!1;const e=this.getConfig();if(!e)return!1;const t=this.getFirstDisplayTime(e),r=Date.now();t&&r-t>=this.resetPeriodMs&&this.resetDisplayData(e);const n=this.getDisplayCount(e);return!(n>=this.maxDisplayCount)&&((!t||r-t>=this.resetPeriodMs)&&this.setFirstDisplayTime(e,r),this.setDisplayCount(e,n+1),!0)}static isNodeEnvironment(){var e;return void 0!==process&&void 0!==(null===(e=process.versions)||void 0===e?void 0:e.node)}static getConfig(){if(this.config)return this.config;if("undefined"==typeof window)try{const Conf=eval("require")("conf").default;return this.config=new Conf({projectName:"javascript-obfuscator"}),this.config}catch(e){return null}return null}static getDisplayCount(e){try{const t=e.get(this.storageKey,0);return"number"==typeof t?t:0}catch(e){return 0}}static setDisplayCount(e,t){try{e.set(this.storageKey,t)}catch(e){}}static getFirstDisplayTime(e){try{const t=e.get(this.timestampKey,null);return"number"==typeof t?t:null}catch(e){return null}}static setFirstDisplayTime(e,t){try{e.set(this.timestampKey,t)}catch(e){}}static resetDisplayData(e){try{e.delete(this.storageKey),e.delete(this.timestampKey)}catch(e){}}}exports.AdvertisementUtils=AdvertisementUtils,AdvertisementUtils.maxDisplayCount=5,AdvertisementUtils.storageKey="adDisplayCount",AdvertisementUtils.timestampKey="adFirstDisplayTime",AdvertisementUtils.resetPeriodMs=2592e5,AdvertisementUtils.ciEnvVars=["CI","CONTINUOUS_INTEGRATION","GITHUB_ACTIONS","GITLAB_CI","TRAVIS","CIRCLECI","JENKINS_URL","HUDSON_URL","TEAMCITY_VERSION","BUILDKITE","TF_BUILD","BITBUCKET_BUILD_NUMBER","CODEBUILD_BUILD_ID","DRONE","HEROKU_TEST_RUN_ID","NETLIFY","VERCEL","NOW_BUILDER","RENDER","CODESANDBOX_SSE","STACKBLITZ"],AdvertisementUtils.config=null},54618:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.AtobTemplate=function(e){return`\n var {atobFunctionName} = function (input) {\n const chars = '${n.base64alphabetSwapped}';\n\n let output = '';\n let tempEncodedString = '';\n ${e?"let func = output + {atobFunctionName};":""}\n \n for (\n let bc = 0, bs, buffer, idx = 0;\n buffer = input.charAt(idx++);\n ~buffer && (bs = bc % 4 ? bs * 64 + buffer : buffer, bc++ % 4)\n ? output += ${(()=>{const t="String.fromCharCode(255 & bs >> (-2 * bc & 6))";return e?`((func.charCodeAt(idx + 10) - 10 !== 0) ? ${t} : bc)`:t})()}\n : 0\n ) {\n buffer = chars.indexOf(buffer);\n }\n \n for (let k = 0, length = output.length; k < length; k++) {\n tempEncodedString += '%' + ('00' + output.charCodeAt(k).toString(16)).slice(-2);\n }\n \n return decodeURIComponent(tempEncodedString);\n };\n `};const n=r(10094)},54829:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.initializingTransformersModule=void 0;const n=r(71519),i=r(32287),a=r(96390),o=r(47926);t.initializingTransformersModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.INodeTransformer).to(o.CommentsTransformer).whenTargetNamed(a.NodeTransformer.CommentsTransformer)})},55028:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBaseType=function(e){const t=Object.getPrototypeOf(e.prototype),r=t?.constructor;return r}},55149:e=>{var t=/\{([0-9a-zA-Z_]+)\}/g;e.exports=function(e){var r;if(2===arguments.length&&"object"==typeof arguments[1])r=arguments[1];else{r=new Array(arguments.length-1);for(var n=1;n{"use strict";const n=r(94083),{stdout:i,stderr:a}=r(2747),{stringReplaceAll:o,stringEncaseCRLFWithFirstIndex:s}=r(4058),{isArray:c}=Array,u=["ansi","ansi","ansi256","ansi16m"],l=Object.create(null);class d{constructor(e){return f(e)}}const f=e=>{const t={};return((e,t={})=>{if(t.level&&!(Number.isInteger(t.level)&&t.level>=0&&t.level<=3))throw new Error("The `level` option should be an integer from 0 to 3");const r=i?i.level:0;e.level=void 0===t.level?r:t.level})(t,e),t.template=(...e)=>v(t.template,...e),Object.setPrototypeOf(t,p.prototype),Object.setPrototypeOf(t.template,t),t.template.constructor=()=>{throw new Error("`chalk.constructor()` is deprecated. Use `new chalk.Instance()` instead.")},t.template.Instance=d,t.template};function p(e){return f(e)}for(const[e,t]of Object.entries(n))l[e]={get(){const r=b(this,g(t.open,t.close,this._styler),this._isEmpty);return Object.defineProperty(this,e,{value:r}),r}};l.visible={get(){const e=b(this,this._styler,!0);return Object.defineProperty(this,"visible",{value:e}),e}};const h=["rgb","hex","keyword","hsl","hsv","hwb","ansi","ansi256"];for(const e of h)l[e]={get(){const{level:t}=this;return function(...r){const i=g(n.color[u[t]][e](...r),n.color.close,this._styler);return b(this,i,this._isEmpty)}}};for(const e of h){l["bg"+e[0].toUpperCase()+e.slice(1)]={get(){const{level:t}=this;return function(...r){const i=g(n.bgColor[u[t]][e](...r),n.bgColor.close,this._styler);return b(this,i,this._isEmpty)}}}}const m=Object.defineProperties(()=>{},{...l,level:{enumerable:!0,get(){return this._generator.level},set(e){this._generator.level=e}}}),g=(e,t,r)=>{let n,i;return void 0===r?(n=e,i=t):(n=r.openAll+e,i=t+r.closeAll),{open:e,close:t,openAll:n,closeAll:i,parent:r}},b=(e,t,r)=>{const n=(...e)=>c(e[0])&&c(e[0].raw)?y(n,v(n,...e)):y(n,1===e.length?""+e[0]:e.join(" "));return Object.setPrototypeOf(n,m),n._generator=e,n._styler=t,n._isEmpty=r,n},y=(e,t)=>{if(e.level<=0||!t)return e._isEmpty?"":t;let r=e._styler;if(void 0===r)return t;const{openAll:n,closeAll:i}=r;if(-1!==t.indexOf(""))for(;void 0!==r;)t=o(t,r.close,r.open),r=r.parent;const a=t.indexOf("\n");return-1!==a&&(t=s(t,i,n,a)),n+t+i};let S;const v=(e,...t)=>{const[n]=t;if(!c(n)||!c(n.raw))return t.join(" ");const i=t.slice(1),a=[n.raw[0]];for(let e=1;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(e);var t=e.slice(4,6).toUpperCase();if(!a.CountryCodes.has(t)&&"XK"!==t)return!1;return o.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n},a=r(88447);var o=/^[A-Za-z]{6}[A-Za-z0-9]{2}([A-Za-z0-9]{3})?$/;e.exports=t.default,e.exports.default=t.default},55366:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,a.default)(e),(0,a.default)(t),t in s)return s[t](e);throw new Error("Invalid country code: '".concat(t,"'"))},t.vatMatchers=void 0;var i,a=(i=r(83399))&&i.__esModule?i:{default:i},o=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,o,s={__proto__:null,default:e};if(null===e||"object"!=n(e)&&"function"!=typeof e)return s;if(a=t?i:r){if(a.has(e))return a.get(e);a.set(e,s)}for(var c in e)"default"!==c&&{}.hasOwnProperty.call(e,c)&&((o=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(o.get||o.set)?a(s,c,o):s[c]=e[c]);return s}(e,t)}(r(44834));var s=t.vatMatchers={AT:function(e){return/^(AT)?U\d{8}$/.test(e)},BE:function(e){return/^(BE)?\d{10}$/.test(e)},BG:function(e){return/^(BG)?\d{9,10}$/.test(e)},HR:function(e){return/^(HR)?\d{11}$/.test(e)},CY:function(e){return/^(CY)?\w{9}$/.test(e)},CZ:function(e){return/^(CZ)?\d{8,10}$/.test(e)},DK:function(e){return/^(DK)?\d{8}$/.test(e)},EE:function(e){return/^(EE)?\d{9}$/.test(e)},FI:function(e){return/^(FI)?\d{8}$/.test(e)},FR:function(e){return/^(FR)([A-Z0-9]{2}\d{9})$/.test(e)},DE:function(e){return/^(DE)?\d{9}$/.test(e)},EL:function(e){return/^(EL)?\d{9}$/.test(e)},HU:function(e){return/^(HU)?\d{8}$/.test(e)},IE:function(e){return/^(IE)?\d{7}\w{1}(W)?$/.test(e)},IT:function(e){return/^(IT)?\d{11}$/.test(e)},LV:function(e){return/^(LV)?\d{11}$/.test(e)},LT:function(e){return/^(LT)?\d{9,12}$/.test(e)},LU:function(e){return/^(LU)?\d{8}$/.test(e)},MT:function(e){return/^(MT)?\d{8}$/.test(e)},NL:function(e){return/^(NL)?\d{9}B\d{2}$/.test(e)},PL:function(e){return/^(PL)?(\d{10}|(\d{3}-\d{3}-\d{2}-\d{2})|(\d{3}-\d{2}-\d{2}-\d{3}))$/.test(e)},PT:function(e){var t=e.match(/^(PT)?(\d{9})$/);if(!t)return!1;var r=t[2],n=11-o.reverseMultiplyAndSum(r.split("").slice(0,8).map(function(e){return parseInt(e,10)}),9)%11;return n>9?0===parseInt(r[8],10):n===parseInt(r[8],10)},RO:function(e){return/^(RO)?\d{2,10}$/.test(e)},SK:function(e){return/^(SK)?\d{10}$/.test(e)},SI:function(e){return/^(SI)?\d{8}$/.test(e)},ES:function(e){return/^(ES)?\w\d{7}[A-Z]$/.test(e)},SE:function(e){return/^(SE)?\d{12}$/.test(e)},AL:function(e){return/^(AL)?\w{9}[A-Z]$/.test(e)},MK:function(e){return/^(MK)?\d{13}$/.test(e)},AU:function(e){if(!e.match(/^(AU)?(\d{11})$/))return!1;var t=[10,1,3,5,7,9,11,13,15,17,19];e=e.replace(/^AU/,"");for(var r=(parseInt(e.slice(0,1),10)-1).toString()+e.slice(1),n=0,i=0;i<11;i++)n+=t[i]*r.charAt(i);return 0!==n&&n%89==0},BY:function(e){return/^(УНП )?\d{9}$/.test(e)},CA:function(e){return/^(CA)?\d{9}$/.test(e)},IS:function(e){return/^(IS)?\d{5,6}$/.test(e)},IN:function(e){return/^(IN)?\d{15}$/.test(e)},ID:function(e){return/^(ID)?(\d{15}|(\d{2}.\d{3}.\d{3}.\d{1}-\d{3}.\d{3}))$/.test(e)},IL:function(e){return/^(IL)?\d{9}$/.test(e)},KZ:function(e){return/^(KZ)?\d{12}$/.test(e)},NZ:function(e){return/^(NZ)?\d{9}$/.test(e)},NG:function(e){return/^(NG)?(\d{12}|(\d{8}-\d{4}))$/.test(e)},NO:function(e){return/^(NO)?\d{9}MVA$/.test(e)},PH:function(e){return/^(PH)?(\d{12}|\d{3} \d{3} \d{3} \d{3})$/.test(e)},RU:function(e){return/^(RU)?(\d{10}|\d{12})$/.test(e)},SM:function(e){return/^(SM)?\d{5}$/.test(e)},SA:function(e){return/^(SA)?\d{15}$/.test(e)},RS:function(e){return/^(RS)?\d{9}$/.test(e)},CH:function(e){var t,r,n;return/^(CHE[- ]?)?(\d{9}|(\d{3}\.\d{3}\.\d{3})|(\d{3} \d{3} \d{3})) ?(TVA|MWST|IVA)?$/.test(e)&&(t=e.match(/\d/g).map(function(e){return+e}),r=t.pop(),n=[5,4,3,2,7,6,5,4],r===(11-t.reduce(function(e,t,r){return e+t*n[r]},0)%11)%11)},TR:function(e){return/^(TR)?\d{10}$/.test(e)},UA:function(e){return/^(UA)?\d{12}$/.test(e)},GB:function(e){return/^GB((\d{3} \d{4} ([0-8][0-9]|9[0-6]))|(\d{9} \d{3})|(((GD[0-4])|(HA[5-9]))[0-9]{2}))$/.test(e)},UZ:function(e){return/^(UZ)?\d{9}$/.test(e)},AR:function(e){return/^(AR)?\d{11}$/.test(e)},BO:function(e){return/^(BO)?\d{7}$/.test(e)},BR:function(e){return/^(BR)?((\d{2}.\d{3}.\d{3}\/\d{4}-\d{2})|(\d{3}.\d{3}.\d{3}-\d{2}))$/.test(e)},CL:function(e){return/^(CL)?\d{8}-\d{1}$/.test(e)},CO:function(e){return/^(CO)?\d{10}$/.test(e)},CR:function(e){return/^(CR)?\d{9,12}$/.test(e)},EC:function(e){return/^(EC)?\d{13}$/.test(e)},SV:function(e){return/^(SV)?\d{4}-\d{6}-\d{3}-\d{1}$/.test(e)},GT:function(e){return/^(GT)?\d{7}-\d{1}$/.test(e)},HN:function(e){return/^(HN)?$/.test(e)},MX:function(e){return/^(MX)?\w{3,4}\d{6}\w{3}$/.test(e)},NI:function(e){return/^(NI)?\d{3}-\d{6}-\d{4}\w{1}$/.test(e)},PA:function(e){return/^(PA)?$/.test(e)},PY:function(e){return/^(PY)?\d{6,8}-\d{1}$/.test(e)},PE:function(e){return/^(PE)?\d{11}$/.test(e)},DO:function(e){return/^(DO)?(\d{11}|(\d{3}-\d{7}-\d{1})|[1,4,5]{1}\d{8}|([1,4,5]{1})-\d{2}-\d{5}-\d{1})$/.test(e)},UY:function(e){return/^(UY)?\d{12}$/.test(e)},VE:function(e){return/^(VE)?[J,G,V,E]{1}-(\d{9}|(\d{8}-\d{1}))$/.test(e)}}},55613:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionControlFlowReplacer=void 0;const s=r(71519),c=r(32287),u=r(96747),l=r(81394);let d=n=class extends l.ExpressionWithOperatorControlFlowReplacer{constructor(e,t,r,n){super(e,t,r,n)}replace(e,t,r){const i=e.operator,a=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.BinaryExpressionFunctionNode);a.initialize(i);const o=this.insertCustomNodeToControlFlowStorage(a,r,i,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),o,e.left,e.right)}};t.BinaryExpressionControlFlowReplacer=d,d.usingExistingIdentifierChance=.5,t.BinaryExpressionControlFlowReplacer=d=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__IControlFlowCustomNode)),o(1,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(3,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Function,Object,Object])],d)},55730:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=e.join("");return new RegExp(r,t)},e.exports=t.default,e.exports.default=t.default},56370:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelperGroup=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(79011),l=r(18436),d=r(87415),f=r(30386),p=r(32504);let h=class extends d.AbstractCustomCodeHelperGroup{constructor(e,t,r,n){super(t,r,n),this.customCodeHelperFactory=e}appendOnPreparingStage(e,t){var r;if(!this.options.selfDefending)return;const n=this.getRandomCallsGraphIndex(t.length),i=t.length?f.NodeAppender.getOptimalBlockScope(t,n):e,a=t.length?f.NodeAppender.getOptimalBlockScope(t,n,1):e,o=null!==(r=p.NodeLexicalScopeUtils.getLexicalScope(i))&&void 0!==r?r:null,s=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext(),c=o?this.identifierNamesGenerator.generate(o):this.identifierNamesGenerator.generateNext();this.appendCustomNodeIfExist(u.CustomCodeHelper.SelfDefending,e=>{e.initialize(c,s),f.NodeAppender.prepend(i,e.getNode())}),this.appendCustomNodeIfExist(u.CustomCodeHelper.CallsControllerFunction,e=>{e.initialize(l.NodeTransformationStage.Preparing,c),f.NodeAppender.prepend(a,e.getNode())})}initialize(){if(this.customCodeHelpers=new Map,!this.options.selfDefending)return;const e=this.customCodeHelperFactory(u.CustomCodeHelper.SelfDefending),t=this.customCodeHelperFactory(u.CustomCodeHelper.CallsControllerFunction);this.customCodeHelpers.set(u.CustomCodeHelper.SelfDefending,e),this.customCodeHelpers.set(u.CustomCodeHelper.CallsControllerFunction,t)}};t.SelfDefendingCodeHelperGroup=h,n([(0,c.initializable)(),i("design:type",Map)],h.prototype,"customCodeHelpers",void 0),t.SelfDefendingCodeHelperGroup=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__ICustomCodeHelper)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object])],h)},56436:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.customNodesModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(96747),s=r(21186),c=r(63726),u=r(68736),l=r(68121),d=r(28901),f=r(89711),p=r(44269),h=r(27680),m=r(32795),g=r(93297),b=r(75269),y=r(76059),S=r(84392),v=r(47875),_=r(11980),C=r(38094),A=r(15882),E=r(46438),x=r(61647),N=r(57183);t.customNodesModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(l.BinaryExpressionFunctionNode).whenTargetNamed(o.ControlFlowCustomNode.BinaryExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(d.BlockStatementControlFlowFlatteningNode).whenTargetNamed(o.ControlFlowCustomNode.BlockStatementControlFlowFlatteningNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(p.CallExpressionControlFlowStorageCallNode).whenTargetNamed(o.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(h.CallExpressionFunctionNode).whenTargetNamed(o.ControlFlowCustomNode.CallExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(m.ControlFlowStorageNode).whenTargetNamed(o.ControlFlowCustomNode.ControlFlowStorageNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(g.ExpressionWithOperatorControlFlowStorageCallNode).whenTargetNamed(o.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(N.LiteralNode).whenTargetNamed(o.ControlFlowCustomNode.LiteralNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(b.LogicalExpressionFunctionNode).whenTargetNamed(o.ControlFlowCustomNode.LogicalExpressionFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(x.StringLiteralControlFlowStorageCallNode).whenTargetNamed(o.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(f.BlockStatementDeadCodeInjectionNode).whenTargetNamed(s.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(y.ObjectExpressionVariableDeclarationHostNode).whenTargetNamed(c.ObjectExpressionKeysTransformerCustomNode.ObjectExpressionVariableDeclarationHostNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(S.StringArrayCallNode).whenTargetNamed(u.StringArrayCustomNode.StringArrayCallNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(A.StringArrayScopeCallsWrapperFunctionNode).whenTargetNamed(u.StringArrayCustomNode.StringArrayScopeCallsWrapperFunctionNode),e(a.ServiceIdentifiers.Newable__ICustomNode).toConstructor(E.StringArrayScopeCallsWrapperVariableNode).whenTargetNamed(u.StringArrayCustomNode.StringArrayScopeCallsWrapperVariableNode),e(a.ServiceIdentifiers.IStringArrayIndexNode).to(v.StringArrayHexadecimalNumberIndexNode).inSingletonScope().whenTargetNamed(C.StringArrayIndexNode.StringArrayHexadecimalNumberIndexNode),e(a.ServiceIdentifiers.IStringArrayIndexNode).to(_.StringArrayHexadecimalNumericStringIndexNode).inSingletonScope().whenTargetNamed(C.StringArrayIndexNode.StringArrayHexadecimalNumericStringIndexNode),e(a.ServiceIdentifiers.Factory__IControlFlowCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.ICustomCodeHelperFormatter,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.ICustomCodeHelperFormatter,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IObjectExpressionKeysTransformerCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.ICustomCodeHelperFormatter,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IStringArrayCustomNode).toFactory(n.InversifyContainerFacade.getConstructorFactory(a.ServiceIdentifiers.Newable__ICustomNode,a.ServiceIdentifiers.Factory__IIdentifierNamesGenerator,a.ServiceIdentifiers.Factory__IStringArrayIndexNode,a.ServiceIdentifiers.ICustomCodeHelperFormatter,a.ServiceIdentifiers.IStringArrayStorage,a.ServiceIdentifiers.IArrayUtils,a.ServiceIdentifiers.IRandomGenerator,a.ServiceIdentifiers.IOptions)),e(a.ServiceIdentifiers.Factory__IStringArrayIndexNode).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.IStringArrayIndexNode))})},56921:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VariablePreserveTransformer=void 0;const o=r(71519),s=r(96390),c=r(32287),u=r(18436),l=r(76893),d=r(23615);let f=class extends l.AbstractNodeTransformer{constructor(e,t,r,n){super(t,r),this.runAfter=[s.NodeTransformer.ParentificationTransformer],this.identifierReplacer=e,this.scopeIdentifiersTraverser=n,this.preserveScopeVariableIdentifiers=this.preserveScopeVariableIdentifiers.bind(this)}getVisitor(e){switch(e){case u.NodeTransformationStage.Preparing:case u.NodeTransformationStage.Converting:case u.NodeTransformationStage.RenameIdentifiers:return{enter:(e,t)=>{if(t&&d.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}};default:return null}}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeIdentifiers(e,t,this.preserveScopeVariableIdentifiers),e}preserveScopeVariableIdentifiers(e){const{isGlobalDeclaration:t,isBubblingDeclaration:r,variable:n,variableScope:i}=e;for(const e of n.identifiers)t||r?this.preserveIdentifierNameForRootLexicalScope(e):this.preserveIdentifierNameForLexicalScope(e,i)}preserveIdentifierNameForRootLexicalScope(e){this.identifierReplacer.preserveName(e)}preserveIdentifierNameForLexicalScope(e,t){const r=d.NodeGuards.isNodeWithLexicalScope(t.block)?t.block:null;r&&this.identifierReplacer.preserveNameForLexicalScope(e,r)}};t.VariablePreserveTransformer=f,t.VariablePreserveTransformer=f=n([(0,o.injectable)(),a(0,(0,o.inject)(c.ServiceIdentifiers.IIdentifierReplacer)),a(1,(0,o.inject)(c.ServiceIdentifiers.IRandomGenerator)),a(2,(0,o.inject)(c.ServiceIdentifiers.IOptions)),a(3,(0,o.inject)(c.ServiceIdentifiers.IScopeIdentifiersTraverser)),i("design:paramtypes",[Object,Object,Object,Object])],f)},57013:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomNode=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t,r,n){this.cachedNode=null,this.identifierNamesGenerator=e(n),this.customCodeHelperFormatter=t,this.randomGenerator=r,this.options=n}getNode(){return this.cachedNode||(this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure())),this.cachedNode}};t.AbstractCustomNode=c,t.AbstractCustomNode=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],c)},57086:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(e);var t=e.replace(/\s+/g," ").replace(/\s?(hsla?\(|\)|,)\s?/gi,"$1");if(-1!==t.indexOf(","))return a.test(t);return o.test(t)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(,(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}(,((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?))?\)$/i,o=/^hsla?\(((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?))(deg|grad|rad|turn)?(\s(\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%){2}\s?(\/\s((\+|\-)?([0-9]+(\.[0-9]+)?(e(\+|\-)?[0-9]+)?|\.[0-9]+(e(\+|\-)?[0-9]+)?)%?)\s?)?\)$/i;e.exports=t.default,e.exports.default=t.default},57159:function(e,t,r){"use strict";var n,i,a=r(65606),o=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),s=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),c=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},u=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(57013),l=r(91363);let d=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.literalNode=e}getNodeStructure(){return[l.NodeFactory.expressionStatementNode(this.literalNode)]}};t.LiteralNode=d,n([(0,c.initializable)(),i("design:type",Object)],d.prototype,"literalNode",void 0),t.LiteralNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],d)},57192:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}},s=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.RenamePropertiesReplacer=void 0;const c=r(71519),u=r(32287),l=s(r(66152)),d=r(23615),f=r(91363);let p=n=class{constructor(e,t,r){this.excludedPropertyNames=new Set,this.propertyNamesMap=new Map,this.identifierNamesGenerator=e(r),this.propertyIdentifierNamesCacheStorage=t,this.options=r}excludePropertyName(e){this.excludedPropertyNames.add(e)}replace(e){return d.NodeGuards.isIdentifierNode(e)?f.NodeFactory.identifierNode(this.replacePropertyName(e.name)):d.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value?f.NodeFactory.literalNode(this.replacePropertyName(e.value)):e}replacePropertyName(e){var t,r;if(this.isReservedName(e))return this.identifierNamesGenerator.preserveName(e),e;let n=this.options.identifierNamesCache&&null!==(t=this.propertyIdentifierNamesCacheStorage.get(e))&&void 0!==t?t:null;return n=null!==(r=null!=n?n:this.propertyNamesMap.get(e))&&void 0!==r?r:null,null!==n||(n=this.identifierNamesGenerator.generateNext(),this.propertyNamesMap.set(e,n),this.options.identifierNamesCache&&this.propertyIdentifierNamesCacheStorage.set(e,n)),n}isReservedName(e){return this.isExcludedName(e)||this.isReservedOptionName(e)||this.isReservedDomPropertyName(e)}isExcludedName(e){return this.excludedPropertyNames.has(e)}isReservedOptionName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}isReservedDomPropertyName(e){return n.reservedDomPropertiesList.has(e)}};t.RenamePropertiesReplacer=p,p.reservedDomPropertiesList=new Set(l.default),t.RenamePropertiesReplacer=p=n=i([(0,c.injectable)(),o(0,(0,c.inject)(u.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(1,(0,c.inject)(u.ServiceIdentifiers.IPropertyIdentifierNamesCacheStorage)),o(2,(0,c.inject)(u.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Object,Object])],p)},57637:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ModuleActivationStore=void 0;var n=r(29378),i=function(){function e(){this._map=new Map}return e.prototype.remove=function(e){var t=this._map.get(e);return void 0===t?this._getEmptyHandlersStore():(this._map.delete(e),t)},e.prototype.addDeactivation=function(e,t,r){this._getModuleActivationHandlers(e).onDeactivations.add(t,r)},e.prototype.addActivation=function(e,t,r){this._getModuleActivationHandlers(e).onActivations.add(t,r)},e.prototype.clone=function(){var t=new e;return this._map.forEach(function(e,r){t._map.set(r,{onActivations:e.onActivations.clone(),onDeactivations:e.onDeactivations.clone()})}),t},e.prototype._getModuleActivationHandlers=function(e){var t=this._map.get(e);return void 0===t&&(t=this._getEmptyHandlersStore(),this._map.set(e,t)),t},e.prototype._getEmptyHandlersStore=function(){return{onActivations:new n.Lookup,onDeactivations:new n.Lookup}},e}();t.ModuleActivationStore=i},57658:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e),(t=(0,i.default)(t,o)).allow_trailing_dot&&"."===e[e.length-1]&&(e=e.substring(0,e.length-1));!0===t.allow_wildcard&&0===e.indexOf("*.")&&(e=e.substring(2));var r=e.split("."),a=r[r.length-1];if(t.require_tld){if(r.length<2)return!1;if(!t.allow_numeric_tld&&!/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i.test(a))return!1;if(/\s/.test(a))return!1}if(!t.allow_numeric_tld&&/^\d+$/.test(a))return!1;return r.every(function(e){return!(e.length>63&&!t.ignore_max_length)&&(!!/^[a-z_\u00a1-\uffff0-9-]+$/i.test(e)&&(!/[\uff01-\uff5e]/.test(e)&&(!/^-|-$/.test(e)&&!(!t.allow_underscores&&/_/.test(e)))))})};var n=a(r(83399)),i=a(r(93610));function a(e){return e&&e.__esModule?e:{default:e}}var o={require_tld:!0,allow_underscores:!1,allow_trailing_dot:!1,allow_numeric_tld:!1,allow_wildcard:!1,ignore_max_length:!1};e.exports=t.default,e.exports.default=t.default},57761:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=Qe(r(13752)),a=Qe(r(33752)),o=Qe(r(50855)),s=Qe(r(43214)),c=Qe(r(40700)),u=Qe(r(59220)),l=Qe(r(72576)),d=Qe(r(69517)),f=Qe(r(77844)),p=Qe(r(3196)),h=Qe(r(35372)),m=Qe(r(17115)),g=Qe(r(57658)),b=Qe(r(99013)),y=Qe(r(58796)),S=Qe(r(1697)),v=Qe(r(7071)),_=Qe(r(14325)),C=Je(r(66529)),A=Je(r(98986)),E=Qe(r(21666)),x=Je(r(93442)),N=Qe(r(33906)),I=Qe(r(37612)),T=Qe(r(75577)),D=Qe(r(8461)),O=Qe(r(74294)),M=Qe(r(29666)),R=Qe(r(49534)),F=Qe(r(31449)),P=Qe(r(72830)),w=Qe(r(99841)),B=Qe(r(43459)),k=Qe(r(76084)),L=Je(r(50995)),$=Qe(r(45926)),j=Qe(r(82002)),G=Qe(r(99546)),V=Qe(r(13735)),U=Qe(r(24641)),H=Qe(r(45467)),K=Qe(r(57086)),W=Qe(r(31954)),z=Je(r(23641)),X=Qe(r(55259)),Y=Qe(r(59745)),Z=Qe(r(33973)),q=Qe(r(29172)),J=Qe(r(75751)),Q=Qe(r(2056)),ee=Qe(r(29285)),te=Qe(r(46255)),re=Qe(r(49877)),ne=Qe(r(65186)),ie=Qe(r(31252)),ae=Qe(r(61195)),oe=Qe(r(66658)),se=Qe(r(19266)),ce=Qe(r(73609)),ue=Qe(r(61062)),le=Qe(r(62645)),de=Qe(r(27717)),fe=Qe(r(92678)),pe=Qe(r(59717)),he=Qe(r(60604)),me=Qe(r(77741)),ge=Je(r(95251)),be=Qe(r(60082)),ye=Qe(r(6782)),Se=Qe(r(25748)),ve=r(45777),_e=Qe(r(48033)),Ce=Qe(r(66169)),Ae=Qe(r(61578)),Ee=Qe(r(53405)),xe=Qe(r(88447)),Ne=Qe(r(53832)),Ie=Qe(r(3158)),Te=Qe(r(88342)),De=Qe(r(7673)),Oe=Qe(r(26617)),Me=Qe(r(98274)),Re=Qe(r(73583)),Fe=Qe(r(27349)),Pe=Qe(r(32337)),we=Qe(r(64633)),Be=Qe(r(5830)),ke=Je(r(93939)),Le=Qe(r(62309)),$e=Qe(r(12483)),je=Qe(r(30317)),Ge=Qe(r(69790)),Ve=Qe(r(87677)),Ue=Qe(r(561)),He=Qe(r(61996)),Ke=Qe(r(410)),We=Qe(r(90629)),ze=Qe(r(81128)),Xe=Qe(r(69234)),Ye=Qe(r(10676)),Ze=Qe(r(17179)),qe=Qe(r(55366));function Je(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return(Je=function(e,t){if(!t&&e&&e.__esModule)return e;var a,o,s={__proto__:null,default:e};if(null===e||"object"!=n(e)&&"function"!=typeof e)return s;if(a=t?i:r){if(a.has(e))return a.get(e);a.set(e,s)}for(var c in e)"default"!==c&&{}.hasOwnProperty.call(e,c)&&((o=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(o.get||o.set)?a(s,c,o):s[c]=e[c]);return s})(e,t)}function Qe(e){return e&&e.__esModule?e:{default:e}}var et={version:"13.15.23",toDate:i.default,toFloat:a.default,toInt:o.default,toBoolean:s.default,equals:c.default,contains:u.default,matches:l.default,isEmail:d.default,isURL:f.default,isMACAddress:p.default,isIP:h.default,isIPRange:m.default,isFQDN:g.default,isBoolean:S.default,isIBAN:z.default,isBIC:X.default,isAbaRouting:_.default,isAlpha:C.default,isAlphaLocales:C.locales,isAlphanumeric:A.default,isAlphanumericLocales:A.locales,isNumeric:E.default,isPassportNumber:x.default,passportNumberLocales:x.locales,isPort:N.default,isLowercase:I.default,isUppercase:T.default,isAscii:O.default,isFullWidth:M.default,isHalfWidth:R.default,isVariableWidth:F.default,isMultibyte:P.default,isSemVer:w.default,isSurrogatePair:B.default,isInt:k.default,isIMEI:D.default,isFloat:L.default,isFloatLocales:L.locales,isDecimal:$.default,isHexadecimal:j.default,isOctal:G.default,isDivisibleBy:V.default,isHexColor:U.default,isRgbColor:H.default,isHSL:K.default,isISRC:W.default,isMD5:Y.default,isHash:Z.default,isJWT:q.default,isJSON:J.default,isEmpty:Q.default,isLength:ee.default,isLocale:v.default,isByteLength:te.default,isULID:re.default,isUUID:ne.default,isMongoId:ie.default,isAfter:ae.default,isBefore:oe.default,isIn:se.default,isLuhnNumber:ce.default,isCreditCard:ue.default,isIdentityCard:le.default,isEAN:de.default,isISIN:fe.default,isISBN:pe.default,isISSN:he.default,isMobilePhone:ge.default,isMobilePhoneLocales:ge.locales,isPostalCode:ke.default,isPostalCodeLocales:ke.locales,isEthereumAddress:be.default,isCurrency:ye.default,isBtcAddress:Se.default,isISO6346:ve.isISO6346,isFreightContainerID:ve.isFreightContainerID,isISO6391:_e.default,isISO8601:Ce.default,isISO15924:Ee.default,isRFC3339:Ae.default,isISO31661Alpha2:xe.default,isISO31661Alpha3:Ne.default,isISO31661Numeric:Ie.default,isISO4217:Te.default,isBase32:De.default,isBase58:Oe.default,isBase64:Me.default,isDataURI:Re.default,isMagnetURI:Fe.default,isMailtoURI:Pe.default,isMimeType:we.default,isLatLong:Be.default,ltrim:Le.default,rtrim:$e.default,trim:je.default,escape:Ge.default,unescape:Ve.default,stripLow:Ue.default,whitelist:He.default,blacklist:Ke.default,isWhitelisted:We.default,normalizeEmail:ze.default,toString,isSlug:Xe.default,isStrongPassword:Ze.default,isTaxID:me.default,isDate:b.default,isTime:y.default,isLicensePlate:Ye.default,isVAT:qe.default,ibanLocales:z.locales};t.default=et;e.exports=t.default,e.exports.default=t.default},57876:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumberUtils=void 0;const n=r(65063);t.NumberUtils=class{static toHex(e){const t="number"==typeof e?e.toString(16):`${e.toString(16)}n`;return`${n.Utils.hexadecimalPrefix}${t}`}static extractIntegerAndDecimalParts(e){const t=Math.trunc(e);return[t,e!==t?e%1:null]}static isCeil(e){return"number"!=typeof e||e%1==0}static isPositive(e){if(isNaN(e))throw new Error("Given value is NaN");return e>0||!(e<0)&&1/e===Number.POSITIVE_INFINITY}static isUnsafeNumber(e){if(isNaN(e))throw new Error("Given value is NaN");return eNumber.MAX_SAFE_INTEGER}static getFactors(e){if(0===e)throw new Error("Invalid number. Allowed only non-zero number");if(1===(e=Math.abs(e)))return[-e,e];const t=[],r=Math.sqrt(e),n=e%2==0?1:2;for(let i=1;i<=r;i+=n){const r=e/i;e-Math.floor(r)*i!==0||(t.push(-i,i),r!==i&&t.push(-r,r))}return t.sort((e,t)=>e-t)}}},58303:(e,t,r)=>{var n=r(93961);t.operation=function(e){var r=t.timeouts(e);return new n(r,{forever:e&&(e.forever||e.retries===1/0),unref:e&&e.unref,maxRetryTime:e&&e.maxRetryTime})},t.timeouts=function(e){if(e instanceof Array)return[].concat(e);var t={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var r in e)t[r]=e[r];if(t.minTimeout>t.maxTimeout)throw new Error("minTimeout is greater than maxTimeout");for(var n=[],i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return t=(0,i.default)(t,a),"string"==typeof e&&o[t.hourFormat][t.mode].test(e)};var n,i=(n=r(93610))&&n.__esModule?n:{default:n};var a={hourFormat:"hour24",mode:"default"},o={hour24:{default:/^([01]?[0-9]|2[0-3]):([0-5][0-9])$/,withSeconds:/^([01]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/,withOptionalSeconds:/^([01]?[0-9]|2[0-3]):([0-5][0-9])(?::([0-5][0-9]))?$/},hour12:{default:/^(0?[1-9]|1[0-2]):([0-5][0-9]) (A|P)M$/,withSeconds:/^(0?[1-9]|1[0-2]):([0-5][0-9]):([0-5][0-9]) (A|P)M$/,withOptionalSeconds:/^(0?[1-9]|1[0-2]):([0-5][0-9])(?::([0-5][0-9]))? (A|P)M$/}};e.exports=t.default,e.exports.default=t.default},59070:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(t&&_.NodeGuards.isFunctionNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(this.visitedFunctionNodes.add(e),!_.NodeGuards.isBlockStatementNode(e.body))return e;const r=this.getHostNode(e.body),n=this.getControlFlowStorage(r);if(this.transformFunctionBody(e,n),!n.getLength())return e;const i=this.getControlFlowStorageNode(n);return this.appendControlFlowStorageNode(r,i),e}transformFunctionBody(e,t){p.replace(e.body,{enter:(r,n)=>this.transformFunctionBodyNode(r,n,e,t)})}transformFunctionBodyNode(e,t,r,n){var i;if(!t||C.NodeMetadata.isIgnoredNode(e)||this.isVisitedFunctionNode(e))return p.VisitorOption.Skip;const a=null!==(i=this.controlFlowReplacersMap.get(e.type))&&void 0!==i?i:null;if(!a)return e;if(!this.isAllowedTransformationByThreshold())return e;const o=this.controlFlowReplacerFactory(a).replace(e,t,n);return E.NodeUtils.parentizeNode(o,t),o}getHostNode(e){const t=A.NodeStatementUtils.getParentNodesWithStatements(e);return 1===t.length?e:(t.pop(),t.length>i.hostNodeSearchMinDepth&&t.splice(0,i.hostNodeSearchMinDepth),t.length>i.hostNodeSearchMaxDepth&&(t.length=i.hostNodeSearchMaxDepth),this.randomGenerator.getRandomGenerator().pickone(t))}getControlFlowStorage(e){var t,r;let n;const i=null!==(t=this.controlFlowData.get(e))&&void 0!==t?t:null;if(i){const t=null!==(r=this.hostNodesWithControlFlowNode.get(e))&&void 0!==r?r:null;t&&v.NodeAppender.remove(e,t),n=i}else n=this.controlFlowStorageFactory();return this.controlFlowData.set(e,n),n}getControlFlowStorageNode(e){const t=this.controlFlowCustomNodeFactory(h.ControlFlowCustomNode.ControlFlowStorageNode);t.initialize(e);const r=t.getNode()[0];if(!_.NodeGuards.isVariableDeclarationNode(r))throw new Error("`controlFlowStorageNode` should contain `VariableDeclaration` node with control flow storage object");return r}appendControlFlowStorageNode(e,t){E.NodeUtils.parentizeAst(t),v.NodeAppender.prepend(e,[t]),this.hostNodesWithControlFlowNode.set(e,t)}isVisitedFunctionNode(e){return _.NodeGuards.isFunctionNode(e)&&this.visitedFunctionNodes.has(e)}isAllowedTransformationByThreshold(){return this.randomGenerator.getMathRandom()<=this.options.controlFlowFlatteningThreshold}};t.FunctionControlFlowTransformer=x,x.hostNodeSearchMinDepth=0,x.hostNodeSearchMaxDepth=2,t.FunctionControlFlowTransformer=x=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.Factory__TControlFlowStorage)),l(1,(0,d.inject)(f.ServiceIdentifiers.Factory__IControlFlowReplacer)),l(2,(0,d.inject)(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(3,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(4,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Function,Function,Object,Object])],x)},59220:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){if((0,n.default)(e),(r=(0,a.default)(r,s)).ignoreCase)return e.toLowerCase().split((0,i.default)(t).toLowerCase()).length>r.minOccurrences;return e.split((0,i.default)(t)).length>r.minOccurrences};var n=o(r(83399)),i=o(r(45772)),a=o(r(93610));function o(e){return e&&e.__esModule?e:{default:e}}var s={ignoreCase:!1,minOccurrences:1};e.exports=t.default,e.exports.default=t.default},59404:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyContainerFacade=void 0;const n=r(71519),i=r(32287),a=r(76849),o=r(16744),s=r(25191),c=r(17793),u=r(21069),l=r(56436),d=r(43254),f=r(21385),p=r(51155),h=r(54829),m=r(48007),g=r(12920),b=r(90169),y=r(88590),S=r(48284),v=r(39015),_=r(7155),C=r(66811),A=r(49840),E=r(14613),x=r(71612),N=r(57159),I=r(50069),T=r(5036),D=r(85088),O=r(16128);t.InversifyContainerFacade=class{constructor(){this.container=new n.Container}static getFactory(e){return t=>r=>t.container.getNamed(e,r)}static getCacheFactory(e){return t=>{const r=new Map;return n=>{if(r.has(n))return r.get(n);const i=t.container.getNamed(e,n);return r.set(n,i),i}}}static getConstructorFactory(e,...t){return r=>{const n=new Map,i=[];return a=>{if(t.forEach((e,t)=>{i[t]||(i[t]=r.container.get(e))}),n.has(a))return new(n.get(a))(...i);const o=r.container.getNamed(e,a);return n.set(a,o),new o(...i)}}}get(e){return this.container.get(e)}getNamed(e,t){return this.container.getNamed(e,t)}load(e,t,r){this.container.bind(i.ServiceIdentifiers.ISourceCode).toDynamicValue(()=>new O.SourceCode(e,t)).inSingletonScope(),this.container.bind(i.ServiceIdentifiers.TInputOptions).toDynamicValue(()=>r).inSingletonScope(),this.container.bind(i.ServiceIdentifiers.ILogger).to(I.Logger).inSingletonScope(),this.container.bind(i.ServiceIdentifiers.IJavaScriptObfuscator).to(N.JavaScriptObfuscator).inSingletonScope(),this.container.bind(i.ServiceIdentifiers.ICodeTransformersRunner).to(x.CodeTransformersRunner).inSingletonScope(),this.container.bind(i.ServiceIdentifiers.INodeTransformersRunner).to(T.NodeTransformersRunner).inSingletonScope(),this.container.bind(i.ServiceIdentifiers.IObfuscationResult).to(D.ObfuscationResult),this.container.bind(i.ServiceIdentifiers.Factory__IObfuscationResult).toFactory(e=>(t,r)=>{const n=e.container.get(i.ServiceIdentifiers.IObfuscationResult);return n.initialize(t,r),n}),this.container.load(a.analyzersModule),this.container.load(o.codeTransformersModule),this.container.load(s.controlFlowTransformersModule),this.container.load(c.convertingTransformersModule),this.container.load(u.customCodeHelpersModule),this.container.load(l.customNodesModule),this.container.load(d.deadCodeInjectionTransformersModule),this.container.load(f.finalizingTransformersModule),this.container.load(p.generatorsModule),this.container.load(h.initializingTransformersModule),this.container.load(m.nodeModule),this.container.load(g.nodeTransformersModule),this.container.load(b.optionsModule),this.container.load(y.preparingTransformersModule),this.container.load(S.renameIdentifiersTransformersModule),this.container.load(v.renamePropertiesTransformersModule),this.container.load(_.simplifyingTransformersModule),this.container.load(C.storagesModule),this.container.load(A.stringArrayTransformersModule),this.container.load(E.utilsModule)}unload(){this.container.unbindAll()}}},59517:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.updateReflectMetadata=t.getReflectMetadata=void 0;const n=r(3654);Object.defineProperty(t,"getReflectMetadata",{enumerable:!0,get:function(){return n.getReflectMetadata}});const i=r(22671);Object.defineProperty(t,"updateReflectMetadata",{enumerable:!0,get:function(){return i.updateReflectMetadata}})},59717:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function e(t,r){(0,i.default)(t);var n=String((null==r?void 0:r.version)||r);if(!(null!=r&&r.version||r))return e(t,{version:10})||e(t,{version:13});var c=t.replace(/[\s-]+/g,""),u=0;if("10"===n){if(!a.test(c))return!1;for(var l=0;l{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[a-f0-9]{32}$/;e.exports=t.default,e.exports.default=t.default},60056:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayWrappersType=void 0;const n=r(65063);t.StringArrayWrappersType=n.Utils.makeEnum({Variable:"variable",Function:"function"})},60082:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^(0x)[0-9a-f]{40}$/i;e.exports=t.default,e.exports.default=t.default},60108:(e,t)=>{"use strict";function r(e){return("object"==typeof e&&null!==e||"function"==typeof e)&&"function"==typeof e.then}Object.defineProperty(t,"__esModule",{value:!0}),t.isPromise=r,t.isPromiseOrContainsPromise=function(e){if(r(e))return!0;return Array.isArray(e)&&e.some(r)}},60498:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(t&&g.NodeGuards.isExpressionStatementNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(!g.NodeGuards.isNodeWithStatements(t))return e;const r=b.NodeStatementUtils.getPreviousSiblingStatement(e);return r&&g.NodeGuards.isExpressionStatementNode(r)?(g.NodeGuards.isSequenceExpressionNode(r.expression)?(r.expression.expressions.push(e.expression),y.NodeUtils.parentizeNode(e.expression,r.expression)):(r.expression=m.NodeFactory.sequenceExpressionNode([r.expression,e.expression]),y.NodeUtils.parentizeAst(r.expression),y.NodeUtils.parentizeNode(r.expression,r)),f.VisitorOption.Remove):e}};t.ExpressionStatementsMergeTransformer=S,t.ExpressionStatementsMergeTransformer=S=o([(0,l.injectable)(),u(0,(0,l.inject)(d.ServiceIdentifiers.IRandomGenerator)),u(1,(0,l.inject)(d.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Object,Object])],S)},60509:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DeadCodeInjectionRule=void 0;const n=r(11839);t.DeadCodeInjectionRule=e=>(e.deadCodeInjection&&((e={...e,deadCodeInjection:!0,stringArray:!0}).stringArrayThreshold||(e={...e,stringArray:!0,stringArrayThreshold:n.DEFAULT_PRESET.stringArrayThreshold})),e)},60604:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(e);var r=a;if(r=t.require_hyphen?r.replace("?",""):r,!(r=t.case_sensitive?new RegExp(r):new RegExp(r,"i")).test(e))return!1;for(var n=e.replace("-","").toUpperCase(),o=0,s=0;s{"use strict";e.exports={version:"4.3.0"}},60739:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(t===e&&(o=!0),o&&!a&&(b.NodeGuards.isCallExpressionNode(t)||b.NodeGuards.isNewExpressionNode(t))&&(a=!0),b.NodeGuards.isIdentifierNode(t)||b.NodeGuards.isThisExpressionNode(t)){const e=b.NodeGuards.isIdentifierNode(t)?t.name:i.thisIdentifierName;o?r.has(e)&&(n=!0):r.add(e)}if(n&&a)return p.VisitorOption.Break},leave:t=>{if(t===e&&(o=!1,n||a))return p.VisitorOption.Break}}),{hasReferencedIdentifier:n,hasCallExpression:a}}static isProhibitedObjectExpressionNode(e,t,r){if(i.isProhibitedArrowFunctionExpression(e,t)||i.isProhibitedSequenceExpression(e,r)||i.isProhibitedLoopBody(e))return!0;const{hasReferencedIdentifier:n,hasCallExpression:a}=i.checkProhibitedPatterns(e,r);return n||a}static isProhibitedLoopBody(e){let t=e;for(;t;){const e=t.parentNode;if(!e||e===t)break;if(b.NodeGuards.isLoopStatementNode(e)&&e.body===t&&!b.NodeGuards.isBlockStatementNode(t))return!0;if(b.NodeGuards.isFunctionNode(e)||b.NodeGuards.isProgramNode(e))break;t=e}return!1}static isProhibitedArrowFunctionExpression(e,t){return b.NodeGuards.isArrowFunctionExpressionNode(t)&&t.body===e}static isProhibitedSequenceExpression(e,t){return b.NodeGuards.isExpressionStatementNode(t)&&b.NodeGuards.isSequenceExpressionNode(t.expression)&&t.expression.expressions.some(e=>b.NodeGuards.isCallExpressionNode(e)&&b.NodeGuards.isSuperNode(e.callee))}getVisitor(e){return this.options.transformObjectKeys&&e===h.NodeTransformationStage.Converting?{leave:(e,t)=>{if(t&&b.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(!e.properties.length)return e;const r=y.NodeStatementUtils.getRootStatementOfNode(e);return i.isProhibitedObjectExpressionNode(e,t,r)?e:this.applyObjectExpressionKeysExtractorsRecursive(e,r,0)}applyObjectExpressionKeysExtractorsRecursive(e,t,r){const n=i.objectExpressionExtractorNames;if(r>=n.length)return e;const a=n[r],{nodeToReplace:o,objectExpressionHostStatement:s,objectExpressionNode:c}=this.objectExpressionExtractorFactory(a).extract(e,t);return this.applyObjectExpressionKeysExtractorsRecursive(c,s,r+1),o}};t.ObjectExpressionKeysTransformer=S,S.thisIdentifierName="this",S.objectExpressionExtractorNames=[m.ObjectExpressionExtractor.ObjectExpressionToVariableDeclarationExtractor,m.ObjectExpressionExtractor.BasePropertiesExtractor],t.ObjectExpressionKeysTransformer=S=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.Factory__IObjectExpressionExtractor)),l(1,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(2,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Object,Object])],S)},61062:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,n.default)(e);var r=t.provider,a=e.replace(/[- ]+/g,"");if(r&&r.toLowerCase()in o){if(!o[r.toLowerCase()].test(a))return!1}else{if(r&&!(r.toLowerCase()in o))throw new Error("".concat(r," is not a valid credit card provider."));if(!s.some(function(e){return e.test(a)}))return!1}return(0,i.default)(e)};var n=a(r(83399)),i=a(r(73609));function a(e){return e&&e.__esModule?e:{default:e}}var o={amex:/^3[47][0-9]{13}$/,dinersclub:/^3(?:0[0-5]|[68][0-9])[0-9]{11}$/,discover:/^6(?:011|5[0-9][0-9])[0-9]{12,15}$/,jcb:/^(?:2131|1800|35\d{3})\d{11}$/,mastercard:/^5[1-5][0-9]{2}|(222[1-9]|22[3-9][0-9]|2[3-6][0-9]{2}|27[01][0-9]|2720)[0-9]{12}$/,unionpay:/^(6[27][0-9]{14}|^(81[0-9]{14,17}))$/,visa:/^(?:4[0-9]{12})(?:[0-9]{3,6})?$/},s=function(){var e=[];for(var t in o)o.hasOwnProperty(t)&&e.push(o[t]);return e}();e.exports=t.default,e.exports.default=t.default},61077:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Context=void 0;var n=r(38615),i=function(){function e(e){this.id=(0,n.id)(),this.container=e}return e.prototype.addPlan=function(e){this.plan=e},e.prototype.setCurrentRequest=function(e){this.currentRequest=e},e}();t.Context=i},61146:(e,t,r)=>{!function(){"use strict";var e,n,i,a,o,s,c,u,l,d,f,p,h,m,g,b,y,S,v,_,C,A,E,x,N,I;function T(e){return Y.Statement.hasOwnProperty(e.type)}o=r(70258),s=r(36323),e=o.Syntax,i={"??":(n={Sequence:0,Yield:1,Assignment:1,Conditional:2,ArrowFunction:2,NullishCoalescing:3,LogicalOR:3,LogicalAND:4,BitwiseOR:5,BitwiseXOR:6,BitwiseAND:7,Equality:8,Relational:9,BitwiseSHIFT:10,Additive:11,Multiplicative:12,Exponentiation:13,Await:14,Unary:14,Postfix:15,OptionalChaining:16,Call:17,New:18,TaggedTemplate:19,Member:20,Primary:21}).NullishCoalescing,"||":n.LogicalOR,"&&":n.LogicalAND,"|":n.BitwiseOR,"^":n.BitwiseXOR,"&":n.BitwiseAND,"==":n.Equality,"!=":n.Equality,"===":n.Equality,"!==":n.Equality,is:n.Equality,isnt:n.Equality,"<":n.Relational,">":n.Relational,"<=":n.Relational,">=":n.Relational,in:n.Relational,instanceof:n.Relational,"<<":n.BitwiseSHIFT,">>":n.BitwiseSHIFT,">>>":n.BitwiseSHIFT,"+":n.Additive,"-":n.Additive,"*":n.Multiplicative,"%":n.Multiplicative,"/":n.Multiplicative,"**":n.Exponentiation};var D=32,O=33;function M(e,t){var r="";for(t|=0;t>0;t>>>=1,e+=e)1&t&&(r+=e);return r}function R(e){var t=e.length;return t&&s.code.isLineTerminator(e.charCodeAt(t-1))}function F(e,t){var r;for(r in t)t.hasOwnProperty(r)&&(e[r]=t[r]);return e}function P(e,t){var r,n;function i(e){return"object"==typeof e&&e instanceof Object&&!(e instanceof RegExp)}for(r in t)t.hasOwnProperty(r)&&(i(n=t[r])?i(e[r])?P(e[r],n):e[r]=P({},n):e[r]=n);return e}function w(e,t){return 8232==(-2&e)?(t?"u":"\\u")+(8232===e?"2028":"2029"):10===e||13===e?(t?"":"\\")+(10===e?"n":"r"):String.fromCharCode(e)}function B(e,t){var r;return 8===e?"\\b":12===e?"\\f":9===e?"\\t":(r=e.toString(16).toUpperCase(),l||e>255?"\\u"+"0000".slice(r.length)+r:0!==e||s.code.isDecimalDigit(t)?11===e?"\\x0B":"\\x"+"00".slice(r.length)+r:"\\0")}function k(e){if(92===e)return"\\\\";if(10===e)return"\\n";if(13===e)return"\\r";if(8232===e)return"\\u2028";if(8233===e)return"\\u2029";throw new Error("Incorrectly classified character")}function L(e){var t,r,n,i="";for(t=0,r=e.length;to&&(u=o)}for(void 0!==t?(l=c,"*"===r[1][u]&&(t+=" "),c=t):(1&u&&--u,l=c),n=1,i=r.length;n0){if(o=r,x){for(r=[],p=(a=t.leadingComments[0]).extendedRange,h=a.range,(b=((g=E.substring(p[0],h[0])).match(/\n/g)||[]).length)>0?(r.push(M("\n",b)),r.push(V(H(a)))):(r.push(g),r.push(H(a))),m=h,n=1,i=t.leadingComments.length;n0?(r.push(M("\n",b)),r.push(V(H(a)))):(r.push(g),r.push(H(a)));else for(l=!R($(r).toString()),d=M(" ",function(e){var t;for(t=e.length-1;t>=0&&!s.code.isLineTerminator(e.charCodeAt(t));--t);return e.length-1-t}($([c,r,u]).toString())),n=0,i=t.trailingComments.length;n")),t.expression?(r.push(g),"{"===(i=this.generateExpression(t.body,n.Assignment,7)).toString().charAt(0)&&(i=["(",i,")"]),r.push(i)):r.push(this.maybeBlock(t.body,9)),r},Y.prototype.generateIterationForStatement=function(t,r,i){var a=["for"+(r.await?j()+"await":"")+g+"("],o=this;return U(function(){r.left.type===e.VariableDeclaration?U(function(){a.push(r.left.kind+j()),a.push(o.generateStatement(r.left.declarations[0],0))}):a.push(o.generateExpression(r.left,n.Call,7)),a=G(a,t),a=[G(a,o.generateExpression(r.right,n.Assignment,7)),")"]}),a.push(this.maybeBlock(r.body,i)),a},Y.prototype.generatePropertyKey=function(e,t){var r=[];return t&&r.push("["),r.push(this.generateExpression(e,n.Assignment,7)),t&&r.push("]"),r},Y.prototype.generateAssignment=function(e,t,r,i,a){return n.Assignment2&&("\n"===(n=E.substring(r[0]+1,r[1]-1))[0]&&(i=["{"]),i.push(n)),u=1,8&t&&(u|=16),o=0,s=e.body.length;o0&&(e.body[o-1].trailingComments||e.body[o].leadingComments||W(e.body[o-1].range[1],e.body[o].range[0],i))),o===s-1&&(u|=D),c=e.body[o].leadingComments&&x?a.generateStatement(e.body[o],u):V(a.generateStatement(e.body[o],u)),i.push(c),R($(c).toString())||x&&o1?U(c):c(),r.push(this.semicolon(t)),r},StaticBlock:function(e,t){return["static"+g,this.BlockStatement(e,t)]},ThrowStatement:function(e,t){return[G("throw",this.generateExpression(e.argument,n.Sequence,7)),this.semicolon(t)]},TryStatement:function(e,t){var r,n,i,a;if(r=["try",this.maybeBlock(e.block,1)],r=this.maybeBlockSuffix(e.block,r),e.handlers)for(n=0,i=e.handlers.length;n0?"\n":""],o=17,i=0;i0&&(e.body[i-1].trailingComments||e.body[i].leadingComments||W(e.body[i-1].range[1],e.body[i].range[0],r))),n=V(this.generateStatement(e.body[i],o)),r.push(n),i+10){for(i.push("("),o=0,s=a;o=2&&48===o.charCodeAt(0))&&a.push(" "),a.push(t.optional?"?.":"."),a.push(Z(t.property))),z(a,n.Member,r)},MetaProperty:function(e,t,r){var i;return(i=[]).push("string"==typeof e.meta?e.meta:Z(e.meta)),i.push("."),i.push("string"==typeof e.property?e.property:Z(e.property)),z(i,n.Member,t)},UnaryExpression:function(e,t,r){var i,a,o,c,u;return a=this.generateExpression(e.argument,n.Unary,7),""===g?i=G(e.operator,a):(i=[e.operator],e.operator.length>2?i=G(i,a):(u=(c=$(i).toString()).charCodeAt(c.length-1),o=a.toString().charCodeAt(0),(43===u||45===u)&&u===o||s.code.isIdentifierPartES5(u)&&s.code.isIdentifierPartES5(o)?(i.push(j()),i.push(a)):i.push(a))),z(i,n.Unary,t)},YieldExpression:function(e,t,r){var i;return i=e.delegate?"yield*":"yield",e.argument&&(i=G(i,this.generateExpression(e.argument,n.Yield,7))),z(i,n.Yield,t)},AwaitExpression:function(e,t,r){return z(G(e.all?"await*":"await",this.generateExpression(e.argument,n.Await,7)),n.Await,t)},UpdateExpression:function(e,t,r){return e.prefix?z([e.operator,this.generateExpression(e.argument,n.Unary,7)],n.Unary,t):z([this.generateExpression(e.argument,n.Postfix,7),e.operator],n.Postfix,t)},FunctionExpression:function(e,t,r){var n=[q(e,!0),"function"];return e.id?(n.push(J(e)||j()),n.push(Z(e.id))):n.push(J(e)||g),n.push(this.generateFunctionBody(e)),n},ArrayPattern:function(e,t,r){return this.ArrayExpression(e,t,r,!0)},ArrayExpression:function(e,t,r,i){var a,o,s=this;return e.elements.length?(o=!i&&e.elements.length>1,a=["[",o?m:""],U(function(t){var r,i;for(r=0,i=e.elements.length;r126))){o+=B(n,e.charCodeAt(t+1));continue}}o+=String.fromCharCode(n)}if(a=(i=!("double"===p||"auto"===p&&u0&&(i=+n.slice(a+1),n=n.slice(0,a)),r>=0&&(i-=n.length-r-1,n=+(n.slice(0,r)+n.slice(r+1))+""),a=0;48===n.charCodeAt(n.length+a-1);)--a;return 0!==a&&(i-=a,n=n.slice(0,a)),0!==i&&(n+="e"+i),(n.length1e12&&Math.floor(e)===e&&(n="0x"+e.toString(16)).length0||_.moz.comprehensionExpressionStartsWithAssignment?a=G(a,c):a.push(c)}),t.filter&&(a=G(a,"if"+g),c=this.generateExpression(t.filter,n.Sequence,7),a=G(a,["(",c,")"])),_.moz.comprehensionExpressionStartsWithAssignment||(c=this.generateExpression(t.body,n.Assignment,7),a=G(a,c)),a.push(t.type===e.GeneratorExpression?")":"]"),a},ComprehensionBlock:function(t,r,i){var a;return a=G(a=t.left.type===e.VariableDeclaration?[t.left.kind,j(),this.generateStatement(t.left.declarations[0],0)]:this.generateExpression(t.left,n.Call,7),t.of?"of":"in"),a=G(a,this.generateExpression(t.right,n.Sequence,7)),["for"+g+"(",a,")"]},SpreadElement:function(e,t,r){return["...",this.generateExpression(e.argument,n.Assignment,7)]},TaggedTemplateExpression:function(e,t,r){var i=3;return 2&r||(i=1),z([this.generateExpression(e.tag,n.Call,i),this.generateExpression(e.quasi,n.Primary,4)],n.TaggedTemplate,t)},TemplateElement:function(e,t,r){return e.value.raw},TemplateLiteral:function(e,t,r){var i,a,o;for(i=["`"],a=0,o=e.quasis.length;a=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroupStorage=void 0;const s=r(71519),c=r(32287),u=r(71332),l=r(11440);let d=n=class extends l.MapStorage{constructor(e,t,r){super(t,r),this.customCodeHelperGroupFactory=e}initialize(){super.initialize(),n.customCodeHelperGroupsList.forEach(e=>{const t=this.customCodeHelperGroupFactory(e);this.storage.set(e,t)})}};t.CustomCodeHelperGroupStorage=d,d.customCodeHelperGroupsList=[u.CustomCodeHelperGroup.ConsoleOutput,u.CustomCodeHelperGroup.DebugProtection,u.CustomCodeHelperGroup.DomainLock,u.CustomCodeHelperGroup.SelfDefending,u.CustomCodeHelperGroup.StringArray],i([(0,s.postConstruct)(),a("design:type",Function),a("design:paramtypes",[]),a("design:returntype",void 0)],d.prototype,"initialize",null),t.CustomCodeHelperGroupStorage=d=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__ICustomCodeHelperGroup)),o(1,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Object,Object])],d)},61195:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=("object"===a(t)?t.comparisonDate:t)||Date().toString(),n=(0,i.default)(r),o=(0,i.default)(e);return!!(o&&n&&o>n)};var n,i=(n=r(13752))&&n.__esModule?n:{default:n};function a(e){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},a(e)}e.exports=t.default,e.exports.default=t.default},61578:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),f.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/([01][0-9]|2[0-3])/,o=/[0-5][0-9]/,s=new RegExp("[-+]".concat(a.source,":").concat(o.source)),c=new RegExp("([zZ]|".concat(s.source,")")),u=new RegExp("".concat(a.source,":").concat(o.source,":").concat(/([0-5][0-9]|60)/.source).concat(/(\.[0-9]+)?/.source)),l=new RegExp("".concat(/[0-9]{4}/.source,"-").concat(/(0[1-9]|1[0-2])/.source,"-").concat(/([12]\d|0[1-9]|3[01])/.source)),d=new RegExp("".concat(u.source).concat(c.source)),f=new RegExp("^".concat(l.source,"[ tT]").concat(d.source,"$"));e.exports=t.default,e.exports.default=t.default},61647:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringLiteralControlFlowStorageCallNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(57013),l=r(91363),d=r(25120);let f=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.controlFlowStorageName=e,this.controlFlowStorageKey=t}getNodeStructure(){const e=l.NodeFactory.expressionStatementNode(l.NodeFactory.memberExpressionNode(l.NodeFactory.identifierNode(this.controlFlowStorageName),l.NodeFactory.identifierNode(this.controlFlowStorageKey)));return d.NodeUtils.parentizeAst(e),[e]}};t.StringLiteralControlFlowStorageCallNode=f,n([(0,c.initializable)(),i("design:type",String)],f.prototype,"controlFlowStorageKey",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"controlFlowStorageName",void 0),t.StringLiteralControlFlowStorageCallNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],f)},61936:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberLiteralTransformer=void 0;const o=r(71519),s=r(32287),c=r(96390),u=r(18436),l=r(76893),d=r(91363),f=r(23615),p=r(57876);let h=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[c.NodeTransformer.NumberToNumericalExpressionTransformer],this.numberLiteralCache=new Map}getVisitor(e){return e===u.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&f.NodeGuards.isLiteralNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if("number"!=typeof e.value&&"bigint"!=typeof e.value)return e;const r=e.value;let n;return this.numberLiteralCache.has(r)?n=this.numberLiteralCache.get(r):(n=p.NumberUtils.isCeil(r)?p.NumberUtils.toHex(r):String(r),this.numberLiteralCache.set(r,n)),d.NodeFactory.literalNode(r,n)}};t.NumberLiteralTransformer=h,t.NumberLiteralTransformer=h=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],h)},61996:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){return(0,i.default)(e),e.replace(new RegExp("[^".concat(t,"]+"),"g"),"")};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},62309:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(e);var r=t?new RegExp("^[".concat(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"]+"),"g"):/^\s+/g;return e.replace(r,"")};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},62402:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperObfuscator=void 0;const o=r(71519),s=r(32287),c=r(4223),u=r(79049);let l=class{constructor(e,t){this.randomGenerator=e,this.options=t}obfuscateTemplate(e,t={}){return u.JavaScriptObfuscator.obfuscate(e,{...c.NO_ADDITIONAL_NODES_PRESET,identifierNamesGenerator:this.options.identifierNamesGenerator,identifiersDictionary:this.options.identifiersDictionary,numbersToExpressions:this.options.numbersToExpressions,simplify:this.options.simplify,seed:this.randomGenerator.getRawSeed(),...t}).getObfuscatedCode()}};t.CustomCodeHelperObfuscator=l,t.CustomCodeHelperObfuscator=l=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],l)},62645:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),t in s)return s[t](e);if("any"===t){for(var r in s){if(s.hasOwnProperty(r))if((0,s[r])(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))};var n=o(r(83399)),i=o(r(78644)),a=o(r(76084));function o(e){return e&&e.__esModule?e:{default:e}}var s={PL:function(e){(0,n.default)(e);var t={1:1,2:3,3:7,4:9,5:1,6:3,7:7,8:9,9:1,10:3,11:0};if(null!=e&&11===e.length&&(0,a.default)(e,{allow_leading_zeroes:!0})){var r=e.split("").slice(0,-1).reduce(function(e,r,n){return e+Number(r)*t[n+1]},0)%10,i=Number(e.charAt(e.length-1));if(0===r&&0===i||i===10-r)return!0}return!1},ES:function(e){(0,n.default)(e);var t={X:0,Y:1,Z:2},r=e.trim().toUpperCase();if(!/^[0-9X-Z][0-9]{7}[TRWAGMYFPDXBNJZSQVHLCKE]$/.test(r))return!1;var i=r.slice(0,-1).replace(/[X,Y,Z]/g,function(e){return t[e]});return r.endsWith(["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][i%23])},FI:function(e){if((0,n.default)(e),11!==e.length)return!1;if(!e.match(/^\d{6}[\-A\+]\d{3}[0-9ABCDEFHJKLMNPRSTUVWXY]{1}$/))return!1;return"0123456789ABCDEFHJKLMNPRSTUVWXY"[(1e3*parseInt(e.slice(0,6),10)+parseInt(e.slice(7,10),10))%31]===e.slice(10,11)},IN:function(e){var t=[[0,1,2,3,4,5,6,7,8,9],[1,2,3,4,0,6,7,8,9,5],[2,3,4,0,1,7,8,9,5,6],[3,4,0,1,2,8,9,5,6,7],[4,0,1,2,3,9,5,6,7,8],[5,9,8,7,6,0,4,3,2,1],[6,5,9,8,7,1,0,4,3,2],[7,6,5,9,8,2,1,0,4,3],[8,7,6,5,9,3,2,1,0,4],[9,8,7,6,5,4,3,2,1,0]],r=[[0,1,2,3,4,5,6,7,8,9],[1,5,7,6,2,8,3,0,9,4],[5,8,0,3,7,9,6,1,4,2],[8,9,1,6,0,4,3,5,2,7],[9,4,5,3,1,2,6,8,7,0],[4,2,8,6,5,7,3,9,0,1],[2,7,9,3,8,0,6,4,1,5],[7,0,4,6,9,1,3,2,5,8]],n=e.trim();if(!/^[1-9]\d{3}\s?\d{4}\s?\d{4}$/.test(n))return!1;var i=0;return n.replace(/\s/g,"").split("").map(Number).reverse().forEach(function(e,n){i=t[i][r[n%8][e]]}),0===i},IR:function(e){if(!e.match(/^\d{10}$/))return!1;if(e="0000".concat(e).slice(e.length-6),0===parseInt(e.slice(3,9),10))return!1;for(var t=parseInt(e.slice(9,10),10),r=0,n=0;n<9;n++)r+=parseInt(e.slice(n,n+1),10)*(10-n);return(r%=11)<2&&t===r||r>=2&&t===11-r},IT:function(e){return 9===e.length&&("CA00000AA"!==e&&e.search(/C[A-Z]\d{5}[A-Z]{2}/i)>-1)},NO:function(e){var t=e.trim();if(isNaN(Number(t)))return!1;if(11!==t.length)return!1;if("00000000000"===t)return!1;var r=t.split("").map(Number),n=(11-(3*r[0]+7*r[1]+6*r[2]+1*r[3]+8*r[4]+9*r[5]+4*r[6]+5*r[7]+2*r[8])%11)%11,i=(11-(5*r[0]+4*r[1]+3*r[2]+2*r[3]+7*r[4]+6*r[5]+5*r[6]+4*r[7]+3*r[8]+2*n)%11)%11;return n===r[9]&&i===r[10]},TH:function(e){if(!e.match(/^[1-8]\d{12}$/))return!1;for(var t=0,r=0;r<12;r++)t+=parseInt(e[r],10)*(13-r);return e[12]===((11-t%11)%10).toString()},LK:function(e){return!(10!==e.length||!/^[1-9]\d{8}[vx]$/i.test(e))||!(12!==e.length||!/^[1-9]\d{11}$/i.test(e))},"he-IL":function(e){var t=e.trim();if(!/^\d{9}$/.test(t))return!1;for(var r,n=t,i=0,a=0;a9?r-9:r;return i%10==0},"ar-LY":function(e){var t=e.trim();return!!/^(1|2)\d{11}$/.test(t)},"ar-TN":function(e){var t=e.trim();return!!/^\d{8}$/.test(t)},"zh-CN":function(e){var t,r=["11","12","13","14","15","21","22","23","31","32","33","34","35","36","37","41","42","43","44","45","46","50","51","52","53","54","61","62","63","64","65","71","81","82","91"],n=["7","9","10","5","8","4","2","1","6","3","7","9","10","5","8","4","2"],a=["1","0","X","9","8","7","6","5","4","3","2"],o=function(e){return(0,i.default)(r,e)},s=function(e){var t=parseInt(e.substring(0,4),10),r=parseInt(e.substring(4,6),10),n=parseInt(e.substring(6),10),i=new Date(t,r-1,n);return!(i>new Date)&&(i.getFullYear()===t&&i.getMonth()===r-1&&i.getDate()===n)},c=function(e){return function(e){for(var t=e.substring(0,17),r=0,i=0;i<17;i++)r+=parseInt(t.charAt(i),10)*parseInt(n[i],10);return a[r%11]}(e)===e.charAt(17).toUpperCase()};return!!/^\d{15}|(\d{17}(\d|x|X))$/.test(t=e)&&(15===t.length?function(e){var t=/^[1-9]\d{7}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=o(r)))return!1;var n="19".concat(e.substring(6,12));return!!(t=s(n))}(t):function(e){var t=/^[1-9]\d{5}[1-9]\d{3}((0[1-9])|(1[0-2]))((0[1-9])|([1-2][0-9])|(3[0-1]))\d{3}(\d|x|X)$/.test(e);if(!t)return!1;var r=e.substring(0,2);if(!(t=o(r)))return!1;var n=e.substring(6,14);return!!(t=s(n))&&c(e)}(t))},"zh-HK":function(e){var t=/^[0-9]$/;if(e=(e=e.trim()).toUpperCase(),!/^[A-Z]{1,2}[0-9]{6}((\([0-9A]\))|(\[[0-9A]\])|([0-9A]))$/.test(e))return!1;8===(e=e.replace(/\[|\]|\(|\)/g,"")).length&&(e="3".concat(e));for(var r=0,n=0;n<=7;n++){r+=(t.test(e[n])?e[n]:(e[n].charCodeAt(0)-55)%11)*(9-n)}return(0===(r%=11)?"0":1===r?"A":String(11-r))===e[e.length-1]},"zh-TW":function(e){var t={A:10,B:11,C:12,D:13,E:14,F:15,G:16,H:17,I:34,J:18,K:19,L:20,M:21,N:22,O:35,P:23,Q:24,R:25,S:26,T:27,U:28,V:29,W:32,X:30,Y:31,Z:33},r=e.trim().toUpperCase();return!!/^[A-Z][0-9]{9}$/.test(r)&&Array.from(r).reduce(function(e,r,n){if(0===n){var i=t[r];return i%10*9+Math.floor(i/10)}return 9===n?(10-e%10-Number(r))%10==0:e+Number(r)*(9-n)},0)},PK:function(e){var t=e.trim();return/^[1-7][0-9]{4}-[0-9]{7}-[1-9]$/.test(t)}};e.exports=t.default,e.exports.default=t.default},62717:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SetUtils=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e){this.arrayUtils=e}getLastElement(e){const t=[...e];return this.arrayUtils.getLastElement(t)}};t.SetUtils=c,t.SetUtils=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IArrayUtils)),i("design:paramtypes",[Object])],c)},62719:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassMetadataConstructorArguments=function(e){const t=(0,n.getReflectMetadata)(e,i.DESIGN_PARAM_TYPES),r=(0,n.getReflectMetadata)(e,i.TAGGED),c=[];if(void 0!==r)for(const[t,n]of Object.entries(r)){const r=parseInt(t);c[r]=(0,s.getConstructorArgumentMetadataFromLegacyMetadata)(e,r,n)}if(void 0!==t)for(let e=0;e{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.FactoryType=void 0,function(e){e.DynamicValue="toDynamicValue",e.Factory="toFactory",e.Provider="toProvider"}(r||(t.FactoryType=r={}))},62890:e=>{!function(){"use strict";function t(e){if(null==e)return!1;switch(e.type){case"BlockStatement":case"BreakStatement":case"ContinueStatement":case"DebuggerStatement":case"DoWhileStatement":case"EmptyStatement":case"ExpressionStatement":case"ForInStatement":case"ForStatement":case"IfStatement":case"LabeledStatement":case"ReturnStatement":case"SwitchStatement":case"ThrowStatement":case"TryStatement":case"VariableDeclaration":case"WhileStatement":case"WithStatement":return!0}return!1}function r(e){switch(e.type){case"IfStatement":return null!=e.alternate?e.alternate:e.consequent;case"LabeledStatement":case"ForStatement":case"ForInStatement":case"WhileStatement":case"WithStatement":return e.body}return null}e.exports={isExpression:function(e){if(null==e)return!1;switch(e.type){case"ArrayExpression":case"AssignmentExpression":case"BinaryExpression":case"CallExpression":case"ConditionalExpression":case"FunctionExpression":case"Identifier":case"Literal":case"LogicalExpression":case"MemberExpression":case"NewExpression":case"ObjectExpression":case"SequenceExpression":case"ThisExpression":case"UnaryExpression":case"UpdateExpression":return!0}return!1},isStatement:t,isIterationStatement:function(e){if(null==e)return!1;switch(e.type){case"DoWhileStatement":case"ForInStatement":case"ForStatement":case"WhileStatement":return!0}return!1},isSourceElement:function(e){return t(e)||null!=e&&"FunctionDeclaration"===e.type},isProblematicIfStatement:function(e){var t;if("IfStatement"!==e.type)return!1;if(null==e.alternate)return!1;t=e.consequent;do{if("IfStatement"===t.type&&null==t.alternate)return!0;t=r(t)}while(t);return!1},trailingStatement:r}}()},62978:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HexadecimalIdentifierNamesGenerator=void 0;const s=r(71519),c=r(32287),u=r(34003),l=r(57876),d=r(65063);let f=n=class extends u.AbstractIdentifierNamesGenerator{constructor(e,t){super(e,t)}generateNext(e){return this.generateNextName(e,e=>this.isValidIdentifierName(e))}generateForGlobalScope(e){return this.generateForGlobalScopeInternal(e,e=>this.isValidIdentifierName(e))}generateForGlobalScopeWithAllScopesValidation(e){return this.generateForGlobalScopeInternal(e,e=>this.isValidIdentifierNameInAllScopes(e))}generateForLexicalScope(e,t){return this.generateNext(t)}generateForLabel(e,t){return this.generateNext(t)}generateForGlobalScopeInternal(e,t){const r=this.generateNextName(e,t);return`${this.options.identifiersPrefix}${r}`.replace("__","_")}generateNextName(e,t){const r=this.randomGenerator.getRandomInteger(1e4,99999999),i=l.NumberUtils.toHex(r),a=d.Utils.hexadecimalPrefix.length,o=(null!=e?e:n.baseIdentifierNameLength)+a,s=`_${i.slice(0,o)}`;return t(s)?(this.preserveName(s),s):this.generateNextName(e,t)}};t.HexadecimalIdentifierNamesGenerator=f,f.baseIdentifierNameLength=6,t.HexadecimalIdentifierNamesGenerator=f=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object,Object])],f)},63437:(e,t)=>{!function e(t){"use strict";var r,n,i,a,o,s;function c(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?c(r):r);return n}function u(e,t){this.parent=e,this.key=t}function l(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function d(){}function f(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function p(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function h(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function m(e,t){return(new d).traverse(e,t)}function g(e,t){var r;return r=function(e,t){var r,n,i,a;for(n=e.length,i=0;n;)t(e[a=i+(r=n>>>1)])?n=r:(i=a+1,n-=r+1);return i}(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",Program:"Program",Property:"Property",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},i={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],Program:["body"],Property:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:a={},Skip:o={},Remove:s={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},d.prototype.path=function(){var e,t,r,n,i;function a(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(y=s[d=b[m]])if(Array.isArray(y)){for(g=y.length;(g-=1)>=0;)if(y[g]&&!h(n,y[g])){if(p(c,b[m]))i=new l(y[g],[d,g],"Property",null);else{if(!f(y[g]))continue;i=new l(y[g],[d,g],null,null)}r.push(i)}}else if(f(y)){if(h(n,y))continue;r.push(new l(y,d,null,null))}}}else if(i=n.pop(),u=this.__execute(t.leave,i),this.__state===a||u===a)return},d.prototype.replace=function(e,t){var r,n,i,c,d,h,m,g,b,y,S,v,_;function C(e){var t,n,i,a;if(e.ref.remove())for(n=e.ref.key,a=e.ref.parent,t=r.length;t--;)if((i=r[t]).ref&&i.ref.parent===a){if(i.ref.key=0;)if(y=i[_=b[m]])if(Array.isArray(y)){for(g=y.length;(g-=1)>=0;)if(y[g]){if(p(c,b[m]))h=new l(y[g],[_,g],"Property",new u(y,g));else{if(!f(y[g]))continue;h=new l(y[g],[_,g],null,new u(y,g))}r.push(h)}}else f(y)&&r.push(new l(y,_,null,new u(i,_)))}}else if(h=n.pop(),void 0!==(d=this.__execute(t.leave,h))&&d!==a&&d!==o&&d!==s&&h.ref.replace(d),this.__state!==s&&d!==s||C(h),this.__state===a||d===a)return v.root;return v.root},t.Syntax=r,t.traverse=m,t.replace=function(e,t){return(new d).replace(e,t)},t.attachComments=function(e,t,r){var i,a,o,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(o=0,a=t.length;oe.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?n.Break:u[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,m(e,{leave:function(e){for(var t;se.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=i,t.VisitorOption=n,t.Controller=d,t.cloneEnvironment=function(){return e({})},t}(t)},63726:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionKeysTransformerCustomNode=void 0,function(e){e.ObjectExpressionVariableDeclarationHostNode="ObjectExpressionVariableDeclarationHostNode"}(r||(t.ObjectExpressionKeysTransformerCustomNode=r={}))},63871:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ConsoleOutputDisableCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(42792),u=r(10548),l=r(88318),d=r(25120);let f=class extends l.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t){this.callsControllerFunctionName=e,this.consoleOutputDisableFunctionName=t}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate((0,c.ConsoleOutputDisableTemplate)(),{callControllerFunctionName:this.callsControllerFunctionName,consoleLogDisableFunctionName:this.consoleOutputDisableFunctionName,globalVariableTemplate:this.getGlobalVariableTemplate()})}};t.ConsoleOutputDisableCodeHelper=f,n([(0,u.initializable)(),i("design:type",String)],f.prototype,"callsControllerFunctionName",void 0),n([(0,u.initializable)(),i("design:type",String)],f.prototype,"consoleOutputDisableFunctionName",void 0),t.ConsoleOutputDisableCodeHelper=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],f)},64522:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.HashbangOperatorTransformer=void 0;const o=r(71519),s=r(32287),c=r(79412),u=r(21965);let l=class extends u.AbstractCodeTransformer{constructor(e,t){super(e,t),this.hashbangOperatorLine=null}transformCode(e,t){switch(t){case c.CodeTransformationStage.PreparingTransformers:return this.removeAndSaveHashbangOperatorLine(e);case c.CodeTransformationStage.FinalizingTransformers:return this.appendSavedHashbangOperatorLine(e);default:return e}}removeAndSaveHashbangOperatorLine(e){return e.replace(/^#!.*$(\r?\n)*/m,e=>(e&&(this.hashbangOperatorLine=e),"")).trim()}appendSavedHashbangOperatorLine(e){var t;return`${null!==(t=this.hashbangOperatorLine)&&void 0!==t?t:""}${e}`}};t.HashbangOperatorTransformer=l,t.HashbangOperatorTransformer=l=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],l)},64611:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{h.NodeGuards.isVariableDeclarationNode(e)&&r.push(e.kind)}}),this.prevailingKindOfVariables=null!==(t=this.arrayUtils.findMostOccurringElement(r))&&void 0!==t?t:i.defaultKindOfVariables}getPrevailingKind(){return this.prevailingKindOfVariables}};t.PrevailingKindOfVariablesAnalyzer=m,m.defaultKindOfVariables="var",t.PrevailingKindOfVariablesAnalyzer=m=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.IArrayUtils)),u("design:paramtypes",[Object])],m)},64633:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)||o.test(e)||s.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^(application|audio|font|image|message|model|multipart|text|video)\/[a-zA-Z0-9\.\-\+_]{1,100}$/i,o=/^text\/[a-zA-Z0-9\.\-\+]{1,100};\s?charset=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?$/i,s=/^multipart\/[a-zA-Z0-9\.\-\+]{1,100}(;\s?(boundary|charset)=("[a-zA-Z0-9\.\-\+\s]{0,70}"|[a-zA-Z0-9\.\-\+]{0,70})(\s?\([a-zA-Z0-9\.\-\+\s]{1,20}\))?){0,2}$/i;e.exports=t.default,e.exports.default=t.default},64712:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(m.NodeGuards.isVariableDeclarationNode(e))return"var"===this.prevailingKindOfVariables&&(e.kind="var"),e}});return e}};t.CustomCodeHelperFormatter=g,t.CustomCodeHelperFormatter=g=o([(0,d.injectable)(),u(0,(0,d.inject)(f.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer)),c("design:paramtypes",[Object])],g)},65063:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Utils=void 0;class r{static buildVersionMessage(e,t){if(!e||!t)return"unknown";return`${e}_${new Date(parseInt(t,10)).toISOString()}`}static extractDomainFrom(e){let t;return t=e.includes("://")||0===e.indexOf("//")?e.split("/")[2]:e.split("/")[0],t=t.split(":")[0],t}static getIdentifiersPrefixForMultipleSources(e,t){return`${e||r.baseMultipleSourcesIdentifiersPrefix}${t}`}static makeEnum(e){return Object.freeze({...e})}}t.Utils=r,r.baseMultipleSourcesIdentifiersPrefix="a",r.hexadecimalPrefix="0x"},65104:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayTemplate=function(){return"\n function {stringArrayFunctionName} () {\n const {stringArrayName} = [{stringArrayStorageItems}];\n \n {stringArrayFunctionName} = function () {\n return {stringArrayName};\n };\n \n return {stringArrayFunctionName}();\n }\n "}},65186:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(e),null==t&&(t="all");return t in a&&a[t].test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a={1:/^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,2:/^[0-9A-F]{8}-[0-9A-F]{4}-2[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,3:/^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,4:/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,5:/^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,6:/^[0-9A-F]{8}-[0-9A-F]{4}-6[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,7:/^[0-9A-F]{8}-[0-9A-F]{4}-7[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,8:/^[0-9A-F]{8}-[0-9A-F]{4}-8[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,nil:/^00000000-0000-0000-0000-000000000000$/i,max:/^ffffffff-ffff-ffff-ffff-ffffffffffff$/i,loose:/^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,all:/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i};e.exports=t.default,e.exports.default=t.default},65284:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierReplacer=void 0;const o=r(71519),s=r(32287),c=r(91363);let u=class{constructor(e,t,r){this.blockScopesMap=new WeakMap,this.options=r,this.identifierNamesCacheStorage=t,this.identifierNamesGenerator=e(r)}storeGlobalName(e,t){var r;const n=e.name;if(this.isReservedName(n))return;const i=this.identifierNamesGenerator.generateForGlobalScope(),a=null!==(r=this.blockScopesMap.get(t))&&void 0!==r?r:new Map;a.set(n,i),this.blockScopesMap.set(t,a),this.options.identifierNamesCache&&this.identifierNamesCacheStorage.set(n,i)}storeLocalName(e,t){var r;const n=e.name;if(this.isReservedName(n))return;const i=this.identifierNamesGenerator.generateForLexicalScope(t),a=null!==(r=this.blockScopesMap.get(t))&&void 0!==r?r:new Map;a.set(n,i),this.blockScopesMap.set(t,a)}replace(e,t){var r,n;const i=null!==(r=this.blockScopesMap.get(t))&&void 0!==r?r:null;if(!i)return e;const a=null!==(n=i.get(e.name))&&void 0!==n?n:null;return a?c.NodeFactory.identifierNode(a):e}preserveName(e){this.identifierNamesGenerator.preserveName(e.name)}preserveNameForLexicalScope(e,t){this.identifierNamesGenerator.preserveNameForLexicalScope(e.name,t)}isReservedName(e){return!!this.options.reservedNames.length&&this.options.reservedNames.some(t=>null!==new RegExp(t,"g").exec(e))}};t.IdentifierReplacer=u,t.IdentifierReplacer=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)),a(2,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],u)},65606:e=>{var t,r,n=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function o(e){if(t===setTimeout)return setTimeout(e,0);if((t===i||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:i}catch(e){t=i}try{r="function"==typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var s,c=[],u=!1,l=-1;function d(){u&&s&&(u=!1,s.length?c=s.concat(c):l=-1,c.length&&f())}function f(){if(!u){var e=o(d);u=!0;for(var t=c.length;t;){for(s=c,c=[];++l1)for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockRedirectUrlRule=void 0;const n=r(11839);t.DomainLockRedirectUrlRule=e=>(e.domainLock.length||(e={...e,domainLockRedirectUrl:n.DEFAULT_PRESET.domainLockRedirectUrl}),e)},65903:(e,t,r)=>{"use strict";r.r(t),r.d(t,{fetch:()=>n});const n=globalThis.fetch.bind(globalThis)},66060:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.VisitedLexicalScopeNodesStackStorage=void 0;const o=r(71519),s=r(32287),c=r(44173);let u=class extends c.ArrayStorage{constructor(e,t,r){super(e,t),this.arrayUtils=r}getLastElement(){return this.arrayUtils.getLastElement(this.getStorage())}getPenultimateElement(){return this.arrayUtils.getLastElementByIndex(this.getStorage(),1)}push(e){const t=this.getLength();this.set(t,e)}pop(){const e=this.getLength();return this.delete(e-1)}};t.VisitedLexicalScopeNodesStackStorage=u,t.VisitedLexicalScopeNodesStackStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),a(2,(0,o.inject)(s.ServiceIdentifiers.IArrayUtils)),i("design:paramtypes",[Object,Object,Object])],u)},66152:e=>{"use strict";e.exports=JSON.parse('["$&","$\'","$*","$+","$1","$2","$3","$4","$5","$6","$7","$8","$9","$_","$`","$input","-moz-animation","-moz-animation-delay","-moz-animation-direction","-moz-animation-duration","-moz-animation-fill-mode","-moz-animation-iteration-count","-moz-animation-name","-moz-animation-play-state","-moz-animation-timing-function","-moz-appearance","-moz-backface-visibility","-moz-border-end","-moz-border-end-color","-moz-border-end-style","-moz-border-end-width","-moz-border-image","-moz-border-start","-moz-border-start-color","-moz-border-start-style","-moz-border-start-width","-moz-box-align","-moz-box-direction","-moz-box-flex","-moz-box-ordinal-group","-moz-box-orient","-moz-box-pack","-moz-box-sizing","-moz-float-edge","-moz-font-feature-settings","-moz-font-language-override","-moz-force-broken-image-icon","-moz-hyphens","-moz-image-region","-moz-margin-end","-moz-margin-start","-moz-orient","-moz-osx-font-smoothing","-moz-outline-radius","-moz-outline-radius-bottomleft","-moz-outline-radius-bottomright","-moz-outline-radius-topleft","-moz-outline-radius-topright","-moz-padding-end","-moz-padding-start","-moz-perspective","-moz-perspective-origin","-moz-tab-size","-moz-text-size-adjust","-moz-transform","-moz-transform-origin","-moz-transform-style","-moz-transition","-moz-transition-delay","-moz-transition-duration","-moz-transition-property","-moz-transition-timing-function","-moz-user-focus","-moz-user-input","-moz-user-modify","-moz-user-select","-moz-window-dragging","-webkit-align-content","-webkit-align-items","-webkit-align-self","-webkit-animation","-webkit-animation-delay","-webkit-animation-direction","-webkit-animation-duration","-webkit-animation-fill-mode","-webkit-animation-iteration-count","-webkit-animation-name","-webkit-animation-play-state","-webkit-animation-timing-function","-webkit-appearance","-webkit-backface-visibility","-webkit-background-clip","-webkit-background-origin","-webkit-background-size","-webkit-border-bottom-left-radius","-webkit-border-bottom-right-radius","-webkit-border-image","-webkit-border-radius","-webkit-border-top-left-radius","-webkit-border-top-right-radius","-webkit-box-align","-webkit-box-direction","-webkit-box-flex","-webkit-box-ordinal-group","-webkit-box-orient","-webkit-box-pack","-webkit-box-shadow","-webkit-box-sizing","-webkit-filter","-webkit-flex","-webkit-flex-basis","-webkit-flex-direction","-webkit-flex-flow","-webkit-flex-grow","-webkit-flex-shrink","-webkit-flex-wrap","-webkit-justify-content","-webkit-line-clamp","-webkit-mask","-webkit-mask-clip","-webkit-mask-composite","-webkit-mask-image","-webkit-mask-origin","-webkit-mask-position","-webkit-mask-position-x","-webkit-mask-position-y","-webkit-mask-repeat","-webkit-mask-size","-webkit-order","-webkit-perspective","-webkit-perspective-origin","-webkit-text-fill-color","-webkit-text-size-adjust","-webkit-text-stroke","-webkit-text-stroke-color","-webkit-text-stroke-width","-webkit-transform","-webkit-transform-origin","-webkit-transform-style","-webkit-transition","-webkit-transition-delay","-webkit-transition-duration","-webkit-transition-property","-webkit-transition-timing-function","-webkit-user-select","0","1","10","11","12","13","14","15","16","17","18","19","2","20","3","4","5","6","7","8","9","@@iterator","ABORT_ERR","ACTIVE","ACTIVE_ATTRIBUTES","ACTIVE_TEXTURE","ACTIVE_UNIFORMS","ACTIVE_UNIFORM_BLOCKS","ADDITION","ALIASED_LINE_WIDTH_RANGE","ALIASED_POINT_SIZE_RANGE","ALLOW_KEYBOARD_INPUT","ALLPASS","ALPHA","ALPHA_BITS","ALREADY_SIGNALED","ALT_MASK","ALWAYS","ANY_SAMPLES_PASSED","ANY_SAMPLES_PASSED_CONSERVATIVE","ANY_TYPE","ANY_UNORDERED_NODE_TYPE","ARRAY_BUFFER","ARRAY_BUFFER_BINDING","ATTACHED_SHADERS","ATTRIBUTE_NODE","AT_TARGET","AbortController","AbortSignal","AbsoluteOrientationSensor","AbstractRange","Accelerometer","AddSearchProvider","AggregateError","AnalyserNode","Animation","AnimationEffect","AnimationEvent","AnimationPlaybackEvent","AnimationTimeline","AnonXMLHttpRequest","Any","ApplicationCache","ApplicationCacheErrorEvent","Array","ArrayBuffer","ArrayType","Atomics","Attr","Audio","AudioBuffer","AudioBufferSourceNode","AudioContext","AudioDestinationNode","AudioListener","AudioNode","AudioParam","AudioParamMap","AudioProcessingEvent","AudioScheduledSourceNode","AudioStreamTrack","AudioWorklet","AudioWorkletNode","AuthenticatorAssertionResponse","AuthenticatorAttestationResponse","AuthenticatorResponse","AutocompleteErrorEvent","BACK","BAD_BOUNDARYPOINTS_ERR","BAD_REQUEST","BANDPASS","BLEND","BLEND_COLOR","BLEND_DST_ALPHA","BLEND_DST_RGB","BLEND_EQUATION","BLEND_EQUATION_ALPHA","BLEND_EQUATION_RGB","BLEND_SRC_ALPHA","BLEND_SRC_RGB","BLUE_BITS","BLUR","BOOL","BOOLEAN_TYPE","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","BOTH","BROWSER_DEFAULT_WEBGL","BUBBLING_PHASE","BUFFER_SIZE","BUFFER_USAGE","BYTE","BYTES_PER_ELEMENT","BackgroundFetchManager","BackgroundFetchRecord","BackgroundFetchRegistration","BarProp","BarcodeDetector","BaseAudioContext","BaseHref","BatteryManager","BeforeInstallPromptEvent","BeforeLoadEvent","BeforeUnloadEvent","BigInt","BigInt64Array","BigUint64Array","BiquadFilterNode","Blob","BlobEvent","Bluetooth","BluetoothCharacteristicProperties","BluetoothDevice","BluetoothRemoteGATTCharacteristic","BluetoothRemoteGATTDescriptor","BluetoothRemoteGATTServer","BluetoothRemoteGATTService","BluetoothUUID","Boolean","BroadcastChannel","ByteLengthQueuingStrategy","CAPTURING_PHASE","CCW","CDATASection","CDATA_SECTION_NODE","CHANGE","CHARSET_RULE","CHECKING","CLAMP_TO_EDGE","CLICK","CLOSED","CLOSING","COLOR","COLOR_ATTACHMENT0","COLOR_ATTACHMENT1","COLOR_ATTACHMENT10","COLOR_ATTACHMENT11","COLOR_ATTACHMENT12","COLOR_ATTACHMENT13","COLOR_ATTACHMENT14","COLOR_ATTACHMENT15","COLOR_ATTACHMENT2","COLOR_ATTACHMENT3","COLOR_ATTACHMENT4","COLOR_ATTACHMENT5","COLOR_ATTACHMENT6","COLOR_ATTACHMENT7","COLOR_ATTACHMENT8","COLOR_ATTACHMENT9","COLOR_BUFFER_BIT","COLOR_CLEAR_VALUE","COLOR_WRITEMASK","COMMENT_NODE","COMPARE_REF_TO_TEXTURE","COMPILE_STATUS","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_RGB_S3TC_DXT1_EXT","COMPRESSED_TEXTURE_FORMATS","CONDITION_SATISFIED","CONFIGURATION_UNSUPPORTED","CONNECTING","CONSTANT_ALPHA","CONSTANT_COLOR","CONSTRAINT_ERR","CONTEXT_LOST_WEBGL","CONTROL_MASK","COPY_READ_BUFFER","COPY_READ_BUFFER_BINDING","COPY_WRITE_BUFFER","COPY_WRITE_BUFFER_BINDING","COUNTER_STYLE_RULE","CSS","CSS2Properties","CSSAnimation","CSSCharsetRule","CSSConditionRule","CSSCounterStyleRule","CSSFontFaceRule","CSSFontFeatureValuesRule","CSSGroupingRule","CSSImageValue","CSSImportRule","CSSKeyframeRule","CSSKeyframesRule","CSSKeywordValue","CSSMathInvert","CSSMathMax","CSSMathMin","CSSMathNegate","CSSMathProduct","CSSMathSum","CSSMathValue","CSSMatrixComponent","CSSMediaRule","CSSMozDocumentRule","CSSNameSpaceRule","CSSNamespaceRule","CSSNumericArray","CSSNumericValue","CSSPageRule","CSSPerspective","CSSPositionValue","CSSPrimitiveValue","CSSRotate","CSSRule","CSSRuleList","CSSScale","CSSSkew","CSSSkewX","CSSSkewY","CSSStyleDeclaration","CSSStyleRule","CSSStyleSheet","CSSStyleValue","CSSSupportsRule","CSSTransformComponent","CSSTransformValue","CSSTransition","CSSTranslate","CSSUnitValue","CSSUnknownRule","CSSUnparsedValue","CSSValue","CSSValueList","CSSVariableReferenceValue","CSSVariablesDeclaration","CSSVariablesRule","CSSViewportRule","CSS_ATTR","CSS_CM","CSS_COUNTER","CSS_CUSTOM","CSS_DEG","CSS_DIMENSION","CSS_EMS","CSS_EXS","CSS_FILTER_BLUR","CSS_FILTER_BRIGHTNESS","CSS_FILTER_CONTRAST","CSS_FILTER_CUSTOM","CSS_FILTER_DROP_SHADOW","CSS_FILTER_GRAYSCALE","CSS_FILTER_HUE_ROTATE","CSS_FILTER_INVERT","CSS_FILTER_OPACITY","CSS_FILTER_REFERENCE","CSS_FILTER_SATURATE","CSS_FILTER_SEPIA","CSS_GRAD","CSS_HZ","CSS_IDENT","CSS_IN","CSS_INHERIT","CSS_KHZ","CSS_MATRIX","CSS_MATRIX3D","CSS_MM","CSS_MS","CSS_NUMBER","CSS_PC","CSS_PERCENTAGE","CSS_PERSPECTIVE","CSS_PRIMITIVE_VALUE","CSS_PT","CSS_PX","CSS_RAD","CSS_RECT","CSS_RGBCOLOR","CSS_ROTATE","CSS_ROTATE3D","CSS_ROTATEX","CSS_ROTATEY","CSS_ROTATEZ","CSS_S","CSS_SCALE","CSS_SCALE3D","CSS_SCALEX","CSS_SCALEY","CSS_SCALEZ","CSS_SKEW","CSS_SKEWX","CSS_SKEWY","CSS_STRING","CSS_TRANSLATE","CSS_TRANSLATE3D","CSS_TRANSLATEX","CSS_TRANSLATEY","CSS_TRANSLATEZ","CSS_UNKNOWN","CSS_URI","CSS_VALUE_LIST","CSS_VH","CSS_VMAX","CSS_VMIN","CSS_VW","CULL_FACE","CULL_FACE_MODE","CURRENT_PROGRAM","CURRENT_QUERY","CURRENT_VERTEX_ATTRIB","CUSTOM","CW","Cache","CacheStorage","CanvasCaptureMediaStream","CanvasCaptureMediaStreamTrack","CanvasGradient","CanvasPattern","CanvasRenderingContext2D","CaretPosition","ChannelMergerNode","ChannelSplitterNode","CharacterData","ClientRect","ClientRectList","Clipboard","ClipboardEvent","ClipboardItem","CloseEvent","Collator","CommandEvent","Comment","CompileError","CompositionEvent","CompressionStream","Console","ConstantSourceNode","Controllers","ConvolverNode","CountQueuingStrategy","Counter","Credential","CredentialsContainer","Crypto","CryptoKey","CustomElementRegistry","CustomEvent","DATABASE_ERR","DATA_CLONE_ERR","DATA_ERR","DBLCLICK","DECR","DECR_WRAP","DELETE_STATUS","DEPTH","DEPTH24_STENCIL8","DEPTH32F_STENCIL8","DEPTH_ATTACHMENT","DEPTH_BITS","DEPTH_BUFFER_BIT","DEPTH_CLEAR_VALUE","DEPTH_COMPONENT","DEPTH_COMPONENT16","DEPTH_COMPONENT24","DEPTH_COMPONENT32F","DEPTH_FUNC","DEPTH_RANGE","DEPTH_STENCIL","DEPTH_STENCIL_ATTACHMENT","DEPTH_TEST","DEPTH_WRITEMASK","DEVICE_INELIGIBLE","DIRECTION_DOWN","DIRECTION_LEFT","DIRECTION_RIGHT","DIRECTION_UP","DISABLED","DISPATCH_REQUEST_ERR","DITHER","DOCUMENT_FRAGMENT_NODE","DOCUMENT_NODE","DOCUMENT_POSITION_CONTAINED_BY","DOCUMENT_POSITION_CONTAINS","DOCUMENT_POSITION_DISCONNECTED","DOCUMENT_POSITION_FOLLOWING","DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC","DOCUMENT_POSITION_PRECEDING","DOCUMENT_TYPE_NODE","DOMCursor","DOMError","DOMException","DOMImplementation","DOMImplementationLS","DOMMatrix","DOMMatrixReadOnly","DOMParser","DOMPoint","DOMPointReadOnly","DOMQuad","DOMRect","DOMRectList","DOMRectReadOnly","DOMRequest","DOMSTRING_SIZE_ERR","DOMSettableTokenList","DOMStringList","DOMStringMap","DOMTokenList","DOMTransactionEvent","DOM_DELTA_LINE","DOM_DELTA_PAGE","DOM_DELTA_PIXEL","DOM_INPUT_METHOD_DROP","DOM_INPUT_METHOD_HANDWRITING","DOM_INPUT_METHOD_IME","DOM_INPUT_METHOD_KEYBOARD","DOM_INPUT_METHOD_MULTIMODAL","DOM_INPUT_METHOD_OPTION","DOM_INPUT_METHOD_PASTE","DOM_INPUT_METHOD_SCRIPT","DOM_INPUT_METHOD_UNKNOWN","DOM_INPUT_METHOD_VOICE","DOM_KEY_LOCATION_JOYSTICK","DOM_KEY_LOCATION_LEFT","DOM_KEY_LOCATION_MOBILE","DOM_KEY_LOCATION_NUMPAD","DOM_KEY_LOCATION_RIGHT","DOM_KEY_LOCATION_STANDARD","DOM_VK_0","DOM_VK_1","DOM_VK_2","DOM_VK_3","DOM_VK_4","DOM_VK_5","DOM_VK_6","DOM_VK_7","DOM_VK_8","DOM_VK_9","DOM_VK_A","DOM_VK_ACCEPT","DOM_VK_ADD","DOM_VK_ALT","DOM_VK_ALTGR","DOM_VK_AMPERSAND","DOM_VK_ASTERISK","DOM_VK_AT","DOM_VK_ATTN","DOM_VK_B","DOM_VK_BACKSPACE","DOM_VK_BACK_QUOTE","DOM_VK_BACK_SLASH","DOM_VK_BACK_SPACE","DOM_VK_C","DOM_VK_CANCEL","DOM_VK_CAPS_LOCK","DOM_VK_CIRCUMFLEX","DOM_VK_CLEAR","DOM_VK_CLOSE_BRACKET","DOM_VK_CLOSE_CURLY_BRACKET","DOM_VK_CLOSE_PAREN","DOM_VK_COLON","DOM_VK_COMMA","DOM_VK_CONTEXT_MENU","DOM_VK_CONTROL","DOM_VK_CONVERT","DOM_VK_CRSEL","DOM_VK_CTRL","DOM_VK_D","DOM_VK_DECIMAL","DOM_VK_DELETE","DOM_VK_DIVIDE","DOM_VK_DOLLAR","DOM_VK_DOUBLE_QUOTE","DOM_VK_DOWN","DOM_VK_E","DOM_VK_EISU","DOM_VK_END","DOM_VK_ENTER","DOM_VK_EQUALS","DOM_VK_EREOF","DOM_VK_ESCAPE","DOM_VK_EXCLAMATION","DOM_VK_EXECUTE","DOM_VK_EXSEL","DOM_VK_F","DOM_VK_F1","DOM_VK_F10","DOM_VK_F11","DOM_VK_F12","DOM_VK_F13","DOM_VK_F14","DOM_VK_F15","DOM_VK_F16","DOM_VK_F17","DOM_VK_F18","DOM_VK_F19","DOM_VK_F2","DOM_VK_F20","DOM_VK_F21","DOM_VK_F22","DOM_VK_F23","DOM_VK_F24","DOM_VK_F25","DOM_VK_F26","DOM_VK_F27","DOM_VK_F28","DOM_VK_F29","DOM_VK_F3","DOM_VK_F30","DOM_VK_F31","DOM_VK_F32","DOM_VK_F33","DOM_VK_F34","DOM_VK_F35","DOM_VK_F36","DOM_VK_F4","DOM_VK_F5","DOM_VK_F6","DOM_VK_F7","DOM_VK_F8","DOM_VK_F9","DOM_VK_FINAL","DOM_VK_FRONT","DOM_VK_G","DOM_VK_GREATER_THAN","DOM_VK_H","DOM_VK_HANGUL","DOM_VK_HANJA","DOM_VK_HASH","DOM_VK_HELP","DOM_VK_HK_TOGGLE","DOM_VK_HOME","DOM_VK_HYPHEN_MINUS","DOM_VK_I","DOM_VK_INSERT","DOM_VK_J","DOM_VK_JUNJA","DOM_VK_K","DOM_VK_KANA","DOM_VK_KANJI","DOM_VK_L","DOM_VK_LEFT","DOM_VK_LEFT_TAB","DOM_VK_LESS_THAN","DOM_VK_M","DOM_VK_META","DOM_VK_MODECHANGE","DOM_VK_MULTIPLY","DOM_VK_N","DOM_VK_NONCONVERT","DOM_VK_NUMPAD0","DOM_VK_NUMPAD1","DOM_VK_NUMPAD2","DOM_VK_NUMPAD3","DOM_VK_NUMPAD4","DOM_VK_NUMPAD5","DOM_VK_NUMPAD6","DOM_VK_NUMPAD7","DOM_VK_NUMPAD8","DOM_VK_NUMPAD9","DOM_VK_NUM_LOCK","DOM_VK_O","DOM_VK_OEM_1","DOM_VK_OEM_102","DOM_VK_OEM_2","DOM_VK_OEM_3","DOM_VK_OEM_4","DOM_VK_OEM_5","DOM_VK_OEM_6","DOM_VK_OEM_7","DOM_VK_OEM_8","DOM_VK_OEM_COMMA","DOM_VK_OEM_MINUS","DOM_VK_OEM_PERIOD","DOM_VK_OEM_PLUS","DOM_VK_OPEN_BRACKET","DOM_VK_OPEN_CURLY_BRACKET","DOM_VK_OPEN_PAREN","DOM_VK_P","DOM_VK_PA1","DOM_VK_PAGEDOWN","DOM_VK_PAGEUP","DOM_VK_PAGE_DOWN","DOM_VK_PAGE_UP","DOM_VK_PAUSE","DOM_VK_PERCENT","DOM_VK_PERIOD","DOM_VK_PIPE","DOM_VK_PLAY","DOM_VK_PLUS","DOM_VK_PRINT","DOM_VK_PRINTSCREEN","DOM_VK_PROCESSKEY","DOM_VK_PROPERITES","DOM_VK_Q","DOM_VK_QUESTION_MARK","DOM_VK_QUOTE","DOM_VK_R","DOM_VK_REDO","DOM_VK_RETURN","DOM_VK_RIGHT","DOM_VK_S","DOM_VK_SCROLL_LOCK","DOM_VK_SELECT","DOM_VK_SEMICOLON","DOM_VK_SEPARATOR","DOM_VK_SHIFT","DOM_VK_SLASH","DOM_VK_SLEEP","DOM_VK_SPACE","DOM_VK_SUBTRACT","DOM_VK_T","DOM_VK_TAB","DOM_VK_TILDE","DOM_VK_U","DOM_VK_UNDERSCORE","DOM_VK_UNDO","DOM_VK_UNICODE","DOM_VK_UP","DOM_VK_V","DOM_VK_VOLUME_DOWN","DOM_VK_VOLUME_MUTE","DOM_VK_VOLUME_UP","DOM_VK_W","DOM_VK_WIN","DOM_VK_WINDOW","DOM_VK_WIN_ICO_00","DOM_VK_WIN_ICO_CLEAR","DOM_VK_WIN_ICO_HELP","DOM_VK_WIN_OEM_ATTN","DOM_VK_WIN_OEM_AUTO","DOM_VK_WIN_OEM_BACKTAB","DOM_VK_WIN_OEM_CLEAR","DOM_VK_WIN_OEM_COPY","DOM_VK_WIN_OEM_CUSEL","DOM_VK_WIN_OEM_ENLW","DOM_VK_WIN_OEM_FINISH","DOM_VK_WIN_OEM_FJ_JISHO","DOM_VK_WIN_OEM_FJ_LOYA","DOM_VK_WIN_OEM_FJ_MASSHOU","DOM_VK_WIN_OEM_FJ_ROYA","DOM_VK_WIN_OEM_FJ_TOUROKU","DOM_VK_WIN_OEM_JUMP","DOM_VK_WIN_OEM_PA1","DOM_VK_WIN_OEM_PA2","DOM_VK_WIN_OEM_PA3","DOM_VK_WIN_OEM_RESET","DOM_VK_WIN_OEM_WSCTRL","DOM_VK_X","DOM_VK_XF86XK_ADD_FAVORITE","DOM_VK_XF86XK_APPLICATION_LEFT","DOM_VK_XF86XK_APPLICATION_RIGHT","DOM_VK_XF86XK_AUDIO_CYCLE_TRACK","DOM_VK_XF86XK_AUDIO_FORWARD","DOM_VK_XF86XK_AUDIO_LOWER_VOLUME","DOM_VK_XF86XK_AUDIO_MEDIA","DOM_VK_XF86XK_AUDIO_MUTE","DOM_VK_XF86XK_AUDIO_NEXT","DOM_VK_XF86XK_AUDIO_PAUSE","DOM_VK_XF86XK_AUDIO_PLAY","DOM_VK_XF86XK_AUDIO_PREV","DOM_VK_XF86XK_AUDIO_RAISE_VOLUME","DOM_VK_XF86XK_AUDIO_RANDOM_PLAY","DOM_VK_XF86XK_AUDIO_RECORD","DOM_VK_XF86XK_AUDIO_REPEAT","DOM_VK_XF86XK_AUDIO_REWIND","DOM_VK_XF86XK_AUDIO_STOP","DOM_VK_XF86XK_AWAY","DOM_VK_XF86XK_BACK","DOM_VK_XF86XK_BACK_FORWARD","DOM_VK_XF86XK_BATTERY","DOM_VK_XF86XK_BLUE","DOM_VK_XF86XK_BLUETOOTH","DOM_VK_XF86XK_BOOK","DOM_VK_XF86XK_BRIGHTNESS_ADJUST","DOM_VK_XF86XK_CALCULATOR","DOM_VK_XF86XK_CALENDAR","DOM_VK_XF86XK_CD","DOM_VK_XF86XK_CLOSE","DOM_VK_XF86XK_COMMUNITY","DOM_VK_XF86XK_CONTRAST_ADJUST","DOM_VK_XF86XK_COPY","DOM_VK_XF86XK_CUT","DOM_VK_XF86XK_CYCLE_ANGLE","DOM_VK_XF86XK_DISPLAY","DOM_VK_XF86XK_DOCUMENTS","DOM_VK_XF86XK_DOS","DOM_VK_XF86XK_EJECT","DOM_VK_XF86XK_EXCEL","DOM_VK_XF86XK_EXPLORER","DOM_VK_XF86XK_FAVORITES","DOM_VK_XF86XK_FINANCE","DOM_VK_XF86XK_FORWARD","DOM_VK_XF86XK_FRAME_BACK","DOM_VK_XF86XK_FRAME_FORWARD","DOM_VK_XF86XK_GAME","DOM_VK_XF86XK_GO","DOM_VK_XF86XK_GREEN","DOM_VK_XF86XK_HIBERNATE","DOM_VK_XF86XK_HISTORY","DOM_VK_XF86XK_HOME_PAGE","DOM_VK_XF86XK_HOT_LINKS","DOM_VK_XF86XK_I_TOUCH","DOM_VK_XF86XK_KBD_BRIGHTNESS_DOWN","DOM_VK_XF86XK_KBD_BRIGHTNESS_UP","DOM_VK_XF86XK_KBD_LIGHT_ON_OFF","DOM_VK_XF86XK_LAUNCH0","DOM_VK_XF86XK_LAUNCH1","DOM_VK_XF86XK_LAUNCH2","DOM_VK_XF86XK_LAUNCH3","DOM_VK_XF86XK_LAUNCH4","DOM_VK_XF86XK_LAUNCH5","DOM_VK_XF86XK_LAUNCH6","DOM_VK_XF86XK_LAUNCH7","DOM_VK_XF86XK_LAUNCH8","DOM_VK_XF86XK_LAUNCH9","DOM_VK_XF86XK_LAUNCH_A","DOM_VK_XF86XK_LAUNCH_B","DOM_VK_XF86XK_LAUNCH_C","DOM_VK_XF86XK_LAUNCH_D","DOM_VK_XF86XK_LAUNCH_E","DOM_VK_XF86XK_LAUNCH_F","DOM_VK_XF86XK_LIGHT_BULB","DOM_VK_XF86XK_LOG_OFF","DOM_VK_XF86XK_MAIL","DOM_VK_XF86XK_MAIL_FORWARD","DOM_VK_XF86XK_MARKET","DOM_VK_XF86XK_MEETING","DOM_VK_XF86XK_MEMO","DOM_VK_XF86XK_MENU_KB","DOM_VK_XF86XK_MENU_PB","DOM_VK_XF86XK_MESSENGER","DOM_VK_XF86XK_MON_BRIGHTNESS_DOWN","DOM_VK_XF86XK_MON_BRIGHTNESS_UP","DOM_VK_XF86XK_MUSIC","DOM_VK_XF86XK_MY_COMPUTER","DOM_VK_XF86XK_MY_SITES","DOM_VK_XF86XK_NEW","DOM_VK_XF86XK_NEWS","DOM_VK_XF86XK_OFFICE_HOME","DOM_VK_XF86XK_OPEN","DOM_VK_XF86XK_OPEN_URL","DOM_VK_XF86XK_OPTION","DOM_VK_XF86XK_PASTE","DOM_VK_XF86XK_PHONE","DOM_VK_XF86XK_PICTURES","DOM_VK_XF86XK_POWER_DOWN","DOM_VK_XF86XK_POWER_OFF","DOM_VK_XF86XK_RED","DOM_VK_XF86XK_REFRESH","DOM_VK_XF86XK_RELOAD","DOM_VK_XF86XK_REPLY","DOM_VK_XF86XK_ROCKER_DOWN","DOM_VK_XF86XK_ROCKER_ENTER","DOM_VK_XF86XK_ROCKER_UP","DOM_VK_XF86XK_ROTATE_WINDOWS","DOM_VK_XF86XK_ROTATION_KB","DOM_VK_XF86XK_ROTATION_PB","DOM_VK_XF86XK_SAVE","DOM_VK_XF86XK_SCREEN_SAVER","DOM_VK_XF86XK_SCROLL_CLICK","DOM_VK_XF86XK_SCROLL_DOWN","DOM_VK_XF86XK_SCROLL_UP","DOM_VK_XF86XK_SEARCH","DOM_VK_XF86XK_SEND","DOM_VK_XF86XK_SHOP","DOM_VK_XF86XK_SPELL","DOM_VK_XF86XK_SPLIT_SCREEN","DOM_VK_XF86XK_STANDBY","DOM_VK_XF86XK_START","DOM_VK_XF86XK_STOP","DOM_VK_XF86XK_SUBTITLE","DOM_VK_XF86XK_SUPPORT","DOM_VK_XF86XK_SUSPEND","DOM_VK_XF86XK_TASK_PANE","DOM_VK_XF86XK_TERMINAL","DOM_VK_XF86XK_TIME","DOM_VK_XF86XK_TOOLS","DOM_VK_XF86XK_TOP_MENU","DOM_VK_XF86XK_TO_DO_LIST","DOM_VK_XF86XK_TRAVEL","DOM_VK_XF86XK_USER1KB","DOM_VK_XF86XK_USER2KB","DOM_VK_XF86XK_USER_PB","DOM_VK_XF86XK_UWB","DOM_VK_XF86XK_VENDOR_HOME","DOM_VK_XF86XK_VIDEO","DOM_VK_XF86XK_VIEW","DOM_VK_XF86XK_WAKE_UP","DOM_VK_XF86XK_WEB_CAM","DOM_VK_XF86XK_WHEEL_BUTTON","DOM_VK_XF86XK_WLAN","DOM_VK_XF86XK_WORD","DOM_VK_XF86XK_WWW","DOM_VK_XF86XK_XFER","DOM_VK_XF86XK_YELLOW","DOM_VK_XF86XK_ZOOM_IN","DOM_VK_XF86XK_ZOOM_OUT","DOM_VK_Y","DOM_VK_Z","DOM_VK_ZOOM","DONE","DONT_CARE","DOWNLOADING","DRAGDROP","DRAW_BUFFER0","DRAW_BUFFER1","DRAW_BUFFER10","DRAW_BUFFER11","DRAW_BUFFER12","DRAW_BUFFER13","DRAW_BUFFER14","DRAW_BUFFER15","DRAW_BUFFER2","DRAW_BUFFER3","DRAW_BUFFER4","DRAW_BUFFER5","DRAW_BUFFER6","DRAW_BUFFER7","DRAW_BUFFER8","DRAW_BUFFER9","DRAW_FRAMEBUFFER","DRAW_FRAMEBUFFER_BINDING","DST_ALPHA","DST_COLOR","DYNAMIC_COPY","DYNAMIC_DRAW","DYNAMIC_READ","DataChannel","DataTransfer","DataTransferItem","DataTransferItemList","DataView","Date","DateTimeFormat","DecompressionStream","DelayNode","DeprecationReportBody","DesktopNotification","DesktopNotificationCenter","DeviceLightEvent","DeviceMotionEvent","DeviceMotionEventAcceleration","DeviceMotionEventRotationRate","DeviceOrientationEvent","DeviceProximityEvent","DeviceStorage","DeviceStorageChangeEvent","Directory","DisplayNames","Document","DocumentFragment","DocumentTimeline","DocumentType","DragEvent","DynamicsCompressorNode","E","ELEMENT_ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER_BINDING","ELEMENT_NODE","EMPTY","ENCODING_ERR","ENDED","END_TO_END","END_TO_START","ENTITY_NODE","ENTITY_REFERENCE_NODE","EPSILON","EQUAL","EQUALPOWER","ERROR","EXPONENTIAL_DISTANCE","exports","Element","ElementInternals","ElementQuery","EnterPictureInPictureEvent","Entity","EntityReference","Error","ErrorEvent","EvalError","Event","EventException","EventSource","EventTarget","External","FASTEST","FIDOSDK","FILTER_ACCEPT","FILTER_INTERRUPT","FILTER_REJECT","FILTER_SKIP","FINISHED_STATE","FIRST_ORDERED_NODE_TYPE","FLOAT","FLOAT_32_UNSIGNED_INT_24_8_REV","FLOAT_MAT2","FLOAT_MAT2x3","FLOAT_MAT2x4","FLOAT_MAT3","FLOAT_MAT3x2","FLOAT_MAT3x4","FLOAT_MAT4","FLOAT_MAT4x2","FLOAT_MAT4x3","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","FOCUS","FONT_FACE_RULE","FONT_FEATURE_VALUES_RULE","FRAGMENT_SHADER","FRAGMENT_SHADER_DERIVATIVE_HINT","FRAGMENT_SHADER_DERIVATIVE_HINT_OES","FRAMEBUFFER","FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE","FRAMEBUFFER_ATTACHMENT_BLUE_SIZE","FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING","FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE","FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE","FRAMEBUFFER_ATTACHMENT_GREEN_SIZE","FRAMEBUFFER_ATTACHMENT_OBJECT_NAME","FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE","FRAMEBUFFER_ATTACHMENT_RED_SIZE","FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE","FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE","FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER","FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL","FRAMEBUFFER_BINDING","FRAMEBUFFER_COMPLETE","FRAMEBUFFER_DEFAULT","FRAMEBUFFER_INCOMPLETE_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_DIMENSIONS","FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT","FRAMEBUFFER_INCOMPLETE_MULTISAMPLE","FRAMEBUFFER_UNSUPPORTED","FRONT","FRONT_AND_BACK","FRONT_FACE","FUNC_ADD","FUNC_REVERSE_SUBTRACT","FUNC_SUBTRACT","FeaturePolicy","FeaturePolicyViolationReportBody","FederatedCredential","Feed","FeedEntry","File","FileError","FileList","FileReader","FileSystem","FileSystemDirectoryEntry","FileSystemDirectoryReader","FileSystemEntry","FileSystemFileEntry","FinalizationRegistry","FindInPage","Float32Array","Float64Array","FocusEvent","FontFace","FontFaceSet","FontFaceSetLoadEvent","FormData","FormDataEvent","FragmentDirective","Function","GENERATE_MIPMAP_HINT","GEQUAL","GREATER","GREEN_BITS","GainNode","Gamepad","GamepadAxisMoveEvent","GamepadButton","GamepadButtonEvent","GamepadEvent","GamepadHapticActuator","GamepadPose","Geolocation","GeolocationCoordinates","GeolocationPosition","GeolocationPositionError","GestureEvent","Global","Gyroscope","HALF_FLOAT","HAVE_CURRENT_DATA","HAVE_ENOUGH_DATA","HAVE_FUTURE_DATA","HAVE_METADATA","HAVE_NOTHING","HEADERS_RECEIVED","HIDDEN","HIERARCHY_REQUEST_ERR","HIGHPASS","HIGHSHELF","HIGH_FLOAT","HIGH_INT","HORIZONTAL","HORIZONTAL_AXIS","HRTF","HTMLAllCollection","HTMLAnchorElement","HTMLAppletElement","HTMLAreaElement","HTMLAudioElement","HTMLBRElement","HTMLBaseElement","HTMLBaseFontElement","HTMLBlockquoteElement","HTMLBodyElement","HTMLButtonElement","HTMLCanvasElement","HTMLCollection","HTMLCommandElement","HTMLContentElement","HTMLDListElement","HTMLDataElement","HTMLDataListElement","HTMLDetailsElement","HTMLDialogElement","HTMLDirectoryElement","HTMLDivElement","HTMLDocument","HTMLElement","HTMLEmbedElement","HTMLFieldSetElement","HTMLFontElement","HTMLFormControlsCollection","HTMLFormElement","HTMLFrameElement","HTMLFrameSetElement","HTMLHRElement","HTMLHeadElement","HTMLHeadingElement","HTMLHtmlElement","HTMLIFrameElement","HTMLImageElement","HTMLInputElement","HTMLIsIndexElement","HTMLKeygenElement","HTMLLIElement","HTMLLabelElement","HTMLLegendElement","HTMLLinkElement","HTMLMapElement","HTMLMarqueeElement","HTMLMediaElement","HTMLMenuElement","HTMLMenuItemElement","HTMLMetaElement","HTMLMeterElement","HTMLModElement","HTMLOListElement","HTMLObjectElement","HTMLOptGroupElement","HTMLOptionElement","HTMLOptionsCollection","HTMLOutputElement","HTMLParagraphElement","HTMLParamElement","HTMLPictureElement","HTMLPreElement","HTMLProgressElement","HTMLPropertiesCollection","HTMLQuoteElement","HTMLScriptElement","HTMLSelectElement","HTMLShadowElement","HTMLSlotElement","HTMLSourceElement","HTMLSpanElement","HTMLStyleElement","HTMLTableCaptionElement","HTMLTableCellElement","HTMLTableColElement","HTMLTableElement","HTMLTableRowElement","HTMLTableSectionElement","HTMLTemplateElement","HTMLTextAreaElement","HTMLTimeElement","HTMLTitleElement","HTMLTrackElement","HTMLUListElement","HTMLUnknownElement","HTMLVideoElement","HashChangeEvent","Headers","History","Hz","ICE_CHECKING","ICE_CLOSED","ICE_COMPLETED","ICE_CONNECTED","ICE_FAILED","ICE_GATHERING","ICE_WAITING","IDBCursor","IDBCursorWithValue","IDBDatabase","IDBDatabaseException","IDBFactory","IDBFileHandle","IDBFileRequest","IDBIndex","IDBKeyRange","IDBMutableFile","IDBObjectStore","IDBOpenDBRequest","IDBRequest","IDBTransaction","IDBVersionChangeEvent","IDLE","IIRFilterNode","IMPLEMENTATION_COLOR_READ_FORMAT","IMPLEMENTATION_COLOR_READ_TYPE","IMPORT_RULE","INCR","INCR_WRAP","INDEX_SIZE_ERR","INT","INTERLEAVED_ATTRIBS","INT_2_10_10_10_REV","INT_SAMPLER_2D","INT_SAMPLER_2D_ARRAY","INT_SAMPLER_3D","INT_SAMPLER_CUBE","INT_VEC2","INT_VEC3","INT_VEC4","INUSE_ATTRIBUTE_ERR","INVALID_ACCESS_ERR","INVALID_CHARACTER_ERR","INVALID_ENUM","INVALID_EXPRESSION_ERR","INVALID_FRAMEBUFFER_OPERATION","INVALID_INDEX","INVALID_MODIFICATION_ERR","INVALID_NODE_TYPE_ERR","INVALID_OPERATION","INVALID_STATE_ERR","INVALID_VALUE","INVERSE_DISTANCE","INVERT","IceCandidate","IdleDeadline","Image","ImageBitmap","ImageBitmapRenderingContext","ImageCapture","ImageData","Infinity","InputDeviceCapabilities","InputDeviceInfo","InputEvent","InputMethodContext","InstallTrigger","InstallTriggerImpl","Instance","Int16Array","Int32Array","Int8Array","Intent","InternalError","IntersectionObserver","IntersectionObserverEntry","Intl","IsSearchProviderInstalled","Iterator","JSON","KEEP","KEYDOWN","KEYFRAMES_RULE","KEYFRAME_RULE","KEYPRESS","KEYUP","KeyEvent","Keyboard","KeyboardEvent","KeyboardLayoutMap","KeyframeEffect","LENGTHADJUST_SPACING","LENGTHADJUST_SPACINGANDGLYPHS","LENGTHADJUST_UNKNOWN","LEQUAL","LESS","LINEAR","LINEAR_DISTANCE","LINEAR_MIPMAP_LINEAR","LINEAR_MIPMAP_NEAREST","LINES","LINE_LOOP","LINE_STRIP","LINE_WIDTH","LINK_STATUS","LIVE","LN10","LN2","LOADED","LOADING","LOG10E","LOG2E","LOWPASS","LOWSHELF","LOW_FLOAT","LOW_INT","LSException","LSParserFilter","LUMINANCE","LUMINANCE_ALPHA","LargestContentfulPaint","LayoutShift","LayoutShiftAttribution","LinearAccelerationSensor","LinkError","ListFormat","LocalMediaStream","Locale","Location","Lock","LockManager","MAX","MAX_3D_TEXTURE_SIZE","MAX_ARRAY_TEXTURE_LAYERS","MAX_CLIENT_WAIT_TIMEOUT_WEBGL","MAX_COLOR_ATTACHMENTS","MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS","MAX_COMBINED_TEXTURE_IMAGE_UNITS","MAX_COMBINED_UNIFORM_BLOCKS","MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS","MAX_CUBE_MAP_TEXTURE_SIZE","MAX_DRAW_BUFFERS","MAX_ELEMENTS_INDICES","MAX_ELEMENTS_VERTICES","MAX_ELEMENT_INDEX","MAX_FRAGMENT_INPUT_COMPONENTS","MAX_FRAGMENT_UNIFORM_BLOCKS","MAX_FRAGMENT_UNIFORM_COMPONENTS","MAX_FRAGMENT_UNIFORM_VECTORS","MAX_PROGRAM_TEXEL_OFFSET","MAX_RENDERBUFFER_SIZE","MAX_SAFE_INTEGER","MAX_SAMPLES","MAX_SERVER_WAIT_TIMEOUT","MAX_TEXTURE_IMAGE_UNITS","MAX_TEXTURE_LOD_BIAS","MAX_TEXTURE_MAX_ANISOTROPY_EXT","MAX_TEXTURE_SIZE","MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS","MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS","MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS","MAX_UNIFORM_BLOCK_SIZE","MAX_UNIFORM_BUFFER_BINDINGS","MAX_VALUE","MAX_VARYING_COMPONENTS","MAX_VARYING_VECTORS","MAX_VERTEX_ATTRIBS","MAX_VERTEX_OUTPUT_COMPONENTS","MAX_VERTEX_TEXTURE_IMAGE_UNITS","MAX_VERTEX_UNIFORM_BLOCKS","MAX_VERTEX_UNIFORM_COMPONENTS","MAX_VERTEX_UNIFORM_VECTORS","MAX_VIEWPORT_DIMS","MEDIA_ERR_ABORTED","MEDIA_ERR_DECODE","MEDIA_ERR_ENCRYPTED","MEDIA_ERR_NETWORK","MEDIA_ERR_SRC_NOT_SUPPORTED","MEDIA_KEYERR_CLIENT","MEDIA_KEYERR_DOMAIN","MEDIA_KEYERR_HARDWARECHANGE","MEDIA_KEYERR_OUTPUT","MEDIA_KEYERR_SERVICE","MEDIA_KEYERR_UNKNOWN","MEDIA_RULE","MEDIUM_FLOAT","MEDIUM_INT","META_MASK","MIDIAccess","MIDIConnectionEvent","MIDIInput","MIDIInputMap","MIDIMessageEvent","MIDIOutput","MIDIOutputMap","MIDIPort","MIN","MIN_PROGRAM_TEXEL_OFFSET","MIN_SAFE_INTEGER","MIN_VALUE","MIRRORED_REPEAT","MODE_ASYNCHRONOUS","MODE_SYNCHRONOUS","MODIFICATION","MOUSEDOWN","MOUSEDRAG","MOUSEMOVE","MOUSEOUT","MOUSEOVER","MOUSEUP","MOZ_KEYFRAMES_RULE","MOZ_KEYFRAME_RULE","MOZ_SOURCE_CURSOR","MOZ_SOURCE_ERASER","MOZ_SOURCE_KEYBOARD","MOZ_SOURCE_MOUSE","MOZ_SOURCE_PEN","MOZ_SOURCE_TOUCH","MOZ_SOURCE_UNKNOWN","MSGESTURE_FLAG_BEGIN","MSGESTURE_FLAG_CANCEL","MSGESTURE_FLAG_END","MSGESTURE_FLAG_INERTIA","MSGESTURE_FLAG_NONE","MSPOINTER_TYPE_MOUSE","MSPOINTER_TYPE_PEN","MSPOINTER_TYPE_TOUCH","MS_ASYNC_CALLBACK_STATUS_ASSIGN_DELEGATE","MS_ASYNC_CALLBACK_STATUS_CANCEL","MS_ASYNC_CALLBACK_STATUS_CHOOSEANY","MS_ASYNC_CALLBACK_STATUS_ERROR","MS_ASYNC_CALLBACK_STATUS_JOIN","MS_ASYNC_OP_STATUS_CANCELED","MS_ASYNC_OP_STATUS_ERROR","MS_ASYNC_OP_STATUS_SUCCESS","MS_MANIPULATION_STATE_ACTIVE","MS_MANIPULATION_STATE_CANCELLED","MS_MANIPULATION_STATE_COMMITTED","MS_MANIPULATION_STATE_DRAGGING","MS_MANIPULATION_STATE_INERTIA","MS_MANIPULATION_STATE_PRESELECT","MS_MANIPULATION_STATE_SELECTING","MS_MANIPULATION_STATE_STOPPED","MS_MEDIA_ERR_ENCRYPTED","MS_MEDIA_KEYERR_CLIENT","MS_MEDIA_KEYERR_DOMAIN","MS_MEDIA_KEYERR_HARDWARECHANGE","MS_MEDIA_KEYERR_OUTPUT","MS_MEDIA_KEYERR_SERVICE","MS_MEDIA_KEYERR_UNKNOWN","Map","Math","MathMLElement","MediaCapabilities","MediaCapabilitiesInfo","MediaController","MediaDeviceInfo","MediaDevices","MediaElementAudioSourceNode","MediaEncryptedEvent","MediaError","MediaKeyError","MediaKeyEvent","MediaKeyMessageEvent","MediaKeyNeededEvent","MediaKeySession","MediaKeyStatusMap","MediaKeySystemAccess","MediaKeys","MediaList","MediaMetadata","MediaQueryList","MediaQueryListEvent","MediaRecorder","MediaRecorderErrorEvent","MediaSession","MediaSettingsRange","MediaSource","MediaStream","MediaStreamAudioDestinationNode","MediaStreamAudioSourceNode","MediaStreamEvent","MediaStreamTrack","MediaStreamTrackAudioSourceNode","MediaStreamTrackEvent","Memory","MessageChannel","MessageEvent","MessagePort","Methods","MimeType","MimeTypeArray","Module","MouseEvent","MouseScrollEvent","MozAnimation","MozAnimationDelay","MozAnimationDirection","MozAnimationDuration","MozAnimationFillMode","MozAnimationIterationCount","MozAnimationName","MozAnimationPlayState","MozAnimationTimingFunction","MozAppearance","MozBackfaceVisibility","MozBinding","MozBorderBottomColors","MozBorderEnd","MozBorderEndColor","MozBorderEndStyle","MozBorderEndWidth","MozBorderImage","MozBorderLeftColors","MozBorderRightColors","MozBorderStart","MozBorderStartColor","MozBorderStartStyle","MozBorderStartWidth","MozBorderTopColors","MozBoxAlign","MozBoxDirection","MozBoxFlex","MozBoxOrdinalGroup","MozBoxOrient","MozBoxPack","MozBoxSizing","MozCSSKeyframeRule","MozCSSKeyframesRule","MozColumnCount","MozColumnFill","MozColumnGap","MozColumnRule","MozColumnRuleColor","MozColumnRuleStyle","MozColumnRuleWidth","MozColumnWidth","MozColumns","MozContactChangeEvent","MozFloatEdge","MozFontFeatureSettings","MozFontLanguageOverride","MozForceBrokenImageIcon","MozHyphens","MozImageRegion","MozMarginEnd","MozMarginStart","MozMmsEvent","MozMmsMessage","MozMobileMessageThread","MozOSXFontSmoothing","MozOrient","MozOsxFontSmoothing","MozOutlineRadius","MozOutlineRadiusBottomleft","MozOutlineRadiusBottomright","MozOutlineRadiusTopleft","MozOutlineRadiusTopright","MozPaddingEnd","MozPaddingStart","MozPerspective","MozPerspectiveOrigin","MozPowerManager","MozSettingsEvent","MozSmsEvent","MozSmsMessage","MozStackSizing","MozTabSize","MozTextAlignLast","MozTextDecorationColor","MozTextDecorationLine","MozTextDecorationStyle","MozTextSizeAdjust","MozTransform","MozTransformOrigin","MozTransformStyle","MozTransition","MozTransitionDelay","MozTransitionDuration","MozTransitionProperty","MozTransitionTimingFunction","MozUserFocus","MozUserInput","MozUserModify","MozUserSelect","MozWindowDragging","MozWindowShadow","MutationEvent","MutationObserver","MutationRecord","NAMESPACE_ERR","NAMESPACE_RULE","NEAREST","NEAREST_MIPMAP_LINEAR","NEAREST_MIPMAP_NEAREST","NEGATIVE_INFINITY","NETWORK_EMPTY","NETWORK_ERR","NETWORK_IDLE","NETWORK_LOADED","NETWORK_LOADING","NETWORK_NO_SOURCE","NEVER","NEW","NEXT","NEXT_NO_DUPLICATE","NICEST","NODE_AFTER","NODE_BEFORE","NODE_BEFORE_AND_AFTER","NODE_INSIDE","NONE","NON_TRANSIENT_ERR","NOTATION_NODE","NOTCH","NOTEQUAL","NOT_ALLOWED_ERR","NOT_FOUND_ERR","NOT_READABLE_ERR","NOT_SUPPORTED_ERR","NO_DATA_ALLOWED_ERR","NO_ERR","NO_ERROR","NO_MODIFICATION_ALLOWED_ERR","NUMBER_TYPE","NUM_COMPRESSED_TEXTURE_FORMATS","NaN","NamedNodeMap","NavigationPreloadManager","Navigator","NearbyLinks","NetworkInformation","Node","NodeFilter","NodeIterator","NodeList","Notation","Notification","NotifyPaintEvent","Number","NumberFormat","OBJECT_TYPE","OBSOLETE","OK","ONE","ONE_MINUS_CONSTANT_ALPHA","ONE_MINUS_CONSTANT_COLOR","ONE_MINUS_DST_ALPHA","ONE_MINUS_DST_COLOR","ONE_MINUS_SRC_ALPHA","ONE_MINUS_SRC_COLOR","OPEN","OPENED","OPENING","ORDERED_NODE_ITERATOR_TYPE","ORDERED_NODE_SNAPSHOT_TYPE","OTHER_ERROR","OUT_OF_MEMORY","Object","OfflineAudioCompletionEvent","OfflineAudioContext","OfflineResourceList","OffscreenCanvas","OffscreenCanvasRenderingContext2D","Option","OrientationSensor","OscillatorNode","OverconstrainedError","OverflowEvent","PACK_ALIGNMENT","PACK_ROW_LENGTH","PACK_SKIP_PIXELS","PACK_SKIP_ROWS","PAGE_RULE","PARSE_ERR","PATHSEG_ARC_ABS","PATHSEG_ARC_REL","PATHSEG_CLOSEPATH","PATHSEG_CURVETO_CUBIC_ABS","PATHSEG_CURVETO_CUBIC_REL","PATHSEG_CURVETO_CUBIC_SMOOTH_ABS","PATHSEG_CURVETO_CUBIC_SMOOTH_REL","PATHSEG_CURVETO_QUADRATIC_ABS","PATHSEG_CURVETO_QUADRATIC_REL","PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS","PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL","PATHSEG_LINETO_ABS","PATHSEG_LINETO_HORIZONTAL_ABS","PATHSEG_LINETO_HORIZONTAL_REL","PATHSEG_LINETO_REL","PATHSEG_LINETO_VERTICAL_ABS","PATHSEG_LINETO_VERTICAL_REL","PATHSEG_MOVETO_ABS","PATHSEG_MOVETO_REL","PATHSEG_UNKNOWN","PATH_EXISTS_ERR","PEAKING","PERMISSION_DENIED","PERSISTENT","PI","PIXEL_PACK_BUFFER","PIXEL_PACK_BUFFER_BINDING","PIXEL_UNPACK_BUFFER","PIXEL_UNPACK_BUFFER_BINDING","PLAYING_STATE","POINTS","POLYGON_OFFSET_FACTOR","POLYGON_OFFSET_FILL","POLYGON_OFFSET_UNITS","POSITION_UNAVAILABLE","POSITIVE_INFINITY","PREV","PREV_NO_DUPLICATE","PROCESSING_INSTRUCTION_NODE","PageChangeEvent","PageTransitionEvent","PaintRequest","PaintRequestList","PannerNode","PasswordCredential","Path2D","PaymentAddress","PaymentInstruments","PaymentManager","PaymentMethodChangeEvent","PaymentRequest","PaymentRequestUpdateEvent","PaymentResponse","Performance","PerformanceElementTiming","PerformanceEntry","PerformanceEventTiming","PerformanceLongTaskTiming","PerformanceMark","PerformanceMeasure","PerformanceNavigation","PerformanceNavigationTiming","PerformanceObserver","PerformanceObserverEntryList","PerformancePaintTiming","PerformanceResourceTiming","PerformanceServerTiming","PerformanceTiming","PeriodicSyncManager","PeriodicWave","PermissionStatus","Permissions","PhotoCapabilities","PictureInPictureWindow","Plugin","PluginArray","PluralRules","PointerEvent","PopStateEvent","PopupBlockedEvent","Presentation","PresentationAvailability","PresentationConnection","PresentationConnectionAvailableEvent","PresentationConnectionCloseEvent","PresentationConnectionList","PresentationReceiver","PresentationRequest","ProcessingInstruction","ProgressEvent","Promise","PromiseRejectionEvent","PropertyNodeList","Proxy","PublicKeyCredential","PushManager","PushSubscription","PushSubscriptionOptions","Q","QUERY_RESULT","QUERY_RESULT_AVAILABLE","QUOTA_ERR","QUOTA_EXCEEDED_ERR","QueryInterface","R11F_G11F_B10F","R16F","R16I","R16UI","R32F","R32I","R32UI","R8","R8I","R8UI","R8_SNORM","RASTERIZER_DISCARD","READ_BUFFER","READ_FRAMEBUFFER","READ_FRAMEBUFFER_BINDING","READ_ONLY","READ_ONLY_ERR","READ_WRITE","RED","RED_BITS","RED_INTEGER","REMOVAL","RENDERBUFFER","RENDERBUFFER_ALPHA_SIZE","RENDERBUFFER_BINDING","RENDERBUFFER_BLUE_SIZE","RENDERBUFFER_DEPTH_SIZE","RENDERBUFFER_GREEN_SIZE","RENDERBUFFER_HEIGHT","RENDERBUFFER_INTERNAL_FORMAT","RENDERBUFFER_RED_SIZE","RENDERBUFFER_SAMPLES","RENDERBUFFER_STENCIL_SIZE","RENDERBUFFER_WIDTH","RENDERER","RENDERING_INTENT_ABSOLUTE_COLORIMETRIC","RENDERING_INTENT_AUTO","RENDERING_INTENT_PERCEPTUAL","RENDERING_INTENT_RELATIVE_COLORIMETRIC","RENDERING_INTENT_SATURATION","RENDERING_INTENT_UNKNOWN","REPEAT","REPLACE","RG","RG16F","RG16I","RG16UI","RG32F","RG32I","RG32UI","RG8","RG8I","RG8UI","RG8_SNORM","RGB","RGB10_A2","RGB10_A2UI","RGB16F","RGB16I","RGB16UI","RGB32F","RGB32I","RGB32UI","RGB565","RGB5_A1","RGB8","RGB8I","RGB8UI","RGB8_SNORM","RGB9_E5","RGBA","RGBA16F","RGBA16I","RGBA16UI","RGBA32F","RGBA32I","RGBA32UI","RGBA4","RGBA8","RGBA8I","RGBA8UI","RGBA8_SNORM","RGBA_INTEGER","RGBColor","RGB_INTEGER","RG_INTEGER","ROTATION_CLOCKWISE","ROTATION_COUNTERCLOCKWISE","RTCCertificate","RTCDTMFSender","RTCDTMFToneChangeEvent","RTCDataChannel","RTCDataChannelEvent","RTCDtlsTransport","RTCError","RTCErrorEvent","RTCIceCandidate","RTCIceTransport","RTCPeerConnection","RTCPeerConnectionIceErrorEvent","RTCPeerConnectionIceEvent","RTCRtpReceiver","RTCRtpSender","RTCRtpTransceiver","RTCSctpTransport","RTCSessionDescription","RTCStatsReport","RTCTrackEvent","RadioNodeList","Range","RangeError","RangeException","ReadableStream","ReadableStreamDefaultReader","RecordErrorEvent","Rect","ReferenceError","Reflect","RegExp","RelativeOrientationSensor","RelativeTimeFormat","RemotePlayback","Report","ReportBody","ReportingObserver","Request","ResizeObserver","ResizeObserverEntry","ResizeObserverSize","Response","RuntimeError","SAMPLER_2D","SAMPLER_2D_ARRAY","SAMPLER_2D_ARRAY_SHADOW","SAMPLER_2D_SHADOW","SAMPLER_3D","SAMPLER_BINDING","SAMPLER_CUBE","SAMPLER_CUBE_SHADOW","SAMPLES","SAMPLE_ALPHA_TO_COVERAGE","SAMPLE_BUFFERS","SAMPLE_COVERAGE","SAMPLE_COVERAGE_INVERT","SAMPLE_COVERAGE_VALUE","SAWTOOTH","SCHEDULED_STATE","SCISSOR_BOX","SCISSOR_TEST","SCROLL_PAGE_DOWN","SCROLL_PAGE_UP","SDP_ANSWER","SDP_OFFER","SDP_PRANSWER","SECURITY_ERR","SELECT","SEPARATE_ATTRIBS","SERIALIZE_ERR","SEVERITY_ERROR","SEVERITY_FATAL_ERROR","SEVERITY_WARNING","SHADER_COMPILER","SHADER_TYPE","SHADING_LANGUAGE_VERSION","SHIFT_MASK","SHORT","SHOWING","SHOW_ALL","SHOW_ATTRIBUTE","SHOW_CDATA_SECTION","SHOW_COMMENT","SHOW_DOCUMENT","SHOW_DOCUMENT_FRAGMENT","SHOW_DOCUMENT_TYPE","SHOW_ELEMENT","SHOW_ENTITY","SHOW_ENTITY_REFERENCE","SHOW_NOTATION","SHOW_PROCESSING_INSTRUCTION","SHOW_TEXT","SIGNALED","SIGNED_NORMALIZED","SINE","SOUNDFIELD","SQLException","SQRT1_2","SQRT2","SQUARE","SRC_ALPHA","SRC_ALPHA_SATURATE","SRC_COLOR","SRGB","SRGB8","SRGB8_ALPHA8","START_TO_END","START_TO_START","STATIC_COPY","STATIC_DRAW","STATIC_READ","STENCIL","STENCIL_ATTACHMENT","STENCIL_BACK_FAIL","STENCIL_BACK_FUNC","STENCIL_BACK_PASS_DEPTH_FAIL","STENCIL_BACK_PASS_DEPTH_PASS","STENCIL_BACK_REF","STENCIL_BACK_VALUE_MASK","STENCIL_BACK_WRITEMASK","STENCIL_BITS","STENCIL_BUFFER_BIT","STENCIL_CLEAR_VALUE","STENCIL_FAIL","STENCIL_FUNC","STENCIL_INDEX","STENCIL_INDEX8","STENCIL_PASS_DEPTH_FAIL","STENCIL_PASS_DEPTH_PASS","STENCIL_REF","STENCIL_TEST","STENCIL_VALUE_MASK","STENCIL_WRITEMASK","STREAM_COPY","STREAM_DRAW","STREAM_READ","STRING_TYPE","STYLE_RULE","SUBPIXEL_BITS","SUPPORTS_RULE","SVGAElement","SVGAltGlyphDefElement","SVGAltGlyphElement","SVGAltGlyphItemElement","SVGAngle","SVGAnimateColorElement","SVGAnimateElement","SVGAnimateMotionElement","SVGAnimateTransformElement","SVGAnimatedAngle","SVGAnimatedBoolean","SVGAnimatedEnumeration","SVGAnimatedInteger","SVGAnimatedLength","SVGAnimatedLengthList","SVGAnimatedNumber","SVGAnimatedNumberList","SVGAnimatedPreserveAspectRatio","SVGAnimatedRect","SVGAnimatedString","SVGAnimatedTransformList","SVGAnimationElement","SVGCircleElement","SVGClipPathElement","SVGColor","SVGComponentTransferFunctionElement","SVGCursorElement","SVGDefsElement","SVGDescElement","SVGDiscardElement","SVGDocument","SVGElement","SVGElementInstance","SVGElementInstanceList","SVGEllipseElement","SVGException","SVGFEBlendElement","SVGFEColorMatrixElement","SVGFEComponentTransferElement","SVGFECompositeElement","SVGFEConvolveMatrixElement","SVGFEDiffuseLightingElement","SVGFEDisplacementMapElement","SVGFEDistantLightElement","SVGFEDropShadowElement","SVGFEFloodElement","SVGFEFuncAElement","SVGFEFuncBElement","SVGFEFuncGElement","SVGFEFuncRElement","SVGFEGaussianBlurElement","SVGFEImageElement","SVGFEMergeElement","SVGFEMergeNodeElement","SVGFEMorphologyElement","SVGFEOffsetElement","SVGFEPointLightElement","SVGFESpecularLightingElement","SVGFESpotLightElement","SVGFETileElement","SVGFETurbulenceElement","SVGFilterElement","SVGFontElement","SVGFontFaceElement","SVGFontFaceFormatElement","SVGFontFaceNameElement","SVGFontFaceSrcElement","SVGFontFaceUriElement","SVGForeignObjectElement","SVGGElement","SVGGeometryElement","SVGGlyphElement","SVGGlyphRefElement","SVGGradientElement","SVGGraphicsElement","SVGHKernElement","SVGImageElement","SVGLength","SVGLengthList","SVGLineElement","SVGLinearGradientElement","SVGMPathElement","SVGMarkerElement","SVGMaskElement","SVGMatrix","SVGMetadataElement","SVGMissingGlyphElement","SVGNumber","SVGNumberList","SVGPaint","SVGPathElement","SVGPathSeg","SVGPathSegArcAbs","SVGPathSegArcRel","SVGPathSegClosePath","SVGPathSegCurvetoCubicAbs","SVGPathSegCurvetoCubicRel","SVGPathSegCurvetoCubicSmoothAbs","SVGPathSegCurvetoCubicSmoothRel","SVGPathSegCurvetoQuadraticAbs","SVGPathSegCurvetoQuadraticRel","SVGPathSegCurvetoQuadraticSmoothAbs","SVGPathSegCurvetoQuadraticSmoothRel","SVGPathSegLinetoAbs","SVGPathSegLinetoHorizontalAbs","SVGPathSegLinetoHorizontalRel","SVGPathSegLinetoRel","SVGPathSegLinetoVerticalAbs","SVGPathSegLinetoVerticalRel","SVGPathSegList","SVGPathSegMovetoAbs","SVGPathSegMovetoRel","SVGPatternElement","SVGPoint","SVGPointList","SVGPolygonElement","SVGPolylineElement","SVGPreserveAspectRatio","SVGRadialGradientElement","SVGRect","SVGRectElement","SVGRenderingIntent","SVGSVGElement","SVGScriptElement","SVGSetElement","SVGStopElement","SVGStringList","SVGStyleElement","SVGSwitchElement","SVGSymbolElement","SVGTRefElement","SVGTSpanElement","SVGTextContentElement","SVGTextElement","SVGTextPathElement","SVGTextPositioningElement","SVGTitleElement","SVGTransform","SVGTransformList","SVGUnitTypes","SVGUseElement","SVGVKernElement","SVGViewElement","SVGViewSpec","SVGZoomAndPan","SVGZoomEvent","SVG_ANGLETYPE_DEG","SVG_ANGLETYPE_GRAD","SVG_ANGLETYPE_RAD","SVG_ANGLETYPE_UNKNOWN","SVG_ANGLETYPE_UNSPECIFIED","SVG_CHANNEL_A","SVG_CHANNEL_B","SVG_CHANNEL_G","SVG_CHANNEL_R","SVG_CHANNEL_UNKNOWN","SVG_COLORTYPE_CURRENTCOLOR","SVG_COLORTYPE_RGBCOLOR","SVG_COLORTYPE_RGBCOLOR_ICCCOLOR","SVG_COLORTYPE_UNKNOWN","SVG_EDGEMODE_DUPLICATE","SVG_EDGEMODE_NONE","SVG_EDGEMODE_UNKNOWN","SVG_EDGEMODE_WRAP","SVG_FEBLEND_MODE_COLOR","SVG_FEBLEND_MODE_COLOR_BURN","SVG_FEBLEND_MODE_COLOR_DODGE","SVG_FEBLEND_MODE_DARKEN","SVG_FEBLEND_MODE_DIFFERENCE","SVG_FEBLEND_MODE_EXCLUSION","SVG_FEBLEND_MODE_HARD_LIGHT","SVG_FEBLEND_MODE_HUE","SVG_FEBLEND_MODE_LIGHTEN","SVG_FEBLEND_MODE_LUMINOSITY","SVG_FEBLEND_MODE_MULTIPLY","SVG_FEBLEND_MODE_NORMAL","SVG_FEBLEND_MODE_OVERLAY","SVG_FEBLEND_MODE_SATURATION","SVG_FEBLEND_MODE_SCREEN","SVG_FEBLEND_MODE_SOFT_LIGHT","SVG_FEBLEND_MODE_UNKNOWN","SVG_FECOLORMATRIX_TYPE_HUEROTATE","SVG_FECOLORMATRIX_TYPE_LUMINANCETOALPHA","SVG_FECOLORMATRIX_TYPE_MATRIX","SVG_FECOLORMATRIX_TYPE_SATURATE","SVG_FECOLORMATRIX_TYPE_UNKNOWN","SVG_FECOMPONENTTRANSFER_TYPE_DISCRETE","SVG_FECOMPONENTTRANSFER_TYPE_GAMMA","SVG_FECOMPONENTTRANSFER_TYPE_IDENTITY","SVG_FECOMPONENTTRANSFER_TYPE_LINEAR","SVG_FECOMPONENTTRANSFER_TYPE_TABLE","SVG_FECOMPONENTTRANSFER_TYPE_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_ARITHMETIC","SVG_FECOMPOSITE_OPERATOR_ATOP","SVG_FECOMPOSITE_OPERATOR_IN","SVG_FECOMPOSITE_OPERATOR_OUT","SVG_FECOMPOSITE_OPERATOR_OVER","SVG_FECOMPOSITE_OPERATOR_UNKNOWN","SVG_FECOMPOSITE_OPERATOR_XOR","SVG_INVALID_VALUE_ERR","SVG_LENGTHTYPE_CM","SVG_LENGTHTYPE_EMS","SVG_LENGTHTYPE_EXS","SVG_LENGTHTYPE_IN","SVG_LENGTHTYPE_MM","SVG_LENGTHTYPE_NUMBER","SVG_LENGTHTYPE_PC","SVG_LENGTHTYPE_PERCENTAGE","SVG_LENGTHTYPE_PT","SVG_LENGTHTYPE_PX","SVG_LENGTHTYPE_UNKNOWN","SVG_MARKERUNITS_STROKEWIDTH","SVG_MARKERUNITS_UNKNOWN","SVG_MARKERUNITS_USERSPACEONUSE","SVG_MARKER_ORIENT_ANGLE","SVG_MARKER_ORIENT_AUTO","SVG_MARKER_ORIENT_UNKNOWN","SVG_MASKTYPE_ALPHA","SVG_MASKTYPE_LUMINANCE","SVG_MATRIX_NOT_INVERTABLE","SVG_MEETORSLICE_MEET","SVG_MEETORSLICE_SLICE","SVG_MEETORSLICE_UNKNOWN","SVG_MORPHOLOGY_OPERATOR_DILATE","SVG_MORPHOLOGY_OPERATOR_ERODE","SVG_MORPHOLOGY_OPERATOR_UNKNOWN","SVG_PAINTTYPE_CURRENTCOLOR","SVG_PAINTTYPE_NONE","SVG_PAINTTYPE_RGBCOLOR","SVG_PAINTTYPE_RGBCOLOR_ICCCOLOR","SVG_PAINTTYPE_UNKNOWN","SVG_PAINTTYPE_URI","SVG_PAINTTYPE_URI_CURRENTCOLOR","SVG_PAINTTYPE_URI_NONE","SVG_PAINTTYPE_URI_RGBCOLOR","SVG_PAINTTYPE_URI_RGBCOLOR_ICCCOLOR","SVG_PRESERVEASPECTRATIO_NONE","SVG_PRESERVEASPECTRATIO_UNKNOWN","SVG_PRESERVEASPECTRATIO_XMAXYMAX","SVG_PRESERVEASPECTRATIO_XMAXYMID","SVG_PRESERVEASPECTRATIO_XMAXYMIN","SVG_PRESERVEASPECTRATIO_XMIDYMAX","SVG_PRESERVEASPECTRATIO_XMIDYMID","SVG_PRESERVEASPECTRATIO_XMIDYMIN","SVG_PRESERVEASPECTRATIO_XMINYMAX","SVG_PRESERVEASPECTRATIO_XMINYMID","SVG_PRESERVEASPECTRATIO_XMINYMIN","SVG_SPREADMETHOD_PAD","SVG_SPREADMETHOD_REFLECT","SVG_SPREADMETHOD_REPEAT","SVG_SPREADMETHOD_UNKNOWN","SVG_STITCHTYPE_NOSTITCH","SVG_STITCHTYPE_STITCH","SVG_STITCHTYPE_UNKNOWN","SVG_TRANSFORM_MATRIX","SVG_TRANSFORM_ROTATE","SVG_TRANSFORM_SCALE","SVG_TRANSFORM_SKEWX","SVG_TRANSFORM_SKEWY","SVG_TRANSFORM_TRANSLATE","SVG_TRANSFORM_UNKNOWN","SVG_TURBULENCE_TYPE_FRACTALNOISE","SVG_TURBULENCE_TYPE_TURBULENCE","SVG_TURBULENCE_TYPE_UNKNOWN","SVG_UNIT_TYPE_OBJECTBOUNDINGBOX","SVG_UNIT_TYPE_UNKNOWN","SVG_UNIT_TYPE_USERSPACEONUSE","SVG_WRONG_TYPE_ERR","SVG_ZOOMANDPAN_DISABLE","SVG_ZOOMANDPAN_MAGNIFY","SVG_ZOOMANDPAN_UNKNOWN","SYNC_CONDITION","SYNC_FENCE","SYNC_FLAGS","SYNC_FLUSH_COMMANDS_BIT","SYNC_GPU_COMMANDS_COMPLETE","SYNC_STATUS","SYNTAX_ERR","SavedPages","Screen","ScreenOrientation","Script","ScriptProcessorNode","ScrollAreaEvent","SecurityPolicyViolationEvent","Selection","Sensor","SensorErrorEvent","ServiceWorker","ServiceWorkerContainer","ServiceWorkerRegistration","SessionDescription","Set","ShadowRoot","SharedArrayBuffer","SharedWorker","SimpleGestureEvent","SourceBuffer","SourceBufferList","SpeechSynthesis","SpeechSynthesisErrorEvent","SpeechSynthesisEvent","SpeechSynthesisUtterance","SpeechSynthesisVoice","StaticRange","StereoPannerNode","StopIteration","Storage","StorageEvent","StorageManager","String","StructType","StylePropertyMap","StylePropertyMapReadOnly","StyleSheet","StyleSheetList","SubmitEvent","SubtleCrypto","Symbol","SyncManager","SyntaxError","TEMPORARY","TEXTPATH_METHODTYPE_ALIGN","TEXTPATH_METHODTYPE_STRETCH","TEXTPATH_METHODTYPE_UNKNOWN","TEXTPATH_SPACINGTYPE_AUTO","TEXTPATH_SPACINGTYPE_EXACT","TEXTPATH_SPACINGTYPE_UNKNOWN","TEXTURE","TEXTURE0","TEXTURE1","TEXTURE10","TEXTURE11","TEXTURE12","TEXTURE13","TEXTURE14","TEXTURE15","TEXTURE16","TEXTURE17","TEXTURE18","TEXTURE19","TEXTURE2","TEXTURE20","TEXTURE21","TEXTURE22","TEXTURE23","TEXTURE24","TEXTURE25","TEXTURE26","TEXTURE27","TEXTURE28","TEXTURE29","TEXTURE3","TEXTURE30","TEXTURE31","TEXTURE4","TEXTURE5","TEXTURE6","TEXTURE7","TEXTURE8","TEXTURE9","TEXTURE_2D","TEXTURE_2D_ARRAY","TEXTURE_3D","TEXTURE_BASE_LEVEL","TEXTURE_BINDING_2D","TEXTURE_BINDING_2D_ARRAY","TEXTURE_BINDING_3D","TEXTURE_BINDING_CUBE_MAP","TEXTURE_COMPARE_FUNC","TEXTURE_COMPARE_MODE","TEXTURE_CUBE_MAP","TEXTURE_CUBE_MAP_NEGATIVE_X","TEXTURE_CUBE_MAP_NEGATIVE_Y","TEXTURE_CUBE_MAP_NEGATIVE_Z","TEXTURE_CUBE_MAP_POSITIVE_X","TEXTURE_CUBE_MAP_POSITIVE_Y","TEXTURE_CUBE_MAP_POSITIVE_Z","TEXTURE_IMMUTABLE_FORMAT","TEXTURE_IMMUTABLE_LEVELS","TEXTURE_MAG_FILTER","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MAX_LEVEL","TEXTURE_MAX_LOD","TEXTURE_MIN_FILTER","TEXTURE_MIN_LOD","TEXTURE_WRAP_R","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXT_NODE","TIMEOUT","TIMEOUT_ERR","TIMEOUT_EXPIRED","TIMEOUT_IGNORED","TOO_LARGE_ERR","TRANSACTION_INACTIVE_ERR","TRANSFORM_FEEDBACK","TRANSFORM_FEEDBACK_ACTIVE","TRANSFORM_FEEDBACK_BINDING","TRANSFORM_FEEDBACK_BUFFER","TRANSFORM_FEEDBACK_BUFFER_BINDING","TRANSFORM_FEEDBACK_BUFFER_MODE","TRANSFORM_FEEDBACK_BUFFER_SIZE","TRANSFORM_FEEDBACK_BUFFER_START","TRANSFORM_FEEDBACK_PAUSED","TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN","TRANSFORM_FEEDBACK_VARYINGS","TRIANGLE","TRIANGLES","TRIANGLE_FAN","TRIANGLE_STRIP","TYPE_BACK_FORWARD","TYPE_ERR","TYPE_MISMATCH_ERR","TYPE_NAVIGATE","TYPE_RELOAD","TYPE_RESERVED","Table","TaskAttributionTiming","Text","TextDecoder","TextDecoderStream","TextEncoder","TextEncoderStream","TextEvent","TextMetrics","TextTrack","TextTrackCue","TextTrackCueList","TextTrackList","TimeEvent","TimeRanges","Touch","TouchEvent","TouchList","TrackEvent","TransformStream","TransitionEvent","TreeWalker","TrustedHTML","TrustedScript","TrustedScriptURL","TrustedTypePolicy","TrustedTypePolicyFactory","TypeError","TypedObject","U2F","UIEvent","UNCACHED","UNIFORM_ARRAY_STRIDE","UNIFORM_BLOCK_ACTIVE_UNIFORMS","UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES","UNIFORM_BLOCK_BINDING","UNIFORM_BLOCK_DATA_SIZE","UNIFORM_BLOCK_INDEX","UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER","UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER","UNIFORM_BUFFER","UNIFORM_BUFFER_BINDING","UNIFORM_BUFFER_OFFSET_ALIGNMENT","UNIFORM_BUFFER_SIZE","UNIFORM_BUFFER_START","UNIFORM_IS_ROW_MAJOR","UNIFORM_MATRIX_STRIDE","UNIFORM_OFFSET","UNIFORM_SIZE","UNIFORM_TYPE","UNKNOWN_ERR","UNKNOWN_RULE","UNMASKED_RENDERER_WEBGL","UNMASKED_VENDOR_WEBGL","UNORDERED_NODE_ITERATOR_TYPE","UNORDERED_NODE_SNAPSHOT_TYPE","UNPACK_ALIGNMENT","UNPACK_COLORSPACE_CONVERSION_WEBGL","UNPACK_FLIP_Y_WEBGL","UNPACK_IMAGE_HEIGHT","UNPACK_PREMULTIPLY_ALPHA_WEBGL","UNPACK_ROW_LENGTH","UNPACK_SKIP_IMAGES","UNPACK_SKIP_PIXELS","UNPACK_SKIP_ROWS","UNSCHEDULED_STATE","UNSENT","UNSIGNALED","UNSIGNED_BYTE","UNSIGNED_INT","UNSIGNED_INT_10F_11F_11F_REV","UNSIGNED_INT_24_8","UNSIGNED_INT_2_10_10_10_REV","UNSIGNED_INT_5_9_9_9_REV","UNSIGNED_INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_3D","UNSIGNED_INT_SAMPLER_CUBE","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","UNSIGNED_NORMALIZED","UNSIGNED_SHORT","UNSIGNED_SHORT_4_4_4_4","UNSIGNED_SHORT_5_5_5_1","UNSIGNED_SHORT_5_6_5","UNSPECIFIED_EVENT_TYPE_ERR","UPDATEREADY","URIError","URL","URLSearchParams","URLUnencoded","URL_MISMATCH_ERR","USB","USBAlternateInterface","USBConfiguration","USBConnectionEvent","USBDevice","USBEndpoint","USBInTransferResult","USBInterface","USBIsochronousInTransferPacket","USBIsochronousInTransferResult","USBIsochronousOutTransferPacket","USBIsochronousOutTransferResult","USBOutTransferResult","UTC","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","UserActivation","UserMessageHandler","UserMessageHandlersNamespace","UserProximityEvent","VALIDATE_STATUS","VALIDATION_ERR","VARIABLES_RULE","VENDOR","VERSION","VERSION_CHANGE","VERSION_ERR","VERTEX_ARRAY_BINDING","VERTEX_ATTRIB_ARRAY_BUFFER_BINDING","VERTEX_ATTRIB_ARRAY_DIVISOR","VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE","VERTEX_ATTRIB_ARRAY_ENABLED","VERTEX_ATTRIB_ARRAY_INTEGER","VERTEX_ATTRIB_ARRAY_NORMALIZED","VERTEX_ATTRIB_ARRAY_POINTER","VERTEX_ATTRIB_ARRAY_SIZE","VERTEX_ATTRIB_ARRAY_STRIDE","VERTEX_ATTRIB_ARRAY_TYPE","VERTEX_SHADER","VERTICAL","VERTICAL_AXIS","VER_ERR","VIEWPORT","VIEWPORT_RULE","VRDisplay","VRDisplayCapabilities","VRDisplayEvent","VREyeParameters","VRFieldOfView","VRFrameData","VRPose","VRStageParameters","VTTCue","VTTRegion","ValidityState","VideoPlaybackQuality","VideoStreamTrack","VisualViewport","WAIT_FAILED","WEBKIT_FILTER_RULE","WEBKIT_KEYFRAMES_RULE","WEBKIT_KEYFRAME_RULE","WEBKIT_REGION_RULE","WRONG_DOCUMENT_ERR","WakeLock","WakeLockSentinel","WasmAnyRef","WaveShaperNode","WeakMap","WeakRef","WeakSet","WebAssembly","WebGL2RenderingContext","WebGLActiveInfo","WebGLBuffer","WebGLContextEvent","WebGLFramebuffer","WebGLProgram","WebGLQuery","WebGLRenderbuffer","WebGLRenderingContext","WebGLSampler","WebGLShader","WebGLShaderPrecisionFormat","WebGLSync","WebGLTexture","WebGLTransformFeedback","WebGLUniformLocation","WebGLVertexArray","WebGLVertexArrayObject","WebKitAnimationEvent","WebKitBlobBuilder","WebKitCSSFilterRule","WebKitCSSFilterValue","WebKitCSSKeyframeRule","WebKitCSSKeyframesRule","WebKitCSSMatrix","WebKitCSSRegionRule","WebKitCSSTransformValue","WebKitDataCue","WebKitGamepad","WebKitMediaKeyError","WebKitMediaKeyMessageEvent","WebKitMediaKeySession","WebKitMediaKeys","WebKitMediaSource","WebKitMutationObserver","WebKitNamespace","WebKitPlaybackTargetAvailabilityEvent","WebKitPoint","WebKitShadowRoot","WebKitSourceBuffer","WebKitSourceBufferList","WebKitTransitionEvent","WebSocket","WebkitAlignContent","WebkitAlignItems","WebkitAlignSelf","WebkitAnimation","WebkitAnimationDelay","WebkitAnimationDirection","WebkitAnimationDuration","WebkitAnimationFillMode","WebkitAnimationIterationCount","WebkitAnimationName","WebkitAnimationPlayState","WebkitAnimationTimingFunction","WebkitAppearance","WebkitBackfaceVisibility","WebkitBackgroundClip","WebkitBackgroundOrigin","WebkitBackgroundSize","WebkitBorderBottomLeftRadius","WebkitBorderBottomRightRadius","WebkitBorderImage","WebkitBorderRadius","WebkitBorderTopLeftRadius","WebkitBorderTopRightRadius","WebkitBoxAlign","WebkitBoxDirection","WebkitBoxFlex","WebkitBoxOrdinalGroup","WebkitBoxOrient","WebkitBoxPack","WebkitBoxShadow","WebkitBoxSizing","WebkitFilter","WebkitFlex","WebkitFlexBasis","WebkitFlexDirection","WebkitFlexFlow","WebkitFlexGrow","WebkitFlexShrink","WebkitFlexWrap","WebkitJustifyContent","WebkitLineClamp","WebkitMask","WebkitMaskClip","WebkitMaskComposite","WebkitMaskImage","WebkitMaskOrigin","WebkitMaskPosition","WebkitMaskPositionX","WebkitMaskPositionY","WebkitMaskRepeat","WebkitMaskSize","WebkitOrder","WebkitPerspective","WebkitPerspectiveOrigin","WebkitTextFillColor","WebkitTextSizeAdjust","WebkitTextStroke","WebkitTextStrokeColor","WebkitTextStrokeWidth","WebkitTransform","WebkitTransformOrigin","WebkitTransformStyle","WebkitTransition","WebkitTransitionDelay","WebkitTransitionDuration","WebkitTransitionProperty","WebkitTransitionTimingFunction","WebkitUserSelect","WheelEvent","Window","Worker","Worklet","WritableStream","WritableStreamDefaultWriter","XMLDocument","XMLHttpRequest","XMLHttpRequestEventTarget","XMLHttpRequestException","XMLHttpRequestProgressEvent","XMLHttpRequestUpload","XMLSerializer","XMLStylesheetProcessingInstruction","XPathEvaluator","XPathException","XPathExpression","XPathNSResolver","XPathResult","XRBoundedReferenceSpace","XRDOMOverlayState","XRFrame","XRHitTestResult","XRHitTestSource","XRInputSource","XRInputSourceArray","XRInputSourceEvent","XRInputSourcesChangeEvent","XRLayer","XRPose","XRRay","XRReferenceSpace","XRReferenceSpaceEvent","XRRenderState","XRRigidTransform","XRSession","XRSessionEvent","XRSpace","XRSystem","XRTransientInputHitTestResult","XRTransientInputHitTestSource","XRView","XRViewerPose","XRViewport","XRWebGLLayer","XSLTProcessor","ZERO","_XD0M_","_YD0M_","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__","__opera","__proto__","_browserjsran","a","aLink","abbr","abort","aborted","abs","absolute","acceleration","accelerationIncludingGravity","accelerator","accept","acceptCharset","acceptNode","accessKey","accessKeyLabel","accuracy","acos","acosh","action","actionURL","actions","activated","active","activeCues","activeElement","activeSourceBuffers","activeSourceCount","activeTexture","activeVRDisplays","actualBoundingBoxAscent","actualBoundingBoxDescent","actualBoundingBoxLeft","actualBoundingBoxRight","add","addAll","addBehavior","addCandidate","addColorStop","addCue","addElement","addEventListener","addFilter","addFromString","addFromUri","addIceCandidate","addImport","addListener","addModule","addNamed","addPageRule","addPath","addPointer","addRange","addRegion","addRule","addSearchEngine","addSourceBuffer","addStream","addTextTrack","addTrack","addTransceiver","addWakeLockListener","added","addedNodes","additionalName","additiveSymbols","addons","address","addressLine","adoptNode","adoptedStyleSheets","adr","advance","after","album","alert","algorithm","align","align-content","align-items","align-self","alignContent","alignItems","alignSelf","alignmentBaseline","alinkColor","all","allSettled","allow","allowFullscreen","allowPaymentRequest","allowedDirections","allowedFeatures","allowedToPlay","allowsFeature","alpha","alt","altGraphKey","altHtml","altKey","altLeft","alternate","alternateSetting","alternates","altitude","altitudeAccuracy","amplitude","ancestorOrigins","anchor","anchorNode","anchorOffset","anchors","and","angle","angularAcceleration","angularVelocity","animVal","animate","animatedInstanceRoot","animatedNormalizedPathSegList","animatedPathSegList","animatedPoints","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","animationDelay","animationDirection","animationDuration","animationFillMode","animationIterationCount","animationName","animationPlayState","animationStartTime","animationTimingFunction","animationsPaused","anniversary","antialias","anticipatedRemoval","any","app","appCodeName","appMinorVersion","appName","appNotifications","appVersion","appearance","append","appendBuffer","appendChild","appendData","appendItem","appendMedium","appendNamed","appendRule","appendStream","appendWindowEnd","appendWindowStart","applets","applicationCache","applicationServerKey","apply","applyConstraints","applyElement","arc","arcTo","archive","areas","arguments","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaCurrent","ariaDescription","ariaDisabled","ariaExpanded","ariaHasPopup","ariaHidden","ariaKeyShortcuts","ariaLabel","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","arrayBuffer","artist","artwork","as","asIntN","asUintN","asin","asinh","assert","assign","assignedElements","assignedNodes","assignedSlot","async","asyncIterator","atEnd","atan","atan2","atanh","atob","attachEvent","attachInternals","attachShader","attachShadow","attachments","attack","attestationObject","attrChange","attrName","attributeFilter","attributeName","attributeNamespace","attributeOldValue","attributeStyleMap","attributes","attribution","audioBitsPerSecond","audioTracks","audioWorklet","authenticatedSignedWrites","authenticatorData","autoIncrement","autobuffer","autocapitalize","autocomplete","autocorrect","autofocus","automationRate","autoplay","availHeight","availLeft","availTop","availWidth","availability","available","aversion","ax","axes","axis","ay","azimuth","b","back","backface-visibility","backfaceVisibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-position-x","background-position-y","background-repeat","background-size","backgroundAttachment","backgroundBlendMode","backgroundClip","backgroundColor","backgroundFetch","backgroundImage","backgroundOrigin","backgroundPosition","backgroundPositionX","backgroundPositionY","backgroundRepeat","backgroundSize","badInput","badge","balance","baseFrequencyX","baseFrequencyY","baseLatency","baseLayer","baseNode","baseOffset","baseURI","baseVal","baselineShift","battery","bday","before","beginElement","beginElementAt","beginPath","beginQuery","beginTransformFeedback","behavior","behaviorCookie","behaviorPart","behaviorUrns","beta","bezierCurveTo","bgColor","bgProperties","bias","big","bigint64","biguint64","binaryType","bind","bindAttribLocation","bindBuffer","bindBufferBase","bindBufferRange","bindFramebuffer","bindRenderbuffer","bindSampler","bindTexture","bindTransformFeedback","bindVertexArray","blendColor","blendEquation","blendEquationSeparate","blendFunc","blendFuncSeparate","blink","blitFramebuffer","blob","block-size","blockDirection","blockSize","blockedURI","blue","bluetooth","blur","body","bodyUsed","bold","bookmarks","booleanValue","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-end-end-radius","border-end-start-radius","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","borderBlock","borderBlockColor","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockStyle","borderBlockWidth","borderBottom","borderBottomColor","borderBottomLeftRadius","borderBottomRightRadius","borderBottomStyle","borderBottomWidth","borderBoxSize","borderCollapse","borderColor","borderColorDark","borderColorLight","borderEndEndRadius","borderEndStartRadius","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","borderInline","borderInlineColor","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineStyle","borderInlineWidth","borderLeft","borderLeftColor","borderLeftStyle","borderLeftWidth","borderRadius","borderRight","borderRightColor","borderRightStyle","borderRightWidth","borderSpacing","borderStartEndRadius","borderStartStartRadius","borderStyle","borderTop","borderTopColor","borderTopLeftRadius","borderTopRightRadius","borderTopStyle","borderTopWidth","borderWidth","bottom","bottomMargin","bound","boundElements","boundingClientRect","boundingHeight","boundingLeft","boundingTop","boundingWidth","bounds","boundsGeometry","box-decoration-break","box-shadow","box-sizing","boxDecorationBreak","boxShadow","boxSizing","break-after","break-before","break-inside","breakAfter","breakBefore","breakInside","broadcast","browserLanguage","btoa","bubbles","buffer","bufferData","bufferDepth","bufferSize","bufferSubData","buffered","bufferedAmount","bufferedAmountLowThreshold","buildID","buildNumber","button","buttonID","buttons","byteLength","byteOffset","bytesWritten","c","cache","caches","call","caller","canBeFormatted","canBeMounted","canBeShared","canHaveChildren","canHaveHTML","canInsertDTMF","canMakePayment","canPlayType","canPresent","canTrickleIceCandidates","cancel","cancelAndHoldAtTime","cancelAnimationFrame","cancelBubble","cancelIdleCallback","cancelScheduledValues","cancelVideoFrameCallback","cancelWatchAvailability","cancelable","candidate","canonicalUUID","canvas","capabilities","caption","caption-side","captionSide","capture","captureEvents","captureStackTrace","captureStream","caret-color","caretBidiLevel","caretColor","caretPositionFromPoint","caretRangeFromPoint","cast","catch","category","cbrt","cd","ceil","cellIndex","cellPadding","cellSpacing","cells","ch","chOff","chain","challenge","changeType","changedTouches","channel","channelCount","channelCountMode","channelInterpretation","char","charAt","charCode","charCodeAt","charIndex","charLength","characterData","characterDataOldValue","characterSet","characteristic","charging","chargingTime","charset","check","checkEnclosure","checkFramebufferStatus","checkIntersection","checkValidity","checked","childElementCount","childList","childNodes","children","chrome","ciphertext","cite","city","claimInterface","claimed","classList","className","classid","clear","clearAppBadge","clearAttributes","clearBufferfi","clearBufferfv","clearBufferiv","clearBufferuiv","clearColor","clearData","clearDepth","clearHalt","clearImmediate","clearInterval","clearLiveSeekableRange","clearMarks","clearMaxGCPauseAccumulator","clearMeasures","clearParameters","clearRect","clearResourceTimings","clearShadow","clearStencil","clearTimeout","clearWatch","click","clickCount","clientDataJSON","clientHeight","clientInformation","clientLeft","clientRect","clientRects","clientTop","clientWaitSync","clientWidth","clientX","clientY","clip","clip-path","clip-rule","clipBottom","clipLeft","clipPath","clipPathUnits","clipRight","clipRule","clipTop","clipboard","clipboardData","clone","cloneContents","cloneNode","cloneRange","close","closePath","closed","closest","clz","clz32","cm","cmp","code","codeBase","codePointAt","codeType","colSpan","collapse","collapseToEnd","collapseToStart","collapsed","collect","colno","color","color-adjust","color-interpolation","color-interpolation-filters","colorAdjust","colorDepth","colorInterpolation","colorInterpolationFilters","colorMask","colorType","cols","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columnCount","columnFill","columnGap","columnNumber","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columnSpan","columnWidth","columns","command","commit","commitPreferences","commitStyles","commonAncestorContainer","compact","compareBoundaryPoints","compareDocumentPosition","compareEndPoints","compareExchange","compareNode","comparePoint","compatMode","compatible","compile","compileShader","compileStreaming","complete","component","componentFromPoint","composed","composedPath","composite","compositionEndOffset","compositionStartOffset","compressedTexImage2D","compressedTexImage3D","compressedTexSubImage2D","compressedTexSubImage3D","computedStyleMap","concat","conditionText","coneInnerAngle","coneOuterAngle","coneOuterGain","configuration","configurationName","configurationValue","configurations","confirm","confirmComposition","confirmSiteSpecificTrackingException","confirmWebWideTrackingException","connect","connectEnd","connectShark","connectStart","connected","connection","connectionList","connectionSpeed","connectionState","connections","console","consolidate","constraint","constrictionActive","construct","constructor","contactID","contain","containerId","containerName","containerSrc","containerType","contains","containsNode","content","contentBoxSize","contentDocument","contentEditable","contentHint","contentOverflow","contentRect","contentScriptType","contentStyleType","contentType","contentWindow","context","contextMenu","contextmenu","continue","continuePrimaryKey","continuous","control","controlTransferIn","controlTransferOut","controller","controls","controlsList","convertPointFromNode","convertQuadFromNode","convertRectFromNode","convertToBlob","convertToSpecifiedUnits","cookie","cookieEnabled","coords","copyBufferSubData","copyFromChannel","copyTexImage2D","copyTexSubImage2D","copyTexSubImage3D","copyToChannel","copyWithin","correspondingElement","correspondingUseElement","corruptedVideoFrames","cos","cosh","count","countReset","counter-increment","counter-reset","counter-set","counterIncrement","counterReset","counterSet","country","cpuClass","cpuSleepAllowed","create","createAnalyser","createAnswer","createAttribute","createAttributeNS","createBiquadFilter","createBuffer","createBufferSource","createCDATASection","createCSSStyleSheet","createCaption","createChannelMerger","createChannelSplitter","createComment","createConstantSource","createContextualFragment","createControlRange","createConvolver","createDTMFSender","createDataChannel","createDelay","createDelayNode","createDocument","createDocumentFragment","createDocumentType","createDynamicsCompressor","createElement","createElementNS","createEntityReference","createEvent","createEventObject","createExpression","createFramebuffer","createFunction","createGain","createGainNode","createHTML","createHTMLDocument","createIIRFilter","createImageBitmap","createImageData","createIndex","createJavaScriptNode","createLinearGradient","createMediaElementSource","createMediaKeys","createMediaStreamDestination","createMediaStreamSource","createMediaStreamTrackSource","createMutableFile","createNSResolver","createNodeIterator","createNotification","createObjectStore","createObjectURL","createOffer","createOscillator","createPanner","createPattern","createPeriodicWave","createPolicy","createPopup","createProcessingInstruction","createProgram","createQuery","createRadialGradient","createRange","createRangeCollection","createReader","createRenderbuffer","createSVGAngle","createSVGLength","createSVGMatrix","createSVGNumber","createSVGPathSegArcAbs","createSVGPathSegArcRel","createSVGPathSegClosePath","createSVGPathSegCurvetoCubicAbs","createSVGPathSegCurvetoCubicRel","createSVGPathSegCurvetoCubicSmoothAbs","createSVGPathSegCurvetoCubicSmoothRel","createSVGPathSegCurvetoQuadraticAbs","createSVGPathSegCurvetoQuadraticRel","createSVGPathSegCurvetoQuadraticSmoothAbs","createSVGPathSegCurvetoQuadraticSmoothRel","createSVGPathSegLinetoAbs","createSVGPathSegLinetoHorizontalAbs","createSVGPathSegLinetoHorizontalRel","createSVGPathSegLinetoRel","createSVGPathSegLinetoVerticalAbs","createSVGPathSegLinetoVerticalRel","createSVGPathSegMovetoAbs","createSVGPathSegMovetoRel","createSVGPoint","createSVGRect","createSVGTransform","createSVGTransformFromMatrix","createSampler","createScript","createScriptProcessor","createScriptURL","createSession","createShader","createShadowRoot","createStereoPanner","createStyleSheet","createTBody","createTFoot","createTHead","createTextNode","createTextRange","createTexture","createTouch","createTouchList","createTransformFeedback","createTreeWalker","createVertexArray","createWaveShaper","creationTime","credentials","crossOrigin","crossOriginIsolated","crypto","csi","csp","cssFloat","cssRules","cssText","cssValueType","ctrlKey","ctrlLeft","cues","cullFace","currentDirection","currentLocalDescription","currentNode","currentPage","currentRect","currentRemoteDescription","currentScale","currentScript","currentSrc","currentState","currentStyle","currentTarget","currentTime","currentTranslate","currentView","cursor","curve","customElements","customError","cx","cy","d","data","dataFld","dataFormatAs","dataLoss","dataLossMessage","dataPageSize","dataSrc","dataTransfer","database","databases","dataset","dateTime","db","debug","debuggerEnabled","declare","decode","decodeAudioData","decodeURI","decodeURIComponent","decodedBodySize","decoding","decodingInfo","decrypt","default","defaultCharset","defaultChecked","defaultMuted","defaultPlaybackRate","defaultPolicy","defaultPrevented","defaultRequest","defaultSelected","defaultStatus","defaultURL","defaultValue","defaultView","defaultstatus","defer","define","defineMagicFunction","defineMagicVariable","defineProperties","defineProperty","deg","delay","delayTime","delegatesFocus","delete","deleteBuffer","deleteCaption","deleteCell","deleteContents","deleteData","deleteDatabase","deleteFramebuffer","deleteFromDocument","deleteIndex","deleteMedium","deleteObjectStore","deleteProgram","deleteProperty","deleteQuery","deleteRenderbuffer","deleteRow","deleteRule","deleteSampler","deleteShader","deleteSync","deleteTFoot","deleteTHead","deleteTexture","deleteTransformFeedback","deleteVertexArray","deliverChangeRecords","delivery","deliveryInfo","deliveryStatus","deliveryTimestamp","delta","deltaMode","deltaX","deltaY","deltaZ","dependentLocality","depthFar","depthFunc","depthMask","depthNear","depthRange","deref","deriveBits","deriveKey","description","deselectAll","designMode","desiredSize","destination","destinationURL","detach","detachEvent","detachShader","detail","details","detect","detune","device","deviceClass","deviceId","deviceMemory","devicePixelContentBoxSize","devicePixelRatio","deviceProtocol","deviceSubclass","deviceVersionMajor","deviceVersionMinor","deviceVersionSubminor","deviceXDPI","deviceYDPI","didTimeout","diffuseConstant","digest","dimensions","dir","dirName","direction","dirxml","disable","disablePictureInPicture","disableRemotePlayback","disableVertexAttribArray","disabled","dischargingTime","disconnect","disconnectShark","dispatchEvent","display","displayId","displayName","disposition","distanceModel","div","divisor","djsapi","djsproxy","doImport","doNotTrack","doScroll","doctype","document","documentElement","documentMode","documentURI","dolphin","dolphinGameCenter","dolphininfo","dolphinmeta","domComplete","domContentLoadedEventEnd","domContentLoadedEventStart","domInteractive","domLoading","domOverlayState","domain","domainLookupEnd","domainLookupStart","dominant-baseline","dominantBaseline","done","dopplerFactor","dotAll","downDegrees","downlink","download","downloadTotal","downloaded","dpcm","dpi","dppx","dragDrop","draggable","drawArrays","drawArraysInstanced","drawArraysInstancedANGLE","drawBuffers","drawCustomFocusRing","drawElements","drawElementsInstanced","drawElementsInstancedANGLE","drawFocusIfNeeded","drawImage","drawImageFromRect","drawRangeElements","drawSystemFocusRing","drawingBufferHeight","drawingBufferWidth","dropEffect","droppedVideoFrames","dropzone","dtmf","dump","dumpProfile","duplicate","durability","duration","dvname","dvnum","dx","dy","dynsrc","e","edgeMode","effect","effectAllowed","effectiveDirective","effectiveType","elapsedTime","element","elementFromPoint","elementTiming","elements","elementsFromPoint","elevation","ellipse","em","email","embeds","emma","empty","empty-cells","emptyCells","emptyHTML","emptyScript","emulatedPosition","enable","enableBackground","enableDelegations","enableStyleSheetsForSet","enableVertexAttribArray","enabled","enabledPlugin","encode","encodeInto","encodeURI","encodeURIComponent","encodedBodySize","encoding","encodingInfo","encrypt","enctype","end","endContainer","endElement","endElementAt","endOfStream","endOffset","endQuery","endTime","endTransformFeedback","ended","endpoint","endpointNumber","endpoints","endsWith","enterKeyHint","entities","entries","entryType","enumerate","enumerateDevices","enumerateEditable","environmentBlendMode","equals","error","errorCode","errorDetail","errorText","escape","estimate","eval","evaluate","event","eventPhase","every","ex","exception","exchange","exec","execCommand","execCommandShowHelp","execScript","exitFullscreen","exitPictureInPicture","exitPointerLock","exitPresent","exp","expand","expandEntityReferences","expando","expansion","expiration","expirationTime","expires","expiryDate","explicitOriginalTarget","expm1","exponent","exponentialRampToValueAtTime","exportKey","extend","extensions","extentNode","extentOffset","external","externalResourcesRequired","extractContents","extractable","eye","f","face","factoryReset","failureReason","fallback","family","familyName","farthestViewportElement","fastSeek","fatal","featureId","featurePolicy","featureSettings","features","fenceSync","fetch","fetchStart","fftSize","fgColor","fieldOfView","file","fileCreatedDate","fileHandle","fileModifiedDate","fileName","fileSize","fileUpdatedDate","filename","files","filesystem","fill","fill-opacity","fill-rule","fillLightMode","fillOpacity","fillRect","fillRule","fillStyle","fillText","filter","filterResX","filterResY","filterUnits","filters","finally","find","findIndex","findRule","findText","finish","finished","fireEvent","firesTouchEvents","firstChild","firstElementChild","firstPage","fixed","flags","flat","flatMap","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","flexBasis","flexDirection","flexFlow","flexGrow","flexShrink","flexWrap","flipX","flipY","float","float32","float64","flood-color","flood-opacity","floodColor","floodOpacity","floor","flush","focus","focusNode","focusOffset","font","font-family","font-feature-settings","font-kerning","font-language-override","font-optical-sizing","font-size","font-size-adjust","font-stretch","font-style","font-synthesis","font-variant","font-variant-alternates","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","fontFamily","fontFeatureSettings","fontKerning","fontLanguageOverride","fontOpticalSizing","fontSize","fontSizeAdjust","fontSmoothingEnabled","fontStretch","fontStyle","fontSynthesis","fontVariant","fontVariantAlternates","fontVariantCaps","fontVariantEastAsian","fontVariantLigatures","fontVariantNumeric","fontVariantPosition","fontVariationSettings","fontWeight","fontcolor","fontfaces","fonts","fontsize","for","forEach","force","forceRedraw","form","formAction","formData","formEnctype","formMethod","formNoValidate","formTarget","format","formatToParts","forms","forward","forwardX","forwardY","forwardZ","foundation","fr","fragmentDirective","frame","frameBorder","frameElement","frameSpacing","framebuffer","framebufferHeight","framebufferRenderbuffer","framebufferTexture2D","framebufferTextureLayer","framebufferWidth","frames","freeSpace","freeze","frequency","frequencyBinCount","from","fromCharCode","fromCodePoint","fromElement","fromEntries","fromFloat32Array","fromFloat64Array","fromMatrix","fromPoint","fromQuad","fromRect","frontFace","fround","fullPath","fullScreen","fullscreen","fullscreenElement","fullscreenEnabled","fx","fy","gain","gamepad","gamma","gap","gatheringState","gatt","genderIdentity","generateCertificate","generateKey","generateMipmap","generateRequest","geolocation","gestureObject","get","getActiveAttrib","getActiveUniform","getActiveUniformBlockName","getActiveUniformBlockParameter","getActiveUniforms","getAdjacentText","getAll","getAllKeys","getAllResponseHeaders","getAllowlistForFeature","getAnimations","getAsFile","getAsString","getAttachedShaders","getAttribLocation","getAttribute","getAttributeNS","getAttributeNames","getAttributeNode","getAttributeNodeNS","getAttributeType","getAudioTracks","getAvailability","getBBox","getBattery","getBigInt64","getBigUint64","getBlob","getBookmark","getBoundingClientRect","getBounds","getBoxQuads","getBufferParameter","getBufferSubData","getByteFrequencyData","getByteTimeDomainData","getCSSCanvasContext","getCTM","getCandidateWindowClientRect","getCanonicalLocales","getCapabilities","getChannelData","getCharNumAtPosition","getCharacteristic","getCharacteristics","getClientExtensionResults","getClientRect","getClientRects","getCoalescedEvents","getCompositionAlternatives","getComputedStyle","getComputedTextLength","getComputedTiming","getConfiguration","getConstraints","getContext","getContextAttributes","getContributingSources","getCounterValue","getCueAsHTML","getCueById","getCurrentPosition","getCurrentTime","getData","getDatabaseNames","getDate","getDay","getDefaultComputedStyle","getDescriptor","getDescriptors","getDestinationInsertionPoints","getDevices","getDirectory","getDisplayMedia","getDistributedNodes","getEditable","getElementById","getElementsByClassName","getElementsByName","getElementsByTagName","getElementsByTagNameNS","getEnclosureList","getEndPositionOfChar","getEntries","getEntriesByName","getEntriesByType","getError","getExtension","getExtentOfChar","getEyeParameters","getFeature","getFile","getFiles","getFilesAndDirectories","getFingerprints","getFloat32","getFloat64","getFloatFrequencyData","getFloatTimeDomainData","getFloatValue","getFragDataLocation","getFrameData","getFramebufferAttachmentParameter","getFrequencyResponse","getFullYear","getGamepads","getHitTestResults","getHitTestResultsForTransientInput","getHours","getIdentityAssertion","getIds","getImageData","getIndexedParameter","getInstalledRelatedApps","getInt16","getInt32","getInt8","getInternalformatParameter","getIntersectionList","getItem","getItems","getKey","getKeyframes","getLayers","getLayoutMap","getLineDash","getLocalCandidates","getLocalParameters","getLocalStreams","getMarks","getMatchedCSSRules","getMaxGCPauseSinceClear","getMeasures","getMetadata","getMilliseconds","getMinutes","getModifierState","getMonth","getNamedItem","getNamedItemNS","getNativeFramebufferScaleFactor","getNotifications","getNotifier","getNumberOfChars","getOffsetReferenceSpace","getOutputTimestamp","getOverrideHistoryNavigationMode","getOverrideStyle","getOwnPropertyDescriptor","getOwnPropertyDescriptors","getOwnPropertyNames","getOwnPropertySymbols","getParameter","getParameters","getParent","getPathSegAtLength","getPhotoCapabilities","getPhotoSettings","getPointAtLength","getPose","getPredictedEvents","getPreference","getPreferenceDefault","getPresentationAttribute","getPreventDefault","getPrimaryService","getPrimaryServices","getProgramInfoLog","getProgramParameter","getPropertyCSSValue","getPropertyPriority","getPropertyShorthand","getPropertyType","getPropertyValue","getPrototypeOf","getQuery","getQueryParameter","getRGBColorValue","getRandomValues","getRangeAt","getReader","getReceivers","getRectValue","getRegistration","getRegistrations","getRemoteCandidates","getRemoteCertificates","getRemoteParameters","getRemoteStreams","getRenderbufferParameter","getResponseHeader","getRoot","getRootNode","getRotationOfChar","getSVGDocument","getSamplerParameter","getScreenCTM","getSeconds","getSelectedCandidatePair","getSelection","getSenders","getService","getSettings","getShaderInfoLog","getShaderParameter","getShaderPrecisionFormat","getShaderSource","getSimpleDuration","getSiteIcons","getSources","getSpeculativeParserUrls","getStartPositionOfChar","getStartTime","getState","getStats","getStatusForPolicy","getStorageUpdates","getStreamById","getStringValue","getSubStringLength","getSubscription","getSupportedConstraints","getSupportedExtensions","getSupportedFormats","getSyncParameter","getSynchronizationSources","getTags","getTargetRanges","getTexParameter","getTime","getTimezoneOffset","getTiming","getTotalLength","getTrackById","getTracks","getTransceivers","getTransform","getTransformFeedbackVarying","getTransformToElement","getTransports","getType","getTypeMapping","getUTCDate","getUTCDay","getUTCFullYear","getUTCHours","getUTCMilliseconds","getUTCMinutes","getUTCMonth","getUTCSeconds","getUint16","getUint32","getUint8","getUniform","getUniformBlockIndex","getUniformIndices","getUniformLocation","getUserMedia","getVRDisplays","getValues","getVarDate","getVariableValue","getVertexAttrib","getVertexAttribOffset","getVideoPlaybackQuality","getVideoTracks","getViewerPose","getViewport","getVoices","getWakeLockState","getWriter","getYear","givenName","global","globalAlpha","globalCompositeOperation","globalThis","glyphOrientationHorizontal","glyphOrientationVertical","glyphRef","go","grabFrame","grad","gradientTransform","gradientUnits","grammars","green","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-gap","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-gap","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","gridArea","gridAutoColumns","gridAutoFlow","gridAutoRows","gridColumn","gridColumnEnd","gridColumnGap","gridColumnStart","gridGap","gridRow","gridRowEnd","gridRowGap","gridRowStart","gridTemplate","gridTemplateAreas","gridTemplateColumns","gridTemplateRows","gripSpace","group","groupCollapsed","groupEnd","groupId","hadRecentInput","hand","handedness","hapticActuators","hardwareConcurrency","has","hasAttribute","hasAttributeNS","hasAttributes","hasBeenActive","hasChildNodes","hasComposition","hasEnrolledInstrument","hasExtension","hasExternalDisplay","hasFeature","hasFocus","hasInstance","hasLayout","hasOrientation","hasOwnProperty","hasPointerCapture","hasPosition","hasReading","hasStorageAccess","hash","head","headers","heading","height","hidden","hide","hideFocus","high","highWaterMark","hint","history","honorificPrefix","honorificSuffix","horizontalOverflow","host","hostCandidate","hostname","href","hrefTranslate","hreflang","hspace","html5TagCheckInerface","htmlFor","htmlText","httpEquiv","httpRequestStatusCode","hwTimestamp","hyphens","hypot","iccId","iceConnectionState","iceGatheringState","iceTransport","icon","iconURL","id","identifier","identity","idpLoginUrl","ignoreBOM","ignoreCase","ignoreDepthValues","image-orientation","image-rendering","imageHeight","imageOrientation","imageRendering","imageSizes","imageSmoothingEnabled","imageSmoothingQuality","imageSrcset","imageWidth","images","ime-mode","imeMode","implementation","importKey","importNode","importStylesheet","imports","impp","imul","in","in1","in2","inBandMetadataTrackDispatchType","inRange","includes","incremental","indeterminate","index","indexNames","indexOf","indexedDB","indicate","inertiaDestinationX","inertiaDestinationY","info","init","initAnimationEvent","initBeforeLoadEvent","initClipboardEvent","initCloseEvent","initCommandEvent","initCompositionEvent","initCustomEvent","initData","initDataType","initDeviceMotionEvent","initDeviceOrientationEvent","initDragEvent","initErrorEvent","initEvent","initFocusEvent","initGestureEvent","initHashChangeEvent","initKeyEvent","initKeyboardEvent","initMSManipulationEvent","initMessageEvent","initMouseEvent","initMouseScrollEvent","initMouseWheelEvent","initMutationEvent","initNSMouseEvent","initOverflowEvent","initPageEvent","initPageTransitionEvent","initPointerEvent","initPopStateEvent","initProgressEvent","initScrollAreaEvent","initSimpleGestureEvent","initStorageEvent","initTextEvent","initTimeEvent","initTouchEvent","initTransitionEvent","initUIEvent","initWebKitAnimationEvent","initWebKitTransitionEvent","initWebKitWheelEvent","initWheelEvent","initialTime","initialize","initiatorType","inline-size","inlineSize","inlineVerticalFieldOfView","inner","innerHTML","innerHeight","innerText","innerWidth","input","inputBuffer","inputEncoding","inputMethod","inputMode","inputSource","inputSources","inputType","inputs","insertAdjacentElement","insertAdjacentHTML","insertAdjacentText","insertBefore","insertCell","insertDTMF","insertData","insertItemBefore","insertNode","insertRow","insertRule","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","insetBlock","insetBlockEnd","insetBlockStart","insetInline","insetInlineEnd","insetInlineStart","installing","instanceRoot","instantiate","instantiateStreaming","instruments","int16","int32","int8","integrity","interactionMode","intercept","interfaceClass","interfaceName","interfaceNumber","interfaceProtocol","interfaceSubclass","interfaces","interimResults","internalSubset","interpretation","intersectionRatio","intersectionRect","intersectsNode","interval","invalidIteratorState","invalidateFramebuffer","invalidateSubFramebuffer","inverse","invertSelf","is","is2D","isActive","isAlternate","isArray","isBingCurrentSearchDefault","isBuffer","isCandidateWindowVisible","isChar","isCollapsed","isComposing","isConcatSpreadable","isConnected","isContentEditable","isContentHandlerRegistered","isContextLost","isDefaultNamespace","isDirectory","isDisabled","isEnabled","isEqual","isEqualNode","isExtensible","isExternalCTAP2SecurityKeySupported","isFile","isFinite","isFramebuffer","isFrozen","isGenerator","isHTML","isHistoryNavigation","isId","isIdentity","isInjected","isInteger","isIntersecting","isLockFree","isMap","isMultiLine","isNaN","isOpen","isPointInFill","isPointInPath","isPointInRange","isPointInStroke","isPrefAlternate","isPresenting","isPrimary","isProgram","isPropertyImplicit","isProtocolHandlerRegistered","isPrototypeOf","isQuery","isRenderbuffer","isSafeInteger","isSameNode","isSampler","isScript","isScriptURL","isSealed","isSecureContext","isSessionSupported","isShader","isSupported","isSync","isTextEdit","isTexture","isTransformFeedback","isTrusted","isTypeSupported","isUserVerifyingPlatformAuthenticatorAvailable","isVertexArray","isView","isVisible","isochronousTransferIn","isochronousTransferOut","isolation","italics","item","itemId","itemProp","itemRef","itemScope","itemType","itemValue","items","iterateNext","iterationComposite","iterator","javaEnabled","jobTitle","join","json","justify-content","justify-items","justify-self","justifyContent","justifyItems","justifySelf","k1","k2","k3","k4","kHz","keepalive","kernelMatrix","kernelUnitLengthX","kernelUnitLengthY","kerning","key","keyCode","keyFor","keyIdentifier","keyLightEnabled","keyLocation","keyPath","keyStatuses","keySystem","keyText","keyUsage","keyboard","keys","keytype","kind","knee","label","labels","lang","language","languages","largeArcFlag","lastChild","lastElementChild","lastEventId","lastIndex","lastIndexOf","lastInputTime","lastMatch","lastMessageSubject","lastMessageType","lastModified","lastModifiedDate","lastPage","lastParen","lastState","lastStyleSheetSet","latitude","layerX","layerY","layoutFlow","layoutGrid","layoutGridChar","layoutGridLine","layoutGridMode","layoutGridType","lbound","left","leftContext","leftDegrees","leftMargin","leftProjectionMatrix","leftViewMatrix","length","lengthAdjust","lengthComputable","letter-spacing","letterSpacing","level","lighting-color","lightingColor","limitingConeAngle","line","line-break","line-height","lineAlign","lineBreak","lineCap","lineDashOffset","lineHeight","lineJoin","lineNumber","lineTo","lineWidth","linearAcceleration","linearRampToValueAtTime","linearVelocity","lineno","lines","link","linkColor","linkProgram","links","list","list-style","list-style-image","list-style-position","list-style-type","listStyle","listStyleImage","listStylePosition","listStyleType","listener","load","loadEventEnd","loadEventStart","loadTime","loadTimes","loaded","loading","localDescription","localName","localService","localStorage","locale","localeCompare","location","locationbar","lock","locked","lockedFile","locks","log","log10","log1p","log2","logicalXDPI","logicalYDPI","longDesc","longitude","lookupNamespaceURI","lookupPrefix","loop","loopEnd","loopStart","looping","low","lower","lowerBound","lowerOpen","lowsrc","m11","m12","m13","m14","m21","m22","m23","m24","m31","m32","m33","m34","m41","m42","m43","m44","makeXRCompatible","manifest","manufacturer","manufacturerName","map","mapping","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marginBlock","marginBlockEnd","marginBlockStart","marginBottom","marginHeight","marginInline","marginInlineEnd","marginInlineStart","marginLeft","marginRight","marginTop","marginWidth","mark","marker","marker-end","marker-mid","marker-offset","marker-start","markerEnd","markerHeight","markerMid","markerOffset","markerStart","markerUnits","markerWidth","marks","mask","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-position-x","mask-position-y","mask-repeat","mask-size","mask-type","maskClip","maskComposite","maskContentUnits","maskImage","maskMode","maskOrigin","maskPosition","maskPositionX","maskPositionY","maskRepeat","maskSize","maskType","maskUnits","match","matchAll","matchMedia","matchMedium","matches","matrix","matrixTransform","max","max-block-size","max-height","max-inline-size","max-width","maxActions","maxAlternatives","maxBlockSize","maxChannelCount","maxChannels","maxConnectionsPerServer","maxDecibels","maxDistance","maxHeight","maxInlineSize","maxLayers","maxLength","maxMessageSize","maxPacketLifeTime","maxRetransmits","maxTouchPoints","maxValue","maxWidth","measure","measureText","media","mediaCapabilities","mediaDevices","mediaElement","mediaGroup","mediaKeys","mediaSession","mediaStream","mediaText","meetOrSlice","memory","menubar","mergeAttributes","message","messageClass","messageHandlers","messageType","metaKey","metadata","method","methodDetails","methodName","mid","mimeType","mimeTypes","min","min-block-size","min-height","min-inline-size","min-width","minBlockSize","minDecibels","minHeight","minInlineSize","minLength","minValue","minWidth","miterLimit","mix-blend-mode","mixBlendMode","mm","mode","modify","mount","move","moveBy","moveEnd","moveFirst","moveFocusDown","moveFocusLeft","moveFocusRight","moveFocusUp","moveNext","moveRow","moveStart","moveTo","moveToBookmark","moveToElementText","moveToPoint","movementX","movementY","mozAdd","mozAnimationStartTime","mozAnon","mozApps","mozAudioCaptured","mozAudioChannelType","mozAutoplayEnabled","mozCancelAnimationFrame","mozCancelFullScreen","mozCancelRequestAnimationFrame","mozCaptureStream","mozCaptureStreamUntilEnded","mozClearDataAt","mozContact","mozContacts","mozCreateFileHandle","mozCurrentTransform","mozCurrentTransformInverse","mozCursor","mozDash","mozDashOffset","mozDecodedFrames","mozExitPointerLock","mozFillRule","mozFragmentEnd","mozFrameDelay","mozFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozGetAll","mozGetAllKeys","mozGetAsFile","mozGetDataAt","mozGetMetadata","mozGetUserMedia","mozHasAudio","mozHasItem","mozHidden","mozImageSmoothingEnabled","mozIndexedDB","mozInnerScreenX","mozInnerScreenY","mozInputSource","mozIsTextField","mozItem","mozItemCount","mozItems","mozLength","mozLockOrientation","mozMatchesSelector","mozMovementX","mozMovementY","mozOpaque","mozOrientation","mozPaintCount","mozPaintedFrames","mozParsedFrames","mozPay","mozPointerLockElement","mozPresentedFrames","mozPreservesPitch","mozPressure","mozPrintCallback","mozRTCIceCandidate","mozRTCPeerConnection","mozRTCSessionDescription","mozRemove","mozRequestAnimationFrame","mozRequestFullScreen","mozRequestPointerLock","mozSetDataAt","mozSetImageElement","mozSourceNode","mozSrcObject","mozSystem","mozTCPSocket","mozTextStyle","mozTypesAt","mozUnlockOrientation","mozUserCancelled","mozVisibilityState","ms","msAnimation","msAnimationDelay","msAnimationDirection","msAnimationDuration","msAnimationFillMode","msAnimationIterationCount","msAnimationName","msAnimationPlayState","msAnimationStartTime","msAnimationTimingFunction","msBackfaceVisibility","msBlockProgression","msCSSOMElementFloatMetrics","msCaching","msCachingEnabled","msCancelRequestAnimationFrame","msCapsLockWarningOff","msClearImmediate","msClose","msContentZoomChaining","msContentZoomFactor","msContentZoomLimit","msContentZoomLimitMax","msContentZoomLimitMin","msContentZoomSnap","msContentZoomSnapPoints","msContentZoomSnapType","msContentZooming","msConvertURL","msCrypto","msDoNotTrack","msElementsFromPoint","msElementsFromRect","msExitFullscreen","msExtendedCode","msFillRule","msFirstPaint","msFlex","msFlexAlign","msFlexDirection","msFlexFlow","msFlexItemAlign","msFlexLinePack","msFlexNegative","msFlexOrder","msFlexPack","msFlexPositive","msFlexPreferredSize","msFlexWrap","msFlowFrom","msFlowInto","msFontFeatureSettings","msFullscreenElement","msFullscreenEnabled","msGetInputContext","msGetRegionContent","msGetUntransformedBounds","msGraphicsTrustStatus","msGridColumn","msGridColumnAlign","msGridColumnSpan","msGridColumns","msGridRow","msGridRowAlign","msGridRowSpan","msGridRows","msHidden","msHighContrastAdjust","msHyphenateLimitChars","msHyphenateLimitLines","msHyphenateLimitZone","msHyphens","msImageSmoothingEnabled","msImeAlign","msIndexedDB","msInterpolationMode","msIsStaticHTML","msKeySystem","msKeys","msLaunchUri","msLockOrientation","msManipulationViewsEnabled","msMatchMedia","msMatchesSelector","msMaxTouchPoints","msOrientation","msOverflowStyle","msPerspective","msPerspectiveOrigin","msPlayToDisabled","msPlayToPreferredSourceUri","msPlayToPrimary","msPointerEnabled","msRegionOverflow","msReleasePointerCapture","msRequestAnimationFrame","msRequestFullscreen","msSaveBlob","msSaveOrOpenBlob","msScrollChaining","msScrollLimit","msScrollLimitXMax","msScrollLimitXMin","msScrollLimitYMax","msScrollLimitYMin","msScrollRails","msScrollSnapPointsX","msScrollSnapPointsY","msScrollSnapType","msScrollSnapX","msScrollSnapY","msScrollTranslation","msSetImmediate","msSetMediaKeys","msSetPointerCapture","msTextCombineHorizontal","msTextSizeAdjust","msToBlob","msTouchAction","msTouchSelect","msTraceAsyncCallbackCompleted","msTraceAsyncCallbackStarting","msTraceAsyncOperationCompleted","msTraceAsyncOperationStarting","msTransform","msTransformOrigin","msTransformStyle","msTransition","msTransitionDelay","msTransitionDuration","msTransitionProperty","msTransitionTimingFunction","msUnlockOrientation","msUpdateAsyncCallbackRelation","msUserSelect","msVisibilityState","msWrapFlow","msWrapMargin","msWrapThrough","msWriteProfilerMark","msZoom","msZoomTo","mt","mul","multiEntry","multiSelectionObj","multiline","multiple","multiply","multiplySelf","mutableFile","muted","n","name","nameProp","namedItem","namedRecordset","names","namespaceURI","namespaces","naturalHeight","naturalWidth","navigate","navigation","navigationMode","navigationPreload","navigationStart","navigator","near","nearestViewportElement","negative","negotiated","netscape","networkState","newScale","newTranslate","newURL","newValue","newValueSpecifiedUnits","newVersion","newhome","next","nextElementSibling","nextHopProtocol","nextNode","nextPage","nextSibling","nickname","noHref","noModule","noResize","noShade","noValidate","noWrap","node","nodeName","nodeType","nodeValue","nonce","normalize","normalizedPathSegList","notationName","notations","note","noteGrainOn","noteOff","noteOn","notify","now","numOctaves","number","numberOfChannels","numberOfInputs","numberOfItems","numberOfOutputs","numberValue","oMatchesSelector","object","object-fit","object-position","objectFit","objectPosition","objectStore","objectStoreNames","objectType","observe","of","offscreenBuffering","offset","offset-anchor","offset-distance","offset-path","offset-rotate","offsetAnchor","offsetDistance","offsetHeight","offsetLeft","offsetNode","offsetParent","offsetPath","offsetRotate","offsetTop","offsetWidth","offsetX","offsetY","ok","oldURL","oldValue","oldVersion","olderShadowRoot","onLine","onabort","onabsolutedeviceorientation","onactivate","onactive","onaddsourcebuffer","onaddstream","onaddtrack","onafterprint","onafterscriptexecute","onafterupdate","onanimationcancel","onanimationend","onanimationiteration","onanimationstart","onappinstalled","onaudioend","onaudioprocess","onaudiostart","onautocomplete","onautocompleteerror","onauxclick","onbeforeactivate","onbeforecopy","onbeforecut","onbeforedeactivate","onbeforeeditfocus","onbeforeinstallprompt","onbeforepaste","onbeforeprint","onbeforescriptexecute","onbeforeunload","onbeforeupdate","onbeforexrselect","onbegin","onblocked","onblur","onbounce","onboundary","onbufferedamountlow","oncached","oncancel","oncandidatewindowhide","oncandidatewindowshow","oncandidatewindowupdate","oncanplay","oncanplaythrough","once","oncellchange","onchange","oncharacteristicvaluechanged","onchargingchange","onchargingtimechange","onchecking","onclick","onclose","onclosing","oncompassneedscalibration","oncomplete","onconnect","onconnecting","onconnectionavailable","onconnectionstatechange","oncontextmenu","oncontrollerchange","oncontrolselect","oncopy","oncuechange","oncut","ondataavailable","ondatachannel","ondatasetchanged","ondatasetcomplete","ondblclick","ondeactivate","ondevicechange","ondevicelight","ondevicemotion","ondeviceorientation","ondeviceorientationabsolute","ondeviceproximity","ondischargingtimechange","ondisconnect","ondisplay","ondownloading","ondrag","ondragend","ondragenter","ondragexit","ondragleave","ondragover","ondragstart","ondrop","ondurationchange","onemptied","onencrypted","onend","onended","onenter","onenterpictureinpicture","onerror","onerrorupdate","onexit","onfilterchange","onfinish","onfocus","onfocusin","onfocusout","onformdata","onfreeze","onfullscreenchange","onfullscreenerror","ongatheringstatechange","ongattserverdisconnected","ongesturechange","ongestureend","ongesturestart","ongotpointercapture","onhashchange","onhelp","onicecandidate","onicecandidateerror","oniceconnectionstatechange","onicegatheringstatechange","oninactive","oninput","oninputsourceschange","oninvalid","onkeydown","onkeypress","onkeystatuseschange","onkeyup","onlanguagechange","onlayoutcomplete","onleavepictureinpicture","onlevelchange","onload","onloadeddata","onloadedmetadata","onloadend","onloading","onloadingdone","onloadingerror","onloadstart","onlosecapture","onlostpointercapture","only","onmark","onmessage","onmessageerror","onmidimessage","onmousedown","onmouseenter","onmouseleave","onmousemove","onmouseout","onmouseover","onmouseup","onmousewheel","onmove","onmoveend","onmovestart","onmozfullscreenchange","onmozfullscreenerror","onmozorientationchange","onmozpointerlockchange","onmozpointerlockerror","onmscontentzoom","onmsfullscreenchange","onmsfullscreenerror","onmsgesturechange","onmsgesturedoubletap","onmsgestureend","onmsgesturehold","onmsgesturestart","onmsgesturetap","onmsgotpointercapture","onmsinertiastart","onmslostpointercapture","onmsmanipulationstatechanged","onmsneedkey","onmsorientationchange","onmspointercancel","onmspointerdown","onmspointerenter","onmspointerhover","onmspointerleave","onmspointermove","onmspointerout","onmspointerover","onmspointerup","onmssitemodejumplistitemremoved","onmsthumbnailclick","onmute","onnegotiationneeded","onnomatch","onnoupdate","onobsolete","onoffline","ononline","onopen","onorientationchange","onpagechange","onpagehide","onpageshow","onpaste","onpause","onpayerdetailchange","onpaymentmethodchange","onplay","onplaying","onpluginstreamstart","onpointercancel","onpointerdown","onpointerenter","onpointerleave","onpointerlockchange","onpointerlockerror","onpointermove","onpointerout","onpointerover","onpointerrawupdate","onpointerup","onpopstate","onprocessorerror","onprogress","onpropertychange","onratechange","onreading","onreadystatechange","onrejectionhandled","onrelease","onremove","onremovesourcebuffer","onremovestream","onremovetrack","onrepeat","onreset","onresize","onresizeend","onresizestart","onresourcetimingbufferfull","onresult","onresume","onrowenter","onrowexit","onrowsdelete","onrowsinserted","onscroll","onsearch","onsecuritypolicyviolation","onseeked","onseeking","onselect","onselectedcandidatepairchange","onselectend","onselectionchange","onselectstart","onshippingaddresschange","onshippingoptionchange","onshow","onsignalingstatechange","onsoundend","onsoundstart","onsourceclose","onsourceclosed","onsourceended","onsourceopen","onspeechend","onspeechstart","onsqueeze","onsqueezeend","onsqueezestart","onstalled","onstart","onstatechange","onstop","onstorage","onstoragecommit","onsubmit","onsuccess","onsuspend","onterminate","ontextinput","ontimeout","ontimeupdate","ontoggle","ontonechange","ontouchcancel","ontouchend","ontouchmove","ontouchstart","ontrack","ontransitioncancel","ontransitionend","ontransitionrun","ontransitionstart","onunhandledrejection","onunload","onunmute","onupdate","onupdateend","onupdatefound","onupdateready","onupdatestart","onupgradeneeded","onuserproximity","onversionchange","onvisibilitychange","onvoiceschanged","onvolumechange","onvrdisplayactivate","onvrdisplayconnect","onvrdisplaydeactivate","onvrdisplaydisconnect","onvrdisplaypresentchange","onwaiting","onwaitingforkey","onwarning","onwebkitanimationend","onwebkitanimationiteration","onwebkitanimationstart","onwebkitcurrentplaybacktargetiswirelesschanged","onwebkitfullscreenchange","onwebkitfullscreenerror","onwebkitkeyadded","onwebkitkeyerror","onwebkitkeymessage","onwebkitneedkey","onwebkitorientationchange","onwebkitplaybacktargetavailabilitychanged","onwebkitpointerlockchange","onwebkitpointerlockerror","onwebkitresourcetimingbufferfull","onwebkittransitionend","onwheel","onzoom","opacity","open","openCursor","openDatabase","openKeyCursor","opened","opener","opera","operationType","operator","opr","optimum","options","or","order","orderX","orderY","ordered","org","organization","orient","orientAngle","orientType","orientation","orientationX","orientationY","orientationZ","origin","originalPolicy","originalTarget","orphans","oscpu","outerHTML","outerHeight","outerText","outerWidth","outline","outline-color","outline-offset","outline-style","outline-width","outlineColor","outlineOffset","outlineStyle","outlineWidth","outputBuffer","outputLatency","outputs","overflow","overflow-anchor","overflow-block","overflow-inline","overflow-wrap","overflow-x","overflow-y","overflowAnchor","overflowBlock","overflowInline","overflowWrap","overflowX","overflowY","overrideMimeType","oversample","overscroll-behavior","overscroll-behavior-block","overscroll-behavior-inline","overscroll-behavior-x","overscroll-behavior-y","overscrollBehavior","overscrollBehaviorBlock","overscrollBehaviorInline","overscrollBehaviorX","overscrollBehaviorY","ownKeys","ownerDocument","ownerElement","ownerNode","ownerRule","ownerSVGElement","owningElement","p1","p2","p3","p4","packetSize","packets","pad","padEnd","padStart","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","paddingBlock","paddingBlockEnd","paddingBlockStart","paddingBottom","paddingInline","paddingInlineEnd","paddingInlineStart","paddingLeft","paddingRight","paddingTop","page","page-break-after","page-break-before","page-break-inside","pageBreakAfter","pageBreakBefore","pageBreakInside","pageCount","pageLeft","pageTop","pageX","pageXOffset","pageY","pageYOffset","pages","paint-order","paintOrder","paintRequests","paintType","paintWorklet","palette","pan","panningModel","parameters","parent","parentElement","parentNode","parentRule","parentStyleSheet","parentTextEdit","parentWindow","parse","parseAll","parseFloat","parseFromString","parseInt","part","participants","passive","password","pasteHTML","path","pathLength","pathSegList","pathSegType","pathSegTypeAsLetter","pathname","pattern","patternContentUnits","patternMismatch","patternTransform","patternUnits","pause","pauseAnimations","pauseOnExit","pauseProfilers","pauseTransformFeedback","paused","payerEmail","payerName","payerPhone","paymentManager","pc","peerIdentity","pending","pendingLocalDescription","pendingRemoteDescription","percent","performance","periodicSync","permission","permissionState","permissions","persist","persisted","personalbar","perspective","perspective-origin","perspectiveOrigin","phone","phoneticFamilyName","phoneticGivenName","photo","pictureInPictureElement","pictureInPictureEnabled","pictureInPictureWindow","ping","pipeThrough","pipeTo","pitch","pixelBottom","pixelDepth","pixelHeight","pixelLeft","pixelRight","pixelStorei","pixelTop","pixelUnitToMillimeterX","pixelUnitToMillimeterY","pixelWidth","place-content","place-items","place-self","placeContent","placeItems","placeSelf","placeholder","platform","platforms","play","playEffect","playState","playbackRate","playbackState","playbackTime","played","playoutDelayHint","playsInline","plugins","pluginspage","pname","pointer-events","pointerBeforeReferenceNode","pointerEnabled","pointerEvents","pointerId","pointerLockElement","pointerType","points","pointsAtX","pointsAtY","pointsAtZ","polygonOffset","pop","populateMatrix","popupWindowFeatures","popupWindowName","popupWindowURI","port","port1","port2","ports","posBottom","posHeight","posLeft","posRight","posTop","posWidth","pose","position","positionAlign","positionX","positionY","positionZ","postError","postMessage","postalCode","poster","pow","powerEfficient","powerOff","preMultiplySelf","precision","preferredStyleSheetSet","preferredStylesheetSet","prefix","preload","prepend","presentation","preserveAlpha","preserveAspectRatio","preserveAspectRatioString","pressed","pressure","prevValue","preventDefault","preventExtensions","preventSilentAccess","previousElementSibling","previousNode","previousPage","previousRect","previousScale","previousSibling","previousTranslate","primaryKey","primitiveType","primitiveUnits","principals","print","priority","privateKey","probablySupportsContext","process","processIceMessage","processingEnd","processingStart","product","productId","productName","productSub","profile","profileEnd","profiles","projectionMatrix","promise","prompt","properties","propertyIsEnumerable","propertyName","protocol","protocolLong","prototype","provider","pseudoClass","pseudoElement","pt","publicId","publicKey","published","pulse","push","pushManager","pushNotification","pushState","put","putImageData","px","quadraticCurveTo","qualifier","quaternion","query","queryCommandEnabled","queryCommandIndeterm","queryCommandState","queryCommandSupported","queryCommandText","queryCommandValue","querySelector","querySelectorAll","queueMicrotask","quote","quotes","r","r1","r2","race","rad","radiogroup","radiusX","radiusY","random","range","rangeCount","rangeMax","rangeMin","rangeOffset","rangeOverflow","rangeParent","rangeUnderflow","rate","ratio","raw","rawId","read","readAsArrayBuffer","readAsBinaryString","readAsBlob","readAsDataURL","readAsText","readBuffer","readEntries","readOnly","readPixels","readReportRequested","readText","readValue","readable","ready","readyState","reason","reboot","receivedAlert","receiver","receivers","recipient","reconnect","recordNumber","recordsAvailable","recordset","rect","red","redEyeReduction","redirect","redirectCount","redirectEnd","redirectStart","redirected","reduce","reduceRight","reduction","refDistance","refX","refY","referenceNode","referenceSpace","referrer","referrerPolicy","refresh","region","regionAnchorX","regionAnchorY","regionId","regions","register","registerContentHandler","registerElement","registerProperty","registerProtocolHandler","reject","rel","relList","relatedAddress","relatedNode","relatedPort","relatedTarget","release","releaseCapture","releaseEvents","releaseInterface","releaseLock","releasePointerCapture","releaseShaderCompiler","reliable","reliableWrite","reload","rem","remainingSpace","remote","remoteDescription","remove","removeAllRanges","removeAttribute","removeAttributeNS","removeAttributeNode","removeBehavior","removeChild","removeCue","removeEventListener","removeFilter","removeImport","removeItem","removeListener","removeNamedItem","removeNamedItemNS","removeNode","removeParameter","removeProperty","removeRange","removeRegion","removeRule","removeSiteSpecificTrackingException","removeSourceBuffer","removeStream","removeTrack","removeVariable","removeWakeLockListener","removeWebWideTrackingException","removed","removedNodes","renderHeight","renderState","renderTime","renderWidth","renderbufferStorage","renderbufferStorageMultisample","renderedBuffer","renderingMode","renotify","repeat","replace","replaceAdjacentText","replaceAll","replaceChild","replaceChildren","replaceData","replaceId","replaceItem","replaceNode","replaceState","replaceSync","replaceTrack","replaceWholeText","replaceWith","reportValidity","request","requestAnimationFrame","requestAutocomplete","requestData","requestDevice","requestFrame","requestFullscreen","requestHitTestSource","requestHitTestSourceForTransientInput","requestId","requestIdleCallback","requestMIDIAccess","requestMediaKeySystemAccess","requestPermission","requestPictureInPicture","requestPointerLock","requestPresent","requestReferenceSpace","requestSession","requestStart","requestStorageAccess","requestSubmit","requestVideoFrameCallback","requestingWindow","requireInteraction","required","requiredExtensions","requiredFeatures","reset","resetPose","resetTransform","resize","resizeBy","resizeTo","resolve","response","responseBody","responseEnd","responseReady","responseStart","responseText","responseType","responseURL","responseXML","restartIce","restore","result","resultIndex","resultType","results","resume","resumeProfilers","resumeTransformFeedback","retry","returnValue","rev","reverse","reversed","revocable","revokeObjectURL","rgbColor","right","rightContext","rightDegrees","rightMargin","rightProjectionMatrix","rightViewMatrix","role","rolloffFactor","root","rootBounds","rootElement","rootMargin","rotate","rotateAxisAngle","rotateAxisAngleSelf","rotateFromVector","rotateFromVectorSelf","rotateSelf","rotation","rotationAngle","rotationRate","round","row-gap","rowGap","rowIndex","rowSpan","rows","rtcpTransport","rtt","ruby-align","ruby-position","rubyAlign","rubyOverhang","rubyPosition","rules","runtime","runtimeStyle","rx","ry","s","safari","sample","sampleCoverage","sampleRate","samplerParameterf","samplerParameteri","sandbox","save","saveData","scale","scale3d","scale3dSelf","scaleNonUniform","scaleNonUniformSelf","scaleSelf","scheme","scissor","scope","scopeName","scoped","screen","screenBrightness","screenEnabled","screenLeft","screenPixelToMillimeterX","screenPixelToMillimeterY","screenTop","screenX","screenY","scriptURL","scripts","scroll","scroll-behavior","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-type","scrollAmount","scrollBehavior","scrollBy","scrollByLines","scrollByPages","scrollDelay","scrollHeight","scrollIntoView","scrollIntoViewIfNeeded","scrollLeft","scrollLeftMax","scrollMargin","scrollMarginBlock","scrollMarginBlockEnd","scrollMarginBlockStart","scrollMarginBottom","scrollMarginInline","scrollMarginInlineEnd","scrollMarginInlineStart","scrollMarginLeft","scrollMarginRight","scrollMarginTop","scrollMaxX","scrollMaxY","scrollPadding","scrollPaddingBlock","scrollPaddingBlockEnd","scrollPaddingBlockStart","scrollPaddingBottom","scrollPaddingInline","scrollPaddingInlineEnd","scrollPaddingInlineStart","scrollPaddingLeft","scrollPaddingRight","scrollPaddingTop","scrollRestoration","scrollSnapAlign","scrollSnapType","scrollTo","scrollTop","scrollTopMax","scrollWidth","scrollX","scrollY","scrollbar-color","scrollbar-width","scrollbar3dLightColor","scrollbarArrowColor","scrollbarBaseColor","scrollbarColor","scrollbarDarkShadowColor","scrollbarFaceColor","scrollbarHighlightColor","scrollbarShadowColor","scrollbarTrackColor","scrollbarWidth","scrollbars","scrolling","scrollingElement","sctp","sctpCauseCode","sdp","sdpLineNumber","sdpMLineIndex","sdpMid","seal","search","searchBox","searchBoxJavaBridge_","searchParams","sectionRowIndex","secureConnectionStart","security","seed","seekToNextFrame","seekable","seeking","select","selectAllChildren","selectAlternateInterface","selectConfiguration","selectNode","selectNodeContents","selectNodes","selectSingleNode","selectSubString","selected","selectedIndex","selectedOptions","selectedStyleSheetSet","selectedStylesheetSet","selection","selectionDirection","selectionEnd","selectionStart","selector","selectorText","self","send","sendAsBinary","sendBeacon","sender","sentAlert","sentTimestamp","separator","serialNumber","serializeToString","serverTiming","service","serviceWorker","session","sessionId","sessionStorage","set","setActionHandler","setActive","setAlpha","setAppBadge","setAttribute","setAttributeNS","setAttributeNode","setAttributeNodeNS","setBaseAndExtent","setBigInt64","setBigUint64","setBingCurrentSearchDefault","setCapture","setCodecPreferences","setColor","setCompositeOperation","setConfiguration","setCurrentTime","setCustomValidity","setData","setDate","setDragImage","setEnd","setEndAfter","setEndBefore","setEndPoint","setFillColor","setFilterRes","setFloat32","setFloat64","setFloatValue","setFormValue","setFullYear","setHeaderValue","setHours","setIdentityProvider","setImmediate","setInt16","setInt32","setInt8","setInterval","setItem","setKeyframes","setLineCap","setLineDash","setLineJoin","setLineWidth","setLiveSeekableRange","setLocalDescription","setMatrix","setMatrixValue","setMediaKeys","setMilliseconds","setMinutes","setMiterLimit","setMonth","setNamedItem","setNamedItemNS","setNonUserCodeExceptions","setOrientToAngle","setOrientToAuto","setOrientation","setOverrideHistoryNavigationMode","setPaint","setParameter","setParameters","setPeriodicWave","setPointerCapture","setPosition","setPositionState","setPreference","setProperty","setPrototypeOf","setRGBColor","setRGBColorICCColor","setRadius","setRangeText","setRemoteDescription","setRequestHeader","setResizable","setResourceTimingBufferSize","setRotate","setScale","setSeconds","setSelectionRange","setServerCertificate","setShadow","setSinkId","setSkewX","setSkewY","setStart","setStartAfter","setStartBefore","setStdDeviation","setStreams","setStringValue","setStrokeColor","setSuggestResult","setTargetAtTime","setTargetValueAtTime","setTime","setTimeout","setTransform","setTranslate","setUTCDate","setUTCFullYear","setUTCHours","setUTCMilliseconds","setUTCMinutes","setUTCMonth","setUTCSeconds","setUint16","setUint32","setUint8","setUri","setValidity","setValueAtTime","setValueCurveAtTime","setVariable","setVelocity","setVersion","setYear","settingName","settingValue","sex","shaderSource","shadowBlur","shadowColor","shadowOffsetX","shadowOffsetY","shadowRoot","shape","shape-image-threshold","shape-margin","shape-outside","shape-rendering","shapeImageThreshold","shapeMargin","shapeOutside","shapeRendering","sheet","shift","shiftKey","shiftLeft","shippingAddress","shippingOption","shippingType","show","showHelp","showModal","showModalDialog","showModelessDialog","showNotification","sidebar","sign","signal","signalingState","signature","silent","sin","singleNodeValue","sinh","sinkId","sittingToStandingTransform","size","sizeToContent","sizeX","sizeZ","sizes","skewX","skewXSelf","skewY","skewYSelf","slice","slope","slot","small","smil","smooth","smoothingTimeConstant","snapToLines","snapshotItem","snapshotLength","some","sort","sortingCode","source","sourceBuffer","sourceBuffers","sourceCapabilities","sourceFile","sourceIndex","sources","spacing","span","speak","speakAs","speaking","species","specified","specularConstant","specularExponent","speechSynthesis","speed","speedOfSound","spellcheck","splice","split","splitText","spreadMethod","sqrt","src","srcElement","srcFilter","srcObject","srcUrn","srcdoc","srclang","srcset","stack","stackTraceLimit","stacktrace","stageParameters","standalone","standby","start","startContainer","startIce","startMessages","startNotifications","startOffset","startProfiling","startRendering","startShark","startTime","startsWith","state","status","statusCode","statusMessage","statusText","statusbar","stdDeviationX","stdDeviationY","stencilFunc","stencilFuncSeparate","stencilMask","stencilMaskSeparate","stencilOp","stencilOpSeparate","step","stepDown","stepMismatch","stepUp","sticky","stitchTiles","stop","stop-color","stop-opacity","stopColor","stopImmediatePropagation","stopNotifications","stopOpacity","stopProfiling","stopPropagation","stopShark","stopped","storage","storageArea","storageName","storageStatus","store","storeSiteSpecificTrackingException","storeWebWideTrackingException","stpVersion","stream","streams","stretch","strike","string","stringValue","stringify","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","strokeDasharray","strokeDashoffset","strokeLinecap","strokeLinejoin","strokeMiterlimit","strokeOpacity","strokeRect","strokeStyle","strokeText","strokeWidth","style","styleFloat","styleMap","styleMedia","styleSheet","styleSheetSets","styleSheets","sub","subarray","subject","submit","submitFrame","submitter","subscribe","substr","substring","substringData","subtle","subtree","suffix","suffixes","summary","sup","supported","supportedContentEncodings","supportedEntryTypes","supports","supportsSession","surfaceScale","surroundContents","suspend","suspendRedraw","swapCache","swapNode","sweepFlag","symbols","sync","sysexEnabled","system","systemCode","systemId","systemLanguage","systemXDPI","systemYDPI","tBodies","tFoot","tHead","tabIndex","table","table-layout","tableLayout","tableValues","tag","tagName","tagUrn","tags","taintEnabled","takePhoto","takeRecords","tan","tangentialPressure","tanh","target","targetElement","targetRayMode","targetRaySpace","targetTouches","targetX","targetY","tcpType","tee","tel","terminate","test","texImage2D","texImage3D","texParameterf","texParameteri","texStorage2D","texStorage3D","texSubImage2D","texSubImage3D","text","text-align","text-align-last","text-anchor","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-offset","text-underline-position","textAlign","textAlignLast","textAnchor","textAutospace","textBaseline","textCombineUpright","textContent","textDecoration","textDecorationBlink","textDecorationColor","textDecorationLine","textDecorationLineThrough","textDecorationNone","textDecorationOverline","textDecorationSkipInk","textDecorationStyle","textDecorationThickness","textDecorationUnderline","textEmphasis","textEmphasisColor","textEmphasisPosition","textEmphasisStyle","textIndent","textJustify","textJustifyTrim","textKashida","textKashidaSpace","textLength","textOrientation","textOverflow","textRendering","textShadow","textTracks","textTransform","textUnderlineOffset","textUnderlinePosition","then","threadId","threshold","thresholds","tiltX","tiltY","time","timeEnd","timeLog","timeOrigin","timeRemaining","timeStamp","timecode","timeline","timelineTime","timeout","timestamp","timestampOffset","timing","title","to","toArray","toBlob","toDataURL","toDateString","toElement","toExponential","toFixed","toFloat32Array","toFloat64Array","toGMTString","toISOString","toJSON","toLocaleDateString","toLocaleFormat","toLocaleLowerCase","toLocaleString","toLocaleTimeString","toLocaleUpperCase","toLowerCase","toMatrix","toMethod","toPrecision","toPrimitive","toSdp","toSource","toStaticHTML","toString","toStringTag","toSum","toTimeString","toUTCString","toUpperCase","toggle","toggleAttribute","toggleLongPressEnabled","tone","toneBuffer","tooLong","tooShort","toolbar","top","topMargin","total","totalFrameDelay","totalVideoFrames","touch-action","touchAction","touched","touches","trace","track","trackVisibility","transaction","transactions","transceiver","transferControlToOffscreen","transferFromImageBitmap","transferImageBitmap","transferIn","transferOut","transferSize","transferToImageBitmap","transform","transform-box","transform-origin","transform-style","transformBox","transformFeedbackVaryings","transformOrigin","transformPoint","transformString","transformStyle","transformToDocument","transformToFragment","transition","transition-delay","transition-duration","transition-property","transition-timing-function","transitionDelay","transitionDuration","transitionProperty","transitionTimingFunction","translate","translateSelf","translationX","translationY","transport","trim","trimEnd","trimLeft","trimRight","trimStart","trueSpeed","trunc","truncate","trustedTypes","turn","twist","type","typeDetail","typeMismatch","typeMustMatch","types","u2f","ubound","uint16","uint32","uint8","uint8Clamped","undefined","unescape","uneval","unicode","unicode-bidi","unicodeBidi","unicodeRange","uniform1f","uniform1fv","uniform1i","uniform1iv","uniform1ui","uniform1uiv","uniform2f","uniform2fv","uniform2i","uniform2iv","uniform2ui","uniform2uiv","uniform3f","uniform3fv","uniform3i","uniform3iv","uniform3ui","uniform3uiv","uniform4f","uniform4fv","uniform4i","uniform4iv","uniform4ui","uniform4uiv","uniformBlockBinding","uniformMatrix2fv","uniformMatrix2x3fv","uniformMatrix2x4fv","uniformMatrix3fv","uniformMatrix3x2fv","uniformMatrix3x4fv","uniformMatrix4fv","uniformMatrix4x2fv","uniformMatrix4x3fv","unique","uniqueID","uniqueNumber","unit","unitType","units","unloadEventEnd","unloadEventStart","unlock","unmount","unobserve","unpause","unpauseAnimations","unreadCount","unregister","unregisterContentHandler","unregisterProtocolHandler","unscopables","unselectable","unshift","unsubscribe","unsuspendRedraw","unsuspendRedrawAll","unwatch","unwrapKey","upDegrees","upX","upY","upZ","update","updateCommands","updateIce","updateInterval","updatePlaybackRate","updateRenderState","updateSettings","updateTiming","updateViaCache","updateWith","updated","updating","upgrade","upload","uploadTotal","uploaded","upper","upperBound","upperOpen","uri","url","urn","urns","usages","usb","usbVersionMajor","usbVersionMinor","usbVersionSubminor","useCurrentView","useMap","useProgram","usedSpace","user-select","userActivation","userAgent","userChoice","userHandle","userHint","userLanguage","userSelect","userVisibleOnly","username","usernameFragment","utterance","uuid","v8BreakIterator","vAlign","vLink","valid","validate","validateProgram","validationMessage","validity","value","valueAsDate","valueAsNumber","valueAsString","valueInSpecifiedUnits","valueMissing","valueOf","valueText","valueType","values","variable","variant","variationSettings","vector-effect","vectorEffect","velocityAngular","velocityExpansion","velocityX","velocityY","vendor","vendorId","vendorSub","verify","version","vertexAttrib1f","vertexAttrib1fv","vertexAttrib2f","vertexAttrib2fv","vertexAttrib3f","vertexAttrib3fv","vertexAttrib4f","vertexAttrib4fv","vertexAttribDivisor","vertexAttribDivisorANGLE","vertexAttribI4i","vertexAttribI4iv","vertexAttribI4ui","vertexAttribI4uiv","vertexAttribIPointer","vertexAttribPointer","vertical","vertical-align","verticalAlign","verticalOverflow","vh","vibrate","vibrationActuator","videoBitsPerSecond","videoHeight","videoTracks","videoWidth","view","viewBox","viewBoxString","viewTarget","viewTargetString","viewport","viewportAnchorX","viewportAnchorY","viewportElement","views","violatedDirective","visibility","visibilityState","visible","visualViewport","vlinkColor","vmax","vmin","voice","voiceURI","volume","vrml","vspace","vw","w","wait","waitSync","waiting","wake","wakeLock","wand","warn","wasClean","wasDiscarded","watch","watchAvailability","watchPosition","webdriver","webkitAddKey","webkitAlignContent","webkitAlignItems","webkitAlignSelf","webkitAnimation","webkitAnimationDelay","webkitAnimationDirection","webkitAnimationDuration","webkitAnimationFillMode","webkitAnimationIterationCount","webkitAnimationName","webkitAnimationPlayState","webkitAnimationTimingFunction","webkitAppearance","webkitAudioContext","webkitAudioDecodedByteCount","webkitAudioPannerNode","webkitBackfaceVisibility","webkitBackground","webkitBackgroundAttachment","webkitBackgroundClip","webkitBackgroundColor","webkitBackgroundImage","webkitBackgroundOrigin","webkitBackgroundPosition","webkitBackgroundPositionX","webkitBackgroundPositionY","webkitBackgroundRepeat","webkitBackgroundSize","webkitBackingStorePixelRatio","webkitBorderBottomLeftRadius","webkitBorderBottomRightRadius","webkitBorderImage","webkitBorderImageOutset","webkitBorderImageRepeat","webkitBorderImageSlice","webkitBorderImageSource","webkitBorderImageWidth","webkitBorderRadius","webkitBorderTopLeftRadius","webkitBorderTopRightRadius","webkitBoxAlign","webkitBoxDirection","webkitBoxFlex","webkitBoxOrdinalGroup","webkitBoxOrient","webkitBoxPack","webkitBoxShadow","webkitBoxSizing","webkitCancelAnimationFrame","webkitCancelFullScreen","webkitCancelKeyRequest","webkitCancelRequestAnimationFrame","webkitClearResourceTimings","webkitClosedCaptionsVisible","webkitConvertPointFromNodeToPage","webkitConvertPointFromPageToNode","webkitCreateShadowRoot","webkitCurrentFullScreenElement","webkitCurrentPlaybackTargetIsWireless","webkitDecodedFrameCount","webkitDirectionInvertedFromDevice","webkitDisplayingFullscreen","webkitDroppedFrameCount","webkitEnterFullScreen","webkitEnterFullscreen","webkitEntries","webkitExitFullScreen","webkitExitFullscreen","webkitExitPointerLock","webkitFilter","webkitFlex","webkitFlexBasis","webkitFlexDirection","webkitFlexFlow","webkitFlexGrow","webkitFlexShrink","webkitFlexWrap","webkitFullScreenKeyboardInputAllowed","webkitFullscreenElement","webkitFullscreenEnabled","webkitGenerateKeyRequest","webkitGetAsEntry","webkitGetDatabaseNames","webkitGetEntries","webkitGetEntriesByName","webkitGetEntriesByType","webkitGetFlowByName","webkitGetGamepads","webkitGetImageDataHD","webkitGetNamedFlows","webkitGetRegionFlowRanges","webkitGetUserMedia","webkitHasClosedCaptions","webkitHidden","webkitIDBCursor","webkitIDBDatabase","webkitIDBDatabaseError","webkitIDBDatabaseException","webkitIDBFactory","webkitIDBIndex","webkitIDBKeyRange","webkitIDBObjectStore","webkitIDBRequest","webkitIDBTransaction","webkitImageSmoothingEnabled","webkitIndexedDB","webkitInitMessageEvent","webkitIsFullScreen","webkitJustifyContent","webkitKeys","webkitLineClamp","webkitLineDashOffset","webkitLockOrientation","webkitMask","webkitMaskClip","webkitMaskComposite","webkitMaskImage","webkitMaskOrigin","webkitMaskPosition","webkitMaskPositionX","webkitMaskPositionY","webkitMaskRepeat","webkitMaskSize","webkitMatchesSelector","webkitMediaStream","webkitNotifications","webkitOfflineAudioContext","webkitOrder","webkitOrientation","webkitPeerConnection00","webkitPersistentStorage","webkitPerspective","webkitPerspectiveOrigin","webkitPointerLockElement","webkitPostMessage","webkitPreservesPitch","webkitPutImageDataHD","webkitRTCPeerConnection","webkitRegionOverset","webkitRelativePath","webkitRequestAnimationFrame","webkitRequestFileSystem","webkitRequestFullScreen","webkitRequestFullscreen","webkitRequestPointerLock","webkitResolveLocalFileSystemURL","webkitSetMediaKeys","webkitSetResourceTimingBufferSize","webkitShadowRoot","webkitShowPlaybackTargetPicker","webkitSlice","webkitSpeechGrammar","webkitSpeechGrammarList","webkitSpeechRecognition","webkitSpeechRecognitionError","webkitSpeechRecognitionEvent","webkitStorageInfo","webkitSupportsFullscreen","webkitTemporaryStorage","webkitTextFillColor","webkitTextSizeAdjust","webkitTextStroke","webkitTextStrokeColor","webkitTextStrokeWidth","webkitTransform","webkitTransformOrigin","webkitTransformStyle","webkitTransition","webkitTransitionDelay","webkitTransitionDuration","webkitTransitionProperty","webkitTransitionTimingFunction","webkitURL","webkitUnlockOrientation","webkitUserSelect","webkitVideoDecodedByteCount","webkitVisibilityState","webkitWirelessVideoPlaybackDisabled","webkitdirectory","webkitdropzone","webstore","weight","whatToShow","wheelDelta","wheelDeltaX","wheelDeltaY","whenDefined","which","white-space","whiteSpace","wholeText","widows","width","will-change","willChange","willValidate","window","withCredentials","word-break","word-spacing","word-wrap","wordBreak","wordSpacing","wordWrap","workerStart","wrap","wrapKey","writable","writableAuxiliaries","write","writeText","writeValue","writeWithoutResponse","writeln","writing-mode","writingMode","x","x1","x2","xChannelSelector","xmlEncoding","xmlStandalone","xmlVersion","xmlbase","xmllang","xmlspace","xor","xr","y","y1","y2","yChannelSelector","yandex","z","z-index","zIndex","zoom","zoomAndPan","zoomRectScreen"]')},66169:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(0,i.default)(e);var r=t.strictSeparator?o.test(e):a.test(e);return r&&t.strict?s(e):r};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T\s]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,o=/^([\+-]?\d{4}(?!\d{2}\b))((-?)((0[1-9]|1[0-2])(\3([12]\d|0[1-9]|3[01]))?|W([0-4]\d|5[0-3])(-?[1-7])?|(00[1-9]|0[1-9]\d|[12]\d{2}|3([0-5]\d|6[1-6])))([T]((([01]\d|2[0-3])((:?)[0-5]\d)?|24:?00)([\.,]\d+(?!:))?)?(\17[0-5]\d([\.,]\d+)?)?([zZ]|([\+-])([01]\d|2[0-3]):?([0-5]\d)?)?)?)?$/,s=function(e){var t=e.match(/^(\d{4})-?(\d{3})([ T]{1}\.*|$)/);if(t){var r=Number(t[1]),n=Number(t[2]);return r%4==0&&r%100!=0||r%400==0?n<=366:n<=365}var i=e.match(/(\d{4})-?(\d{0,2})-?(\d*)/).map(Number),a=i[1],o=i[2],s=i[3],c=o?"0".concat(o).slice(-2):o,u=s?"0".concat(s).slice(-2):s,l=new Date("".concat(a,"-").concat(c||"01","-").concat(u||"01"));return!o||!s||l.getUTCFullYear()===a&&l.getUTCMonth()+1===o&&l.getUTCDate()===s};e.exports=t.default,e.exports.default=t.default},66529:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,i.default)(e);var n=e,o=r.ignore;if(o)if(o instanceof RegExp)n=n.replace(o,"");else{if("string"!=typeof o)throw new Error("ignore should be instance of a String or RegExp");n=n.replace(new RegExp("[".concat(o.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(t in a.alpha)return a.alpha[t].test(n);throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n},a=r(13237);t.locales=Object.keys(a.alpha)},66658:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r=("object"===a(t)?t.comparisonDate:t)||Date().toString(),n=(0,i.default)(r),o=(0,i.default)(e);return!!(o&&n&&o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getTargetId=function(){const e=(0,n.getReflectMetadata)(Object,i)??0;e===Number.MAX_SAFE_INTEGER?(0,n.updateReflectMetadata)(Object,i,e,()=>Number.MIN_SAFE_INTEGER):(0,n.updateReflectMetadata)(Object,i,e,e=>e+1);return e};const n=r(59517),i="@inversifyjs/core/targetId"},66811:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.storagesModule=void 0;const n=r(71519),i=r(32287),a=r(25860),o=r(61185),s=r(6377),c=r(76862),u=r(83209),l=r(86184),d=r(99098),f=r(19e3),p=r(46837),h=r(66060);t.storagesModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.TCustomNodeGroupStorage).to(o.CustomCodeHelperGroupStorage).inSingletonScope(),e(i.ServiceIdentifiers.IControlFlowStorage).to(s.FunctionControlFlowStorage).whenTargetNamed(a.ControlFlowStorage.FunctionControlFlowStorage),e(i.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage).to(c.GlobalIdentifierNamesCacheStorage).inSingletonScope(),e(i.ServiceIdentifiers.ILiteralNodesCacheStorage).to(u.LiteralNodesCacheStorage).inSingletonScope(),e(i.ServiceIdentifiers.IPropertyIdentifierNamesCacheStorage).to(l.PropertyIdentifierNamesCacheStorage).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayStorage).to(p.StringArrayStorage).inSingletonScope(),e(i.ServiceIdentifiers.IStringArrayScopeCallsWrappersDataStorage).to(d.StringArrayScopeCallsWrappersDataStorage).inSingletonScope(),e(i.ServiceIdentifiers.IControlFlowStorage).to(f.StringControlFlowStorage).whenTargetNamed(a.ControlFlowStorage.StringControlFlowStorage),e(i.ServiceIdentifiers.IVisitedLexicalScopeNodesStackStorage).to(h.VisitedLexicalScopeNodesStackStorage).inSingletonScope(),e(i.ServiceIdentifiers.Factory__TControlFlowStorage).toFactory(e=>t=>()=>e.container.getNamed(i.ServiceIdentifiers.IControlFlowStorage,t))})},66817:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IsDomainLockRedirectUrl=void 0;const n=r(90804),i=r(72167),a=r(11839),o=r(18649);t.IsDomainLockRedirectUrl=()=>(e,t)=>{(0,n.ValidateIf)(({domainLockRedirectUrl:e})=>e!==a.DEFAULT_PRESET.domainLockRedirectUrl)(e,t),(0,n.IsUrl)({require_protocol:!1,require_host:!1})(e,t),(0,o.IsAllowedForObfuscationTargets)([i.ObfuscationTarget.Browser,i.ObfuscationTarget.BrowserNoEval])(e,t)}},66822:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayIndexesType=void 0;const n=r(65063);t.StringArrayIndexesType=n.Utils.makeEnum({HexadecimalNumber:"hexadecimal-number",HexadecimalNumericString:"hexadecimal-numeric-string"})},66826:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExportSpecifierTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(23615),d=r(25120);let f=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&l.NodeGuards.isExportSpecifierNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){return e.local.name===e.exported.name&&(e.exported=d.NodeUtils.clone(e.local)),e}};t.ExportSpecifierTransformer=f,t.ExportSpecifierTransformer=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],f)},67322:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.plan=function(e,t,r,n,i,a,s,c){void 0===c&&(c=!1);var u=new p.Context(t),l=function(e,t,r,n,i,a){var s=v(e,r,i,a),c=(0,o.getClassElementMetadataFromLegacyMetadata)(s);if(c.kind===o.ClassElementMetadataKind.unmanaged)throw new Error("Unexpected metadata when creating target");var u=new o.LegacyTargetImpl(n,c,t);return u}(r,n,i,"",a,s);try{return _(e,c,i,u,null,l),u}catch(e){throw(0,d.isStackOverflowException)(e)&&(0,f.circularDependencyToException)(u.plan.rootRequest),e}},t.createMockRequest=function(e,t,r,n){var i=v(!1,t,r,n),a=(0,o.getClassElementMetadataFromLegacyMetadata)(i);if(a.kind===o.ClassElementMetadataKind.unmanaged)throw new Error("Unexpected metadata when creating target");var s=new o.LegacyTargetImpl("",a,"Variable"),c=new p.Context(e);return new b.Request(t,c,null,[],s)},t.getBindingDictionary=y;var o=r(69687),s=r(71372),c=a(r(95507)),u=r(27801),l=a(r(2006)),d=r(6596),f=r(92172),p=r(61077),h=r(14425),m=r(16811),g=r(5643),b=r(83747);function y(e){return e._bindingDictionary}function S(e,t,r,n,i){var a=C(r.container,i.serviceIdentifier),o=[];return a.length===s.BindingCount.NoBindingsAvailable&&!0===r.container.options.autoBindInjectable&&"function"==typeof i.serviceIdentifier&&e.getConstructorMetadata(i.serviceIdentifier).compilerGeneratedMetadata&&(r.container.bind(i.serviceIdentifier).toSelf(),a=C(r.container,i.serviceIdentifier)),o=t?a:a.filter(function(e){var t=new b.Request(e.serviceIdentifier,r,n,e,i);return e.constraint(t)}),function(e,t,r,n,i){switch(t.length){case s.BindingCount.NoBindingsAvailable:if(n.isOptional())return t;var a=(0,f.getServiceIdentifierAsString)(e),o=c.NOT_REGISTERED;throw o+=(0,f.listMetadataForTarget)(a,n),o+=(0,f.listRegisteredBindingsForServiceIdentifier)(i,a,C),null!==r&&(o+="\n".concat(c.TRYING_TO_RESOLVE_BINDINGS((0,f.getServiceIdentifierAsString)(r.serviceIdentifier)))),new Error(o);case s.BindingCount.OnlyOneBindingAvailable:return t;case s.BindingCount.MultipleBindingsAvailable:default:if(n.isArray())return t;a=(0,f.getServiceIdentifierAsString)(e),o="".concat(c.AMBIGUOUS_MATCH," ").concat(a);throw o+=(0,f.listRegisteredBindingsForServiceIdentifier)(i,a,C),new Error(o)}}(i.serviceIdentifier,o,n,i,r.container),o}function v(e,t,r,n){var i=e?l.MULTI_INJECT_TAG:l.INJECT_TAG,a=[new h.Metadata(i,t)];return void 0!==r&&a.push(new h.Metadata(r,n)),a}function _(e,t,r,n,i,a){var o,s;if(null===i){o=S(e,t,n,null,a),s=new b.Request(r,n,null,o,a);var l=new m.Plan(n,s);n.addPlan(l)}else o=S(e,t,n,i,a),s=i.addChildRequest(a.serviceIdentifier,o,a);o.forEach(function(t){var r=null;if(a.isArray())r=s.addChildRequest(t.serviceIdentifier,t,a);else{if(null!==t.cache)return;r=s}if(t.type===u.BindingTypeEnum.Instance&&null!==t.implementationType){var i=(0,g.getDependencies)(e,t.implementationType);if(!0!==n.container.options.skipBaseClassChecks){var o=(0,g.getBaseClassDependencyCount)(e,t.implementationType);if(i.length{!function(){"use strict";var t,r,n,i,a,o;function s(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(Math.floor((e-65536)/1024)+55296)+String.fromCharCode((e-65536)%1024+56320)}for(r={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,NonAsciiIdentifierPart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/},t={NonAsciiIdentifierStart:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309B-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]/,NonAsciiIdentifierPart:/[\xAA\xB5\xB7\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D01-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1369-\u1371\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19DA\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF6\u1CF8\u1CF9\u1D00-\u1DF5\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u200C\u200D\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2118-\u211D\u2124\u2126\u2128\u212A-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF30-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00\uDC01]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},n=[5760,8192,8193,8194,8195,8196,8197,8198,8199,8200,8201,8202,8239,8287,12288,65279],i=new Array(128),o=0;o<128;++o)i[o]=o>=97&&o<=122||o>=65&&o<=90||36===o||95===o;for(a=new Array(128),o=0;o<128;++o)a[o]=o>=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||36===o||95===o;e.exports={isDecimalDigit:function(e){return 48<=e&&e<=57},isHexDigit:function(e){return 48<=e&&e<=57||97<=e&&e<=102||65<=e&&e<=70},isOctalDigit:function(e){return e>=48&&e<=55},isWhiteSpace:function(e){return 32===e||9===e||11===e||12===e||160===e||e>=5760&&n.indexOf(e)>=0},isLineTerminator:function(e){return 10===e||13===e||8232===e||8233===e},isIdentifierStartES5:function(e){return e<128?i[e]:r.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES5:function(e){return e<128?a[e]:r.NonAsciiIdentifierPart.test(s(e))},isIdentifierStartES6:function(e){return e<128?i[e]:t.NonAsciiIdentifierStart.test(s(e))},isIdentifierPartES6:function(e){return e<128?a[e]:t.NonAsciiIdentifierPart.test(s(e))}}}()},68121:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BinaryExpressionFunctionNode=void 0;const o=r(71519),s=r(32287),c=r(57013),u=r(91363),l=r(25120);let d=class extends c.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.operator=e}getNodeStructure(){const e=u.NodeFactory.expressionStatementNode(u.NodeFactory.functionExpressionNode([u.NodeFactory.identifierNode("x"),u.NodeFactory.identifierNode("y")],u.NodeFactory.blockStatementNode([u.NodeFactory.returnStatementNode(u.NodeFactory.binaryExpressionNode(this.operator,u.NodeFactory.identifierNode("x"),u.NodeFactory.identifierNode("y")))])));return l.NodeUtils.parentizeAst(e),[e]}};t.BinaryExpressionFunctionNode=d,t.BinaryExpressionFunctionNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],d)},68736:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCustomNode=void 0,function(e){e.StringArrayCallNode="StringArrayCallNode",e.StringArrayScopeCallsWrapperFunctionNode="StringArrayScopeCallsWrapperFunctionNode",e.StringArrayScopeCallsWrapperVariableNode="StringArrayScopeCallsWrapperVariableNode"}(r||(t.StringArrayCustomNode=r={}))},68983:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MangledIdentifierNamesGenerator=void 0;const s=r(71519),c=r(32287),u=r(218),l=r(98376),d=r(23877),f=r(13307),p=r(34003),h=r(32504);let m=n=class extends p.AbstractIdentifierNamesGenerator{constructor(e,t,r){super(e,t),this.lastMangledName=n.initMangledNameCharacter,this.lastMangledNameForScopeMap=new WeakMap,this.lastMangledNameForLabelMap=new Map,this.setUtils=r}generateNext(e){const t=this.generateNewMangledName(this.lastMangledName);return this.updatePreviousMangledName(t),this.preserveName(t),t}generateForGlobalScope(e){return this.generateForGlobalScopeInternal(e=>this.isValidIdentifierName(e))}generateForGlobalScopeWithAllScopesValidation(e){return this.generateForGlobalScopeInternal(e=>this.isValidIdentifierNameInAllScopes(e))}generateForLexicalScope(e,t){const r=[e,...h.NodeLexicalScopeUtils.getLexicalScopes(e)],n=this.getLastMangledNameForScopes(r),i=this.generateNewMangledName(n,e=>this.isValidIdentifierNameInLexicalScopes(e,r));return this.lastMangledNameForScopeMap.set(e,i),this.updatePreviousMangledName(i),this.preserveNameForLexicalScope(i,e),i}generateForLabel(e,t){const r=this.getLastMangledNameForLabel(e),n=this.generateNewMangledName(r);return this.updatePreviousMangledNameForLabel(n,e,r),n}isIncrementedMangledName(e,t){if(e===t)return!1;const r=e.length,n=t.length;if(r!==n)return r>n;const i=this.getNameSequence();for(let n=0;ni.indexOf(a)}throw new Error("Something goes wrong during comparison of mangled names")}isValidIdentifierName(e){return super.isValidIdentifierName(e)&&!n.reservedNamesSet.has(e)}getNameSequence(){return n.nameSequence}updatePreviousMangledName(e){this.isIncrementedMangledName(e,this.lastMangledName)&&(this.lastMangledName=e)}updatePreviousMangledNameForLabel(e,t,r){this.isIncrementedMangledName(e,r)&&this.lastMangledNameForLabelMap.set(t,e)}generateNewMangledName(e,t){var r;const i=(e,t=0)=>{if(t>n.maxRegenerationAttempts){const e=this.setUtils.getLastElement(this.preservedNamesSet);if(e)return this.generateNewMangledName(e)}const r=this.getNameSequence(),i=r.length,a=e.length,o=e=>"0".repeat(e);let s=a-1;do{const t=e[s],n=r.indexOf(t);if(n!==i-1){return e.slice(0,s)+r[n+1]+o(a-(s+1))}--s}while(s>=0);return`${r[d.numbersString.length]}${o(a)}`};let a,o=e;do{o=i(o),a=null!==(r=null==t?void 0:t(o))&&void 0!==r?r:this.isValidIdentifierName(o)}while(!a);return o}generateForGlobalScopeInternal(e){const t=this.options.identifiersPrefix?`${this.options.identifiersPrefix}`:"",r=this.generateNewMangledName(this.lastMangledName,r=>e(`${t}${r}`)),n=`${t}${r}`;return this.updatePreviousMangledName(r),this.preserveName(n),n}getLastMangledNameForScopes(e){var t;for(const r of e){const e=null!==(t=this.lastMangledNameForScopeMap.get(r))&&void 0!==t?t:null;if(e)return e}return n.initMangledNameCharacter}getLastMangledNameForLabel(e){var t;const r=null!==(t=this.lastMangledNameForLabelMap.get(e))&&void 0!==t?t:null;return null!=r?r:n.initMangledNameCharacter}};t.MangledIdentifierNamesGenerator=m,m.maxRegenerationAttempts=20,m.initMangledNameCharacter="9",m.nameSequence=[...`${d.numbersString}${u.alphabetString}${l.alphabetStringUppercase}`],m.reservedNamesSet=new Set(f.reservedIdentifierNames),t.MangledIdentifierNamesGenerator=m=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptions)),o(2,(0,s.inject)(c.ServiceIdentifiers.ISetUtils)),a("design:paramtypes",[Object,Object,Object])],m)},69234:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[^\s-_](?!.*?[-_]{2,})[a-z0-9-\\][^\s]*[^-_\s]$/;e.exports=t.default,e.exports.default=t.default},69517:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),(t=(0,c.default)(t,l)).require_display_name||t.allow_display_name){var r=e.match(d);if(r){var u=r[1];if(e=e.replace(u,"").replace(/(^<|>$)/g,""),u.endsWith(" ")&&(u=u.slice(0,-1)),!function(e){var t=e.replace(/^"(.+)"$/,"$1");if(!t.trim())return!1;if(/[\.";<>]/.test(t)){if(t===e)return!1;if(!(t.split('"').length===t.split('\\"').length))return!1}return!0}(u))return!1}else if(t.require_display_name)return!1}if(!t.ignore_max_length&&e.length>b)return!1;var y=e.split("@"),S=y.pop(),v=S.toLowerCase();if(t.host_blacklist.length>0&&(0,i.default)(v,t.host_blacklist))return!1;if(t.host_whitelist.length>0&&!(0,i.default)(v,t.host_whitelist))return!1;var _=y.join("@");if(t.domain_specific_validation&&("gmail.com"===v||"googlemail.com"===v)){var C=(_=_.toLowerCase()).split("+")[0];if(!(0,a.default)(C.replace(/\./g,""),{min:6,max:30}))return!1;for(var A=C.split("."),E=0;E{e.exports=function(e){return(""+e).replace(/["'\\\n\r\u2028\u2029]/g,function(e){switch(e){case'"':case"'":case"\\":return"\\"+e;case"\n":return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029"}})}},69687:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyTargetImpl=t.getTargets=t.getClassMetadataFromMetadataReader=t.getClassMetadata=t.getClassElementMetadataFromLegacyMetadata=t.ClassElementMetadataKind=void 0;const n=r(49195);Object.defineProperty(t,"getTargets",{enumerable:!0,get:function(){return n.getTargets}});const i=r(80877);Object.defineProperty(t,"LegacyTargetImpl",{enumerable:!0,get:function(){return i.LegacyTargetImpl}});const a=r(44063);Object.defineProperty(t,"getClassElementMetadataFromLegacyMetadata",{enumerable:!0,get:function(){return a.getClassElementMetadataFromLegacyMetadata}});const o=r(49343);Object.defineProperty(t,"getClassMetadata",{enumerable:!0,get:function(){return o.getClassMetadata}});const s=r(8841);Object.defineProperty(t,"getClassMetadataFromMetadataReader",{enumerable:!0,get:function(){return s.getClassMetadataFromMetadataReader}});const c=r(86277);Object.defineProperty(t,"ClassElementMetadataKind",{enumerable:!0,get:function(){return c.ClassElementMetadataKind}})},69790:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),e.replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">").replace(/\//g,"/").replace(/\\/g,"\").replace(/`/g,"`")};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},70073:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ApiError=void 0;const n=r(79049);Object.defineProperty(t,"ApiError",{enumerable:!0,get:function(){return n.ApiError}}),e.exports=n.JavaScriptObfuscator},70258:(e,t)=>{!function e(t){"use strict";var r,n,i,a,o,s;function c(e){var t,r,n={};for(t in e)e.hasOwnProperty(t)&&(r=e[t],n[t]="object"==typeof r&&null!==r?c(r):r);return n}function u(e,t){this.parent=e,this.key=t}function l(e,t,r,n){this.node=e,this.path=t,this.wrap=r,this.ref=n}function d(){}function f(e){return null!=e&&("object"==typeof e&&"string"==typeof e.type)}function p(e,t){return(e===r.ObjectExpression||e===r.ObjectPattern)&&"properties"===t}function h(e,t){for(var r=e.length-1;r>=0;--r)if(e[r].node===t)return!0;return!1}function m(e,t){return(new d).traverse(e,t)}function g(e,t){var r;return r=function(e,t){var r,n,i,a;for(n=e.length,i=0;n;)t(e[a=i+(r=n>>>1)])?n=r:(i=a+1,n-=r+1);return i}(t,function(t){return t.range[0]>e.range[0]}),e.extendedRange=[e.range[0],e.range[1]],r!==t.length&&(e.extendedRange[1]=t[r].range[0]),(r-=1)>=0&&(e.extendedRange[0]=t[r].range[1]),e}return r={AssignmentExpression:"AssignmentExpression",AssignmentPattern:"AssignmentPattern",ArrayExpression:"ArrayExpression",ArrayPattern:"ArrayPattern",ArrowFunctionExpression:"ArrowFunctionExpression",AwaitExpression:"AwaitExpression",BlockStatement:"BlockStatement",BinaryExpression:"BinaryExpression",BreakStatement:"BreakStatement",CallExpression:"CallExpression",CatchClause:"CatchClause",ChainExpression:"ChainExpression",ClassBody:"ClassBody",ClassDeclaration:"ClassDeclaration",ClassExpression:"ClassExpression",ComprehensionBlock:"ComprehensionBlock",ComprehensionExpression:"ComprehensionExpression",ConditionalExpression:"ConditionalExpression",ContinueStatement:"ContinueStatement",DebuggerStatement:"DebuggerStatement",DirectiveStatement:"DirectiveStatement",DoWhileStatement:"DoWhileStatement",EmptyStatement:"EmptyStatement",ExportAllDeclaration:"ExportAllDeclaration",ExportDefaultDeclaration:"ExportDefaultDeclaration",ExportNamedDeclaration:"ExportNamedDeclaration",ExportSpecifier:"ExportSpecifier",ExpressionStatement:"ExpressionStatement",ForStatement:"ForStatement",ForInStatement:"ForInStatement",ForOfStatement:"ForOfStatement",FunctionDeclaration:"FunctionDeclaration",FunctionExpression:"FunctionExpression",GeneratorExpression:"GeneratorExpression",Identifier:"Identifier",IfStatement:"IfStatement",ImportExpression:"ImportExpression",ImportDeclaration:"ImportDeclaration",ImportDefaultSpecifier:"ImportDefaultSpecifier",ImportNamespaceSpecifier:"ImportNamespaceSpecifier",ImportSpecifier:"ImportSpecifier",Literal:"Literal",LabeledStatement:"LabeledStatement",LogicalExpression:"LogicalExpression",MemberExpression:"MemberExpression",MetaProperty:"MetaProperty",MethodDefinition:"MethodDefinition",ModuleSpecifier:"ModuleSpecifier",NewExpression:"NewExpression",ObjectExpression:"ObjectExpression",ObjectPattern:"ObjectPattern",PrivateIdentifier:"PrivateIdentifier",Program:"Program",Property:"Property",PropertyDefinition:"PropertyDefinition",RestElement:"RestElement",ReturnStatement:"ReturnStatement",SequenceExpression:"SequenceExpression",SpreadElement:"SpreadElement",Super:"Super",SwitchStatement:"SwitchStatement",SwitchCase:"SwitchCase",TaggedTemplateExpression:"TaggedTemplateExpression",TemplateElement:"TemplateElement",TemplateLiteral:"TemplateLiteral",ThisExpression:"ThisExpression",ThrowStatement:"ThrowStatement",TryStatement:"TryStatement",UnaryExpression:"UnaryExpression",UpdateExpression:"UpdateExpression",VariableDeclaration:"VariableDeclaration",VariableDeclarator:"VariableDeclarator",WhileStatement:"WhileStatement",WithStatement:"WithStatement",YieldExpression:"YieldExpression"},i={AssignmentExpression:["left","right"],AssignmentPattern:["left","right"],ArrayExpression:["elements"],ArrayPattern:["elements"],ArrowFunctionExpression:["params","body"],AwaitExpression:["argument"],BlockStatement:["body"],BinaryExpression:["left","right"],BreakStatement:["label"],CallExpression:["callee","arguments"],CatchClause:["param","body"],ChainExpression:["expression"],ClassBody:["body"],ClassDeclaration:["id","superClass","body"],ClassExpression:["id","superClass","body"],ComprehensionBlock:["left","right"],ComprehensionExpression:["blocks","filter","body"],ConditionalExpression:["test","consequent","alternate"],ContinueStatement:["label"],DebuggerStatement:[],DirectiveStatement:[],DoWhileStatement:["body","test"],EmptyStatement:[],ExportAllDeclaration:["source"],ExportDefaultDeclaration:["declaration"],ExportNamedDeclaration:["declaration","specifiers","source"],ExportSpecifier:["exported","local"],ExpressionStatement:["expression"],ForStatement:["init","test","update","body"],ForInStatement:["left","right","body"],ForOfStatement:["left","right","body"],FunctionDeclaration:["id","params","body"],FunctionExpression:["id","params","body"],GeneratorExpression:["blocks","filter","body"],Identifier:[],IfStatement:["test","consequent","alternate"],ImportExpression:["source"],ImportDeclaration:["specifiers","source"],ImportDefaultSpecifier:["local"],ImportNamespaceSpecifier:["local"],ImportSpecifier:["imported","local"],Literal:[],LabeledStatement:["label","body"],LogicalExpression:["left","right"],MemberExpression:["object","property"],MetaProperty:["meta","property"],MethodDefinition:["key","value"],ModuleSpecifier:[],NewExpression:["callee","arguments"],ObjectExpression:["properties"],ObjectPattern:["properties"],PrivateIdentifier:[],Program:["body"],Property:["key","value"],PropertyDefinition:["key","value"],RestElement:["argument"],ReturnStatement:["argument"],SequenceExpression:["expressions"],SpreadElement:["argument"],Super:[],SwitchStatement:["discriminant","cases"],SwitchCase:["test","consequent"],TaggedTemplateExpression:["tag","quasi"],TemplateElement:[],TemplateLiteral:["quasis","expressions"],ThisExpression:[],ThrowStatement:["argument"],TryStatement:["block","handler","finalizer"],UnaryExpression:["argument"],UpdateExpression:["argument"],VariableDeclaration:["declarations"],VariableDeclarator:["id","init"],WhileStatement:["test","body"],WithStatement:["object","body"],YieldExpression:["argument"]},n={Break:a={},Skip:o={},Remove:s={}},u.prototype.replace=function(e){this.parent[this.key]=e},u.prototype.remove=function(){return Array.isArray(this.parent)?(this.parent.splice(this.key,1),!0):(this.replace(null),!1)},d.prototype.path=function(){var e,t,r,n,i;function a(e,t){if(Array.isArray(t))for(r=0,n=t.length;r=0;)if(y=s[d=b[m]])if(Array.isArray(y)){for(g=y.length;(g-=1)>=0;)if(y[g]&&!h(n,y[g])){if(p(c,b[m]))i=new l(y[g],[d,g],"Property",null);else{if(!f(y[g]))continue;i=new l(y[g],[d,g],null,null)}r.push(i)}}else if(f(y)){if(h(n,y))continue;r.push(new l(y,d,null,null))}}}else if(i=n.pop(),u=this.__execute(t.leave,i),this.__state===a||u===a)return},d.prototype.replace=function(e,t){var r,n,i,c,d,h,m,g,b,y,S,v,_;function C(e){var t,n,i,a;if(e.ref.remove())for(n=e.ref.key,a=e.ref.parent,t=r.length;t--;)if((i=r[t]).ref&&i.ref.parent===a){if(i.ref.key=0;)if(y=i[_=b[m]])if(Array.isArray(y)){for(g=y.length;(g-=1)>=0;)if(y[g]){if(p(c,b[m]))h=new l(y[g],[_,g],"Property",new u(y,g));else{if(!f(y[g]))continue;h=new l(y[g],[_,g],null,new u(y,g))}r.push(h)}}else f(y)&&r.push(new l(y,_,null,new u(i,_)))}}else if(h=n.pop(),void 0!==(d=this.__execute(t.leave,h))&&d!==a&&d!==o&&d!==s&&h.ref.replace(d),this.__state!==s&&d!==s||C(h),this.__state===a||d===a)return v.root;return v.root},t.Syntax=r,t.traverse=m,t.replace=function(e,t){return(new d).replace(e,t)},t.attachComments=function(e,t,r){var i,a,o,s,u=[];if(!e.range)throw new Error("attachComments needs range information");if(!r.length){if(t.length){for(o=0,a=t.length;oe.range[0]);)t.extendedRange[1]===e.range[0]?(e.leadingComments||(e.leadingComments=[]),e.leadingComments.push(t),u.splice(s,1)):s+=1;return s===u.length?n.Break:u[s].extendedRange[0]>e.range[1]?n.Skip:void 0}}),s=0,m(e,{leave:function(e){for(var t;se.range[1]?n.Skip:void 0}}),e},t.VisitorKeys=i,t.VisitorOption=n,t.Controller=d,t.cloneEnvironment=function(){return e({})},t}(t)},70375:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.targetName=function(e){return function(t,r,n){var i=new s.Metadata(o.NAME_TAG,e);(0,c.tagParameter)(t,r,n,i)}};var o=a(r(2006)),s=r(14425),c=r(24157)},70885:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayEncoding=void 0;const n=r(65063);t.StringArrayEncoding=n.Utils.makeEnum({None:"none",Base64:"base64",Rc4:"rc4"})},70906:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallControlFlowReplacer=void 0;const s=r(71519),c=r(32287),u=r(96747),l=r(94914),d=r(23615),f=r(90253),p=r(12720);let h=n=class extends l.AbstractControlFlowReplacer{constructor(e,t,r,n){super(e,t,r,n)}replace(e,t,r){if(!(p.NodeMetadata.isStringArrayCallLiteralNode(e)&&(f.NodeLiteralUtils.isNumberLiteralNode(e)||f.NodeLiteralUtils.isStringLiteralNode(e))))return e;const i=e.value,a=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.LiteralNode);a.initialize(e);const o=this.insertCustomNodeToControlFlowStorage(a,r,i,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),o)}generateStorageKey(e){const t=this.identifierNamesGenerator.generateForLabel(e.getStorageId());return e.has(t)?this.generateStorageKey(e):t}getControlFlowStorageCallNode(e,t){const r=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.StringLiteralControlFlowStorageCallNode);r.initialize(e,t);const n=r.getNode()[0];if(!n||!d.NodeGuards.isExpressionStatementNode(n))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return n.expression}};t.StringArrayCallControlFlowReplacer=h,h.usingExistingIdentifierChance=.5,t.StringArrayCallControlFlowReplacer=h=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__IControlFlowCustomNode)),o(1,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(3,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Function,Object,Object])],h)},71332:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelperGroup=void 0,function(e){e.ConsoleOutput="ConsoleOutput",e.DebugProtection="DebugProtection",e.DomainLock="DomainLock",e.SelfDefending="SelfDefending",e.StringArray="StringArray"}(r||(t.CustomCodeHelperGroup=r={}))},71372:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.BindingCount=void 0,function(e){e[e.MultipleBindingsAvailable=2]="MultipleBindingsAvailable",e[e.NoBindingsAvailable=0]="NoBindingsAvailable",e[e.OnlyOneBindingAvailable=1]="OnlyOneBindingAvailable"}(r||(t.BindingCount=r={}))},71519:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.multiBindToService=t.getServiceIdentifierAsString=t.typeConstraint=t.namedConstraint=t.taggedConstraint=t.traverseAncerstors=t.decorate=t.id=t.MetadataReader=t.preDestroy=t.postConstruct=t.targetName=t.multiInject=t.unmanaged=t.optional=t.inject=t.named=t.tagged=t.injectable=t.createTaggedDecorator=t.ContainerModule=t.AsyncContainerModule=t.TargetTypeEnum=t.BindingTypeEnum=t.BindingScopeEnum=t.Container=t.METADATA_KEY=t.LazyServiceIdentifier=void 0;var o=a(r(2006)),s=r(5265);Object.defineProperty(t,"LazyServiceIdentifier",{enumerable:!0,get:function(){return s.LazyServiceIdentifier}}),t.METADATA_KEY=o;var c=r(33389);Object.defineProperty(t,"Container",{enumerable:!0,get:function(){return c.Container}});var u=r(27801);Object.defineProperty(t,"BindingScopeEnum",{enumerable:!0,get:function(){return u.BindingScopeEnum}}),Object.defineProperty(t,"BindingTypeEnum",{enumerable:!0,get:function(){return u.BindingTypeEnum}}),Object.defineProperty(t,"TargetTypeEnum",{enumerable:!0,get:function(){return u.TargetTypeEnum}});var l=r(49872);Object.defineProperty(t,"AsyncContainerModule",{enumerable:!0,get:function(){return l.AsyncContainerModule}}),Object.defineProperty(t,"ContainerModule",{enumerable:!0,get:function(){return l.ContainerModule}});var d=r(24157);Object.defineProperty(t,"createTaggedDecorator",{enumerable:!0,get:function(){return d.createTaggedDecorator}});var f=r(79925);Object.defineProperty(t,"injectable",{enumerable:!0,get:function(){return f.injectable}});var p=r(98928);Object.defineProperty(t,"tagged",{enumerable:!0,get:function(){return p.tagged}});var h=r(1555);Object.defineProperty(t,"named",{enumerable:!0,get:function(){return h.named}});var m=r(98825);Object.defineProperty(t,"inject",{enumerable:!0,get:function(){return m.inject}});var g=r(95136);Object.defineProperty(t,"optional",{enumerable:!0,get:function(){return g.optional}});var b=r(10958);Object.defineProperty(t,"unmanaged",{enumerable:!0,get:function(){return b.unmanaged}});var y=r(33655);Object.defineProperty(t,"multiInject",{enumerable:!0,get:function(){return y.multiInject}});var S=r(70375);Object.defineProperty(t,"targetName",{enumerable:!0,get:function(){return S.targetName}});var v=r(73380);Object.defineProperty(t,"postConstruct",{enumerable:!0,get:function(){return v.postConstruct}});var _=r(14866);Object.defineProperty(t,"preDestroy",{enumerable:!0,get:function(){return _.preDestroy}});var C=r(47339);Object.defineProperty(t,"MetadataReader",{enumerable:!0,get:function(){return C.MetadataReader}});var A=r(38615);Object.defineProperty(t,"id",{enumerable:!0,get:function(){return A.id}});var E=r(24157);Object.defineProperty(t,"decorate",{enumerable:!0,get:function(){return E.decorate}});var x=r(20795);Object.defineProperty(t,"traverseAncerstors",{enumerable:!0,get:function(){return x.traverseAncerstors}}),Object.defineProperty(t,"taggedConstraint",{enumerable:!0,get:function(){return x.taggedConstraint}}),Object.defineProperty(t,"namedConstraint",{enumerable:!0,get:function(){return x.namedConstraint}}),Object.defineProperty(t,"typeConstraint",{enumerable:!0,get:function(){return x.typeConstraint}});var N=r(92172);Object.defineProperty(t,"getServiceIdentifierAsString",{enumerable:!0,get:function(){return N.getServiceIdentifierAsString}});var I=r(13447);Object.defineProperty(t,"multiBindToService",{enumerable:!0,get:function(){return I.multiBindToService}})},71612:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformersRunner=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t){this.codeTransformerFactory=e,this.codeTransformerNamesGroupsBuilder=t}transform(e,t,r){if(!t.length)return e;const n=this.buildNormalizedCodeTransformers(t,r),i=this.codeTransformerNamesGroupsBuilder.build(n);for(const t of i)for(const i of t){e=n[i].transformCode(e,r)}return e}buildNormalizedCodeTransformers(e,t){return e.reduce((e,t)=>{const r=this.codeTransformerFactory(t);return{...e,[t]:r}},{})}};t.CodeTransformersRunner=c,t.CodeTransformersRunner=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__ICodeTransformer)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICodeTransformerNamesGroupsBuilder)),i("design:paramtypes",[Function,Object])],c)},71626:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingTemplate=function(e,t){const r=e.getRandomString(6),n=e.getRandomString(6),i=e.getRandomString(6),a=e.getRandomString(6),o=e.getRandomString(6),s=e.getRandomString(6),c=e.getRandomString(6),u=e.getRandomString(6),l=e.getRandomString(6);return`\n const StatesClass = function (${r}) {\n this.${r} = ${r};\n this.${n} = [1, 0, 0];\n this.${i} = function(){return 'newState';};\n this.${a} = '${t.encode("\\w+ *\\(\\) *{\\w+ *",!0)}';\n this.${o} = '${t.encode("['|\"].+['|\"];? *}",!0)}';\n };\n \n StatesClass.prototype.${s} = function () {\n const regExp = new RegExp(this.${a} + this.${o});\n const expression = regExp.test(this.${i}.toString())\n ? --this.${n}[1]\n : --this.${n}[0];\n \n return this.${c}(expression);\n };\n \n StatesClass.prototype.${c} = function (${l}) {\n if (!Boolean(~${l})) {\n return ${l};\n }\n \n return this.${u}(this.${r});\n };\n\n StatesClass.prototype.${u} = function (${r}) {\n for (let i = 0, len = this.${n}.length; i < len; i++) {\n this.${n}.push(Math.round(Math.random()));\n len = this.${n}.length;\n }\n \n return ${r}(this.${n}[0]);\n };\n\n new StatesClass({stringArrayCallsWrapperName}).${s}();\n `}},71752:function(e,t,r){"use strict";var n=this&&this.__assign||function(){return n=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]0){var a=function(e,t){return e.reduce(function(e,r){var n=t(r);return r.target.type===d.TargetTypeEnum.ConstructorArgument?e.constructorInjections.push(n):(e.propertyRequests.push(r),e.propertyInjections.push(n)),e.isAsync||(e.isAsync=(0,p.isPromiseOrContainsPromise)(n)),e},{constructorInjections:[],isAsync:!1,propertyInjections:[],propertyRequests:[]})}(t,r),o=n(n({},a),{constr:e});i=a.isAsync?function(e){return s(this,void 0,void 0,function(){var t,r;return c(this,function(i){switch(i.label){case 0:return[4,m(e.constructorInjections)];case 1:return t=i.sent(),[4,m(e.propertyInjections)];case 2:return r=i.sent(),[2,h(n(n({},e),{constructorInjections:t,propertyInjections:r}))]}})})}(o):h(o)}else i=new e;return i}(t,r,i);return(0,p.isPromise)(a)?a.then(function(e){return g(t,e)}):g(t,a)};var l=r(95507),d=r(27801),f=o(r(2006)),p=r(60108);function h(e){var t,r=new((t=e.constr).bind.apply(t,u([void 0],e.constructorInjections,!1)));return e.propertyRequests.forEach(function(t,n){var i=t.target.identifier,a=e.propertyInjections[n];t.target.isOptional()&&void 0===a||(r[i]=a)}),r}function m(e){return s(this,void 0,void 0,function(){var t,r,n,i;return c(this,function(a){for(t=[],r=0,n=e;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayRotateFunctionTemplate=function(){return"\n (function (stringArrayFunction, comparisonValue) {\n const stringArray = stringArrayFunction();\n \n while (true) {\n try {\n const expression = {comparisonExpressionCode};\n \n if (expression === comparisonValue) {\n break;\n } else {\n stringArray['push'](stringArray['shift']());\n }\n } catch (e) {\n stringArray['push'](stringArray['shift']());\n }\n }\n })({stringArrayFunctionName}, {comparisonValue});\n "}},72167:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationTarget=void 0;const n=r(65063);t.ObfuscationTarget=n.Utils.makeEnum({Browser:"browser",BrowserNoEval:"browser-no-eval",Node:"node",ServiceWorker:"service-worker"})},72288:e=>{"use strict";e.exports={version:"2.3.1"}},72566:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{var r,n,a,o;return e.range||(e.range=[null!==(n=null===(r=null==t?void 0:t.range)||void 0===r?void 0:r[0])&&void 0!==n?n:i.emptyRangeValue,null!==(o=null===(a=null==t?void 0:t.range)||void 0===a?void 0:a[1])&&void 0!==o?o:i.emptyRangeValue]),e}})}static isRootNode(e){return h.NodeGuards.isProgramNode(e)||e.parentNode===e}analyze(e){const t=i.sourceTypes.length;i.attachMissingRanges(e);for(let r=0;r{if("block"!==e.type&&"switch"!==e.type)return;if(e.isStrict)return;const t=e.variableScope;if(t)for(let r=e.variables.length-1;r>=0;r--){const n=e.variables[r];if(!n.defs.some(e=>{var t;return"FunctionName"===e.type&&"FunctionDeclaration"===(null===(t=e.node)||void 0===t?void 0:t.type)}))continue;const i=t.variables.find(e=>e.name===n.name&&e!==n);if(null==i?void 0:i.defs.some(e=>{var t,r;return"Variable"===e.type&&("let"===(null===(t=e.parent)||void 0===t?void 0:t.kind)||"const"===(null===(r=e.parent)||void 0===r?void 0:r.kind))}))continue;const a=null!=i?i:n;i?(i.identifiers.push(...n.identifiers),i.references.push(...n.references)):t.variables.push(n),e.variables.splice(r,1),this.linkThroughReferences(n.name,t,a)}})}linkThroughReferences(e,t,r){for(let n=t.through.length-1;n>=0;n--)t.through[n].identifier.name===e&&(r.references.push(t.through[n]),t.through.splice(n,1));for(const n of t.childScopes)this.linkThroughReferences(e,n,r)}sanitizeScopes(e){e.childScopes.forEach(e=>{if("class"===e.type&&e.upper){if(!e.variables.length)return;const t=e.variables[0],r=e.upper.variables.find(e=>t.defs.some(e=>"ClassName"===e.type)&&e.name===t.name);null==r||r.references.push(...e.variables[0].references)}});for(const t of e.childScopes)this.sanitizeScopes(t)}walkScopes(e,t){t(e);for(const r of e.childScopes)this.walkScopes(r,t)}};t.ScopeAnalyzer=m,m.eslintScopeOptions={ecmaVersion:p.ecmaVersion,childVisitorKeys:f.KEYS,optimistic:!0},m.sourceTypes=["script","module"],m.emptyRangeValue=0,t.ScopeAnalyzer=m=i=s([(0,u.injectable)()],m)},72576:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){(0,i.default)(e),"[object RegExp]"!==Object.prototype.toString.call(t)&&(t=new RegExp(t,r));return!!e.match(t)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},72830:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/[^\x00-\x7F]/;e.exports=t.default,e.exports.default=t.default},73184:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.MEDIUM_OBFUSCATION_PRESET=void 0;const n=r(94838),i=r(70885),a=r(60056),o=r(78297);t.MEDIUM_OBFUSCATION_PRESET=Object.freeze({...o.LOW_OBFUSCATION_PRESET,controlFlowFlattening:!0,deadCodeInjection:!0,numbersToExpressions:!0,optionsPreset:n.OptionsPreset.MediumObfuscation,splitStrings:!0,splitStringsChunkLength:10,stringArrayCallsTransformThreshold:.75,stringArrayEncoding:[i.StringArrayEncoding.Base64],stringArrayWrappersCount:2,stringArrayWrappersParametersMaxCount:4,stringArrayWrappersType:a.StringArrayWrappersType.Function,transformObjectKeys:!0})},73199:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});var i=n(r(29947));function a(e){if("string"!=typeof e)throw new Error("A string is expected as input");return e.match(i.default())||[]}function o(e){if("string"!=typeof e)throw new Error("Input must be a string");var t=e.match(i.default());return null===t?0:t.length}function s(e,t,r){if(void 0===t&&(t=0),"string"!=typeof e)throw new Error("Input must be a string");("number"!=typeof t||t<0)&&(t=0),"number"==typeof r&&r<0&&(r=0);var n=e.match(i.default());return n?n.slice(t,r).join(""):""}t.toArray=a,t.length=o,t.substring=s,t.substr=function(e,t,r){if(void 0===t&&(t=0),"string"!=typeof e)throw new Error("Input must be a string");var n,a=o(e);if("number"!=typeof t&&(t=parseInt(t,10)),t>=a)return"";t<0&&(t+=a),void 0===r?n=a:("number"!=typeof r&&(r=parseInt(r,10)),n=r>=0?r+t:t);var s=e.match(i.default());return s?s.slice(t,n).join(""):""},t.limit=function(e,t,r,n){if(void 0===t&&(t=16),void 0===r&&(r="#"),void 0===n&&(n="right"),"string"!=typeof e||"number"!=typeof t)throw new Error("Invalid arguments specified");if(-1===["left","right"].indexOf(n))throw new Error("Pad position should be either left or right");"string"!=typeof r&&(r=String(r));var i=o(e);if(i>t)return s(e,0,t);if(i=n.length)return""===t?n.length:-1;if(""===t)return r;var i,o=a(t),s=!1;for(i=r;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(e);var t=e.split(",");if(t.length<2)return!1;var r=t.shift().trim().split(";"),n=r.shift();if("data:"!==n.slice(0,5))return!1;var c=n.slice(5);if(""!==c&&!a.test(c))return!1;for(var u=0;u{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){(0,i.default)(e);for(var t,r,n,a=e.replace(/[- ]+/g,""),o=0,s=a.length-1;s>=0;s--)t=a.substring(s,s+1),r=parseInt(t,10),o+=n&&(r*=2)>=10?r%10+1:r,n=!n;return!(o%10!=0||!a)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},73661:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallsTransformThresholdRule=void 0;t.StringArrayCallsTransformThresholdRule=e=>(0===e.stringArrayCallsTransformThreshold&&(e={...e,stringArrayCallsTransform:!1,stringArrayCallsTransformThreshold:0}),e)},74051:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t},o=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,a){function o(e){try{c(n.next(e))}catch(e){a(e)}}function s(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(o,s)}c((n=n.apply(e,t||[])).next())})},s=this&&this.__generator||function(e,t){var r,n,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingInWhenOnSyntax=void 0;var n=r(94501),i=r(42903),a=r(36744),o=function(){function e(e){this._binding=e,this._bindingWhenSyntax=new a.BindingWhenSyntax(this._binding),this._bindingOnSyntax=new i.BindingOnSyntax(this._binding),this._bindingInSyntax=new n.BindingInSyntax(e)}return e.prototype.inRequestScope=function(){return this._bindingInSyntax.inRequestScope()},e.prototype.inSingletonScope=function(){return this._bindingInSyntax.inSingletonScope()},e.prototype.inTransientScope=function(){return this._bindingInSyntax.inTransientScope()},e.prototype.when=function(e){return this._bindingWhenSyntax.when(e)},e.prototype.whenTargetNamed=function(e){return this._bindingWhenSyntax.whenTargetNamed(e)},e.prototype.whenTargetIsDefault=function(){return this._bindingWhenSyntax.whenTargetIsDefault()},e.prototype.whenTargetTagged=function(e,t){return this._bindingWhenSyntax.whenTargetTagged(e,t)},e.prototype.whenInjectedInto=function(e){return this._bindingWhenSyntax.whenInjectedInto(e)},e.prototype.whenParentNamed=function(e){return this._bindingWhenSyntax.whenParentNamed(e)},e.prototype.whenParentTagged=function(e,t){return this._bindingWhenSyntax.whenParentTagged(e,t)},e.prototype.whenAnyAncestorIs=function(e){return this._bindingWhenSyntax.whenAnyAncestorIs(e)},e.prototype.whenNoAncestorIs=function(e){return this._bindingWhenSyntax.whenNoAncestorIs(e)},e.prototype.whenAnyAncestorNamed=function(e){return this._bindingWhenSyntax.whenAnyAncestorNamed(e)},e.prototype.whenAnyAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenAnyAncestorTagged(e,t)},e.prototype.whenNoAncestorNamed=function(e){return this._bindingWhenSyntax.whenNoAncestorNamed(e)},e.prototype.whenNoAncestorTagged=function(e,t){return this._bindingWhenSyntax.whenNoAncestorTagged(e,t)},e.prototype.whenAnyAncestorMatches=function(e){return this._bindingWhenSyntax.whenAnyAncestorMatches(e)},e.prototype.whenNoAncestorMatches=function(e){return this._bindingWhenSyntax.whenNoAncestorMatches(e)},e.prototype.onActivation=function(e){return this._bindingOnSyntax.onActivation(e)},e.prototype.onDeactivation=function(e){return this._bindingOnSyntax.onDeactivation(e)},e}();t.BindingInWhenOnSyntax=o},74294:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[\x00-\x7F]+$/;e.exports=t.default,e.exports.default=t.default},74819:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ScopeThroughIdentifiersTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(23615);let d=class extends u.AbstractNodeTransformer{constructor(e,t,r,n){super(r,n),this.throughIdentifierReplacer=e,this.scopeIdentifiersTraverser=t}getVisitor(e){return e===c.NodeTransformationStage.RenameIdentifiers?{enter:(e,t)=>{if(t&&l.NodeGuards.isProgramNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){return this.scopeIdentifiersTraverser.traverseScopeThroughIdentifiers(e,t,e=>{const{reference:t,variableLexicalScopeNode:r}=e;this.transformScopeThroughIdentifiers(t,r)}),e}transformScopeThroughIdentifiers(e,t){e.resolved||this.replaceIdentifierName(e)}replaceIdentifierName(e){const t=e.identifier,r=this.throughIdentifierReplacer.replace(t);e.identifier.name=r.name}};t.ScopeThroughIdentifiersTransformer=d,t.ScopeThroughIdentifiersTransformer=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IThroughIdentifierReplacer)),a(1,(0,o.inject)(s.ServiceIdentifiers.IScopeIdentifiersTraverser)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object,Object,Object])],d)},74955:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.Options=void 0;const s=r(71519),c=r(32287),u=r(90804),l=r(93844),d=r(72167),f=r(94838),p=r(36833),h=r(54042),m=r(48096),g=r(66822),b=r(70885),y=r(60056),S=r(11839),v=r(78297),_=r(73184),C=r(49517),A=r(14363),E=r(18649),x=r(66817),N=r(92076),I=r(24116);let T=n=class{constructor(e,t){var r;const i=n.getOptionsByPreset(null!==(r=e.optionsPreset)&&void 0!==r?r:f.OptionsPreset.Default);Object.assign(this,i,e);const a=(0,u.validateSync)(this,n.validatorOptions);if(a.length)throw new ReferenceError(`Validation failed. errors:\n${A.ValidationErrorsFormatter.format(a)}`);Object.assign(this,t.normalize(this))}static getOptionsByPreset(e){var t;const r=null!==(t=n.optionPresetsMap.get(e))&&void 0!==t?t:null;if(!r)throw new Error(`Options for preset name \`${e}\` are not found`);return r}};t.Options=T,T.optionPresetsMap=new Map([[f.OptionsPreset.Default,S.DEFAULT_PRESET],[f.OptionsPreset.LowObfuscation,v.LOW_OBFUSCATION_PRESET],[f.OptionsPreset.MediumObfuscation,_.MEDIUM_OBFUSCATION_PRESET],[f.OptionsPreset.HighObfuscation,C.HIGH_OBFUSCATION_PRESET]]),T.validatorOptions={forbidUnknownValues:!0,validationError:{target:!1}},i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"compact",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"controlFlowFlattening",void 0),i([(0,u.IsNumber)(),(0,u.Min)(0),(0,u.Max)(1),a("design:type",Number)],T.prototype,"controlFlowFlatteningThreshold",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"deadCodeInjection",void 0),i([(0,u.IsNumber)(),a("design:type",Number)],T.prototype,"deadCodeInjectionThreshold",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"debugProtection",void 0),i([(0,u.IsNumber)(),(0,u.Min)(0),a("design:type",Number)],T.prototype,"debugProtectionInterval",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"disableConsoleOutput",void 0),i([(0,u.IsArray)(),(0,u.ArrayUnique)(),(0,u.IsString)({each:!0}),(0,E.IsAllowedForObfuscationTargets)([d.ObfuscationTarget.Browser,d.ObfuscationTarget.BrowserNoEval]),a("design:type",Array)],T.prototype,"domainLock",void 0),i([(0,x.IsDomainLockRedirectUrl)(),a("design:type",String)],T.prototype,"domainLockRedirectUrl",void 0),i([(0,u.IsArray)(),(0,u.ArrayUnique)(),(0,u.IsString)({each:!0}),a("design:type",Array)],T.prototype,"forceTransformStrings",void 0),i([(0,N.IsIdentifierNamesCache)(),a("design:type",Object)],T.prototype,"identifierNamesCache",void 0),i([(0,u.IsIn)([l.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator,l.IdentifierNamesGenerator.HexadecimalIdentifierNamesGenerator,l.IdentifierNamesGenerator.MangledIdentifierNamesGenerator,l.IdentifierNamesGenerator.MangledShuffledIdentifierNamesGenerator]),a("design:type",Object)],T.prototype,"identifierNamesGenerator",void 0),i([(0,u.IsString)(),a("design:type",String)],T.prototype,"identifiersPrefix",void 0),i([(0,u.IsArray)(),(0,u.ArrayUnique)(),(0,u.IsString)({each:!0}),(0,u.ValidateIf)(e=>e.identifierNamesGenerator===l.IdentifierNamesGenerator.DictionaryIdentifierNamesGenerator),(0,u.ArrayNotEmpty)(),a("design:type",Array)],T.prototype,"identifiersDictionary",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"ignoreImports",void 0),i([(0,I.IsInputFileName)(),a("design:type",String)],T.prototype,"inputFileName",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"log",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"numbersToExpressions",void 0),i([(0,u.IsIn)([f.OptionsPreset.Default,f.OptionsPreset.LowObfuscation,f.OptionsPreset.MediumObfuscation,f.OptionsPreset.HighObfuscation]),a("design:type",String)],T.prototype,"optionsPreset",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"renameGlobals",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"renameProperties",void 0),i([(0,u.IsIn)([p.RenamePropertiesMode.Safe,p.RenamePropertiesMode.Unsafe]),a("design:type",String)],T.prototype,"renamePropertiesMode",void 0),i([(0,u.IsArray)(),(0,u.ArrayUnique)(),(0,u.IsString)({each:!0}),a("design:type",Array)],T.prototype,"reservedNames",void 0),i([(0,u.IsArray)(),(0,u.ArrayUnique)(),(0,u.IsString)({each:!0}),a("design:type",Array)],T.prototype,"reservedStrings",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"selfDefending",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"simplify",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"sourceMap",void 0),i([(0,u.IsString)(),(0,u.ValidateIf)(e=>Boolean(e.sourceMapBaseUrl)),(0,u.IsUrl)({require_protocol:!0,require_tld:!1,require_valid_protocol:!0}),a("design:type",String)],T.prototype,"sourceMapBaseUrl",void 0),i([(0,u.IsString)(),a("design:type",String)],T.prototype,"sourceMapFileName",void 0),i([(0,u.IsIn)([h.SourceMapMode.Inline,h.SourceMapMode.Separate]),a("design:type",Object)],T.prototype,"sourceMapMode",void 0),i([(0,u.IsIn)([m.SourceMapSourcesMode.Sources,m.SourceMapSourcesMode.SourcesContent]),a("design:type",Object)],T.prototype,"sourceMapSourcesMode",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"splitStrings",void 0),i([(0,u.IsNumber)(),(0,u.ValidateIf)(e=>Boolean(e.splitStrings)),(0,u.Min)(1),a("design:type",Number)],T.prototype,"splitStringsChunkLength",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"stringArray",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"stringArrayCallsTransform",void 0),i([(0,u.IsNumber)(),(0,u.Min)(0),(0,u.Max)(1),a("design:type",Number)],T.prototype,"stringArrayCallsTransformThreshold",void 0),i([(0,u.IsArray)(),(0,u.ArrayUnique)(),(0,u.IsIn)([b.StringArrayEncoding.None,b.StringArrayEncoding.Base64,b.StringArrayEncoding.Rc4],{each:!0}),a("design:type",Array)],T.prototype,"stringArrayEncoding",void 0),i([(0,u.IsArray)(),(0,u.ArrayNotEmpty)(),(0,u.ArrayUnique)(),(0,u.IsIn)([g.StringArrayIndexesType.HexadecimalNumber,g.StringArrayIndexesType.HexadecimalNumericString],{each:!0}),a("design:type",Array)],T.prototype,"stringArrayIndexesType",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"stringArrayIndexShift",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"stringArrayRotate",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"stringArrayShuffle",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"stringArrayWrappersChainedCalls",void 0),i([(0,u.IsNumber)(),(0,u.Min)(0),a("design:type",Number)],T.prototype,"stringArrayWrappersCount",void 0),i([(0,u.IsNumber)(),(0,u.Min)(2),a("design:type",Number)],T.prototype,"stringArrayWrappersParametersMaxCount",void 0),i([(0,u.IsIn)([y.StringArrayWrappersType.Variable,y.StringArrayWrappersType.Function]),a("design:type",String)],T.prototype,"stringArrayWrappersType",void 0),i([(0,u.IsNumber)(),(0,u.Min)(0),(0,u.Max)(1),a("design:type",Number)],T.prototype,"stringArrayThreshold",void 0),i([(0,u.IsIn)([d.ObfuscationTarget.Browser,d.ObfuscationTarget.BrowserNoEval,d.ObfuscationTarget.Node,d.ObfuscationTarget.ServiceWorker]),a("design:type",Object)],T.prototype,"target",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"transformObjectKeys",void 0),i([(0,u.IsBoolean)(),a("design:type",Boolean)],T.prototype,"unicodeEscapeSequence",void 0),t.Options=T=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.TInputOptions)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptionsNormalizer)),a("design:paramtypes",[Object,Object])],T)},75025:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.ImportMetaObfuscationGuard=void 0;const i=r(71519),a=r(50275),o=r(23615);let s=class{check(e){const t=o.NodeGuards.isMetaPropertyNode(e),r=!!(null==e?void 0:e.parentNode)&&o.NodeGuards.isMetaPropertyNode(e.parentNode);return t||r?a.ObfuscatingGuardResult.Ignore:a.ObfuscatingGuardResult.Transform}};t.ImportMetaObfuscationGuard=s,t.ImportMetaObfuscationGuard=s=n([(0,i.injectable)()],s)},75252:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformerNamesGroupsBuilder=void 0;const i=r(71519),a=r(17412);let o=class extends a.AbstractTransformerNamesGroupsBuilder{};t.NodeTransformerNamesGroupsBuilder=o,t.NodeTransformerNamesGroupsBuilder=o=n([(0,i.injectable)()],o)},75269:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LogicalExpressionFunctionNode=void 0;const o=r(71519),s=r(32287),c=r(57013),u=r(91363),l=r(25120);let d=class extends c.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e){this.operator=e}getNodeStructure(){const e=u.NodeFactory.expressionStatementNode(u.NodeFactory.functionExpressionNode([u.NodeFactory.identifierNode("x"),u.NodeFactory.identifierNode("y")],u.NodeFactory.blockStatementNode([u.NodeFactory.returnStatementNode(u.NodeFactory.logicalExpressionNode(this.operator,u.NodeFactory.identifierNode("x"),u.NodeFactory.identifierNode("y")))])));return l.NodeUtils.parentizeAst(e),[e]}};t.LogicalExpressionFunctionNode=d,t.LogicalExpressionFunctionNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],d)},75577:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),e===e.toUpperCase()};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},75617:(e,t,r)=>{e.exports=r(58303)},75751:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e);try{t=(0,a.default)(t,c);var r=[];t.allow_primitives&&(r=[null,!1,!0]);var o=JSON.parse(e);return(0,i.default)(r,o)||!!o&&"object"===s(o)}catch(e){}return!1};var n=o(r(83399)),i=o(r(78644)),a=o(r(93610));function o(e){return e&&e.__esModule?e:{default:e}}function s(e){return s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},s(e)}var c={allow_primitives:!1};e.exports=t.default,e.exports.default=t.default},76059:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionVariableDeclarationHostNode=void 0;const o=r(71519),s=r(32287),c=r(57013),u=r(91363),l=r(23615);let d=class extends c.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.lexicalScopeNode=e,this.properties=t}getNodeStructure(){const e=l.NodeGuards.isProgramNode(this.lexicalScopeNode)?this.identifierNamesGenerator.generateForGlobalScopeWithAllScopesValidation():this.identifierNamesGenerator.generateForLexicalScope(this.lexicalScopeNode);return[u.NodeFactory.variableDeclarationNode([u.NodeFactory.variableDeclaratorNode(u.NodeFactory.identifierNode(e),u.NodeFactory.objectExpressionNode(this.properties))],"const")]}};t.ObjectExpressionVariableDeclarationHostNode=d,t.ObjectExpressionVariableDeclarationHostNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],d)},76084:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,n.default)(e);var r=!1===(t=t||{}).allow_leading_zeroes?o:s,a=!t.hasOwnProperty("min")||(0,i.default)(t.min)||e>=t.min,c=!t.hasOwnProperty("max")||(0,i.default)(t.max)||e<=t.max,u=!t.hasOwnProperty("lt")||(0,i.default)(t.lt)||et.gt;return r.test(e)&&a&&c&&u&&l};var n=a(r(83399)),i=a(r(50821));function a(e){return e&&e.__esModule?e:{default:e}}var o=/^(?:[-+]?(?:0|[1-9][0-9]*))$/,s=/^[-+]?[0-9]+$/;e.exports=t.default,e.exports.default=t.default},76336:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(d.NodeGuards.isFunctionDeclarationNode(e)&&e.id.name===t)return r=e.body,u.VisitorOption.Break}}),r}};t.FunctionDeclarationCalleeDataExtractor=p,t.FunctionDeclarationCalleeDataExtractor=p=o([(0,c.injectable)()],p)},76382:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DomainLockTemplate=function(){return'\n const {domainLockFunctionName} = {callControllerFunctionName}(this, function () {\n \n {globalVariableTemplate}\n \n const regExp = new RegExp("[{domainsStringDiff}]", "g");\n const domains = "{domains}".replace(regExp, "").split(";");\n let document;\n let domain;\n let location;\n let hostname;\n\n const isName = function(name, length, cs) {\n if (name.length != length) {\n return false;\n }\n\n for (let i = 0; i < length; i++) {\n for (let j = 0; j < cs.length; j += 2) {\n if (i == cs[j] && name.charCodeAt(i) != cs[j+1]) {\n return false;\n }\n }\n }\n\n return true;\n };\n\n const isNameVariant1 = function(cs, name, length) {\n return isName(name, length, cs);\n };\n\n const isNameVariant2 = function(name, cs, length) {\n return isNameVariant1(cs, name, length);\n };\n\n const isNameVariant3 = function(length, name, cs) {\n return isNameVariant2(name, cs, length);\n };\n\n for (let d in that) {\n if (isName(d, 8, [7, 116, 5, 101, 3, 117, 0, 100])) {\n document = d;\n \n break;\n }\n }\n\n for (let d1 in that[document]) {\n if (isNameVariant3(6, d1, [5, 110, 0, 100])) {\n domain = d1;\n\n break;\n }\n }\n\n for (let d2 in that[document]) {\n if (isNameVariant2(d2, [7, 110, 0, 108], 8)) {\n location = d2;\n\n break;\n }\n }\n\n if (!("~" > domain)) {\n for (let d3 in that[document][location]) {\n if (isNameVariant1([7, 101, 0, 104], d3, 8)) {\n hostname = d3;\n \n break;\n }\n }\n }\n \n if (!document || !that[document]) {\n return;\n }\n \n const documentDomain = that[document][domain];\n const documentLocationHostName = !!that[document][location] && that[document][location][hostname];\n const currentDomain = documentDomain || documentLocationHostName;\n \n if (!currentDomain) {\n return;\n }\n \n let ok = false;\n \n for (let i = 0; i < domains.length; i++) {\n const domain = domains[i];\n const domainNormalized = domain[0] === String.fromCharCode(46)\n ? domain.slice(1)\n : domain;\n const position = currentDomain.length - domainNormalized.length;\n const lastIndex = currentDomain.indexOf(domainNormalized, position);\n const endsWith = lastIndex !== -1 && lastIndex === position;\n \n if (endsWith) {\n if (currentDomain.length == domain.length || domain.indexOf(".") === 0) {\n ok = true;\n }\n }\n }\n\n if (!ok) {\n const regExp2 = new RegExp("[{domainLockRedirectUrlDiff}]", "g");\n const domainLockRedirectUrl = "{hiddenDomainLockRedirectUrl}".replace(regExp2, "");\n\n that[document][location] = domainLockRedirectUrl;\n }\n });\n\n {domainLockFunctionName}();\n '}},76804:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.isClonable=function(e){return"object"==typeof e&&null!==e&&"clone"in e&&"function"==typeof e.clone}},76822:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.CallExpressionControlFlowReplacer=void 0;const s=r(71519),c=r(32287),u=r(96747),l=r(94914),d=r(23615);let f=n=class extends l.AbstractControlFlowReplacer{constructor(e,t,r,n){super(e,t,r,n)}replace(e,t,r){const i=e.callee;if(!d.NodeGuards.isIdentifierNode(i))return e;const a=d.NodeGuards.isChainExpressionNode(t),o=e.arguments.length,s=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.CallExpressionFunctionNode),c=e.arguments;s.initialize(c,a);const l=this.insertCustomNodeToControlFlowStorage(s,r,o,n.usingExistingIdentifierChance);return this.getControlFlowStorageCallNode(r.getStorageId(),l,i,c)}getControlFlowStorageCallNode(e,t,r,n){const i=this.controlFlowCustomNodeFactory(u.ControlFlowCustomNode.CallExpressionControlFlowStorageCallNode);i.initialize(e,t,r,n);const a=i.getNode()[0];if(!a||!d.NodeGuards.isExpressionStatementNode(a))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}};t.CallExpressionControlFlowReplacer=f,f.usingExistingIdentifierChance=.5,t.CallExpressionControlFlowReplacer=f=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__IControlFlowCustomNode)),o(1,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(2,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(3,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Function,Object,Object])],f)},76849:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.analyzersModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(12505),s=r(2731),c=r(76336),u=r(12408),l=r(94556),d=r(94505),f=r(64611),p=r(72566),h=r(27600);t.analyzersModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.ICallsGraphAnalyzer).to(s.CallsGraphAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.INumberNumericalExpressionAnalyzer).to(l.NumberNumericalExpressionAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.IPrevailingKindOfVariablesAnalyzer).to(f.PrevailingKindOfVariablesAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.IScopeAnalyzer).to(p.ScopeAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.IStringArrayStorageAnalyzer).to(h.StringArrayStorageAnalyzer).inSingletonScope(),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(c.FunctionDeclarationCalleeDataExtractor).whenTargetNamed(o.CalleeDataExtractor.FunctionDeclarationCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(u.FunctionExpressionCalleeDataExtractor).whenTargetNamed(o.CalleeDataExtractor.FunctionExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.ICalleeDataExtractor).to(d.ObjectExpressionCalleeDataExtractor).whenTargetNamed(o.CalleeDataExtractor.ObjectExpressionCalleeDataExtractor),e(a.ServiceIdentifiers.Factory__ICalleeDataExtractor).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.ICalleeDataExtractor))})},76862:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalIdentifierNamesCacheStorage=void 0;const o=r(71519),s=r(32287),c=r(11440);let u=class extends c.MapStorage{constructor(e,t){super(e,t)}initialize(){var e,t;super.initialize(),this.storage=new Map(Object.entries(null!==(t=null===(e=this.options.identifierNamesCache)||void 0===e?void 0:e.globalIdentifiers)&&void 0!==t?t:{}))}};t.GlobalIdentifierNamesCacheStorage=u,n([(0,o.postConstruct)(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],u.prototype,"initialize",null),t.GlobalIdentifierNamesCacheStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},76893:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractNodeTransformer=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t){this.randomGenerator=e,this.options=t}};t.AbstractNodeTransformer=c,t.AbstractNodeTransformer=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],c)},77344:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ClassFieldTransformer=void 0;const s=r(71519),c=r(32287),u=r(18436),l=r(76893),d=r(91363),f=r(23615);let p=n=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===u.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&(f.NodeGuards.isMethodDefinitionNode(e)||f.NodeGuards.isPropertyDefinitionNode(e)))return this.transformNode(e,t)}}:null}transformNode(e,t){return f.NodeGuards.isIdentifierNode(e.key)?this.replaceIdentifierKey(e,e.key):f.NodeGuards.isLiteralNode(e.key)?this.replaceLiteralKey(e,e.key):e}replaceIdentifierKey(e,t){return t.name===n.ignoredName||e.computed||(e.computed=!0,e.key=d.NodeFactory.literalNode(t.name)),e}replaceLiteralKey(e,t){return"string"!=typeof t.value||t.value===n.ignoredName||e.computed||(e.computed=!0),e}};t.ClassFieldTransformer=p,p.ignoredName="constructor",t.ClassFieldTransformer=p=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Object,Object])],p)},77426:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getLegacyMetadata=function(e){if(e.kind===i.ClassElementMetadataKind.unmanaged)return[{key:n.UNMANAGED_TAG,value:!0}];return function(e){const t=[a(e)];void 0!==e.name&&t.push({key:n.NAMED_TAG,value:e.name});e.optional&&t.push({key:n.OPTIONAL_TAG,value:!0});for(const[r,n]of e.tags)t.push({key:r,value:n});void 0!==e.targetName&&t.push({key:n.NAME_TAG,value:e.targetName});return t}(e)};const n=r(83313),i=r(86277);function a(e){let t;switch(e.kind){case i.ClassElementMetadataKind.multipleInjection:t={key:n.MULTI_INJECT_TAG,value:e.value};break;case i.ClassElementMetadataKind.singleInjection:t={key:n.INJECT_TAG,value:e.value}}return t}},77741:(e,t,r)=>{"use strict";function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US";(0,i.default)(e);var r=e.slice(0);if(t in f)return t in m&&(r=r.replace(m[t],"")),!!f[t].test(r)&&(!(t in p)||p[t](r));throw new Error("Invalid locale '".concat(t,"'"))};var i=s(r(83399)),a=function(e,t){if("function"==typeof WeakMap)var r=new WeakMap,i=new WeakMap;return function(e,t){if(!t&&e&&e.__esModule)return e;var a,o,s={__proto__:null,default:e};if(null===e||"object"!=n(e)&&"function"!=typeof e)return s;if(a=t?i:r){if(a.has(e))return a.get(e);a.set(e,s)}for(var c in e)"default"!==c&&{}.hasOwnProperty.call(e,c)&&((o=(a=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,c))&&(o.get||o.set)?a(s,c,o):s[c]=e[c]);return s}(e,t)}(r(44834)),o=s(r(99013));function s(e){return e&&e.__esModule?e:{default:e}}function c(e){return function(e){if(Array.isArray(e))return u(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(e){if("string"==typeof e)return u(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?u(e,t):void 0}}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0){if(t&&!r&&!/[AEIOU]/.test(e[n]))return!1;if(r&&!/X/.test(e[n]))return!1}return!0}var f={"bg-BG":/^\d{10}$/,"cs-CZ":/^\d{6}\/{0,1}\d{3,4}$/,"de-AT":/^\d{9}$/,"de-DE":/^[1-9]\d{10}$/,"dk-DK":/^\d{6}-{0,1}\d{4}$/,"el-CY":/^[09]\d{7}[A-Z]$/,"el-GR":/^([0-4]|[7-9])\d{8}$/,"en-CA":/^\d{9}$/,"en-GB":/^\d{10}$|^(?!GB|NK|TN|ZZ)(?![DFIQUV])[A-Z](?![DFIQUVO])[A-Z]\d{6}[ABCD ]$/i,"en-IE":/^\d{7}[A-W][A-IW]{0,1}$/i,"en-US":/^\d{2}[- ]{0,1}\d{7}$/,"es-AR":/(20|23|24|27|30|33|34)[0-9]{8}[0-9]/,"es-ES":/^(\d{0,8}|[XYZKLM]\d{7})[A-HJ-NP-TV-Z]$/i,"et-EE":/^[1-6]\d{6}(00[1-9]|0[1-9][0-9]|[1-6][0-9]{2}|70[0-9]|710)\d$/,"fi-FI":/^\d{6}[-+A]\d{3}[0-9A-FHJ-NPR-Y]$/i,"fr-BE":/^\d{11}$/,"fr-FR":/^[0-3]\d{12}$|^[0-3]\d\s\d{2}(\s\d{3}){3}$/,"fr-LU":/^\d{13}$/,"hr-HR":/^\d{11}$/,"hu-HU":/^8\d{9}$/,"it-IT":/^[A-Z]{6}[L-NP-V0-9]{2}[A-EHLMPRST][L-NP-V0-9]{2}[A-ILMZ][L-NP-V0-9]{3}[A-Z]$/i,"lv-LV":/^\d{6}-{0,1}\d{5}$/,"mt-MT":/^\d{3,7}[APMGLHBZ]$|^([1-8])\1\d{7}$/i,"nl-NL":/^\d{9}$/,"pl-PL":/^\d{10,11}$/,"pt-BR":/(?:^\d{11}$)|(?:^\d{14}$)/,"pt-PT":/^\d{9}$/,"ro-RO":/^\d{13}$/,"sk-SK":/^\d{6}\/{0,1}\d{3,4}$/,"sl-SI":/^[1-9]\d{7}$/,"sv-SE":/^(\d{6}[-+]{0,1}\d{4}|(18|19|20)\d{6}[-+]{0,1}\d{4})$/,"uk-UA":/^\d{10}$/};f["lb-LU"]=f["fr-LU"],f["lt-LT"]=f["et-EE"],f["nl-BE"]=f["fr-BE"],f["fr-CA"]=f["en-CA"];var p={"bg-BG":function(e){var t=e.slice(0,2),r=parseInt(e.slice(2,4),10);r>40?(r-=40,t="20".concat(t)):r>20?(r-=20,t="18".concat(t)):t="19".concat(t),r<10&&(r="0".concat(r));var n="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,o.default)(n,"YYYY/MM/DD"))return!1;for(var i=e.split("").map(function(e){return parseInt(e,10)}),a=[2,4,8,5,10,9,7,3,6],s=0,c=0;c50&&(r-=50),r>20){if(parseInt(t,10)<2004)return!1;r-=20}r<10&&(r="0".concat(r));var n="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,o.default)(n,"YYYY/MM/DD"))return!1;if(10===e.length&&parseInt(e,10)%11!=0){var i=parseInt(e.slice(0,9),10)%11;if(!(parseInt(t,10)<1986&&10===i))return!1;if(0!==parseInt(e.slice(9),10))return!1}return!0},"de-AT":function(e){return a.luhnCheck(e)},"de-DE":function(e){for(var t=e.split("").map(function(e){return parseInt(e,10)}),r=[],n=0;n1})).length&&3!==r.length)return!1;if(3===r[0].length){for(var o=r[0].split("").map(function(e){return parseInt(e,10)}),s=0,c=0;c58))return!1;t="18".concat(t)}}3===t.length&&(t=[t.slice(0,2),"0",t.slice(2)].join(""));var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,o.default)(r,"YYYY/MM/DD"))return!1;for(var n=e.split("").map(function(e){return parseInt(e,10)}),i=0,a=4,s=0;s<9;s++)i+=n[s]*a,1===(a-=1)&&(a=7);return 1!==(i%=11)&&(0===i?0===n[9]:n[9]===11-i)},"el-CY":function(e){for(var t=e.slice(0,8).split("").map(function(e){return parseInt(e,10)}),r=0,n=1;n4&&(r+=2));return String.fromCharCode(r%26+65)===e.charAt(8)},"el-GR":function(e){for(var t=e.split("").map(function(e){return parseInt(e,10)}),r=0,n=0;n<8;n++)r+=t[n]*Math.pow(2,8-n);return r%11%10===t[8]},"en-CA":function(e){var t=e.split(""),r=t.filter(function(e,t){return t%2}).map(function(e){return 2*Number(e)}).join("").split("");return t.filter(function(e,t){return!(t%2)}).concat(r).map(function(e){return Number(e)}).reduce(function(e,t){return e+t})%10==0},"en-IE":function(e){var t=a.reverseMultiplyAndSum(e.split("").slice(0,7).map(function(e){return parseInt(e,10)}),8);return 9===e.length&&"W"!==e[8]&&(t+=9*(e[8].charCodeAt(0)-64)),0===(t%=23)?"W"===e[7].toUpperCase():e[7].toUpperCase()===String.fromCharCode(64+t)},"en-US":function(e){return-1!==function(){var e=[];for(var t in l)l.hasOwnProperty(t)&&e.push.apply(e,c(l[t]));return e}().indexOf(e.slice(0,2))},"es-AR":function(e){for(var t=0,r=e.split(""),n=parseInt(r.pop(),10),i=0;i1){var r=0;switch(t[0]){case"Y":r=1;break;case"Z":r=2}t.splice(0,1,r)}else for(;t.length<9;)t.unshift(0);t=t.join("");var n=parseInt(t.slice(0,8),10)%23;return t[8]===["T","R","W","A","G","M","Y","F","P","D","X","B","N","J","Z","S","Q","V","H","L","C","K","E"][n]},"et-EE":function(e){var t=e.slice(1,3);switch(e.slice(0,1)){case"1":case"2":t="18".concat(t);break;case"3":case"4":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(!(0,o.default)(r,"YYYY/MM/DD"))return!1;for(var n=e.split("").map(function(e){return parseInt(e,10)}),i=0,a=1,s=0;s<10;s++)i+=n[s]*a,10===(a+=1)&&(a=1);if(i%11==10){i=0,a=3;for(var c=0;c<10;c++)i+=n[c]*a,10===(a+=1)&&(a=1);if(i%11==10)return 0===n[10]}return i%11===n[10]},"fi-FI":function(e){var t=e.slice(4,6);switch(e.slice(6,7)){case"+":t="18".concat(t);break;case"-":t="19".concat(t);break;default:t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(2,4),"/").concat(e.slice(0,2));if(!(0,o.default)(r,"YYYY/MM/DD"))return!1;var n=parseInt(e.slice(0,6)+e.slice(7,10),10)%31;return n<10?n===parseInt(e.slice(10),10):["A","B","C","D","E","F","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y"][n-=10]===e.slice(10)},"fr-BE":function(e){if("00"!==e.slice(2,4)||"00"!==e.slice(4,6)){var t="".concat(e.slice(0,2),"/").concat(e.slice(2,4),"/").concat(e.slice(4,6));if(!(0,o.default)(t,"YY/MM/DD"))return!1}var r=97-parseInt(e.slice(0,9),10)%97,n=parseInt(e.slice(9,11),10);return r===n||(r=97-parseInt("2".concat(e.slice(0,9)),10)%97)===n},"fr-FR":function(e){return e=e.replace(/\s/g,""),parseInt(e.slice(0,10),10)%511===parseInt(e.slice(10,13),10)},"fr-LU":function(e){var t="".concat(e.slice(0,4),"/").concat(e.slice(4,6),"/").concat(e.slice(6,8));return!!(0,o.default)(t,"YYYY/MM/DD")&&(!!a.luhnCheck(e.slice(0,12))&&a.verhoeffCheck("".concat(e.slice(0,11)).concat(e[12])))},"hr-HR":function(e){return a.iso7064Check(e)},"hu-HU":function(e){for(var t=e.split("").map(function(e){return parseInt(e,10)}),r=8,n=1;n<9;n++)r+=t[n]*(n+1);return r%11===t[9]},"it-IT":function(e){var t=e.toUpperCase().split("");if(!d(t.slice(0,3)))return!1;if(!d(t.slice(3,6)))return!1;for(var r={L:"0",M:"1",N:"2",P:"3",Q:"4",R:"5",S:"6",T:"7",U:"8",V:"9"},n=0,i=[6,7,9,10,12,13,14];n40&&(c-=40),c<10&&(c="0".concat(c));var u="".concat(t[6]).concat(t[7],"/").concat(s,"/").concat(c);if(!(0,o.default)(u,"YY/MM/DD"))return!1;for(var l=0,f=1;f4&&(g+=2)}l+=g}return String.fromCharCode(65+l%26)===t[15]},"lv-LV":function(e){var t=(e=e.replace(/\W/,"")).slice(0,2);if("32"!==t){if("00"!==e.slice(2,4)){var r=e.slice(4,6);switch(e[6]){case"0":r="18".concat(r);break;case"1":r="19".concat(r);break;default:r="20".concat(r)}var n="".concat(r,"/").concat(e.slice(2,4),"/").concat(t);if(!(0,o.default)(n,"YYYY/MM/DD"))return!1}for(var i=1101,a=[1,6,3,7,9,10,5,8,4,2],s=0;s32e3)return!1;if(r===parseInt(t.join("").slice(5,7),10))return!1}}return!0},"nl-NL":function(e){return a.reverseMultiplyAndSum(e.split("").slice(0,8).map(function(e){return parseInt(e,10)}),9)%11===parseInt(e[8],10)},"pl-PL":function(e){if(10===e.length){for(var t=[6,5,7,2,3,4,5,6,7],r=0,n=0;n80?(i="18".concat(i),a-=80):a>60?(i="22".concat(i),a-=60):a>40?(i="21".concat(i),a-=40):a>20?(i="20".concat(i),a-=20):i="19".concat(i),a<10&&(a="0".concat(a));var s="".concat(i,"/").concat(a,"/").concat(e.slice(4,6));if(!(0,o.default)(s,"YYYY/MM/DD"))return!1;for(var c=0,u=1,l=0;l10?u=1:5===u&&(u+=2);return(c=10-c%10)===parseInt(e[10],10)},"pt-BR":function(e){if(11===e.length){var t,r;if(t=0,"11111111111"===e||"22222222222"===e||"33333333333"===e||"44444444444"===e||"55555555555"===e||"66666666666"===e||"77777777777"===e||"88888888888"===e||"99999999999"===e||"00000000000"===e)return!1;for(var n=1;n<=9;n++)t+=parseInt(e.substring(n-1,n),10)*(11-n);if(10===(r=10*t%11)&&(r=0),r!==parseInt(e.substring(9,10),10))return!1;t=0;for(var i=1;i<=10;i++)t+=parseInt(e.substring(i-1,i),10)*(12-i);return 10===(r=10*t%11)&&(r=0),r===parseInt(e.substring(10,11),10)}if("00000000000000"===e||"11111111111111"===e||"22222222222222"===e||"33333333333333"===e||"44444444444444"===e||"55555555555555"===e||"66666666666666"===e||"77777777777777"===e||"88888888888888"===e||"99999999999999"===e)return!1;for(var a=e.length-2,o=e.substring(0,a),s=e.substring(a),c=0,u=a-7,l=a;l>=1;l--)c+=o.charAt(a-l)*u,(u-=1)<2&&(u=9);var d=c%11<2?0:11-c%11;if(d!==parseInt(s.charAt(0),10))return!1;a+=1,o=e.substring(0,a),c=0,u=a-7;for(var f=a;f>=1;f--)c+=o.charAt(a-f)*u,(u-=1)<2&&(u=9);return(d=c%11<2?0:11-c%11)===parseInt(s.charAt(1),10)},"pt-PT":function(e){var t=11-a.reverseMultiplyAndSum(e.split("").slice(0,8).map(function(e){return parseInt(e,10)}),9)%11;return t>9?0===parseInt(e[8],10):t===parseInt(e[8],10)},"ro-RO":function(e){if("9000"!==e.slice(0,4)){var t=e.slice(1,3);switch(e[0]){case"1":case"2":t="19".concat(t);break;case"3":case"4":t="18".concat(t);break;case"5":case"6":t="20".concat(t)}var r="".concat(t,"/").concat(e.slice(3,5),"/").concat(e.slice(5,7));if(8===r.length){if(!(0,o.default)(r,"YY/MM/DD"))return!1}else if(!(0,o.default)(r,"YYYY/MM/DD"))return!1;for(var n=e.split("").map(function(e){return parseInt(e,10)}),i=[2,7,9,1,4,6,3,5,8,2,7,9],a=0,s=0;s53)return!1;t=t<10?"190".concat(t):"19".concat(t);var r=parseInt(e.slice(2,4),10);r>50&&(r-=50),r<10&&(r="0".concat(r));var n="".concat(t,"/").concat(r,"/").concat(e.slice(4,6));if(!(0,o.default)(n,"YYYY/MM/DD"))return!1}return!0},"sl-SI":function(e){var t=11-a.reverseMultiplyAndSum(e.split("").slice(0,7).map(function(e){return parseInt(e,10)}),8)%11;return 10===t?0===parseInt(e[7],10):t===parseInt(e[7],10)},"sv-SE":function(e){var t=e.slice(0);e.length>11&&(t=t.slice(2));var r="",n=t.slice(2,4),i=parseInt(t.slice(4,6),10);if(e.length>11)r=e.slice(0,4);else if(r=e.slice(0,2),11===e.length&&i<60){var s=(new Date).getFullYear().toString(),c=parseInt(s.slice(0,2),10);if(s=parseInt(s,10),"-"===e[6])r=parseInt("".concat(c).concat(r),10)>s?"".concat(c-1).concat(r):"".concat(c).concat(r);else if(r="".concat(c-1).concat(r),s-parseInt(r,10)<100)return!1}i>60&&(i-=60),i<10&&(i="0".concat(i));var u="".concat(r,"/").concat(n,"/").concat(i);if(8===u.length){if(!(0,o.default)(u,"YY/MM/DD"))return!1}else if(!(0,o.default)(u,"YYYY/MM/DD"))return!1;return a.luhnCheck(e.replace(/\W/,""))},"uk-UA":function(e){for(var t=e.split("").map(function(e){return parseInt(e,10)}),r=[-1,5,7,9,4,6,10,5,7],n=0,i=0;i{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,n.default)(e),!e||/[\s<>]/.test(e))return!1;if(0===e.indexOf("mailto:"))return!1;if((t=(0,c.default)(t,d)).validate_length&&e.length>t.max_allowed_length)return!1;if(!t.allow_fragments&&(0,a.default)(e,"#"))return!1;if(!t.allow_query_components&&((0,a.default)(e,"?")||(0,a.default)(e,"&")))return!1;var r,u,p,h,m,g,b,y;b=e.split("#"),e=b.shift(),b=e.split("?");var S=(e=b.shift()).match(/^([a-z][a-z0-9+\-.]*):/i),v=!1,_=function(n){return v=!0,r=n.toLowerCase(),(!t.require_valid_protocol||-1!==t.protocols.indexOf(r))&&e.substring(S[0].length)};if(S){var C=S[1],A=e.substring(S[0].length);if("//"===A.slice(0,2)){if(!1===(e=_(C)))return!1}else{var E=A.indexOf("/"),x=-1===E?A:A.substring(0,E),N=x.indexOf("@");if(-1!==N){var I=x.substring(0,N);if(/^[a-zA-Z0-9\-_.%:]*$/.test(I)){if(t.require_protocol)return!1}else if(!1===(e=_(C)))return!1}else{if(/^[0-9]/.test(A)){if(t.require_protocol)return!1}else if(!1===(e=_(C)))return!1}}}else if(t.require_protocol)return!1;if("//"===e.slice(0,2)){if(!v&&!t.allow_protocol_relative_urls)return!1;e=e.slice(2)}if(""===e)return!1;if(b=e.split("/"),""===(e=b.shift())&&!t.require_host)return!0;if((b=e.split("@")).length>1){if(t.disallow_auth)return!1;if(""===b[0])return!1;if((u=b.shift()).indexOf(":")>=0&&u.split(":").length>2)return!1;var T=u.split(":"),D=(F=2,function(e){if(Array.isArray(e))return e}(R=T)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,s=[],c=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}(R,F)||function(e,t){if(e){if("string"==typeof e)return l(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?l(e,t):void 0}}(R,F)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()),O=D[0],M=D[1];if(""===O&&""===M)return!1}var R,F;h=b.join("@"),g=null,y=null;var P=h.match(f);P?(p="",y=P[1],g=P[2]||null):(p=(b=h.split(":")).shift(),b.length&&(g=b.join(":")));if(null!==g&&g.length>0){if(m=parseInt(g,10),!/^[0-9]+$/.test(g)||m<=0||m>65535)return!1}else if(t.require_port)return!1;if(t.host_whitelist)return(0,i.default)(p,t.host_whitelist);if(""===p&&!t.require_host)return!0;if(!((0,s.default)(p)||(0,o.default)(p,t)||y&&(0,s.default)(y,6)))return!1;if(p=p||y,t.host_blacklist&&(0,i.default)(p,t.host_blacklist))return!1;return!0};var n=u(r(83399)),i=u(r(81572)),a=u(r(94636)),o=u(r(57658)),s=u(r(35372)),c=u(r(93610));function u(e){return e&&e.__esModule?e:{default:e}}function l(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectPatternPropertiesTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(23615),d=r(32504),f=r(25120);let p=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&l.NodeGuards.isPropertyNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){if(!l.NodeGuards.isObjectPatternNode(t)||!e.shorthand)return e;if(!this.options.renameGlobals){const t=d.NodeLexicalScopeUtils.getLexicalScope(e);if(!!t&&l.NodeGuards.isProgramNode(t))return e}return e.shorthand=!1,e.value=f.NodeUtils.clone(e.value),f.NodeUtils.parentizeNode(e.value,e),e}};t.ObjectPatternPropertiesTransformer=p,t.ObjectPatternPropertiesTransformer=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],p)},78166:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.VisitorDirection=void 0,function(e){e.Enter="enter",e.Leave="leave"}(r||(t.VisitorDirection=r={}))},78297:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LOW_OBFUSCATION_PRESET=void 0;const n=r(94838),i=r(11839);t.LOW_OBFUSCATION_PRESET=Object.freeze({...i.DEFAULT_PRESET,disableConsoleOutput:!0,optionsPreset:n.OptionsPreset.LowObfuscation,stringArrayRotate:!0,selfDefending:!0,simplify:!0,stringArrayCallsTransform:!1,stringArrayCallsTransformThreshold:0,stringArrayShuffle:!0})},78644:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e,t){return e.some(function(e){return t===e})};e.exports=t.default,e.exports.default=t.default},79011:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CustomCodeHelper=void 0,function(e){e.CallsControllerFunction="CallsControllerFunction",e.ConsoleOutputDisable="ConsoleOutputDisable",e.DebugProtectionFunctionCall="DebugProtectionFunctionCall",e.DebugProtectionFunctionInterval="DebugProtectionFunctionInterval",e.DebugProtectionFunction="DebugProtectionFunction",e.DomainLock="DomainLock",e.SelfDefending="SelfDefending",e.StringArray="StringArray",e.StringArrayCallsWrapper="StringArrayCallsWrapper",e.StringArrayCallsWrapperBase64="StringArrayCallsWrapperBase64",e.StringArrayCallsWrapperRc4="StringArrayCallsWrapperRc4",e.StringArrayRotateFunction="StringArrayRotateFunction"}(r||(t.CustomCodeHelper=r={}))},79049:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{const a=d.Utils.getIdentifiersPrefixForMultipleSources(t.identifiersPrefix,i),o=e[n],s={...t,identifiersPrefix:a};return{...r,[n]:f.obfuscate(o,s)}},{})}static getOptionsByPreset(e){return l.Options.getOptionsByPreset(e)}static async obfuscatePro(e,t,n,i){if("undefined"!=typeof window){const{ApiError:e}=await Promise.resolve().then(()=>s(r(10955)));throw new e("obfuscatePro is only available in Node.js environment",500)}const{ProApiClient:a}=await Promise.resolve().then(()=>s(r(30607)));return new a(n).obfuscate(e,t,i)}}t.JavaScriptObfuscator=f,f.version=null!==(i="5.3.0")?i:"unknown";var p=r(10955);Object.defineProperty(t,"ApiError",{enumerable:!0,get:function(){return p.ApiError}})},79380:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCalleeDataExtractor=void 0;const i=r(71519);let a=class{};t.AbstractCalleeDataExtractor=a,t.AbstractCalleeDataExtractor=a=n([(0,i.injectable)()],a)},79412:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.CodeTransformationStage=void 0,function(e){e.PreparingTransformers="PreparingTransformers",e.FinalizingTransformers="FinalizingTransformers"}(r||(t.CodeTransformationStage=r={}))},79820:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SingleCallControllerTemplate=function(){return"\n const {callControllerFunctionName} = (function(){\n let firstCall = true;\n \n return function (context, fn){\n const rfn = firstCall ? function(){\n if(fn){\n const res = fn.apply(context, arguments);\n fn = null;\n return res;\n }\n } : function(){}\n \n firstCall = false;\n \n return rfn;\n }\n })();\n "}},79883:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractStringArrayIndexNode=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t){this.randomGenerator=e,this.options=t}};t.AbstractStringArrayIndexNode=c,t.AbstractStringArrayIndexNode=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],c)},79925:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.injectable=function(){return function(e){if(Reflect.hasOwnMetadata(s.PARAM_TYPES,e))throw new Error(o.DUPLICATED_INJECTABLE_DECORATOR);var t=Reflect.getMetadata(s.DESIGN_PARAM_TYPES,e)||[];return Reflect.defineMetadata(s.PARAM_TYPES,t,e),e}};var o=a(r(95507)),s=a(r(2006))},80231:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowReplacer=void 0,function(e){e.BinaryExpressionControlFlowReplacer="BinaryExpressionControlFlowReplacer",e.CallExpressionControlFlowReplacer="CallExpressionControlFlowReplacer",e.LogicalExpressionControlFlowReplacer="LogicalExpressionControlFlowReplacer",e.StringArrayCallControlFlowReplacer="StringArrayCallControlFlowReplacer",e.StringLiteralControlFlowReplacer="StringLiteralControlFlowReplacer"}(r||(t.ControlFlowReplacer=r={}))},80391:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.TemplateLiteralTransformer=void 0;const s=r(71519),c=r(32287),u=r(18436),l=r(76893),d=r(91363),f=r(23615),p=r(25120);let h=n=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t)}static isLiteralNodeWithStringValue(e){return!!e&&f.NodeGuards.isLiteralNode(e)&&"string"==typeof e.value}getVisitor(e){return e===u.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&f.NodeGuards.isTemplateLiteralNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){return f.NodeGuards.isTaggedTemplateExpressionNode(t)?e:this.transformTemplateLiteralNode(e,t)}transformTemplateLiteralNode(e,t){const r=e.expressions,i=[],a=e.quasis,o=a.length;for(let e=0;e!(f.NodeGuards.isLiteralNode(e)&&""===e.value));let c;if(n.isLiteralNodeWithStringValue(s[0])||n.isLiteralNodeWithStringValue(s[1])||s.unshift(d.NodeFactory.literalNode("")),s.length>1){let e=d.NodeFactory.binaryExpressionNode("+",s[0],s[1]);const t=s.length;for(let r=2;r{var n=r(90251),i=Object.prototype.hasOwnProperty,a="undefined"!=typeof Map;function o(){this._array=[],this._set=a?new Map:Object.create(null)}o.fromArray=function(e,t){for(var r=new o,n=0,i=e.length;n=0)return t}else{var r=n.toSetString(e);if(i.call(this._set,r))return this._set[r]}throw new Error('"'+e+'" is not in the set.')},o.prototype.at=function(e){if(e>=0&&e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LegacyTargetImpl=void 0;const n=r(5265),i=r(77426),a=r(86277),o=r(83313),s=r(36338),c=r(41129),u=r(66757);t.LegacyTargetImpl=class{#t;#r;#n;#i;#a;#o;constructor(e,t,r){this.#r=(0,u.getTargetId)(),this.#n=e,this.#i=void 0,this.#t=t,this.#a=new s.LegacyQueryableStringImpl("string"==typeof e?e:(0,c.getDescription)(e)),this.#o=r}get id(){return this.#r}get identifier(){return this.#n}get metadata(){return void 0===this.#i&&(this.#i=(0,i.getLegacyMetadata)(this.#t)),this.#i}get name(){return this.#a}get type(){return this.#o}get serviceIdentifier(){return n.LazyServiceIdentifier.is(this.#t.value)?this.#t.value.unwrap():this.#t.value}getCustomTags(){return[...this.#t.tags.entries()].map(([e,t])=>({key:e,value:t}))}getNamedTag(){return void 0===this.#t.name?null:{key:o.NAMED_TAG,value:this.#t.name}}hasTag(e){return this.metadata.some(t=>t.key===e)}isArray(){return this.#t.kind===a.ClassElementMetadataKind.multipleInjection}isNamed(){return void 0!==this.#t.name}isOptional(){return this.#t.optional}isTagged(){return this.#t.tags.size>0}matchesArray(e){return this.isArray()&&this.#t.value===e}matchesNamedTag(e){return this.#t.name===e}matchesTag(e){return t=>this.metadata.some(r=>r.key===e&&r.value===t)}}},81128:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t=(0,i.default)(t,a);var r=e.split("@"),n=r.pop(),d=[r.join("@"),n];if(d[1]=d[1].toLowerCase(),"gmail.com"===d[1]||"googlemail.com"===d[1]){if(t.gmail_remove_subaddress&&(d[0]=d[0].split("+")[0]),t.gmail_remove_dots&&(d[0]=d[0].replace(/\.+/g,l)),!d[0].length)return!1;(t.all_lowercase||t.gmail_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]=t.gmail_convert_googlemaildotcom?"gmail.com":d[1]}else if(o.indexOf(d[1])>=0){if(t.icloud_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.icloud_lowercase)&&(d[0]=d[0].toLowerCase())}else if(s.indexOf(d[1])>=0){if(t.outlookdotcom_remove_subaddress&&(d[0]=d[0].split("+")[0]),!d[0].length)return!1;(t.all_lowercase||t.outlookdotcom_lowercase)&&(d[0]=d[0].toLowerCase())}else if(c.indexOf(d[1])>=0){if(t.yahoo_remove_subaddress){var f=d[0].split("-");d[0]=f.length>1?f.slice(0,-1).join("-"):f[0]}if(!d[0].length)return!1;(t.all_lowercase||t.yahoo_lowercase)&&(d[0]=d[0].toLowerCase())}else u.indexOf(d[1])>=0?((t.all_lowercase||t.yandex_lowercase)&&(d[0]=d[0].toLowerCase()),d[1]=t.yandex_convert_yandexru?"yandex.ru":d[1]):t.all_lowercase&&(d[0]=d[0].toLowerCase());return d.join("@")};var n,i=(n=r(93610))&&n.__esModule?n:{default:n};var a={all_lowercase:!0,gmail_lowercase:!0,gmail_remove_dots:!0,gmail_remove_subaddress:!0,gmail_convert_googlemaildotcom:!0,outlookdotcom_lowercase:!0,outlookdotcom_remove_subaddress:!0,yahoo_lowercase:!0,yahoo_remove_subaddress:!0,yandex_lowercase:!0,yandex_convert_yandexru:!0,icloud_lowercase:!0,icloud_remove_subaddress:!0},o=["icloud.com","me.com"],s=["hotmail.at","hotmail.be","hotmail.ca","hotmail.cl","hotmail.co.il","hotmail.co.nz","hotmail.co.th","hotmail.co.uk","hotmail.com","hotmail.com.ar","hotmail.com.au","hotmail.com.br","hotmail.com.gr","hotmail.com.mx","hotmail.com.pe","hotmail.com.tr","hotmail.com.vn","hotmail.cz","hotmail.de","hotmail.dk","hotmail.es","hotmail.fr","hotmail.hu","hotmail.id","hotmail.ie","hotmail.in","hotmail.it","hotmail.jp","hotmail.kr","hotmail.lv","hotmail.my","hotmail.ph","hotmail.pt","hotmail.sa","hotmail.sg","hotmail.sk","live.be","live.co.uk","live.com","live.com.ar","live.com.mx","live.de","live.es","live.eu","live.fr","live.it","live.nl","msn.com","outlook.at","outlook.be","outlook.cl","outlook.co.il","outlook.co.nz","outlook.co.th","outlook.com","outlook.com.ar","outlook.com.au","outlook.com.br","outlook.com.gr","outlook.com.pe","outlook.com.tr","outlook.com.vn","outlook.cz","outlook.de","outlook.dk","outlook.es","outlook.fr","outlook.hu","outlook.id","outlook.ie","outlook.in","outlook.it","outlook.jp","outlook.kr","outlook.lv","outlook.my","outlook.ph","outlook.pt","outlook.sa","outlook.sg","outlook.sk","passport.com"],c=["rocketmail.com","yahoo.ca","yahoo.co.uk","yahoo.com","yahoo.de","yahoo.fr","yahoo.in","yahoo.it","ymail.com"],u=["yandex.ru","yandex.ua","yandex.kz","yandex.com","yandex.by","ya.ru"];function l(e){return e.length>1?e:""}e.exports=t.default,e.exports.default=t.default},81394:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowReplacer=void 0;const o=r(71519),s=r(32287),c=r(96747),u=r(94914),l=r(23615);let d=class extends u.AbstractControlFlowReplacer{constructor(e,t,r,n){super(e,t,r,n)}getControlFlowStorageCallNode(e,t,r,n){const i=this.controlFlowCustomNodeFactory(c.ControlFlowCustomNode.ExpressionWithOperatorControlFlowStorageCallNode);i.initialize(e,t,r,n);const a=i.getNode()[0];if(!a||!l.NodeGuards.isExpressionStatementNode(a))throw new Error("`controlFlowStorageCallCustomNode.getNode()[0]` should returns array with `ExpressionStatement` node");return a.expression}};t.ExpressionWithOperatorControlFlowReplacer=d,t.ExpressionWithOperatorControlFlowReplacer=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IControlFlowCustomNode)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object])],d)},81568:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeType=void 0,function(e){e.ArrayExpression="ArrayExpression",e.ArrayPattern="ArrayPattern",e.ArrowFunctionExpression="ArrowFunctionExpression",e.AssignmentExpression="AssignmentExpression",e.AssignmentPattern="AssignmentPattern",e.AwaitExpression="AwaitExpression",e.BinaryExpression="BinaryExpression",e.BlockStatement="BlockStatement",e.BreakStatement="BreakStatement",e.CallExpression="CallExpression",e.CatchClause="CatchClause",e.ChainExpression="ChainExpression",e.ClassBody="ClassBody",e.ClassDeclaration="ClassDeclaration",e.ConditionalExpression="ConditionalExpression",e.ContinueStatement="ContinueStatement",e.DoWhileStatement="DoWhileStatement",e.ExportAllDeclaration="ExportAllDeclaration",e.ExportNamedDeclaration="ExportNamedDeclaration",e.ExportSpecifier="ExportSpecifier",e.ExpressionStatement="ExpressionStatement",e.ForStatement="ForStatement",e.ForInStatement="ForInStatement",e.ForOfStatement="ForOfStatement",e.FunctionDeclaration="FunctionDeclaration",e.FunctionExpression="FunctionExpression",e.Identifier="Identifier",e.IfStatement="IfStatement",e.ImportDeclaration="ImportDeclaration",e.ImportExpression="ImportExpression",e.ImportDefaultSpecifier="ImportDefaultSpecifier",e.ImportNamespaceSpecifier="ImportNamespaceSpecifier",e.ImportSpecifier="ImportSpecifier",e.LabeledStatement="LabeledStatement",e.Literal="Literal",e.LogicalExpression="LogicalExpression",e.MemberExpression="MemberExpression",e.MetaProperty="MetaProperty",e.MethodDefinition="MethodDefinition",e.NewExpression="NewExpression",e.ObjectExpression="ObjectExpression",e.ObjectPattern="ObjectPattern",e.PrivateIdentifier="PrivateIdentifier",e.Program="Program",e.Property="Property",e.PropertyDefinition="PropertyDefinition",e.RestElement="RestElement",e.ReturnStatement="ReturnStatement",e.SequenceExpression="SequenceExpression",e.SpreadElement="SpreadElement",e.StaticBlock="StaticBlock",e.Super="Super",e.SwitchCase="SwitchCase",e.SwitchStatement="SwitchStatement",e.TaggedTemplateExpression="TaggedTemplateExpression",e.TemplateElement="TemplateElement",e.TemplateLiteral="TemplateLiteral",e.ThisExpression="ThisExpression",e.ThrowStatement="ThrowStatement",e.TryStatement="TryStatement",e.UnaryExpression="UnaryExpression",e.UpdateExpression="UpdateExpression",e.VariableDeclaration="VariableDeclaration",e.VariableDeclarator="VariableDeclarator",e.WithStatement="WithStatement",e.WhileStatement="WhileStatement",e.YieldExpression="YieldExpression"}(r||(t.NodeType=r={}))},81572:(e,t)=>{"use strict";function r(e){return"[object RegExp]"===Object.prototype.toString.call(e)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){for(var n=0;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^(0x|0h)?[0-9A-F]+$/i;e.exports=t.default,e.exports.default=t.default},82151:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.LazyServiceIdentifier=t.islazyServiceIdentifierSymbol=void 0,t.islazyServiceIdentifierSymbol=Symbol.for("@inversifyjs/common/islazyServiceIdentifier");class r{[t.islazyServiceIdentifierSymbol];#s;constructor(e){this.#s=e,this[t.islazyServiceIdentifierSymbol]=!0}static is(e){return"object"==typeof e&&null!==e&&!0===e[t.islazyServiceIdentifierSymbol]}unwrap(){return this.#s()}}t.LazyServiceIdentifier=r},83142:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebuggerTemplate=function(){return"\n if (typeof counter === 'string') {\n return (function (arg) {}.constructor('while (true) {}').apply('counter'));\n } else {\n if (('' + counter / counter)['length'] !== 1 || counter % 20 === 0) {\n (function () {return true;}.constructor('debu' + 'gger').call('action'));\n } else {\n (function () {return false;}.constructor('debu' + 'gger').apply('stateObject'));\n }\n \n }\n "}},83209:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.LiteralNodesCacheStorage=void 0;const o=r(71519),s=r(32287),c=r(70885),u=r(11440);let l=class extends u.MapStorage{constructor(e,t){super(e,t)}buildKey(e,t){return`${e}-${Boolean(t)}`}shouldUseCachedValue(e,t){return!this.options.stringArrayWrappersCount&&(null==t?void 0:t.encoding)!==c.StringArrayEncoding.Rc4&&this.storage.has(e)}};t.LiteralNodesCacheStorage=l,t.LiteralNodesCacheStorage=l=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],l)},83313:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NON_CUSTOM_TAG_KEYS=t.PRE_DESTROY=t.POST_CONSTRUCT=t.DESIGN_PARAM_TYPES=t.PARAM_TYPES=t.TAGGED_PROP=t.TAGGED=t.MULTI_INJECT_TAG=t.INJECT_TAG=t.OPTIONAL_TAG=t.UNMANAGED_TAG=t.NAME_TAG=t.NAMED_TAG=void 0,t.NAMED_TAG="named",t.NAME_TAG="name",t.UNMANAGED_TAG="unmanaged",t.OPTIONAL_TAG="optional",t.INJECT_TAG="inject",t.MULTI_INJECT_TAG="multi_inject",t.TAGGED="inversify:tagged",t.TAGGED_PROP="inversify:tagged_props",t.PARAM_TYPES="inversify:paramtypes",t.DESIGN_PARAM_TYPES="design:paramtypes",t.POST_CONSTRUCT="post_construct",t.PRE_DESTROY="pre_destroy",t.NON_CUSTOM_TAG_KEYS=[t.INJECT_TAG,t.MULTI_INJECT_TAG,t.NAME_TAG,t.UNMANAGED_TAG,t.NAMED_TAG,t.OPTIONAL_TAG]},83399:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if(null==e)throw new TypeError("Expected a string but received a ".concat(e));if("String"!==e.constructor.name)throw new TypeError("Expected a string but received a ".concat(e.constructor.name))},e.exports=t.default,e.exports.default=t.default},83404:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionCallTemplate=function(){return"\n (function () {\n {callControllerFunctionName}(\n this,\n function () {\n const regExp1 = new RegExp('function *\\\\( *\\\\)');\n const regExp2 = new RegExp('\\\\+\\\\+ *\\(?:[a-zA-Z_$][0-9a-zA-Z_$]*\\)', 'i');\n \n const result = {debugProtectionFunctionName}('init');\n \n if (!regExp1.test(result + 'chain') || !regExp2.test(result + 'input')) {\n result('0');\n } else {\n {debugProtectionFunctionName}();\n }\n }\n )();\n })();\n "}},83503:(e,t,r)=>{var n,i,a,o,s;n=r(3939),i=r(92151).utf8,a=r(20652),o=r(92151).bin,(s=function(e,t){e.constructor==String?e=t&&"binary"===t.encoding?o.stringToBytes(e):i.stringToBytes(e):a(e)?e=Array.prototype.slice.call(e,0):Array.isArray(e)||e.constructor===Uint8Array||(e=e.toString());for(var r=n.bytesToWords(e),c=8*e.length,u=1732584193,l=-271733879,d=-1732584194,f=271733878,p=0;p>>24)|4278255360&(r[p]<<24|r[p]>>>8);r[c>>>5]|=128<>>9<<4)]=c;var h=s._ff,m=s._gg,g=s._hh,b=s._ii;for(p=0;p>>0,l=l+S>>>0,d=d+v>>>0,f=f+_>>>0}return n.endian([u,l,d,f])})._ff=function(e,t,r,n,i,a,o){var s=e+(t&r|~t&n)+(i>>>0)+o;return(s<>>32-a)+t},s._gg=function(e,t,r,n,i,a,o){var s=e+(t&n|r&~n)+(i>>>0)+o;return(s<>>32-a)+t},s._hh=function(e,t,r,n,i,a,o){var s=e+(t^r^n)+(i>>>0)+o;return(s<>>32-a)+t},s._ii=function(e,t,r,n,i,a,o){var s=e+(r^(t|~n))+(i>>>0)+o;return(s<>>32-a)+t},s._blocksize=16,s._digestsize=16,e.exports=function(e,t){if(null==e)throw new Error("Illegal argument "+e);var r=n.wordsToBytes(s(e,t));return t&&t.asBytes?r:t&&t.asString?o.bytesToString(r):n.bytesToHex(r)}},83595:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{let t;return t=g.NodeGuards.isUnaryExpressionNode(e)?b.NodeUtils.getUnaryExpressionArgumentNode(e):e,!(g.NodeGuards.isLiteralNode(t)||g.NodeGuards.isIdentifierNode(t)||g.NodeGuards.isObjectExpressionNode(t)||g.NodeGuards.isExpressionStatementNode(t))})}expressionContainsProhibitedNodes(e){let t=!1;return p.traverse(e,{enter:e=>g.NodeGuards.isMemberExpressionNode(e)&&e.computed||g.NodeGuards.isCallExpressionNode(e)?(t=!0,p.VisitorOption.Break):void 0}),t}};t.LogicalExpressionControlFlowReplacer=y,y.usingExistingIdentifierChance=.5,t.LogicalExpressionControlFlowReplacer=y=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.Factory__IControlFlowCustomNode)),l(1,(0,d.inject)(f.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),l(2,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(3,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Function,Object,Object])],y)},83682:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},s=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{if(t&&S.NodeGuards.isFunctionNode(e))return this.transformNode(e,t)}}:null}transformFunctionBodyNode(e,t,r,n){return S.NodeGuards.isVariableDeclarationNode(e)&&this.controlFlowStorageNodes.has(e)?f.VisitorOption.Skip:super.transformFunctionBodyNode(e,t,r,n)}getControlFlowStorage(e){return this.controlFlowStorageFactory()}appendControlFlowStorageNode(e,t){super.appendControlFlowStorageNode(e,t),this.controlFlowStorageNodes.add(t)}isAllowedTransformationByThreshold(){return this.randomGenerator.getMathRandom()<=this.options.stringArrayCallsTransformThreshold}};t.StringArrayControlFlowTransformer=v,t.StringArrayControlFlowTransformer=v=o([(0,l.injectable)(),u(0,(0,l.inject)(d.ServiceIdentifiers.Factory__TControlFlowStorage)),u(1,(0,l.inject)(d.ServiceIdentifiers.Factory__IControlFlowReplacer)),u(2,(0,l.inject)(d.ServiceIdentifiers.Factory__IControlFlowCustomNode)),u(3,(0,l.inject)(d.ServiceIdentifiers.IRandomGenerator)),u(4,(0,l.inject)(d.ServiceIdentifiers.IOptions)),c("design:paramtypes",[Function,Function,Function,Object,Object])],v)},83747:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.Request=void 0;var n=r(38615),i=function(){function e(e,t,r,i,a){this.id=(0,n.id)(),this.serviceIdentifier=e,this.parentContext=t,this.parentRequest=r,this.target=a,this.childRequests=[],this.bindings=Array.isArray(i)?i:[i],this.requestScope=null===r?new Map:null}return e.prototype.addChildRequest=function(t,r,n){var i=new e(t,this.parentContext,this,r,n);return this.childRequests.push(i),i},e}();t.Request=i},83921:(e,t,r)=>{!function(){"use strict";var t=r(67989);function n(e,t){return!(!t&&"yield"===e)&&i(e,t)}function i(e,t){if(t&&function(e){switch(e){case"implements":case"interface":case"package":case"private":case"protected":case"public":case"static":case"let":return!0;default:return!1}}(e))return!0;switch(e.length){case 2:return"if"===e||"in"===e||"do"===e;case 3:return"var"===e||"for"===e||"new"===e||"try"===e;case 4:return"this"===e||"else"===e||"case"===e||"void"===e||"with"===e||"enum"===e;case 5:return"while"===e||"break"===e||"catch"===e||"throw"===e||"const"===e||"yield"===e||"class"===e||"super"===e;case 6:return"return"===e||"typeof"===e||"delete"===e||"switch"===e||"export"===e||"import"===e;case 7:return"default"===e||"finally"===e||"extends"===e;case 8:return"function"===e||"continue"===e||"debugger"===e;case 10:return"instanceof"===e;default:return!1}}function a(e,t){return"null"===e||"true"===e||"false"===e||n(e,t)}function o(e,t){return"null"===e||"true"===e||"false"===e||i(e,t)}function s(e){var r,n,i;if(0===e.length)return!1;if(i=e.charCodeAt(0),!t.isIdentifierStartES5(i))return!1;for(r=1,n=e.length;r=n)return!1;if(!(56320<=(a=e.charCodeAt(r))&&a<=57343))return!1;i=c(i,a)}if(!o(i))return!1;o=t.isIdentifierPartES6}return!0}e.exports={isKeywordES5:n,isKeywordES6:i,isReservedWordES5:a,isReservedWordES6:o,isRestrictedWord:function(e){return"eval"===e||"arguments"===e},isIdentifierNameES5:s,isIdentifierNameES6:u,isIdentifierES5:function(e,t){return s(e)&&!a(e,t)},isIdentifierES6:function(e,t){return u(e)&&!o(e,t)}}}()},83951:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(v.NodeGuards.isIdentifierNode(e)&&e.name===o)return s=!0,p.VisitorOption.Break}}),s}static isValidCollectedBlockStatementNode(e){if(!e.body.length)return!1;let t=0,r=!0;return p.traverse(e,{enter:e=>{if(v.NodeGuards.isBlockStatementNode(e)&&t++,t>i.maxNestedBlockStatementsCount||i.isProhibitedNodeInsideCollectedBlockStatement(e)||i.isScopeHoistingFunctionDeclaration(e))return r=!1,p.VisitorOption.Break}}),r}static isValidWrappedBlockStatementNode(e,t){if(_.NodeMetadata.isEvalHostNode(t))return!1;if(!e.body.length)return!1;let r=!0;if(p.traverse(e,{enter:e=>{if(i.isScopeHoistingFunctionDeclaration(e))return r=!1,p.VisitorOption.Break}}),!r)return!1;return C.NodeStatementUtils.getParentNodeWithStatements(e).type!==g.NodeType.Program}getVisitor(e){switch(e){case b.NodeTransformationStage.DeadCodeInjection:return{enter:(e,t)=>{if(t&&v.NodeGuards.isProgramNode(e))return this.prepareNode(e,t),e},leave:(e,t)=>{if(t&&v.NodeGuards.isBlockStatementNode(e))return this.transformNode(e,t)}};case b.NodeTransformationStage.StringArray:return{enter:(e,t)=>{if(t&&this.isDeadCodeInjectionRootAstHostNode(e))return this.restoreNode(e,t)}};default:return null}}prepareNode(e,t){p.traverse(e,{enter:e=>{if(!v.NodeGuards.isBlockStatementNode(e))return;const t=A.NodeUtils.clone(e);if(!i.isValidCollectedBlockStatementNode(t))return;const r=this.makeClonedBlockStatementNodeUnique(t);this.collectedBlockStatements.push(r)}}),this.collectedBlockStatementsTotalLength=this.collectedBlockStatements.length}transformNode(e,t){if(!this.collectedBlockStatements.length||this.collectedBlockStatementsTotalLengththis.options.deadCodeInjectionThreshold||!i.isValidWrappedBlockStatementNode(e,t))return e;const r=this.collectedBlockStatements.length-1,n=this.randomGenerator.getRandomInteger(0,r),a=this.collectedBlockStatements.splice(n,1)[0];return a===e?e:this.replaceBlockStatementNode(e,a,t)}restoreNode(e,t){const r=e.body[0];if(!v.NodeGuards.isFunctionDeclarationNode(r))throw new Error("Wrong dead code injection root AST host node. Host node should contain `FunctionDeclaration` node");return r.body}isDeadCodeInjectionRootAstHostNode(e){const t=v.NodeGuards.isBlockStatementNode(e)&&this.deadCodeInjectionRootAstHostNodeSet.has(e);return t&&this.deadCodeInjectionRootAstHostNodeSet.delete(e),t}makeClonedBlockStatementNodeUnique(e){const t=S.NodeFactory.programNode([S.NodeFactory.expressionStatementNode(S.NodeFactory.functionExpressionNode([],e))]);return A.NodeUtils.parentizeAst(t),A.NodeUtils.parentizeNode(t,t),this.transformersRunner.transform(t,i.transformersToRenameBlockScopeIdentifiers,b.NodeTransformationStage.RenameIdentifiers),e}replaceBlockStatementNode(e,t,r){const n=S.NodeFactory.blockStatementNode([S.NodeFactory.functionDeclarationNode(i.deadCodeInjectionRootAstHostNodeName,[],t)]);this.deadCodeInjectionRootAstHostNodeSet.add(n);const a=this.deadCodeInjectionCustomNodeFactory(h.DeadCodeInjectionCustomNode.BlockStatementDeadCodeInjectionNode);a.initialize(e,n);const o=a.getNode()[0];return A.NodeUtils.parentizeNode(o,r),o}};t.DeadCodeInjectionTransformer=E,E.deadCodeInjectionRootAstHostNodeName="deadCodeInjectionRootAstHostNode",E.maxNestedBlockStatementsCount=4,E.minCollectedBlockStatementsCount=5,E.transformersToRenameBlockScopeIdentifiers=[m.NodeTransformer.DeadCodeInjectionIdentifiersTransformer,m.NodeTransformer.LabeledStatementTransformer,m.NodeTransformer.ScopeIdentifiersTransformer],t.DeadCodeInjectionTransformer=E=i=s([(0,d.injectable)(),l(0,(0,d.inject)(f.ServiceIdentifiers.Factory__IDeadCodeInjectionCustomNode)),l(1,(0,d.inject)(f.ServiceIdentifiers.INodeTransformersRunner)),l(2,(0,d.inject)(f.ServiceIdentifiers.IRandomGenerator)),l(3,(0,d.inject)(f.ServiceIdentifiers.IOptions)),u("design:paramtypes",[Function,Object,Object,Object])],E)},84392:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayCallNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(35126),l=r(91363),d=r(25120);let f=class extends u.AbstractStringArrayCallNode{constructor(e,t,r,n,i,a,o){super(e,t,r,n,i,a,o)}initialize(e,t,r,n){this.index=e,this.indexShiftAmount=t,this.stringArrayCallsWrapperData=r,this.decodeKey=n}getNodeStructure(){var e,t;const r=this.indexShiftAmount+this.stringArrayCallsWrapperData.index+this.index,n=this.getStringArrayIndexNode(r),i=this.decodeKey?this.getRc4KeyLiteralNode(this.decodeKey):null,a=this.arrayUtils.fillWithRange(this.stringArrayCallsWrapperData.parameterIndexesData?this.options.stringArrayWrappersParametersMaxCount:u.AbstractStringArrayCallNode.stringArrayRootCallsWrapperParametersCount,()=>this.getFakeStringArrayIndexNode(r));a.splice(null!==(t=null===(e=this.stringArrayCallsWrapperData.parameterIndexesData)||void 0===e?void 0:e.valueIndexParameterIndex)&&void 0!==t?t:0,1,n),this.stringArrayCallsWrapperData.parameterIndexesData?a.splice(this.stringArrayCallsWrapperData.parameterIndexesData.decodeKeyParameterIndex,1,null!=i?i:this.getFakeStringArrayIndexNode(r)):i?a.splice(1,1,i):a.splice(1,1);const o=l.NodeFactory.expressionStatementNode(l.NodeFactory.callExpressionNode(l.NodeFactory.identifierNode(this.stringArrayCallsWrapperData.name),a));return d.NodeUtils.parentizeAst(o),[o]}getFakeStringArrayIndexNode(e){return this.getStringArrayIndexNode(this.getFakeStringArrayIndex(e))}getFakeStringArrayIndex(e){const t=this.stringArrayStorage.getLength()/2,r=e-t,n=e+t;return this.randomGenerator.getRandomInteger(r,n)}};t.StringArrayCallNode=f,n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"decodeKey",void 0),n([(0,c.initializable)(),i("design:type",Number)],f.prototype,"index",void 0),n([(0,c.initializable)(),i("design:type",Number)],f.prototype,"indexShiftAmount",void 0),n([(0,c.initializable)(),i("design:type",Object)],f.prototype,"stringArrayCallsWrapperData",void 0),t.StringArrayCallNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.Factory__IStringArrayIndexNode)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(3,(0,o.inject)(s.ServiceIdentifiers.IStringArrayStorage)),a(4,(0,o.inject)(s.ServiceIdentifiers.IArrayUtils)),a(5,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(6,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Function,Object,Object,Object,Object,Object])],f)},85032:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscatingGuard=void 0,function(e){e.BlackListObfuscatingGuard="BlackListObfuscatingGuard",e.ConditionalCommentObfuscatingGuard="ConditionalCommentObfuscatingGuard",e.ForceTransformStringObfuscatingGuard="ForceTransformStringObfuscatingGuard",e.IgnoredImportObfuscatingGuard="IgnoredImportObfuscatingGuard",e.ImportMetaObfuscationGuard="ImportMetaObfuscationGuard",e.ProcessEnvObfuscationGuard="ProcessEnvObfuscationGuard",e.ReservedStringObfuscatingGuard="ReservedStringObfuscatingGuard"}(r||(t.ObfuscatingGuard=r={}))},85088:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObfuscationResult=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(54042);let l=class{constructor(e,t,r,n){this.cryptUtils=e,this.globalIdentifierNamesCacheStorage=t,this.propertyIdentifierNamesCacheStorage=r,this.options=n}initialize(e,t){this.obfuscatedCode=e,this.sourceMap=t}getIdentifierNamesCache(){return this.options.identifierNamesCache?{globalIdentifiers:this.globalIdentifierNamesCacheStorage.getStorageAsDictionary(),propertyIdentifiers:this.propertyIdentifierNamesCacheStorage.getStorageAsDictionary()}:null}getObfuscatedCode(){return this.correctObfuscatedCode()}getOptions(){return this.options}getSourceMap(){return this.sourceMap}toString(){return this.obfuscatedCode}correctObfuscatedCode(){if(!this.sourceMap)return this.obfuscatedCode;const e=this.options.sourceMapBaseUrl+this.options.sourceMapFileName;let t="//# sourceMappingURL=";switch(this.options.sourceMapMode){case u.SourceMapMode.Inline:t+=`data:application/json;base64,${this.cryptUtils.btoa(this.sourceMap)}`;break;case u.SourceMapMode.Separate:default:if(!e)return this.obfuscatedCode;t+=e}return`${this.obfuscatedCode}\n${t}`}};t.ObfuscationResult=l,n([(0,c.initializable)(),i("design:type",String)],l.prototype,"obfuscatedCode",void 0),n([(0,c.initializable)(),i("design:type",String)],l.prototype,"sourceMap",void 0),t.ObfuscationResult=l=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.ICryptUtils)),a(1,(0,o.inject)(s.ServiceIdentifiers.IGlobalIdentifierNamesCacheStorage)),a(2,(0,o.inject)(s.ServiceIdentifiers.IPropertyIdentifierNamesCacheStorage)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object,Object,Object])],l)},85089:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate2=function(){return"\n const getGlobal = function () {\n let globalObject;\n \n try {\n globalObject = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');')();\n } catch (e) {\n globalObject = window;\n }\n \n return globalObject;\n };\n const that = getGlobal();\n "}},86184:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.PropertyIdentifierNamesCacheStorage=void 0;const o=r(71519),s=r(32287),c=r(11440);let u=class extends c.MapStorage{constructor(e,t){super(e,t)}initialize(){var e,t;super.initialize(),this.storage=new Map(Object.entries(null!==(t=null===(e=this.options.identifierNamesCache)||void 0===e?void 0:e.propertyIdentifiers)&&void 0!==t?t:{}))}};t.PropertyIdentifierNamesCacheStorage=u,n([(0,o.postConstruct)(),i("design:type",Function),i("design:paramtypes",[]),i("design:returntype",void 0)],u.prototype,"initialize",null),t.PropertyIdentifierNamesCacheStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},86249:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getClassMetadataConstructorArgumentsFromMetadataReader=function(e,t){const r=t.getConstructorMetadata(e),o=[];for(const[t,n]of Object.entries(r.userGeneratedMetadata)){const r=parseInt(t);o[r]=(0,a.getConstructorArgumentMetadataFromLegacyMetadata)(e,r,n)}if(void 0!==r.compilerGeneratedMetadata)for(let e=0;e{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ClassElementMetadataKind=void 0,function(e){e[e.multipleInjection=0]="multipleInjection",e[e.singleInjection=1]="singleInjection",e[e.unmanaged=2]="unmanaged"}(r||(t.ClassElementMetadataKind=r={}))},86416:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.GlobalVariableTemplate1=function(){return"\n let that;\n \n try {\n const getGlobal = Function('return (function() ' + '{}.constructor(\"return this\")( )' + ');');\n \n that = getGlobal();\n } catch (e) {\n that = window;\n }\n "}},87206:e=>{ +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +e.exports=function(e){return null!=e&&null!=e.constructor&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)}},87381:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.SelfDefendingCodeHelper=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(27418),l=r(88318),d=r(25120);let f=class extends l.AbstractCustomCodeHelper{constructor(e,t,r,n,i){super(e,t,r,n,i)}initialize(e,t){this.callsControllerFunctionName=e,this.selfDefendingFunctionName=t}getNodeStructure(e){return d.NodeUtils.convertCodeToStructure(e)}getCodeHelperTemplate(){return this.customCodeHelperFormatter.formatTemplate((0,u.SelfDefendingTemplate)(),{callControllerFunctionName:this.callsControllerFunctionName,selfDefendingFunctionName:this.selfDefendingFunctionName})}};t.SelfDefendingCodeHelper=f,n([(0,c.initializable)(),i("design:type",String)],f.prototype,"callsControllerFunctionName",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"selfDefendingFunctionName",void 0),t.SelfDefendingCodeHelper=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperObfuscator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(4,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object,Object])],f)},87415:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelperGroup=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t,r){this.identifierNamesGenerator=e(r),this.randomGenerator=t,this.options=r}getCustomCodeHelpers(){return this.customCodeHelpers}appendCustomNodeIfExist(e,t){const r=this.customCodeHelpers.get(e);r&&t(r)}getRandomCallsGraphIndex(e){return this.randomGenerator.getRandomInteger(0,Math.max(0,Math.round(e-1)))}};t.AbstractCustomCodeHelperGroup=c,t.AbstractCustomCodeHelperGroup=c=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(2,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object])],c)},87677:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),e.replace(/"/g,'"').replace(/'/g,"'").replace(/</g,"<").replace(/>/g,">").replace(///g,"/").replace(/\/g,"\\").replace(/`/g,"`").replace(/&/g,"&")};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},88262:(e,t,r)=>{"use strict";function n(){throw new Error("Not implemented")}function i(){throw new Error("Not implemented")}r.r(t),r.d(t,{createHmac:()=>n,timingSafeEqual:()=>i})},88308:(e,t,r)=>{var n,i=r(65606),a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,c=Object.prototype.hasOwnProperty,u={};function l(){if("undefined"!=typeof navigator&&"ReactNative"===navigator.product)return!0;if(void 0!==i){const e=i.type;return"renderer"!==e&&"worker"!==e&&!(!i.versions||!i.versions.node)}return!1}((e,t)=>{for(var r in t)a(e,r,{get:t[r],enumerable:!0})})(u,{isNodeProcess:()=>l}),e.exports=(n=u,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let i of s(t))c.call(e,i)||i===r||a(e,i,{get:()=>t[i],enumerable:!(n=o(t,i))||n.enumerable});return e})(a({},"__esModule",{value:!0}),n))},88318:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractCustomCodeHelper=void 0;const s=r(71519),c=r(32287),u=r(86416),l=r(85089),d=r(72167),f=r(44010),p=r(5502);let h=n=class{constructor(e,t,r,n,i){this.cachedNode=null,this.identifierNamesGenerator=e(i),this.customCodeHelperFormatter=t,this.customCodeHelperObfuscator=r,this.randomGenerator=n,this.options=i}getNode(){if(!this.cachedNode){const e=this.getCodeHelperTemplate();this.cachedNode=this.customCodeHelperFormatter.formatStructure(this.getNodeStructure(e))}return this.cachedNode}getGlobalVariableTemplate(){switch(this.options.target){case d.ObfuscationTarget.BrowserNoEval:return(0,f.GlobalVariableNoEvalTemplate)();case d.ObfuscationTarget.ServiceWorker:return(0,p.GlobalVariableServiceWorkerTemplate)();default:return this.randomGenerator.getRandomGenerator().pickone(n.globalVariableTemplateFunctions)}}getCodeHelperTemplate(){return""}};t.AbstractCustomCodeHelper=h,h.globalVariableTemplateFunctions=[(0,u.GlobalVariableTemplate1)(),(0,l.GlobalVariableTemplate2)()],t.AbstractCustomCodeHelper=h=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),o(1,(0,s.inject)(c.ServiceIdentifiers.ICustomCodeHelperFormatter)),o(2,(0,s.inject)(c.ServiceIdentifiers.ICustomCodeHelperObfuscator)),o(3,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),o(4,(0,s.inject)(c.ServiceIdentifiers.IOptions)),a("design:paramtypes",[Function,Object,Object,Object,Object])],h)},88342:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CurrencyCodes=void 0,t.default=function(e){return(0,i.default)(e),a.has(e.toUpperCase())};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=new Set(["AED","AFN","ALL","AMD","ANG","AOA","ARS","AUD","AWG","AZN","BAM","BBD","BDT","BGN","BHD","BIF","BMD","BND","BOB","BOV","BRL","BSD","BTN","BWP","BYN","BZD","CAD","CDF","CHE","CHF","CHW","CLF","CLP","CNY","COP","COU","CRC","CUP","CVE","CZK","DJF","DKK","DOP","DZD","EGP","ERN","ETB","EUR","FJD","FKP","GBP","GEL","GHS","GIP","GMD","GNF","GTQ","GYD","HKD","HNL","HTG","HUF","IDR","ILS","INR","IQD","IRR","ISK","JMD","JOD","JPY","KES","KGS","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LSL","LYD","MAD","MDL","MGA","MKD","MMK","MNT","MOP","MRU","MUR","MVR","MWK","MXN","MXV","MYR","MZN","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PAB","PEN","PGK","PHP","PKR","PLN","PYG","QAR","RON","RSD","RUB","RWF","SAR","SBD","SCR","SDG","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STN","SVC","SYP","SZL","THB","TJS","TMT","TND","TOP","TRY","TTD","TWD","TZS","UAH","UGX","USD","USN","UYI","UYU","UYW","UZS","VED","VES","VND","VUV","WST","XAF","XAG","XAU","XBA","XBB","XBC","XBD","XCD","XDR","XOF","XPD","XPF","XPT","XSU","XTS","XUA","XXX","YER","ZAR","ZMW","ZWL"]);t.CurrencyCodes=a},88447:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CountryCodes=void 0,t.default=function(e){return(0,i.default)(e),a.has(e.toUpperCase())};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=new Set(["AD","AE","AF","AG","AI","AL","AM","AO","AQ","AR","AS","AT","AU","AW","AX","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BL","BM","BN","BO","BQ","BR","BS","BT","BV","BW","BY","BZ","CA","CC","CD","CF","CG","CH","CI","CK","CL","CM","CN","CO","CR","CU","CV","CW","CX","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","EH","ER","ES","ET","FI","FJ","FK","FM","FO","FR","GA","GB","GD","GE","GF","GG","GH","GI","GL","GM","GN","GP","GQ","GR","GS","GT","GU","GW","GY","HK","HM","HN","HR","HT","HU","ID","IE","IL","IM","IN","IO","IQ","IR","IS","IT","JE","JM","JO","JP","KE","KG","KH","KI","KM","KN","KP","KR","KW","KY","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MF","MG","MH","MK","ML","MM","MN","MO","MP","MQ","MR","MS","MT","MU","MV","MW","MX","MY","MZ","NA","NC","NE","NF","NG","NI","NL","NO","NP","NR","NU","NZ","OM","PA","PE","PF","PG","PH","PK","PL","PM","PN","PR","PS","PT","PW","PY","QA","RE","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SH","SI","SJ","SK","SL","SM","SN","SO","SR","SS","ST","SV","SX","SY","SZ","TC","TD","TF","TG","TH","TJ","TK","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","UM","US","UY","UZ","VA","VC","VE","VG","VI","VN","VU","WF","WS","YE","YT","ZA","ZM","ZW"]);t.CountryCodes=a},88590:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.preparingTransformersModule=void 0;const n=r(59404),i=r(71519),a=r(32287),o=r(96390),s=r(85032),c=r(24808),u=r(51174),l=r(21146),d=r(35041),f=r(46459),p=r(32644),h=r(75025),m=r(98597),g=r(98406),b=r(12930),y=r(35355),S=r(44441),v=r(56921);t.preparingTransformersModule=new i.ContainerModule(e=>{e(a.ServiceIdentifiers.INodeTransformer).to(l.CustomCodeHelpersTransformer).whenTargetNamed(o.NodeTransformer.CustomCodeHelpersTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(d.EvalCallExpressionTransformer).whenTargetNamed(o.NodeTransformer.EvalCallExpressionTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(g.MetadataTransformer).whenTargetNamed(o.NodeTransformer.MetadataTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(b.ObfuscatingGuardsTransformer).whenTargetNamed(o.NodeTransformer.ObfuscatingGuardsTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(y.ParentificationTransformer).whenTargetNamed(o.NodeTransformer.ParentificationTransformer),e(a.ServiceIdentifiers.INodeTransformer).to(v.VariablePreserveTransformer).whenTargetNamed(o.NodeTransformer.VariablePreserveTransformer),e(a.ServiceIdentifiers.INodeGuard).to(c.BlackListObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.BlackListObfuscatingGuard),e(a.ServiceIdentifiers.INodeGuard).to(u.ConditionalCommentObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ConditionalCommentObfuscatingGuard),e(a.ServiceIdentifiers.INodeGuard).to(f.ForceTransformStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ForceTransformStringObfuscatingGuard),e(a.ServiceIdentifiers.INodeGuard).to(p.IgnoredImportObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.IgnoredImportObfuscatingGuard),e(a.ServiceIdentifiers.INodeGuard).to(h.ImportMetaObfuscationGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ImportMetaObfuscationGuard),e(a.ServiceIdentifiers.INodeGuard).to(m.ProcessEnvObfuscationGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ProcessEnvObfuscationGuard),e(a.ServiceIdentifiers.INodeGuard).to(S.ReservedStringObfuscatingGuard).inSingletonScope().whenTargetNamed(s.ObfuscatingGuard.ReservedStringObfuscatingGuard),e(a.ServiceIdentifiers.Factory__INodeGuard).toFactory(n.InversifyContainerFacade.getCacheFactory(a.ServiceIdentifiers.INodeGuard))})},88691:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ObjectExpressionTransformer=void 0;const o=r(71519),s=r(32287),c=r(18436),u=r(76893),l=r(91363),d=r(23615);let f=class extends u.AbstractNodeTransformer{constructor(e,t){super(e,t)}getVisitor(e){return e===c.NodeTransformationStage.Converting?{enter:(e,t)=>{if(t&&d.NodeGuards.isObjectExpressionNode(e))return this.transformNode(e,t)}}:null}transformNode(e,t){return e.properties.forEach(e=>{d.NodeGuards.isPropertyNode(e)&&e.key&&(e.computed?this.transformComputedProperty(e):this.transformBaseProperty(e))}),e}transformComputedProperty(e){d.NodeGuards.isLiteralNode(e.key)&&"string"==typeof e.key.value&&(e.key=l.NodeFactory.literalNode(e.key.value))}transformBaseProperty(e){e.shorthand&&(e.shorthand=!1),d.NodeGuards.isIdentifierNode(e.key)&&(e.key=l.NodeFactory.literalNode(e.key.name))}};t.ObjectExpressionTransformer=f,t.ObjectExpressionTransformer=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],f)},88996:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SeedRule=void 0;t.SeedRule=e=>{if(e.seed)return{...e,seed:e.seed};return{...e,seed:(t=0,r=999999999,Math.floor(Math.random()*(r-t+1)+t))};var t,r}},89420:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.SourceMapBaseUrlRule=void 0;t.SourceMapBaseUrlRule=e=>{const{sourceMapBaseUrl:t}=e;return e.sourceMapFileName?(t&&!t.endsWith("/")&&(e={...e,sourceMapBaseUrl:`${t}/`}),e):e={...e,sourceMapBaseUrl:""}}},89711:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.BlockStatementDeadCodeInjectionNode=void 0;const o=r(71519),s=r(32287),c=r(57013),u=r(91363),l=r(25120);let d=class extends c.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t){this.blockStatementNode=e,this.deadCodeInjectionRootAstHostNode=t}getNode(){return this.getNodeStructure()}getNodeStructure(){const e=this.randomGenerator.getMathRandom()>.5,t=this.randomGenerator.getMathRandom()>.5,r=e?"===":"!==",n=this.randomGenerator.getRandomString(5),i=t?n:this.randomGenerator.getRandomString(5),[a,o]=e===t?[this.blockStatementNode,this.deadCodeInjectionRootAstHostNode]:[this.deadCodeInjectionRootAstHostNode,this.blockStatementNode],s=u.NodeFactory.blockStatementNode([u.NodeFactory.ifStatementNode(u.NodeFactory.binaryExpressionNode(r,u.NodeFactory.literalNode(n),u.NodeFactory.literalNode(i)),a,o)]);return l.NodeUtils.parentizeAst(s),[s]}};t.BlockStatementDeadCodeInjectionNode=d,t.BlockStatementDeadCodeInjectionNode=d=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],d)},90169:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.optionsModule=void 0;const n=r(71519),i=r(32287),a=r(74955),o=r(24712);t.optionsModule=new n.ContainerModule(e=>{e(i.ServiceIdentifiers.IOptions).to(a.Options).inSingletonScope(),e(i.ServiceIdentifiers.IOptionsNormalizer).to(o.OptionsNormalizer).inSingletonScope()})},90251:(e,t)=>{t.getArg=function(e,t,r){if(t in e)return e[t];if(3===arguments.length)return r;throw new Error('"'+t+'" is a required argument.')};var r=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/,n=/^data:.+\,.+$/;function i(e){var t=e.match(r);return t?{scheme:t[1],auth:t[2],host:t[3],port:t[4],path:t[5]}:null}function a(e){var t="";return e.scheme&&(t+=e.scheme+":"),t+="//",e.auth&&(t+=e.auth+"@"),e.host&&(t+=e.host),e.port&&(t+=":"+e.port),e.path&&(t+=e.path),t}function o(e){var r=e,n=i(e);if(n){if(!n.path)return e;r=n.path}for(var o,s=t.isAbsolute(r),c=r.split(/\/+/),u=0,l=c.length-1;l>=0;l--)"."===(o=c[l])?c.splice(l,1):".."===o?u++:u>0&&(""===o?(c.splice(l+1,u),u=0):(c.splice(l,2),u--));return""===(r=c.join("/"))&&(r=s?"/":"."),n?(n.path=r,a(n)):r}function s(e,t){""===e&&(e="."),""===t&&(t=".");var r=i(t),s=i(e);if(s&&(e=s.path||"/"),r&&!r.scheme)return s&&(r.scheme=s.scheme),a(r);if(r||t.match(n))return t;if(s&&!s.host&&!s.path)return s.host=t,a(s);var c="/"===t.charAt(0)?t:o(e.replace(/\/+$/,"")+"/"+t);return s?(s.path=c,a(s)):c}t.urlParse=i,t.urlGenerate=a,t.normalize=o,t.join=s,t.isAbsolute=function(e){return"/"===e.charAt(0)||r.test(e)},t.relative=function(e,t){""===e&&(e="."),e=e.replace(/\/$/,"");for(var r=0;0!==t.indexOf(e+"/");){var n=e.lastIndexOf("/");if(n<0)return t;if((e=e.slice(0,n)).match(/^([^\/]+:\/)?\/*$/))return t;++r}return Array(r+1).join("../")+t.substr(e.length+1)};var c=!("__proto__"in Object.create(null));function u(e){return e}function l(e){if(!e)return!1;var t=e.length;if(t<9)return!1;if(95!==e.charCodeAt(t-1)||95!==e.charCodeAt(t-2)||111!==e.charCodeAt(t-3)||116!==e.charCodeAt(t-4)||111!==e.charCodeAt(t-5)||114!==e.charCodeAt(t-6)||112!==e.charCodeAt(t-7)||95!==e.charCodeAt(t-8)||95!==e.charCodeAt(t-9))return!1;for(var r=t-10;r>=0;r--)if(36!==e.charCodeAt(r))return!1;return!0}function d(e,t){return e===t?0:null===e?1:null===t?-1:e>t?1:-1}t.toSetString=c?u:function(e){return l(e)?"$"+e:e},t.fromSetString=c?u:function(e){return l(e)?e.slice(1):e},t.compareByOriginalPositions=function(e,t,r){var n=d(e.source,t.source);return 0!==n||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)||r||0!==(n=e.generatedColumn-t.generatedColumn)||0!==(n=e.generatedLine-t.generatedLine)?n:d(e.name,t.name)},t.compareByGeneratedPositionsDeflated=function(e,t,r){var n=e.generatedLine-t.generatedLine;return 0!==n||0!==(n=e.generatedColumn-t.generatedColumn)||r||0!==(n=d(e.source,t.source))||0!==(n=e.originalLine-t.originalLine)||0!==(n=e.originalColumn-t.originalColumn)?n:d(e.name,t.name)},t.compareByGeneratedPositionsInflated=function(e,t){var r=e.generatedLine-t.generatedLine;return 0!==r||0!==(r=e.generatedColumn-t.generatedColumn)||0!==(r=d(e.source,t.source))||0!==(r=e.originalLine-t.originalLine)||0!==(r=e.originalColumn-t.originalColumn)?r:d(e.name,t.name)},t.parseSourceMapInput=function(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))},t.computeSourceURL=function(e,t,r){if(t=t||"",e&&("/"!==e[e.length-1]&&"/"!==t[0]&&(e+="/"),t=e+t),r){var n=i(r);if(!n)throw new Error("sourceMapURL could not be parsed");if(n.path){var c=n.path.lastIndexOf("/");c>=0&&(n.path=n.path.substring(0,c+1))}t=s(a(n),t)}return o(t)}},90253:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NodeLiteralUtils=void 0;const n=r(23615);t.NodeLiteralUtils=class{static isNumberLiteralNode(e){return"number"==typeof e.value}static isStringLiteralNode(e){return"string"==typeof e.value}static isProhibitedLiteralNode(e,t){return!(!n.NodeGuards.isPropertyNode(t)||t.computed||t.key!==e)||(!!n.NodeGuards.isImportDeclarationNode(t)||!(!n.NodeGuards.isExportAllDeclarationNode(t)&&!n.NodeGuards.isExportNamedDeclarationNode(t)))}}},90432:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ecmaVersion=void 0,t.ecmaVersion=13},90629:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(e);for(var r=e.length-1;r>=0;r--)if(-1===t.indexOf(e[r]))return!1;return!0};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};e.exports=t.default,e.exports.default=t.default},90804:(e,t,r)=>{"use strict";r.r(t),r.d(t,{ARRAY_CONTAINS:()=>yu,ARRAY_MAX_SIZE:()=>Ou,ARRAY_MIN_SIZE:()=>Iu,ARRAY_NOT_CONTAINS:()=>_u,ARRAY_NOT_EMPTY:()=>Eu,ARRAY_UNIQUE:()=>Fu,Allow:()=>E,ArrayContains:()=>vu,ArrayMaxSize:()=>Ru,ArrayMinSize:()=>Du,ArrayNotContains:()=>Au,ArrayNotEmpty:()=>Nu,ArrayUnique:()=>wu,CONTAINS:()=>je,Contains:()=>Ve,EQUALS:()=>q,Equals:()=>Q,IS_ALPHA:()=>ze,IS_ALPHANUMERIC:()=>qe,IS_ARRAY:()=>fu,IS_ASCII:()=>st,IS_BASE32:()=>Uo,IS_BASE58:()=>Pc,IS_BASE64:()=>ft,IS_BIC:()=>Xo,IS_BOOLEAN:()=>Wc,IS_BOOLEAN_STRING:()=>Fo,IS_BTC_ADDRESS:()=>Qo,IS_BYTE_LENGTH:()=>bt,IS_CREDIT_CARD:()=>Ct,IS_CURRENCY:()=>It,IS_DATA_URI:()=>is,IS_DATE:()=>Yc,IS_DATE_STRING:()=>To,IS_DECIMAL:()=>rt,IS_DEFINED:()=>D,IS_DIVISIBLE_BY:()=>be,IS_EAN:()=>us,IS_EMAIL:()=>Rt,IS_EMPTY:()=>ne,IS_ENUM:()=>ru,IS_ETHEREUM_ADDRESS:()=>hs,IS_FIREBASE_PUSH_ID:()=>jn,IS_FQDN:()=>kt,IS_FULL_WIDTH:()=>Gt,IS_HALF_WIDTH:()=>Kt,IS_HASH:()=>vo,IS_HEXADECIMAL:()=>or,IS_HEX_COLOR:()=>tr,IS_HSL:()=>Ss,IS_IBAN:()=>As,IS_IDENTITY_CARD:()=>Ts,IS_IN:()=>ue,IS_INSTANCE:()=>$u,IS_INT:()=>ou,IS_IP:()=>br,IS_ISBN:()=>Ir,IS_ISIN:()=>Rr,IS_ISO31661_ALPHA_2:()=>sn,IS_ISO31661_ALPHA_3:()=>fn,IS_ISO4217_CURRENCY_CODE:()=>Uc,IS_ISO8601:()=>kr,IS_ISRC:()=>Fs,IS_ISSN:()=>xo,IS_JSON:()=>Vr,IS_JWT:()=>zr,IS_LATITUDE:()=>K,IS_LATLONG:()=>V,IS_LENGTH:()=>Zn,IS_LOCALE:()=>Ls,IS_LONGITUDE:()=>X,IS_LOWERCASE:()=>Jr,IS_MAC_ADDRESS:()=>fr,IS_MAGNET_URI:()=>Us,IS_MILITARY_TIME:()=>mo,IS_MIME_TYPE:()=>Xs,IS_MOBILE_PHONE:()=>rn,IS_MONGO_ID:()=>bn,IS_MULTIBYTE:()=>Cn,IS_NEGATIVE:()=>Ae,IS_NOT_EMPTY:()=>oe,IS_NOT_EMPTY_OBJECT:()=>Bu,IS_NOT_IN:()=>fe,IS_NUMBER:()=>Jc,IS_NUMBER_STRING:()=>Lo,IS_OBJECT:()=>mu,IS_OCTAL:()=>Qs,IS_OPTIONAL:()=>R,IS_PASSPORT_NUMBER:()=>nc,IS_PHONE_NUMBER:()=>fo,IS_PORT:()=>Cr,IS_POSITIVE:()=>ve,IS_POSTAL_CODE:()=>sc,IS_RFC_3339:()=>fc,IS_RGB_COLOR:()=>bc,IS_SEM_VER:()=>Cc,IS_STRING:()=>uu,IS_STRONG_PASSWORD:()=>Nc,IS_SURROGATE_PAIR:()=>In,IS_TAX_ID:()=>$c,IS_TIMEZONE:()=>Dc,IS_UPPERCASE:()=>Kn,IS_URL:()=>Rn,IS_UUID:()=>kn,IS_VARIABLE_WIDTH:()=>Zt,IsAlpha:()=>Ye,IsAlphanumeric:()=>Qe,IsArray:()=>hu,IsAscii:()=>ut,IsBIC:()=>Zo,IsBase32:()=>Ko,IsBase58:()=>Bc,IsBase64:()=>ht,IsBoolean:()=>Xc,IsBooleanString:()=>wo,IsBtcAddress:()=>ts,IsByteLength:()=>St,IsCreditCard:()=>Et,IsCurrency:()=>Dt,IsDataURI:()=>os,IsDate:()=>qc,IsDateString:()=>Oo,IsDecimal:()=>it,IsDefined:()=>M,IsDivisibleBy:()=>Se,IsEAN:()=>ds,IsEmail:()=>Pt,IsEmpty:()=>ae,IsEnum:()=>au,IsEthereumAddress:()=>gs,IsFQDN:()=>$t,IsFirebasePushId:()=>Vn,IsFullWidth:()=>Ut,IsHSL:()=>_s,IsHalfWidth:()=>zt,IsHash:()=>Co,IsHexColor:()=>nr,IsHexadecimal:()=>cr,IsIBAN:()=>xs,IsIP:()=>Sr,IsISBN:()=>Dr,IsISIN:()=>Pr,IsISO31661Alpha2:()=>un,IsISO31661Alpha3:()=>hn,IsISO4217CurrencyCode:()=>Kc,IsISO8601:()=>$r,IsISRC:()=>ws,IsISSN:()=>Io,IsIdentityCard:()=>Os,IsIn:()=>de,IsInstance:()=>Gu,IsInt:()=>cu,IsJSON:()=>Hr,IsJWT:()=>Yr,IsLatLong:()=>H,IsLatitude:()=>z,IsLocale:()=>js,IsLongitude:()=>Z,IsLowercase:()=>en,IsMACAddress:()=>hr,IsMagnetURI:()=>Ks,IsMilitaryTime:()=>bo,IsMimeType:()=>Zs,IsMobilePhone:()=>an,IsMongoId:()=>Sn,IsMultibyte:()=>En,IsNegative:()=>xe,IsNotEmpty:()=>ce,IsNotEmptyObject:()=>Lu,IsNotIn:()=>he,IsNumber:()=>eu,IsNumberString:()=>jo,IsObject:()=>bu,IsOctal:()=>tc,IsOptional:()=>F,IsPassportNumber:()=>ac,IsPhoneNumber:()=>ho,IsPort:()=>Er,IsPositive:()=>Ce,IsPostalCode:()=>uc,IsRFC3339:()=>hc,IsRgbColor:()=>Sc,IsSemVer:()=>Ec,IsString:()=>du,IsStrongPassword:()=>Tc,IsSurrogatePair:()=>Dn,IsTaxId:()=>Gc,IsTimeZone:()=>Mc,IsUUID:()=>$n,IsUppercase:()=>zn,IsUrl:()=>Pn,IsVariableWidth:()=>Jt,Length:()=>Jn,MATCHES:()=>si,MAX:()=>Ne,MAX_DATE:()=>we,MAX_LENGTH:()=>Qn,MIN:()=>De,MIN_DATE:()=>Re,MIN_LENGTH:()=>ri,Matches:()=>ui,Max:()=>Te,MaxDate:()=>ke,MaxLength:()=>ti,MetadataStorage:()=>c,Min:()=>Me,MinDate:()=>Pe,MinLength:()=>ii,NOT_CONTAINS:()=>Ue,NOT_EQUALS:()=>ee,NotContains:()=>Ke,NotEquals:()=>re,Validate:()=>w,ValidateBy:()=>T,ValidateIf:()=>B,ValidateNested:()=>L,ValidatePromise:()=>$,ValidationError:()=>l,ValidationTypes:()=>d,Validator:()=>v,ValidatorConstraint:()=>P,arrayContains:()=>Su,arrayMaxSize:()=>Mu,arrayMinSize:()=>Tu,arrayNotContains:()=>Cu,arrayNotEmpty:()=>xu,arrayUnique:()=>Pu,buildMessage:()=>I,contains:()=>Ge,equals:()=>J,getFromContainer:()=>A,getMetadataStorage:()=>u,isAlpha:()=>Xe,isAlphanumeric:()=>Je,isArray:()=>pu,isAscii:()=>ct,isBIC:()=>Yo,isBase32:()=>Ho,isBase58:()=>wc,isBase64:()=>pt,isBoolean:()=>zc,isBooleanString:()=>Po,isBtcAddress:()=>es,isByteLength:()=>yt,isCreditCard:()=>At,isCurrency:()=>Tt,isDataURI:()=>as,isDate:()=>Zc,isDateString:()=>Do,isDecimal:()=>nt,isDefined:()=>O,isDivisibleBy:()=>ye,isEAN:()=>ls,isEmail:()=>Ft,isEmpty:()=>ie,isEnum:()=>nu,isEthereumAddress:()=>ms,isFQDN:()=>Lt,isFirebasePushId:()=>Gn,isFullWidth:()=>Vt,isHSL:()=>vs,isHalfWidth:()=>Wt,isHash:()=>_o,isHexColor:()=>rr,isHexadecimal:()=>sr,isIBAN:()=>Es,isIP:()=>yr,isISBN:()=>Tr,isISIN:()=>Fr,isISO31661Alpha2:()=>cn,isISO31661Alpha3:()=>pn,isISO4217CurrencyCode:()=>Hc,isISO8601:()=>Lr,isISRC:()=>Ps,isISSN:()=>No,isIdentityCard:()=>Ds,isIn:()=>le,isInstance:()=>ju,isInt:()=>su,isJSON:()=>Ur,isJWT:()=>Xr,isLatLong:()=>U,isLatitude:()=>W,isLocale:()=>$s,isLongitude:()=>Y,isLowercase:()=>Qr,isMACAddress:()=>pr,isMagnetURI:()=>Hs,isMilitaryTime:()=>go,isMimeType:()=>Ys,isMobilePhone:()=>nn,isMongoId:()=>yn,isMultibyte:()=>An,isNegative:()=>Ee,isNotEmpty:()=>se,isNotEmptyObject:()=>ku,isNotIn:()=>pe,isNumber:()=>Qc,isNumberString:()=>$o,isObject:()=>gu,isOctal:()=>ec,isPassportNumber:()=>ic,isPhoneNumber:()=>po,isPort:()=>Ar,isPositive:()=>_e,isPostalCode:()=>cc,isRFC3339:()=>pc,isRgbColor:()=>yc,isSemVer:()=>Ac,isString:()=>lu,isStrongPassword:()=>Ic,isSurrogatePair:()=>Tn,isTaxId:()=>jc,isTimeZone:()=>Oc,isURL:()=>Fn,isUUID:()=>Ln,isUppercase:()=>Wn,isValidationOptions:()=>ur,isVariableWidth:()=>qt,length:()=>qn,matches:()=>ci,max:()=>Ie,maxDate:()=>Be,maxLength:()=>ei,min:()=>Oe,minDate:()=>Fe,minLength:()=>ni,notContains:()=>He,notEquals:()=>te,registerDecorator:()=>N,registerSchema:()=>Ku,useContainer:()=>C,validate:()=>Vu,validateOrReject:()=>Uu,validateSync:()=>Hu});var n=function(e){this.groups=[],this.each=!1,this.context=void 0,this.type=e.type,this.name=e.name,this.target=e.target,this.propertyName=e.propertyName,this.constraints=null==e?void 0:e.constraints,this.constraintCls=e.constraintCls,this.validationTypeOptions=e.validationTypeOptions,e.validationOptions&&(this.message=e.validationOptions.message,this.groups=e.validationOptions.groups,this.always=e.validationOptions.always,this.each=e.validationOptions.each,this.context=e.validationOptions.context)},i=function(){function e(){}return e.prototype.transform=function(e){var t=[];return Object.keys(e.properties).forEach(function(r){e.properties[r].forEach(function(i){var a={message:i.message,groups:i.groups,always:i.always,each:i.each},o={type:i.type,name:i.name,target:e.name,propertyName:r,constraints:i.constraints,validationTypeOptions:i.options,validationOptions:a};t.push(new n(o))})}),t},e}();var a=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")},o=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return o},s=function(e,t,r){if(r||2===arguments.length)for(var n,i=0,a=t.length;i0)||r.groups&&!!r.groups.find(function(e){return-1!==i.indexOf(e)})))}),p=[];try{for(var h=a(this.validationMetadatas.entries()),m=h.next();!m.done;m=h.next()){var g=o(m.value,2),b=g[0],y=g[1];e.prototype instanceof b&&p.push.apply(p,s([],o(y),!1))}}catch(e){c={error:e}}finally{try{m&&!m.done&&(u=h.return)&&u.call(h)}finally{if(c)throw c.error}}var S=p.filter(function(t){return"string"!=typeof t.target&&(t.target!==e&&((!(t.target instanceof Function)||e.prototype instanceof t.target)&&(!!l(t)||!d(t)&&(!(i&&i.length>0)||t.groups&&!!t.groups.find(function(e){return-1!==i.indexOf(e)})))))}).filter(function(e){return!f.find(function(t){return t.propertyName===e.propertyName&&t.type===e.type})});return f.concat(S)},e.prototype.getTargetValidatorConstraints=function(e){return this.constraintMetadatas.get(e)||[]},e}();function u(){var e="undefined"!=typeof globalThis?globalThis:void 0!==r.g?r.g:"undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0;return e.classValidatorMetadataStorage||(e.classValidatorMetadataStorage=new c),e.classValidatorMetadataStorage}var l=function(){function e(){}return e.prototype.toString=function(e,t,r,n){var i=this;void 0===e&&(e=!1),void 0===t&&(t=!1),void 0===r&&(r=""),void 0===n&&(n=!1);var a=e?"":"",o=e?"":"",s=function(e){return" - property ".concat(a).concat(r).concat(e).concat(o," has failed the following constraints: ").concat(a).concat((n?Object.values:Object.keys)(null!==(t=i.constraints)&&void 0!==t?t:{}).join(", ")).concat(o," \n");var t};if(t){var c=Number.isInteger(+this.property)?"[".concat(this.property,"]"):"".concat(r?".":"").concat(this.property);return this.constraints?s(c):this.children?this.children.map(function(t){return t.toString(e,!0,"".concat(r).concat(c),n)}).join(""):""}return"An instance of ".concat(a).concat(this.target?this.target.constructor.name:"an object").concat(o," has failed the validation:\n")+(this.constraints?s(this.property):"")+(this.children?this.children.map(function(t){return t.toString(e,!0,i.property,n)}).join(""):"")},e}(),d=function(){function e(){}return e.isValid=function(e){var t=this;return"isValid"!==e&&"getMessage"!==e&&-1!==Object.keys(this).map(function(e){return t[e]}).indexOf(e)},e.CUSTOM_VALIDATION="customValidation",e.NESTED_VALIDATION="nestedValidation",e.PROMISE_VALIDATION="promiseValidation",e.CONDITIONAL_VALIDATION="conditionalValidation",e.WHITELIST="whitelistValidation",e.IS_DEFINED="isDefined",e}();var f=function(){function e(){}return e.replaceMessageSpecialTokens=function(e,t){var r;return e instanceof Function?r=e(t):"string"==typeof e&&(r=e),r&&Array.isArray(t.constraints)&&t.constraints.forEach(function(e,t){r=r.replace(new RegExp("\\$constraint".concat(t+1),"g"),function(e){return Array.isArray(e)?e.join(", "):("symbol"==typeof e&&(e=e.description),"".concat(e))}(e))}),r&&void 0!==t.value&&null!==t.value&&["string","boolean","number"].includes(typeof t.value)&&(r=r.replace(/\$value/g,t.value)),r&&(r=r.replace(/\$property/g,t.property)),r&&(r=r.replace(/\$target/g,t.targetName)),r},e}();function p(e){return null!==e&&"object"==typeof e&&"function"==typeof e.then}var h,m,g=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return o},b=function(){function e(e,t){this.validator=e,this.validatorOptions=t,this.awaitingPromises=[],this.ignoreAsyncValidations=!1,this.metadataStorage=u()}return e.prototype.execute=function(e,t,r){var n,i,a=this;this.metadataStorage.hasValidationMetaData||!0!==(null===(n=this.validatorOptions)||void 0===n?void 0:n.enableDebugMessages)||console.warn("No validation metadata found. No validation will be performed. There are multiple possible reasons:\n - There may be multiple class-validator versions installed. You will need to flatten your dependencies to fix the issue.\n - This validation runs before any file with validation decorator was parsed by NodeJS.");var o=this.validatorOptions?this.validatorOptions.groups:void 0,s=this.validatorOptions&&this.validatorOptions.strictGroups||!1,c=this.validatorOptions&&this.validatorOptions.always||!1,u=void 0===(null===(i=this.validatorOptions)||void 0===i?void 0:i.forbidUnknownValues)||!1!==this.validatorOptions.forbidUnknownValues,f=this.metadataStorage.getTargetValidationMetadatas(e.constructor,t,c,s,o),p=this.metadataStorage.groupByPropertyName(f);if(u&&!f.length){var h=new l;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(h.target=e),h.value=void 0,h.property=void 0,h.children=[],h.constraints={unknownValue:"an unknown value was passed to the validate function"},void r.push(h)}this.validatorOptions&&this.validatorOptions.whitelist&&this.whitelist(e,p,r),Object.keys(p).forEach(function(t){var n=e[t],i=p[t].filter(function(e){return e.type===d.IS_DEFINED}),o=p[t].filter(function(e){return e.type!==d.IS_DEFINED&&e.type!==d.WHITELIST});n instanceof Promise&&o.find(function(e){return e.type===d.PROMISE_VALIDATION})?a.awaitingPromises.push(n.then(function(n){a.performValidations(e,n,t,i,o,r)})):a.performValidations(e,n,t,i,o,r)})},e.prototype.whitelist=function(e,t,r){var n=this,i=[];Object.keys(e).forEach(function(e){t[e]&&0!==t[e].length||i.push(e)}),i.length>0&&(this.validatorOptions&&this.validatorOptions.forbidNonWhitelisted?i.forEach(function(t){var i,a=n.generateValidationError(e,e[t],t);a.constraints=((i={})[d.WHITELIST]="property ".concat(t," should not exist"),i),a.children=void 0,r.push(a)}):i.forEach(function(t){return delete e[t]}))},e.prototype.stripEmptyErrors=function(e){var t=this;return e.filter(function(e){if(e.children&&(e.children=t.stripEmptyErrors(e.children)),0===Object.keys(e.constraints).length){if(0===e.children.length)return!1;delete e.constraints}return!0})},e.prototype.performValidations=function(e,t,r,n,i,a){var o=i.filter(function(e){return e.type===d.CUSTOM_VALIDATION}),s=i.filter(function(e){return e.type===d.NESTED_VALIDATION}),c=i.filter(function(e){return e.type===d.CONDITIONAL_VALIDATION}),u=this.generateValidationError(e,t,r);a.push(u),this.conditionalValidations(e,t,c)&&(this.customValidations(e,t,n,u),this.mapContexts(e,t,n,u),void 0===t&&this.validatorOptions&&!0===this.validatorOptions.skipUndefinedProperties||null===t&&this.validatorOptions&&!0===this.validatorOptions.skipNullProperties||null==t&&this.validatorOptions&&!0===this.validatorOptions.skipMissingProperties||(this.customValidations(e,t,o,u),this.nestedValidations(t,s,u),this.mapContexts(e,t,i,u),this.mapContexts(e,t,o,u)))},e.prototype.generateValidationError=function(e,t,r){var n=new l;return this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.target&&!0!==this.validatorOptions.validationError.target||(n.target=e),this.validatorOptions&&this.validatorOptions.validationError&&void 0!==this.validatorOptions.validationError.value&&!0!==this.validatorOptions.validationError.value||(n.value=t),n.property=r,n.children=[],n.constraints={},n},e.prototype.conditionalValidations=function(e,t,r){return r.map(function(r){return r.constraints[0](e,t)}).reduce(function(e,t){return e&&t},!0)},e.prototype.customValidations=function(e,t,r,n){var i=this;r.forEach(function(r){i.metadataStorage.getTargetValidatorConstraints(r.constraintCls).forEach(function(a){if(!(a.async&&i.ignoreAsyncValidations||i.validatorOptions&&i.validatorOptions.stopAtFirstError&&Object.keys(n.constraints||{}).length>0)){var o={targetName:e.constructor?e.constructor.name:void 0,property:r.propertyName,object:e,value:t,constraints:r.constraints};if(r.each&&(Array.isArray(t)||t instanceof Set||t instanceof Map)){var s,c=((s=t)instanceof Map?Array.from(s.values()):Array.isArray(s)?s:Array.from(s)).map(function(e){return a.instance.validate(e,o)});if(c.some(function(e){return p(e)})){var u=c.map(function(e){return p(e)?e:Promise.resolve(e)}),l=Promise.all(u).then(function(o){if(!o.every(function(e){return e})){var s=g(i.createValidationError(e,t,r,a),2),c=s[0],u=s[1];n.constraints[c]=u,r.context&&(n.contexts||(n.contexts={}),n.contexts[c]=Object.assign(n.contexts[c]||{},r.context))}});i.awaitingPromises.push(l)}else{if(!c.every(function(e){return e})){var d=g(i.createValidationError(e,t,r,a),2);b=d[0],y=d[1];n.constraints[b]=y}}}else{var f=a.instance.validate(t,o);if(p(f)){var h=f.then(function(o){if(!o){var s=g(i.createValidationError(e,t,r,a),2),c=s[0],u=s[1];n.constraints[c]=u,r.context&&(n.contexts||(n.contexts={}),n.contexts[c]=Object.assign(n.contexts[c]||{},r.context))}});i.awaitingPromises.push(h)}else if(!f){var m=g(i.createValidationError(e,t,r,a),2),b=m[0],y=m[1];n.constraints[b]=y}}}})})},e.prototype.nestedValidations=function(e,t,r){var n=this;void 0!==e&&t.forEach(function(i){if((i.type===d.NESTED_VALIDATION||i.type===d.PROMISE_VALIDATION)&&!(n.validatorOptions&&n.validatorOptions.stopAtFirstError&&Object.keys(r.constraints||{}).length>0))if(Array.isArray(e)||e instanceof Set||e instanceof Map)(e instanceof Set?Array.from(e):e).forEach(function(i,a){n.performValidations(e,i,a.toString(),[],t,r.children)});else if(e instanceof Object){var a="string"==typeof i.target?i.target:i.target.name;n.execute(e,a,r.children)}else{var o=g(n.createValidationError(i.target,e,i),2),s=o[0],c=o[1];r.constraints[s]=c}})},e.prototype.mapContexts=function(e,t,r,n){var i=this;return r.forEach(function(e){if(e.context){var t=void 0;if(e.type===d.CUSTOM_VALIDATION)t=i.metadataStorage.getTargetValidatorConstraints(e.constraintCls)[0];var r=i.getConstraintType(e,t);n.constraints[r]&&(n.contexts||(n.contexts={}),n.contexts[r]=Object.assign(n.contexts[r]||{},e.context))}})},e.prototype.createValidationError=function(e,t,r,n){var i=e.constructor?e.constructor.name:void 0,a=this.getConstraintType(r,n),o={targetName:i,property:r.propertyName,object:e,value:t,constraints:r.constraints},s=r.message||"";return r.message||this.validatorOptions&&(!this.validatorOptions||this.validatorOptions.dismissDefaultMessages)||n&&n.instance.defaultMessage instanceof Function&&(s=n.instance.defaultMessage(o)),[a,f.replaceMessageSpecialTokens(s,o)]},e.prototype.getConstraintType=function(e,t){return t&&t.name?t.name:e.type},e}(),y=function(e,t,r,n){return new(r||(r=Promise))(function(i,a){function o(e){try{c(n.next(e))}catch(e){a(e)}}function s(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(o,s)}c((n=n.apply(e,t||[])).next())})},S=function(e,t){var r,n,i,a,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]};return a={next:s(0),throw:s(1),return:s(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]1)throw"More than one implementation of ValidatorConstraintInterface found for validator on: ".concat(e.target.name,":").concat(e.propertyName)}else{var r=e.validator;t=function(){function e(){}return e.prototype.validate=function(e,t){return r.validate(e,t)},e.prototype.defaultMessage=function(e){return r.defaultMessage?r.defaultMessage(e):""},e}(),u().addConstraintMetadata(new x(t,e.name,e.async))}var i={type:e.name&&d.isValid(e.name)?e.name:d.CUSTOM_VALIDATION,name:e.name,target:e.target,propertyName:e.propertyName,validationOptions:e.options,constraintCls:t,constraints:e.constraints};u().addValidationMetadata(new n(i))}function I(e,t){return function(r){var n=t&&t.each?"each value in ":"";return e(n,r)}}function T(e,t){return function(r,n){N({name:e.name,target:r.constructor,propertyName:n,options:t,constraints:e.constraints,validator:e.validator})}}var D=d.IS_DEFINED;function O(e){return null!=e}function M(e){return T({name:D,validator:{validate:function(e){return O(e)},defaultMessage:I(function(e){return e+"$property should not be null or undefined"},e)}},e)}var R="isOptional";function F(e){return function(t,r){var i={type:d.CONDITIONAL_VALIDATION,name:R,target:t.constructor,propertyName:r,constraints:[function(e,t){return null!==e[r]&&void 0!==e[r]}],validationOptions:e};u().addValidationMetadata(new n(i))}}function P(e){return function(t){var r=e&&e.async,n=e&&e.name?e.name:"";n||(n=t.name)||(n=n.replace(/\.?([A-Z]+)/g,function(e,t){return"_"+t.toLowerCase()}).replace(/^_/,""));var i=new x(t,n,r);u().addConstraintMetadata(i)}}function w(e,t,r){return function(i,a){var o={type:d.CUSTOM_VALIDATION,target:i.constructor,propertyName:a,constraintCls:e,constraints:Array.isArray(t)?t:void 0,validationOptions:Array.isArray(t)?r:t};u().addValidationMetadata(new n(o))}}function B(e,t){return function(r,i){var a={type:d.CONDITIONAL_VALIDATION,target:r.constructor,propertyName:i,constraints:[e],validationOptions:t};u().addValidationMetadata(new n(a))}}var k=function(){return k=Object.assign||function(e){for(var t,r=1,n=arguments.length;r0}function Ce(e){return T({name:ve,validator:{validate:function(e,t){return _e(e)},defaultMessage:I(function(e){return e+"$property must be a positive number"},e)}},e)}var Ae="isNegative";function Ee(e){return"number"==typeof e&&e<0}function xe(e){return T({name:Ae,validator:{validate:function(e,t){return Ee(e)},defaultMessage:I(function(e){return e+"$property must be a negative number"},e)}},e)}var Ne="max";function Ie(e,t){return"number"==typeof e&&"number"==typeof t&&e<=t}function Te(e,t){return T({name:Ne,constraints:[e],validator:{validate:function(e,t){return Ie(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must not be greater than $constraint1"},t)}},t)}var De="min";function Oe(e,t){return"number"==typeof e&&"number"==typeof t&&e>=t}function Me(e,t){return T({name:De,constraints:[e],validator:{validate:function(e,t){return Oe(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must not be less than $constraint1"},t)}},t)}var Re="minDate";function Fe(e,t){return e instanceof Date&&e.getTime()>=(t instanceof Date?t:t()).getTime()}function Pe(e,t){return T({name:Re,constraints:[e],validator:{validate:function(e,t){return Fe(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return"minimal allowed date for "+e+"$property is $constraint1"},t)}},t)}var we="maxDate";function Be(e,t){return e instanceof Date&&e.getTime()<=(t instanceof Date?t:t()).getTime()}function ke(e,t){return T({name:we,constraints:[e],validator:{validate:function(e,t){return Be(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return"maximal allowed date for "+e+"$property is $constraint1"},t)}},t)}var Le=r(59220),$e=r.n(Le),je="contains";function Ge(e,t){return"string"==typeof e&&$e()(e,t)}function Ve(e,t){return T({name:je,constraints:[e],validator:{validate:function(e,t){return Ge(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must contain a $constraint1 string"},t)}},t)}var Ue="notContains";function He(e,t){return"string"==typeof e&&!$e()(e,t)}function Ke(e,t){return T({name:Ue,constraints:[e],validator:{validate:function(e,t){return He(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property should not contain a $constraint1 string"},t)}},t)}var We=r(66529),ze="isAlpha";function Xe(e,t){return"string"==typeof e&&(0,We.default)(e,t)}function Ye(e,t){return T({name:ze,constraints:[e],validator:{validate:function(e,t){return Xe(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must contain only letters (a-zA-Z)"},t)}},t)}var Ze=r(98986),qe="isAlphanumeric";function Je(e,t){return"string"==typeof e&&(0,Ze.default)(e,t)}function Qe(e,t){return T({name:qe,constraints:[e],validator:{validate:function(e,t){return Je(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must contain only letters and numbers"},t)}},t)}var et=r(45926),tt=r.n(et),rt="isDecimal";function nt(e,t){return"string"==typeof e&&tt()(e,t)}function it(e,t){return T({name:rt,constraints:[e],validator:{validate:function(e,t){return nt(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property is not a valid decimal number."},t)}},t)}var at=r(74294),ot=r.n(at),st="isAscii";function ct(e){return"string"==typeof e&&ot()(e)}function ut(e){return T({name:st,validator:{validate:function(e,t){return ct(e)},defaultMessage:I(function(e){return e+"$property must contain only ASCII characters"},e)}},e)}var lt=r(98274),dt=r.n(lt),ft="isBase64";function pt(e,t){return"string"==typeof e&&dt()(e,t)}function ht(e,t){return T({name:ft,constraints:[e],validator:{validate:function(e,t){return pt(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be base64 encoded"},t)}},t)}var mt=r(46255),gt=r.n(mt),bt="isByteLength";function yt(e,t,r){return"string"==typeof e&>()(e,{min:t,max:r})}function St(e,t,r){return T({name:bt,constraints:[e,t],validator:{validate:function(e,t){return yt(e,null==t?void 0:t.constraints[0],null==t?void 0:t.constraints[1])},defaultMessage:I(function(e){return e+"$property's byte length must fall into ($constraint1, $constraint2) range"},r)}},r)}var vt=r(61062),_t=r.n(vt),Ct="isCreditCard";function At(e){return"string"==typeof e&&_t()(e)}function Et(e){return T({name:Ct,validator:{validate:function(e,t){return At(e)},defaultMessage:I(function(e){return e+"$property must be a credit card"},e)}},e)}var xt=r(6782),Nt=r.n(xt),It="isCurrency";function Tt(e,t){return"string"==typeof e&&Nt()(e,t)}function Dt(e,t){return T({name:It,constraints:[e],validator:{validate:function(e,t){return Tt(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a currency"},t)}},t)}var Ot=r(69517),Mt=r.n(Ot),Rt="isEmail";function Ft(e,t){return"string"==typeof e&&Mt()(e,t)}function Pt(e,t){return T({name:Rt,constraints:[e],validator:{validate:function(e,t){return Ft(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be an email"},t)}},t)}var wt=r(57658),Bt=r.n(wt),kt="isFqdn";function Lt(e,t){return"string"==typeof e&&Bt()(e,t)}function $t(e,t){return T({name:kt,constraints:[e],validator:{validate:function(e,t){return Lt(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a valid domain name"},t)}},t)}var jt=r(29666),Gt="isFullWidth";function Vt(e){return"string"==typeof e&&(0,jt.default)(e)}function Ut(e){return T({name:Gt,validator:{validate:function(e,t){return Vt(e)},defaultMessage:I(function(e){return e+"$property must contain a full-width characters"},e)}},e)}var Ht=r(49534),Kt="isHalfWidth";function Wt(e){return"string"==typeof e&&(0,Ht.default)(e)}function zt(e){return T({name:Kt,validator:{validate:function(e,t){return Wt(e)},defaultMessage:I(function(e){return e+"$property must contain a half-width characters"},e)}},e)}var Xt=r(31449),Yt=r.n(Xt),Zt="isVariableWidth";function qt(e){return"string"==typeof e&&Yt()(e)}function Jt(e){return T({name:Zt,validator:{validate:function(e,t){return qt(e)},defaultMessage:I(function(e){return e+"$property must contain a full-width and half-width characters"},e)}},e)}var Qt=r(24641),er=r.n(Qt),tr="isHexColor";function rr(e){return"string"==typeof e&&er()(e)}function nr(e){return T({name:tr,validator:{validate:function(e,t){return rr(e)},defaultMessage:I(function(e){return e+"$property must be a hexadecimal color"},e)}},e)}var ir=r(82002),ar=r.n(ir),or="isHexadecimal";function sr(e){return"string"==typeof e&&ar()(e)}function cr(e){return T({name:or,validator:{validate:function(e,t){return sr(e)},defaultMessage:I(function(e){return e+"$property must be a hexadecimal number"},e)}},e)}function ur(e){return!!e&&("each"in e||"message"in e||"groups"in e||"always"in e||"context"in e)}var lr=r(3196),dr=r.n(lr),fr="isMacAddress";function pr(e,t){return"string"==typeof e&&dr()(e,t)}function hr(e,t){var r=ur(e)?void 0:e,n=ur(e)?e:t;return T({name:fr,constraints:[r],validator:{validate:function(e,t){return pr(e,r)},defaultMessage:I(function(e){return e+"$property must be a MAC Address"},n)}},n)}var mr=r(35372),gr=r.n(mr),br="isIp";function yr(e,t){var r=t?"".concat(t):void 0;return"string"==typeof e&&gr()(e,r)}function Sr(e,t){return T({name:br,constraints:[e],validator:{validate:function(e,t){return yr(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be an ip address"},t)}},t)}var vr=r(33906),_r=r.n(vr),Cr="isPort";function Ar(e){return"string"==typeof e&&_r()(e)}function Er(e){return T({name:Cr,validator:{validate:function(e,t){return Ar(e)},defaultMessage:I(function(e){return e+"$property must be a port"},e)}},e)}var xr=r(59717),Nr=r.n(xr),Ir="isIsbn";function Tr(e,t){var r=t?"".concat(t):void 0;return"string"==typeof e&&Nr()(e,r)}function Dr(e,t){return T({name:Ir,constraints:[e],validator:{validate:function(e,t){return Tr(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be an ISBN"},t)}},t)}var Or=r(92678),Mr=r.n(Or),Rr="isIsin";function Fr(e){return"string"==typeof e&&Mr()(e)}function Pr(e){return T({name:Rr,validator:{validate:function(e,t){return Fr(e)},defaultMessage:I(function(e){return e+"$property must be an ISIN (stock/security identifier)"},e)}},e)}var wr=r(66169),Br=r.n(wr),kr="isIso8601";function Lr(e,t){return"string"==typeof e&&Br()(e,t)}function $r(e,t){return T({name:kr,constraints:[e],validator:{validate:function(e,t){return Lr(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a valid ISO 8601 date string"},t)}},t)}var jr=r(75751),Gr=r.n(jr),Vr="isJson";function Ur(e){return"string"==typeof e&&Gr()(e)}function Hr(e){return T({name:Vr,validator:{validate:function(e,t){return Ur(e)},defaultMessage:I(function(e){return e+"$property must be a json string"},e)}},e)}var Kr=r(29172),Wr=r.n(Kr),zr="isJwt";function Xr(e){return"string"==typeof e&&Wr()(e)}function Yr(e){return T({name:zr,validator:{validate:function(e,t){return Xr(e)},defaultMessage:I(function(e){return e+"$property must be a jwt string"},e)}},e)}var Zr=r(37612),qr=r.n(Zr),Jr="isLowercase";function Qr(e){return"string"==typeof e&&qr()(e)}function en(e){return T({name:Jr,validator:{validate:function(e,t){return Qr(e)},defaultMessage:I(function(e){return e+"$property must be a lowercase string"},e)}},e)}var tn=r(95251),rn="isMobilePhone";function nn(e,t,r){return"string"==typeof e&&(0,tn.default)(e,t,r)}function an(e,t,r){return T({name:rn,constraints:[e,t],validator:{validate:function(e,t){return nn(e,null==t?void 0:t.constraints[0],null==t?void 0:t.constraints[1])},defaultMessage:I(function(e){return e+"$property must be a phone number"},r)}},r)}var on=r(88447),sn="isISO31661Alpha2";function cn(e){return"string"==typeof e&&(0,on.default)(e)}function un(e){return T({name:sn,validator:{validate:function(e,t){return cn(e)},defaultMessage:I(function(e){return e+"$property must be a valid ISO31661 Alpha2 code"},e)}},e)}var ln=r(53832),dn=r.n(ln),fn="isISO31661Alpha3";function pn(e){return"string"==typeof e&&dn()(e)}function hn(e){return T({name:fn,validator:{validate:function(e,t){return pn(e)},defaultMessage:I(function(e){return e+"$property must be a valid ISO31661 Alpha3 code"},e)}},e)}var mn=r(31252),gn=r.n(mn),bn="isMongoId";function yn(e){return"string"==typeof e&&gn()(e)}function Sn(e){return T({name:bn,validator:{validate:function(e,t){return yn(e)},defaultMessage:I(function(e){return e+"$property must be a mongodb id"},e)}},e)}var vn=r(72830),_n=r.n(vn),Cn="isMultibyte";function An(e){return"string"==typeof e&&_n()(e)}function En(e){return T({name:Cn,validator:{validate:function(e,t){return An(e)},defaultMessage:I(function(e){return e+"$property must contain one or more multibyte chars"},e)}},e)}var xn=r(43459),Nn=r.n(xn),In="isSurrogatePair";function Tn(e){return"string"==typeof e&&Nn()(e)}function Dn(e){return T({name:In,validator:{validate:function(e,t){return Tn(e)},defaultMessage:I(function(e){return e+"$property must contain any surrogate pairs chars"},e)}},e)}var On=r(77844),Mn=r.n(On),Rn="isUrl";function Fn(e,t){return"string"==typeof e&&Mn()(e,t)}function Pn(e,t){return T({name:Rn,constraints:[e],validator:{validate:function(e,t){return Fn(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a URL address"},t)}},t)}var wn=r(65186),Bn=r.n(wn),kn="isUuid";function Ln(e,t){return"string"==typeof e&&Bn()(e,t)}function $n(e,t){return T({name:kn,constraints:[e],validator:{validate:function(e,t){return Ln(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a UUID"},t)}},t)}var jn="IsFirebasePushId";function Gn(e){return"string"==typeof e&&20===e.length&&/^[a-zA-Z0-9_-]*$/.test(e)}function Vn(e){return T({name:jn,validator:{validate:function(e,t){return Gn(e)},defaultMessage:I(function(e){return e+"$property must be a Firebase Push Id"},e)}},e)}var Un=r(75577),Hn=r.n(Un),Kn="isUppercase";function Wn(e){return"string"==typeof e&&Hn()(e)}function zn(e){return T({name:Kn,validator:{validate:function(e,t){return Wn(e)},defaultMessage:I(function(e){return e+"$property must be uppercase"},e)}},e)}var Xn=r(29285),Yn=r.n(Xn),Zn="isLength";function qn(e,t,r){return"string"==typeof e&&Yn()(e,{min:t,max:r})}function Jn(e,t,r){return T({name:Zn,constraints:[e,t],validator:{validate:function(e,t){return qn(e,null==t?void 0:t.constraints[0],null==t?void 0:t.constraints[1])},defaultMessage:I(function(e,t){var r=null!==(null==t?void 0:t.constraints[0])&&void 0!==(null==t?void 0:t.constraints[0]),n=null!==(null==t?void 0:t.constraints[1])&&void 0!==(null==t?void 0:t.constraints[1]);return r&&(!t.value||t.value.length<(null==t?void 0:t.constraints[0]))?e+"$property must be longer than or equal to $constraint1 characters":n&&t.value.length>(null==t?void 0:t.constraints[1])?e+"$property must be shorter than or equal to $constraint2 characters":e+"$property must be longer than or equal to $constraint1 and shorter than or equal to $constraint2 characters"},r)}},r)}var Qn="maxLength";function ei(e,t){return"string"==typeof e&&Yn()(e,{min:0,max:t})}function ti(e,t){return T({name:Qn,constraints:[e],validator:{validate:function(e,t){return ei(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be shorter than or equal to $constraint1 characters"},t)}},t)}var ri="minLength";function ni(e,t){return"string"==typeof e&&Yn()(e,{min:t})}function ii(e,t){return T({name:ri,constraints:[e],validator:{validate:function(e,t){return ni(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be longer than or equal to $constraint1 characters"},t)}},t)}var ai=r(72576),oi=r.n(ai),si="matches";function ci(e,t,r){return"string"==typeof e&&oi()(e,t,r)}function ui(e,t,r){var n;return t&&t instanceof Object&&!r?r=t:n=t,T({name:si,constraints:[e,n],validator:{validate:function(e,t){return ci(e,null==t?void 0:t.constraints[0],null==t?void 0:t.constraints[1])},defaultMessage:I(function(e,t){return e+"$property must match $constraint1 regular expression"},r)}},r)}const li={version:4,country_calling_codes:{1:["US","AG","AI","AS","BB","BM","BS","CA","DM","DO","GD","GU","JM","KN","KY","LC","MP","MS","PR","SX","TC","TT","VC","VG","VI"],7:["RU","KZ"],20:["EG"],27:["ZA"],30:["GR"],31:["NL"],32:["BE"],33:["FR"],34:["ES"],36:["HU"],39:["IT","VA"],40:["RO"],41:["CH"],43:["AT"],44:["GB","GG","IM","JE"],45:["DK"],46:["SE"],47:["NO","SJ"],48:["PL"],49:["DE"],51:["PE"],52:["MX"],53:["CU"],54:["AR"],55:["BR"],56:["CL"],57:["CO"],58:["VE"],60:["MY"],61:["AU","CC","CX"],62:["ID"],63:["PH"],64:["NZ"],65:["SG"],66:["TH"],81:["JP"],82:["KR"],84:["VN"],86:["CN"],90:["TR"],91:["IN"],92:["PK"],93:["AF"],94:["LK"],95:["MM"],98:["IR"],211:["SS"],212:["MA","EH"],213:["DZ"],216:["TN"],218:["LY"],220:["GM"],221:["SN"],222:["MR"],223:["ML"],224:["GN"],225:["CI"],226:["BF"],227:["NE"],228:["TG"],229:["BJ"],230:["MU"],231:["LR"],232:["SL"],233:["GH"],234:["NG"],235:["TD"],236:["CF"],237:["CM"],238:["CV"],239:["ST"],240:["GQ"],241:["GA"],242:["CG"],243:["CD"],244:["AO"],245:["GW"],246:["IO"],247:["AC"],248:["SC"],249:["SD"],250:["RW"],251:["ET"],252:["SO"],253:["DJ"],254:["KE"],255:["TZ"],256:["UG"],257:["BI"],258:["MZ"],260:["ZM"],261:["MG"],262:["RE","YT"],263:["ZW"],264:["NA"],265:["MW"],266:["LS"],267:["BW"],268:["SZ"],269:["KM"],290:["SH","TA"],291:["ER"],297:["AW"],298:["FO"],299:["GL"],350:["GI"],351:["PT"],352:["LU"],353:["IE"],354:["IS"],355:["AL"],356:["MT"],357:["CY"],358:["FI","AX"],359:["BG"],370:["LT"],371:["LV"],372:["EE"],373:["MD"],374:["AM"],375:["BY"],376:["AD"],377:["MC"],378:["SM"],380:["UA"],381:["RS"],382:["ME"],383:["XK"],385:["HR"],386:["SI"],387:["BA"],389:["MK"],420:["CZ"],421:["SK"],423:["LI"],500:["FK"],501:["BZ"],502:["GT"],503:["SV"],504:["HN"],505:["NI"],506:["CR"],507:["PA"],508:["PM"],509:["HT"],590:["GP","BL","MF"],591:["BO"],592:["GY"],593:["EC"],594:["GF"],595:["PY"],596:["MQ"],597:["SR"],598:["UY"],599:["CW","BQ"],670:["TL"],672:["NF"],673:["BN"],674:["NR"],675:["PG"],676:["TO"],677:["SB"],678:["VU"],679:["FJ"],680:["PW"],681:["WF"],682:["CK"],683:["NU"],685:["WS"],686:["KI"],687:["NC"],688:["TV"],689:["PF"],690:["TK"],691:["FM"],692:["MH"],850:["KP"],852:["HK"],853:["MO"],855:["KH"],856:["LA"],880:["BD"],886:["TW"],960:["MV"],961:["LB"],962:["JO"],963:["SY"],964:["IQ"],965:["KW"],966:["SA"],967:["YE"],968:["OM"],970:["PS"],971:["AE"],972:["IL"],973:["BH"],974:["QA"],975:["BT"],976:["MN"],977:["NP"],992:["TJ"],993:["TM"],994:["AZ"],995:["GE"],996:["KG"],998:["UZ"]},countries:{AC:["247","00","(?:[01589]\\d|[46])\\d{4}",[5,6],0,0,0,0,0,0,0,[["6[2-467]\\d{3}",[5]],["4\\d{4}",[5]],0,0,0,0,["(?:0[1-9]|[1589]\\d)\\d{4}",[6]]]],AD:["376","00","(?:1|6\\d)\\d{7}|[135-9]\\d{5}",[6,8,9],[["(\\d{3})(\\d{3})","$1 $2",["[135-9]"]],["(\\d{4})(\\d{4})","$1 $2",["1"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],0,0,0,0,0,0,[["[78]\\d{5}",[6]],["690\\d{6}|[356]\\d{5}",[6,9]],["180[02]\\d{4}",[8]],["[19]\\d{5}",[6]]]],AE:["971","00","(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}",[5,6,7,8,9,10,11,12],[["(\\d{3})(\\d{2,9})","$1 $2",["60|8"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[236]|[479][2-8]"],"0$1"],["(\\d{3})(\\d)(\\d{5})","$1 $2 $3",["[479]"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"]],"0",0,0,0,0,0,[["[2-4679][2-8]\\d{6}",[8]],["5[024-68]\\d{7}",[9]],["400\\d{6}|800\\d{2,9}"],["900[02]\\d{5}",[9]],0,0,["600[25]\\d{5}",[9]],0,0,["700[05]\\d{5}",[9]]]],AF:["93","00","[2-7]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"]],"0",0,0,0,0,0,[["(?:[25][0-8]|[34][0-4]|6[0-5])[2-9]\\d{6}"],["7\\d{8}"]]],AG:["1","011","(?:268|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([457]\\d{6})$|1","268$1",0,"268",[["268(?:4(?:6[0-38]|84)|56[0-2])\\d{4}"],["268(?:464|7(?:1[3-9]|[28]\\d|3[0246]|64|7[0-689]))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,0,["26840[69]\\d{4}"],["26848[01]\\d{4}"]]],AI:["1","011","(?:264|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2457]\\d{6})$|1","264$1",0,"264",[["264(?:292|4(?:6[12]|9[78]))\\d{4}"],["264(?:235|4(?:69|76)|5(?:3[6-9]|8[1-4])|7(?:29|72))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,0,["264724\\d{4}"]]],AL:["355","00","(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}",[6,7,8,9],[["(\\d{3})(\\d{3,4})","$1 $2",["80|9"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["4[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2358][2-5]|4"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["[23578]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["6"],"0$1"]],"0",0,0,0,0,0,[["4505[0-2]\\d{3}|(?:[2358][16-9]\\d[2-9]|4410)\\d{4}|(?:[2358][2-5][2-9]|4(?:[2-57-9][2-9]|6\\d))\\d{5}",[8]],["6(?:[78][2-9]|9\\d)\\d{6}",[9]],["800\\d{4}",[7]],["900[1-9]\\d\\d",[6]],["700[2-9]\\d{4}",[8]],0,0,0,0,["808[1-9]\\d\\d",[6]]]],AM:["374","00","(?:[1-489]\\d|55|60|77)\\d{6}",[8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[89]0"],"0 $1"],["(\\d{3})(\\d{5})","$1 $2",["2|3[12]"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["1|47"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[3-9]"],"0$1"]],"0",0,0,0,0,0,[["(?:(?:1[0-25]|47)\\d|2(?:2[2-46]|3[1-8]|4[2-69]|5[2-7]|6[1-9]|8[1-7])|3[12]2)\\d{5}"],["(?:33|4[1349]|55|77|88|9[13-9])\\d{6}"],["800\\d{5}"],["90[016]\\d{5}"],0,0,0,0,["60(?:2[78]|3[5-9]|4[02-9]|5[0-46-9]|[6-8]\\d|9[0-2])\\d{4}"],["80[1-4]\\d{5}"]]],AO:["244","00","[29]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[29]"]]],0,0,0,0,0,0,[["2\\d(?:[0134][25-9]|[25-9]\\d)\\d{5}"],["9[1-79]\\d{7}"]]],AR:["54","00","(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}",[10,11],[["(\\d{4})(\\d{2})(\\d{4})","$1 $2-$3",["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])","2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["1"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[68]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2-$3",["[23]"],"0$1",1],["(\\d)(\\d{4})(\\d{2})(\\d{4})","$2 15-$3-$4",["9(?:2[2-469]|3[3-578])","9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))","9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]","9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"],"0$1",0,"$1 $2 $3-$4"],["(\\d)(\\d{2})(\\d{4})(\\d{4})","$2 15-$3-$4",["91"],"0$1",0,"$1 $2 $3-$4"],["(\\d{3})(\\d{3})(\\d{5})","$1-$2-$3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{4})","$2 15-$3-$4",["9"],"0$1",0,"$1 $2 $3-$4"]],"0",0,"0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?","9$1",0,0,[["3(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\d{5}|(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\d{5}|(?:(?:11[1-8]|670)\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68])))\\d{6}|(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\d{5}|2(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\d{5}|(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}",[10]],["93(?:7(?:1[15]|81)|8(?:21|4[16]|69|9[12]))[46]\\d{5}|9(?:2(?:2(?:2[59]|44|52)|3(?:26|44)|47[35]|9(?:[07]2|2[26]|34|46))|3327)[45]\\d{5}|9(?:2(?:657|9(?:54|66))|3(?:48[27]|7(?:55|77)|8(?:65|78)))[2-8]\\d{5}|9(?:2(?:284|3(?:02|23)|477|622|920)|3(?:4(?:46|89|92)|541))[2-7]\\d{5}|(?:675\\d|9(?:11[1-8]\\d|2(?:2(?:0[45]|1[2-6]|3[3-6])|3(?:[06]4|7[45])|494|6(?:04|1[2-8]|[36][45]|4[3-6])|80[45]|9(?:[17][4-6]|[48][45]|9[3-6]))|3(?:364|4(?:1[2-8]|[25][4-6]|3[3-6]|84)|5(?:1[2-9]|[38][4-6])|6(?:2[45]|44)|7[069][45]|8(?:0[45]|1[2-7]|3[4-6]|5[3-6]|7[2-6]|8[3-68]))))\\d{6}|9(?:2(?:2(?:62|81)|320|9(?:42|83))|3(?:329|4(?:62|7[16])|5(?:43|64)|7(?:18|5[17])))[2-6]\\d{5}|92(?:2(?:21|4[23]|6[145]|7[1-4]|8[356]|9[267])|3(?:16|3[13-8]|43|5[346-8]|9[3-5])|6(?:2[46]|4[78]|5[1568])|9(?:03|2[1457-9]|3[1356]|4[08]|[56][23]|82))4\\d{5}|9(?:2(?:257|3(?:24|46|92)|9(?:01|23|64))|3(?:4(?:42|64)|5(?:25|37|4[47]|71)|7(?:35|72)|825))[3-6]\\d{5}|9(?:2(?:2(?:02|2[3467]|4[156]|5[45]|6[6-8]|91)|3(?:1[47]|25|[45][25]|96)|47[48]|625|932)|3(?:38[2578]|4(?:0[0-24-9]|3[78]|4[457]|58|6[035-9]|72|83|9[136-8])|5(?:2[124]|[368][23]|4[2689]|7[2-6])|7(?:16|2[15]|3[14]|4[13]|5[468]|7[3-5]|8[26])|8(?:2[67]|3[278]|4[3-5]|5[78]|6[1-378]|[78]7|94)))[4-6]\\d{5}"],["800\\d{7,8}"],["60[04579]\\d{7}",[10]],0,0,["810\\d{7}",[10]]]],AS:["1","011","(?:[58]\\d\\d|684|900)\\d{7}",[10],0,"1",0,"([267]\\d{6})$|1","684$1",0,"684",[["6846(?:22|33|44|55|77|88|9[19])\\d{4}"],["684(?:2(?:48|5[2468]|7[26])|7(?:3[13]|70|82))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],AT:["43","00","1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}",[4,5,6,7,8,9,10,11,12,13],[["(\\d)(\\d{3,12})","$1 $2",["1(?:11|[2-9])"],"0$1"],["(\\d{3})(\\d{2})","$1 $2",["517"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["5[079]"],"0$1"],["(\\d{3})(\\d{3,10})","$1 $2",["(?:31|4)6|51|6(?:48|5[0-3579]|[6-9])|7(?:20|32|8)|[89]","(?:31|4)6|51|6(?:485|5[0-3579]|[6-9])|7(?:20|32|8)|[89]"],"0$1"],["(\\d{4})(\\d{3,9})","$1 $2",["[2-467]|5[2-6]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["5"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,7})","$1 $2 $3",["5"],"0$1"]],"0",0,0,0,0,0,[["1(?:11\\d|[2-9]\\d{3,11})|(?:316|463)\\d{3,10}|648[34]\\d{3,9}|(?:51|66|73)2\\d{3,10}|(?:2(?:1[467]|2[13-8]|5[2357]|6[1-46-8]|7[1-8]|8[124-7]|9[1458])|3(?:1[1-578]|3[23568]|4[5-7]|5[1378]|6[1-38]|8[3-68])|4(?:2[1-8]|35|7[1368]|8[2457])|5(?:2[1-8]|3[357]|4[147]|5[12578]|6[37])|6(?:13|2[1-47]|4[135-7]|5[468])|7(?:2[1-8]|35|4[13478]|5[68]|6[16-8]|7[1-6]|9[45]))\\d{4,10}"],["6(?:485|(?:5[0-3579]|6[013-9]|[7-9]\\d)\\d)\\d{3,9}",[7,8,9,10,11,12,13]],["800\\d{6,10}",[9,10,11,12,13]],["(?:8[69][2-68]|9(?:0[01]|3[019]))\\d{6,10}",[9,10,11,12,13]],0,0,0,0,["5(?:0[1-9]|17|[79]\\d)\\d{2,10}|7[28]0\\d{6,10}",[5,6,7,8,9,10,11,12,13]],["8(?:10|2[018])\\d{6,10}|828\\d{5}",[8,9,10,11,12,13]]]],AU:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}",[5,6,7,8,9,10,12],[["(\\d{2})(\\d{3,4})","$1 $2",["16"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,4})","$1 $2 $3",["16"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["14|4"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[2378]"],"(0$1)"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:30|[89])"]]],"0",0,"(183[12])|0",0,0,0,[["(?:(?:2(?:(?:[0-26-9]\\d|3[0-8]|5[0135-9])\\d|4(?:[02-9]\\d|10))|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90))|7(?:[013-57-9]\\d|2[0-8])\\d)\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|[34]\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}",[9]],["4(?:79[01]|83[0-36-9])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,["163\\d{2,6}",[5,6,7,8,9]],["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",[6,8,10,12]]],"0011"],AW:["297","00","(?:[25-79]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[25-9]"]]],0,0,0,0,0,0,[["5(?:2\\d|8[1-9])\\d{4}"],["(?:290|5[69]\\d|6(?:[03]0|22|4[0-2]|[69]\\d)|7(?:[34]\\d|7[07])|9(?:6[45]|9[4-8]))\\d{4}"],["800\\d{4}"],["900\\d{4}"],0,0,0,0,["(?:28\\d|501)\\d{4}"]]],AX:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}",[5,6,7,8,9,10,11,12],0,"0",0,0,0,0,"18",[["18[1-8]\\d{3,6}",[6,7,8,9]],["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",[6,7,8,9,10]],["800\\d{4,6}",[7,8,9]],["[67]00\\d{5,6}",[8,9]],0,0,["20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"]],"00"],AZ:["994","00","365\\d{6}|(?:[124579]\\d|60|88)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[28]|2|365|46","1[28]|2|365[45]|46","1[28]|2|365(?:4|5[02])|46"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[13-9]"],"0$1"]],"0",0,0,0,0,0,[["(?:2[12]428|3655[02])\\d{4}|(?:2(?:22[0-79]|63[0-28])|3654)\\d{5}|(?:(?:1[28]|46)\\d|2(?:[014-6]2|[23]3))\\d{6}"],["36554\\d{4}|(?:[16]0|4[04]|5[015]|7[07]|99)\\d{7}"],["88\\d{7}"],["900200\\d{3}"]]],BA:["387","00","6\\d{8}|(?:[35689]\\d|49|70)\\d{6}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["6[1-3]|[7-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2-$3",["[3-5]|6[56]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["6"],"0$1"]],"0",0,0,0,0,0,[["(?:3(?:[05-79][2-9]|1[4579]|[23][24-9]|4[2-4689]|8[2457-9])|49[2-579]|5(?:0[2-49]|[13][2-9]|[268][2-4679]|4[4689]|5[2-79]|7[2-69]|9[2-4689]))\\d{5}",[8]],["6040\\d{5}|6(?:03|[1-356]|44|7\\d)\\d{6}"],["8[08]\\d{6}",[8]],["9[0246]\\d{6}",[8]],0,0,["703[235]0\\d{3}|70(?:2[0-5]|3[0146]|[56]0)\\d{4}",[8]],0,0,["8[12]\\d{6}",[8]]]],BB:["1","011","(?:246|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","246$1",0,"246",[["246521[0369]\\d{3}|246(?:2(?:2[78]|7[0-4])|4(?:1[024-6]|2\\d|3[2-9])|5(?:20|[34]\\d|54|7[1-3])|6(?:2\\d|38)|7[35]7|9(?:1[89]|63))\\d{4}"],["246(?:(?:2(?:[3568]\\d|4[0-57-9])|3(?:5[2-9]|6[0-6])|4(?:46|5\\d)|69[5-7]|8(?:[2-5]\\d|83))\\d|52(?:1[147]|20))\\d{3}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["(?:246976|900[2-9]\\d\\d)\\d{4}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,["246(?:292|367|4(?:1[7-9]|3[01]|4[47-9]|67)|7(?:1[2-9]|2\\d|3[016]|53))\\d{4}"],0,["24631\\d{5}"]]],BD:["880","00","[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}",[6,7,8,9,10],[["(\\d{2})(\\d{4,6})","$1-$2",["31[5-8]|[459]1"],"0$1"],["(\\d{3})(\\d{3,7})","$1-$2",["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"],"0$1"],["(\\d{4})(\\d{3,6})","$1-$2",["[13-9]|2[23]"],"0$1"],["(\\d)(\\d{7,8})","$1-$2",["2"],"0$1"]],"0",0,0,0,0,0,[["(?:4(?:31\\d\\d|423)|5222)\\d{3}(?:\\d{2})?|8332[6-9]\\d\\d|(?:3(?:03[56]|224)|4(?:22[25]|653))\\d{3,4}|(?:3(?:42[47]|529|823)|4(?:027|525|65(?:28|8))|562|6257|7(?:1(?:5[3-5]|6[12]|7[156]|89)|22[589]56|32|42675|52(?:[25689](?:56|8)|[347]8)|71(?:6[1267]|75|89)|92374)|82(?:2[59]|32)56|9(?:03[23]56|23(?:256|373)|31|5(?:1|2[4589]56)))\\d{3}|(?:3(?:02[348]|22[35]|324|422)|4(?:22[67]|32[236-9]|6(?:2[46]|5[57])|953)|5526|6(?:024|6655)|81)\\d{4,5}|(?:2(?:7(?:1[0-267]|2[0-289]|3[0-29]|4[01]|5[1-3]|6[013]|7[0178]|91)|8(?:0[125]|1[1-6]|2[0157-9]|3[1-69]|41|6[1-35]|7[1-5]|8[1-8]|9[0-6])|9(?:0[0-2]|1[0-4]|2[568]|3[3-6]|5[5-7]|6[0136-9]|7[0-7]|8[014-9]))|3(?:0(?:2[025-79]|3[2-4])|181|22[12]|32[2356]|824)|4(?:02[09]|22[348]|32[045]|523|6(?:27|54))|666(?:22|53)|7(?:22[57-9]|42[56]|82[35])8|8(?:0[124-9]|2(?:181|2[02-4679]8)|4[12]|[5-7]2)|9(?:[04]2|2(?:2|328)|81))\\d{4}|(?:2(?:[23]\\d|[45])\\d\\d|3(?:1(?:2[5-7]|[5-7])|425|822)|4(?:033|1\\d|[257]1|332|4(?:2[246]|5[25])|6(?:2[35]|56|62)|8(?:23|54)|92[2-5])|5(?:02[03489]|22[457]|32[35-79]|42[46]|6(?:[18]|53)|724|826)|6(?:023|2(?:2[2-5]|5[3-5]|8)|32[3478]|42[34]|52[47]|6(?:[18]|6(?:2[34]|5[24]))|[78]2[2-5]|92[2-6])|7(?:02|21\\d|[3-589]1|6[12]|72[24])|8(?:217|3[12]|[5-7]1)|9[24]1)\\d{5}|(?:(?:3[2-8]|5[2-57-9]|6[03-589])1|4[4689][18])\\d{5}|[59]1\\d{5}"],["(?:1[13-9]\\d|644)\\d{7}|(?:3[78]|44|66)[02-9]\\d{7}",[10]],["80[03]\\d{7}",[10]],0,0,0,0,0,["96(?:0[469]|1[0-47]|3[389]|43|6[69]|7[78])\\d{6}",[10]]]],BE:["32","00","4\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:80|9)0"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[239]|4[23]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[15-8]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4"],"0$1"]],"0",0,0,0,0,0,[["80[2-8]\\d{5}|(?:1[0-69]|[23][2-8]|4[23]|5\\d|6[013-57-9]|71|8[1-79]|9[2-4])\\d{6}",[8]],["4[5-9]\\d{7}",[9]],["800[1-9]\\d{4}",[8]],["(?:70(?:2[0-57]|3[04-7]|44|6[04-69]|7[0579])|90\\d\\d)\\d{4}",[8]],0,0,["78(?:0[578]|1[014-8]|2[25]|3[15-8]|48|5[05]|60|7[06-8]|9\\d)\\d{4}",[8]],0,0,["7879\\d{4}",[8]]]],BF:["226","00","(?:[025-7]\\d|44)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[024-7]"]]],0,0,0,0,0,0,[["2(?:0(?:49|5[23]|6[5-7]|9[016-9])|4(?:4[569]|5[4-6]|6[5-7]|7[0179])|5(?:[34]\\d|50|6[5-7]))\\d{4}"],["(?:0[1-7]|44|5[0-8]|[67]\\d)\\d{6}"]]],BG:["359","00","00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}",[6,7,8,9,12],[["(\\d)(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["43[1-6]|70[1-9]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["(?:70|8)0"],"0$1"],["(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3",["43[1-7]|7"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[48]|9[08]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[["2\\d{5,7}|(?:43[1-6]|70[1-9])\\d{4,5}|(?:[36]\\d|4[124-7]|[57][1-9]|8[1-6]|9[1-7])\\d{5,6}",[6,7,8]],["(?:43[07-9]|99[69]\\d)\\d{5}|(?:8[7-9]|98)\\d{7}",[8,9]],["(?:00800\\d\\d|800)\\d{5}",[8,12]],["90\\d{6}",[8]],0,0,0,0,0,["700\\d{5}",[8]]]],BH:["973","00","[136-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[13679]|8[02-4679]"]]],0,0,0,0,0,0,[["(?:1(?:3[1356]|6[0156]|7\\d)\\d|6(?:1[16]\\d|500|6(?:0\\d|3[12]|44|55|7[7-9]|88)|9[69][69])|7(?:[07]\\d\\d|1(?:11|78)))\\d{4}"],["(?:3(?:[0-79]\\d|8[0-57-9])\\d|6(?:3(?:00|33|6[16])|441|6(?:3[03-9]|[69]\\d|7[0-689])))\\d{4}"],["8[02369]\\d{6}"],["(?:87|9[0-8])\\d{6}"],0,0,0,0,0,["84\\d{6}"]]],BI:["257","00","(?:[267]\\d|31)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2367]"]]],0,0,0,0,0,0,[["(?:22|31)\\d{6}"],["(?:29|6[124-9]|7[125-9])\\d{6}"]]],BJ:["229","00","(?:01\\d|[24-689])\\d{7}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["0"]]],0,0,0,0,0,0,[["2090\\d{4}|(?:012\\d\\d|2(?:02|1[037]|2[45]|3[68]|4\\d))\\d{5}"],["(?:01(?:2[5-9]|[4-69]\\d)|4[0-8]|[56]\\d|9[013-9])\\d{6}"],0,0,0,0,["81\\d{6}",[8]],0,["857[58]\\d{4}",[8]]]],BL:["590","00","(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}",[9],0,"0",0,0,0,0,0,[["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"],["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"],["80[0-5]\\d{6}"],0,0,0,0,0,["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]],BM:["1","011","(?:441|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","441$1",0,"441",[["441(?:[46]\\d\\d|5(?:4\\d|60|89))\\d{4}"],["441(?:[2378]\\d|5[0-39]|9[02])\\d{5}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],BN:["673","00","[2-578]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-578]"]]],0,0,0,0,0,0,[["22[0-7]\\d{4}|(?:2[013-9]|[34]\\d|5[0-25-9])\\d{5}"],["(?:22[89]|[78]\\d\\d)\\d{4}"],0,0,0,0,0,0,["5[34]\\d{5}"]]],BO:["591","00(?:1\\d)?","8001\\d{5}|(?:[2-467]\\d|50)\\d{6}",[8,9],[["(\\d)(\\d{7})","$1 $2",["[235]|4[46]"]],["(\\d{8})","$1",["[67]"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["8"]]],"0",0,"0(1\\d)?",0,0,0,[["(?:2(?:2\\d\\d|5(?:11|[258]\\d|9[67])|6(?:12|2\\d|9[34])|8(?:2[34]|39|62))|3(?:3\\d\\d|4(?:6\\d|8[24])|8(?:25|42|5[257]|86|9[25])|9(?:[27]\\d|3[2-4]|4[248]|5[24]|6[2-6]))|4(?:4\\d\\d|6(?:11|[24689]\\d|72)))\\d{4}",[8]],["[67]\\d{7}",[8]],["8001[07]\\d{4}",[9]],0,0,0,0,0,["50\\d{6}",[8]]]],BQ:["599","00","(?:[34]1|7\\d)\\d{5}",[7],0,0,0,0,0,0,"[347]",[["(?:318[023]|41(?:6[023]|70)|7(?:1[578]|2[05]|50)\\d)\\d{3}"],["(?:31(?:8[14-8]|9[14578])|416[14-9]|7(?:0[01]|7[07]|8\\d|9[056])\\d)\\d{3}"]]],BR:["55","00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)","[1-467]\\d{9,10}|55[0-46-9]\\d{8}|[34]\\d{7}|55\\d{7,8}|(?:5[0-46-9]|[89]\\d)\\d{7,9}",[8,9,10,11],[["(\\d{4})(\\d{4})","$1-$2",["300|4(?:0[02]|37|86)","300|4(?:0(?:0|20)|370|864)"]],["(\\d{3})(\\d{2,3})(\\d{4})","$1 $2 $3",["(?:[358]|90)0"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2-$3",["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"],"($1)"],["(\\d{2})(\\d{5})(\\d{4})","$1 $2-$3",["[16][1-9]|[2-57-9]"],"($1)"]],"0",0,"(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?","$2",0,0,[["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-5]\\d{7}",[10]],["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])(?:7|9\\d)\\d{7}",[10,11]],["800\\d{6,7}",[9,10]],["[59]00\\d{6,7}",[9,10]],0,0,0,0,0,["(?:30[03]\\d{3}|4(?:0(?:0\\d|20)|370|864))\\d{4}|300\\d{5}",[8,10]]]],BS:["1","011","(?:242|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([3-8]\\d{6})$|1","242$1",0,"242",[["242(?:3(?:02|[236][1-9]|4[0-24-9]|5[0-68]|7[347]|8[0-4]|9[2-467])|461|502|6(?:0[1-5]|12|2[013]|[45]0|7[67]|8[78]|9[89])|7(?:02|88))\\d{4}"],["242(?:3(?:5[79]|7[56]|95)|4(?:[23][1-9]|4[1-35-9]|5[1-8]|6[2-8]|7\\d|81)|5(?:2[45]|3[35]|44|5[1-46-9]|65|77)|6[34]6|7(?:27|38)|8(?:0[1-9]|1[02-9]|2\\d|3[0-4]|[89]9))\\d{4}"],["242300\\d{4}|8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,["242225\\d{4}"]]],BT:["975","00","[178]\\d{7}|[2-8]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[2-6]|7[246]|8[2-4]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[67]|[78]"]]],0,0,0,0,0,0,[["(?:2[3-6]|[34][5-7]|5[236]|6[2-46]|7[246]|8[2-4])\\d{5}",[7]],["(?:1[67]|[78]7)\\d{6}",[8]]]],BW:["267","00","(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}",[7,8,10],[["(\\d{2})(\\d{5})","$1 $2",["90"]],["(\\d{3})(\\d{4})","$1 $2",["[24-6]|3[15-9]"]],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37]"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[["(?:2(?:4[0-48]|6[0-24]|9[0578])|3(?:1[0-35-9]|55|[69]\\d|7[013]|81)|4(?:6[03]|7[1267]|9[0-5])|5(?:3[03489]|4[0489]|7[1-47]|88|9[0-49])|6(?:2[1-35]|5[149]|8[013467]))\\d{4}",[7]],["(?:321|7[1-8]\\d)\\d{5}",[8]],["(?:0800|800\\d)\\d{6}",[10]],["90\\d{5}",[7]],0,0,0,0,["79(?:1(?:[0-2]\\d|3[0-8])|2[0-7]\\d)\\d{3}",[8]]]],BY:["375","810","(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3})","$1 $2",["800"],"8 $1"],["(\\d{3})(\\d{2})(\\d{2,4})","$1 $2 $3",["800"],"8 $1"],["(\\d{4})(\\d{2})(\\d{3})","$1 $2-$3",["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])","1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"],"8 0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["1(?:[56]|7[467])|2[1-3]"],"8 0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-4]"],"8 0$1"],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["[89]"],"8 $1"]],"8",0,"0|80?",0,0,0,[["(?:1(?:5(?:1[1-5]|[24]\\d|6[2-4]|9[1-7])|6(?:[235]\\d|4[1-7])|7\\d\\d)|2(?:1(?:[246]\\d|3[0-35-9]|5[1-9])|2(?:[235]\\d|4[0-8])|3(?:[26]\\d|3[02-79]|4[024-7]|5[03-7])))\\d{5}",[9]],["(?:2(?:5[5-79]|9[1-9])|(?:33|44)\\d)\\d{6}",[9]],["800\\d{3,7}|8(?:0[13]|20\\d)\\d{7}"],["(?:810|902)\\d{7}",[10]],0,0,0,0,["249\\d{6}",[9]]],"8~10"],BZ:["501","00","(?:0800\\d|[2-8])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1-$2",["[2-8]"]],["(\\d)(\\d{3})(\\d{4})(\\d{3})","$1-$2-$3-$4",["0"]]],0,0,0,0,0,0,[["(?:2(?:[02]\\d|36|[68]0)|[3-58](?:[02]\\d|[68]0)|7(?:[02]\\d|32|[68]0))\\d{4}",[7]],["6[0-35-7]\\d{5}",[7]],["0800\\d{7}",[11]]]],CA:["1","011","[2-9]\\d{9}|3\\d{6}",[7,10],0,"1",0,0,0,0,0,[["(?:2(?:04|[23]6|[48]9|5[07]|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}",[10]],["",[10]],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}",[10]],["900[2-9]\\d{6}",[10]],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}",[10]],0,["310\\d{4}",[7]],0,["600[2-9]\\d{6}",[10]]]],CC:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"([59]\\d{7})$|0","8$1",0,0,[["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}",[9]],["4(?:79[01]|83[0-36-9])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",[6,8,10,12]]],"0011"],CD:["243","00","(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[1-6]"],"0$1"],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["5"],"0$1"]],"0",0,0,0,0,0,[["(?:(?:12|573)\\d\\d|276)\\d{5}|[1-6]\\d{6}"],["88\\d{5}|(?:8[0-69]|9[017-9])\\d{7}",[7,9]]]],CF:["236","00","(?:[27]\\d{3}|8776)\\d{4}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[278]"]]],0,0,0,0,0,0,[["2[12]\\d{6}"],["7[024-7]\\d{6}"],0,["8776\\d{4}"]]],CG:["242","00","222\\d{6}|(?:0\\d|80)\\d{7}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[02]"]]],0,0,0,0,0,0,[["222[1-589]\\d{5}"],["026(?:1[0-5]|6[6-9])\\d{4}|0(?:[14-6]\\d\\d|2(?:40|5[5-8]|6[07-9]))\\d{5}"],0,["80[0-2]\\d{6}"]]],CH:["41","00","8\\d{11}|[2-9]\\d{8}",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8[047]|90"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]|81"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["8"],"0$1"]],"0",0,0,0,0,0,[["(?:2[12467]|3[1-4]|4[134]|5[256]|6[12]|[7-9]1)\\d{7}",[9]],["(?:6[89]|7[235-9])\\d{7}",[9]],["800\\d{6}",[9]],["90[016]\\d{6}",[9]],["878\\d{6}",[9]],["860\\d{9}",[12]],["5[18]\\d{7}",[9]],["74[0248]\\d{6}",[9]],0,["84[0248]\\d{6}",[9]]]],CI:["225","00","[02]\\d{9}",[10],[["(\\d{2})(\\d{2})(\\d)(\\d{5})","$1 $2 $3 $4",["2"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3 $4",["0"]]],0,0,0,0,0,0,[["2(?:[15]\\d{3}|7(?:2(?:0[23]|1[2357]|2[245]|3[45]|4[3-5])|3(?:06|1[69]|[2-6]7)))\\d{5}"],["0[157]\\d{8}"]]],CK:["682","00","[2-578]\\d{4}",[5],[["(\\d{2})(\\d{3})","$1 $2",["[2-578]"]]],0,0,0,0,0,0,[["(?:2\\d|3[13-7]|4[1-5])\\d{3}"],["[578]\\d{4}"]]],CL:["56","(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0","12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}",[9,10,11],[["(\\d{5})(\\d{4})","$1 $2",["219","2196"],"($1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["60|809"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["44"]],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2[1-36]"],"($1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["9(?:10|[2-9])"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-8]|[1-9])"],"($1)"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["60|8"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{3})(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3 $4",["60"]]],0,0,0,0,0,0,[["2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|2\\d{3}|3(?:(?:2\\d|50)\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578])\\d|6(?:00|[13-57]\\d)|8(?:0[1-9]|[1-9]\\d))\\d\\d|9(?:(?:10[01]|(?:[2458]\\d|7[1-9])\\d)\\d|3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}",[9]],["2(?:1982[0-6]|3314[05-9])\\d{3}|(?:2(?:1(?:160|962)|2\\d{3}|3(?:(?:2\\d|50)\\d|3(?:[03467]\\d|1[0-35-9]|2[1-9]|5[0-24-9]|8[0-389]|9[0-8])|600)|646[59])|(?:(?:3[2-5]|[47][1-35]|5[1-3578]|6[13-57])\\d|8(?:0[1-8]|[1-9]\\d))\\d\\d|9(?:(?:10[01]|(?:[2458]\\d|7[1-9])\\d)\\d|3(?:[0-57-9]\\d\\d|6(?:0[02-9]|[1-9]\\d))|6(?:[0-8]\\d\\d|9(?:[02-79]\\d|1[05-9]))|9(?:[03-9]\\d\\d|1(?:[0235-9]\\d|4[0-24-9])|2(?:[0-79]\\d|8[0-46-9]))))\\d{4}",[9]],["(?:123|8)00\\d{6}",[9,11]],0,0,0,0,0,["44\\d{7}",[9]],["600\\d{7,8}",[10,11]]]],CM:["237","00","[26]\\d{8}|88\\d{6,7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["88"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[26]|88"]]],0,0,0,0,0,0,[["2(?:22|33)\\d{6}",[9]],["(?:24[23]|6(?:[25-9]\\d|40))\\d{6}",[9]],["88\\d{6,7}"]]],CN:["86","00|1(?:[12]\\d|79)\\d\\d00","(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}",[7,8,9,10,11,12],[["(\\d{2})(\\d{5,6})","$1 $2",["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]","(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123","10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"],"0$1"],["(\\d{3})(\\d{5,6})","$1 $2",["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]","(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]","85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])","85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["(?:4|80)0"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|2(?:[02-57-9]|1[1-9])","10|2(?:[02-57-9]|1[1-9])","10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"],"0$1",1],["(\\d{3})(\\d{7,8})","$1 $2",["9"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["80"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[3-578]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["1[3-9]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3 $4",["[12]"],"0$1",1]],"0",0,"(1(?:[12]\\d|79)\\d\\d)|0",0,0,0,[["(?:10(?:[02-79]\\d\\d|[18](?:0[1-9]|[1-9]\\d))|2(?:[02-57-9]\\d{3}|1(?:[18](?:0[1-9]|[1-9]\\d)|[2-79]\\d\\d))|(?:41[03]|8078|9(?:78|94))\\d\\d)\\d{5}|(?:10|2[0-57-9])(?:1(?:00|23)\\d\\d|95\\d{3,4})|(?:41[03]|9(?:78|94))(?:100\\d\\d|95\\d{3,4})|8078123|(?:43[35]|754|851)\\d{7,8}|(?:43[35]|754|851)(?:1(?:00\\d|23)\\d|95\\d{3,4})|(?:3(?:11|7[179])|4(?:[15]1|3[12])|5(?:1\\d|2[37]|3[12]|51|7[13-79]|9[15])|7(?:[39]1|5[57]|6[09])|8(?:71|98))(?:[02-8]\\d{7}|1(?:0(?:0\\d\\d(?:\\d{3})?|[1-9]\\d{5})|[13-9]\\d{6}|2(?:[0-24-9]\\d{5}|3\\d(?:\\d{4})?))|9(?:[0-46-9]\\d{6}|5\\d{3}(?:\\d(?:\\d{2})?)?))|(?:3(?:1[02-9]|35|49|5\\d|7[02-68]|9[1-68])|4(?:1[24-9]|2[179]|3[46-9]|5[2-9]|6[47-9]|7\\d|8[23])|5(?:3[03-9]|4[36]|5[02-9]|6[1-46]|7[028]|80|9[2-46-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[17]\\d|2[248]|3[04-9]|4[3-6]|5[0-3689]|6[2368]|9[02-9])|8(?:1[236-8]|2[5-7]|3\\d|5[2-9]|7[02-9]|8[36-8]|9[1-7])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))(?:[02-8]\\d{6}|1(?:0(?:0\\d\\d(?:\\d{2})?|[1-9]\\d{4})|[13-9]\\d{5}|2(?:[0-24-9]\\d{4}|3\\d(?:\\d{3})?))|9(?:[0-46-9]\\d{5}|5\\d{3,5}))",[7,8,9,10,11]],["1740[0-5]\\d{6}|1(?:[38]\\d|4[57]|[59][0-35-9]|6[25-7]|7[0-35-8])\\d{8}",[11]],["(?:(?:10|21)8|8)00\\d{7}",[10,12]],["16[08]\\d{5}",[8]],0,0,0,0,0,["10(?:10\\d{4}|96\\d{3,4})|400\\d{7}|950\\d{7,8}|(?:2[0-57-9]|3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))96\\d{3,4}",[7,8,9,10,11]]],"00"],CO:["57","00(?:4(?:[14]4|56)|[579])","(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["46"]],["(\\d{3})(\\d{7})","$1 $2",["6|90"],"($1)"],["(\\d{3})(\\d{7})","$1 $2",["3[0-357]|9[14]"]],["(\\d)(\\d{3})(\\d{7})","$1-$2-$3",["1"],"0$1",0,"$1 $2 $3"]],"0",0,"0([3579]|4(?:[14]4|56))?",0,0,0,[["601055(?:[0-4]\\d|50)\\d\\d|6010(?:[0-4]\\d|5[0-4])\\d{4}|(?:46|60(?:[18][1-9]|[24-7][2-9]))\\d{6}",[8,10]],["333301[0-5]\\d{3}|3333(?:00|2[5-9]|[3-9]\\d)\\d{4}|(?:3(?:(?:0[0-5]|1\\d|5[01]|70)\\d|2(?:[0-3]\\d|4[1-9])|3(?:00|3[0-24-9]))|9(?:101|408))\\d{6}",[10]],["1800\\d{7}",[11]],["(?:19(?:0[01]|4[78])|901)\\d{7}",[10,11]]]],CR:["506","00","(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}",[8,10],[["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[3-9]"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["[89]"]]],0,0,"(19(?:0[0-2468]|1[09]|20|66|77|99))",0,0,0,[["210[7-9]\\d{4}|2(?:[024-7]\\d|1[1-9])\\d{5}",[8]],["(?:3005\\d|6500[01])\\d{3}|(?:5[07]|6[0-4]|7[0-3]|8[3-9])\\d{6}",[8]],["800\\d{7}",[10]],["90[059]\\d{7}",[10]],0,0,0,0,["(?:210[0-6]|4\\d{3}|5100)\\d{4}",[8]]]],CU:["53","119","(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}",[6,7,8,10],[["(\\d{2})(\\d{4,6})","$1 $2",["2[1-4]|[34]"],"(0$1)"],["(\\d)(\\d{6,7})","$1 $2",["7"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["[56]"],"0$1"],["(\\d{3})(\\d{7})","$1 $2",["8"],"0$1"]],"0",0,0,0,0,0,[["(?:3[23]|4[89])\\d{4,6}|(?:31|4[36]|8(?:0[25]|78)\\d)\\d{6}|(?:2[1-4]|4[1257]|7\\d)\\d{5,6}"],["(?:5\\d|6[2-4])\\d{6}",[8]],["800\\d{7}",[10]],0,0,0,0,0,0,["807\\d{7}",[10]]]],CV:["238","0","(?:[2-59]\\d\\d|800)\\d{4}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2-589]"]]],0,0,0,0,0,0,[["2(?:2[1-7]|3[0-8]|4[12]|5[1256]|6\\d|7[1-3]|8[1-5])\\d{4}"],["(?:36|5[1-389]|9\\d)\\d{5}"],["800\\d{4}"],0,0,0,0,0,["(?:3[3-5]|4[356])\\d{5}"]]],CW:["599","00","(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[3467]"]],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["9[4-8]"]]],0,0,0,0,0,"[69]",[["9(?:4(?:3[0-5]|4[14]|6\\d)|50\\d|7(?:2[014]|3[02-9]|4[4-9]|6[357]|77|8[7-9])|8(?:3[39]|[46]\\d|7[01]|8[57-9]))\\d{4}"],["953[01]\\d{4}|9(?:5[12467]|6[5-9])\\d{5}"],0,0,0,0,0,["955\\d{5}",[8]],0,["60[0-2]\\d{4}",[7]]]],CX:["61","001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011","1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}",[6,7,8,9,10,12],0,"0",0,"([59]\\d{7})$|0","8$1",0,0,[["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}",[9]],["4(?:79[01]|83[0-36-9])\\d{5}|4(?:[0-36]\\d|4[047-9]|[58][0-24-9]|7[02-8]|9[0-47-9])\\d{6}",[9]],["180(?:0\\d{3}|2)\\d{3}",[7,10]],["190[0-26]\\d{6}",[10]],0,0,0,0,["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}",[9]],["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}",[6,8,10,12]]],"0011"],CY:["357","00","(?:[279]\\d|[58]0)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[257-9]"]]],0,0,0,0,0,0,[["2[2-6]\\d{6}"],["9(?:10|[4-79]\\d)\\d{5}"],["800\\d{5}"],["90[09]\\d{5}"],["700\\d{5}"],0,["(?:50|77)\\d{6}"],0,0,["80[1-9]\\d{5}"]]],CZ:["420","00","(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}",[9,10,11,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]|9[015-7]"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{2})","$1 $2 $3 $4",["96"]],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,[["(?:2\\d|3[1257-9]|4[16-9]|5[13-9])\\d{7}",[9]],["7(?:060\\d|19(?:[0-5]\\d|6[0-6]))\\d{4}|(?:60[1-8]|7(?:0[2-5]|[2379]\\d))\\d{6}",[9]],["800\\d{6}",[9]],["9(?:0[05689]|76)\\d{6}",[9]],["70[01]\\d{6}",[9]],["9(?:3\\d{9}|6\\d{7,10})"],["9(?:5\\d|7[2-4])\\d{6}",[9]],0,["9[17]0\\d{6}",[9]],["8[134]\\d{7}",[9]]]],DE:["49","00","[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}",[4,5,6,7,8,9,10,11,12,13,14,15],[["(\\d{2})(\\d{3,13})","$1 $2",["3[02]|40|[68]9"],"0$1"],["(\\d{3})(\\d{3,12})","$1 $2",["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1","2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"],"0$1"],["(\\d{4})(\\d{2,11})","$1 $2",["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]","[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["138"],"0$1"],["(\\d{5})(\\d{2,10})","$1 $2",["3"],"0$1"],["(\\d{3})(\\d{5,11})","$1 $2",["181"],"0$1"],["(\\d{3})(\\d)(\\d{4,10})","$1 $2 $3",["1(?:3|80)|9"],"0$1"],["(\\d{3})(\\d{7,8})","$1 $2",["1[67]"],"0$1"],["(\\d{3})(\\d{7,12})","$1 $2",["8"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["185","1850","18500"],"0$1"],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["18[68]"],"0$1"],["(\\d{4})(\\d{7})","$1 $2",["15[1279]"],"0$1"],["(\\d{5})(\\d{6})","$1 $2",["15[03568]","15(?:[0568]|3[13])"],"0$1"],["(\\d{3})(\\d{8})","$1 $2",["18"],"0$1"],["(\\d{3})(\\d{2})(\\d{7,8})","$1 $2 $3",["1(?:6[023]|7)"],"0$1"],["(\\d{4})(\\d{2})(\\d{7})","$1 $2 $3",["15[279]"],"0$1"],["(\\d{3})(\\d{2})(\\d{8})","$1 $2 $3",["15"],"0$1"]],"0",0,0,0,0,0,[["32\\d{9,11}|49[1-6]\\d{10}|322\\d{6}|49[0-7]\\d{3,9}|(?:[34]0|[68]9)\\d{3,13}|(?:2(?:0[1-689]|[1-3569]\\d|4[0-8]|7[1-7]|8[0-7])|3(?:[3569]\\d|4[0-79]|7[1-7]|8[1-8])|4(?:1[02-9]|[2-48]\\d|5[0-6]|6[0-8]|7[0-79])|5(?:0[2-8]|[124-6]\\d|[38][0-8]|[79][0-7])|6(?:0[02-9]|[1-358]\\d|[47][0-8]|6[1-9])|7(?:0[2-8]|1[1-9]|[27][0-7]|3\\d|[4-6][0-8]|8[0-5]|9[013-7])|8(?:0[2-9]|1[0-79]|2\\d|3[0-46-9]|4[0-6]|5[013-9]|6[1-8]|7[0-8]|8[0-24-6])|9(?:0[6-9]|[1-4]\\d|[589][0-7]|6[0-8]|7[0-467]))\\d{3,12}",[5,6,7,8,9,10,11,12,13,14,15]],["1(?:(?:5(?:[0-25-9]\\d\\d|3(?:10|33))|7[26-9]\\d\\d)\\d{6}|6[023]\\d{7,8})|17\\d{8}",[10,11]],["800\\d{7,12}",[10,11,12,13,14,15]],["(?:137[7-9]|900(?:[135]|9\\d))\\d{6}",[10,11]],["700\\d{8}",[11]],["1(?:6(?:013|255|399)|7(?:(?:[015]1|[69]3)3|[2-4]55|[78]99))\\d{7,8}|15(?:(?:[03-68]00|113)\\d|2\\d55|7\\d99|9\\d33)\\d{7}",[12,13]],["18(?:1\\d{5,11}|[2-9]\\d{8})",[8,9,10,11,12,13,14]],["16(?:4\\d{1,10}|[89]\\d{1,11})",[4,5,6,7,8,9,10,11,12,13,14]],0,["180\\d{5,11}|13(?:7[1-6]\\d\\d|8)\\d{4}",[7,8,9,10,11,12,13,14]]]],DJ:["253","00","(?:2\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[27]"]]],0,0,0,0,0,0,[["2(?:1[2-5]|7[45])\\d{5}"],["77\\d{6}"]]],DK:["45","00","[2-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-9]"]]],0,0,0,0,0,0,[["(?:2(?:[0-59][1-9]|[6-8]\\d)|3(?:[0-3][1-9]|4[13]|5[1-58]|6[1347-9]|7\\d|8[1-8]|9[1-79])|4(?:[0-25][1-9]|[34][2-9]|6[13-579]|7[13579]|8[1-47]|9[127])|5(?:[0-36][1-9]|4[146-9]|5[3-57-9]|7[568]|8[1-358]|9[1-69])|6(?:[0135][1-9]|2[1-68]|4[2-8]|6[1689]|[78]\\d|9[15689])|7(?:[0-69][1-9]|7[3-9]|8[147])|8(?:[16-9][1-9]|2[1-58])|9(?:[1-47-9][1-9]|6\\d))\\d{5}"],["(?:2[6-8]|37|6[78]|96)\\d{6}|(?:2[0-59]|3[0-689]|[457]\\d|6[0-69]|8[126-9]|9[1-47-9])[1-9]\\d{5}"],["80\\d{6}"],["90\\d{6}"]]],DM:["1","011","(?:[58]\\d\\d|767|900)\\d{7}",[10],0,"1",0,"([2-7]\\d{6})$|1","767$1",0,"767",[["767(?:2(?:55|66)|4(?:2[01]|4[0-25-9])|50[0-4])\\d{4}"],["767(?:2(?:[2-4689]5|7[5-7])|31[5-7]|61[1-8]|70[1-6])\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],DO:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,0,0,0,"8001|8[024]9",[["8(?:[04]9[2-9]\\d\\d|29(?:2(?:[0-59]\\d|6[04-9]|7[0-27]|8[0237-9])|3(?:[0-35-9]\\d|4[7-9])|[45]\\d\\d|6(?:[0-27-9]\\d|[3-5][1-9]|6[0135-8])|7(?:0[013-9]|[1-37]\\d|4[1-35689]|5[1-4689]|6[1-57-9]|8[1-79]|9[1-8])|8(?:0[146-9]|1[0-48]|[248]\\d|3[1-79]|5[01589]|6[013-68]|7[124-8]|9[0-8])|9(?:[0-24]\\d|3[02-46-9]|5[0-79]|60|7[0169]|8[57-9]|9[02-9])))\\d{4}"],["8[024]9[2-9]\\d{6}"],["800(?:14|[2-9]\\d)\\d{5}|8[024]9[01]\\d{6}|8(?:33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],DZ:["213","00","(?:[1-4]|[5-79]\\d|80)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["9"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-8]"],"0$1"]],"0",0,0,0,0,0,[["9619\\d{5}|(?:1\\d|2[013-79]|3[0-8]|4[013-689])\\d{6}"],["(?:5(?:4[0-29]|5\\d|6[0-3])|6(?:[569]\\d|7[0-6])|7[7-9]\\d)\\d{6}",[9]],["800\\d{6}",[9]],["80[3-689]1\\d{5}",[9]],0,0,0,0,["98[23]\\d{6}",[9]],["80[12]1\\d{5}",[9]]]],EC:["593","00","1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}",[8,9,10,11],[["(\\d)(\\d{3})(\\d{4})","$1 $2-$3",["[2-7]"],"(0$1)",0,"$1-$2-$3"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{3})(\\d{3,4})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[["[2-7][2-7]\\d{6}",[8]],["964[0-2]\\d{5}|9(?:39|[57][89]|6[0-36-9]|[89]\\d)\\d{6}",[9]],["1800\\d{7}|1[78]00\\d{6}",[10,11]],0,0,0,0,0,["[2-7]890\\d{4}",[8]]]],EE:["372","00","8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88","[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]],["(\\d{4})(\\d{3,4})","$1 $2",["[45]|8(?:00|[1-49])","[45]|8(?:00[1-9]|[1-49])"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[["(?:3[23589]|4[3-8]|6\\d|7[1-9]|88)\\d{5}",[7]],["(?:5\\d{5}|8(?:1(?:0(?:0(?:00|[178]\\d)|[3-9]\\d\\d)|(?:1(?:0[2-6]|1\\d)|(?:2[0-59]|[3-79]\\d)\\d)\\d)|2(?:0(?:0(?:00|4\\d)|(?:19|[2-7]\\d)\\d)|(?:(?:[124-69]\\d|3[5-9])\\d|7(?:[0-79]\\d|8[13-9])|8(?:[2-6]\\d|7[01]))\\d)|[349]\\d{4}))\\d\\d|5(?:(?:[02]\\d|5[0-478])\\d|1(?:[0-8]\\d|95)|6(?:4[0-4]|5[1-589]))\\d{3}",[7,8]],["800(?:(?:0\\d\\d|1)\\d|[2-9])\\d{3}"],["(?:40\\d\\d|900)\\d{4}",[7,8]],["70[0-2]\\d{5}",[8]]]],EG:["20","00","[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}",[8,9,10],[["(\\d)(\\d{7,8})","$1 $2",["[23]"],"0$1"],["(\\d{2})(\\d{6,7})","$1 $2",["1[35]|[4-6]|8[2468]|9[235-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{8})","$1 $2",["1"],"0$1"]],"0",0,0,0,0,0,[["13[23]\\d{6}|(?:15|57)\\d{6,7}|(?:2\\d|3|4[05-8]|5[05]|6[24-689]|8[2468]|9[235-7])\\d{7}",[8,9]],["1[0-25]\\d{8}",[10]],["800\\d{7}",[10]],["900\\d{7}",[10]]]],EH:["212","00","[5-8]\\d{8}",[9],0,"0",0,0,0,0,"528[89]",[["528[89]\\d{5}"],["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-8]|5[0-5]|8[0-7]))\\d{6}"],["80[0-7]\\d{6}"],["89\\d{7}"],0,0,0,0,["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]],ER:["291","00","[178]\\d{6}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[178]"],"0$1"]],"0",0,0,0,0,0,[["(?:1(?:1[12568]|[24]0|55|6[146])|8\\d\\d)\\d{4}"],["(?:17[1-3]|7\\d\\d)\\d{4}"]]],ES:["34","00","[5-9]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[89]00"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-9]"]]],0,0,0,0,0,0,[["96906(?:0[0-8]|1[1-9]|[2-9]\\d)\\d\\d|9(?:69(?:0[0-57-9]|[1-9]\\d)|73(?:[0-8]\\d|9[1-9]))\\d{4}|(?:8(?:[1356]\\d|[28][0-8]|[47][1-9])|9(?:[135]\\d|[268][0-8]|4[1-9]|7[124-9]))\\d{6}"],["96906(?:09|10)\\d\\d|(?:590(?:10[0-2]|600)|97390\\d)\\d{3}|(?:6\\d|7[1-48])\\d{7}"],["[89]00\\d{6}"],["80[367]\\d{6}"],["70\\d{7}"],0,["51\\d{7}"],0,0,["90[12]\\d{6}"]]],ET:["251","00","(?:11|[2-579]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-579]"],"0$1"]],"0",0,0,0,0,0,[["11667[01]\\d{3}|(?:11(?:1(?:1[1-468]|2[2-7]|3[1-5]|5[5-8]|8[6-8])|2(?:13|3[6-8]|5[89]|7[05-9]|8[2-6])|3(?:2[01]|3[0-289]|4[1289]|7[1-4]|87)|4(?:1[69]|3[2-49]|4[0-3]|6[5-8]|7\\d)|5(?:1[578]|44|5[0-4])|6(?:1[578]|2[69]|39|4[5-7]|5[0-5]|6[0-59]|8[015-8]))|2(?:2(?:11[1-9]|22[0-7]|33\\d|44[1467]|66[1-68])|5(?:11[124-6]|33[2-8]|44[1467]|55[14]|66[1-3679]|77[124-79]|880))|3(?:3(?:11[0-46-8]|(?:22|55)[0-6]|33[0134689]|44[04]|66[01467])|4(?:44[0-8]|55[0-69]|66[0-3]|77[1-5]))|4(?:6(?:119|22[0-24-7]|33[1-5]|44[13-69]|55[14-689]|660|88[1-4])|7(?:(?:11|22)[1-9]|33[13-7]|44[13-6]|55[1-689]))|5(?:7(?:227|55[05]|(?:66|77)[14-8])|8(?:11[149]|22[013-79]|33[0-68]|44[013-8]|550|66[1-5]|77\\d)))\\d{4}"],["700[1-9]\\d{5}|(?:7(?:0[1-9]|1[0-8]|22|77|86|99)|9\\d\\d)\\d{6}"]]],FI:["358","00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))","[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}",[5,6,7,8,9,10,11,12],[["(\\d{5})","$1",["20[2-59]"],"0$1"],["(\\d{3})(\\d{3,7})","$1 $2",["(?:[1-3]0|[68])0|70[07-9]"],"0$1"],["(\\d{2})(\\d{4,8})","$1 $2",["[14]|2[09]|50|7[135]"],"0$1"],["(\\d{2})(\\d{6,10})","$1 $2",["7"],"0$1"],["(\\d)(\\d{4,9})","$1 $2",["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"],"0$1"]],"0",0,0,0,0,"1[03-79]|[2-9]",[["1[3-7][1-8]\\d{3,6}|(?:19[1-8]|[23568][1-8]\\d|9(?:00|[1-8]\\d))\\d{2,6}",[5,6,7,8,9]],["4946\\d{2,6}|(?:4[0-8]|50)\\d{4,8}",[6,7,8,9,10]],["800\\d{4,6}",[7,8,9]],["[67]00\\d{5,6}",[8,9]],0,0,["20\\d{4,8}|60[12]\\d{5,6}|7(?:099\\d{4,5}|5[03-9]\\d{3,7})|20[2-59]\\d\\d|(?:606|7(?:0[78]|1|3\\d))\\d{7}|(?:10|29|3[09]|70[1-5]\\d)\\d{4,8}"]],"00"],FJ:["679","0(?:0|52)","45\\d{5}|(?:0800\\d|[235-9])\\d{6}",[7,11],[["(\\d{3})(\\d{4})","$1 $2",["[235-9]|45"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]]],0,0,0,0,0,0,[["603\\d{4}|(?:3[0-5]|6[25-7]|8[58])\\d{5}",[7]],["(?:[279]\\d|45|5[01568]|8[034679])\\d{5}",[7]],["0800\\d{7}",[11]]],"00"],FK:["500","00","[2-7]\\d{4}",[5],0,0,0,0,0,0,0,[["[2-47]\\d{4}"],["[56]\\d{4}"]]],FM:["691","00","(?:[39]\\d\\d|820)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[389]"]]],0,0,0,0,0,0,[["31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-6]\\d)\\d)\\d{3}"],["31(?:00[67]|208|309)\\d\\d|(?:3(?:[2357]0[1-9]|602|804|905)|(?:820|9[2-7]\\d)\\d)\\d{3}"]]],FO:["298","00","[2-9]\\d{5}",[6],[["(\\d{6})","$1",["[2-9]"]]],0,0,"(10(?:01|[12]0|88))",0,0,0,[["(?:20|[34]\\d|8[19])\\d{4}"],["(?:[27][1-9]|5\\d|9[16])\\d{4}"],["80[257-9]\\d{3}"],["90(?:[13-5][15-7]|2[125-7]|9\\d)\\d\\d"],0,0,0,0,["(?:6[0-36]|88)\\d{4}"]]],FR:["33","00","[1-9]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0 $1"],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["[1-79]"],"0$1"]],"0",0,0,0,0,0,[["(?:26[013-9]|59[1-35-9])\\d{6}|(?:[13]\\d|2[0-57-9]|4[1-9]|5[0-8])\\d{7}"],["(?:6(?:[0-24-8]\\d|3[0-8]|9[589])|7[3-9]\\d)\\d{6}"],["80[0-5]\\d{6}"],["836(?:0[0-36-9]|[1-9]\\d)\\d{4}|8(?:1[2-9]|2[2-47-9]|3[0-57-9]|[569]\\d|8[0-35-9])\\d{6}"],0,0,["80[6-9]\\d{6}"],0,["9\\d{8}"],["8(?:1[01]|2[0156]|4[024]|84)\\d{6}"]]],GA:["241","00","(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}",[7,8],[["(\\d)(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-7]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["11|[67]"],"0$1"]],0,0,"0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})","$1",0,0,[["[01]1\\d{6}",[8]],["(?:(?:0[2-7]|7[467])\\d|6(?:0[0-4]|10|[256]\\d))\\d{5}|[2-7]\\d{6}"]]],GB:["44","00","[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}",[7,9,10],[["(\\d{3})(\\d{4})","$1 $2",["800","8001","80011","800111","8001111"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["845","8454","84546","845464"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["800"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["1(?:38|5[23]|69|76|94)","1(?:(?:38|69)7|5(?:24|39)|768|946)","1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["1(?:[2-69][02-9]|[78])"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[25]|7(?:0|6[02-9])","[25]|7(?:0|6(?:[03-9]|2[356]))"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[1389]"],"0$1"]],"0",0,"0|180020",0,0,0,[["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-5])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|5[01]))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}",[9,10]],["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",[10]],["56\\d{8}",[10]]],0," x"],GD:["1","011","(?:473|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","473$1",0,"473",[["473(?:2(?:3[0-2]|69)|3(?:2[89]|86)|4(?:[06]8|3[5-9]|4[0-4]|5[59]|73|90)|63[68]|7(?:58|84)|800|938)\\d{4}"],["473(?:4(?:0[2-79]|1[04-9]|2[0-5]|49|5[6-8])|5(?:2[01]|3[3-8])|901)\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],GE:["995","00","(?:[3-57]\\d\\d|800)\\d{6}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["32"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[57]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[348]"],"0$1"]],"0",0,0,0,0,0,[["(?:3(?:[256]\\d|4[124-9]|7[0-4])|4(?:1\\d|2[2-7]|3[1-79]|4[2-8]|7[239]|9[1-7]))\\d{6}"],["5(?:(?:(?:0555|1(?:[17]77|555))[5-9]|757(?:7[7-9]|8[01]))\\d|22252[0-4])\\d\\d|5(?:0(?:0[17]0|505)|1(?:0[01]0|1(?:07|33|51))|2(?:0[02]0|2[25]2)|3(?:0[03]0|3[35]3)|(?:40[04]|900)0|5222)[0-4]\\d{3}|(?:5(?:0(?:0(?:0\\d|1[12]|22|3[0-6]|44|5[05]|77|88|9[09])|(?:[14]\\d|77)\\d|22[02])|1(?:1(?:[03][01]|[124]\\d|5[2-6]|7[0-4])|4\\d\\d)|[23]555|4(?:4\\d\\d|555)|5(?:[0157-9]\\d\\d|200|333|444)|6[89]\\d\\d|7(?:(?:[0147-9]\\d|22)\\d|5(?:00|[57]5))|8(?:0(?:[018]\\d|2[0-4])|5(?:55|8[89])|8(?:55|88))|9(?:090|[1-35-9]\\d\\d))|790\\d\\d)\\d{4}"],["800\\d{6}"],0,0,0,0,0,["70[67]\\d{6}"]]],GF:["594","00","(?:[56]94\\d|7093)\\d{5}|(?:80|9\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]|9[47]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[89]"],"0$1"]],"0",0,0,0,0,0,[["594(?:[02-49]\\d|1[0-5]|5[6-9]|6[0-3]|80)\\d{4}"],["(?:694(?:[0-249]\\d|3[0-8])|7093[0-3])\\d{4}"],["80[0-5]\\d{6}"],0,0,0,0,0,["9(?:(?:396|76\\d)\\d|476[0-6])\\d{4}"]]],GG:["44","00","(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?",[7,9,10],0,"0",0,"([25-9]\\d{5})$|0|180020","1481$1",0,0,[["1481[25-9]\\d{5}",[10]],["7(?:(?:781|839)\\d|911[17])\\d{5}",[10]],["80[08]\\d{7}|800\\d{6}|8001111"],["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d",[7,10]],["70\\d{8}",[10]],0,["(?:3[0347]|55)\\d{8}",[10]],["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}",[10]],["56\\d{8}",[10]]]],GH:["233","00","(?:[235]\\d{3}|800)\\d{5}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[235]"],"0$1"]],"0",0,0,0,0,0,[["3082[0-5]\\d{4}|3(?:0(?:[237]\\d|8[01])|[167](?:2[0-6]|7\\d|80)|2(?:2[0-5]|7\\d|80)|3(?:2[0-3]|7\\d|80)|4(?:2[013-9]|3[01]|7\\d|80)|5(?:2[0-7]|7\\d|80)|8(?:2[0-2]|7\\d|80)|9(?:[28]0|7\\d))\\d{5}",[9]],["(?:2(?:[0346-9]\\d|5[67])|5(?:[03-7]\\d|9[1-9]))\\d{6}",[9]],["800\\d{5}",[8]]]],GI:["350","00","(?:[25]\\d|60)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["2"]]],0,0,0,0,0,0,[["2190[0-2]\\d{3}|2(?:0(?:[02]\\d|3[01])|16[24-9]|2[2-5]\\d)\\d{4}"],["5251[0-4]\\d{3}|(?:5(?:[146-8]\\d\\d|250)|60(?:1[01]|6\\d))\\d{4}"]]],GL:["299","00","(?:19|[2-689]\\d|70)\\d{4}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["19|[2-9]"]]],0,0,0,0,0,0,[["(?:19|3[1-7]|[68][1-9]|70|9\\d)\\d{4}"],["[245]\\d{5}"],["80\\d{4}"],0,0,0,0,0,["3[89]\\d{4}"]]],GM:["220","00","[2-9]\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[["(?:4(?:[23]\\d\\d|4(?:1[024679]|[6-9]\\d))|5(?:5(?:3\\d|4[0-7])|6[67]\\d|7(?:1[04]|2[035]|3[58]|48))|8[0-589]\\d\\d)\\d{3}"],["556\\d{4}|(?:[23679]\\d|4[015]|5[0-489]|8[67])\\d{5}"]]],GN:["224","00","722\\d{6}|(?:3|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["3"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[67]"]]],0,0,0,0,0,0,[["3(?:0(?:24|3[12]|4[1-35-7]|5[13]|6[189]|[78]1|9[1478])|1\\d\\d)\\d{4}",[8]],["6[0-356]\\d{7}",[9]],0,0,0,0,0,0,["722\\d{6}",[9]]]],GP:["590","00","(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-79]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"],["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"],["80[0-5]\\d{6}"],0,0,0,0,0,["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]],GQ:["240","00","222\\d{6}|(?:3\\d|55|[89]0)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235]"]],["(\\d{3})(\\d{6})","$1 $2",["[89]"]]],0,0,0,0,0,0,[["33[0-24-9]\\d[46]\\d{4}|3(?:33|5\\d)\\d[7-9]\\d{4}"],["(?:222|55\\d)\\d{6}"],["80\\d[1-9]\\d{5}"],["90\\d[1-9]\\d{5}"]]],GR:["30","00","5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}",[10,11,12],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["21|7"]],["(\\d{4})(\\d{6})","$1 $2",["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2689]"]],["(\\d{3})(\\d{3,4})(\\d{5})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[["2(?:1\\d\\d|2(?:2[1-46-9]|[36][1-8]|4[1-7]|5[1-4]|7[1-5]|[89][1-9])|3(?:1\\d|2[1-57]|[35][1-3]|4[13]|7[1-7]|8[124-6]|9[1-79])|4(?:1\\d|2[1-8]|3[1-4]|4[13-5]|6[1-578]|9[1-5])|5(?:1\\d|[29][1-4]|3[1-5]|4[124]|5[1-6])|6(?:1\\d|[269][1-6]|3[1245]|4[1-7]|5[13-9]|7[14]|8[1-5])|7(?:1\\d|2[1-5]|3[1-6]|4[1-7]|5[1-57]|6[135]|9[125-7])|8(?:1\\d|2[1-5]|[34][1-4]|9[1-57]))\\d{6}",[10]],["68[57-9]\\d{7}|(?:69|94)\\d{8}",[10]],["800\\d{7,9}"],["90[19]\\d{7}",[10]],["70\\d{8}",[10]],0,["5005000\\d{3}",[10]],0,0,["8(?:0[16]|12|[27]5|50)\\d{7}",[10]]]],GT:["502","00","80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1 $2",["[2-8]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[["[267][2-9]\\d{6}",[8]],["(?:[3-5]\\d\\d|80[0-4])\\d{5}",[8]],["18[01]\\d{8}",[11]],["19\\d{9}",[11]]]],GU:["1","011","(?:[58]\\d\\d|671|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","671$1",0,"671",[["671(?:2\\d\\d|3(?:00|3[39]|4[349]|55|6[26])|4(?:00|56|7[1-9]|8[02-9])|5(?:55|6[2-5]|88)|6(?:3[2-578]|4[24-9]|5[34]|78|8[235-9])|7(?:[0479]7|2[0167]|3[45]|8[7-9])|8(?:[2-57-9]8|6[478])|9(?:2[29]|6[79]|7[1279]|8[7-9]|9[78]))\\d{4}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],GW:["245","00","[49]\\d{8}|4\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["40"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"]]],0,0,0,0,0,0,[["443\\d{6}",[9]],["9(?:5\\d|6[569]|77)\\d{6}",[9]],0,0,0,0,0,0,["40\\d{5}",[7]]]],GY:["592","001","(?:[2-8]\\d{3}|9008)\\d{3}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[["(?:2(?:1[6-9]|2[0-35-9]|3[1-4]|5[3-9]|6\\d|7[0-79])|3(?:2[25-9]|3\\d)|4(?:4[0-24]|5[56])|50[0-6]|77[1-57])\\d{4}"],["(?:51[01]|6\\d\\d|7(?:[0-5]\\d|6[0-39]|70))\\d{4}"],["(?:289|8(?:00|6[28]|88|99))\\d{4}"],["9008\\d{3}"],0,0,0,0,["515\\d{4}"]]],HK:["852","00(?:30|5[09]|[126-9]?)","8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}",[5,6,7,8,9,11],[["(\\d{3})(\\d{2,5})","$1 $2",["900","9003"]],["(\\d{4})(\\d{4})","$1 $2",["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{3})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["9"]]],0,0,0,0,0,0,[["(?:2(?:[13-9]\\d|2[013-9])\\d|3(?:(?:[1569][0-24-9]|4[0-246-9]|7[0-24-69])\\d|8(?:4[0-8]|[579]\\d|6[0-5]))|58(?:0[1-9]|1[2-9]))\\d{4}",[8]],["(?:4(?:44[0-35-9]|6(?:4[0-57-9]|6[0-6])|7(?:3[0-4]|4[0-48]|6[0-5]))|5(?:35[4-8]|73[0-6]|95[0-8])|6(?:26[013-8]|(?:66|78)[0-5])|70(?:7[1-8]|8[0-8])|84(?:4[0-2]|8[0-35-9])|9(?:29[013-9]|39[014-9]|59[0-467]|899))\\d{4}|(?:4(?:4[0-35-9]|6[0-357-9]|7[0-25])|5(?:[1-59][0-46-9]|6[0-4689]|7[0-246-9])|6(?:0[1-9]|[13-59]\\d|[268][0-57-9]|7[0-79])|70[1-59]|84[0-39]|9(?:0[1-9]|1[02-9]|[2358][0-8]|[467]\\d))\\d{5}",[8]],["800\\d{6}",[9]],["900(?:[0-24-9]\\d{7}|3\\d{1,4})",[5,6,7,8,11]],["8(?:1[0-4679]\\d|2(?:[0-36]\\d|7[0-4])|3(?:[034]\\d|2[09]|70))\\d{4}",[8]],0,["30(?:0[1-9]|[15-7]\\d|2[047]|89)\\d{4}",[8]],["7(?:1(?:0[0-38]|1[0-3679]|3[013]|69|9[0136])|2(?:[02389]\\d|1[18]|7[27-9])|3(?:[0-38]\\d|7[0-369]|9[2357-9])|47\\d|5(?:[178]\\d|5[0-5])|6(?:0[0-7]|2[236-9]|[35]\\d)|7(?:[27]\\d|8[7-9])|8(?:[23689]\\d|7[1-9])|9(?:[025]\\d|6[0-246-8]|7[0-36-9]|8[238]))\\d{4}",[8]]],"00"],HN:["504","00","8\\d{10}|[237-9]\\d{7}",[8,11],[["(\\d{4})(\\d{4})","$1-$2",["[237-9]"]]],0,0,0,0,0,0,[["2(?:2(?:0[0-59]|1[1-9]|[23]\\d|4[02-7]|5[57]|6[245]|7[0135689]|8[01346-9]|9[0-2])|4(?:0[578]|2[3-59]|3[13-9]|4[0-68]|5[1-3589])|5(?:0[2357-9]|1[1-356]|4[03-5]|5\\d|6[014-69]|7[04]|80)|6(?:[056]\\d|17|2[067]|3[047]|4[0-378]|[78][0-8]|9[01])|7(?:0[5-79]|6[46-9]|7[02-9]|8[034]|91)|8(?:79|8[0-357-9]|9[1-57-9]))\\d{4}",[8]],["[37-9]\\d{7}",[8]],["8002\\d{7}",[11]]]],HR:["385","00","[2-69]\\d{8}|80\\d{5,7}|[1-79]\\d{7}|6\\d{6}",[7,8,9],[["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["6[01]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{4})(\\d{3})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6|7[245]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-57]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[["1\\d{7}|(?:2[0-3]|3[1-5]|4[02-47-9]|5[1-3])\\d{6,7}",[8,9]],["9(?:(?:0[1-9]|[12589]\\d)\\d\\d|7(?:[0679]\\d\\d|5(?:[01]\\d|44|55|77|9[5-79])))\\d{4}|98\\d{6}",[8,9]],["80\\d{5,7}"],["6[01459]\\d{6}|6[01]\\d{5}",[7,8]],["7[45]\\d{6}",[8]],0,["62\\d{6,7}|72\\d{6}",[8,9]]]],HT:["509","00","[2-589]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[2-589]"]]],0,0,0,0,0,0,[["2(?:2\\d|5[1-5]|81|9[149])\\d{5}"],["(?:[34]\\d|5[56])\\d{6}"],["8\\d{7}"],0,0,0,0,0,["9(?:[67][0-4]|8[0-3589]|9\\d)\\d{5}"]]],HU:["36","00","[235-7]\\d{8}|[1-9]\\d{7}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"],"(06 $1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"06 $1"]],"06",0,0,0,0,0,[["(?:1\\d|[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6[23689]|8[2-57-9]|9[2-69])\\d{6}",[8]],["(?:[257]0|3[01])\\d{7}",[9]],["(?:[48]0\\d|680[29])\\d{5}"],["9[01]\\d{6}",[8]],0,0,["38\\d{7}",[9]],0,["21\\d{7}",[9]]]],ID:["62","00[89]","00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}",[7,8,9,10,11,12,13,14,15,16,17],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["15"]],["(\\d{2})(\\d{5,9})","$1 $2",["2[124]|[36]1"],"(0$1)"],["(\\d{3})(\\d{5,7})","$1 $2",["800"],"0$1"],["(\\d{3})(\\d{5,8})","$1 $2",["[2-79]"],"(0$1)"],["(\\d{3})(\\d{3,4})(\\d{3})","$1-$2-$3",["8[1-35-9]"],"0$1"],["(\\d{3})(\\d{6,8})","$1 $2",["1"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["804"],"0$1"],["(\\d{3})(\\d)(\\d{3})(\\d{3})","$1 $2 $3 $4",["80"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1-$2-$3",["8"],"0$1"]],"0",0,0,0,0,0,[["2[124]\\d{7,8}|619\\d{8}|2(?:1(?:14|500)|2\\d{3})\\d{3}|61\\d{5,8}|(?:2(?:[35][1-4]|6[0-8]|7[1-6]|8\\d|9[1-8])|3(?:1|[25][1-8]|3[1-68]|4[1-3]|6[1-3568]|7[0-469]|8\\d)|4(?:0[1-589]|1[01347-9]|2[0-36-8]|3[0-24-68]|43|5[1-378]|6[1-5]|7[134]|8[1245])|5(?:1[1-35-9]|2[25-8]|3[124-9]|4[1-3589]|5[1-46]|6[1-8])|6(?:[25]\\d|3[1-69]|4[1-6])|7(?:02|[125][1-9]|[36]\\d|4[1-8]|7[0-36-9])|9(?:0[12]|1[013-8]|2[0-479]|5[125-8]|6[23679]|7[159]|8[01346]))\\d{5,8}",[7,8,9,10,11]],["8[1-35-9]\\d{7,10}",[9,10,11,12]],["00(?:1803\\d{5,11}|7803\\d{7})|(?:177\\d|800)\\d{5,7}",[8,9,10,11,12,13,14,15,16,17]],["809\\d{7}",[10]],0,0,["(?:1500|8071\\d{3})\\d{3}",[7,10]],0,0,["804\\d{7}",[10]]]],IE:["353","00","(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["2[24-9]|47|58|6[237-9]|9[35-9]"],"(0$1)"],["(\\d{3})(\\d{5})","$1 $2",["[45]0"],"(0$1)"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["1"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2569]|4[1-69]|7[14]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["70"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["81"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[78]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["4"],"(0$1)"],["(\\d{2})(\\d)(\\d{3})(\\d{4})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[["(?:1\\d|21)\\d{6,7}|(?:2[24-9]|4(?:0[24]|5\\d|7)|5(?:0[45]|1\\d|8)|6(?:1\\d|[237-9])|9(?:1\\d|[35-9]))\\d{5}|(?:23|4(?:[1-469]|8\\d)|5[23679]|6[4-6]|7[14]|9[04])\\d{7}"],["8(?:22|[35-9]\\d)\\d{6}",[9]],["1800\\d{6}",[10]],["15(?:1[2-8]|[2-8]0|9[089])\\d{6}",[10]],["700\\d{6}",[9]],["88210[1-9]\\d{4}|8(?:[35-79]5\\d\\d|8(?:[013-9]\\d\\d|2(?:[01][1-9]|[2-9]\\d)))\\d{5}",[10]],["818\\d{6}",[9]],0,["76\\d{7}",[9]],["18[59]0\\d{6}",[10]]]],IL:["972","0(?:0|1[2-9])","1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}",[7,8,9,10,11,12],[["(\\d{4})(\\d{3})","$1-$2",["125"]],["(\\d{4})(\\d{2})(\\d{2})","$1-$2-$3",["121"]],["(\\d)(\\d{3})(\\d{4})","$1-$2-$3",["[2-489]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1-$2-$3",["12"]],["(\\d{4})(\\d{6})","$1-$2",["159"]],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3-$4",["1[7-9]"]],["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})","$1-$2 $3-$4",["15"]]],"0",0,0,0,0,0,[["153\\d{8,9}|29[1-9]\\d{5}|(?:2[0-8]|[3489]\\d)\\d{6}",[8,11,12]],["55(?:4(?:0[01]|10|5[0-7])|57[0-289])\\d{4}|5(?:(?:[0-2][02-9]|[36]\\d|[49][2-9]|8[3-7])\\d|5(?:01|2\\d|3[0-3]|4[34]|5[0-25689]|6[6-8]|7[0-267]|8[7-9]|9[1-9]))\\d{5}",[9]],["1(?:255|80[019]\\d{3})\\d{3}",[7,10]],["1212\\d{4}|1(?:200|9(?:0[0-2]|19))\\d{6}",[8,10]],0,["151\\d{8,9}",[11,12]],["1599\\d{6}",[10]],0,["7(?:38(?:[05]\\d|8[018])|8(?:33|55|77|81)\\d)\\d{4}|7(?:18|2[23]|3[237]|47|6[258]|7\\d|82|9[2-9])\\d{6}",[9]],["1700\\d{6}",[10]]]],IM:["44","00","1624\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"([25-8]\\d{5})$|0|180020","1624$1",0,"74576|(?:16|7[56])24",[["1624(?:230|[5-8]\\d\\d)\\d{3}"],["76245[06]\\d{4}|7(?:4576|[59]24\\d|624[0-4689])\\d{5}"],["808162\\d{4}"],["8(?:440[49]06|72299\\d)\\d{3}|(?:8(?:45|70)|90[0167])624\\d{4}"],["70\\d{8}"],0,["3440[49]06\\d{3}|(?:3(?:08162|3\\d{4}|45624|7(?:0624|2299))|55\\d{4})\\d{4}"],0,["56\\d{8}"]]],IN:["91","00","(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}",[8,9,10,11,12,13],[["(\\d{8})","$1",["5(?:0|2[23]|3[03]|[67]1|88)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)","5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"],0,1],["(\\d{4})(\\d{4,5})","$1 $2",["180","1800"],0,1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["140"],0,1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["11|2[02]|33|4[04]|79[1-7]|80[2-46]","11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])","11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"],"0$1",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]","1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"],"0$1",1],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807","1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]","1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"],"0$1",1],["(\\d{5})(\\d{5})","$1 $2",["[6-9]"],"0$1",1],["(\\d{4})(\\d{2,4})(\\d{4})","$1 $2 $3",["1(?:6|8[06])","1(?:6|8[06]0)"],0,1],["(\\d{4})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["18"],0,1]],"0",0,0,0,0,0,[["2717(?:[2-7]\\d|95)\\d{4}|(?:271[0-689]|782[0-6])[2-7]\\d{5}|(?:170[24]|2(?:(?:[02][2-79]|90)\\d|80[13468])|(?:3(?:23|80)|683|79[1-7])\\d|4(?:20[24]|72[2-8])|552[1-7])\\d{6}|(?:11|33|4[04]|80)[2-7]\\d{7}|(?:342|674|788)(?:[0189][2-7]|[2-7]\\d)\\d{5}|(?:1(?:2[0-249]|3[0-25]|4[145]|[59][14]|6[014]|7[1257]|8[01346])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568]|9[14])|3(?:26|4[13]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[014-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|2[14]|3[134]|4[47]|5[15]|[67]1)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91))[2-7]\\d{6}|(?:1(?:2[35-8]|3[346-9]|4[236-9]|[59][0235-9]|6[235-9]|7[34689]|8[257-9])|2(?:1[134689]|3[24-8]|4[2-8]|5[25689]|6[2-4679]|7[3-79]|8[2-479]|9[235-9])|3(?:01|1[79]|2[1245]|4[5-8]|5[125689]|6[235-7]|7[157-9]|8[2-46-8])|4(?:1[14578]|2[5689]|3[2-467]|5[4-7]|6[35]|73|8[2689]|9[2389])|5(?:[16][146-9]|2[14-8]|3[1346]|4[14-69]|5[46]|7[2-4]|8[2-8]|9[246])|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])|7(?:1[013-9]|2[0235-9]|3[2679]|4[1-35689]|5[2-46-9]|[67][02-9]|8[013-7]|9[089])|8(?:1[1357-9]|2[235-8]|3[03-57-9]|4[0-24-9]|5\\d|6[2457-9]|7[1-6]|8[1256]|9[2-4]))\\d[2-7]\\d{5}",[10]],["(?:61279|7(?:887[02-9]|9(?:313|79[07-9]))|8(?:079[04-9]|(?:84|91)7[02-8]))\\d{5}|(?:6(?:12|[2-47]1|5[17]|6[13]|80)[0189]|7(?:1(?:2[0189]|9[0-5])|2(?:[14][017-9]|8[0-59])|3(?:2[5-8]|[34][017-9]|9[016-9])|4(?:1[015-9]|[29][89]|39|8[389])|5(?:[15][017-9]|2[04-9]|9[7-9])|6(?:0[0-47]|1[0-257-9]|2[0-4]|3[19]|5[4589])|70[0289]|88[089]|97[02-8])|8(?:0(?:6[67]|7[02-8])|70[017-9]|84[01489]|91[0-289]))\\d{6}|(?:7(?:31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[0189]\\d|7[02-8])\\d{5}|(?:6(?:[09]\\d|1[04679]|2[03689]|3[05-9]|4[0489]|50|6[069]|7[07]|8[7-9])|7(?:0\\d|2[0235-79]|3[05-8]|40|5[0346-8]|6[6-9]|7[1-9]|8[0-79]|9[089])|8(?:0[01589]|1[0-57-9]|2[235-9]|3[03-57-9]|[45]\\d|6[02457-9]|7[1-69]|8[0-25-9]|9[02-9])|9\\d\\d)\\d{7}|(?:6(?:(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|8[124-6])\\d|7(?:[235689]\\d|4[0189]))|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-5])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]|881))[0189]\\d{5}",[10]],["000800\\d{7}|1(?:600\\d{6}|80(?:0\\d{4,9}|3\\d{9}))"],["186[12]\\d{9}",[13]],0,0,["140\\d{7}",[10]],0,0,["1860\\d{7}",[11]]]],IO:["246","00","3\\d{6}",[7],[["(\\d{3})(\\d{4})","$1 $2",["3"]]],0,0,0,0,0,0,[["37\\d{5}"],["38\\d{5}"]]],IQ:["964","00","(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-6]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[["1\\d{7}|(?:2[13-5]|3[02367]|4[023]|5[03]|6[026])\\d{6,7}",[8,9]],["7[3-9]\\d{8}",[10]]]],IR:["98","00","[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}",[4,5,6,7,10],[["(\\d{4,5})","$1",["96"],"0$1"],["(\\d{2})(\\d{4,5})","$1 $2",["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["9"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["[1-8]"],"0$1"]],"0",0,0,0,0,0,[["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])(?:[03-57]\\d{7}|[16]\\d{3}(?:\\d{4})?|[289]\\d{3}(?:\\d(?:\\d{3})?)?)|94(?:000[09]|(?:12\\d|30[0-2])\\d|2(?:121|[2689]0\\d)|4(?:111|40\\d))\\d{4}",[6,7,10]],["9(?:(?:0[0-5]|[13]\\d|2[0-3])\\d\\d|9(?:[0-46]\\d\\d|5(?:10|5\\d)|8(?:[12]\\d|88)|9(?:0[0-3]|[19]\\d|21|69|77|8[7-9])))\\d{5}",[10]],0,0,0,0,["96(?:0[12]|2[16-8]|3(?:08|[14]5|[23]|66)|4(?:0|80)|5[01]|6[89]|86|9[19])",[4,5]]]],IS:["354","00|1(?:0(?:01|[12]0)|100)","(?:38\\d|[4-9])\\d{6}",[7,9],[["(\\d{3})(\\d{4})","$1 $2",["[4-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["3"]]],0,0,0,0,0,0,[["(?:4(?:1[0-24-69]|2[0-7]|[37][0-8]|4[0-24589]|5[0-68]|6\\d|8[0-36-8])|5(?:05|[156]\\d|2[02578]|3[0-579]|4[03-7]|7[0-2578]|8[0-35-9]|9[013-689])|872)\\d{4}",[7]],["(?:38[589]\\d\\d|6(?:1[1-8]|2[0-6]|3[026-9]|4[014679]|5[0159]|6[0-69]|70|8[06-8]|9\\d)|7(?:5[057]|[6-9]\\d)|8(?:2[0-59]|[3-69]\\d|8[238]))\\d{4}"],["80[0-8]\\d{4}",[7]],["90(?:0\\d|1[5-79]|2[015-79]|3[135-79]|4[125-7]|5[25-79]|7[1-37]|8[0-35-7])\\d{3}",[7]],0,["(?:689|8(?:7[18]|80)|95[48])\\d{4}",[7]],["809\\d{4}",[7]],0,["49[0-24-79]\\d{4}",[7]]],"00"],IT:["39","00","0\\d{5,11}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?",[6,7,8,9,10,11,12],[["(\\d{2})(\\d{4,6})","$1 $2",["0[26]"]],["(\\d{3})(\\d{3,6})","$1 $2",["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])","0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]],["(\\d{4})(\\d{2,6})","$1 $2",["0(?:[13-579][2-46-8]|8[236-8])"]],["(\\d{4})(\\d{4})","$1 $2",["894"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[26]|5"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["1(?:44|[679])|[378]|43"]],["(\\d{3})(\\d{3,4})(\\d{4})","$1 $2 $3",["0[13-57-9][0159]|14"]],["(\\d{2})(\\d{4})(\\d{5})","$1 $2 $3",["0[26]"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[03]"]]],0,0,0,0,0,0,[["0(?:669[0-79]\\d{1,6}|831\\d{2,8})|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[2356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}"],["3[2-9]\\d{7,8}|(?:31|43)\\d{8}",[9,10]],["80(?:0\\d{3}|3)\\d{3}",[6,9]],["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}",[6,8,9,10]],["1(?:78\\d|99)\\d{6}",[9,10]],["3[2-8]\\d{9,10}",[11,12]],0,0,["55\\d{8}",[10]],["84(?:[08]\\d{3}|[17])\\d{3}",[6,9]]]],JE:["44","00","1534\\d{6}|(?:[3578]\\d|90)\\d{8}",[10],0,"0",0,"([0-24-8]\\d{5})$|0|180020","1534$1",0,0,[["1534[0-24-8]\\d{5}"],["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"],["80(?:07(?:35|81)|8901)\\d{4}"],["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"],["701511\\d{4}"],0,["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"],["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"],["56\\d{8}"]]],JM:["1","011","(?:[58]\\d\\d|658|900)\\d{7}",[10],0,"1",0,0,0,0,"658|876",[["8766060\\d{3}|(?:658(?:2(?:[0-8]\\d|9[0-46-9])|[3-9]\\d\\d)|876(?:52[35]|6(?:0[1-3579]|1[0235-9]|[23]\\d|40|5[06]|6[2-589]|7[0-25-9]|8[04]|9[4-9])|7(?:0[2-689]|[1-6]\\d|8[056]|9[45])|9(?:0[1-8]|1[02378]|[2-8]\\d|9[2-468])))\\d{4}"],["(?:658295|876(?:2(?:0[1-9]|[13-9]\\d|2[013-9])|[348]\\d\\d|5(?:0[1-9]|[1-9]\\d)|6(?:4[89]|6[67])|7(?:0[07]|7\\d|8[1-47-9]|9[0-36-9])|9(?:[01]9|9[0579])))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],JO:["962","00","(?:(?:[2689]|7\\d)\\d|32|427|53)\\d{6}",[8,9],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2356]|87"],"(0$1)"],["(\\d{3})(\\d{5,6})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["70"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[47]"],"0$1"]],"0",0,0,0,0,0,[["87(?:000|90[01])\\d{3}|(?:2(?:6(?:2[0-35-9]|3[0-578]|4[24-7]|5[0-24-8]|[6-8][023]|9[0-3])|7(?:0[1-79]|10|2[014-7]|3[0-689]|4[019]|5[0-3578]))|32(?:0[1-69]|1[1-35-7]|2[024-7]|3\\d|4[0-3]|[5-7][023])|53(?:0[0-3]|[13][023]|2[0-59]|49|5[0-35-9]|6[15]|7[45]|8[1-6]|9[0-36-9])|6(?:2(?:[05]0|22)|3(?:00|33)|4(?:0[0-25]|1[2-7]|2[0569]|[38][07-9]|4[025689]|6[0-589]|7\\d|9[0-2])|5(?:[01][056]|2[034]|3[0-57-9]|4[178]|5[0-69]|6[0-35-9]|7[1-379]|8[0-68]|9[0239]))|87(?:20|7[078]|99))\\d{4}",[8]],["(?:427|7(?:[78][0-25-9]|9\\d))\\d{6}",[9]],["80\\d{6}",[8]],["9\\d{7}",[8]],["70\\d{7}",[9]],0,["8(?:10|8\\d)\\d{5}",[8]],["74(?:66|77)\\d{5}",[9]],0,["85\\d{6}",[8]]]],JP:["81","010","00[1-9]\\d{6,14}|[25-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}",[8,9,10,11,12,13,14,15,16,17],[["(\\d{3})(\\d{3})(\\d{3})","$1-$2-$3",["(?:12|57|99)0"],"0$1"],["(\\d{4})(\\d)(\\d{4})","$1-$2-$3",["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]","1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["60"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2-$3",["3|4(?:2[09]|7[01])|6[1-9]","3|4(?:2(?:0|9[02-69])|7(?:0[019]|1))|6[1-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]","1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"],"0$1"],["(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3",["[14]|[289][2-9]|5[3-9]|7[2-4679]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1-$2-$3",["800"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[25-9]"],"0$1"]],"0",0,"(000[2569]\\d{4,6})$|(?:(?:003768)0?)|0","$1",0,0,[["(?:1(?:1[235-8]|2[3-6]|3[3-9]|4[2-6]|[58][2-8]|6[2-7]|7[2-9]|9[1-9])|(?:2[2-9]|[36][1-9])\\d|4(?:[2-578]\\d|6[02-8]|9[2-59])|5(?:[2-589]\\d|6[1-9]|7[2-8])|7(?:[25-9]\\d|3[4-9]|4[02-9])|8(?:[2679]\\d|3[2-9]|4[5-9]|5[1-9]|8[03-9])|9(?:[2-58]\\d|[679][1-9]))\\d{6}",[9]],["(?:601[0-4]0|[7-9]0[1-9]\\d\\d)\\d{5}",[10]],["00777(?:[01]|5\\d)\\d\\d|(?:00(?:7778|882[1245])|(?:120|800\\d)\\d\\d)\\d{4}|00(?:37|66|78)\\d{6,13}"],["990\\d{6}",[9]],["60\\d{7}",[9]],0,["570\\d{6}",[9]],["20\\d{8}",[10]],["50[1-9]\\d{7}",[10]]]],KE:["254","000","(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}",[7,8,9,10],[["(\\d{2})(\\d{5,7})","$1 $2",["[24-6]"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[17]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[["(?:4[245]|5[1-79]|6[01457-9])\\d{5,7}|(?:4[136]|5[08]|62)\\d{7}|(?:[24]0|66)\\d{6,7}",[7,8,9]],["(?:1(?:0[0-8]|1\\d|2[014]|[34]0)|7\\d\\d)\\d{6}",[9]],["800[02-8]\\d{5,6}",[9,10]],["900[02-9]\\d{5}",[9]]]],KG:["996","00","8\\d{9}|[235-9]\\d{8}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["3(?:1[346]|[24-79])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-79]|88"],"0$1"],["(\\d{3})(\\d{3})(\\d)(\\d{2,3})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[["312(?:5[0-79]\\d|9(?:[0-689]\\d|7[0-24-9]))\\d{3}|(?:3(?:1(?:2[0-46-8]|3[1-9]|47|[56]\\d)|2(?:22|3[0-479]|6[0-7])|4(?:22|5[6-9]|6\\d)|5(?:22|3[4-7]|59|6\\d)|6(?:22|5[35-7]|6\\d)|7(?:22|3[468]|4[1-9]|59|[67]\\d)|9(?:22|4[1-8]|6\\d))|6(?:09|12|2[2-4])\\d)\\d{5}",[9]],["312(?:58\\d|973)\\d{3}|(?:2(?:0[0-35]|2\\d)|5[0-24-7]\\d|600|7(?:[07]\\d|55)|88[08]|9(?:12|9[05-9]))\\d{6}",[9]],["800\\d{6,7}"]]],KH:["855","00[14-9]","1\\d{9}|[1-9]\\d{7,8}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[["23(?:4(?:[2-4]|[56]\\d)|[568]\\d\\d)\\d{4}|23[236-9]\\d{5}|(?:2[4-6]|3[2-6]|4[2-4]|[5-7][2-5])(?:(?:[237-9]|4[56]|5\\d)\\d{5}|6\\d{5,6})",[8,9]],["(?:(?:1[28]|3[18]|9[67])\\d|6[016-9]|7(?:[07-9]|[16]\\d)|8(?:[013-79]|8\\d))\\d{6}|(?:1\\d|9[0-57-9])\\d{6}|(?:2[3-6]|3[2-6]|4[2-4]|[5-7][2-5])48\\d{5}",[8,9]],["1800(?:1\\d|2[019])\\d{4}",[10]],["1900(?:1\\d|2[09])\\d{4}",[10]]]],KI:["686","00","(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}",[5,8],0,"0",0,0,0,0,0,[["(?:[24]\\d|3[1-9]|50|65(?:02[12]|12[56]|22[89]|[3-5]00)|7(?:27\\d\\d|3100|5(?:02[12]|12[56]|22[89]|[34](?:00|81)|500))|8[0-5])\\d{3}"],["(?:6200[01]|7(?:310[1-9]|5(?:02[03-9]|12[0-47-9]|22[0-7]|[34](?:0[1-9]|8[02-9])|50[1-9])))\\d{3}|(?:63\\d\\d|7(?:(?:[0146-9]\\d|2[0-689])\\d|3(?:[02-9]\\d|1[1-9])|5(?:[0-2][013-9]|[34][1-79]|5[1-9]|[6-9]\\d)))\\d{4}",[8]],0,0,0,0,0,0,["30(?:0[01]\\d\\d|12(?:11|20))\\d\\d",[8]]]],KM:["269","00","[3478]\\d{6}",[7],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[3478]"]]],0,0,0,0,0,0,[["7[4-7]\\d{5}"],["[34]\\d{6}"],0,["8\\d{6}"]]],KN:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-7]\\d{6})$|1","869$1",0,"869",[["869(?:2(?:29|36)|302|4(?:6[015-9]|70)|56[5-7])\\d{4}"],["869(?:48[89]|55[6-8]|66\\d|76[02-7])\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],KP:["850","00|99","85\\d{6}|(?:19\\d|[2-7])\\d{7}",[8,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2-7]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"]],"0",0,0,0,0,0,[["(?:(?:195|2)\\d|3[19]|4[159]|5[37]|6[17]|7[39]|85)\\d{6}"],["19[1-3]\\d{7}",[10]]]],KR:["82","00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))","00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}",[5,6,8,9,10,11,12,13,14],[["(\\d{2})(\\d{3,4})","$1-$2",["(?:3[1-3]|[46][1-4]|5[1-5])1"],"0$1"],["(\\d{4})(\\d{4})","$1-$2",["1"]],["(\\d)(\\d{3,4})(\\d{4})","$1-$2-$3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1-$2-$3",["[36]0|8"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1-$2-$3",["[1346]|5[1-5]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2-$3",["[57]"],"0$1"],["(\\d{2})(\\d{5})(\\d{4})","$1-$2-$3",["5"],"0$1"]],"0",0,"0(8(?:[1-46-8]|5\\d\\d))?",0,0,0,[["(?:2|3[1-3]|[46][1-4]|5[1-5])[1-9]\\d{6,7}|(?:3[1-3]|[46][1-4]|5[1-5])1\\d{2,3}",[5,6,8,9,10]],["1(?:05(?:[0-8]\\d|9[0-6])|22[13]\\d)\\d{4,5}|1(?:0[0-46-9]|[16-9]\\d|2[013-9])\\d{6,7}",[9,10]],["00(?:308\\d{6,7}|798\\d{7,9})|(?:00368|[38]0)\\d{7}",[9,11,12,13,14]],["60[2-9]\\d{6}",[9]],["50\\d{8,9}",[10,11]],0,["1(?:5(?:22|33|44|66|77|88|99)|6(?:[07]0|44|6[0168]|88)|8(?:00|33|55|77|99))\\d{4}",[8]],["15\\d{7,8}",[9,10]],["70\\d{8}",[10]]]],KW:["965","00","18\\d{5}|(?:[2569]\\d|41)\\d{6}",[7,8],[["(\\d{4})(\\d{3,4})","$1 $2",["[169]|2(?:[235]|4[1-35-9])|52"]],["(\\d{3})(\\d{5})","$1 $2",["[245]"]]],0,0,0,0,0,0,[["2(?:[23]\\d\\d|4(?:[1-35-9]\\d|44)|5(?:0[034]|[2-46]\\d|5[1-3]|7[1-7]))\\d{4}",[8]],["(?:41\\d\\d|5(?:(?:[05]\\d|1[0-7]|6[56])\\d|2(?:22|5[25])|7(?:55|77)|88[58])|6(?:(?:0[034679]|5[015-9]|6\\d)\\d|1(?:00|11|6[16])|2[26]2|3[36]3|4[46]4|7(?:0[013-9]|[67]\\d)|8[68]8|9(?:[069]\\d|3[039]))|9(?:(?:[04679]\\d|8[057-9])\\d|1(?:00|1[01]|99)|2(?:00|2\\d)|3(?:00|3[03])|5(?:00|5\\d)))\\d{4}",[8]],["18\\d{5}",[7]]]],KY:["1","011","(?:345|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","345$1",0,"345",[["345(?:2(?:22|3[23]|44|66)|333|444|6(?:23|38|40)|7(?:30|4[35-79]|6[6-9]|77)|8(?:00|1[45]|4[89]|88)|9(?:14|4[035-9]))\\d{4}"],["345(?:32[1-9]|42[0-4]|5(?:1[67]|2[5-79]|4[6-9]|50|76)|649|82[56]|9(?:1[679]|2[2-9]|3[06-9]|90))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["(?:345976|900[2-9]\\d\\d)\\d{4}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],KZ:["7","810","(?:33622|8\\d{8})\\d{5}|[78]\\d{9}",[10,14],0,"8",0,0,0,0,"33622|7",[["(?:33622|7(?:1(?:0(?:[23]\\d|4[0-3]|59|63)|1(?:[23]\\d|4[0-79]|59)|2(?:[23]\\d|59)|3(?:2\\d|3[0-79]|4[0-35-9]|59)|4(?:[24]\\d|3[013-9]|5[1-9]|97)|5(?:2\\d|3[1-9]|4[0-7]|59)|6(?:[2-4]\\d|5[19]|61)|72\\d|8(?:[27]\\d|3[1-46-9]|4[0-5]|59))|2(?:1(?:[23]\\d|4[46-9]|5[3469])|2(?:2\\d|3[0679]|46|5[12679])|3(?:[2-4]\\d|5[139])|4(?:2\\d|3[1-35-9]|59)|5(?:[23]\\d|4[0-8]|59|61)|6(?:2\\d|3[1-9]|4[0-4]|59)|7(?:[2379]\\d|40|5[279])|8(?:[23]\\d|4[0-3]|59)|9(?:2\\d|3[124578]|59))))\\d{5}",[10]],["7(?:0[0-25-8]|47|6[0-4]|7[15-8]|85)\\d{7}",[10]],["8(?:00|108\\d{3})\\d{7}"],["809\\d{7}",[10]],["808\\d{7}",[10]],0,0,0,["751\\d{7}",[10]]],"8~10"],LA:["856","00","[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}",[8,9,10],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2[13]|3[14]|[4-8]"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["3"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,0,0,0,0,[["(?:2[13]|[35-7][14]|41|8[1468])\\d{6}",[8]],["(?:20(?:[23579]\\d|8[78])|30[24]\\d)\\d{6}|30\\d{7}",[9,10]]]],LB:["961","00","[27-9]\\d{7}|[13-9]\\d{6}",[7,8],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[13-69]|7(?:[2-57]|62|8[0-6]|9[04-9])|8[02-9]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[27-9]"]]],"0",0,0,0,0,0,[["7(?:62|8[0-6]|9[04-9])\\d{4}|(?:[14-69]\\d|2(?:[14-69]\\d|[78][1-9])|7[2-57]|8[02-9])\\d{5}"],["(?:(?:3|81)\\d|7(?:[01]\\d|6[013-9]|8[7-9]|9[0-3]))\\d{5}"],0,["9[01]\\d{6}",[8]],0,0,0,0,0,["80\\d{6}",[8]]]],LC:["1","011","(?:[58]\\d\\d|758|900)\\d{7}",[10],0,"1",0,"([2-8]\\d{6})$|1","758$1",0,"758",[["758(?:234|4(?:30|5\\d|6[2-9]|8[0-2])|57[0-2]|(?:63|75)8)\\d{4}"],["758(?:28[4-7]|384|4(?:6[01]|8[4-9])|5(?:1[89]|20|84)|7(?:1[2-9]|2\\d|3[0-3])|812)\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],LI:["423","00","[68]\\d{8}|(?:[2378]\\d|90)\\d{5}",[7,9],[["(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3",["[2379]|8(?:0[09]|7)","[2379]|8(?:0(?:02|9)|7)"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["69"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]]],"0",0,"(1001)|0",0,0,0,[["(?:2(?:01|1[27]|2[024]|3\\d|6[02-578]|96)|3(?:[24]0|33|7[0135-7]|8[048]|9[0269]))\\d{4}",[7]],["(?:6(?:(?:4[5-9]|5\\d)\\d|6(?:[024-68]\\d|1[01]|3[7-9]|70))\\d|7(?:[37-9]\\d|42|56))\\d{4}"],["8002[28]\\d\\d|80(?:05\\d|9)\\d{4}"],["90(?:02[258]|1(?:23|3[14])|66[136])\\d\\d",[7]],0,["697(?:42|56|[78]\\d)\\d{4}",[9]],["870(?:28|87)\\d\\d",[7]]]],LK:["94","00","[1-9]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[1-689]"],"0$1"]],"0",0,0,0,0,0,[["(?:12[2-9]|602|8[12]\\d|9(?:1\\d|22|9[245]))\\d{6}|(?:11|2[13-7]|3[1-8]|4[157]|5[12457]|6[35-7])[2-57]\\d{6}"],["7(?:[0-25-8]\\d|4[0-4])\\d{6}"],0,0,0,0,["1973\\d{5}"]]],LR:["231","00","(?:[2457]\\d|33|88)\\d{7}|(?:2\\d|[4-6])\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["4[67]|[56]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[2-578]"],"0$1"]],"0",0,0,0,0,0,[["2\\d{7}",[8]],["(?:(?:(?:22|33)0|555|7(?:6[01]|7\\d)|88\\d)\\d|4(?:240|[67]))\\d{5}|[56]\\d{6}",[7,9]],0,["332(?:02|[34]\\d)\\d{4}",[9]]]],LS:["266","00","(?:[256]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2568]"]]],0,0,0,0,0,0,[["2\\d{7}"],["[56]\\d{7}"],["800[1256]\\d{4}"]]],LT:["370","00","(?:[3469]\\d|52|[78]0)\\d{6}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["52[0-7]"],"(0-$1)",1],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[7-9]"],"0 $1",1],["(\\d{2})(\\d{6})","$1 $2",["37|4(?:[15]|6[1-8])"],"(0-$1)",1],["(\\d{3})(\\d{5})","$1 $2",["[3-6]"],"(0-$1)",1]],"0",0,"[08]",0,0,0,[["(?:3[1478]|4[124-6]|52)\\d{6}"],["6\\d{7}"],["80[02]\\d{5}"],["9(?:0[0239]|10)\\d{5}"],["70[05]\\d{5}"],0,["70[67]\\d{5}"],0,["[89]01\\d{5}"],["808\\d{5}"]]],LU:["352","00","35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}",[4,5,6,7,8,9,10,11],[["(\\d{2})(\\d{3})","$1 $2",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["20[2-689]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4",["2(?:[0367]|4[3-8])"]],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["80[01]|90[015]"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3 $4",["20"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})","$1 $2 $3 $4 $5",["2(?:[0367]|4[3-8])"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})","$1 $2 $3 $4",["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]],0,0,"(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)",0,0,0,[["(?:35[013-9]|80[2-9]|90[89])\\d{1,8}|(?:2[2-9]|3[0-46-9]|[457]\\d|8[13-9]|9[2-579])\\d{2,9}"],["6(?:[269][18]|5[1568]|7[189]|81)\\d{6}",[9]],["800\\d{5}",[8]],["90[015]\\d{5}",[8]],0,0,0,0,["20(?:1\\d{5}|[2-689]\\d{1,7})",[4,5,6,7,8,9,10]],["801\\d{5}",[8]]]],LV:["371","00","(?:[268]\\d|78|90)\\d{6}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2679]|8[01]"]]],0,0,0,0,0,0,[["6\\d{7}"],["2333[0-8]\\d{3}|2(?:[0-24-9]\\d\\d|3(?:0[07]|[14-9]\\d|2[02-9]|3[0-24-9]))\\d{4}"],["80\\d{6}"],["90\\d{6}"],0,0,0,0,0,["81\\d{6}"]]],LY:["218","00","[2-9]\\d{8}",[9],[["(\\d{2})(\\d{7})","$1-$2",["[2-9]"],"0$1"]],"0",0,0,0,0,0,[["(?:2(?:0[56]|[1-6]\\d|7[124579]|8[124])|3(?:1\\d|2[2356])|4(?:[17]\\d|2[1-357]|5[2-4]|8[124])|5(?:[1347]\\d|2[1-469]|5[13-5]|8[1-4])|6(?:[1-479]\\d|5[2-57]|8[1-5])|7(?:[13]\\d|2[13-79])|8(?:[124]\\d|5[124]|84))\\d{6}"],["9[1-6]\\d{7}"]]],MA:["212","00","[5-8]\\d{8}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5[45]"],"0$1"],["(\\d{4})(\\d{5})","$1-$2",["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"],"0$1"],["(\\d{2})(\\d{7})","$1-$2",["8"],"0$1"],["(\\d{3})(\\d{6})","$1-$2",["[5-7]"],"0$1"]],"0",0,0,0,0,0,[["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"],["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-8]|5[0-5]|8[0-7]))\\d{6}"],["80[0-7]\\d{6}"],["89\\d{7}"],0,0,0,0,["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]],MC:["377","00","(?:[3489]|6\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["4"],"0$1"],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[389]"]],["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4 $5",["6"],"0$1"]],"0",0,0,0,0,0,[["(?:870|9[2-47-9]\\d)\\d{5}",[8]],["4(?:[469]\\d|5[1-9])\\d{5}|(?:3|6\\d)\\d{7}"],["(?:800|90\\d)\\d{5}",[8]]]],MD:["373","00","(?:[235-7]\\d|[89]0)\\d{6}",[8],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["22|3"],"0$1"],["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["[25-7]"],"0$1"]],"0",0,0,0,0,0,[["(?:(?:2[1-9]|3[1-79])\\d|5(?:33|5[257]))\\d{5}"],["562\\d{5}|(?:6\\d|7[16-9])\\d{6}"],["800\\d{5}"],["90[056]\\d{5}"],0,0,["803\\d{5}"],0,["3[08]\\d{6}"],["808\\d{5}"]]],ME:["382","00","(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[2-9]"],"0$1"]],"0",0,0,0,0,0,[["(?:20[2-8]|3(?:[0-2][2-7]|3[24-7])|4(?:0[2-467]|1[2467])|5(?:0[2467]|1[24-7]|2[2-467]))\\d{5}",[8]],["6(?:[07-9]\\d|3[024]|6[0-25])\\d{5}",[8]],["80(?:[0-2578]|9\\d)\\d{5}"],["9(?:4[1568]|5[178])\\d{5}",[8]],0,0,["77[1-9]\\d{5}",[8]],0,["78[1-49]\\d{5}",[8]]]],MF:["590","00","(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}",[9],0,"0",0,0,0,0,0,[["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"],["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"],["80[0-5]\\d{6}"],0,0,0,0,0,["9(?:(?:39[5-7]|76[018])\\d|475[0-6])\\d{4}"]]],MG:["261","00","[23]\\d{8}",[9],[["(\\d{2})(\\d{2})(\\d{3})(\\d{2})","$1 $2 $3 $4",["[23]"],"0$1"]],"0",0,"([24-9]\\d{6})$|0","20$1",0,0,[["2072[29]\\d{4}|20(?:2\\d|4[47]|5[3467]|6[279]|7[356]|8[268]|9[2457])\\d{5}"],["3[2-46-9]\\d{7}"],0,0,0,0,0,0,["22\\d{7}"]]],MH:["692","011","329\\d{4}|(?:[256]\\d|45)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1-$2",["[2-6]"]]],"1",0,0,0,0,0,[["(?:247|528|625)\\d{4}"],["(?:(?:23|54)5|329|45[35-8])\\d{4}"],0,0,0,0,0,0,["635\\d{4}"]]],MK:["389","00","[2-578]\\d{7}",[8],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2|34[47]|4(?:[37]7|5[47]|64)"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[347]"],"0$1"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["[58]"],"0$1"]],"0",0,0,0,0,0,[["(?:(?:2(?:62|77)0|3444)\\d|4[56]440)\\d{3}|(?:34|4[357])700\\d{3}|(?:2(?:[0-3]\\d|5[0-578]|6[01]|82)|3(?:1[3-68]|[23][2-68]|4[23568])|4(?:[23][2-68]|4[3-68]|5[2568]|6[25-8]|7[24-68]|8[4-68]))\\d{5}"],["7(?:3555|(?:474|9[019]7)7)\\d{3}|7(?:[0-25-8]\\d\\d|3(?:[1-478]\\d|6[01])|4(?:2\\d|60|7[01578])|9(?:[2-4]\\d|5[01]|7[015]))\\d{4}"],["800\\d{5}"],["5\\d{7}"],0,0,0,0,0,["8(?:0[1-9]|[1-9]\\d)\\d{5}"]]],ML:["223","00","[24-9]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24-9]"]]],0,0,0,0,0,0,[["2(?:07[0-8]|12[67])\\d{4}|(?:2(?:02|1[4-689])|4(?:0[0-4]|4[1-59]))\\d{5}"],["2(?:0(?:01|79)|17\\d)\\d{4}|(?:5[0-3]|[679]\\d|8[2-59])\\d{6}"],["80\\d{6}"]]],MM:["95","00","1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}",[6,7,8,9,10],[["(\\d)(\\d{2})(\\d{3})","$1 $2 $3",["16|2"],"0$1"],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"],"0$1"],["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[12]|452|678|86","[12]|452|6788|86"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[4-7]|8[1-35]"],"0$1"],["(\\d)(\\d{3})(\\d{4,6})","$1 $2 $3",["9(?:2[0-4]|[35-9]|4[137-9])"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["92"],"0$1"],["(\\d)(\\d{5})(\\d{4})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[["(?:1(?:(?:12|[28]\\d|3[56]|7[3-6]|9[0-6])\\d|4(?:2[29]|7[0-2]|83)|6)|2(?:2(?:00|8[34])|4(?:0\\d|22|7[0-2]|83)|51\\d\\d)|4(?:2(?:2\\d\\d|48[013])|3(?:20\\d|4(?:70|83)|56)|420\\d|5(?:2\\d|470))|6(?:0(?:[23]|88\\d)|(?:124|[56]2\\d)\\d|2472|3(?:20\\d|470)|4(?:2[04]\\d|472)|7(?:3\\d\\d|4[67]0|8(?:[01459]\\d|8))))\\d{4}|5(?:2(?:2\\d{5,6}|47[02]\\d{4})|(?:3472|4(?:2(?:1|86)|470)|522\\d|6(?:20\\d|483)|7(?:20\\d|48[01])|8(?:20\\d|47[02])|9(?:20\\d|470))\\d{4})|7(?:(?:0470|4(?:25\\d|470)|5(?:202|470|96\\d))\\d{4}|1(?:20\\d{4,5}|4(?:70|83)\\d{4}))|8(?:1(?:2\\d{5,6}|4(?:10|7[01]\\d)\\d{3})|2(?:2\\d{5,6}|(?:320|490\\d)\\d{3})|(?:3(?:2\\d\\d|470)|4[24-7]|5(?:(?:2\\d|51)\\d|4(?:[1-35-9]\\d|4[0-57-9]))|6[23])\\d{4})|(?:1[2-6]\\d|4(?:2[24-8]|3[2-7]|[46][2-6]|5[3-5])|5(?:[27][2-8]|3[2-68]|4[24-8]|5[23]|6[2-4]|8[24-7]|9[2-7])|6(?:[19]20|42[03-6]|(?:52|7[45])\\d)|7(?:[04][24-8]|[15][2-7]|22|3[2-4])|8(?:1[2-689]|2[2-8]|(?:[35]2|64)\\d))\\d{4}|25\\d{5,6}|(?:2[2-9]|6(?:1[2356]|[24][2-6]|3[24-6]|5[2-4]|6[2-8]|7[235-7]|8[245]|9[24])|8(?:3[24]|5[245]))\\d{4}",[6,7,8,9]],["(?:17[01]|9(?:2(?:[0-4]|[56]\\d\\d)|(?:3(?:[0-36]|4\\d)|(?:6\\d|8[89]|9[4-8])\\d|7(?:3|40|[5-9]\\d))\\d|4(?:(?:[0245]\\d|[1379])\\d|88)|5[0-6])\\d)\\d{4}|9[69]1\\d{6}|9(?:[68]\\d|9[089])\\d{5}",[7,8,9,10]],["80080(?:0[1-9]|2\\d)\\d{3}",[10]],0,0,0,0,0,["1333\\d{4}",[8]]]],MN:["976","001","[12]\\d{7,9}|[5-9]\\d{7}",[8,9,10],[["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["[12]1"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[5-9]"]],["(\\d{3})(\\d{5,6})","$1 $2",["[12]2[1-3]"],"0$1"],["(\\d{4})(\\d{5,6})","$1 $2",["[12](?:27|3[2-8]|4[2-68]|5[1-4689])","[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"],"0$1"],["(\\d{5})(\\d{4,5})","$1 $2",["[12]"],"0$1"]],"0",0,0,0,0,0,[["[12]2[1-3]\\d{5,6}|(?:(?:[12](?:1|27)|5[368])\\d\\d|7(?:0(?:[0-5]\\d|7[078]|80)|128))\\d{4}|[12](?:3[2-8]|4[2-68]|5[1-4689])\\d{6,7}"],["92[0139]\\d{5}|(?:5[05]|6[069]|7[28]|8[0135689]|9[013-9])\\d{6}",[8]],0,0,0,0,0,0,["712[0-79]\\d{4}|7(?:1[013-9]|[5-79]\\d)\\d{5}",[8]]]],MO:["853","00","0800\\d{3}|(?:28|[68]\\d)\\d{6}",[7,8],[["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{4})(\\d{4})","$1 $2",["[268]"]]],0,0,0,0,0,0,[["(?:28[2-9]|8(?:11|[2-57-9]\\d))\\d{5}",[8]],["6800[0-79]\\d{3}|6(?:[235]\\d\\d|6(?:0[0-5]|[1-9]\\d)|8(?:0[1-9]|[14-8]\\d|2[5-9]|[39][0-4]))\\d{4}",[8]],["0800\\d{3}",[7]]]],MP:["1","011","[58]\\d{9}|(?:67|90)0\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","670$1",0,"670",[["670(?:2(?:3[3-7]|56|8[4-8])|32[1-38]|4(?:33|8[348])|5(?:32|55|88)|6(?:64|70|82)|78[3589]|8[3-9]8|989)\\d{4}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],MQ:["596","00","(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-79]|8(?:0[6-9]|[36])"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[["(?:596(?:[03-7]\\d|1[05]|2[7-9]|8[0-39]|9[04-9])|80[6-9]\\d\\d|9(?:477[6-9]|767[4589]))\\d{4}"],["(?:69[67]\\d\\d|7091[0-3])\\d{4}"],["80[0-5]\\d{6}"],["8[129]\\d{7}"],0,0,0,0,["9(?:397[0-3]|477[0-5]|76(?:6\\d|7[0-367]))\\d{4}"]]],MR:["222","00","(?:[2-4]\\d\\d|800)\\d{5}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-48]"]]],0,0,0,0,0,0,[["(?:25[08]|35\\d|45[1-7])\\d{5}"],["[2-4][0-46-9]\\d{6}"],["800\\d{5}"]]],MS:["1","011","(?:[58]\\d\\d|664|900)\\d{7}",[10],0,"1",0,"([34]\\d{6})$|1","664$1",0,"664",[["6644(?:1[0-3]|91)\\d{4}"],["664(?:3(?:49|9[1-6])|49[2-6])\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],MT:["356","00","3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[2357-9]"]]],0,0,0,0,0,0,[["20(?:3[1-4]|6[059])\\d{4}|2(?:0[19]|[1-357]\\d|60)\\d{5}"],["(?:7(?:210|[79]\\d\\d)|9(?:[29]\\d\\d|69[67]|8(?:1[1-3]|89|97)))\\d{4}"],["800(?:02|[3467]\\d)\\d{3}"],["5(?:0(?:0(?:37|43)|(?:6\\d|70|9[0168])\\d)|[12]\\d0[1-5])\\d{3}"],0,0,["501\\d{5}"],["7117\\d{4}"],["3550\\d{4}"]]],MU:["230","0(?:0|[24-7]0|3[03])","(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}",[7,8,10],[["(\\d{3})(\\d{4})","$1 $2",["[2-46]|8[013]"]],["(\\d{4})(\\d{4})","$1 $2",["[57]"]],["(\\d{5})(\\d{5})","$1 $2",["8"]]],0,0,0,0,0,0,[["(?:2(?:[0346-8]\\d|1[0-8])|4(?:[013568]\\d|2[4-8]|71|90)|54(?:[3-5]\\d|71)|6\\d\\d|8(?:14|3[129]))\\d{4}",[7,8]],["5(?:4(?:2[1-389]|7[1-9])|87[15-8])\\d{4}|(?:5(?:2[5-9]|4[3-689]|[57]\\d|8[0-689]|9[0-8])|7(?:0[0-6]|3[013]))\\d{5}",[8]],["802\\d{7}|80[0-2]\\d{4}",[7,10]],["30\\d{5}",[7]],0,0,0,["219\\d{4}",[7]],["3(?:20|9\\d)\\d{4}",[7]]],"020"],MV:["960","0(?:0|19)","(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}",[7,10],[["(\\d{3})(\\d{4})","$1-$2",["[34679]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,[["(?:3(?:0[0-4]|3[0-59])|6(?:[58][024689]|6[024-68]|7[02468]))\\d{4}",[7]],["(?:46[46]|[79]\\d\\d)\\d{4}",[7]],["800\\d{7}",[10]],["900\\d{7}",[10]],0,0,["4(?:0[01]|50)\\d{4}",[7]]],"00"],MW:["265","00","(?:[1289]\\d|31|77)\\d{7}|1\\d{6}",[7,9],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["1[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[137-9]"],"0$1"]],"0",0,0,0,0,0,[["(?:1[2-9]|2[12]\\d\\d)\\d{5}"],["111\\d{6}|(?:31|77|[89][89])\\d{7}",[9]]]],MX:["52","0[09]","[2-9]\\d{9}",[10],[["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["33|5[56]|81"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[2-9]"]]],0,0,0,0,0,0,[["(?:2(?:0[01]|2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}"],["(?:2(?:2\\d|3[1-35-8]|4[13-9]|7[1-689]|8[1-578]|9[467])|3(?:1[1-79]|[2458][1-9]|3\\d|7[1-8]|9[1-5])|4(?:1[1-57-9]|[267][1-9]|3[1-8]|[45]\\d|8[1-35-9]|9[2-689])|5(?:[56]\\d|88|9[1-79])|6(?:1[2-68]|[2-4][1-9]|5[1-36-9]|6[0-57-9]|7[1-7]|8[67]|9[4-8])|7(?:[1346][1-9]|[27]\\d|5[13-9]|8[1-69]|9[17])|8(?:1\\d|2[13-689]|3[1-6]|4[124-6]|6[1246-9]|7[0-378]|9[12479])|9(?:1[346-9]|2[1-4]|3[2-46-8]|5[1348]|[69]\\d|7[12]|8[1-8]))\\d{7}"],["8(?:00|88)\\d{7}"],["900\\d{7}"],["500\\d{7}"],0,0,0,0,["300\\d{7}"]],"00"],MY:["60","00","1\\d{8,9}|(?:3\\d|[4-9])\\d{7}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1-$2 $3",["[4-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1-$2 $3",["1(?:[02469]|[378][1-9]|53)|8","1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"],"0$1"],["(\\d)(\\d{4})(\\d{4})","$1-$2 $3",["3"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{4})","$1-$2-$3-$4",["1(?:[367]|80)"]],["(\\d{3})(\\d{3})(\\d{4})","$1-$2 $3",["15"],"0$1"],["(\\d{2})(\\d{4})(\\d{4})","$1-$2 $3",["1"],"0$1"]],"0",0,0,0,0,0,[["427[01]\\d{4}|(?:3(?:2[0-36-9]|3[0-368]|4[0-278]|5[0-24-8]|6[0-467]|7[1246-9]|8\\d|9[0-57])\\d|4(?:2[0-689]|[3-79]\\d|8[1-35689])|5(?:2[0-589]|[3468]\\d|5[0-489]|7[1-9]|9[23])|6(?:2[2-9]|3[1357-9]|[46]\\d|5[0-6]|7[0-35-9]|85|9[015-8])|7(?:[2579]\\d|3[03-68]|4[0-8]|6[5-9]|8[0-35-9])|8(?:[24][2-8]|3[2-5]|5[2-7]|6[2-589]|7[2-578]|[89][2-9])|9(?:0[57]|13|[25-7]\\d|[3489][0-8]))\\d{5}",[8,9]],["1(?:1888[689]|4400|8(?:47|8[27])[0-4])\\d{4}|1(?:0(?:[23568]\\d|4[0-6]|7[016-9]|9[0-8])|1(?:[1-5]\\d\\d|6(?:0[5-9]|[1-9]\\d)|7(?:[0-4]\\d|5[0-7]))|(?:[269]\\d|[37][1-9]|4[235-9])\\d|5(?:31|9\\d\\d)|8(?:1[23]|[236]\\d|4[06]|5(?:46|[7-9])|7[016-9]|8[01]|9[0-8]))\\d{5}",[9,10]],["1[378]00\\d{6}",[10]],["1600\\d{6}",[10]],0,0,0,0,["15(?:4(?:6[0-4]\\d|8(?:0[125]|[17]\\d|21|3[01]|4[01589]|5[014]|6[02]))|6(?:32[0-6]|78\\d))\\d{4}",[10]]]],MZ:["258","00","(?:2|8\\d)\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2|8[2-79]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[["2(?:[1346]\\d|5[0-2]|[78][12]|93)\\d{5}",[8]],["8[2-79]\\d{7}",[9]],["800\\d{6}",[9]]]],NA:["264","00","[68]\\d{7,8}",[8,9],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["88"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["87"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[["64426\\d{3}|6(?:1(?:2[2-7]|3[01378]|4[0-4])|254|32[0237]|4(?:27|41|5[25])|52[236-8]|626|7(?:2[2-4]|30))\\d{4,5}|6(?:1(?:(?:0\\d|2[0189]|3[24-69]|4[5-9])\\d|17|69|7[014])|2(?:17|5[0-36-8]|69|70)|3(?:17|2[14-689]|34|6[289]|7[01]|81)|4(?:17|2[0-2]|4[06]|5[0137]|69|7[01])|5(?:17|2[0459]|69|7[01])|6(?:17|25|38|42|69|7[01])|7(?:17|2[569]|3[13]|6[89]|7[01]))\\d{4}"],["(?:60|8[1245])\\d{7}",[9]],["80\\d{7}",[9]],["8701\\d{5}",[9]],0,0,0,0,["8(?:3\\d\\d|86)\\d{5}"]]],NC:["687","00","(?:050|[2-57-9]\\d\\d)\\d{3}",[6],[["(\\d{2})(\\d{2})(\\d{2})","$1.$2.$3",["[02-57-9]"]]],0,0,0,0,0,0,[["(?:2[03-9]|3[0-5]|4[1-7]|88)\\d{4}"],["(?:[579]\\d|8[0-79])\\d{4}"],["050\\d{3}"],["36\\d{4}"]]],NE:["227","00","[027-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["08"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[089]|2[013]|7[0467]"]]],0,0,0,0,0,0,[["2(?:0(?:20|3[1-8]|4[13-5]|5[14]|6[14578]|7[1-578])|1(?:4[145]|5[14]|6[14-68]|7[169]|88))\\d{4}"],["(?:23|7[0467]|[89]\\d)\\d{6}"],["08\\d{6}"],["09\\d{6}"]]],NF:["672","00","[13]\\d{5}",[6],[["(\\d{2})(\\d{4})","$1 $2",["1[0-3]"]],["(\\d)(\\d{5})","$1 $2",["[13]"]]],0,0,"([0-258]\\d{4})$","3$1",0,0,[["(?:1(?:06|17|28|39)|3[0-2]\\d)\\d{3}"],["(?:14|3[58])\\d{4}"]]],NG:["234","009","(?:20|9\\d)\\d{8}|[78]\\d{9,13}",[10,11,12,13,14],[["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[7-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["20[129]"],"0$1"],["(\\d{4})(\\d{2})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{3})(\\d{4})(\\d{4,5})","$1 $2 $3",["[78]"],"0$1"],["(\\d{3})(\\d{5})(\\d{5,6})","$1 $2 $3",["[78]"],"0$1"]],"0",0,0,0,0,0,[["20(?:[1259]\\d|3[013-9]|4[1-8]|6[024-689]|7[1-79]|8[2-9])\\d{6}",[10]],["(?:702[0-24-9]|819[01])\\d{6}|(?:7(?:0[13-9]|[12]\\d)|8(?:0[1-9]|1[0-8])|9(?:0[1-9]|1[1-6]))\\d{7}",[10]],["800\\d{7,11}"],0,0,0,["700\\d{7,11}"]]],NI:["505","00","(?:1800|[25-8]\\d{3})\\d{4}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[125-8]"]]],0,0,0,0,0,0,[["2\\d{7}"],["(?:5(?:5[0-7]|[78]\\d)|6(?:20|3[035]|4[045]|5[05]|77|8[1-9]|9[059])|(?:7[5-8]|8\\d)\\d)\\d{5}"],["1800\\d{4}"]]],NL:["31","00","(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}",[5,6,7,8,9,10,11],[["(\\d{3})(\\d{4,7})","$1 $2",["[89]0"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["66"],"0$1"],["(\\d)(\\d{8})","$1 $2",["6"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-578]|91"],"0$1"],["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3",["9"],"0$1"]],"0",0,0,0,0,0,[["(?:1(?:[035]\\d|1[13-578]|6[124-8]|7[24]|8[0-467])|2(?:[0346]\\d|2[2-46-9]|5[125]|9[479])|3(?:[03568]\\d|1[3-8]|2[01]|4[1-8])|4(?:[0356]\\d|1[1-368]|7[58]|8[15-8]|9[23579])|5(?:[0358]\\d|[19][1-9]|2[1-57-9]|4[13-8]|6[126]|7[0-3578])|7\\d\\d)\\d{6}",[9]],["(?:6[1-58]|970\\d)\\d{7}",[9,11]],["800\\d{4,7}",[7,8,9,10]],["90[069]\\d{4,7}",[7,8,9,10]],0,0,["140(?:1[035]|2[0346]|3[03568]|4[0356]|5[0358]|8[458])|(?:140(?:1[16-8]|2[259]|3[124]|4[17-9]|5[124679]|7)|8[478]\\d{6})\\d",[5,6,9]],["66\\d{7}",[9]],["(?:85|91)\\d{7}",[9]]]],NO:["47","00","(?:0|[2-9]\\d{3})\\d{4}",[5,8],[["(\\d{3})(\\d{2})(\\d{3})","$1 $2 $3",["8"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[2-79]"]]],0,0,0,0,0,"[02-689]|7[0-8]",[["(?:2[1-4]|3[1-3578]|5[1-35-7]|6[1-4679]|7[0-8])\\d{6}",[8]],["(?:4[015-8]|9\\d)\\d{6}",[8]],["80[01]\\d{5}",[8]],["82[09]\\d{5}",[8]],["880\\d{5}",[8]],["81[23]\\d{5}",[8]],["(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"],0,["85[0-5]\\d{5}",[8]],["810(?:0[0-6]|[2-8]\\d)\\d{3}",[8]]]],NP:["977","00","(?:1\\d|9)\\d{9}|[1-9]\\d{7}",[8,10,11],[["(\\d)(\\d{7})","$1-$2",["1[2-6]"],"0$1"],["(\\d{2})(\\d{6})","$1-$2",["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"],"0$1"],["(\\d{3})(\\d{7})","$1-$2",["9"]]],"0",0,0,0,0,0,[["(?:1[0-6]\\d|99[02-6])\\d{5}|(?:2[13-79]|3[135-8]|4[146-9]|5[135-7]|6[13-9]|7[15-9]|8[1-46-9]|9[1-7])[2-6]\\d{5}",[8]],["9(?:00|6[0-3]|7[0-24-6]|8[0-24-68])\\d{7}",[10]],["1(?:66001|800\\d\\d)\\d{5}",[11]]]],NR:["674","00","(?:222|444|(?:55|8\\d)\\d|666|777|999)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[24-9]"]]],0,0,0,0,0,0,[["444\\d{4}"],["(?:222|55[3-9]|666|777|8\\d\\d|999)\\d{4}"]]],NU:["683","00","(?:[4-7]|888\\d)\\d{3}",[4,7],[["(\\d{3})(\\d{4})","$1 $2",["8"]]],0,0,0,0,0,0,[["[47]\\d{3}",[4]],["(?:[56]|888[1-9])\\d{3}"]]],NZ:["64","0(?:0|161)","[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,8})","$1 $2",["8[1-79]"],"0$1"],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["50[036-8]|8|90","50(?:[0367]|88)|8|90"],"0$1"],["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["24|[346]|7[2-57-9]|9[2-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:10|74)|[589]"],"0$1"],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["1|2[028]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,5})","$1 $2 $3",["2(?:[169]|7[0-35-9])|7"],"0$1"]],"0",0,0,0,0,0,[["240\\d{5}|(?:3[2-79]|[49][2-9]|6[235-9]|7[2-57-9])\\d{6}",[8]],["2(?:[0-27-9]\\d|6)\\d{6,7}|2(?:1\\d|75)\\d{5}",[8,9,10]],["508\\d{6,7}|80\\d{6,8}",[8,9,10]],["(?:1[13-57-9]\\d{5}|50(?:0[08]|30|66|77|88))\\d{3}|90\\d{6,8}",[7,8,9,10]],["70\\d{7}",[9]],0,["8(?:1[16-9]|22|3\\d|4[045]|5[459]|6[235-9]|7[0-3579]|90)\\d{2,7}"]],"00"],OM:["968","00","(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}",[7,8,9],[["(\\d{3})(\\d{4,6})","$1 $2",["[58]"]],["(\\d{2})(\\d{6})","$1 $2",["2"]],["(\\d{4})(\\d{4})","$1 $2",["[179]"]]],0,0,0,0,0,0,[["2[1-6]\\d{6}",[8]],["1505\\d{4}|(?:7(?:[125-9]\\d|41)|9(?:0[1-9]|[1-9]\\d))\\d{5}",[8]],["8007\\d{4,5}|(?:500|800[05])\\d{4}"],["900\\d{5}",[8]]]],PA:["507","00","(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}",[7,8,10,11],[["(\\d{3})(\\d{4})","$1-$2",["[1-57-9]"]],["(\\d{4})(\\d{4})","$1-$2",["[68]"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[["(?:1(?:0\\d|1[0479]|2[37]|3[0137]|4[17]|5[05]|6[058]|7[0167]|8[2358]|9[1389])|2(?:[0235-79]\\d|1[0-7]|4[013-9]|8[02-9])|3(?:[047-9]\\d|1[0-8]|2[0-5]|33|5[0-35]|6[068])|4(?:00|3[0-579]|4\\d|7[0-57-9])|5(?:[01]\\d|2[0-7]|[56]0|79)|7(?:0[09]|2[0-26-8]|3[03]|4[04]|5[05-9]|6[0156]|7[0-24-9]|8[4-9]|90)|8(?:09|2[89]|3\\d|4[0-24-689]|5[014]|8[02])|9(?:0[5-9]|1[0135-8]|2[036-9]|3[35-79]|40|5[0457-9]|6[05-9]|7[04-9]|8[35-8]|9\\d))\\d{4}",[7]],["(?:1[16]1|21[89]|6\\d{3}|8(?:1[01]|7[23]))\\d{4}",[7,8]],["800\\d{4,5}|(?:00800|800\\d)\\d{6}"],["(?:8(?:22|55|60|7[78]|86)|9(?:00|81))\\d{4}",[7]]]],PE:["51","00|19(?:1[124]|77|90)00","(?:[14-8]|9\\d)\\d{7}",[8,9],[["(\\d{3})(\\d{5})","$1 $2",["80"],"(0$1)"],["(\\d)(\\d{7})","$1 $2",["1"],"(0$1)"],["(\\d{2})(\\d{6})","$1 $2",["[4-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,[["(?:(?:(?:4[34]|5[14])[0-8]|687)\\d|7(?:173|(?:3[0-8]|55)\\d)|8(?:10[05689]|6(?:0[06-9]|1[6-9]|29)|7(?:0[0569]|[56]0)))\\d{4}|(?:1[0-8]|4[12]|5[236]|6[1-7]|7[246]|8[2-4])\\d{6}",[8]],["9\\d{8}",[9]],["800\\d{5}",[8]],["805\\d{5}",[8]],["80[24]\\d{5}",[8]],0,0,0,0,["801\\d{5}",[8]]],"00"," Anexo "],PF:["689","00","4\\d{5}(?:\\d{2})?|8\\d{7,8}",[6,8,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["44"]],["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["4|8[7-9]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],0,0,0,0,0,0,[["4(?:0[4-689]|9[4-68])\\d{5}",[8]],["8[7-9]\\d{6}",[8]],["80[0-5]\\d{6}",[9]],0,0,0,["44\\d{4}",[6]],0,["499\\d{5}",[8]]]],PG:["675","00|140[1-3]","(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["18|[2-69]|85"]],["(\\d{4})(\\d{4})","$1 $2",["[78]"]]],0,0,0,0,0,0,[["(?:(?:3[0-2]|4[257]|5[34]|9[78])\\d|64[1-9]|85[02-46-9])\\d{4}",[7]],["(?:7\\d|8[1-48])\\d{6}",[8]],["180\\d{4}",[7]],0,0,0,0,["27[01]\\d{4}",[7]],["2(?:0[0-57]|7[568])\\d{4}",[7]]],"00"],PH:["63","00","(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}",[6,8,9,10,11,12,13],[["(\\d)(\\d{5})","$1 $2",["2"],"(0$1)"],["(\\d{4})(\\d{4,6})","$1 $2",["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2","3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"],"(0$1)"],["(\\d{5})(\\d{4})","$1 $2",["346|4(?:27|9[35])|883","3469|4(?:279|9(?:30|56))|8834"],"(0$1)"],["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["2"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|8[2-8]"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]],["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})","$1 $2 $3 $4",["1"]]],"0",0,0,0,0,0,[["(?:(?:2[3-8]|3[2-68]|4[2-9]|5[2-6]|6[2-58]|7[24578])\\d{3}|88(?:22\\d\\d|42))\\d{4}|(?:2|8[2-8]\\d\\d)\\d{5}",[6,8,9,10]],["(?:8(?:1[37]|9[5-8])|9(?:0[5-9]|1[0-24-9]|[235-7]\\d|4[2-9]|8[135-9]|9[1-9]))\\d{7}",[10]],["1800\\d{7,9}",[11,12,13]]]],PK:["92","00","122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,7})","$1 $2 $3",["[89]0"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["1"]],["(\\d{3})(\\d{6,7})","$1 $2",["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])","9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"],"(0$1)"],["(\\d{2})(\\d{7,8})","$1 $2",["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"],"(0$1)"],["(\\d{5})(\\d{5})","$1 $2",["58"],"(0$1)"],["(\\d{3})(\\d{7})","$1 $2",["3"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"],"(0$1)"],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[24-9]"],"(0$1)"]],"0",0,0,0,0,0,[["(?:(?:21|42)[2-9]|58[126])\\d{7}|(?:2[25]|4[0146-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]\\d{6,7}|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8]))[2-9]\\d{5,6}",[9,10]],["3(?:[0-247]\\d|3[0-79]|55|64)\\d{7}",[10]],["800\\d{5}(?:\\d{3})?",[8,11]],["900\\d{5}",[8]],["122\\d{6}",[9]],0,["(?:2(?:[125]|3[2358]|4[2-4]|9[2-8])|4(?:[0-246-9]|5[3479])|5(?:[1-35-7]|4[2-467])|6(?:0[468]|[1-8])|7(?:[14]|2[236])|8(?:[16]|2[2-689]|3[23578]|4[3478]|5[2356])|9(?:1|22|3[27-9]|4[2-6]|6[3569]|9[2-7]))111\\d{6}",[11,12]]]],PL:["48","00","(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}",[6,7,8,9,10],[["(\\d{5})","$1",["19"]],["(\\d{3})(\\d{3})","$1 $2",["11|20|64"]],["(\\d{2})(\\d{2})(\\d{3})","$1 $2 $3",["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1","(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]],["(\\d{3})(\\d{2})(\\d{2,3})","$1 $2 $3",["64"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["1[2-8]|[2-7]|8[1-79]|9[145]"]],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["8"]]],0,0,0,0,0,0,[["47\\d{7}|(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])(?:[02-9]\\d{6}|1(?:[0-8]\\d{5}|9\\d{3}(?:\\d{2})?))",[7,9]],["2131[89]\\d{4}|21(?:1[013-5]|2\\d|3[2-9])\\d{5}|(?:45|5[0137]|6[069]|7[2389]|88)\\d{7}",[9]],["800\\d{6,7}",[9,10]],["70[01346-8]\\d{6}",[9]],0,0,["804\\d{6}",[9]],["64\\d{4,7}",[6,7,8,9]],["39\\d{7}",[9]],["801\\d{6}",[9]]]],PM:["508","00","[45]\\d{5}|(?:708|8\\d\\d)\\d{6}",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[45]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"],"0$1"]],"0",0,0,0,0,0,[["(?:4[1-35-9]|5[0-47-9]|80[6-9]\\d\\d)\\d{4}"],["(?:4[02-489]|5[02-9]|708(?:4[0-5]|5[0-6]))\\d{4}"],["80[0-5]\\d{6}",[9]],["8[129]\\d{7}",[9]]]],PR:["1","011","(?:[589]\\d\\d|787)\\d{7}",[10],0,"1",0,0,0,0,"787|939",[["(?:787|939)[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],PS:["970","00","[2489]2\\d{6}|(?:1\\d|5)\\d{8}",[8,9,10],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["[2489]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["5"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[["(?:22[2-47-9]|42[45]|82[014-68]|92[3569])\\d{5}",[8]],["5[69]\\d{7}",[9]],["1800\\d{6}",[10]],0,0,0,0,0,0,["1700\\d{6}",[10]]]],PT:["351","00","1693\\d{5}|(?:[26-9]\\d|30)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["2[12]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["16|[236-9]"]]],0,0,0,0,0,0,[["2(?:[12]\\d|3[1-689]|4[1-59]|[57][1-9]|6[1-35689]|8[1-69]|9[1256])\\d{6}"],["6(?:[06]92(?:30|9\\d)|[35]92(?:[049]\\d|3[034]))\\d{3}|(?:(?:16|6[0356])93|9(?:[1-36]\\d\\d|480))\\d{5}"],["80[02]\\d{6}"],["(?:6(?:0[178]|4[68])\\d|76(?:0[1-57]|1[2-47]|2[237]))\\d{5}"],["884[0-4689]\\d{5}"],["600\\d{6}|6[06]92(?:0\\d|3[349]|49)\\d{3}"],["70(?:38[01]|596|(?:7\\d|8[17])\\d)\\d{4}"],["6(?:222\\d|89(?:00|88|99))\\d{4}"],["30\\d{7}"],["80(?:8\\d|9[1579])\\d{5}"]]],PW:["680","01[12]","(?:[24-8]\\d\\d|345|900)\\d{4}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[2-9]"]]],0,0,0,0,0,0,[["(?:2(?:55|77)|345|488|5(?:35|44|87)|6(?:22|54|79)|7(?:33|47)|8(?:24|55|76)|900)\\d{4}"],["(?:(?:46|83)[0-5]|(?:6[2-4689]|78)0)\\d{4}|(?:45|77|88)\\d{5}"]]],PY:["595","00","59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}",[6,7,8,9,10,11],[["(\\d{3})(\\d{3,6})","$1 $2",["[2-9]0"],"0$1"],["(\\d{2})(\\d{5})","$1 $2",["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"],"(0$1)"],["(\\d{3})(\\d{4,5})","$1 $2",["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["87"]],["(\\d{3})(\\d{6})","$1 $2",["9(?:[5-79]|8[1-7])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[2-8]"],"0$1"],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["9"]]],"0",0,0,0,0,0,[["(?:[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36])\\d{5,7}|(?:2(?:2[4-68]|[4-68]\\d|7[15]|9[1-5])|3(?:18|3[167]|4[2357]|51|[67]\\d)|4(?:3[12]|5[13]|9[1-47])|5(?:[1-4]\\d|5[02-4])|6(?:3[1-3]|44|7[1-8])|7(?:4[0-4]|5\\d|6[1-578]|75|8[0-8])|858)\\d{5,6}",[7,8,9]],["9(?:51|6[129]|7[1-6]|8[1-7]|9[1-5])\\d{6}",[9]],["9800\\d{5,7}",[9,10,11]],0,0,0,["[2-9]0\\d{4,7}",[6,7,8,9]],0,["8700[0-4]\\d{4}",[9]]]],QA:["974","00","800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}",[7,8,9,11],[["(\\d{3})(\\d{4})","$1 $2",["2[136]|8"]],["(\\d{4})(\\d{4})","$1 $2",["[3-7]"]]],0,0,0,0,0,0,[["4(?:1111|2022)\\d{3}|4(?:[04]\\d\\d|14[0-6]|999)\\d{4}",[8]],["[35-7]\\d{7}",[8]],["800\\d{4}|(?:0080[01]|800)\\d{6}",[7,9,11]],0,0,0,0,["2[136]\\d{5}",[7]]]],RE:["262","00","709\\d{6}|(?:26|[689]\\d)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[26-9]"],"0$1"]],"0",0,0,0,0,0,[["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"],["(?:69(?:2\\d\\d|3(?:[06][0-6]|1[0-3]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}"],["80\\d{7}"],["89[1-37-9]\\d{6}"],0,0,0,0,["9(?:399[0-3]|479[0-6]|76(?:2[278]|3[0-37]))\\d{4}"],["8(?:1[019]|2[0156]|84|90)\\d{6}"]]],RO:["40","00","(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}",[6,9],[["(\\d{3})(\\d{3})","$1 $2",["2[3-6]","2[3-6]\\d9"],"0$1"],["(\\d{2})(\\d{4})","$1 $2",["219|31"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[23]1"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[236-9]"],"0$1"]],"0",0,0,0,0,0,[["[23][13-6]\\d{7}|(?:2(?:19\\d|[3-6]\\d9)|31\\d\\d)\\d\\d"],["(?:630|702)0\\d{5}|(?:6(?:00|2\\d)|7(?:0[013-9]|1[0-3]|[2-7]\\d|8[03-8]|9[0-39]))\\d{6}",[9]],["800\\d{6}",[9]],["90[0136]\\d{6}",[9]],0,0,["(?:37\\d|80[578])\\d{6}",[9]],0,0,["801\\d{6}",[9]]],0," int "],RS:["381","00","38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}",[6,7,8,9,10,11,12],[["(\\d{3})(\\d{3,9})","$1 $2",["(?:2[389]|39)0|[7-9]"],"0$1"],["(\\d{2})(\\d{5,10})","$1 $2",["[1-36]"],"0$1"]],"0",0,0,0,0,0,[["(?:11[1-9]\\d|(?:2[389]|39)(?:0[2-9]|[2-9]\\d))\\d{3,8}|(?:1[02-9]|2[0-24-7]|3[0-8])[2-9]\\d{4,9}",[7,8,9,10,11,12]],["6(?:[0-689]|7\\d)\\d{6,7}",[8,9,10]],["800\\d{3,9}"],["(?:78\\d|90[0169])\\d{3,7}",[6,7,8,9,10]],0,0,["7[06]\\d{4,10}"]]],RU:["7","810","8\\d{13}|[347-9]\\d{9}",[10,14],[["(\\d{4})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-8]|2[1-9])","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))","7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"],"8 ($1)",1],["(\\d{5})(\\d)(\\d{2})(\\d{2})","$1 $2 $3 $4",["7(?:1[0-68]|2[1-9])","7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))","7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"8 ($1)",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2-$3-$4",["[349]|8(?:[02-7]|1[1-8])"],"8 ($1)",1],["(\\d{4})(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3 $4",["8"],"8 ($1)"]],"8",0,0,0,0,0,[["336(?:[013-9]\\d|2[013-9])\\d{5}|(?:3(?:0[12]|4[1-35-79]|5[1-3]|65|8[1-58]|9[0145])|4(?:01|1[1356]|2[13467]|7[1-5]|8[1-7]|9[1-689])|8(?:1[1-8]|2[01]|3[13-6]|4[0-8]|5[15-7]|6[0-35-79]|7[1-37-9]))\\d{7}",[10]],["9\\d{9}",[10]],["8(?:0[04]|108\\d{3})\\d{7}"],["80[39]\\d{7}",[10]],["808\\d{7}",[10]]],"8~10"],RW:["250","00","(?:06|[27]\\d\\d|[89]00)\\d{6}",[8,9],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["0"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[7-9]"],"0$1"]],"0",0,0,0,0,0,[["(?:06|2[23568]\\d)\\d{6}"],["7[237-9]\\d{7}",[9]],["800\\d{6}",[9]],["900\\d{6}",[9]]]],SA:["966","00","(?:[15]\\d|800|92)\\d{7}",[9,10],[["(\\d{4})(\\d{5})","$1 $2",["9"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["1"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["5"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]]],"0",0,0,0,0,0,[["1(?:1\\d|2[24-8]|3[35-8]|4[3-68]|6[2-5]|7[235-7])\\d{6}",[9]],["579[01]\\d{5}|5(?:[013-689]\\d|7[0-8])\\d{6}",[9]],["800\\d{7}",[10]],["925\\d{6}",[9]],0,0,0,0,0,["920\\d{6}",[9]]]],SB:["677","0[01]","[6-9]\\d{6}|[1-6]\\d{4}",[5,7],[["(\\d{2})(\\d{5})","$1 $2",["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]],0,0,0,0,0,0,[["(?:1[4-79]|[23]\\d|4[0-2]|5[03]|6[0-37])\\d{3}",[5]],["48\\d{3}|(?:(?:6[89]|7[1-9]|8[4-9])\\d|9(?:1[2-9]|2[013-9]|3[0-2]|[46]\\d|5[0-46-9]|7[0-689]|8[0-79]|9[0-8]))\\d{4}"],["1[38]\\d{3}",[5]],0,0,0,0,0,["5[12]\\d{3}",[5]]]],SC:["248","010|0[0-2]","(?:[2489]\\d|64)\\d{5}",[7],[["(\\d)(\\d{3})(\\d{3})","$1 $2 $3",["[246]|9[57]"]]],0,0,0,0,0,0,[["4[2-46]\\d{5}"],["2[125-8]\\d{5}"],["800[08]\\d{3}"],["85\\d{5}"],0,0,0,0,["971\\d{4}|(?:64|95)\\d{5}"]],"00"],SD:["249","00","[19]\\d{8}",[9],[["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[19]"],"0$1"]],"0",0,0,0,0,0,[["1(?:5\\d|8[35-7])\\d{6}"],["(?:1[0-2]|9[0-3569])\\d{7}"]]],SE:["46","00","(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}",[6,7,8,9,10,12],[["(\\d{2})(\\d{2,3})(\\d{2})","$1-$2 $3",["20"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{4})","$1-$2",["9(?:00|39|44|9)"],"0$1",0,"$1 $2"],["(\\d{2})(\\d{3})(\\d{2})","$1-$2 $3",["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3"],["(\\d)(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2,3})(\\d{2})","$1-$2 $3",["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3"],["(\\d{3})(\\d{2,3})(\\d{3})","$1-$2 $3",["9(?:00|39|44)"],"0$1",0,"$1 $2 $3"],["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"],"0$1",0,"$1 $2 $3 $4"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4",["10|7"],"0$1",0,"$1 $2 $3 $4"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1-$2 $3 $4",["8"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1-$2 $3 $4",["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{2})(\\d{3})","$1-$2 $3 $4",["9"],"0$1",0,"$1 $2 $3 $4"],["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1-$2 $3 $4 $5",["[26]"],"0$1",0,"$1 $2 $3 $4 $5"]],"0",0,0,0,0,0,[["(?:(?:[12][136]|3[356]|4[0246]|6[03]|8\\d)\\d|90[1-9])\\d{4,6}|(?:1(?:2[0-35]|4[0-4]|5[0-25-9]|7[13-6]|[89]\\d)|2(?:2[0-7]|4[0136-8]|5[0138]|7[018]|8[01]|9[0-57])|3(?:0[0-4]|1\\d|2[0-25]|4[056]|7[0-2]|8[0-3]|9[023])|4(?:1[013-8]|3[0135]|5[14-79]|7[0-246-9]|8[0156]|9[0-689])|5(?:0[0-6]|[15][0-5]|2[0-68]|3[0-4]|4\\d|6[03-5]|7[013]|8[0-79]|9[01])|6(?:1[1-3]|2[0-4]|4[02-57]|5[0-37]|6[0-3]|7[0-2]|8[0247]|9[0-356])|9(?:1[0-68]|2\\d|3[02-5]|4[0-3]|5[0-4]|[68][01]|7[0135-8]))\\d{5,6}",[7,8,9]],["7[02369]\\d{7}",[9]],["20\\d{4,7}",[6,7,8,9]],["649\\d{6}|99[1-59]\\d{4}(?:\\d{3})?|9(?:00|39|44)[1-8]\\d{3,6}",[7,8,9,10]],["75[1-8]\\d{6}",[9]],["(?:25[245]|67[3-68])\\d{9}",[12]],["10[1-8]\\d{6}",[9]],["74[02-9]\\d{6}",[9]],0,["77[0-7]\\d{6}",[9]]]],SG:["65","0[0-3]\\d","(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}",[8,10,11],[["(\\d{4})(\\d{4})","$1 $2",["[369]|8(?:0[1-9]|[1-9])"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"]],["(\\d{4})(\\d{4})(\\d{3})","$1 $2 $3",["7"]],["(\\d{4})(\\d{3})(\\d{4})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[["662[0-24-9]\\d{4}|6(?:[0-578]\\d|6[013-57-9]|9[0-35-9])\\d{5}",[8]],["898[02-8]\\d{4}|(?:8(?:0[1-9]|[1-8]\\d|9[0-7])|9[0-8]\\d)\\d{5}",[8]],["(?:18|8)00\\d{7}",[10,11]],["1900\\d{7}",[11]],0,0,["7000\\d{7}",[11]],0,["(?:3[12]\\d|666)\\d{5}",[8]]]],SH:["290","00","(?:[256]\\d|8)\\d{3}",[4,5],0,0,0,0,0,0,"[256]",[["2(?:[0-57-9]\\d|6[4-9])\\d\\d"],["[56]\\d{4}",[5]],0,0,0,0,0,0,["262\\d\\d",[5]]]],SI:["386","00|10(?:22|66|88|99)","[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}",[5,6,7,8],[["(\\d{2})(\\d{3,6})","$1 $2",["8[09]|9"],"0$1"],["(\\d{3})(\\d{5})","$1 $2",["59|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[37][01]|4[0139]|51|6"],"0$1"],["(\\d)(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[1-57]"],"(0$1)"]],"0",0,0,0,0,0,[["(?:[1-357][2-8]|4[24-8])\\d{6}",[8]],["65(?:[178]\\d|5[56]|6[01])\\d{4}|(?:[37][01]|4[0139]|51|6[489])\\d{6}",[8]],["80\\d{4,6}",[6,7,8]],["89[1-3]\\d{2,5}|90\\d{4,6}"],0,0,0,0,["(?:59\\d\\d|8(?:1(?:[67]\\d|8[0-589])|2(?:0\\d|2[0-37-9]|8[0-2489])|3[389]\\d))\\d{4}",[8]]],"00"],SJ:["47","00","0\\d{4}|(?:[489]\\d|79)\\d{6}",[5,8],0,0,0,0,0,0,"79",[["79\\d{6}",[8]],["(?:4[015-8]|9\\d)\\d{6}",[8]],["80[01]\\d{5}",[8]],["82[09]\\d{5}",[8]],["880\\d{5}",[8]],["81[23]\\d{5}",[8]],["(?:0[235-9]|81(?:0(?:0[7-9]|1\\d)|5\\d\\d))\\d{3}"],0,["85[0-5]\\d{5}",[8]],["810(?:0[0-6]|[2-8]\\d)\\d{3}",[8]]]],SK:["421","00","[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}",[6,7,9],[["(\\d)(\\d{2})(\\d{3,4})","$1 $2 $3",["21"],"0$1"],["(\\d{2})(\\d{2})(\\d{2,3})","$1 $2 $3",["[3-5][1-8]1","[3-5][1-8]1[67]"],"0$1"],["(\\d)(\\d{3})(\\d{3})(\\d{2})","$1/$2 $3 $4",["2"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[689]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1/$2 $3 $4",["[3-5]"],"0$1"]],"0",0,0,0,0,0,[["(?:2(?:16|[2-9]\\d{3})|(?:(?:[3-5][1-8]\\d|819)\\d|601[1-5])\\d)\\d{4}|(?:2|[3-5][1-8])1[67]\\d{3}|[3-5][1-8]16\\d\\d"],["909[1-9]\\d{5}|9(?:0[1-8]|1[0-24-9]|4[03-57-9]|5\\d)\\d{6}",[9]],["800\\d{6}",[9]],["9(?:00|[78]\\d)\\d{6}",[9]],0,0,["96\\d{7}",[9]],["9090\\d{3}",[7]],["6(?:02|5[0-4]|9[0-6])\\d{6}",[9]],["8[5-9]\\d{7}",[9]]]],SL:["232","00","(?:[237-9]\\d|66)\\d{6}",[8],[["(\\d{2})(\\d{6})","$1 $2",["[236-9]"],"(0$1)"]],"0",0,0,0,0,0,[["22[2-4][2-9]\\d{4}"],["(?:25|3[0-5]|66|7[1-9]|8[08]|9[09])\\d{6}"]]],SM:["378","00","(?:0549|[5-7]\\d)\\d{6}",[8,10],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[5-7]"]],["(\\d{4})(\\d{6})","$1 $2",["0"]]],0,0,"([89]\\d{5})$","0549$1",0,0,[["0549(?:8[0157-9]|9\\d)\\d{4}",[10]],["6[16]\\d{6}",[8]],0,["7[178]\\d{6}",[8]],0,0,0,0,["5[158]\\d{6}",[8]]]],SN:["221","00","(?:[378]\\d|93)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[379]"]]],0,0,0,0,0,0,[["3(?:0(?:1[0-2]|80)|282|3(?:8[1-9]|9[3-9])|611)\\d{5}"],["7(?:[05-8]\\d|[19]0|21)\\d{6}"],["800\\d{6}"],["88[4689]\\d{6}"],0,0,0,0,["(?:3(?:392|9[01]\\d)\\d|93(?:3[13]0|929))\\d{4}"],["81[02468]\\d{6}"]]],SO:["252","00","[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}",[6,7,8,9],[["(\\d{2})(\\d{4})","$1 $2",["8[125]"]],["(\\d{6})","$1",["[134]"]],["(\\d)(\\d{6})","$1 $2",["[15]|2[0-79]|3[0-46-8]|4[0-7]"]],["(\\d)(\\d{7})","$1 $2",["(?:2|90)4|[67]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[348]|64|79|90"]],["(\\d{2})(\\d{5,7})","$1 $2",["1|28|6[0-35-9]|7[67]|9[2-9]"]]],"0",0,0,0,0,0,[["(?:1\\d|2[0-79]|3[0-46-8]|4[0-7]|5[57-9])\\d{5}|(?:[134]\\d|8[125])\\d{4}",[6,7]],["(?:(?:15|(?:3[59]|4[89]|6\\d|7[679]|8[08])\\d|9(?:0\\d|[2-9]))\\d|2(?:4\\d|8))\\d{5}|(?:[67]\\d\\d|904)\\d{5}",[7,8,9]]]],SR:["597","00","(?:[2-5]|[6-8]\\d|90)\\d{5}",[6,7],[["(\\d{2})(\\d{2})(\\d{2})","$1-$2-$3",["56"]],["(\\d{3})(\\d{3})","$1-$2",["[2-5]"]],["(\\d{3})(\\d{4})","$1-$2",["[6-9]"]]],0,0,0,0,0,0,[["(?:2[1-3]|3[0-7]|4\\d|5[2-58])\\d{4}",[6]],["(?:6[08]|7[124-7]|8[1-9])\\d{5}",[7]],["80\\d{5}",[7]],["90\\d{5}",[7]],0,0,0,0,["56\\d{4}",[6]]]],SS:["211","00","[19]\\d{8}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[19]"],"0$1"]],"0",0,0,0,0,0,[["1[89]\\d{7}"],["(?:12|9[1257-9])\\d{7}"]]],ST:["239","00","(?:22|9\\d)\\d{5}",[7],[["(\\d{3})(\\d{4})","$1 $2",["[29]"]]],0,0,0,0,0,0,[["22\\d{5}"],["900[5-9]\\d{3}|9(?:0[1-9]|[89]\\d)\\d{4}"]]],SV:["503","00","[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?",[7,8,11],[["(\\d{3})(\\d{4})","$1 $2",["[89]"]],["(\\d{4})(\\d{4})","$1 $2",["[267]"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["[89]"]]],0,0,0,0,0,0,[["2(?:79(?:0[0347-9]|[1-9]\\d)|89(?:0[024589]|[1-9]\\d))\\d{3}|2(?:[1-69]\\d|[78][0-8])\\d{5}",[8]],["[67]\\d{7}",[8]],["800\\d{8}|80[01]\\d{4}",[7,11]],["900\\d{4}(?:\\d{4})?",[7,11]]]],SX:["1","011","7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"(5\\d{6})$|1","721$1",0,"721",[["7215(?:4[2-8]|8[239]|9[056])\\d{4}"],["7215(?:1[02]|2\\d|5[034679]|8[014-8])\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],SY:["963","00","[1-359]\\d{8}|[1-5]\\d{7}",[8,9],[["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-4]|5[1-3]"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[59]"],"0$1",1]],"0",0,0,0,0,0,[["21\\d{6,7}|(?:1(?:[14]\\d|[2356])|2[235]|3(?:[13]\\d|4)|4[134]|5[1-3])\\d{6}"],["(?:50|9[1-9])\\d{7}",[9]]]],SZ:["268","00","0800\\d{4}|(?:[237]\\d|900)\\d{6}",[8,9],[["(\\d{4})(\\d{4})","$1 $2",["[0237]"]],["(\\d{5})(\\d{4})","$1 $2",["9"]]],0,0,0,0,0,0,[["[23][2-5]\\d{6}",[8]],["7[5-9]\\d{6}",[8]],["0800\\d{4}",[8]],["900\\d{6}",[9]],0,0,0,0,["70\\d{6}",[8]]]],TA:["290","00","8\\d{3}",[4],0,0,0,0,0,0,"8",[["8\\d{3}"]]],TC:["1","011","(?:[58]\\d\\d|649|900)\\d{7}",[10],0,"1",0,"([2-479]\\d{6})$|1","649$1",0,"649",[["649(?:266|712|9(?:4\\d|50))\\d{4}"],["649(?:2(?:3[129]|4[1-79])|3\\d\\d|4[34][1-3])\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,0,0,["649(?:71[01]|966)\\d{4}"]]],TD:["235","00|16","(?:22|30|[689]\\d|77)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[236-9]"]]],0,0,0,0,0,0,[["22(?:[37-9]0|5[0-5]|6[89])\\d{4}"],["(?:30|[69]\\d|77|8[56])\\d{6}"]],"00"],TG:["228","00","[279]\\d{7}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[279]"]]],0,0,0,0,0,0,[["2(?:2[2-7]|3[23]|4[45]|55|6[67]|77)\\d{5}"],["(?:7[0-29]|9[0-36-9])\\d{6}"]]],TH:["66","00[1-9]","(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}",[8,9,10,13],[["(\\d)(\\d{3})(\\d{4})","$1 $2 $3",["2"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[13-9]"],"0$1"],["(\\d{4})(\\d{3})(\\d{3})","$1 $2 $3",["1"]]],"0",0,0,0,0,0,[["(?:1[0689]|2\\d|3[2-9]|4[2-5]|5[2-6]|7[3-7])\\d{6}",[8]],["67(?:1[0-8]|2[4-7])\\d{5}|(?:14|6[1-6]|[89]\\d)\\d{7}",[9]],["(?:001800\\d|1800)\\d{6}",[10,13]],["1900\\d{6}",[10]],0,0,0,0,["6[08]\\d{7}",[9]]]],TJ:["992","810","[0-57-9]\\d{8}",[9],[["(\\d{6})(\\d)(\\d{2})","$1 $2 $3",["331","3317"]],["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["44[02-479]|[34]7"]],["(\\d{4})(\\d)(\\d{4})","$1 $2 $3",["3(?:[1245]|3[12])"]],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[0-57-9]"]]],0,0,0,0,0,0,[["(?:3(?:1[3-5]|2[245]|3[12]|4[24-7]|5[25]|72)|4(?:46|74|87))\\d{6}"],["(?:33[03-9]|4(?:1[18]|4[02-479])|81[1-9])\\d{6}|(?:[09]\\d|1[0-27-9]|2[0-27]|[34]0|5[05]|7[01578]|8[078])\\d{7}"]],"8~10"],TK:["690","00","[2-47]\\d{3,6}",[4,5,6,7],0,0,0,0,0,0,0,[["(?:2[2-4]|[34]\\d)\\d{2,5}"],["7[2-4]\\d{2,5}"]]],TL:["670","00","7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}",[7,8],[["(\\d{3})(\\d{4})","$1 $2",["[2-489]|70"]],["(\\d{4})(\\d{4})","$1 $2",["7"]]],0,0,0,0,0,0,[["(?:2[1-5]|3[1-9]|4[1-4])\\d{5}",[7]],["7[2-8]\\d{6}",[8]],["80\\d{5}",[7]],["90\\d{5}",[7]],["70\\d{5}",[7]]]],TM:["993","810","(?:[1-6]\\d|71)\\d{6}",[8],[["(\\d{2})(\\d{2})(\\d{2})(\\d{2})","$1 $2-$3-$4",["12"],"(8 $1)"],["(\\d{3})(\\d)(\\d{2})(\\d{2})","$1 $2-$3-$4",["[1-5]"],"(8 $1)"],["(\\d{2})(\\d{6})","$1 $2",["[67]"],"8 $1"]],"8",0,0,0,0,0,[["(?:1(?:2\\d|3[1-9])|2(?:22|4[0-35-8])|3(?:22|4[03-9])|4(?:22|3[128]|4\\d|6[15])|5(?:22|5[7-9]|6[014-689]))\\d{5}"],["(?:6\\d|71)\\d{6}"]],"8~10"],TN:["216","00","[2-57-9]\\d{7}",[8],[["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-57-9]"]]],0,0,0,0,0,0,[["81200\\d{3}|(?:3[0-2]|7\\d)\\d{6}"],["3(?:001|[12]40)\\d{4}|(?:(?:[259]\\d|4[0-8])\\d|3(?:1[1-35]|6[0-4]|91))\\d{5}"],["8010\\d{4}"],["88\\d{6}"],0,0,0,0,0,["8[12]10\\d{4}"]]],TO:["676","00","(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}",[5,7],[["(\\d{2})(\\d{3})","$1-$2",["[2-4]|50|6[09]|7[0-24-69]|8[05]"]],["(\\d{4})(\\d{3})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[5-9]"]]],0,0,0,0,0,0,[["(?:2\\d|3[0-8]|4[0-4]|50|6[09]|7[0-24-69]|8[05])\\d{3}",[5]],["(?:5(?:4[0-5]|5[4-6])|6(?:[09]\\d|3[02]|8[15-9])|(?:7\\d|8[46-9])\\d|999)\\d{4}",[7]],["0800\\d{3}",[7]],0,0,0,0,0,["55[0-37-9]\\d{4}",[7]]]],TR:["90","00","4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}",[7,10,12,13],[["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["512|8[01589]|90"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["5(?:[0-59]|61)","5(?:[0-59]|61[06])","5(?:[0-59]|61[06]1)"],"0$1",1],["(\\d{3})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[24][1-8]|3[1-9]"],"(0$1)",1],["(\\d{3})(\\d{3})(\\d{6,7})","$1 $2 $3",["80"],"0$1",1]],"0",0,0,0,0,0,[["(?:2(?:[13][26]|[28][2468]|[45][268]|[67][246])|3(?:[13][28]|[24-6][2468]|[78][02468]|92)|4(?:[16][246]|[23578][2468]|4[26]))\\d{7}",[10]],["561(?:011|61\\d)\\d{4}|5(?:0[15-7]|1[06]|24|[34]\\d|5[1-59]|9[46])\\d{7}",[10]],["8(?:00\\d{7}(?:\\d{2,3})?|11\\d{7})",[10,12,13]],["(?:8[89]8|900)\\d{7}",[10]],["592(?:21[12]|461)\\d{4}",[10]],0,["444\\d{4}",[7]],["512\\d{7}",[10]],["850\\d{7}",[10]]]],TT:["1","011","(?:[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-46-8]\\d{6})$|1","868$1",0,"868",[["868(?:2(?:01|1[5-9]|[23]\\d|4[0-2])|6(?:0[7-9]|1[02-8]|2[1-9]|[3-69]\\d|7[0-79])|82[124])\\d{4}"],["868(?:(?:2[5-9]|3\\d)\\d|4(?:3[0-6]|[6-9]\\d)|6(?:20|78|8\\d)|7(?:0[1-9]|1[02-9]|[2-9]\\d))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],["868619\\d{4}"]]],TV:["688","00","(?:2|7\\d\\d|90)\\d{4}",[5,6,7],[["(\\d{2})(\\d{3})","$1 $2",["2"]],["(\\d{2})(\\d{4})","$1 $2",["90"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]],0,0,0,0,0,0,[["2[02-9]\\d{3}",[5]],["(?:7[01]\\d|90)\\d{4}",[6,7]]]],TW:["886","0(?:0[25-79]|19)","[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}",[7,8,9,10,11],[["(\\d{2})(\\d)(\\d{4})","$1 $2 $3",["202"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["[258]0"],"0$1"],["(\\d)(\\d{3,4})(\\d{4})","$1 $2 $3",["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]","[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[49]"],"0$1"],["(\\d{2})(\\d{4})(\\d{4,5})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[["(?:2[2-8]\\d|370|55[01]|7[1-9])\\d{6}|4(?:(?:0(?:0[1-9]|[2-48]\\d)|1[023]\\d)\\d{4,5}|(?:[239]\\d\\d|4(?:0[56]|12|49))\\d{5})|6(?:[01]\\d{7}|4(?:0[56]|12|24|4[09])\\d{4,5})|8(?:(?:2(?:3\\d|4[0-269]|[578]0|66)|36[24-9]|90\\d\\d)\\d{4}|4(?:0[56]|12|24|4[09])\\d{4,5})|(?:2(?:2(?:0\\d\\d|4(?:0[68]|[249]0|3[0-467]|5[0-25-9]|6[0235689]))|(?:3(?:[09]\\d|1[0-4])|(?:4\\d|5[0-49]|6[0-29]|7[0-5])\\d)\\d)|(?:(?:3[2-9]|5[2-8]|6[0-35-79]|8[7-9])\\d\\d|4(?:2(?:[089]\\d|7[1-9])|(?:3[0-4]|[78]\\d|9[01])\\d))\\d)\\d{3}",[8,9]],["(?:40001[0-2]|9[0-8]\\d{4})\\d{3}",[9]],["80[0-79]\\d{6}|800\\d{5}",[8,9]],["20(?:[013-9]\\d\\d|2)\\d{4}",[7,9]],["99\\d{7}",[9]],0,["50[0-46-9]\\d{6}",[9]],0,["7010(?:[0-2679]\\d|3[0-7]|8[0-5])\\d{5}|70\\d{8}",[10,11]]],0,"#"],TZ:["255","00[056]","(?:[25-8]\\d|41|90)\\d{7}",[9],[["(\\d{3})(\\d{2})(\\d{4})","$1 $2 $3",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[24]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["5"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[67]"],"0$1"]],"0",0,0,0,0,0,[["2[2-8]\\d{7}"],["(?:6[125-9]|7[13-9])\\d{7}"],["80[08]\\d{6}"],["90\\d{7}"],0,0,0,0,["41\\d{7}"],["8(?:40|6[01])\\d{6}"]]],UA:["380","00","[89]\\d{9}|[3-9]\\d{8}",[9,10],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]","6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"],"0$1"],["(\\d{4})(\\d{5})","$1 $2",["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])","3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[3-7]|89|9[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["[89]"],"0$1"]],"0",0,0,0,0,0,[["(?:3[1-8]|4[13-8]|5[1-7]|6[12459])\\d{7}",[9]],["790\\d{6}|(?:39|50|6[36-8]|7[1-357]|9[1-9])\\d{7}",[9]],["800[1-8]\\d{5,6}"],["900[239]\\d{5,6}"],0,0,0,0,["89[1-579]\\d{6}",[9]]],"0~0"],UG:["256","00[057]","800\\d{6}|(?:[29]0|[347]\\d)\\d{7}",[9],[["(\\d{4})(\\d{5})","$1 $2",["202","2024"],"0$1"],["(\\d{3})(\\d{6})","$1 $2",["[27-9]|4(?:6[45]|[7-9])"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[34]"],"0$1"]],"0",0,0,0,0,0,[["20(?:(?:240|30[67])\\d|6(?:00[0-2]|30[0-4]))\\d{3}|(?:20(?:[017]\\d|2[5-9]|3[1-4]|5[0-4]|6[15-9])|[34]\\d{3})\\d{5}"],["72[48]0\\d{5}|7(?:[014-8]\\d|2[067]|36|9[0-289])\\d{6}"],["800[1-3]\\d{5}"],["90[1-3]\\d{6}"]]],US:["1","011","[2-9]\\d{9}|3\\d{6}",[10],[["(\\d{3})(\\d{4})","$1-$2",["310"],0,1],["(\\d{3})(\\d{3})(\\d{4})","($1) $2-$3",["[2-9]"],0,1,"$1-$2-$3"]],"1",0,0,0,0,0,[["3052(?:0[0-8]|[1-9]\\d)\\d{4}|(?:2742|305[3-9])\\d{6}|(?:472|983)[2-47-9]\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-57-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-269])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[0-247]|4[0378]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[0168]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-3589]|8[04-69]))[2-9]\\d{6}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,0,0,["305209\\d{4}"]]],UY:["598","0(?:0|1[3-9]\\d)","0004\\d{2,9}|[1249]\\d{7}|2\\d{3,4}|(?:[49]\\d|80)\\d{5}",[4,5,6,7,8,9,10,11,12,13],[["(\\d{4,5})","$1",["21"]],["(\\d{3})(\\d{3,4})","$1 $2",["0"]],["(\\d{3})(\\d{4})","$1 $2",["[49]0|8"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["9"],"0$1"],["(\\d{4})(\\d{4})","$1 $2",["[124]"]],["(\\d{3})(\\d{3})(\\d{2,4})","$1 $2 $3",["0"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})","$1 $2 $3 $4",["0"]]],"0",0,0,0,0,0,[["(?:1(?:770|9(?:20|[89]7))|(?:2\\d|4[2-7])\\d\\d)\\d{4}",[8]],["9[1-9]\\d{6}",[8]],["0004\\d{2,9}|(?:405|80[05])\\d{4}",[6,7,8,9,10,11,12,13]],["90[0-8]\\d{4}",[7]],0,0,["21\\d{2,3}",[4,5]]],"00"," int. "],UZ:["998","00","(?:20|33|[5-9]\\d)\\d{7}",[9],[["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["[235-9]"]]],0,0,0,0,0,0,[["(?:55\\d\\d|6(?:1(?:22|3[124]|4[1-4]|5[1-3578]|64)|2(?:22|3[0-57-9]|41)|5(?:22|3[3-7]|5[024-8])|[69]\\d\\d|7(?:[23]\\d|7[69]))|7(?:0(?:5[4-9]|6[0146]|7[124-6]|9[135-8])|[168]\\d\\d|2(?:22|3[13-57-9]|4[1-3579]|5[14])|3(?:2\\d|3[1578]|4[1-35-7]|5[1-57]|61)|4(?:2\\d|3[1-579]|7[1-79])|5(?:22|5[1-9]|6[1457])|9(?:22|5[1-9])))\\d{5}"],["(?:(?:[25]0|33|8[78]|9[0-57-9])\\d{3}|6(?:1(?:2(?:2[01]|98)|35[0-4]|50\\d|61[23]|7(?:[01][017]|4\\d|55|9[5-9]))|2(?:(?:11|7\\d)\\d|2(?:[12]1|9[01379])|5(?:[126]\\d|3[0-4]))|5(?:19[01]|2(?:27|9[26])|(?:30|59|7\\d)\\d)|6(?:2(?:1[5-9]|2[0367]|38|41|52|60)|(?:3[79]|9[0-3])\\d|4(?:56|83)|7(?:[07]\\d|1[017]|3[07]|4[047]|5[057]|67|8[0178]|9[79]))|7(?:2(?:24|3[237]|4[5-9]|7[15-8])|5(?:7[12]|8[0589])|7(?:0\\d|[39][07])|9(?:0\\d|7[079])))|7(?:[07]\\d{3}|2(?:2(?:2[79]|95)|3(?:2[5-9]|6[0-6])|57\\d|7(?:0\\d|1[17]|2[27]|3[37]|44|5[057]|66|88))|3(?:2(?:1[0-6]|21|3[469]|7[159])|(?:33|9[4-6])\\d|5(?:0[0-4]|5[579]|9\\d)|7(?:[0-3579]\\d|4[0467]|6[67]|8[078]))|4(?:2(?:29|5[0257]|6[0-7]|7[1-57])|5(?:1[0-4]|8\\d|9[5-9])|7(?:0\\d|1[024589]|2[0-27]|3[0137]|[46][07]|5[01]|7[5-9]|9[079])|9(?:7[015-9]|[89]\\d))|5(?:112|2(?:0\\d|2[29]|[49]4)|3[1568]\\d|52[6-9]|7(?:0[01578]|1[017]|[23]7|4[047]|[5-7]\\d|8[78]|9[079]))|9(?:22[128]|3(?:2[0-4]|7\\d)|57[02569]|7(?:2[05-9]|3[37]|4\\d|60|7[2579]|87|9[07]))))\\d{4}"]]],VA:["39","00","0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}",[6,7,8,9,10,11,12],0,0,0,0,0,0,"06698",[["06698\\d{1,6}",[6,7,8,9,10,11]],["3[1-9]\\d{8}|3[2-9]\\d{7}",[9,10]],["80(?:0\\d{3}|3)\\d{3}",[6,9]],["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}",[6,8,9,10]],["1(?:78\\d|99)\\d{6}",[9,10]],["3[2-8]\\d{9,10}",[11,12]],0,0,["55\\d{8}",[10]],["84(?:[08]\\d{3}|[17])\\d{3}",[6,9]]]],VC:["1","011","(?:[58]\\d\\d|784|900)\\d{7}",[10],0,"1",0,"([2-7]\\d{6})$|1","784$1",0,"784",[["784(?:266|3(?:6[6-9]|7\\d|8[0-6])|4(?:38|5[0-36-8]|8[0-8])|5(?:55|7[0-2]|93)|638|784)\\d{4}"],["784(?:4(?:3[0-5]|5[45]|89|9[0-8])|5(?:2[6-9]|3[0-4])|720)\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"],0,0,0,["78451[0-2]\\d{4}"]]],VE:["58","00","[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}",[10],[["(\\d{3})(\\d{7})","$1-$2",["[24-689]"],"0$1"]],"0",0,0,0,0,0,[["(?:2(?:12|3[457-9]|[467]\\d|[58][1-9]|9[1-6])|[4-6]00)\\d{7}"],["4(?:1[24-8]|2[246])\\d{7}"],["800\\d{7}"],["90[01]\\d{7}"],0,0,["501\\d{7}"]]],VG:["1","011","(?:284|[58]\\d\\d|900)\\d{7}",[10],0,"1",0,"([2-578]\\d{6})$|1","284$1",0,"284",[["284(?:229|4(?:22|9[45])|774|8(?:52|6[459]))\\d{4}"],["284(?:245|3(?:0[0-3]|4[0-7]|68|9[34])|4(?:4[0-6]|68|9[69])|5(?:4[0-7]|68|9[69]))\\d{4}"],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],VI:["1","011","[58]\\d{9}|(?:34|90)0\\d{7}",[10],0,"1",0,"([2-9]\\d{6})$|1","340$1",0,"340",[["340(?:2(?:0\\d|10|2[06-8]|4[49]|77)|3(?:32|44)|4(?:2[23]|44|7[34]|89)|5(?:1[34]|55)|6(?:2[56]|4[23]|77|9[023])|7(?:1[2-57-9]|2[57]|7\\d)|884|998)\\d{4}"],[""],["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"],["900[2-9]\\d{6}"],["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"]]],VN:["84","00","[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}",[7,8,9,10],[["(\\d{2})(\\d{5})","$1 $2",["80"],"0$1",1],["(\\d{4})(\\d{4,6})","$1 $2",["1"],0,1],["(\\d{2})(\\d{3})(\\d{2})(\\d{2})","$1 $2 $3 $4",["6"],"0$1",1],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[357-9]"],"0$1",1],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["2[48]"],"0$1",1],["(\\d{3})(\\d{4})(\\d{3})","$1 $2 $3",["2"],"0$1",1]],"0",0,0,0,0,0,[["2(?:0[3-9]|1[0-689]|2[0-25-9]|[38][2-9]|4[2-8]|5[124-9]|6[0-39]|7[0-7]|9[0-4679])\\d{7}",[10]],["(?:5(?:2[238]|59)|89[6-9]|99[013-9])\\d{6}|(?:3\\d|5[1689]|7[06-9]|8[1-8]|9[0-8])\\d{7}",[9]],["1800\\d{4,6}|12(?:0[13]|28)\\d{4}",[8,9,10]],["1900\\d{4,6}",[8,9,10]],0,0,["(?:[17]99|80\\d)\\d{4}|69\\d{5,6}",[7,8]],0,["672\\d{6}",[9]]]],VU:["678","00","[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}",[5,7],[["(\\d{3})(\\d{4})","$1 $2",["[57-9]"]]],0,0,0,0,0,0,[["(?:38[0-8]|48[4-9])\\d\\d|(?:2[02-9]|3[4-7]|88)\\d{3}",[5]],["(?:[58]\\d|7[013-7])\\d{5}",[7]],["81[18]\\d\\d",[5]],0,0,0,["(?:3[03]|900\\d)\\d{3}"],0,["9(?:0[1-9]|1[01])\\d{4}",[7]]]],WF:["681","00","(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}",[6,9],[["(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3",["[47-9]"]],["(\\d{3})(\\d{2})(\\d{2})(\\d{2})","$1 $2 $3 $4",["8"]]],0,0,0,0,0,0,[["72\\d{4}",[6]],["(?:72|8[23])\\d{4}",[6]],["80[0-5]\\d{6}",[9]],0,0,["[48]0\\d{4}",[6]],0,0,["9[23]\\d{4}",[6]]]],WS:["685","0","(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}",[5,6,7,10],[["(\\d{5})","$1",["[2-5]|6[1-9]"]],["(\\d{3})(\\d{3,7})","$1 $2",["[68]"]],["(\\d{2})(\\d{5})","$1 $2",["7"]]],0,0,0,0,0,0,[["6[1-9]\\d{3}|(?:[2-5]|60)\\d{4}",[5,6]],["(?:7[1-35-8]|8(?:[3-7]|9\\d{3}))\\d{5}",[7,10]],["800\\d{3}",[6]]]],XK:["383","00","2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}",[8,9,10,11,12],[["(\\d{3})(\\d{5})","$1 $2",["[89]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3})","$1 $2 $3",["[2-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["2|39"],"0$1"],["(\\d{2})(\\d{7,10})","$1 $2",["3"],"0$1"]],"0",0,0,0,0,0,[["38\\d{6,10}|(?:2[89]|39)(?:0\\d{5,6}|[1-9]\\d{5})"],["4[3-9]\\d{6}",[8]],["800\\d{5}",[8]],["900\\d{5}",[8]]]],YE:["967","00","(?:1|7\\d)\\d{7}|[1-7]\\d{6}",[7,8,9],[["(\\d)(\\d{3})(\\d{3,4})","$1 $2 $3",["[1-6]|7(?:[24-6]|8[0-7])"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["7"],"0$1"]],"0",0,0,0,0,0,[["78[0-7]\\d{4}|17\\d{6}|(?:[12][2-68]|3[2358]|4[2-58]|5[2-6]|6[3-58]|7[24-6])\\d{5}",[7,8]],["7[01378]\\d{7}",[9]]]],YT:["262","00","7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}",[9],0,"0",0,0,0,0,0,[["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"],["(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}"],["80\\d{7}"],0,0,0,0,0,["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]],ZA:["27","00","[1-79]\\d{8}|8\\d{4,9}",[5,6,7,8,9,10],[["(\\d{2})(\\d{3,4})","$1 $2",["8[1-4]"],"0$1"],["(\\d{2})(\\d{3})(\\d{2,3})","$1 $2 $3",["8[1-4]"],"0$1"],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["860"],"0$1"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["[1-9]"],"0$1"],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["8"],"0$1"]],"0",0,0,0,0,0,[["(?:2(?:0330|4302)|52087)0\\d{3}|(?:1[0-8]|2[1-378]|3[1-69]|4\\d|5[1346-8])\\d{7}",[9]],["(?:1(?:3492[0-25]|4495[0235]|549(?:20|5[01]))|4[34]492[01])\\d{3}|8[1-4]\\d{3,7}|(?:2[27]|47|54)4950\\d{3}|(?:1(?:049[2-4]|9[12]\\d\\d)|(?:50[0-2]|6\\d\\d|7(?:[0-46-9]\\d|5[0-4]))\\d\\d|8(?:5\\d{3}|7(?:08[67]|158|28[5-9]|310)))\\d{4}|(?:1[6-8]|28|3[2-69]|4[025689]|5[36-8])4920\\d{3}|(?:12|[2-5]1)492\\d{4}",[5,6,7,8,9]],["80\\d{7}",[9]],["(?:86[2-9]|9[0-2]\\d)\\d{6}",[9]],0,0,["861\\d{6,7}",[9,10]],0,["87(?:08[0-589]|15[0-79]|28[0-4]|31[1-9])\\d{4}|87(?:[02][0-79]|1[0-46-9]|3[02-9]|[4-9]\\d)\\d{5}",[9]],["860\\d{6}",[9]]]],ZM:["260","00","800\\d{6}|(?:21|[579]\\d|63)\\d{7}",[9],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[28]"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["[579]"],"0$1"]],"0",0,0,0,0,0,[["21[1-8]\\d{6}"],["(?:[59][5-8]|7[5-9])\\d{7}"],["800\\d{6}"],0,0,0,0,0,["63\\d{7}"]]],ZW:["263","00","2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}",[5,6,7,8,9,10],[["(\\d{3})(\\d{3,5})","$1 $2",["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"],"0$1"],["(\\d)(\\d{3})(\\d{2,4})","$1 $2 $3",["[49]"],"0$1"],["(\\d{3})(\\d{4})","$1 $2",["80"],"0$1"],["(\\d{2})(\\d{7})","$1 $2",["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2","2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"],"(0$1)"],["(\\d{2})(\\d{3})(\\d{4})","$1 $2 $3",["7"],"0$1"],["(\\d{3})(\\d{3})(\\d{3,4})","$1 $2 $3",["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)","2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"],"0$1"],["(\\d{4})(\\d{6})","$1 $2",["8"],"0$1"],["(\\d{2})(\\d{3,5})","$1 $2",["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"],"0$1"],["(\\d{2})(\\d{3})(\\d{3,4})","$1 $2 $3",["29[013-9]|39|54"],"0$1"],["(\\d{4})(\\d{3,5})","$1 $2",["(?:25|54)8","258|5483"],"0$1"]],"0",0,0,0,0,0,[["(?:1(?:(?:3\\d|9)\\d|[4-8])|2(?:(?:(?:0(?:2[014]|5)|(?:2[0157]|31|84|9)\\d\\d|[56](?:[14]\\d\\d|20)|7(?:[089]|2[03]|[35]\\d\\d))\\d|4(?:2\\d\\d|8))\\d|1(?:2|[39]\\d{4}))|3(?:(?:123|(?:29\\d|92)\\d)\\d\\d|7(?:[19]|[56]\\d))|5(?:0|1[2-478]|26|[37]2|4(?:2\\d{3}|83)|5(?:25\\d\\d|[78])|[689]\\d)|6(?:(?:[16-8]21|28|52[013])\\d\\d|[39])|8(?:[1349]28|523)\\d\\d)\\d{3}|(?:4\\d\\d|9[2-9])\\d{4,5}|(?:(?:2(?:(?:(?:0|8[146])\\d|7[1-7])\\d|2(?:[278]\\d|92)|58(?:2\\d|3))|3(?:[26]|9\\d{3})|5(?:4\\d|5)\\d\\d)\\d|6(?:(?:(?:[0-246]|[78]\\d)\\d|37)\\d|5[2-8]))\\d\\d|(?:2(?:[569]\\d|8[2-57-9])|3(?:[013-59]\\d|8[37])|6[89]8)\\d{3}"],["7(?:[1278]\\d|3[1-9])\\d{6}",[9]],["80(?:[01]\\d|20|8[0-8])\\d{3}",[7]],0,0,0,0,0,["86(?:1[12]|22|30|44|55|77|8[368])\\d{6}",[10]]]]},nonGeographic:{800:["800",0,"(?:00|[1-9]\\d)\\d{6}",[8],[["(\\d{4})(\\d{4})","$1 $2",["\\d"]]],0,0,0,0,0,0,[0,0,["(?:00|[1-9]\\d)\\d{6}"]]],808:["808",0,"[1-9]\\d{7}",[8],[["(\\d{4})(\\d{4})","$1 $2",["[1-9]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,0,["[1-9]\\d{7}"]]],870:["870",0,"7\\d{11}|[235-7]\\d{8}",[9,12],[["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["[235-7]"]]],0,0,0,0,0,0,[0,["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"],0,0,0,0,0,0,["2\\d{8}",[9]]]],878:["878",0,"10\\d{10}",[12],[["(\\d{2})(\\d{5})(\\d{5})","$1 $2 $3",["1"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["10\\d{10}"]]],881:["881",0,"6\\d{9}|[0-36-9]\\d{8}",[9,10],[["(\\d)(\\d{3})(\\d{5})","$1 $2 $3",["[0-37-9]"]],["(\\d)(\\d{3})(\\d{5,6})","$1 $2 $3",["6"]]],0,0,0,0,0,0,[0,["6\\d{9}|[0-36-9]\\d{8}"]]],882:["882",0,"[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?",[7,8,9,10,11,12],[["(\\d{2})(\\d{5})","$1 $2",["16|342"]],["(\\d{2})(\\d{6})","$1 $2",["49"]],["(\\d{2})(\\d{2})(\\d{4})","$1 $2 $3",["1[36]|9"]],["(\\d{2})(\\d{4})(\\d{3})","$1 $2 $3",["3[23]"]],["(\\d{2})(\\d{3,4})(\\d{4})","$1 $2 $3",["16"]],["(\\d{2})(\\d{4})(\\d{4})","$1 $2 $3",["10|23|3(?:[15]|4[57])|4|51"]],["(\\d{3})(\\d{4})(\\d{4})","$1 $2 $3",["34"]],["(\\d{2})(\\d{4,5})(\\d{5})","$1 $2 $3",["[1-35]"]]],0,0,0,0,0,0,[0,["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}",[7,8,9,10,12]],0,0,0,["348[57]\\d{7}",[11]],0,0,["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]],883:["883",0,"(?:[1-4]\\d|51)\\d{6,10}",[8,9,10,11,12],[["(\\d{3})(\\d{3})(\\d{2,8})","$1 $2 $3",["[14]|2[24-689]|3[02-689]|51[24-9]"]],["(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3",["510"]],["(\\d{3})(\\d{3})(\\d{4})","$1 $2 $3",["21"]],["(\\d{4})(\\d{4})(\\d{4})","$1 $2 $3",["51[13]"]],["(\\d{3})(\\d{3})(\\d{3})(\\d{3})","$1 $2 $3 $4",["[235]"]]],0,0,0,0,0,0,[0,0,0,0,0,0,0,0,["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]],888:["888",0,"\\d{11}",[11],[["(\\d{3})(\\d{3})(\\d{5})","$1 $2 $3"]],0,0,0,0,0,0,[0,0,0,0,0,0,["\\d{11}"]]],979:["979",0,"[1359]\\d{8}",[9],[["(\\d)(\\d{4})(\\d{4})","$1 $2 $3",["[1359]"]]],0,0,0,0,0,0,[0,0,0,["[1359]\\d{8}"]]]}};var di=2,fi=17,pi=3,hi="0-90-9٠-٩۰-۹",mi="".concat("-‐-―−ー-").concat("//").concat("..").concat("  ­​⁠ ").concat("()()[]\\[\\]").concat("~⁓∼~");function gi(e){return gi="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},gi(e)}function bi(e,t){for(var r=0;ro)return 1;if(o>a)return-1;if(!isNaN(a)&&isNaN(o))return 1;if(isNaN(a)&&!isNaN(o))return-1}return e[1]&&t[1]?e[1]>t[1]?1:e[1]=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function ra(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function oa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);rs?"TOO_SHORT":a[a.length-1]=0?"IS_POSSIBLE":"INVALID_LENGTH"}function ua(e,t,r){return"IS_POSSIBLE"===sa(e,t,r)}function la(e,t){return e=e||"",new RegExp("^(?:"+t+")$").test(e)}function da(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return fa(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?fa(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function fa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0)return!0;return!1}(t,e,r)}):[]}var ba=new RegExp("(["+hi+"])");function ya(e,t){var r="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=function(e,t){if(e){if("string"==typeof e)return Sa(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?Sa(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){r&&(e=r);var n=0;return function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function Sa(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r0&&n[s];if(t.nationalPrefixTransformRule()&&c)i=e.replace(r,t.nationalPrefixTransformRule()),s>1&&(a=n[1]);else{var u=n[0];i=e.slice(u.length),c&&(a=n[1])}if(c){var l=e.indexOf(n[1]);e.slice(0,l)===t.numberingPlan.nationalPrefix()&&(o=t.numberingPlan.nationalPrefix())}else o=n[0];return{nationalNumber:i,nationalPrefix:o,carrierCode:a}}}return{nationalNumber:e}}(e,r),i=n.carrierCode,a=n.nationalNumber;if(a!==e){if(!function(e,t,r){if(la(e,r.nationalNumberPattern())&&!la(t,r.nationalNumberPattern()))return!1;return!0}(e,a,r))return{nationalNumber:e};if(r.numberingPlan.possibleLengths()&&(t||(t=_a(r.numberingPlan.callingCode(),{nationalNumber:a,metadata:r})),!function(e,t,r){switch(sa(e,t,r)){case"TOO_SHORT":case"INVALID_LENGTH":return!1;default:return!0}}(a,t,r)))return{nationalNumber:e}}return{nationalNumber:a,carrierCode:i}}function Aa(e,t,r,n,i){if(!e)return{};var a;if("+"!==e[0]){var o=function(e,t,r,n){if(t){var i=new wi(n);i.selectNumberingPlan(t,r);var a=new RegExp(i.IDDPrefix());if(0===e.search(a)){var o=(e=e.slice(e.match(a)[0].length)).match(ba);if(!(o&&null!=o[1]&&o[1].length>0&&"0"===o[1]))return e}}}(e,t||r,n,i);if(!o||o===e){if(t||r||n){var s=function(e,t,r,n,i){var a=t||r?Ui(t||r,i):n;if(0===e.indexOf(a)){(i=new wi(i)).selectNumberingPlan(t||r,a);var o=e.slice(a.length),s=Ca(o,t,i).nationalNumber,c=Ca(e,t,i).nationalNumber;if(!la(c,i.nationalNumberPattern())&&la(s,i.nationalNumberPattern())||"TOO_LONG"===sa(c,t,i))return{countryCallingCode:a,number:o}}return{number:e}}(e,t,r,n,i),c=s.countryCallingCode,u=s.number;if(c)return{countryCallingCodeSource:"FROM_NUMBER_WITHOUT_PLUS_SIGN",countryCallingCode:c,number:u}}return{number:e}}a=!0,e="+"+o}if("0"===e[1])return{};i=new wi(i);for(var l=2;l-1<=pi&&l<=e.length;){var d=e.slice(1,l);if(i.hasCallingCode(d))return i.selectNumberingPlan(d),{countryCallingCodeSource:a?"FROM_NUMBER_WITH_IDD":"FROM_NUMBER_WITH_PLUS_SIGN",countryCallingCode:d,number:e.slice(l)};l++}return{}}var Ea=/(\$\d)/;function xa(e,t,r){var n=r.useInternationalFormat,i=r.withNationalPrefix,a=(r.carrierCode,r.metadata,e.replace(new RegExp(t.pattern()),n?t.internationalFormat():i&&t.nationalPrefixFormattingRule()?t.format().replace(Ea,t.nationalPrefixFormattingRule()):t.format()));return n?function(e){return e.replace(new RegExp("[".concat(mi,"]+"),"g")," ").trim()}(a):a}var Na=/^[\d]+(?:[~\u2053\u223C\uFF5E][\d]+)?$/;var Ia={formatExtension:function(e,t,r){return"".concat(e).concat(r.ext()).concat(t)}};function Ta(e,t,r,n){if(r=r?function(){for(var e=1,t=arguments.length,r=new Array(t),n=0;n0){var t=e.leadingDigitsPatterns()[e.leadingDigitsPatterns().length-1];if(0!==o.search(t))return!1}return la(o,e.pattern())}));return s?xa(e,s,{useInternationalFormat:"INTERNATIONAL"===r,withNationalPrefix:!s.nationalPrefixIsOptionalWhenFormattingInNationalFormat()||!i||!1!==i.nationalPrefix,carrierCode:t,metadata:n}):e}function Oa(e,t,r,n){return t?n(e,t,r):e}function Ma(e){return Ma="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ma(e)}function Ra(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function Fa(e){for(var t=1;t=e.length)return"";var n=e.indexOf(";",r);return n>=0?e.substring(r,n):e.substring(r)}(e);if(!function(e){return null===e||0!==e.length&&(Va.test(e)||Ua.test(e))}(i))throw new Ei("NOT_A_NUMBER");if(null===i)r=n(e)||"";else{r="",i.charAt(0)===ja&&(r+=i);var a,o=e.indexOf(Ha);a=o>=0?o+Ha.length:0;var s=e.indexOf(Ka);r+=e.substring(a,s)}var c=r.indexOf(Wa);if(c>0&&(r=r.substring(0,c)),""!==r)return r}var Xa=250,Ya=new RegExp("[++"+hi+"]"),Za=new RegExp("[^"+hi+"#]+$"),qa=!1;function Ja(e,t,r){if(t=t||{},r=new wi(r),t.defaultCountry&&!r.hasCountry(t.defaultCountry)){if(t.v2)throw new Ei("INVALID_COUNTRY");throw new Error("Unknown country: ".concat(t.defaultCountry))}var n=function(e,t,r){var n=za(e,{extractFormattedPhoneNumber:function(e){return function(e,t,r){if(!e)return;if(e.length>Xa){if(r)throw new Ei("TOO_LONG");return}if(!1===t)return e;var n=e.search(Ya);if(n<0)return;return e.slice(n).replace(Za,"")}(e,r,t)}});if(!n)return{};if(!function(e){return e.length>=di&&qi.test(e)}(n))return function(e){return Yi.test(e)}(n)?{error:"TOO_SHORT"}:{};var i=function(e){var t=e.search(Ji);if(t<0)return{};for(var r=e.slice(0,t),n=e.match(Ji),i=1;ifi){if(t.v2)throw new Ei("TOO_LONG");return{}}if(t.v2){var p=new ka(l,u,r.metadata);return c&&(p.country=c),f&&(p.carrierCode=f),a&&(p.ext=a),p.__countryCallingCodeSource=d,p}var h=!!(t.extended?r.hasSelectedNumberingPlan():c)&&la(u,r.nationalNumberPattern());return t.extended?{country:c,countryCallingCode:l,carrierCode:f,valid:h,possible:!!h||!(!0!==t.extended||!r.possibleLengths()||!ua(u,c,r)),phone:u,ext:a}:h?function(e,t,r){var n={country:e,phone:t};r&&(n.ext=r);return n}(c,u,a):{}}function Qa(e){return Qa="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Qa(e)}function eo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,n)}return r}function to(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=Array(t);rt.maxDecimalPlaces)return!1}return Number.isFinite(e)}function eu(e,t){return void 0===e&&(e={}),T({name:Jc,constraints:[e],validator:{validate:function(e,t){return Qc(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a number conforming to the specified constraints"},t)}},t)}var tu=function(e,t){var r="function"==typeof Symbol&&e[Symbol.iterator];if(!r)return e;var n,i,a=r.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=a.next()).done;)o.push(n.value)}catch(e){i={error:e}}finally{try{n&&!n.done&&(r=a.return)&&r.call(a)}finally{if(i)throw i.error}}return o},ru="isEnum";function nu(e,t){return Object.keys(t).map(function(e){return t[e]}).includes(e)}function iu(e){return Object.entries(e).filter(function(e){var t=tu(e,2),r=t[0];t[1];return isNaN(parseInt(r))}).map(function(e){var t=tu(e,2);t[0];return t[1]})}function au(e,t){return T({name:ru,constraints:[e,iu(e)],validator:{validate:function(e,t){return nu(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be one of the following values: $constraint2"},t)}},t)}var ou="isInt";function su(e){return"number"==typeof e&&Number.isInteger(e)}function cu(e){return T({name:ou,validator:{validate:function(e,t){return su(e)},defaultMessage:I(function(e){return e+"$property must be an integer number"},e)}},e)}var uu="isString";function lu(e){return e instanceof String||"string"==typeof e}function du(e){return T({name:uu,validator:{validate:function(e,t){return lu(e)},defaultMessage:I(function(e){return e+"$property must be a string"},e)}},e)}var fu="isArray";function pu(e){return Array.isArray(e)}function hu(e){return T({name:fu,validator:{validate:function(e,t){return pu(e)},defaultMessage:I(function(e){return e+"$property must be an array"},e)}},e)}var mu="isObject";function gu(e){return null!=e&&("object"==typeof e||"function"==typeof e)&&!Array.isArray(e)}function bu(e){return T({name:mu,validator:{validate:function(e,t){return gu(e)},defaultMessage:I(function(e){return e+"$property must be an object"},e)}},e)}var yu="arrayContains";function Su(e,t){return!!Array.isArray(e)&&t.every(function(t){return-1!==e.indexOf(t)})}function vu(e,t){return T({name:yu,constraints:[e],validator:{validate:function(e,t){return Su(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must contain $constraint1 values"},t)}},t)}var _u="arrayNotContains";function Cu(e,t){return!!Array.isArray(e)&&t.every(function(t){return-1===e.indexOf(t)})}function Au(e,t){return T({name:_u,constraints:[e],validator:{validate:function(e,t){return Cu(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property should not contain $constraint1 values"},t)}},t)}var Eu="arrayNotEmpty";function xu(e){return Array.isArray(e)&&e.length>0}function Nu(e){return T({name:Eu,validator:{validate:function(e,t){return xu(e)},defaultMessage:I(function(e){return e+"$property should not be empty"},e)}},e)}var Iu="arrayMinSize";function Tu(e,t){return Array.isArray(e)&&e.length>=t}function Du(e,t){return T({name:Iu,constraints:[e],validator:{validate:function(e,t){return Tu(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must contain at least $constraint1 elements"},t)}},t)}var Ou="arrayMaxSize";function Mu(e,t){return Array.isArray(e)&&e.length<=t}function Ru(e,t){return T({name:Ou,constraints:[e],validator:{validate:function(e,t){return Mu(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must contain no more than $constraint1 elements"},t)}},t)}var Fu="arrayUnique";function Pu(e,t){if(!Array.isArray(e))return!1;t&&(e=e.map(function(e){return null!=e?t(e):e}));var r=e.filter(function(e,t,r){return r.indexOf(e)===t});return e.length===r.length}function wu(e,t){var r="function"==typeof e?e:void 0,n="function"!=typeof e?e:t;return T({name:Fu,validator:{validate:function(e,t){return Pu(e,r)},defaultMessage:I(function(e){return e+"All $property's elements must be unique"},n)}},n)}var Bu="isNotEmptyObject";function ku(e,t){if(!gu(e))return!1;if(!1===(null==t?void 0:t.nullable))return!Object.values(e).every(function(e){return null==e});for(var r in e)if(e.hasOwnProperty(r))return!0;return!1}function Lu(e,t){return T({name:Bu,constraints:[e],validator:{validate:function(e,t){return ku(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e){return e+"$property must be a non-empty object"},t)}},t)}var $u="isInstance";function ju(e,t){return t&&"function"==typeof t&&e instanceof t}function Gu(e,t){return T({name:$u,constraints:[e],validator:{validate:function(e,t){return ju(e,null==t?void 0:t.constraints[0])},defaultMessage:I(function(e,t){return(null==t?void 0:t.constraints[0])?e+"$property must be an instance of ".concat(null==t?void 0:t.constraints[0].name):e+"".concat($u," decorator expects and object as value, but got falsy value.")},t)}},t)}function Vu(e,t,r){return"string"==typeof e?A(v).validate(e,t,r):A(v).validate(e,t)}function Uu(e,t,r){return"string"==typeof e?A(v).validateOrReject(e,t,r):A(v).validateOrReject(e,t)}function Hu(e,t,r){return"string"==typeof e?A(v).validateSync(e,t,r):A(v).validateSync(e,t)}function Ku(e){u().addValidationSchema(e)}},90828:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.DebugProtectionFunctionIntervalTemplate=function(){return"\n (function () {\n {globalVariableTemplate}\n \n that.setInterval({debugProtectionFunctionName}, {debugProtectionInterval});\n })();\n "}},91363:function(e,t,r){"use strict";var n,i=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),o=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),o=0;o{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.proAdvertiseMessageSecondPart=t.proAdvertiseMessageFirstPart=void 0,t.proAdvertiseMessageFirstPart="🛡️ JavaScript Obfuscator Pro is now available — with powerful Virtual Machine-based obfuscation\n(bytecode virtualization, anti-decompilation, unique opcode and VM structure each compilation, and more).",t.proAdvertiseMessageSecondPart="👉️ Get your API key at https://obfuscator.io and start using Virtual Machine obfuscation with javascript-obfuscator package."},92076:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.IsIdentifierNamesCache=function(e){return(t,r)=>{(0,a.registerDecorator)({propertyName:r,constraints:[],name:"IsIdentifierNamesCache",options:e,target:t.constructor,validator:{validate(e,t){const n=o.DEFAULT_PRESET[r];return!(!(0,i.default)(e,n)&&null!==e)||"object"==typeof e&&(!!s(null==e?void 0:e.globalIdentifiers)&&s(null==e?void 0:e.propertyIdentifiers))},defaultMessage:()=>"Passed value must be an identifier names cache object or `null` value"}})}};const i=n(r(32017)),a=r(90804),o=r(11839),s=e=>{if(void 0===e)return!0;if("object"!=typeof e||null===e)return!1;const t=Object.values(e);if(!t.length)return!0;for(const e of t)if("string"!=typeof e)return!1;return!0}},92151:e=>{var t={utf8:{stringToBytes:function(e){return t.bin.stringToBytes(unescape(encodeURIComponent(e)))},bytesToString:function(e){return decodeURIComponent(escape(t.bin.bytesToString(e)))}},bin:{stringToBytes:function(e){for(var t=[],r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){if((0,i.default)(e),!a.test(e))return!1;for(var t=!0,r=0,n=e.length-2;n>=0;n--)if(e[n]>="A"&&e[n]<="Z")for(var o=e[n].charCodeAt(0)-55,s=0,c=[o%10,Math.trunc(o/10)];s=5?1+2*(u-5):2*u:u,t=!t}else{var l=e[n].charCodeAt(0)-"0".charCodeAt(0);r+=t?l>=5?1+2*(l-5):2*l:l,t=!t}var d=10*Math.trunc((r+9)/10)-r;return+e[e.length-1]===d};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^[A-Z]{2}[0-9A-Z]{9}[0-9]$/;e.exports=t.default,e.exports.default=t.default},93297:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.ExpressionWithOperatorControlFlowStorageCallNode=void 0;const o=r(71519),s=r(32287),c=r(10548),u=r(57013),l=r(91363),d=r(25120);let f=class extends u.AbstractCustomNode{constructor(e,t,r,n){super(e,t,r,n)}initialize(e,t,r,n){this.controlFlowStorageName=e,this.controlFlowStorageKey=t,this.leftValue=r,this.rightValue=n}getNodeStructure(){const e=l.NodeFactory.expressionStatementNode(l.NodeFactory.callExpressionNode(l.NodeFactory.memberExpressionNode(l.NodeFactory.identifierNode(this.controlFlowStorageName),l.NodeFactory.identifierNode(this.controlFlowStorageKey)),[this.leftValue,this.rightValue]));return d.NodeUtils.parentizeAst(e),[e]}};t.ExpressionWithOperatorControlFlowStorageCallNode=f,n([(0,c.initializable)(),i("design:type",String)],f.prototype,"controlFlowStorageKey",void 0),n([(0,c.initializable)(),i("design:type",String)],f.prototype,"controlFlowStorageName",void 0),t.ExpressionWithOperatorControlFlowStorageCallNode=f=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.Factory__IIdentifierNamesGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.ICustomCodeHelperFormatter)),a(2,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(3,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Function,Object,Object,Object])],f)},93442:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){(0,i.default)(e);var r=e.replace(/\s/g,"").toUpperCase();return t.toUpperCase()in a&&a[t].test(r)},t.locales=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a={AM:/^[A-Z]{2}\d{7}$/,AR:/^[A-Z]{3}\d{6}$/,AT:/^[A-Z]\d{7}$/,AU:/^[A-Z]\d{7}$/,AZ:/^[A-Z]{1}\d{8}$/,BE:/^[A-Z]{2}\d{6}$/,BG:/^\d{9}$/,BR:/^[A-Z]{2}\d{6}$/,BY:/^[A-Z]{2}\d{7}$/,CA:/^[A-Z]{2}\d{6}$|^[A-Z]\d{6}[A-Z]{2}$/,CH:/^[A-Z]\d{7}$/,CN:/^G\d{8}$|^E(?![IO])[A-Z0-9]\d{7}$/,CY:/^[A-Z](\d{6}|\d{8})$/,CZ:/^\d{8}$/,DE:/^[CFGHJKLMNPRTVWXYZ0-9]{9}$/,DK:/^\d{9}$/,DZ:/^\d{9}$/,EE:/^([A-Z]\d{7}|[A-Z]{2}\d{7})$/,ES:/^[A-Z0-9]{2}([A-Z0-9]?)\d{6}$/,FI:/^[A-Z]{2}\d{7}$/,FR:/^\d{2}[A-Z]{2}\d{5}$/,GB:/^\d{9}$/,GR:/^[A-Z]{2}\d{7}$/,HR:/^\d{9}$/,HU:/^[A-Z]{2}(\d{6}|\d{7})$/,IE:/^[A-Z0-9]{2}\d{7}$/,IN:/^[A-Z]{1}-?\d{7}$/,ID:/^[A-C]\d{7}$/,IR:/^[A-Z]\d{8}$/,IS:/^(A)\d{7}$/,IT:/^[A-Z0-9]{2}\d{7}$/,JM:/^[Aa]\d{7}$/,JP:/^[A-Z]{2}\d{7}$/,KR:/^[MS]\d{8}$/,KZ:/^[a-zA-Z]\d{7}$/,LI:/^[a-zA-Z]\d{5}$/,LT:/^[A-Z0-9]{8}$/,LU:/^[A-Z0-9]{8}$/,LV:/^[A-Z0-9]{2}\d{7}$/,LY:/^[A-Z0-9]{8}$/,MT:/^\d{7}$/,MZ:/^([A-Z]{2}\d{7})|(\d{2}[A-Z]{2}\d{5})$/,MY:/^[AHK]\d{8}$/,MX:/^\d{10,11}$/,NL:/^[A-Z]{2}[A-Z0-9]{6}\d$/,NZ:/^([Ll]([Aa]|[Dd]|[Ff]|[Hh])|[Ee]([Aa]|[Pp])|[Nn])\d{6}$/,PH:/^([A-Z](\d{6}|\d{7}[A-Z]))|([A-Z]{2}(\d{6}|\d{7}))$/,PK:/^[A-Z]{2}\d{7}$/,PL:/^[A-Z]{2}\d{7}$/,PT:/^[A-Z]\d{6}$/,RO:/^\d{8,9}$/,RU:/^\d{9}$/,SE:/^\d{8}$/,SL:/^(P)[A-Z]\d{7}$/,SK:/^[0-9A-Z]\d{7}$/,TH:/^[A-Z]{1,2}\d{6,7}$/,TR:/^[A-Z]\d{8}$/,UA:/^[A-Z]{2}\d{6}$/,US:/^\d{9}$|^[A-Z]\d{8}$/,ZA:/^[TAMD]\d{8}$/};t.locales=Object.keys(a)},93610:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;for(var r in t)void 0===e[r]&&(e[r]=t[r]);return e},e.exports=t.default,e.exports.default=t.default},93844:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.IdentifierNamesGenerator=void 0;const n=r(65063);t.IdentifierNamesGenerator=n.Utils.makeEnum({DictionaryIdentifierNamesGenerator:"dictionary",HexadecimalIdentifierNamesGenerator:"hexadecimal",MangledIdentifierNamesGenerator:"mangled",MangledShuffledIdentifierNamesGenerator:"mangled-shuffled"})},93939:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){if((0,i.default)(e),t in u)return u[t].test(e);if("any"===t){for(var r in u){if(u.hasOwnProperty(r))if(u[r].test(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^\d{3}$/,o=/^\d{4}$/,s=/^\d{5}$/,c=/^\d{6}$/,u={AD:/^AD\d{3}$/,AT:o,AU:o,AZ:/^AZ\d{4}$/,BA:/^([7-8]\d{4}$)/,BD:/^([1-8][0-9]{3}|9[0-4][0-9]{2})$/,BE:o,BG:o,BR:/^\d{5}-?\d{3}$/,BY:/^2[1-4]\d{4}$/,CA:/^[ABCEGHJKLMNPRSTVXY]\d[ABCEGHJ-NPRSTV-Z][\s\-]?\d[ABCEGHJ-NPRSTV-Z]\d$/i,CH:o,CN:/^(0[1-7]|1[012356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[1-5]|8[1345]|9[09])\d{4}$/,CO:/^(05|08|11|13|15|17|18|19|20|23|25|27|41|44|47|50|52|54|63|66|68|70|73|76|81|85|86|88|91|94|95|97|99)(\d{4})$/,CZ:/^\d{3}\s?\d{2}$/,DE:s,DK:o,DO:s,DZ:s,EE:s,ES:/^(5[0-2]{1}|[0-4]{1}\d{1})\d{3}$/,FI:s,FR:/^(?:(?:0[1-9]|[1-8]\d|9[0-5])\d{3}|97[1-46]\d{2})$/,GB:/^(gir\s?0aa|[a-z]{1,2}\d[\da-z]?\s?(\d[a-z]{2})?)$/i,GR:/^\d{3}\s?\d{2}$/,HR:/^([1-5]\d{4}$)/,HT:/^HT\d{4}$/,HU:o,ID:s,IE:/^(?!.*(?:o))[A-Za-z]\d[\dw]\s\w{4}$/i,IL:/^(\d{5}|\d{7})$/,IN:/^((?!10|29|35|54|55|65|66|86|87|88|89)[1-9][0-9]{5})$/,IR:/^(?!(\d)\1{3})[13-9]{4}[1346-9][013-9]{5}$/,IS:a,IT:s,JP:/^\d{3}\-\d{4}$/,KE:s,KR:/^(\d{5}|\d{6})$/,LI:/^(948[5-9]|949[0-7])$/,LT:/^LT\-\d{5}$/,LU:o,LV:/^LV\-\d{4}$/,LK:s,MG:a,MX:s,MT:/^[A-Za-z]{3}\s{0,1}\d{4}$/,MY:s,NL:/^[1-9]\d{3}\s?(?!sa|sd|ss)[a-z]{2}$/i,NO:o,NP:/^(10|21|22|32|33|34|44|45|56|57)\d{3}$|^(977)$/i,NZ:o,PK:s,PL:/^\d{2}\-\d{3}$/,PR:/^00[679]\d{2}([ -]\d{4})?$/,PT:/^\d{4}\-\d{3}?$/,RO:c,RU:c,SA:s,SE:/^[1-9]\d{2}\s?\d{2}$/,SG:c,SI:o,SK:/^\d{3}\s?\d{2}$/,TH:s,TN:o,TW:/^\d{3}(\d{2,3})?$/,UA:s,US:/^\d{5}(-\d{4})?$/,ZA:o,ZM:s};t.locales=Object.keys(u)},93961:e=>{function t(e,t){"boolean"==typeof t&&(t={forever:t}),this._originalTimeouts=JSON.parse(JSON.stringify(e)),this._timeouts=e,this._options=t||{},this._maxRetryTime=t&&t.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._timer=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}e.exports=t,t.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts.slice(0)},t.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timer&&clearTimeout(this._timer),this._timeouts=[],this._cachedTimeouts=null},t.prototype.retry=function(e){if(this._timeout&&clearTimeout(this._timeout),!e)return!1;var t=(new Date).getTime();if(e&&t-this._operationStart>=this._maxRetryTime)return this._errors.push(e),this._errors.unshift(new Error("RetryOperation timeout occurred")),!1;this._errors.push(e);var r=this._timeouts.shift();if(void 0===r){if(!this._cachedTimeouts)return!1;this._errors.splice(0,this._errors.length-1),r=this._cachedTimeouts.slice(-1)}var n=this;return this._timer=setTimeout(function(){n._attempts++,n._operationTimeoutCb&&(n._timeout=setTimeout(function(){n._operationTimeoutCb(n._attempts)},n._operationTimeout),n._options.unref&&n._timeout.unref()),n._fn(n._attempts)},r),this._options.unref&&this._timer.unref(),!0},t.prototype.attempt=function(e,t){this._fn=e,t&&(t.timeout&&(this._operationTimeout=t.timeout),t.cb&&(this._operationTimeoutCb=t.cb));var r=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){r._operationTimeoutCb()},r._operationTimeout)),this._operationStart=(new Date).getTime(),this._fn(this._attempts)},t.prototype.try=function(e){console.log("Using RetryOperation.try() is deprecated"),this.attempt(e)},t.prototype.start=function(e){console.log("Using RetryOperation.start() is deprecated"),this.attempt(e)},t.prototype.start=t.prototype.try,t.prototype.errors=function(){return this._errors},t.prototype.attempts=function(){return this._attempts},t.prototype.mainError=function(){if(0===this._errors.length)return null;for(var e={},t=null,r=0,n=0;n=r&&(t=i,r=o)}return t}},94083:(e,t,r)=>{"use strict";e=r.nmd(e);const n=(e,t)=>(...r)=>`[${e(...r)+t}m`,i=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};5;${n}m`},a=(e,t)=>(...r)=>{const n=e(...r);return`[${38+t};2;${n[0]};${n[1]};${n[2]}m`},o=e=>e,s=(e,t,r)=>[e,t,r],c=(e,t,r)=>{Object.defineProperty(e,t,{get:()=>{const n=r();return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0}),n},enumerable:!0,configurable:!0})};let u;const l=(e,t,n,i)=>{void 0===u&&(u=r(10734));const a=i?10:0,o={};for(const[r,i]of Object.entries(u)){const s="ansi16"===r?"ansi":r;r===t?o[s]=e(n,a):"object"==typeof i&&(o[s]=e(i[t],a))}return o};Object.defineProperty(e,"exports",{enumerable:!0,get:function(){const e=new Map,t={modifier:{reset:[0,0],bold:[1,22],dim:[2,22],italic:[3,23],underline:[4,24],inverse:[7,27],hidden:[8,28],strikethrough:[9,29]},color:{black:[30,39],red:[31,39],green:[32,39],yellow:[33,39],blue:[34,39],magenta:[35,39],cyan:[36,39],white:[37,39],blackBright:[90,39],redBright:[91,39],greenBright:[92,39],yellowBright:[93,39],blueBright:[94,39],magentaBright:[95,39],cyanBright:[96,39],whiteBright:[97,39]},bgColor:{bgBlack:[40,49],bgRed:[41,49],bgGreen:[42,49],bgYellow:[43,49],bgBlue:[44,49],bgMagenta:[45,49],bgCyan:[46,49],bgWhite:[47,49],bgBlackBright:[100,49],bgRedBright:[101,49],bgGreenBright:[102,49],bgYellowBright:[103,49],bgBlueBright:[104,49],bgMagentaBright:[105,49],bgCyanBright:[106,49],bgWhiteBright:[107,49]}};t.color.gray=t.color.blackBright,t.bgColor.bgGray=t.bgColor.bgBlackBright,t.color.grey=t.color.blackBright,t.bgColor.bgGrey=t.bgColor.bgBlackBright;for(const[r,n]of Object.entries(t)){for(const[r,i]of Object.entries(n))t[r]={open:`[${i[0]}m`,close:`[${i[1]}m`},n[r]=t[r],e.set(i[0],i[1]);Object.defineProperty(t,r,{value:n,enumerable:!1})}return Object.defineProperty(t,"codes",{value:e,enumerable:!1}),t.color.close="",t.bgColor.close="",c(t.color,"ansi",()=>l(n,"ansi16",o,!1)),c(t.color,"ansi256",()=>l(i,"ansi256",o,!1)),c(t.color,"ansi16m",()=>l(a,"rgb",s,!1)),c(t.bgColor,"ansi",()=>l(n,"ansi16",o,!0)),c(t.bgColor,"ansi256",()=>l(i,"ansi256",o,!0)),c(t.bgColor,"ansi16m",()=>l(a,"rgb",s,!0)),t}})},94501:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.BindingInSyntax=void 0;var n=r(27801),i=r(23334),a=function(){function e(e){this._binding=e}return e.prototype.inRequestScope=function(){return this._binding.scope=n.BindingScopeEnum.Request,new i.BindingWhenOnSyntax(this._binding)},e.prototype.inSingletonScope=function(){return this._binding.scope=n.BindingScopeEnum.Singleton,new i.BindingWhenOnSyntax(this._binding)},e.prototype.inTransientScope=function(){return this._binding.scope=n.BindingScopeEnum.Transient,new i.BindingWhenOnSyntax(this._binding)},e}();t.BindingInSyntax=a},94505:function(e,t,r){"use strict";var n,i,a=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),o=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),s=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},c=this&&this.__importStar||(n=function(e){return n=Object.getOwnPropertyNames||function(e){var t=[];for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[t.length]=r);return t},n(e)},function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r=n(e),i=0;i{if(f.NodeGuards.isVariableDeclaratorNode(e)&&f.NodeGuards.isIdentifierNode(e.id)&&e.init&&f.NodeGuards.isObjectExpressionNode(e.init)&&e.id.name===r)return n=this.findCalleeBlockStatement(e.init.properties,t),l.VisitorOption.Break}}),n}findCalleeBlockStatement(e,t){const r=t.shift();if(!r)return null;for(const n of e)if(f.NodeGuards.isPropertyNode(n)&&i.isValidTargetPropertyNode(n,r)){if(f.NodeGuards.isObjectExpressionNode(n.value))return this.findCalleeBlockStatement(n.value.properties,t);if(f.NodeGuards.isFunctionExpressionNode(n.value))return n.value.body}return null}};t.ObjectExpressionCalleeDataExtractor=h,t.ObjectExpressionCalleeDataExtractor=h=i=s([(0,u.injectable)()],h)},94556:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},a=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},o=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.NumberNumericalExpressionAnalyzer=void 0;const s=r(71519),c=r(32287),u=r(57876);let l=n=class{constructor(e){this.numberFactorsMap=new Map,this.randomGenerator=e}analyze(e,t){if(isNaN(e))throw new Error("Given value is NaN");if(u.NumberUtils.isUnsafeNumber(e))return[e];return this.generateAdditionParts(e,t).map(e=>this.mixWithMultiplyParts(e))}generateAdditionParts(e,t){const r=[],i=Math.min(Math.abs(2*e),Number.MAX_SAFE_INTEGER),a=Math.min(-n.delta,-i),o=Math.max(n.delta,i);let s=0;for(let n=0;n.5)||0===e)return e;let r=null!==(t=this.numberFactorsMap.get(e))&&void 0!==t?t:null;if(r||(r=u.NumberUtils.getFactors(e),this.numberFactorsMap.set(e,r)),!r.length)return e;const n=r[this.randomGenerator.getRandomInteger(0,r.length-1)];return[n,e/n]}};t.NumberNumericalExpressionAnalyzer=l,l.defaultAdditionalPartsCount=3,l.delta=1e4,t.NumberNumericalExpressionAnalyzer=l=n=i([(0,s.injectable)(),o(0,(0,s.inject)(c.ServiceIdentifiers.IRandomGenerator)),a("design:paramtypes",[Object])],l)},94636:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=function(e,t){return-1!==e.indexOf(t)};e.exports=t.default,e.exports.default=t.default},94766:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.NumericalExpressionDataToNodeConverter=void 0;const n=r(91363),i=r(57876);class a{static convertIntegerNumberData(e,t){return a.convertNumericalExpressionDataToNode(e,t)}static convertFloatNumberData(e,t,r){const i=a.convertNumericalExpressionDataToNode(e,r);return n.NodeFactory.binaryExpressionNode("+",i,n.NodeFactory.literalNode(t))}static convertNumericalExpressionDataToNode(e,t,r="+"){var n;const i=e.length,o=i>1?e.slice(0,i-1):[e[0]],s=i>1?e.slice(-1):[];if(s.length)return a.convertPartsToBinaryExpression(r,o,s,t);const c=null!==(n=o[0])&&void 0!==n?n:null;return Array.isArray(c)?a.convertNumericalExpressionDataToNode(c,t,"*"):a.convertPartOrNumberToLiteralNode(c,t)}static convertPartsToBinaryExpression(e,t,r,i){const o=r[0];return Array.isArray(o)?n.NodeFactory.binaryExpressionNode(e,a.convertNumericalExpressionDataToNode(t,i),a.convertNumericalExpressionDataToNode(o,i,"*")):n.NodeFactory.binaryExpressionNode(e,a.convertNumericalExpressionDataToNode(t,i),this.convertPartOrNumberToLiteralNode(o,i))}static convertPartOrNumberToLiteralNode(e,t){const r=Array.isArray(e)?e[0]:e,n=i.NumberUtils.isPositive(r);return t(Math.abs(r),n)}}t.NumericalExpressionDataToNodeConverter=a},94838:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.OptionsPreset=void 0;const n=r(65063);t.OptionsPreset=n.Utils.makeEnum({Default:"default",LowObfuscation:"low-obfuscation",MediumObfuscation:"medium-obfuscation",HighObfuscation:"high-obfuscation"})},94914:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.AbstractControlFlowReplacer=void 0;const o=r(71519),s=r(32287);let c=class{constructor(e,t,r,n){this.replacerDataByControlFlowStorageId=new Map,this.controlFlowCustomNodeFactory=e,this.identifierNamesGenerator=t(n),this.randomGenerator=r,this.options=n}generateStorageKey(e){let t=this.randomGenerator.getRandomString(5);for(;e.has(t);)t=this.randomGenerator.getRandomString(5);return t}insertCustomNodeToControlFlowStorage(e,t,r,n){const i=t.getStorageId();let a=this.replacerDataByControlFlowStorageId.get(i);a||(a=new Map,this.replacerDataByControlFlowStorageId.set(i,a));let o=a.get(r);o||(o=[],a.set(r,o));if(this.randomGenerator.getMathRandom(){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.InversifyCoreErrorKind=void 0,function(e){e[e.missingInjectionDecorator=0]="missingInjectionDecorator",e[e.unknown=1]="unknown"}(r||(t.InversifyCoreErrorKind=r={}))},95136:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.optional=function(){return(0,c.createTaggedDecorator)(new s.Metadata(o.OPTIONAL_TAG,!0))};var o=a(r(2006)),s=r(14425),c=r(24157)},95251:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){if((0,i.default)(e),r&&r.strictMode&&!e.startsWith("+"))return!1;if(Array.isArray(t))return t.some(function(t){if(a.hasOwnProperty(t)&&a[t].test(e))return!0;return!1});if(t in a)return a[t].test(e);if(!t||"any"===t){for(var n in a){if(a.hasOwnProperty(n))if(a[n].test(e))return!0}return!1}throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a={"am-AM":/^(\+?374|0)(33|4[134]|55|77|88|9[13-689])\d{6}$/,"ar-AE":/^((\+?971)|0)?5[024568]\d{7}$/,"ar-BH":/^(\+?973)?(3|6)\d{7}$/,"ar-DZ":/^(\+?213|0)(5|6|7)\d{8}$/,"ar-LB":/^(\+?961)?((3|81)\d{6}|7\d{7})$/,"ar-EG":/^((\+?20)|0)?1[0125]\d{8}$/,"ar-IQ":/^(\+?964|0)?7[0-9]\d{8}$/,"ar-JO":/^(\+?962|0)?7[789]\d{7}$/,"ar-KW":/^(\+?965)([569]\d{7}|41\d{6})$/,"ar-LY":/^((\+?218)|0)?(9[1-6]\d{7}|[1-8]\d{7,9})$/,"ar-MA":/^(?:(?:\+|00)212|0)[5-7]\d{8}$/,"ar-OM":/^((\+|00)968)?([79][1-9])\d{6}$/,"ar-PS":/^(\+?970|0)5[6|9](\d{7})$/,"ar-SA":/^(!?(\+?966)|0)?5\d{8}$/,"ar-SD":/^((\+?249)|0)?(9[012369]|1[012])\d{7}$/,"ar-SY":/^(!?(\+?963)|0)?9\d{8}$/,"ar-TN":/^(\+?216)?[2459]\d{7}$/,"az-AZ":/^(\+994|0)(10|5[015]|7[07]|99)\d{7}$/,"ar-QA":/^(\+?974|0)?([3567]\d{7})$/,"bs-BA":/^((((\+|00)3876)|06))((([0-3]|[5-6])\d{6})|(4\d{7}))$/,"be-BY":/^(\+?375)?(24|25|29|33|44)\d{7}$/,"bg-BG":/^(\+?359|0)?8[789]\d{7}$/,"bn-BD":/^(\+?880|0)1[13456789][0-9]{8}$/,"ca-AD":/^(\+376)?[346]\d{5}$/,"cs-CZ":/^(\+?420)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"da-DK":/^(\+?45)?\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2}$/,"de-DE":/^((\+49|0)1)(5[0-25-9]\d|6([23]|0\d?)|7([0-57-9]|6\d))\d{7,9}$/,"de-AT":/^(\+43|0)\d{1,4}\d{3,12}$/,"de-CH":/^(\+41|0)([1-9])\d{1,9}$/,"de-LU":/^(\+352)?((6\d1)\d{6})$/,"dv-MV":/^(\+?960)?(7[2-9]|9[1-9])\d{5}$/,"el-GR":/^(\+?30|0)?6(8[5-9]|9(?![26])[0-9])\d{7}$/,"el-CY":/^(\+?357?)?(9(9|7|6|5|4)\d{6})$/,"en-AI":/^(\+?1|0)264(?:2(35|92)|4(?:6[1-2]|76|97)|5(?:3[6-9]|8[1-4])|7(?:2(4|9)|72))\d{4}$/,"en-AU":/^(\+?61|0)4\d{8}$/,"en-AG":/^(?:\+1|1)268(?:464|7(?:1[3-9]|[28]\d|3[0246]|64|7[0-689]))\d{4}$/,"en-BM":/^(\+?1)?441(((3|7)\d{6}$)|(5[0-3][0-9]\d{4}$)|(59\d{5}$))/,"en-BS":/^(\+?1[-\s]?|0)?\(?242\)?[-\s]?\d{3}[-\s]?\d{4}$/,"en-GB":/^(\+?44|0)7[1-9]\d{8}$/,"en-GG":/^(\+?44|0)1481\d{6}$/,"en-GH":/^(\+233|0)(20|50|24|54|27|57|26|56|23|53|28|55|59)\d{7}$/,"en-GY":/^(\+592|0)6\d{6}$/,"en-HK":/^(\+?852[-\s]?)?[456789]\d{3}[-\s]?\d{4}$/,"en-MO":/^(\+?853[-\s]?)?[6]\d{3}[-\s]?\d{4}$/,"en-IE":/^(\+?353|0)8[356789]\d{7}$/,"en-IN":/^(\+?91|0)?[6789]\d{9}$/,"en-JM":/^(\+?876)?\d{7}$/,"en-KE":/^(\+?254|0)(7|1)\d{8}$/,"fr-CF":/^(\+?236| ?)(70|75|77|72|21|22)\d{6}$/,"en-SS":/^(\+?211|0)(9[1257])\d{7}$/,"en-KI":/^((\+686|686)?)?( )?((6|7)(2|3|8)[0-9]{6})$/,"en-KN":/^(?:\+1|1)869(?:46\d|48[89]|55[6-8]|66\d|76[02-7])\d{4}$/,"en-LS":/^(\+?266)(22|28|57|58|59|27|52)\d{6}$/,"en-MT":/^(\+?356|0)?(99|79|77|21|27|22|25)[0-9]{6}$/,"en-MU":/^(\+?230|0)?\d{8}$/,"en-MW":/^(\+?265|0)(((77|88|31|99|98|21)\d{7})|(((111)|1)\d{6})|(32000\d{4}))$/,"en-NA":/^(\+?264|0)(6|8)\d{7}$/,"en-NG":/^(\+?234|0)?[789]\d{9}$/,"en-NZ":/^(\+?64|0)[28]\d{7,9}$/,"en-PG":/^(\+?675|0)?(7\d|8[18])\d{6}$/,"en-PK":/^((00|\+)?92|0)3[0-6]\d{8}$/,"en-PH":/^(09|\+639)\d{9}$/,"en-RW":/^(\+?250|0)?[7]\d{8}$/,"en-SG":/^(\+65)?[3689]\d{7}$/,"en-SL":/^(\+?232|0)\d{8}$/,"en-TZ":/^(\+?255|0)?[67]\d{8}$/,"en-UG":/^(\+?256|0)?[7]\d{8}$/,"en-US":/^((\+1|1)?( |-)?)?(\([2-9][0-9]{2}\)|[2-9][0-9]{2})( |-)?([2-9][0-9]{2}( |-)?[0-9]{4})$/,"en-ZA":/^(\+?27|0)\d{9}$/,"en-ZM":/^(\+?26)?0[79][567]\d{7}$/,"en-ZW":/^(\+263)[0-9]{9}$/,"en-BW":/^(\+?267)?(7[1-8]{1})\d{6}$/,"es-AR":/^\+?549(11|[2368]\d)\d{8}$/,"es-BO":/^(\+?591)?(6|7)\d{7}$/,"es-CO":/^(\+?57)?3(0(0|1|2|4|5)|1\d|2[0-4]|5(0|1))\d{7}$/,"es-CL":/^(\+?56|0)[2-9]\d{1}\d{7}$/,"es-CR":/^(\+506)?[2-8]\d{7}$/,"es-CU":/^(\+53|0053)?5\d{7}$/,"es-DO":/^(\+?1)?8[024]9\d{7}$/,"es-HN":/^(\+?504)?[9|8|3|2]\d{7}$/,"es-EC":/^(\+?593|0)([2-7]|9[2-9])\d{7}$/,"es-ES":/^(\+?34)?[6|7]\d{8}$/,"es-GT":/^(\+?502)?[2|6|7]\d{7}$/,"es-PE":/^(\+?51)?9\d{8}$/,"es-MX":/^(\+?52)?(1|01)?\d{10,11}$/,"es-NI":/^(\+?505)\d{7,8}$/,"es-PA":/^(\+?507)\d{7,8}$/,"es-PY":/^(\+?595|0)9[9876]\d{7}$/,"es-SV":/^(\+?503)?[67]\d{7}$/,"es-UY":/^(\+598|0)9[1-9][\d]{6}$/,"es-VE":/^(\+?58)?(2|4)\d{9}$/,"et-EE":/^(\+?372)?\s?(5|8[1-4])\s?([0-9]\s?){6,7}$/,"fa-IR":/^(\+?98[\-\s]?|0)9[0-39]\d[\-\s]?\d{3}[\-\s]?\d{4}$/,"fi-FI":/^(\+?358|0)\s?(4[0-6]|50)\s?(\d\s?){4,8}$/,"fj-FJ":/^(\+?679)?\s?\d{3}\s?\d{4}$/,"fo-FO":/^(\+?298)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"fr-BF":/^(\+226|0)[67]\d{7}$/,"fr-BJ":/^(\+229)\d{8}$/,"fr-CD":/^(\+?243|0)?(8|9)\d{8}$/,"fr-CM":/^(\+?237)6[0-9]{8}$/,"fr-FR":/^(\+?33|0)[67]\d{8}$/,"fr-GF":/^(\+?594|0|00594)[67]\d{8}$/,"fr-GP":/^(\+?590|0|00590)[67]\d{8}$/,"fr-MQ":/^(\+?596|0|00596)[67]\d{8}$/,"fr-PF":/^(\+?689)?8[789]\d{6}$/,"fr-RE":/^(\+?262|0|00262)[67]\d{8}$/,"fr-WF":/^(\+681)?\d{6}$/,"he-IL":/^(\+972|0)([23489]|5[012345689]|77)[1-9]\d{6}$/,"hu-HU":/^(\+?36|06)(20|30|31|50|70)\d{7}$/,"id-ID":/^(\+?62|0)8(1[123456789]|2[1238]|3[1238]|5[12356789]|7[78]|9[56789]|8[123456789])([\s?|\d]{5,11})$/,"ir-IR":/^(\+98|0)?9\d{9}$/,"it-IT":/^(\+?39)?\s?3\d{2} ?\d{6,7}$/,"it-SM":/^((\+378)|(0549)|(\+390549)|(\+3780549))?6\d{5,9}$/,"ja-JP":/^(\+81[ \-]?(\(0\))?|0)[6789]0[ \-]?\d{4}[ \-]?\d{4}$/,"ka-GE":/^(\+?995)?(79\d{7}|5\d{8})$/,"kk-KZ":/^(\+?7|8)?7\d{9}$/,"kl-GL":/^(\+?299)?\s?\d{2}\s?\d{2}\s?\d{2}$/,"ko-KR":/^((\+?82)[ \-]?)?0?1([0|1|6|7|8|9]{1})[ \-]?\d{3,4}[ \-]?\d{4}$/,"ky-KG":/^(\+996\s?)?(22[0-9]|50[0-9]|55[0-9]|70[0-9]|75[0-9]|77[0-9]|880|990|995|996|997|998)\s?\d{3}\s?\d{3}$/,"lt-LT":/^(\+370|8)\d{8}$/,"lv-LV":/^(\+?371)2\d{7}$/,"mg-MG":/^((\+?261|0)(2|3)\d)?\d{7}$/,"mn-MN":/^(\+|00|011)?976(77|81|88|91|94|95|96|99)\d{6}$/,"my-MM":/^(\+?959|09|9)(2[5-7]|3[1-2]|4[0-5]|6[6-9]|7[5-9]|9[6-9])[0-9]{7}$/,"ms-MY":/^(\+?60|0)1(([0145](-|\s)?\d{7,8})|([236-9](-|\s)?\d{7}))$/,"mz-MZ":/^(\+?258)?8[234567]\d{7}$/,"nb-NO":/^(\+?47)?[49]\d{7}$/,"ne-NP":/^(\+?977)?9[78]\d{8}$/,"nl-BE":/^(\+?32|0)4\d{8}$/,"nl-NL":/^(((\+|00)?31\(0\))|((\+|00)?31)|0)6{1}\d{8}$/,"nl-AW":/^(\+)?297(56|59|64|73|74|99)\d{5}$/,"nn-NO":/^(\+?47)?[49]\d{7}$/,"pl-PL":/^(\+?48)? ?([5-8]\d|45) ?\d{3} ?\d{2} ?\d{2}$/,"pt-BR":/^((\+?55\ ?[1-9]{2}\ ?)|(\+?55\ ?\([1-9]{2}\)\ ?)|(0[1-9]{2}\ ?)|(\([1-9]{2}\)\ ?)|([1-9]{2}\ ?))((\d{4}\-?\d{4})|(9[1-9]{1}\d{3}\-?\d{4}))$/,"pt-PT":/^(\+?351)?9[1236]\d{7}$/,"pt-AO":/^(\+?244)?9\d{8}$/,"ro-MD":/^(\+?373|0)((6(0|1|2|6|7|8|9))|(7(6|7|8|9)))\d{6}$/,"ro-RO":/^(\+?40|0)\s?7\d{2}(\/|\s|\.|-)?\d{3}(\s|\.|-)?\d{3}$/,"ru-RU":/^(\+?7|8)?9\d{9}$/,"si-LK":/^(?:0|94|\+94)?(7(0|1|2|4|5|6|7|8)( |-)?)\d{7}$/,"sl-SI":/^(\+386\s?|0)(\d{1}\s?\d{3}\s?\d{2}\s?\d{2}|\d{2}\s?\d{3}\s?\d{3})$/,"sk-SK":/^(\+?421)? ?[1-9][0-9]{2} ?[0-9]{3} ?[0-9]{3}$/,"so-SO":/^(\+?252|0)((6[0-9])\d{7}|(7[1-9])\d{7})$/,"sq-AL":/^(\+355|0)6[2-9]\d{7}$/,"sr-RS":/^(\+3816|06)[- \d]{5,9}$/,"sv-SE":/^(\+?46|0)[\s\-]?7[\s\-]?[02369]([\s\-]?\d){7}$/,"tg-TJ":/^(\+?992)?[5][5]\d{7}$/,"th-TH":/^(\+66|66|0)\d{9}$/,"tr-TR":/^(\+?90|0)?5\d{9}$/,"tk-TM":/^(\+993|993|8)\d{8}$/,"uk-UA":/^(\+?38)?0(50|6[36-8]|7[357]|9[1-9])\d{7}$/,"uz-UZ":/^(\+?998)?(6[125-79]|7[1-69]|88|9\d)\d{7}$/,"vi-VN":/^((\+?84)|0)((3([2-9]))|(5([25689]))|(7([0|6-9]))|(8([1-9]))|(9([0-9])))([0-9]{7})$/,"zh-CN":/^((\+|00)86)?(1[3-9]|9[28])\d{9}$/,"zh-TW":/^(\+?886\-?|0)?9\d{8}$/,"dz-BT":/^(\+?975|0)?(17|16|77|02)\d{6}$/,"ar-YE":/^(((\+|00)9677|0?7)[0137]\d{7}|((\+|00)967|0)[1-7]\d{6})$/,"ar-EH":/^(\+?212|0)[\s\-]?(5288|5289)[\s\-]?\d{5}$/,"fa-AF":/^(\+93|0)?(2{1}[0-8]{1}|[3-5]{1}[0-4]{1})(\d{7})$/,"mk-MK":/^(\+?389|0)?((?:2[2-9]\d{6}|(?:3[1-4]|4[2-8])\d{6}|500\d{5}|5[2-9]\d{6}|7[0-9][2-9]\d{5}|8[1-9]\d{6}|800\d{5}|8009\d{4}))$/};a["en-CA"]=a["en-US"],a["fr-CA"]=a["en-CA"],a["fr-BE"]=a["nl-BE"],a["zh-HK"]=a["en-HK"],a["zh-MO"]=a["en-MO"],a["ga-IE"]=a["en-IE"],a["fr-CH"]=a["de-CH"],a["it-CH"]=a["fr-CH"];t.locales=Object.keys(a)},95397:function(e,t,r){"use strict";var n=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,a){function o(e){try{c(n.next(e))}catch(e){a(e)}}function s(e){try{c(n.throw(e))}catch(e){a(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(o,s)}c((n=n.apply(e,t||[])).next())})},i=this&&this.__generator||function(e,t){var r,n,i,a={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},o=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),"function"==typeof Symbol&&(o[Symbol.iterator]=function(){return this}),o;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;o&&(o=0,s[0]&&(a=0)),a;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return a.label++,{value:s[1],done:!1};case 5:a.label++,n=s[1],s=[0];continue;case 7:s=a.ops.pop(),a.trys.pop();continue;default:if(!(i=a.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){a=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.STACK_OVERFLOW=t.CIRCULAR_DEPENDENCY_IN_FACTORY=t.ON_DEACTIVATION_ERROR=t.PRE_DESTROY_ERROR=t.POST_CONSTRUCT_ERROR=t.ASYNC_UNBIND_REQUIRED=t.MULTIPLE_POST_CONSTRUCT_METHODS=t.MULTIPLE_PRE_DESTROY_METHODS=t.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK=t.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE=t.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE=t.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT=t.ARGUMENTS_LENGTH_MISMATCH=t.INVALID_DECORATOR_OPERATION=t.INVALID_TO_SELF_VALUE=t.LAZY_IN_SYNC=t.INVALID_FUNCTION_BINDING=t.INVALID_MIDDLEWARE_RETURN=t.NO_MORE_SNAPSHOTS_AVAILABLE=t.INVALID_BINDING_TYPE=t.CIRCULAR_DEPENDENCY=t.UNDEFINED_INJECT_ANNOTATION=t.TRYING_TO_RESOLVE_BINDINGS=t.NOT_REGISTERED=t.CANNOT_UNBIND=t.AMBIGUOUS_MATCH=t.KEY_NOT_FOUND=t.NULL_ARGUMENT=t.DUPLICATED_METADATA=t.DUPLICATED_INJECTABLE_DECORATOR=void 0,t.DUPLICATED_INJECTABLE_DECORATOR="Cannot apply @injectable decorator multiple times.",t.DUPLICATED_METADATA="Metadata key was used more than once in a parameter:",t.NULL_ARGUMENT="NULL argument",t.KEY_NOT_FOUND="Key Not Found",t.AMBIGUOUS_MATCH="Ambiguous match found for serviceIdentifier:",t.CANNOT_UNBIND="Could not unbind serviceIdentifier:",t.NOT_REGISTERED="No matching bindings found for serviceIdentifier:";t.TRYING_TO_RESOLVE_BINDINGS=function(e){return'Trying to resolve bindings for "'.concat(e,'"')};t.UNDEFINED_INJECT_ANNOTATION=function(e){return"@inject called with undefined this could mean that the class ".concat(e," has ")+"a circular dependency problem. You can use a LazyServiceIdentifer to overcome this limitation."},t.CIRCULAR_DEPENDENCY="Circular dependency found:",t.INVALID_BINDING_TYPE="Invalid binding type:",t.NO_MORE_SNAPSHOTS_AVAILABLE="No snapshot available to restore.",t.INVALID_MIDDLEWARE_RETURN="Invalid return type in middleware. Middleware must return!",t.INVALID_FUNCTION_BINDING="Value provided to function binding must be a function!";t.LAZY_IN_SYNC=function(e){return"You are attempting to construct ".concat(function(e){if("function"==typeof e)return"[function/class ".concat(e.name||"","]");if("symbol"==typeof e)return e.toString();return"'".concat(e,"'")}(e)," in a synchronous way ")+"but it has asynchronous dependencies."},t.INVALID_TO_SELF_VALUE="The toSelf function can only be applied when a constructor is used as service identifier",t.INVALID_DECORATOR_OPERATION="The @inject @multiInject @tagged and @named decorators must be applied to the parameters of a class constructor or a class property.";t.ARGUMENTS_LENGTH_MISMATCH=function(e){return"The number of constructor arguments in the derived class "+"".concat(e," must be >= than the number of constructor arguments of its base class.")},t.CONTAINER_OPTIONS_MUST_BE_AN_OBJECT="Invalid Container constructor argument. Container options must be an object.",t.CONTAINER_OPTIONS_INVALID_DEFAULT_SCOPE='Invalid Container option. Default scope must be a string ("singleton" or "transient").',t.CONTAINER_OPTIONS_INVALID_AUTO_BIND_INJECTABLE="Invalid Container option. Auto bind injectable must be a boolean",t.CONTAINER_OPTIONS_INVALID_SKIP_BASE_CHECK="Invalid Container option. Skip base check must be a boolean",t.MULTIPLE_PRE_DESTROY_METHODS="Cannot apply @preDestroy decorator multiple times in the same class",t.MULTIPLE_POST_CONSTRUCT_METHODS="Cannot apply @postConstruct decorator multiple times in the same class",t.ASYNC_UNBIND_REQUIRED="Attempting to unbind dependency with asynchronous destruction (@preDestroy or onDeactivation)";t.POST_CONSTRUCT_ERROR=function(e,t){return"@postConstruct error in class ".concat(e,": ").concat(t)};t.PRE_DESTROY_ERROR=function(e,t){return"@preDestroy error in class ".concat(e,": ").concat(t)};t.ON_DEACTIVATION_ERROR=function(e,t){return"onDeactivation() error in class ".concat(e,": ").concat(t)};t.CIRCULAR_DEPENDENCY_IN_FACTORY=function(e,t){return"It looks like there is a circular dependency in one of the '".concat(e,"' bindings. Please investigate bindings with ")+"service identifier '".concat(t,"'.")},t.STACK_OVERFLOW="Maximum call stack size exceeded"},95900:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.ContainerSnapshot=void 0;var r=function(){function e(){}return e.of=function(t,r,n,i,a){var o=new e;return o.bindings=t,o.middleware=r,o.deactivations=i,o.activations=n,o.moduleActivationStore=a,o},e}();t.ContainerSnapshot=r},96390:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.NodeTransformer=void 0,function(e){e.BooleanLiteralTransformer="BooleanLiteralTransformer",e.BlockStatementControlFlowTransformer="BlockStatementControlFlowTransformer",e.BlockStatementSimplifyTransformer="BlockStatementSimplifyTransformer",e.ClassFieldTransformer="ClassFieldTransformer",e.CommentsTransformer="CommentsTransformer",e.CustomCodeHelpersTransformer="CustomCodeHelpersTransformer",e.DeadCodeInjectionIdentifiersTransformer="DeadCodeInjectionIdentifiersTransformer",e.DeadCodeInjectionTransformer="DeadCodeInjectionTransformer",e.DirectivePlacementTransformer="DirectivePlacementTransformer",e.EscapeSequenceTransformer="EscapeSequenceTransformer",e.EvalCallExpressionTransformer="EvalCallExpressionTransformer",e.ExportSpecifierTransformer="ExportSpecifierTransformer",e.ExpressionStatementsMergeTransformer="ExpressionStatementsMergeTransformer",e.FunctionControlFlowTransformer="FunctionControlFlowTransformer",e.IfStatementSimplifyTransformer="IfStatementSimplifyTransformer",e.LabeledStatementTransformer="LabeledStatementTransformer",e.MemberExpressionTransformer="MemberExpressionTransformer",e.MetadataTransformer="MetadataTransformer",e.NumberLiteralTransformer="NumberLiteralTransformer",e.NumberToNumericalExpressionTransformer="NumberToNumericalExpressionTransformer",e.ObfuscatingGuardsTransformer="ObfuscatingGuardsTransformer",e.ObjectExpressionKeysTransformer="ObjectExpressionKeysTransformer",e.ObjectExpressionTransformer="ObjectExpressionTransformer",e.ObjectPatternPropertiesTransformer="ObjectPatternPropertiesTransformer",e.ParentificationTransformer="ParentificationTransformer",e.RenamePropertiesTransformer="RenamePropertiesTransformer",e.ScopeIdentifiersTransformer="ScopeIdentifiersTransformer",e.ScopeThroughIdentifiersTransformer="ScopeThroughIdentifiersTransformer",e.SplitStringTransformer="SplitStringTransformer",e.StringArrayControlFlowTransformer="StringArrayControlFlowTransformer",e.StringArrayTransformer="StringArrayTransformer",e.StringArrayRotateFunctionTransformer="StringArrayRotateFunctionTransformer",e.StringArrayScopeCallsWrapperTransformer="StringArrayScopeCallsWrapperTransformer",e.TemplateLiteralTransformer="TemplateLiteralTransformer",e.VariableDeclarationsMergeTransformer="VariableDeclarationsMergeTransformer",e.VariablePreserveTransformer="VariablePreserveTransformer"}(r||(t.NodeTransformer=r={}))},96747:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.ControlFlowCustomNode=void 0,function(e){e.BinaryExpressionFunctionNode="BinaryExpressionFunctionNode",e.BlockStatementControlFlowFlatteningNode="BlockStatementControlFlowFlatteningNode",e.CallExpressionControlFlowStorageCallNode="CallExpressionControlFlowStorageCallNode",e.CallExpressionFunctionNode="CallExpressionFunctionNode",e.ControlFlowStorageNode="ControlFlowStorageNode",e.ExpressionWithOperatorControlFlowStorageCallNode="ExpressionWithOperatorControlFlowStorageCallNode",e.LiteralNode="LiteralNode",e.LogicalExpressionFunctionNode="LogicalExpressionFunctionNode",e.StringLiteralControlFlowStorageCallNode="StringLiteralControlFlowStorageCallNode"}(r||(t.ControlFlowCustomNode=r={}))},97677:(e,t)=>{var r;!function(){var n=9007199254740992,i=-n,a="0123456789",o="abcdefghijklmnopqrstuvwxyz",s=o.toUpperCase(),c=a+"abcdef";function u(e){this.name="UnsupportedError",this.message=e||"This feature is not supported on this platform"}u.prototype=new Error,u.prototype.constructor=u;var l=Array.prototype.slice;function d(e){if(!(this instanceof d))return e||(e=null),null===e?new d:new d(e);if("function"==typeof e)return this.random=e,this;arguments.length&&(this.seed=0);for(var t=0;t100,"Chance: Likelihood accepts values from 0 to 100."),100*this.random()r,"Chance: Max specified is out of range with fixed. Max should be, at most, "+r),e=f(e,{min:i,max:r});var a=(this.integer({min:e.min*t,max:e.max*t})/t).toFixed(e.fixed);return parseFloat(a)},d.prototype.integer=function(e){return p((e=f(e,{min:i,max:n})).min>e.max,"Chance: Min cannot be greater than Max."),Math.floor(this.random()*(e.max-e.min+1)+e.min)},d.prototype.natural=function(e){if("number"==typeof(e=f(e,{min:0,max:n})).numerals&&(p(e.numerals<1,"Chance: Numerals cannot be less than one."),e.min=Math.pow(10,e.numerals-1),e.max=Math.pow(10,e.numerals)-1),p(e.min<0,"Chance: Min cannot be less than zero."),e.exclude){for(var t in p(!Array.isArray(e.exclude),"Chance: exclude must be an array."),e.exclude)p(!Number.isInteger(e.exclude[t]),"Chance: exclude must be numbers.");var r=e.min+this.natural({max:e.max-e.min-e.exclude.length}),i=e.exclude.sort((e,t)=>e-t);for(var a in i){if(re.max,"Chance: Min cannot be greater than Max.");var t=S.primes[S.primes.length-1];if(e.max>t)for(var r=t+2;r<=e.max;++r)this.is_prime(r)&&S.primes.push(r);var n=S.primes.filter(function(t){return t>=e.min&&t<=e.max});return this.pick(n)},d.prototype.is_prime=function(e){if(e%1||e<2)return!1;if(e%2==0)return 2===e;if(e%3==0)return 3===e;for(var t=Math.sqrt(e),r=5;r<=t;r+=6)if(e%r===0||e%(r+2)===0)return!1;return!0},d.prototype.hex=function(e){p((e=f(e,{min:0,max:n,casing:"lower"})).min<0,"Chance: Min cannot be less than zero.");var t=this.natural({min:e.min,max:e.max});return"upper"===e.casing?t.toString(16).toUpperCase():t.toString(16)},d.prototype.letter=function(e){e=f(e,{casing:"lower"});var t=this.character({pool:"abcdefghijklmnopqrstuvwxyz"});return"upper"===e.casing&&(t=t.toUpperCase()),t},d.prototype.string=function(e){0===(e=f(e,{min:5,max:20})).length||e.length||(e.length=this.natural({min:e.min,max:e.max})),p(e.length<0,"Chance: Length cannot be less than zero.");var t=e.length;return this.n(this.character,t,e).join("")},m.prototype={substitute:function(){return this.c}},g.prototype={substitute:function(){if(!/[{}\\]/.test(this.c))throw new Error('Invalid escape sequence: "\\'+this.c+'".');return this.c}},b.prototype={replacers:{"#":function(e){return e.character({pool:a})},A:function(e){return e.character({pool:s})},a:function(e){return e.character({pool:o})}},substitute:function(e){var t=this.replacers[this.c];if(!t)throw new Error('Invalid replacement character: "'+this.c+'".');return t(e)}},d.prototype.template=function(e){if(!e)throw new Error("Template string is required");var t=this;return function(e){for(var t=[],r="identity",n=0;ns)throw new RangeError("Chance: num is likely too large for sample set")}return a},d.prototype.n=function(e,t){p("function"!=typeof e,"Chance: The first argument must be a function."),void 0===t&&(t=1);var r=t,n=[],i=l.call(arguments,2);for(r=Math.max(0,r);r--;null)n.push(e.apply(this,i));return n},d.prototype.pad=function(e,t,r){return r=r||"0",(e+="").length>=t?e:new Array(t-e.length+1).join(r)+e},d.prototype.pick=function(e,t){if(0===e.length)throw new RangeError("Chance: Cannot pick() from an empty array");return t&&1!==t?this.shuffle(e).slice(0,t):e[this.natural({max:e.length-1})]},d.prototype.pickone=function(e){if(0===e.length)throw new RangeError("Chance: Cannot pickone() from an empty array");return e[this.natural({max:e.length-1})]},d.prototype.pickset=function(e,t){if(0===t)return[];if(0===e.length)throw new RangeError("Chance: Cannot pickset() from an empty array");if(t<0)throw new RangeError("Chance: Count must be a positive number");if(t&&1!==t){var r=e.slice(0),n=r.length;return this.n(function(){var e=this.natural({max:--n}),t=r[e];return r[e]=r[n],t},Math.min(n,t))}return[this.pickone(e)]},d.prototype.shuffle=function(e){for(var t,r,n=[],i=0,a=Number(e.length),o=(r=a,Array.apply(null,Array(r)).map(function(e,t){return t})),s=a-1,c=0;c0&&(i+=n)}if(0===i)throw new RangeError("Chance: No valid entries in array weights");var o,s=this.random()*i,c=0,u=-1;for(a=0;a0){if(s<=c){o=a;break}u=a}a===t.length-1&&(o=u)}var l=e[o];return(r=void 0!==r&&r)&&(e.splice(o,1),t.splice(o,1)),l},d.prototype.paragraph=function(e){var t=(e=f(e)).sentences||this.natural({min:3,max:7}),r=this.n(this.sentence,t),n=!0===e.linebreak?"\n":" ";return r.join(n)},d.prototype.sentence=function(e){var t,r=(e=f(e)).words||this.natural({min:12,max:18}),n=e.punctuation;return t=this.n(this.word,r).join(" "),t=this.capitalize(t),!1===n||/^[.?;!:]$/.test(n)||(n="."),n&&(t+=n),t},d.prototype.syllable=function(e){for(var t,r=(e=f(e)).length||this.natural({min:2,max:3}),n="bcdfghjklmnprstvwz",i="aeiou",a=n+i,o="",s=0;sBigInt(n),"Chance: length must be between 1 and "+String(n));var t=this.get("emojis");"all"===e.category&&(e.category=this.pickone(Object.keys(t)));var r=t[e.category];return p(void 0===r,"Chance: Unrecognised emoji category: ["+e.category+"]."),this.pickset(r,e.length).map(function(e){return String.fromCodePoint(e)}).join("")},d.prototype.age=function(e){var t;switch((e=f(e)).type){case"child":t={min:0,max:12};break;case"teen":t={min:13,max:19};break;case"adult":default:t={min:18,max:65};break;case"senior":t={min:65,max:100};break;case"all":t={min:0,max:100}}return this.natural(t)},d.prototype.birthday=function(e){var t=this.age(e),r=new Date,n=r.getFullYear();if(e&&e.type){var i=new Date,a=new Date;i.setFullYear(n-t-1),a.setFullYear(n-t),e=f(e,{min:i,max:a})}else if(!e||void 0===e.minAge&&void 0===e.maxAge)e=f(e,{year:n-t});else{p(e.minAge<0,"Chance: MinAge cannot be less than zero."),p(e.minAge>e.maxAge,"Chance: MinAge cannot be greater than MaxAge.");var o=void 0!==e.minAge?e.minAge:0,s=void 0!==e.maxAge?e.maxAge:100,c=new Date(n-s-1,r.getMonth(),r.getDate()),u=new Date(n-o,r.getMonth(),r.getDate());c.setDate(c.getDate()+1),u.setDate(u.getDate()+1),u.setMilliseconds(u.getMilliseconds()-1),e=f(e,{min:c,max:u})}return this.date(e)},d.prototype.cpf=function(e){e=f(e,{formatted:!0});var t=this.n(this.natural,9,{max:9}),r=2*t[8]+3*t[7]+4*t[6]+5*t[5]+6*t[4]+7*t[3]+8*t[2]+9*t[1]+10*t[0];(r=11-r%11)>=10&&(r=0);var n=2*r+3*t[8]+4*t[7]+5*t[6]+6*t[5]+7*t[4]+8*t[3]+9*t[2]+10*t[1]+11*t[0];(n=11-n%11)>=10&&(n=0);var i=""+t[0]+t[1]+t[2]+"."+t[3]+t[4]+t[5]+"."+t[6]+t[7]+t[8]+"-"+r+n;return e.formatted?i:i.replace(/\D/g,"")},d.prototype.cnpj=function(e){e=f(e,{formatted:!0});var t=this.n(this.natural,12,{max:12}),r=2*t[11]+3*t[10]+4*t[9]+5*t[8]+6*t[7]+7*t[6]+8*t[5]+9*t[4]+2*t[3]+3*t[2]+4*t[1]+5*t[0];(r=11-r%11)<2&&(r=0);var n=2*r+3*t[11]+4*t[10]+5*t[9]+6*t[8]+7*t[7]+8*t[6]+9*t[5]+2*t[4]+3*t[3]+4*t[2]+5*t[1]+6*t[0];(n=11-n%11)<2&&(n=0);var i=""+t[0]+t[1]+"."+t[2]+t[3]+t[4]+"."+t[5]+t[6]+t[7]+"/"+t[8]+t[9]+t[10]+t[11]+"-"+r+n;return e.formatted?i:i.replace(/\D/g,"")},d.prototype.first=function(e){return e=f(e,{gender:this.gender(),nationality:"en"}),this.pick(this.get("firstNames")[e.gender.toLowerCase()][e.nationality.toLowerCase()])},d.prototype.profession=function(e){return(e=f(e)).rank?this.pick(["Apprentice ","Junior ","Senior ","Lead "])+this.pick(this.get("profession")):this.pick(this.get("profession"))},d.prototype.company=function(){return this.pick(this.get("company"))},d.prototype.gender=function(e){return e=f(e,{extraGenders:[]}),this.pick(["Male","Female"].concat(e.extraGenders))},d.prototype.last=function(e){if("*"===(e=f(e,{nationality:"*"})).nationality){var t=[],r=this.get("lastNames");return Object.keys(r).forEach(function(e){t=t.concat(r[e])}),this.pick(t)}return this.pick(this.get("lastNames")[e.nationality.toLowerCase()])},d.prototype.israelId=function(){for(var e=this.string({pool:"0123456789",length:8}),t=0,r=0;r","<=",">=","="]);e.range&&(t=e.range);var r="";return e.include_prerelease&&(r=this.weighted(["","-dev","-beta","-alpha"],[50,10,5,1])),t+this.rpg("3d10").join(".")+r},d.prototype.tlds=function(){return["com","org","edu","gov","co.uk","net","io","ac","ad","ae","af","ag","ai","al","am","ao","aq","ar","as","at","au","aw","ax","az","ba","bb","bd","be","bf","bg","bh","bi","bj","bm","bn","bo","br","bs","bt","bv","bw","by","bz","ca","cc","cd","cf","cg","ch","ci","ck","cl","cm","cn","co","cr","cu","cv","cw","cx","cy","cz","de","dj","dk","dm","do","dz","ec","ee","eg","eh","er","es","et","eu","fi","fj","fk","fm","fo","fr","ga","gb","gd","ge","gf","gg","gh","gi","gl","gm","gn","gp","gq","gr","gs","gt","gu","gw","gy","hk","hm","hn","hr","ht","hu","id","ie","il","im","in","io","iq","ir","is","it","je","jm","jo","jp","ke","kg","kh","ki","km","kn","kp","kr","kw","ky","kz","la","lb","lc","li","lk","lr","ls","lt","lu","lv","ly","ma","mc","md","me","mg","mh","mk","ml","mm","mn","mo","mp","mq","mr","ms","mt","mu","mv","mw","mx","my","mz","na","nc","ne","nf","ng","ni","nl","no","np","nr","nu","nz","om","pa","pe","pf","pg","ph","pk","pl","pm","pn","pr","ps","pt","pw","py","qa","re","ro","rs","ru","rw","sa","sb","sc","sd","se","sg","sh","si","sj","sk","sl","sm","sn","so","sr","ss","st","su","sv","sx","sy","sz","tc","td","tf","tg","th","tj","tk","tl","tm","tn","to","tr","tt","tv","tw","tz","ua","ug","uk","us","uy","uz","va","vc","ve","vg","vi","vn","vu","wf","ws","ye","yt","za","zm","zw"]},d.prototype.tld=function(){return this.pick(this.tlds())},d.prototype.twitter=function(){return"@"+this.word()},d.prototype.url=function(e){var t=(e=f(e,{protocol:"http",domain:this.domain(e),domain_prefix:"",path:this.word(),extensions:[]})).extensions.length>0?"."+this.pick(e.extensions):"",r=e.domain_prefix?e.domain_prefix+"."+e.domain:e.domain;return e.protocol+"://"+r+"/"+e.path+t},d.prototype.port=function(){return this.integer({min:0,max:65535})},d.prototype.locale=function(e){return(e=f(e)).region?this.pick(this.get("locale_regions")):this.pick(this.get("locale_languages"))},d.prototype.locales=function(e){return(e=f(e)).region?this.get("locale_regions"):this.get("locale_languages")},d.prototype.loremPicsum=function(e){var t=(e=f(e,{width:500,height:500,greyscale:!1,blurred:!1})).greyscale?"g/":"",r=e.blurred?"/?blur":"/?random";return"https://picsum.photos/"+t+e.width+"/"+e.height+r},d.prototype.address=function(e){return e=f(e),this.natural({min:5,max:2e3})+" "+this.street(e)},d.prototype.altitude=function(e){return e=f(e,{fixed:5,min:0,max:8848}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},d.prototype.areacode=function(e){var t=(e=f(e,{parens:!0})).exampleNumber?"555":this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return e.parens?"("+t+")":t},d.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},d.prototype.coordinates=function(e){return this.latitude(e)+", "+this.longitude(e)},d.prototype.countries=function(){return this.get("countries")},d.prototype.country=function(e){e=f(e);var t=this.pick(this.countries());return e.raw?t:e.full?t.name:t.abbreviation},d.prototype.depth=function(e){return e=f(e,{fixed:5,min:-10994,max:0}),this.floating({min:e.min,max:e.max,fixed:e.fixed})},d.prototype.geohash=function(e){return e=f(e,{length:7}),this.string({length:e.length,pool:"0123456789bcdefghjkmnpqrstuvwxyz"})},d.prototype.geojson=function(e){return this.latitude(e)+", "+this.longitude(e)+", "+this.altitude(e)},d.prototype.latitude=function(e){var[t,r,n]=["ddm","dms","dd"],i=(e=f(e,e&&e.format&&[t,r].includes(e.format.toLowerCase())?{min:0,max:89,fixed:4}:{fixed:5,min:-90,max:90,format:n})).format.toLowerCase();switch(i!==t&&i!==r||(p(e.min<0||e.min>89,"Chance: Min specified is out of range. Should be between 0 - 89"),p(e.max<0||e.max>89,"Chance: Max specified is out of range. Should be between 0 - 89"),p(e.fixed>4,"Chance: Fixed specified should be below or equal to 4")),i){case t:return this.integer({min:e.min,max:e.max})+"°"+this.floating({min:0,max:59,fixed:e.fixed});case r:return this.integer({min:e.min,max:e.max})+"°"+this.integer({min:0,max:59})+"’"+this.floating({min:0,max:59,fixed:e.fixed})+"”";default:return this.floating({min:e.min,max:e.max,fixed:e.fixed})}},d.prototype.longitude=function(e){var[t,r,n]=["ddm","dms","dd"],i=(e=f(e,e&&e.format&&[t,r].includes(e.format.toLowerCase())?{min:0,max:179,fixed:4}:{fixed:5,min:-180,max:180,format:n})).format.toLowerCase();switch(i!==t&&i!==r||(p(e.min<0||e.min>179,"Chance: Min specified is out of range. Should be between 0 - 179"),p(e.max<0||e.max>179,"Chance: Max specified is out of range. Should be between 0 - 179"),p(e.fixed>4,"Chance: Fixed specified should be below or equal to 4")),i){case t:return this.integer({min:e.min,max:e.max})+"°"+this.floating({min:0,max:59.9999,fixed:e.fixed});case r:return this.integer({min:e.min,max:e.max})+"°"+this.integer({min:0,max:59})+"’"+this.floating({min:0,max:59.9999,fixed:e.fixed})+"”";default:return this.floating({min:e.min,max:e.max,fixed:e.fixed})}},d.prototype.phone=function(e){var t,r,n=this,i=function(e){var t=[];return e.sections.forEach(function(e){t.push(n.string({pool:"0123456789",length:e}))}),e.area+t.join(" ")};switch((e=f(e,{formatted:!0,country:"us",mobile:!1,exampleNumber:!1})).formatted||(e.parens=!1),e.country){case"fr":e.mobile?(t=this.pick(["06","07"])+n.string({pool:"0123456789",length:8}),r=e.formatted?t.match(/../g).join(" "):t):(t=this.pick(["01"+this.pick(["30","34","39","40","41","42","43","44","45","46","47","48","49","53","55","56","58","60","64","69","70","72","73","74","75","76","77","78","79","80","81","82","83"])+n.string({pool:"0123456789",length:6}),"02"+this.pick(["14","18","22","23","28","29","30","31","32","33","34","35","36","37","38","40","41","43","44","45","46","47","48","49","50","51","52","53","54","56","57","61","62","69","72","76","77","78","85","90","96","97","98","99"])+n.string({pool:"0123456789",length:6}),"03"+this.pick(["10","20","21","22","23","24","25","26","27","28","29","39","44","45","51","52","54","55","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","80","81","82","83","84","85","86","87","88","89","90"])+n.string({pool:"0123456789",length:6}),"04"+this.pick(["11","13","15","20","22","26","27","30","32","34","37","42","43","44","50","56","57","63","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","85","86","88","89","90","91","92","93","94","95","97","98"])+n.string({pool:"0123456789",length:6}),"05"+this.pick(["08","16","17","19","24","31","32","33","34","35","40","45","46","47","49","53","55","56","57","58","59","61","62","63","64","65","67","79","81","82","86","87","90","94"])+n.string({pool:"0123456789",length:6}),"09"+n.string({pool:"0123456789",length:8})]),r=e.formatted?t.match(/../g).join(" "):t);break;case"uk":e.mobile?(t=this.pick([{area:"07"+this.pick(["4","5","7","8","9"]),sections:[2,6]},{area:"07624 ",sections:[6]}]),r=e.formatted?i(t):i(t).replace(" ","")):(t=this.pick([{area:"01"+this.character({pool:"234569"})+"1 ",sections:[3,4]},{area:"020 "+this.character({pool:"378"}),sections:[3,4]},{area:"023 "+this.character({pool:"89"}),sections:[3,4]},{area:"024 7",sections:[3,4]},{area:"028 "+this.pick(["25","28","37","71","82","90","92","95"]),sections:[2,4]},{area:"012"+this.pick(["04","08","54","76","97","98"])+" ",sections:[6]},{area:"013"+this.pick(["63","64","84","86"])+" ",sections:[6]},{area:"014"+this.pick(["04","20","60","61","80","88"])+" ",sections:[6]},{area:"015"+this.pick(["24","27","62","66"])+" ",sections:[6]},{area:"016"+this.pick(["06","29","35","47","59","95"])+" ",sections:[6]},{area:"017"+this.pick(["26","44","50","68"])+" ",sections:[6]},{area:"018"+this.pick(["27","37","84","97"])+" ",sections:[6]},{area:"019"+this.pick(["00","05","35","46","49","63","95"])+" ",sections:[6]}]),r=e.formatted?i(t):i(t).replace(" ","","g"));break;case"za":e.mobile?(t=this.pick(["060"+this.pick(["3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:6}),"061"+this.pick(["0","1","2","3","4","5","8"])+n.string({pool:"0123456789",length:6}),"06"+n.string({pool:"0123456789",length:7}),"071"+this.pick(["0","1","2","3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:6}),"07"+this.pick(["2","3","4","6","7","8","9"])+n.string({pool:"0123456789",length:7}),"08"+this.pick(["0","1","2","3","4","5"])+n.string({pool:"0123456789",length:7})]),r=e.formatted||t):(t=this.pick(["01"+this.pick(["0","1","2","3","4","5","6","7","8"])+n.string({pool:"0123456789",length:7}),"02"+this.pick(["1","2","3","4","7","8"])+n.string({pool:"0123456789",length:7}),"03"+this.pick(["1","2","3","5","6","9"])+n.string({pool:"0123456789",length:7}),"04"+this.pick(["1","2","3","4","5","6","7","8","9"])+n.string({pool:"0123456789",length:7}),"05"+this.pick(["1","3","4","6","7","8"])+n.string({pool:"0123456789",length:7})]),r=e.formatted||t);break;case"us":var a=this.areacode(e).toString(),o=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),s=this.natural({min:1e3,max:9999}).toString();r=e.formatted?a+" "+o+"-"+s:a+o+s;break;case"br":var c,u=this.pick(["11","12","13","14","15","16","17","18","19","21","22","24","27","28","31","32","33","34","35","37","38","41","42","43","44","45","46","47","48","49","51","53","54","55","61","62","63","64","65","66","67","68","69","71","73","74","75","77","79","81","82","83","84","85","86","87","88","89","91","92","93","94","95","96","97","98","99"]);c=e.mobile?"9"+n.string({pool:"0123456789",length:4}):this.natural({min:2e3,max:5999}).toString();var l=n.string({pool:"0123456789",length:4});r=e.formatted?"("+u+") "+c+"-"+l:u+c+l}return r},d.prototype.postal=function(){return this.character({pool:"XVTSRPNKLMHJGECBA"})+this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+" "+(this.natural({max:9})+this.character({alpha:!0,casing:"upper"})+this.natural({max:9}))},d.prototype.postcode=function(){return this.pick(this.get("postcodeAreas")).code+this.natural({max:9})+(this.bool()?this.character({alpha:!0,casing:"upper"}):"")+" "+(this.natural({max:9})+(this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})))},d.prototype.counties=function(e){return e=f(e,{country:"uk"}),this.get("counties")[e.country.toLowerCase()]},d.prototype.county=function(e){return this.pick(this.counties(e)).name},d.prototype.provinces=function(e){return e=f(e,{country:"ca"}),this.get("provinces")[e.country.toLowerCase()]},d.prototype.province=function(e){return e&&e.full?this.pick(this.provinces(e)).name:this.pick(this.provinces(e)).abbreviation},d.prototype.state=function(e){return e&&e.full?this.pick(this.states(e)).name:this.pick(this.states(e)).abbreviation},d.prototype.states=function(e){var t;switch((e=f(e,{country:"us",us_states_and_dc:!0})).country.toLowerCase()){case"us":var r=this.get("us_states_and_dc"),n=this.get("territories"),i=this.get("armed_forces");t=[],e.us_states_and_dc&&(t=t.concat(r)),e.territories&&(t=t.concat(n)),e.armed_forces&&(t=t.concat(i));break;case"it":case"mx":t=this.get("country_regions")[e.country.toLowerCase()];break;case"uk":t=this.get("counties")[e.country.toLowerCase()]}return t},d.prototype.street=function(e){var t;switch((e=f(e,{country:"us",syllables:2})).country.toLowerCase()){case"us":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t+=" ",t+=e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name;break;case"it":t=this.word({syllables:e.syllables}),t=this.capitalize(t),t=(e.short_suffix?this.street_suffix(e).abbreviation:this.street_suffix(e).name)+" "+t}return t},d.prototype.street_suffix=function(e){return e=f(e,{country:"us"}),this.pick(this.street_suffixes(e))},d.prototype.street_suffixes=function(e){return e=f(e,{country:"us"}),this.get("street_suffixes")[e.country.toLowerCase()]},d.prototype.zip=function(e){var t=this.n(this.natural,5,{max:9});return e&&!0===e.plusfour&&(t.push("-"),t=t.concat(this.n(this.natural,4,{max:9}))),t.join("")},d.prototype.ampm=function(){return this.bool()?"am":"pm"},d.prototype.date=function(e){var t,r;if(e&&(e.min||e.max)){var n=void 0!==(e=f(e,{american:!0,string:!1})).min?e.min.getTime():1,i=void 0!==e.max?e.max.getTime():864e13;r=new Date(this.integer({min:n,max:i}))}else{var a=this.month({raw:!0}),o=a.days;e&&e.month&&(o=this.get("months")[(e.month%12+12)%12].days),e=f(e,{year:parseInt(this.year(),10),month:a.numeric-1,day:this.natural({min:1,max:o}),hour:this.hour({twentyfour:!0}),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1}),r=new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond)}return t=e.american?r.getMonth()+1+"/"+r.getDate()+"/"+r.getFullYear():r.getDate()+"/"+(r.getMonth()+1)+"/"+r.getFullYear(),e.string?t:r},d.prototype.hammertime=function(e){return this.date(e).getTime()},d.prototype.hour=function(e){return p((e=f(e,{min:e&&e.twentyfour?0:1,max:e&&e.twentyfour?23:12})).min<0,"Chance: Min cannot be less than 0."),p(e.twentyfour&&e.max>23,"Chance: Max cannot be greater than 23 for twentyfour option."),p(!e.twentyfour&&e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},d.prototype.millisecond=function(){return this.natural({max:999})},d.prototype.minute=d.prototype.second=function(e){return p((e=f(e,{min:0,max:59})).min<0,"Chance: Min cannot be less than 0."),p(e.max>59,"Chance: Max cannot be greater than 59."),p(e.min>e.max,"Chance: Min cannot be greater than Max."),this.natural({min:e.min,max:e.max})},d.prototype.month=function(e){p((e=f(e,{min:1,max:12})).min<1,"Chance: Min cannot be less than 1."),p(e.max>12,"Chance: Max cannot be greater than 12."),p(e.min>e.max,"Chance: Min cannot be greater than Max.");var t=this.pick(this.months().slice(e.min-1,e.max));return e.raw?t:t.name},d.prototype.months=function(){return this.get("months")},d.prototype.second=function(){return this.natural({max:59})},d.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},d.prototype.weekday=function(e){var t=["Monday","Tuesday","Wednesday","Thursday","Friday"];return(e=f(e,{weekday_only:!1})).weekday_only||(t.push("Saturday"),t.push("Sunday")),this.pickone(t)},d.prototype.year=function(e){return(e=f(e,{min:(new Date).getFullYear()})).max=void 0!==e.max?e.max:e.min+100,this.natural(e).toString()},d.prototype.cc=function(e){var t,r,n;return r=(t=(e=f(e)).type?this.cc_type({name:e.type,raw:!0}):this.cc_type({raw:!0})).prefix.split(""),n=t.length-t.prefix.length-1,(r=r.concat(this.n(this.integer,n,{min:0,max:9}))).push(this.luhn_calculate(r.join(""))),r.join("")},d.prototype.cc_types=function(){return this.get("cc_types")},d.prototype.cc_type=function(e){e=f(e);var t=this.cc_types(),r=null;if(e.name){for(var n=0;n3&&(r=t?r.substr(0,3):r[0]+r.substr(2,2)),r.length<3&&(n=r,r=e.toUpperCase().split("").map(function(e){return-1!=="AEIOU".indexOf(e)?e:void 0}).join("").substr(0,3-n.length)),n+=r),n};return o=o.concat(s(n,!0),s(r),function(e,t,r){return e.getFullYear().toString().substr(2)+["A","B","C","D","E","H","L","M","P","R","S","T"][e.getMonth()]+r.pad(e.getDate()+("female"===t.toLowerCase()?40:0),2)}(i,t,this),a.toUpperCase().split("")).join(""),(o+=function(e){for(var t="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",r="ABCDEFGHIJABCDEFGHIJKLMNOPQRSTUVWXYZ",n="ABCDEFGHIJKLMNOPQRSTUVWXYZ",i=0,a=0;a<15;a++)i+=a%2!=0?n.indexOf(r[t.indexOf(e[a])]):"BAKPLCQDREVOSFTGUHMINJWZYX".indexOf(r[t.indexOf(e[a])]);return n[i%26]}(o.toUpperCase())).toUpperCase()},d.prototype.pl_pesel=function(){for(var e=this.natural({min:1,max:9999999999}),t=this.pad(e,10).split(""),r=0;r0;i--)n[i-1]=this.natural({min:1,max:r[1]});return void 0!==t.sum&&t.sum?n.reduce(function(e,t){return e+t}):n}throw new RangeError("Chance: A type of die roll must be included")},d.prototype.guid=function(e){e=f(e,{version:5});var t="abcdef1234567890";return this.string({pool:t,length:8})+"-"+this.string({pool:t,length:4})+"-"+e.version+this.string({pool:t,length:3})+"-"+this.string({pool:"ab89",length:1})+this.string({pool:t,length:3})+"-"+this.string({pool:t,length:12})},d.prototype.hash=function(e){var t="upper"===(e=f(e,{length:40,casing:"lower"})).casing?c.toUpperCase():c;return this.string({pool:t,length:e.length})},d.prototype.luhn_check=function(e){var t=e.toString();return+t.substring(t.length-1)===this.luhn_calculate(+t.substring(0,t.length-1))},d.prototype.luhn_calculate=function(e){for(var t,r=e.toString().split("").reverse(),n=0,i=0,a=r.length;a>i;++i)t=+r[i],i%2==0&&(t*=2)>9&&(t-=9),n+=t;return 9*n%10},d.prototype.md5=function(e){var t={str:"",key:null,raw:!1};if(e)if("string"==typeof e)t.str=e,e={};else{if("object"!=typeof e)return null;if("Array"===e.constructor)return null}else t.str=this.string(),e={};if(!(t=f(e,t)).str)throw new Error("A parameter is required to return an md5 hash.");return this.bimd5.md5(t.str,t.key,t.raw)},d.prototype.file=function(e){var t,r=e||{},n="fileExtension",i=Object.keys(this.get("fileExtension"));if(t=this.word({length:r.length}),r.extension)return t+"."+r.extension;if(r.extensions){if(Array.isArray(r.extensions))return t+"."+this.pickone(r.extensions);if(r.extensions.constructor===Object){var a=r.extensions,o=Object.keys(a);return t+"."+this.pickone(a[this.pickone(o)])}throw new Error("Chance: Extensions must be an Array or Object")}if(r.fileType){var s=r.fileType;if(-1!==i.indexOf(s))return t+"."+this.pickone(this.get(n)[s]);throw new RangeError("Chance: Expect file type value to be 'raster', 'vector', '3d' or 'document'")}return t+"."+this.pickone(this.get(n)[this.pickone(i)])},d.prototype.fileWithContent=function(e){var t=e||{},r="fileName"in t?t.fileName:this.file().split(".")[0];if(r+="."+("fileExtension"in t?t.fileExtension:this.file().split(".")[1]),"number"!=typeof t.fileSize)throw new Error("File size must be an integer");return{fileData:this.buffer({length:t.fileSize}),fileName:r}};var S={firstNames:{male:{en:["James","John","Robert","Michael","William","David","Richard","Joseph","Charles","Thomas","Christopher","Daniel","Matthew","George","Donald","Anthony","Paul","Mark","Edward","Steven","Kenneth","Andrew","Brian","Joshua","Kevin","Ronald","Timothy","Jason","Jeffrey","Frank","Gary","Ryan","Nicholas","Eric","Stephen","Jacob","Larry","Jonathan","Scott","Raymond","Justin","Brandon","Gregory","Samuel","Benjamin","Patrick","Jack","Henry","Walter","Dennis","Jerry","Alexander","Peter","Tyler","Douglas","Harold","Aaron","Jose","Adam","Arthur","Zachary","Carl","Nathan","Albert","Kyle","Lawrence","Joe","Willie","Gerald","Roger","Keith","Jeremy","Terry","Harry","Ralph","Sean","Jesse","Roy","Louis","Billy","Austin","Bruce","Eugene","Christian","Bryan","Wayne","Russell","Howard","Fred","Ethan","Jordan","Philip","Alan","Juan","Randy","Vincent","Bobby","Dylan","Johnny","Phillip","Victor","Clarence","Ernest","Martin","Craig","Stanley","Shawn","Travis","Bradley","Leonard","Earl","Gabriel","Jimmy","Francis","Todd","Noah","Danny","Dale","Cody","Carlos","Allen","Frederick","Logan","Curtis","Alex","Joel","Luis","Norman","Marvin","Glenn","Tony","Nathaniel","Rodney","Melvin","Alfred","Steve","Cameron","Chad","Edwin","Caleb","Evan","Antonio","Lee","Herbert","Jeffery","Isaac","Derek","Ricky","Marcus","Theodore","Elijah","Luke","Jesus","Eddie","Troy","Mike","Dustin","Ray","Adrian","Bernard","Leroy","Angel","Randall","Wesley","Ian","Jared","Mason","Hunter","Calvin","Oscar","Clifford","Jay","Shane","Ronnie","Barry","Lucas","Corey","Manuel","Leo","Tommy","Warren","Jackson","Isaiah","Connor","Don","Dean","Jon","Julian","Miguel","Bill","Lloyd","Charlie","Mitchell","Leon","Jerome","Darrell","Jeremiah","Alvin","Brett","Seth","Floyd","Jim","Blake","Micheal","Gordon","Trevor","Lewis","Erik","Edgar","Vernon","Devin","Gavin","Jayden","Chris","Clyde","Tom","Derrick","Mario","Brent","Marc","Herman","Chase","Dominic","Ricardo","Franklin","Maurice","Max","Aiden","Owen","Lester","Gilbert","Elmer","Gene","Francisco","Glen","Cory","Garrett","Clayton","Sam","Jorge","Chester","Alejandro","Jeff","Harvey","Milton","Cole","Ivan","Andre","Duane","Landon"],it:["Adolfo","Alberto","Aldo","Alessandro","Alessio","Alfredo","Alvaro","Andrea","Angelo","Angiolo","Antonino","Antonio","Attilio","Benito","Bernardo","Bruno","Carlo","Cesare","Christian","Claudio","Corrado","Cosimo","Cristian","Cristiano","Daniele","Dario","David","Davide","Diego","Dino","Domenico","Duccio","Edoardo","Elia","Elio","Emanuele","Emiliano","Emilio","Enrico","Enzo","Ettore","Fabio","Fabrizio","Federico","Ferdinando","Fernando","Filippo","Francesco","Franco","Gabriele","Giacomo","Giampaolo","Giampiero","Giancarlo","Gianfranco","Gianluca","Gianmarco","Gianni","Gino","Giorgio","Giovanni","Giuliano","Giulio","Giuseppe","Graziano","Gregorio","Guido","Iacopo","Jacopo","Lapo","Leonardo","Lorenzo","Luca","Luciano","Luigi","Manuel","Marcello","Marco","Marino","Mario","Massimiliano","Massimo","Matteo","Mattia","Maurizio","Mauro","Michele","Mirko","Mohamed","Nello","Neri","Niccolò","Nicola","Osvaldo","Otello","Paolo","Pier Luigi","Piero","Pietro","Raffaele","Remo","Renato","Renzo","Riccardo","Roberto","Rolando","Romano","Salvatore","Samuele","Sandro","Sergio","Silvano","Simone","Stefano","Thomas","Tommaso","Ubaldo","Ugo","Umberto","Valerio","Valter","Vasco","Vincenzo","Vittorio"],nl:["Aaron","Abel","Adam","Adriaan","Albert","Alexander","Ali","Arjen","Arno","Bart","Bas","Bastiaan","Benjamin","Bob","Boris","Bram","Brent","Cas","Casper","Chris","Christiaan","Cornelis","Daan","Daley","Damian","Dani","Daniel","Daniël","David","Dean","Dirk","Dylan","Egbert","Elijah","Erik","Erwin","Evert","Ezra","Fabian","Fedde","Finn","Florian","Floris","Frank","Frans","Frederik","Freek","Geert","Gerard","Gerben","Gerrit","Gijs","Guus","Hans","Hendrik","Henk","Herman","Hidde","Hugo","Jaap","Jan Jaap","Jan-Willem","Jack","Jacob","Jan","Jason","Jasper","Jayden","Jelle","Jelte","Jens","Jeroen","Jesse","Jim","Job","Joep","Johannes","John","Jonathan","Joris","Joshua","Joël","Julian","Kees","Kevin","Koen","Lars","Laurens","Leendert","Lennard","Lodewijk","Luc","Luca","Lucas","Lukas","Luuk","Maarten","Marcus","Martijn","Martin","Matthijs","Maurits","Max","Mees","Melle","Mick","Mika","Milan","Mohamed","Mohammed","Morris","Muhammed","Nathan","Nick","Nico","Niek","Niels","Noah","Noud","Olivier","Oscar","Owen","Paul","Pepijn","Peter","Pieter","Pim","Quinten","Reinier","Rens","Robin","Ruben","Sam","Samuel","Sander","Sebastiaan","Sem","Sep","Sepp","Siem","Simon","Stan","Stef","Steven","Stijn","Sven","Teun","Thijmen","Thijs","Thomas","Tijn","Tim","Timo","Tobias","Tom","Victor","Vince","Willem","Wim","Wouter","Yusuf"],fr:["Aaron","Abdon","Abel","Abélard","Abelin","Abondance","Abraham","Absalon","Acace","Achaire","Achille","Adalard","Adalbald","Adalbéron","Adalbert","Adalric","Adam","Adegrin","Adel","Adelin","Andelin","Adelphe","Adam","Adéodat","Adhémar","Adjutor","Adolphe","Adonis","Adon","Adrien","Agapet","Agathange","Agathon","Agilbert","Agénor","Agnan","Aignan","Agrippin","Aimable","Aimé","Alain","Alban","Albin","Aubin","Albéric","Albert","Albertet","Alcibiade","Alcide","Alcée","Alcime","Aldonce","Aldric","Aldéric","Aleaume","Alexandre","Alexis","Alix","Alliaume","Aleaume","Almine","Almire","Aloïs","Alphée","Alphonse","Alpinien","Alverède","Amalric","Amaury","Amandin","Amant","Ambroise","Amédée","Amélien","Amiel","Amour","Anaël","Anastase","Anatole","Ancelin","Andéol","Andoche","André","Andoche","Ange","Angelin","Angilbe","Anglebert","Angoustan","Anicet","Anne","Annibal","Ansbert","Anselme","Anthelme","Antheaume","Anthime","Antide","Antoine","Antonius","Antonin","Apollinaire","Apollon","Aquilin","Arcade","Archambaud","Archambeau","Archange","Archibald","Arian","Ariel","Ariste","Aristide","Armand","Armel","Armin","Arnould","Arnaud","Arolde","Arsène","Arsinoé","Arthaud","Arthème","Arthur","Ascelin","Athanase","Aubry","Audebert","Audouin","Audran","Audric","Auguste","Augustin","Aurèle","Aurélien","Aurian","Auxence","Axel","Aymard","Aymeric","Aymon","Aymond","Balthazar","Baptiste","Barnabé","Barthélemy","Bartimée","Basile","Bastien","Baudouin","Bénigne","Benjamin","Benoît","Bérenger","Bérard","Bernard","Bertrand","Blaise","Bon","Boniface","Bouchard","Brice","Brieuc","Bruno","Brunon","Calixte","Calliste","Camélien","Camille","Camillien","Candide","Caribert","Carloman","Cassandre","Cassien","Cédric","Céleste","Célestin","Célien","Césaire","César","Charles","Charlemagne","Childebert","Chilpéric","Chrétien","Christian","Christodule","Christophe","Chrysostome","Clarence","Claude","Claudien","Cléandre","Clément","Clotaire","Côme","Constance","Constant","Constantin","Corentin","Cyprien","Cyriaque","Cyrille","Cyril","Damien","Daniel","David","Delphin","Denis","Désiré","Didier","Dieudonné","Dimitri","Dominique","Dorian","Dorothée","Edgard","Edmond","Édouard","Éleuthère","Élie","Élisée","Émeric","Émile","Émilien","Emmanuel","Enguerrand","Épiphane","Éric","Esprit","Ernest","Étienne","Eubert","Eudes","Eudoxe","Eugène","Eusèbe","Eustache","Évariste","Évrard","Fabien","Fabrice","Falba","Félicité","Félix","Ferdinand","Fiacre","Fidèle","Firmin","Flavien","Flodoard","Florent","Florentin","Florestan","Florian","Fortuné","Foulques","Francisque","François","Français","Franciscus","Francs","Frédéric","Fulbert","Fulcran","Fulgence","Gabin","Gabriel","Gaël","Garnier","Gaston","Gaspard","Gatien","Gaud","Gautier","Gédéon","Geoffroy","Georges","Géraud","Gérard","Gerbert","Germain","Gervais","Ghislain","Gilbert","Gilles","Girart","Gislebert","Gondebaud","Gonthier","Gontran","Gonzague","Grégoire","Guérin","Gui","Guillaume","Gustave","Guy","Guyot","Hardouin","Hector","Hédelin","Hélier","Henri","Herbert","Herluin","Hervé","Hilaire","Hildebert","Hincmar","Hippolyte","Honoré","Hubert","Hugues","Innocent","Isabeau","Isidore","Jacques","Japhet","Jason","Jean","Jeannel","Jeannot","Jérémie","Jérôme","Joachim","Joanny","Job","Jocelyn","Joël","Johan","Jonas","Jonathan","Joseph","Josse","Josselin","Jourdain","Jude","Judicaël","Jules","Julien","Juste","Justin","Lambert","Landry","Laurent","Lazare","Léandre","Léon","Léonard","Léopold","Leu","Loup","Leufroy","Libère","Liétald","Lionel","Loïc","Longin","Lorrain","Lorraine","Lothaire","Louis","Loup","Luc","Lucas","Lucien","Ludolphe","Ludovic","Macaire","Malo","Mamert","Manassé","Marc","Marceau","Marcel","Marcelin","Marius","Marseille","Martial","Martin","Mathurin","Matthias","Mathias","Matthieu","Maugis","Maurice","Mauricet","Maxence","Maxime","Maximilien","Mayeul","Médéric","Melchior","Mence","Merlin","Mérovée","Michaël","Michel","Moïse","Morgan","Nathan","Nathanaël","Narcisse","Néhémie","Nestor","Nestor","Nicéphore","Nicolas","Noé","Noël","Norbert","Normand","Normands","Octave","Odilon","Odon","Oger","Olivier","Oury","Pacôme","Palémon","Parfait","Pascal","Paterne","Patrice","Paul","Pépin","Perceval","Philémon","Philibert","Philippe","Philothée","Pie","Pierre","Pierrick","Prosper","Quentin","Raoul","Raphaël","Raymond","Régis","Réjean","Rémi","Renaud","René","Reybaud","Richard","Robert","Roch","Rodolphe","Rodrigue","Roger","Roland","Romain","Romuald","Roméo","Rome","Ronan","Roselin","Salomon","Samuel","Savin","Savinien","Scholastique","Sébastien","Séraphin","Serge","Séverin","Sidoine","Sigebert","Sigismond","Silvère","Simon","Siméon","Sixte","Stanislas","Stéphane","Stephan","Sylvain","Sylvestre","Tancrède","Tanguy","Taurin","Théodore","Théodose","Théophile","Théophraste","Thibault","Thibert","Thierry","Thomas","Timoléon","Timothée","Titien","Tonnin","Toussaint","Trajan","Tristan","Turold","Tim","Ulysse","Urbain","Valentin","Valère","Valéry","Venance","Venant","Venceslas","Vianney","Victor","Victorien","Victorin","Vigile","Vincent","Vital","Vitalien","Vivien","Waleran","Wandrille","Xavier","Xénophon","Yves","Zacharie","Zaché","Zéphirin"]},female:{en:["Mary","Emma","Elizabeth","Minnie","Margaret","Ida","Alice","Bertha","Sarah","Annie","Clara","Ella","Florence","Cora","Martha","Laura","Nellie","Grace","Carrie","Maude","Mabel","Bessie","Jennie","Gertrude","Julia","Hattie","Edith","Mattie","Rose","Catherine","Lillian","Ada","Lillie","Helen","Jessie","Louise","Ethel","Lula","Myrtle","Eva","Frances","Lena","Lucy","Edna","Maggie","Pearl","Daisy","Fannie","Josephine","Dora","Rosa","Katherine","Agnes","Marie","Nora","May","Mamie","Blanche","Stella","Ellen","Nancy","Effie","Sallie","Nettie","Della","Lizzie","Flora","Susie","Maud","Mae","Etta","Harriet","Sadie","Caroline","Katie","Lydia","Elsie","Kate","Susan","Mollie","Alma","Addie","Georgia","Eliza","Lulu","Nannie","Lottie","Amanda","Belle","Charlotte","Rebecca","Ruth","Viola","Olive","Amelia","Hannah","Jane","Virginia","Emily","Matilda","Irene","Kathryn","Esther","Willie","Henrietta","Ollie","Amy","Rachel","Sara","Estella","Theresa","Augusta","Ora","Pauline","Josie","Lola","Sophia","Leona","Anne","Mildred","Ann","Beulah","Callie","Lou","Delia","Eleanor","Barbara","Iva","Louisa","Maria","Mayme","Evelyn","Estelle","Nina","Betty","Marion","Bettie","Dorothy","Luella","Inez","Lela","Rosie","Allie","Millie","Janie","Cornelia","Victoria","Ruby","Winifred","Alta","Celia","Christine","Beatrice","Birdie","Harriett","Mable","Myra","Sophie","Tillie","Isabel","Sylvia","Carolyn","Isabelle","Leila","Sally","Ina","Essie","Bertie","Nell","Alberta","Katharine","Lora","Rena","Mina","Rhoda","Mathilda","Abbie","Eula","Dollie","Hettie","Eunice","Fanny","Ola","Lenora","Adelaide","Christina","Lelia","Nelle","Sue","Johanna","Lilly","Lucinda","Minerva","Lettie","Roxie","Cynthia","Helena","Hilda","Hulda","Bernice","Genevieve","Jean","Cordelia","Marian","Francis","Jeanette","Adeline","Gussie","Leah","Lois","Lura","Mittie","Hallie","Isabella","Olga","Phoebe","Teresa","Hester","Lida","Lina","Winnie","Claudia","Marguerite","Vera","Cecelia","Bess","Emilie","Rosetta","Verna","Myrtie","Cecilia","Elva","Olivia","Ophelia","Georgie","Elnora","Violet","Adele","Lily","Linnie","Loretta","Madge","Polly","Virgie","Eugenia","Lucile","Lucille","Mabelle","Rosalie"],it:["Ada","Adriana","Alessandra","Alessia","Alice","Angela","Anna","Anna Maria","Annalisa","Annita","Annunziata","Antonella","Arianna","Asia","Assunta","Aurora","Barbara","Beatrice","Benedetta","Bianca","Bruna","Camilla","Carla","Carlotta","Carmela","Carolina","Caterina","Catia","Cecilia","Chiara","Cinzia","Clara","Claudia","Costanza","Cristina","Daniela","Debora","Diletta","Dina","Donatella","Elena","Eleonora","Elisa","Elisabetta","Emanuela","Emma","Eva","Federica","Fernanda","Fiorella","Fiorenza","Flora","Franca","Francesca","Gabriella","Gaia","Gemma","Giada","Gianna","Gina","Ginevra","Giorgia","Giovanna","Giulia","Giuliana","Giuseppa","Giuseppina","Grazia","Graziella","Greta","Ida","Ilaria","Ines","Iolanda","Irene","Irma","Isabella","Jessica","Laura","Lea","Letizia","Licia","Lidia","Liliana","Lina","Linda","Lisa","Livia","Loretta","Luana","Lucia","Luciana","Lucrezia","Luisa","Manuela","Mara","Marcella","Margherita","Maria","Maria Cristina","Maria Grazia","Maria Luisa","Maria Pia","Maria Teresa","Marina","Marisa","Marta","Martina","Marzia","Matilde","Melissa","Michela","Milena","Mirella","Monica","Natalina","Nella","Nicoletta","Noemi","Olga","Paola","Patrizia","Piera","Pierina","Raffaella","Rebecca","Renata","Rina","Rita","Roberta","Rosa","Rosanna","Rossana","Rossella","Sabrina","Sandra","Sara","Serena","Silvana","Silvia","Simona","Simonetta","Sofia","Sonia","Stefania","Susanna","Teresa","Tina","Tiziana","Tosca","Valentina","Valeria","Vanda","Vanessa","Vanna","Vera","Veronica","Vilma","Viola","Virginia","Vittoria"],nl:["Ada","Arianne","Afke","Amanda","Amber","Amy","Aniek","Anita","Anja","Anna","Anne","Annelies","Annemarie","Annette","Anouk","Astrid","Aukje","Barbara","Bianca","Carla","Carlijn","Carolien","Chantal","Charlotte","Claudia","Daniëlle","Debora","Diane","Dora","Eline","Elise","Ella","Ellen","Emma","Esmee","Evelien","Esther","Erica","Eva","Femke","Fleur","Floor","Froukje","Gea","Gerda","Hanna","Hanneke","Heleen","Hilde","Ilona","Ina","Inge","Ingrid","Iris","Isabel","Isabelle","Janneke","Jasmijn","Jeanine","Jennifer","Jessica","Johanna","Joke","Julia","Julie","Karen","Karin","Katja","Kim","Lara","Laura","Lena","Lianne","Lieke","Lilian","Linda","Lisa","Lisanne","Lotte","Louise","Maaike","Manon","Marga","Maria","Marissa","Marit","Marjolein","Martine","Marleen","Melissa","Merel","Miranda","Michelle","Mirjam","Mirthe","Naomi","Natalie","Nienke","Nina","Noortje","Olivia","Patricia","Paula","Paulien","Ramona","Ria","Rianne","Roos","Rosanne","Ruth","Sabrina","Sandra","Sanne","Sara","Saskia","Silvia","Sofia","Sophie","Sonja","Suzanne","Tamara","Tess","Tessa","Tineke","Valerie","Vanessa","Veerle","Vera","Victoria","Wendy","Willeke","Yvonne","Zoë"],fr:["Abdon","Abel","Abigaëlle","Abigaïl","Acacius","Acanthe","Adalbert","Adalsinde","Adegrine","Adélaïde","Adèle","Adélie","Adeline","Adeltrude","Adolphe","Adonis","Adrastée","Adrehilde","Adrienne","Agathe","Agilbert","Aglaé","Aignan","Agneflète","Agnès","Agrippine","Aimé","Alaine","Alaïs","Albane","Albérade","Alberte","Alcide","Alcine","Alcyone","Aldegonde","Aleth","Alexandrine","Alexine","Alice","Aliénor","Aliette","Aline","Alix","Alizé","Aloïse","Aloyse","Alphonsine","Althée","Amaliane","Amalthée","Amande","Amandine","Amant","Amarande","Amaranthe","Amaryllis","Ambre","Ambroisie","Amélie","Améthyste","Aminte","Anaël","Anaïs","Anastasie","Anatole","Ancelin","Andrée","Anémone","Angadrême","Angèle","Angeline","Angélique","Angilbert","Anicet","Annabelle","Anne","Annette","Annick","Annie","Annonciade","Ansbert","Anstrudie","Anthelme","Antigone","Antoinette","Antonine","Aphélie","Apolline","Apollonie","Aquiline","Arabelle","Arcadie","Archange","Argine","Ariane","Aricie","Ariel","Arielle","Arlette","Armance","Armande","Armandine","Armelle","Armide","Armelle","Armin","Arnaud","Arsène","Arsinoé","Artémis","Arthur","Ascelin","Ascension","Assomption","Astarté","Astérie","Astrée","Astrid","Athalie","Athanasie","Athina","Aube","Albert","Aude","Audrey","Augustine","Aure","Aurélie","Aurélien","Aurèle","Aurore","Auxence","Aveline","Abigaëlle","Avoye","Axelle","Aymard","Azalée","Adèle","Adeline","Barbe","Basilisse","Bathilde","Béatrice","Béatrix","Bénédicte","Bérengère","Bernadette","Berthe","Bertille","Beuve","Blanche","Blanc","Blandine","Brigitte","Brune","Brunehilde","Callista","Camille","Capucine","Carine","Caroline","Cassandre","Catherine","Cécile","Céleste","Célestine","Céline","Chantal","Charlène","Charline","Charlotte","Chloé","Christelle","Christiane","Christine","Claire","Clara","Claude","Claudine","Clarisse","Clémence","Clémentine","Cléo","Clio","Clotilde","Coline","Conception","Constance","Coralie","Coraline","Corentine","Corinne","Cyrielle","Daniel","Daniel","Daphné","Débora","Delphine","Denise","Diane","Dieudonné","Dominique","Doriane","Dorothée","Douce","Édith","Edmée","Éléonore","Éliane","Élia","Éliette","Élisabeth","Élise","Ella","Élodie","Éloïse","Elsa","Émeline","Émérance","Émérentienne","Émérencie","Émilie","Emma","Emmanuelle","Emmelie","Ernestine","Esther","Estelle","Eudoxie","Eugénie","Eulalie","Euphrasie","Eusébie","Évangéline","Eva","Ève","Évelyne","Fanny","Fantine","Faustine","Félicie","Fernande","Flavie","Fleur","Flore","Florence","Florie","Fortuné","France","Francia","Françoise","Francine","Gabrielle","Gaëlle","Garance","Geneviève","Georgette","Gerberge","Germaine","Gertrude","Gisèle","Guenièvre","Guilhemine","Guillemette","Gustave","Gwenael","Hélène","Héloïse","Henriette","Hermine","Hermione","Hippolyte","Honorine","Hortense","Huguette","Ines","Irène","Irina","Iris","Isabeau","Isabelle","Iseult","Isolde","Ismérie","Jacinthe","Jacqueline","Jade","Janine","Jeanne","Jocelyne","Joëlle","Joséphine","Judith","Julia","Julie","Jules","Juliette","Justine","Katy","Kathy","Katie","Laura","Laure","Laureline","Laurence","Laurene","Lauriane","Laurianne","Laurine","Léa","Léna","Léonie","Léon","Léontine","Lorraine","Lucie","Lucienne","Lucille","Ludivine","Lydie","Lydie","Megane","Madeleine","Magali","Maguelone","Mallaury","Manon","Marceline","Margot","Marguerite","Marianne","Marie","Myriam","Marie","Marine","Marion","Marlène","Marthe","Martine","Mathilde","Maud","Maureen","Mauricette","Maxime","Mélanie","Melissa","Mélissandre","Mélisande","Mélodie","Michel","Micheline","Mireille","Miriam","Moïse","Monique","Morgane","Muriel","Mylène","Nadège","Nadine","Nathalie","Nicole","Nicolette","Nine","Noël","Noémie","Océane","Odette","Odile","Olive","Olivia","Olympe","Ombline","Ombeline","Ophélie","Oriande","Oriane","Ozanne","Pascale","Pascaline","Paule","Paulette","Pauline","Priscille","Prisca","Prisque","Pécine","Pélagie","Pénélope","Perrine","Pétronille","Philippine","Philomène","Philothée","Primerose","Prudence","Pulchérie","Quentine","Quiéta","Quintia","Quintilla","Rachel","Raphaëlle","Raymonde","Rebecca","Régine","Réjeanne","René","Rita","Rita","Rolande","Romane","Rosalie","Rose","Roseline","Sabine","Salomé","Sandra","Sandrine","Sarah","Ségolène","Séverine","Sibylle","Simone","Sixt","Solange","Soline","Solène","Sophie","Stéphanie","Suzanne","Sylvain","Sylvie","Tatiana","Thaïs","Théodora","Thérèse","Tiphaine","Ursule","Valentine","Valérie","Véronique","Victoire","Victorine","Vinciane","Violette","Virginie","Viviane","Xavière","Yolande","Ysaline","Yvette","Yvonne","Zélie","Zita","Zoé"]}},lastNames:{en:["Smith","Johnson","Williams","Jones","Brown","Davis","Miller","Wilson","Moore","Taylor","Anderson","Thomas","Jackson","White","Harris","Martin","Thompson","Garcia","Martinez","Robinson","Clark","Rodriguez","Lewis","Lee","Walker","Hall","Allen","Young","Hernandez","King","Wright","Lopez","Hill","Scott","Green","Adams","Baker","Gonzalez","Nelson","Carter","Mitchell","Perez","Roberts","Turner","Phillips","Campbell","Parker","Evans","Edwards","Collins","Stewart","Sanchez","Morris","Rogers","Reed","Cook","Morgan","Bell","Murphy","Bailey","Rivera","Cooper","Richardson","Cox","Howard","Ward","Torres","Peterson","Gray","Ramirez","James","Watson","Brooks","Kelly","Sanders","Price","Bennett","Wood","Barnes","Ross","Henderson","Coleman","Jenkins","Perry","Powell","Long","Patterson","Hughes","Flores","Washington","Butler","Simmons","Foster","Gonzales","Bryant","Alexander","Russell","Griffin","Diaz","Hayes","Myers","Ford","Hamilton","Graham","Sullivan","Wallace","Woods","Cole","West","Jordan","Owens","Reynolds","Fisher","Ellis","Harrison","Gibson","McDonald","Cruz","Marshall","Ortiz","Gomez","Murray","Freeman","Wells","Webb","Simpson","Stevens","Tucker","Porter","Hunter","Hicks","Crawford","Henry","Boyd","Mason","Morales","Kennedy","Warren","Dixon","Ramos","Reyes","Burns","Gordon","Shaw","Holmes","Rice","Robertson","Hunt","Black","Daniels","Palmer","Mills","Nichols","Grant","Knight","Ferguson","Rose","Stone","Hawkins","Dunn","Perkins","Hudson","Spencer","Gardner","Stephens","Payne","Pierce","Berry","Matthews","Arnold","Wagner","Willis","Ray","Watkins","Olson","Carroll","Duncan","Snyder","Hart","Cunningham","Bradley","Lane","Andrews","Ruiz","Harper","Fox","Riley","Armstrong","Carpenter","Weaver","Greene","Lawrence","Elliott","Chavez","Sims","Austin","Peters","Kelley","Franklin","Lawson","Fields","Gutierrez","Ryan","Schmidt","Carr","Vasquez","Castillo","Wheeler","Chapman","Oliver","Montgomery","Richards","Williamson","Johnston","Banks","Meyer","Bishop","McCoy","Howell","Alvarez","Morrison","Hansen","Fernandez","Garza","Harvey","Little","Burton","Stanley","Nguyen","George","Jacobs","Reid","Kim","Fuller","Lynch","Dean","Gilbert","Garrett","Romero","Welch","Larson","Frazier","Burke","Hanson","Day","Mendoza","Moreno","Bowman","Medina","Fowler","Brewer","Hoffman","Carlson","Silva","Pearson","Holland","Douglas","Fleming","Jensen","Vargas","Byrd","Davidson","Hopkins","May","Terry","Herrera","Wade","Soto","Walters","Curtis","Neal","Caldwell","Lowe","Jennings","Barnett","Graves","Jimenez","Horton","Shelton","Barrett","Obrien","Castro","Sutton","Gregory","McKinney","Lucas","Miles","Craig","Rodriquez","Chambers","Holt","Lambert","Fletcher","Watts","Bates","Hale","Rhodes","Pena","Beck","Newman","Haynes","McDaniel","Mendez","Bush","Vaughn","Parks","Dawson","Santiago","Norris","Hardy","Love","Steele","Curry","Powers","Schultz","Barker","Guzman","Page","Munoz","Ball","Keller","Chandler","Weber","Leonard","Walsh","Lyons","Ramsey","Wolfe","Schneider","Mullins","Benson","Sharp","Bowen","Daniel","Barber","Cummings","Hines","Baldwin","Griffith","Valdez","Hubbard","Salazar","Reeves","Warner","Stevenson","Burgess","Santos","Tate","Cross","Garner","Mann","Mack","Moss","Thornton","Dennis","McGee","Farmer","Delgado","Aguilar","Vega","Glover","Manning","Cohen","Harmon","Rodgers","Robbins","Newton","Todd","Blair","Higgins","Ingram","Reese","Cannon","Strickland","Townsend","Potter","Goodwin","Walton","Rowe","Hampton","Ortega","Patton","Swanson","Joseph","Francis","Goodman","Maldonado","Yates","Becker","Erickson","Hodges","Rios","Conner","Adkins","Webster","Norman","Malone","Hammond","Flowers","Cobb","Moody","Quinn","Blake","Maxwell","Pope","Floyd","Osborne","Paul","McCarthy","Guerrero","Lindsey","Estrada","Sandoval","Gibbs","Tyler","Gross","Fitzgerald","Stokes","Doyle","Sherman","Saunders","Wise","Colon","Gill","Alvarado","Greer","Padilla","Simon","Waters","Nunez","Ballard","Schwartz","McBride","Houston","Christensen","Klein","Pratt","Briggs","Parsons","McLaughlin","Zimmerman","French","Buchanan","Moran","Copeland","Roy","Pittman","Brady","McCormick","Holloway","Brock","Poole","Frank","Logan","Owen","Bass","Marsh","Drake","Wong","Jefferson","Park","Morton","Abbott","Sparks","Patrick","Norton","Huff","Clayton","Massey","Lloyd","Figueroa","Carson","Bowers","Roberson","Barton","Tran","Lamb","Harrington","Casey","Boone","Cortez","Clarke","Mathis","Singleton","Wilkins","Cain","Bryan","Underwood","Hogan","McKenzie","Collier","Luna","Phelps","McGuire","Allison","Bridges","Wilkerson","Nash","Summers","Atkins"],it:["Acciai","Aglietti","Agostini","Agresti","Ahmed","Aiazzi","Albanese","Alberti","Alessi","Alfani","Alinari","Alterini","Amato","Ammannati","Ancillotti","Andrei","Andreini","Andreoni","Angeli","Anichini","Antonelli","Antonini","Arena","Ariani","Arnetoli","Arrighi","Baccani","Baccetti","Bacci","Bacherini","Badii","Baggiani","Baglioni","Bagni","Bagnoli","Baldassini","Baldi","Baldini","Ballerini","Balli","Ballini","Balloni","Bambi","Banchi","Bandinelli","Bandini","Bani","Barbetti","Barbieri","Barchielli","Bardazzi","Bardelli","Bardi","Barducci","Bargellini","Bargiacchi","Barni","Baroncelli","Baroncini","Barone","Baroni","Baronti","Bartalesi","Bartoletti","Bartoli","Bartolini","Bartoloni","Bartolozzi","Basagni","Basile","Bassi","Batacchi","Battaglia","Battaglini","Bausi","Becagli","Becattini","Becchi","Becucci","Bellandi","Bellesi","Belli","Bellini","Bellucci","Bencini","Benedetti","Benelli","Beni","Benini","Bensi","Benucci","Benvenuti","Berlincioni","Bernacchioni","Bernardi","Bernardini","Berni","Bernini","Bertelli","Berti","Bertini","Bessi","Betti","Bettini","Biagi","Biagini","Biagioni","Biagiotti","Biancalani","Bianchi","Bianchini","Bianco","Biffoli","Bigazzi","Bigi","Biliotti","Billi","Binazzi","Bindi","Bini","Biondi","Bizzarri","Bocci","Bogani","Bolognesi","Bonaiuti","Bonanni","Bonciani","Boncinelli","Bondi","Bonechi","Bongini","Boni","Bonini","Borchi","Boretti","Borghi","Borghini","Borgioli","Borri","Borselli","Boschi","Bottai","Bracci","Braccini","Brandi","Braschi","Bravi","Brazzini","Breschi","Brilli","Brizzi","Brogelli","Brogi","Brogioni","Brunelli","Brunetti","Bruni","Bruno","Brunori","Bruschi","Bucci","Bucciarelli","Buccioni","Bucelli","Bulli","Burberi","Burchi","Burgassi","Burroni","Bussotti","Buti","Caciolli","Caiani","Calabrese","Calamai","Calamandrei","Caldini","Calo'","Calonaci","Calosi","Calvelli","Cambi","Camiciottoli","Cammelli","Cammilli","Campolmi","Cantini","Capanni","Capecchi","Caponi","Cappelletti","Cappelli","Cappellini","Cappugi","Capretti","Caputo","Carbone","Carboni","Cardini","Carlesi","Carletti","Carli","Caroti","Carotti","Carrai","Carraresi","Carta","Caruso","Casalini","Casati","Caselli","Casini","Castagnoli","Castellani","Castelli","Castellucci","Catalano","Catarzi","Catelani","Cavaciocchi","Cavallaro","Cavallini","Cavicchi","Cavini","Ceccarelli","Ceccatelli","Ceccherelli","Ceccherini","Cecchi","Cecchini","Cecconi","Cei","Cellai","Celli","Cellini","Cencetti","Ceni","Cenni","Cerbai","Cesari","Ceseri","Checcacci","Checchi","Checcucci","Cheli","Chellini","Chen","Cheng","Cherici","Cherubini","Chiaramonti","Chiarantini","Chiarelli","Chiari","Chiarini","Chiarugi","Chiavacci","Chiesi","Chimenti","Chini","Chirici","Chiti","Ciabatti","Ciampi","Cianchi","Cianfanelli","Cianferoni","Ciani","Ciapetti","Ciappi","Ciardi","Ciatti","Cicali","Ciccone","Cinelli","Cini","Ciobanu","Ciolli","Cioni","Cipriani","Cirillo","Cirri","Ciucchi","Ciuffi","Ciulli","Ciullini","Clemente","Cocchi","Cognome","Coli","Collini","Colombo","Colzi","Comparini","Conforti","Consigli","Conte","Conti","Contini","Coppini","Coppola","Corsi","Corsini","Corti","Cortini","Cosi","Costa","Costantini","Costantino","Cozzi","Cresci","Crescioli","Cresti","Crini","Curradi","D'Agostino","D'Alessandro","D'Amico","D'Angelo","Daddi","Dainelli","Dallai","Danti","Davitti","De Angelis","De Luca","De Marco","De Rosa","De Santis","De Simone","De Vita","Degl'Innocenti","Degli Innocenti","Dei","Del Lungo","Del Re","Di Marco","Di Stefano","Dini","Diop","Dobre","Dolfi","Donati","Dondoli","Dong","Donnini","Ducci","Dumitru","Ermini","Esposito","Evangelisti","Fabbri","Fabbrini","Fabbrizzi","Fabbroni","Fabbrucci","Fabiani","Facchini","Faggi","Fagioli","Failli","Faini","Falciani","Falcini","Falcone","Fallani","Falorni","Falsini","Falugiani","Fancelli","Fanelli","Fanetti","Fanfani","Fani","Fantappie'","Fantechi","Fanti","Fantini","Fantoni","Farina","Fattori","Favilli","Fedi","Fei","Ferrante","Ferrara","Ferrari","Ferraro","Ferretti","Ferri","Ferrini","Ferroni","Fiaschi","Fibbi","Fiesoli","Filippi","Filippini","Fini","Fioravanti","Fiore","Fiorentini","Fiorini","Fissi","Focardi","Foggi","Fontana","Fontanelli","Fontani","Forconi","Formigli","Forte","Forti","Fortini","Fossati","Fossi","Francalanci","Franceschi","Franceschini","Franchi","Franchini","Franci","Francini","Francioni","Franco","Frassineti","Frati","Fratini","Frilli","Frizzi","Frosali","Frosini","Frullini","Fusco","Fusi","Gabbrielli","Gabellini","Gagliardi","Galanti","Galardi","Galeotti","Galletti","Galli","Gallo","Gallori","Gambacciani","Gargani","Garofalo","Garuglieri","Gashi","Gasperini","Gatti","Gelli","Gensini","Gentile","Gentili","Geri","Gerini","Gheri","Ghini","Giachetti","Giachi","Giacomelli","Gianassi","Giani","Giannelli","Giannetti","Gianni","Giannini","Giannoni","Giannotti","Giannozzi","Gigli","Giordano","Giorgetti","Giorgi","Giovacchini","Giovannelli","Giovannetti","Giovannini","Giovannoni","Giuliani","Giunti","Giuntini","Giusti","Gonnelli","Goretti","Gori","Gradi","Gramigni","Grassi","Grasso","Graziani","Grazzini","Greco","Grifoni","Grillo","Grimaldi","Grossi","Gualtieri","Guarducci","Guarino","Guarnieri","Guasti","Guerra","Guerri","Guerrini","Guidi","Guidotti","He","Hoxha","Hu","Huang","Iandelli","Ignesti","Innocenti","Jin","La Rosa","Lai","Landi","Landini","Lanini","Lapi","Lapini","Lari","Lascialfari","Lastrucci","Latini","Lazzeri","Lazzerini","Lelli","Lenzi","Leonardi","Leoncini","Leone","Leoni","Lepri","Li","Liao","Lin","Linari","Lippi","Lisi","Livi","Lombardi","Lombardini","Lombardo","Longo","Lopez","Lorenzi","Lorenzini","Lorini","Lotti","Lu","Lucchesi","Lucherini","Lunghi","Lupi","Madiai","Maestrini","Maffei","Maggi","Maggini","Magherini","Magini","Magnani","Magnelli","Magni","Magnolfi","Magrini","Malavolti","Malevolti","Manca","Mancini","Manetti","Manfredi","Mangani","Mannelli","Manni","Mannini","Mannucci","Manuelli","Manzini","Marcelli","Marchese","Marchetti","Marchi","Marchiani","Marchionni","Marconi","Marcucci","Margheri","Mari","Mariani","Marilli","Marinai","Marinari","Marinelli","Marini","Marino","Mariotti","Marsili","Martelli","Martinelli","Martini","Martino","Marzi","Masi","Masini","Masoni","Massai","Materassi","Mattei","Matteini","Matteucci","Matteuzzi","Mattioli","Mattolini","Matucci","Mauro","Mazzanti","Mazzei","Mazzetti","Mazzi","Mazzini","Mazzocchi","Mazzoli","Mazzoni","Mazzuoli","Meacci","Mecocci","Meini","Melani","Mele","Meli","Mengoni","Menichetti","Meoni","Merlini","Messeri","Messina","Meucci","Miccinesi","Miceli","Micheli","Michelini","Michelozzi","Migliori","Migliorini","Milani","Miniati","Misuri","Monaco","Montagnani","Montagni","Montanari","Montelatici","Monti","Montigiani","Montini","Morandi","Morandini","Morelli","Moretti","Morganti","Mori","Morini","Moroni","Morozzi","Mugnai","Mugnaini","Mustafa","Naldi","Naldini","Nannelli","Nanni","Nannini","Nannucci","Nardi","Nardini","Nardoni","Natali","Ndiaye","Nencetti","Nencini","Nencioni","Neri","Nesi","Nesti","Niccolai","Niccoli","Niccolini","Nigi","Nistri","Nocentini","Noferini","Novelli","Nucci","Nuti","Nutini","Oliva","Olivieri","Olmi","Orlandi","Orlandini","Orlando","Orsini","Ortolani","Ottanelli","Pacciani","Pace","Paci","Pacini","Pagani","Pagano","Paggetti","Pagliai","Pagni","Pagnini","Paladini","Palagi","Palchetti","Palloni","Palmieri","Palumbo","Pampaloni","Pancani","Pandolfi","Pandolfini","Panerai","Panichi","Paoletti","Paoli","Paolini","Papi","Papini","Papucci","Parenti","Parigi","Parisi","Parri","Parrini","Pasquini","Passeri","Pecchioli","Pecorini","Pellegrini","Pepi","Perini","Perrone","Peruzzi","Pesci","Pestelli","Petri","Petrini","Petrucci","Pettini","Pezzati","Pezzatini","Piani","Piazza","Piazzesi","Piazzini","Piccardi","Picchi","Piccini","Piccioli","Pieraccini","Pieraccioni","Pieralli","Pierattini","Pieri","Pierini","Pieroni","Pietrini","Pini","Pinna","Pinto","Pinzani","Pinzauti","Piras","Pisani","Pistolesi","Poggesi","Poggi","Poggiali","Poggiolini","Poli","Pollastri","Porciani","Pozzi","Pratellesi","Pratesi","Prosperi","Pruneti","Pucci","Puccini","Puccioni","Pugi","Pugliese","Puliti","Querci","Quercioli","Raddi","Radu","Raffaelli","Ragazzini","Ranfagni","Ranieri","Rastrelli","Raugei","Raveggi","Renai","Renzi","Rettori","Ricci","Ricciardi","Ridi","Ridolfi","Rigacci","Righi","Righini","Rinaldi","Risaliti","Ristori","Rizzo","Rocchi","Rocchini","Rogai","Romagnoli","Romanelli","Romani","Romano","Romei","Romeo","Romiti","Romoli","Romolini","Rontini","Rosati","Roselli","Rosi","Rossetti","Rossi","Rossini","Rovai","Ruggeri","Ruggiero","Russo","Sabatini","Saccardi","Sacchetti","Sacchi","Sacco","Salerno","Salimbeni","Salucci","Salvadori","Salvestrini","Salvi","Salvini","Sanesi","Sani","Sanna","Santi","Santini","Santoni","Santoro","Santucci","Sardi","Sarri","Sarti","Sassi","Sbolci","Scali","Scarpelli","Scarselli","Scopetani","Secci","Selvi","Senatori","Senesi","Serafini","Sereni","Serra","Sestini","Sguanci","Sieni","Signorini","Silvestri","Simoncini","Simonetti","Simoni","Singh","Sodi","Soldi","Somigli","Sorbi","Sorelli","Sorrentino","Sottili","Spina","Spinelli","Staccioli","Staderini","Stefanelli","Stefani","Stefanini","Stella","Susini","Tacchi","Tacconi","Taddei","Tagliaferri","Tamburini","Tanganelli","Tani","Tanini","Tapinassi","Tarchi","Tarchiani","Targioni","Tassi","Tassini","Tempesti","Terzani","Tesi","Testa","Testi","Tilli","Tinti","Tirinnanzi","Toccafondi","Tofanari","Tofani","Tognaccini","Tonelli","Tonini","Torelli","Torrini","Tosi","Toti","Tozzi","Trambusti","Trapani","Tucci","Turchi","Ugolini","Ulivi","Valente","Valenti","Valentini","Vangelisti","Vanni","Vannini","Vannoni","Vannozzi","Vannucchi","Vannucci","Ventura","Venturi","Venturini","Vestri","Vettori","Vichi","Viciani","Vieri","Vigiani","Vignoli","Vignolini","Vignozzi","Villani","Vinci","Visani","Vitale","Vitali","Viti","Viviani","Vivoli","Volpe","Volpi","Wang","Wu","Xu","Yang","Ye","Zagli","Zani","Zanieri","Zanobini","Zecchi","Zetti","Zhang","Zheng","Zhou","Zhu","Zingoni","Zini","Zoppi"],nl:["Albers","Alblas","Appelman","Baars","Baas","Bakker","Blank","Bleeker","Blok","Blom","Boer","Boers","Boldewijn","Boon","Boot","Bos","Bosch","Bosma","Bosman","Bouma","Bouman","Bouwman","Brands","Brouwer","Burger","Buijs","Buitenhuis","Ceder","Cohen","Dekker","Dekkers","Dijkman","Dijkstra","Driessen","Drost","Engel","Evers","Faber","Franke","Gerritsen","Goedhart","Goossens","Groen","Groenenberg","Groot","Haan","Hart","Heemskerk","Hendriks","Hermans","Hoekstra","Hofman","Hopman","Huisman","Jacobs","Jansen","Janssen","Jonker","Jaspers","Keijzer","Klaassen","Klein","Koek","Koenders","Kok","Kool","Koopman","Koopmans","Koning","Koster","Kramer","Kroon","Kuijpers","Kuiper","Kuipers","Kurt","Koster","Kwakman","Los","Lubbers","Maas","Markus","Martens","Meijer","Mol","Molenaar","Mulder","Nieuwenhuis","Peeters","Peters","Pengel","Pieters","Pool","Post","Postma","Prins","Pronk","Reijnders","Rietveld","Roest","Roos","Sanders","Schaap","Scheffer","Schenk","Schilder","Schipper","Schmidt","Scholten","Schouten","Schut","Schutte","Schuurman","Simons","Smeets","Smit","Smits","Snel","Swinkels","Tas","Terpstra","Timmermans","Tol","Tromp","Troost","Valk","Veenstra","Veldkamp","Verbeek","Verheul","Verhoeven","Vermeer","Vermeulen","Verweij","Vink","Visser","Voorn","Vos","Wagenaar","Wiersema","Willems","Willemsen","Witteveen","Wolff","Wolters","Zijlstra","Zwart","de Beer","de Boer","de Bruijn","de Bruin","de Graaf","de Groot","de Haan","de Haas","de Jager","de Jong","de Jonge","de Koning","de Lange","de Leeuw","de Ridder","de Rooij","de Ruiter","de Vos","de Vries","de Waal","de Wit","de Zwart","van Beek","van Boven","van Dam","van Dijk","van Dongen","van Doorn","van Egmond","van Eijk","van Es","van Gelder","van Gelderen","van Houten","van Hulst","van Kempen","van Kesteren","van Leeuwen","van Loon","van Mill","van Noord","van Ommen","van Ommeren","van Oosten","van Oostveen","van Rijn","van Schaik","van Veen","van Vliet","van Wijk","van Wijngaarden","van den Poel","van de Pol","van den Ploeg","van de Ven","van den Berg","van den Bosch","van den Brink","van den Broek","van den Heuvel","van der Heijden","van der Horst","van der Hulst","van der Kroon","van der Laan","van der Linden","van der Meer","van der Meij","van der Meulen","van der Molen","van der Sluis","van der Spek","van der Veen","van der Velde","van der Velden","van der Vliet","van der Wal"],uk:["Smith","Jones","Williams","Taylor","Brown","Davies","Evans","Wilson","Thomas","Johnson","Roberts","Robinson","Thompson","Wright","Walker","White","Edwards","Hughes","Green","Hall","Lewis","Harris","Clarke","Patel","Jackson","Wood","Turner","Martin","Cooper","Hill","Ward","Morris","Moore","Clark","Lee","King","Baker","Harrison","Morgan","Allen","James","Scott","Phillips","Watson","Davis","Parker","Price","Bennett","Young","Griffiths","Mitchell","Kelly","Cook","Carter","Richardson","Bailey","Collins","Bell","Shaw","Murphy","Miller","Cox","Richards","Khan","Marshall","Anderson","Simpson","Ellis","Adams","Singh","Begum","Wilkinson","Foster","Chapman","Powell","Webb","Rogers","Gray","Mason","Ali","Hunt","Hussain","Campbell","Matthews","Owen","Palmer","Holmes","Mills","Barnes","Knight","Lloyd","Butler","Russell","Barker","Fisher","Stevens","Jenkins","Murray","Dixon","Harvey","Graham","Pearson","Ahmed","Fletcher","Walsh","Kaur","Gibson","Howard","Andrews","Stewart","Elliott","Reynolds","Saunders","Payne","Fox","Ford","Pearce","Day","Brooks","West","Lawrence","Cole","Atkinson","Bradley","Spencer","Gill","Dawson","Ball","Burton","O'brien","Watts","Rose","Booth","Perry","Ryan","Grant","Wells","Armstrong","Francis","Rees","Hayes","Hart","Hudson","Newman","Barrett","Webster","Hunter","Gregory","Carr","Lowe","Page","Marsh","Riley","Dunn","Woods","Parsons","Berry","Stone","Reid","Holland","Hawkins","Harding","Porter","Robertson","Newton","Oliver","Reed","Kennedy","Williamson","Bird","Gardner","Shah","Dean","Lane","Cooke","Bates","Henderson","Parry","Burgess","Bishop","Walton","Burns","Nicholson","Shepherd","Ross","Cross","Long","Freeman","Warren","Nicholls","Hamilton","Byrne","Sutton","Mcdonald","Yates","Hodgson","Robson","Curtis","Hopkins","O'connor","Harper","Coleman","Watkins","Moss","Mccarthy","Chambers","O'neill","Griffin","Sharp","Hardy","Wheeler","Potter","Osborne","Johnston","Gordon","Doyle","Wallace","George","Jordan","Hutchinson","Rowe","Burke","May","Pritchard","Gilbert","Willis","Higgins","Read","Miles","Stevenson","Stephenson","Hammond","Arnold","Buckley","Walters","Hewitt","Barber","Nelson","Slater","Austin","Sullivan","Whitehead","Mann","Frost","Lambert","Stephens","Blake","Akhtar","Lynch","Goodwin","Barton","Woodward","Thomson","Cunningham","Quinn","Barnett","Baxter","Bibi","Clayton","Nash","Greenwood","Jennings","Holt","Kemp","Poole","Gallagher","Bond","Stokes","Tucker","Davidson","Fowler","Heath","Norman","Middleton","Lawson","Banks","French","Stanley","Jarvis","Gibbs","Ferguson","Hayward","Carroll","Douglas","Dickinson","Todd","Barlow","Peters","Lucas","Knowles","Hartley","Miah","Simmons","Morton","Alexander","Field","Morrison","Norris","Townsend","Preston","Hancock","Thornton","Baldwin","Burrows","Briggs","Parkinson","Reeves","Macdonald","Lamb","Black","Abbott","Sanders","Thorpe","Holden","Tomlinson","Perkins","Ashton","Rhodes","Fuller","Howe","Bryant","Vaughan","Dale","Davey","Weston","Bartlett","Whittaker","Davison","Kent","Skinner","Birch","Morley","Daniels","Glover","Howell","Cartwright","Pugh","Humphreys","Goddard","Brennan","Wall","Kirby","Bowen","Savage","Bull","Wong","Dobson","Smart","Wilkins","Kirk","Fraser","Duffy","Hicks","Patterson","Bradshaw","Little","Archer","Warner","Waters","O'sullivan","Farrell","Brookes","Atkins","Kay","Dodd","Bentley","Flynn","John","Schofield","Short","Haynes","Wade","Butcher","Henry","Sanderson","Crawford","Sheppard","Bolton","Coates","Giles","Gould","Houghton","Gibbons","Pratt","Manning","Law","Hooper","Noble","Dyer","Rahman","Clements","Moran","Sykes","Chan","Doherty","Connolly","Joyce","Franklin","Hobbs","Coles","Herbert","Steele","Kerr","Leach","Winter","Owens","Duncan","Naylor","Fleming","Horton","Finch","Fitzgerald","Randall","Carpenter","Marsden","Browne","Garner","Pickering","Hale","Dennis","Vincent","Chadwick","Chandler","Sharpe","Nolan","Lyons","Hurst","Collier","Peacock","Howarth","Faulkner","Rice","Pollard","Welch","Norton","Gough","Sinclair","Blackburn","Bryan","Conway","Power","Cameron","Daly","Allan","Hanson","Gardiner","Boyle","Myers","Turnbull","Wallis","Mahmood","Sims","Swift","Iqbal","Pope","Brady","Chamberlain","Rowley","Tyler","Farmer","Metcalfe","Hilton","Godfrey","Holloway","Parkin","Bray","Talbot","Donnelly","Nixon","Charlton","Benson","Whitehouse","Barry","Hope","Lord","North","Storey","Connor","Potts","Bevan","Hargreaves","Mclean","Mistry","Bruce","Howells","Hyde","Parkes","Wyatt","Fry","Lees","O'donnell","Craig","Forster","Mckenzie","Humphries","Mellor","Carey","Ingram","Summers","Leonard"],de:["Müller","Schmidt","Schneider","Fischer","Weber","Meyer","Wagner","Becker","Schulz","Hoffmann","Schäfer","Koch","Bauer","Richter","Klein","Wolf","Schröder","Neumann","Schwarz","Zimmermann","Braun","Krüger","Hofmann","Hartmann","Lange","Schmitt","Werner","Schmitz","Krause","Meier","Lehmann","Schmid","Schulze","Maier","Köhler","Herrmann","König","Walter","Mayer","Huber","Kaiser","Fuchs","Peters","Lang","Scholz","Möller","Weiß","Jung","Hahn","Schubert","Vogel","Friedrich","Keller","Günther","Frank","Berger","Winkler","Roth","Beck","Lorenz","Baumann","Franke","Albrecht","Schuster","Simon","Ludwig","Böhm","Winter","Kraus","Martin","Schumacher","Krämer","Vogt","Stein","Jäger","Otto","Sommer","Groß","Seidel","Heinrich","Brandt","Haas","Schreiber","Graf","Schulte","Dietrich","Ziegler","Kuhn","Kühn","Pohl","Engel","Horn","Busch","Bergmann","Thomas","Voigt","Sauer","Arnold","Wolff","Pfeiffer"],jp:["Sato","Suzuki","Takahashi","Tanaka","Watanabe","Ito","Yamamoto","Nakamura","Kobayashi","Kato","Yoshida","Yamada","Sasaki","Yamaguchi","Saito","Matsumoto","Inoue","Kimura","Hayashi","Shimizu","Yamazaki","Mori","Abe","Ikeda","Hashimoto","Yamashita","Ishikawa","Nakajima","Maeda","Fujita","Ogawa","Goto","Okada","Hasegawa","Murakami","Kondo","Ishii","Saito","Sakamoto","Endo","Aoki","Fujii","Nishimura","Fukuda","Ota","Miura","Fujiwara","Okamoto","Matsuda","Nakagawa","Nakano","Harada","Ono","Tamura","Takeuchi","Kaneko","Wada","Nakayama","Ishida","Ueda","Morita","Hara","Shibata","Sakai","Kudo","Yokoyama","Miyazaki","Miyamoto","Uchida","Takagi","Ando","Taniguchi","Ohno","Maruyama","Imai","Takada","Fujimoto","Takeda","Murata","Ueno","Sugiyama","Masuda","Sugawara","Hirano","Kojima","Otsuka","Chiba","Kubo","Matsui","Iwasaki","Sakurai","Kinoshita","Noguchi","Matsuo","Nomura","Kikuchi","Sano","Onishi","Sugimoto","Arai"],es:["Garcia","Fernandez","Lopez","Martinez","Gonzalez","Rodriguez","Sanchez","Perez","Martin","Gomez","Ruiz","Diaz","Hernandez","Alvarez","Jimenez","Moreno","Munoz","Alonso","Romero","Navarro","Gutierrez","Torres","Dominguez","Gil","Vazquez","Blanco","Serrano","Ramos","Castro","Suarez","Sanz","Rubio","Ortega","Molina","Delgado","Ortiz","Morales","Ramirez","Marin","Iglesias","Santos","Castillo","Garrido","Calvo","Pena","Cruz","Cano","Nunez","Prieto","Diez","Lozano","Vidal","Pascual","Ferrer","Medina","Vega","Leon","Herrero","Vicente","Mendez","Guerrero","Fuentes","Campos","Nieto","Cortes","Caballero","Ibanez","Lorenzo","Pastor","Gimenez","Saez","Soler","Marquez","Carrasco","Herrera","Montero","Arias","Crespo","Flores","Andres","Aguilar","Hidalgo","Cabrera","Mora","Duran","Velasco","Rey","Pardo","Roman","Vila","Bravo","Merino","Moya","Soto","Izquierdo","Reyes","Redondo","Marcos","Carmona","Menendez"],fr:["Martin","Bernard","Thomas","Petit","Robert","Richard","Durand","Dubois","Moreau","Laurent","Simon","Michel","Lefèvre","Leroy","Roux","David","Bertrand","Morel","Fournier","Girard","Bonnet","Dupont","Lambert","Fontaine","Rousseau","Vincent","Müller","Lefèvre","Faure","André","Mercier","Blanc","Guérin","Boyer","Garnier","Chevalier","François","Legrand","Gauthier","Garcia","Perrin","Robin","Clément","Morin","Nicolas","Henry","Roussel","Matthieu","Gautier","Masson","Marchand","Duval","Denis","Dumont","Marie","Lemaire","Noël","Meyer","Dufour","Meunier","Brun","Blanchard","Giraud","Joly","Rivière","Lucas","Brunet","Gaillard","Barbier","Arnaud","Martínez","Gérard","Roche","Renard","Schmitt","Roy","Leroux","Colin","Vidal","Caron","Picard","Roger","Fabre","Aubert","Lemoine","Renaud","Dumas","Lacroix","Olivier","Philippe","Bourgeois","Pierre","Benoît","Rey","Leclerc","Payet","Rolland","Leclercq","Guillaume","Lecomte","López","Jean","Dupuy","Guillot","Hubert","Berger","Carpentier","Sánchez","Dupuis","Moulin","Louis","Deschamps","Huet","Vasseur","Perez","Boucher","Fleury","Royer","Klein","Jacquet","Adam","Paris","Poirier","Marty","Aubry","Guyot","Carré","Charles","Renault","Charpentier","Ménard","Maillard","Baron","Bertin","Bailly","Hervé","Schneider","Fernández","Le GallGall","Collet","Léger","Bouvier","Julien","Prévost","Millet","Perrot","Daniel","Le RouxRoux","Cousin","Germain","Breton","Besson","Langlois","Rémi","Le GoffGoff","Pelletier","Lévêque","Perrier","Leblanc","Barré","Lebrun","Marchal","Weber","Mallet","Hamon","Boulanger","Jacob","Monnier","Michaud","Rodríguez","Guichard","Gillet","Étienne","Grondin","Poulain","Tessier","Chevallier","Collin","Chauvin","Da SilvaSilva","Bouchet","Gay","Lemaître","Bénard","Maréchal","Humbert","Reynaud","Antoine","Hoarau","Perret","Barthélemy","Cordier","Pichon","Lejeune","Gilbert","Lamy","Delaunay","Pasquier","Carlier","LaporteLaporte"]},postcodeAreas:[{code:"AB"},{code:"AL"},{code:"B"},{code:"BA"},{code:"BB"},{code:"BD"},{code:"BH"},{code:"BL"},{code:"BN"},{code:"BR"},{code:"BS"},{code:"BT"},{code:"CA"},{code:"CB"},{code:"CF"},{code:"CH"},{code:"CM"},{code:"CO"},{code:"CR"},{code:"CT"},{code:"CV"},{code:"CW"},{code:"DA"},{code:"DD"},{code:"DE"},{code:"DG"},{code:"DH"},{code:"DL"},{code:"DN"},{code:"DT"},{code:"DY"},{code:"E"},{code:"EC"},{code:"EH"},{code:"EN"},{code:"EX"},{code:"FK"},{code:"FY"},{code:"G"},{code:"GL"},{code:"GU"},{code:"GY"},{code:"HA"},{code:"HD"},{code:"HG"},{code:"HP"},{code:"HR"},{code:"HS"},{code:"HU"},{code:"HX"},{code:"IG"},{code:"IM"},{code:"IP"},{code:"IV"},{code:"JE"},{code:"KA"},{code:"KT"},{code:"KW"},{code:"KY"},{code:"L"},{code:"LA"},{code:"LD"},{code:"LE"},{code:"LL"},{code:"LN"},{code:"LS"},{code:"LU"},{code:"M"},{code:"ME"},{code:"MK"},{code:"ML"},{code:"N"},{code:"NE"},{code:"NG"},{code:"NN"},{code:"NP"},{code:"NR"},{code:"NW"},{code:"OL"},{code:"OX"},{code:"PA"},{code:"PE"},{code:"PH"},{code:"PL"},{code:"PO"},{code:"PR"},{code:"RG"},{code:"RH"},{code:"RM"},{code:"S"},{code:"SA"},{code:"SE"},{code:"SG"},{code:"SK"},{code:"SL"},{code:"SM"},{code:"SN"},{code:"SO"},{code:"SP"},{code:"SR"},{code:"SS"},{code:"ST"},{code:"SW"},{code:"SY"},{code:"TA"},{code:"TD"},{code:"TF"},{code:"TN"},{code:"TQ"},{code:"TR"},{code:"TS"},{code:"TW"},{code:"UB"},{code:"W"},{code:"WA"},{code:"WC"},{code:"WD"},{code:"WF"},{code:"WN"},{code:"WR"},{code:"WS"},{code:"WV"},{code:"YO"},{code:"ZE"}],countries:[{name:"Afghanistan",abbreviation:"AF"},{name:"Åland Islands",abbreviation:"AX"},{name:"Albania",abbreviation:"AL"},{name:"Algeria",abbreviation:"DZ"},{name:"American Samoa",abbreviation:"AS"},{name:"Andorra",abbreviation:"AD"},{name:"Angola",abbreviation:"AO"},{name:"Anguilla",abbreviation:"AI"},{name:"Antarctica",abbreviation:"AQ"},{name:"Antigua and Barbuda",abbreviation:"AG"},{name:"Argentina",abbreviation:"AR"},{name:"Armenia",abbreviation:"AM"},{name:"Aruba",abbreviation:"AW"},{name:"Australia",abbreviation:"AU"},{name:"Austria",abbreviation:"AT"},{name:"Azerbaijan",abbreviation:"AZ"},{name:"Bahamas",abbreviation:"BS"},{name:"Bahrain",abbreviation:"BH"},{name:"Bangladesh",abbreviation:"BD"},{name:"Barbados",abbreviation:"BB"},{name:"Belarus",abbreviation:"BY"},{name:"Belgium",abbreviation:"BE"},{name:"Belize",abbreviation:"BZ"},{name:"Benin",abbreviation:"BJ"},{name:"Bermuda",abbreviation:"BM"},{name:"Bhutan",abbreviation:"BT"},{name:"Plurinational State of Bolivia",abbreviation:"BO"},{name:"Bonaire, Sint Eustatius and Saba",abbreviation:"BQ"},{name:"Bosnia and Herzegovina",abbreviation:"BA"},{name:"Botswana",abbreviation:"BW"},{name:"Bouvet Island",abbreviation:"BV"},{name:"Brazil",abbreviation:"BR"},{name:"British Indian Ocean Territory",abbreviation:"IO"},{name:"Brunei Darussalam",abbreviation:"BN"},{name:"Bulgaria",abbreviation:"BG"},{name:"Burkina Faso",abbreviation:"BF"},{name:"Burundi",abbreviation:"BI"},{name:"Cabo Verde",abbreviation:"CV"},{name:"Cambodia",abbreviation:"KH"},{name:"Cameroon",abbreviation:"CM"},{name:"Canada",abbreviation:"CA"},{name:"Cayman Islands",abbreviation:"KY"},{name:"Central African Republic",abbreviation:"CF"},{name:"Chad",abbreviation:"TD"},{name:"Chile",abbreviation:"CL"},{name:"China",abbreviation:"CN"},{name:"Christmas Island",abbreviation:"CX"},{name:"Cocos (Keeling) Islands",abbreviation:"CC"},{name:"Colombia",abbreviation:"CO"},{name:"Comoros",abbreviation:"KM"},{name:"Congo",abbreviation:"CG"},{name:"Democratic Republic of the Congo",abbreviation:"CD"},{name:"Cook Islands",abbreviation:"CK"},{name:"Costa Rica",abbreviation:"CR"},{name:"Côte d'Ivoire",abbreviation:"CI"},{name:"Croatia",abbreviation:"HR"},{name:"Cuba",abbreviation:"CU"},{name:"Curaçao",abbreviation:"CW"},{name:"Cyprus",abbreviation:"CY"},{name:"Czechia",abbreviation:"CZ"},{name:"Denmark",abbreviation:"DK"},{name:"Djibouti",abbreviation:"DJ"},{name:"Dominica",abbreviation:"DM"},{name:"Dominican Republic",abbreviation:"DO"},{name:"Ecuador",abbreviation:"EC"},{name:"Egypt",abbreviation:"EG"},{name:"El Salvador",abbreviation:"SV"},{name:"Equatorial Guinea",abbreviation:"GQ"},{name:"Eritrea",abbreviation:"ER"},{name:"Estonia",abbreviation:"EE"},{name:"Eswatini",abbreviation:"SZ"},{name:"Ethiopia",abbreviation:"ET"},{name:"Falkland Islands (Malvinas)",abbreviation:"FK"},{name:"Faroe Islands",abbreviation:"FO"},{name:"Fiji",abbreviation:"FJ"},{name:"Finland",abbreviation:"FI"},{name:"France",abbreviation:"FR"},{name:"French Guiana",abbreviation:"GF"},{name:"French Polynesia",abbreviation:"PF"},{name:"French Southern Territories",abbreviation:"TF"},{name:"Gabon",abbreviation:"GA"},{name:"Gambia",abbreviation:"GM"},{name:"Georgia",abbreviation:"GE"},{name:"Germany",abbreviation:"DE"},{name:"Ghana",abbreviation:"GH"},{name:"Gibraltar",abbreviation:"GI"},{name:"Greece",abbreviation:"GR"},{name:"Greenland",abbreviation:"GL"},{name:"Grenada",abbreviation:"GD"},{name:"Guadeloupe",abbreviation:"GP"},{name:"Guam",abbreviation:"GU"},{name:"Guatemala",abbreviation:"GT"},{name:"Guernsey",abbreviation:"GG"},{name:"Guinea",abbreviation:"GN"},{name:"Guinea-Bissau",abbreviation:"GW"},{name:"Guyana",abbreviation:"GY"},{name:"Haiti",abbreviation:"HT"},{name:"Heard Island and McDonald Islands",abbreviation:"HM"},{name:"Holy See",abbreviation:"VA"},{name:"Honduras",abbreviation:"HN"},{name:"Hong Kong",abbreviation:"HK"},{name:"Hungary",abbreviation:"HU"},{name:"Iceland",abbreviation:"IS"},{name:"India",abbreviation:"IN"},{name:"Indonesia",abbreviation:"ID"},{name:"Islamic Republic of Iran",abbreviation:"IR"},{name:"Iraq",abbreviation:"IQ"},{name:"Ireland",abbreviation:"IE"},{name:"Isle of Man",abbreviation:"IM"},{name:"Israel",abbreviation:"IL"},{name:"Italy",abbreviation:"IT"},{name:"Jamaica",abbreviation:"JM"},{name:"Japan",abbreviation:"JP"},{name:"Jersey",abbreviation:"JE"},{name:"Jordan",abbreviation:"JO"},{name:"Kazakhstan",abbreviation:"KZ"},{name:"Kenya",abbreviation:"KE"},{name:"Kiribati",abbreviation:"KI"},{name:"Democratic People's Republic of Korea",abbreviation:"KP"},{name:"Republic of Korea",abbreviation:"KR"},{name:"Kuwait",abbreviation:"KW"},{name:"Kyrgyzstan",abbreviation:"KG"},{name:"Lao People's Democratic Republic",abbreviation:"LA"},{name:"Latvia",abbreviation:"LV"},{name:"Lebanon",abbreviation:"LB"},{name:"Lesotho",abbreviation:"LS"},{name:"Liberia",abbreviation:"LR"},{name:"Libya",abbreviation:"LY"},{name:"Liechtenstein",abbreviation:"LI"},{name:"Lithuania",abbreviation:"LT"},{name:"Luxembourg",abbreviation:"LU"},{name:"Macao",abbreviation:"MO"},{name:"Madagascar",abbreviation:"MG"},{name:"Malawi",abbreviation:"MW"},{name:"Malaysia",abbreviation:"MY"},{name:"Maldives",abbreviation:"MV"},{name:"Mali",abbreviation:"ML"},{name:"Malta",abbreviation:"MT"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Martinique",abbreviation:"MQ"},{name:"Mauritania",abbreviation:"MR"},{name:"Mauritius",abbreviation:"MU"},{name:"Mayotte",abbreviation:"YT"},{name:"Mexico",abbreviation:"MX"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Republic of Moldova",abbreviation:"MD"},{name:"Monaco",abbreviation:"MC"},{name:"Mongolia",abbreviation:"MN"},{name:"Montenegro",abbreviation:"ME"},{name:"Montserrat",abbreviation:"MS"},{name:"Morocco",abbreviation:"MA"},{name:"Mozambique",abbreviation:"MZ"},{name:"Myanmar",abbreviation:"MM"},{name:"Namibia",abbreviation:"NA"},{name:"Nauru",abbreviation:"NR"},{name:"Nepal",abbreviation:"NP"},{name:"Kingdom of the Netherlands",abbreviation:"NL"},{name:"New Caledonia",abbreviation:"NC"},{name:"New Zealand",abbreviation:"NZ"},{name:"Nicaragua",abbreviation:"NI"},{name:"Niger",abbreviation:"NE"},{name:"Nigeria",abbreviation:"NG"},{name:"Niue",abbreviation:"NU"},{name:"Norfolk Island",abbreviation:"NF"},{name:"North Macedonia",abbreviation:"MK"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Norway",abbreviation:"NO"},{name:"Oman",abbreviation:"OM"},{name:"Pakistan",abbreviation:"PK"},{name:"Palau",abbreviation:"PW"},{name:"State of Palestine",abbreviation:"PS"},{name:"Panama",abbreviation:"PA"},{name:"Papua New Guinea",abbreviation:"PG"},{name:"Paraguay",abbreviation:"PY"},{name:"Peru",abbreviation:"PE"},{name:"Philippines",abbreviation:"PH"},{name:"Pitcairn",abbreviation:"PN"},{name:"Poland",abbreviation:"PL"},{name:"Portugal",abbreviation:"PT"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Qatar",abbreviation:"QA"},{name:"Réunion",abbreviation:"RE"},{name:"Romania",abbreviation:"RO"},{name:"Russian Federation",abbreviation:"RU"},{name:"Rwanda",abbreviation:"RW"},{name:"Saint Barthélemy",abbreviation:"BL"},{name:"Saint Helena, Ascension and Tristan da Cunha",abbreviation:"SH"},{name:"Saint Kitts and Nevis",abbreviation:"KN"},{name:"Saint Lucia",abbreviation:"LC"},{name:"Saint Martin (French part)",abbreviation:"MF"},{name:"Saint Pierre and Miquelon",abbreviation:"PM"},{name:"Saint Vincent and the Grenadines",abbreviation:"VC"},{name:"Samoa",abbreviation:"WS"},{name:"San Marino",abbreviation:"SM"},{name:"Sao Tome and Principe",abbreviation:"ST"},{name:"Saudi Arabia",abbreviation:"SA"},{name:"Senegal",abbreviation:"SN"},{name:"Serbia",abbreviation:"RS"},{name:"Seychelles",abbreviation:"SC"},{name:"Sierra Leone",abbreviation:"SL"},{name:"Singapore",abbreviation:"SG"},{name:"Sint Maarten (Dutch part)",abbreviation:"SX"},{name:"Slovakia",abbreviation:"SK"},{name:"Slovenia",abbreviation:"SI"},{name:"Solomon Islands",abbreviation:"SB"},{name:"Somalia",abbreviation:"SO"},{name:"South Africa",abbreviation:"ZA"},{name:"South Georgia and the South Sandwich Islands",abbreviation:"GS"},{name:"South Sudan",abbreviation:"SS"},{name:"Spain",abbreviation:"ES"},{name:"Sri Lanka",abbreviation:"LK"},{name:"Sudan",abbreviation:"SD"},{name:"Suriname",abbreviation:"SR"},{name:"Svalbard and Jan Mayen",abbreviation:"SJ"},{name:"Sweden",abbreviation:"SE"},{name:"Switzerland",abbreviation:"CH"},{name:"Syrian Arab Republic",abbreviation:"SY"},{name:"Taiwan, Province of China",abbreviation:"TW"},{name:"Tajikistan",abbreviation:"TJ"},{name:"United Republic of Tanzania",abbreviation:"TZ"},{name:"Thailand",abbreviation:"TH"},{name:"Timor-Leste",abbreviation:"TL"},{name:"Togo",abbreviation:"TG"},{name:"Tokelau",abbreviation:"TK"},{name:"Tonga",abbreviation:"TO"},{name:"Trinidad and Tobago",abbreviation:"TT"},{name:"Tunisia",abbreviation:"TN"},{name:"Türkiye",abbreviation:"TR"},{name:"Turkmenistan",abbreviation:"TM"},{name:"Turks and Caicos Islands",abbreviation:"TC"},{name:"Tuvalu",abbreviation:"TV"},{name:"Uganda",abbreviation:"UG"},{name:"Ukraine",abbreviation:"UA"},{name:"United Arab Emirates",abbreviation:"AE"},{name:"United Kingdom of Great Britain and Northern Ireland",abbreviation:"GB"},{name:"United States Minor Outlying Islands",abbreviation:"UM"},{name:"United States of America",abbreviation:"US"},{name:"Uruguay",abbreviation:"UY"},{name:"Uzbekistan",abbreviation:"UZ"},{name:"Vanuatu",abbreviation:"VU"},{name:"Bolivarian Republic of Venezuela",abbreviation:"VE"},{name:"Viet Nam",abbreviation:"VN"},{name:"Virgin Islands (British)",abbreviation:"VG"},{name:"Virgin Islands (U.S.)",abbreviation:"VI"},{name:"Wallis and Futuna",abbreviation:"WF"},{name:"Western Sahara",abbreviation:"EH"},{name:"Yemen",abbreviation:"YE"},{name:"Zambia",abbreviation:"ZM"},{name:"Zimbabwe",abbreviation:"ZW"}],counties:{uk:[{name:"Bath and North East Somerset"},{name:"Aberdeenshire"},{name:"Anglesey"},{name:"Angus"},{name:"Bedford"},{name:"Blackburn with Darwen"},{name:"Blackpool"},{name:"Bournemouth"},{name:"Bracknell Forest"},{name:"Brighton & Hove"},{name:"Bristol"},{name:"Buckinghamshire"},{name:"Cambridgeshire"},{name:"Carmarthenshire"},{name:"Central Bedfordshire"},{name:"Ceredigion"},{name:"Cheshire East"},{name:"Cheshire West and Chester"},{name:"Clackmannanshire"},{name:"Conwy"},{name:"Cornwall"},{name:"County Antrim"},{name:"County Armagh"},{name:"County Down"},{name:"County Durham"},{name:"County Fermanagh"},{name:"County Londonderry"},{name:"County Tyrone"},{name:"Cumbria"},{name:"Darlington"},{name:"Denbighshire"},{name:"Derby"},{name:"Derbyshire"},{name:"Devon"},{name:"Dorset"},{name:"Dumfries and Galloway"},{name:"Dundee"},{name:"East Lothian"},{name:"East Riding of Yorkshire"},{name:"East Sussex"},{name:"Edinburgh?"},{name:"Essex"},{name:"Falkirk"},{name:"Fife"},{name:"Flintshire"},{name:"Gloucestershire"},{name:"Greater London"},{name:"Greater Manchester"},{name:"Gwent"},{name:"Gwynedd"},{name:"Halton"},{name:"Hampshire"},{name:"Hartlepool"},{name:"Herefordshire"},{name:"Hertfordshire"},{name:"Highlands"},{name:"Hull"},{name:"Isle of Wight"},{name:"Isles of Scilly"},{name:"Kent"},{name:"Lancashire"},{name:"Leicester"},{name:"Leicestershire"},{name:"Lincolnshire"},{name:"Lothian"},{name:"Luton"},{name:"Medway"},{name:"Merseyside"},{name:"Mid Glamorgan"},{name:"Middlesbrough"},{name:"Milton Keynes"},{name:"Monmouthshire"},{name:"Moray"},{name:"Norfolk"},{name:"North East Lincolnshire"},{name:"North Lincolnshire"},{name:"North Somerset"},{name:"North Yorkshire"},{name:"Northamptonshire"},{name:"Northumberland"},{name:"Nottingham"},{name:"Nottinghamshire"},{name:"Oxfordshire"},{name:"Pembrokeshire"},{name:"Perth and Kinross"},{name:"Peterborough"},{name:"Plymouth"},{name:"Poole"},{name:"Portsmouth"},{name:"Powys"},{name:"Reading"},{name:"Redcar and Cleveland"},{name:"Rutland"},{name:"Scottish Borders"},{name:"Shropshire"},{name:"Slough"},{name:"Somerset"},{name:"South Glamorgan"},{name:"South Gloucestershire"},{name:"South Yorkshire"},{name:"Southampton"},{name:"Southend-on-Sea"},{name:"Staffordshire"},{name:"Stirlingshire"},{name:"Stockton-on-Tees"},{name:"Stoke-on-Trent"},{name:"Strathclyde"},{name:"Suffolk"},{name:"Surrey"},{name:"Swindon"},{name:"Telford and Wrekin"},{name:"Thurrock"},{name:"Torbay"},{name:"Tyne and Wear"},{name:"Warrington"},{name:"Warwickshire"},{name:"West Berkshire"},{name:"West Glamorgan"},{name:"West Lothian"},{name:"West Midlands"},{name:"West Sussex"},{name:"West Yorkshire"},{name:"Western Isles"},{name:"Wiltshire"},{name:"Windsor and Maidenhead"},{name:"Wokingham"},{name:"Worcestershire"},{name:"Wrexham"},{name:"York"}]},provinces:{ca:[{name:"Alberta",abbreviation:"AB"},{name:"British Columbia",abbreviation:"BC"},{name:"Manitoba",abbreviation:"MB"},{name:"New Brunswick",abbreviation:"NB"},{name:"Newfoundland and Labrador",abbreviation:"NL"},{name:"Nova Scotia",abbreviation:"NS"},{name:"Ontario",abbreviation:"ON"},{name:"Prince Edward Island",abbreviation:"PE"},{name:"Quebec",abbreviation:"QC"},{name:"Saskatchewan",abbreviation:"SK"},{name:"Northwest Territories",abbreviation:"NT"},{name:"Nunavut",abbreviation:"NU"},{name:"Yukon",abbreviation:"YT"}],it:[{name:"Agrigento",abbreviation:"AG",code:84},{name:"Alessandria",abbreviation:"AL",code:6},{name:"Ancona",abbreviation:"AN",code:42},{name:"Aosta",abbreviation:"AO",code:7},{name:"L'Aquila",abbreviation:"AQ",code:66},{name:"Arezzo",abbreviation:"AR",code:51},{name:"Ascoli-Piceno",abbreviation:"AP",code:44},{name:"Asti",abbreviation:"AT",code:5},{name:"Avellino",abbreviation:"AV",code:64},{name:"Bari",abbreviation:"BA",code:72},{name:"Barletta-Andria-Trani",abbreviation:"BT",code:72},{name:"Belluno",abbreviation:"BL",code:25},{name:"Benevento",abbreviation:"BN",code:62},{name:"Bergamo",abbreviation:"BG",code:16},{name:"Biella",abbreviation:"BI",code:96},{name:"Bologna",abbreviation:"BO",code:37},{name:"Bolzano",abbreviation:"BZ",code:21},{name:"Brescia",abbreviation:"BS",code:17},{name:"Brindisi",abbreviation:"BR",code:74},{name:"Cagliari",abbreviation:"CA",code:92},{name:"Caltanissetta",abbreviation:"CL",code:85},{name:"Campobasso",abbreviation:"CB",code:70},{name:"Carbonia Iglesias",abbreviation:"CI",code:70},{name:"Caserta",abbreviation:"CE",code:61},{name:"Catania",abbreviation:"CT",code:87},{name:"Catanzaro",abbreviation:"CZ",code:79},{name:"Chieti",abbreviation:"CH",code:69},{name:"Como",abbreviation:"CO",code:13},{name:"Cosenza",abbreviation:"CS",code:78},{name:"Cremona",abbreviation:"CR",code:19},{name:"Crotone",abbreviation:"KR",code:101},{name:"Cuneo",abbreviation:"CN",code:4},{name:"Enna",abbreviation:"EN",code:86},{name:"Fermo",abbreviation:"FM",code:86},{name:"Ferrara",abbreviation:"FE",code:38},{name:"Firenze",abbreviation:"FI",code:48},{name:"Foggia",abbreviation:"FG",code:71},{name:"Forli-Cesena",abbreviation:"FC",code:71},{name:"Frosinone",abbreviation:"FR",code:60},{name:"Genova",abbreviation:"GE",code:10},{name:"Gorizia",abbreviation:"GO",code:31},{name:"Grosseto",abbreviation:"GR",code:53},{name:"Imperia",abbreviation:"IM",code:8},{name:"Isernia",abbreviation:"IS",code:94},{name:"La-Spezia",abbreviation:"SP",code:66},{name:"Latina",abbreviation:"LT",code:59},{name:"Lecce",abbreviation:"LE",code:75},{name:"Lecco",abbreviation:"LC",code:97},{name:"Livorno",abbreviation:"LI",code:49},{name:"Lodi",abbreviation:"LO",code:98},{name:"Lucca",abbreviation:"LU",code:46},{name:"Macerata",abbreviation:"MC",code:43},{name:"Mantova",abbreviation:"MN",code:20},{name:"Massa-Carrara",abbreviation:"MS",code:45},{name:"Matera",abbreviation:"MT",code:77},{name:"Medio Campidano",abbreviation:"VS",code:77},{name:"Messina",abbreviation:"ME",code:83},{name:"Milano",abbreviation:"MI",code:15},{name:"Modena",abbreviation:"MO",code:36},{name:"Monza-Brianza",abbreviation:"MB",code:36},{name:"Napoli",abbreviation:"NA",code:63},{name:"Novara",abbreviation:"NO",code:3},{name:"Nuoro",abbreviation:"NU",code:91},{name:"Ogliastra",abbreviation:"OG",code:91},{name:"Olbia Tempio",abbreviation:"OT",code:91},{name:"Oristano",abbreviation:"OR",code:95},{name:"Padova",abbreviation:"PD",code:28},{name:"Palermo",abbreviation:"PA",code:82},{name:"Parma",abbreviation:"PR",code:34},{name:"Pavia",abbreviation:"PV",code:18},{name:"Perugia",abbreviation:"PG",code:54},{name:"Pesaro-Urbino",abbreviation:"PU",code:41},{name:"Pescara",abbreviation:"PE",code:68},{name:"Piacenza",abbreviation:"PC",code:33},{name:"Pisa",abbreviation:"PI",code:50},{name:"Pistoia",abbreviation:"PT",code:47},{name:"Pordenone",abbreviation:"PN",code:93},{name:"Potenza",abbreviation:"PZ",code:76},{name:"Prato",abbreviation:"PO",code:100},{name:"Ragusa",abbreviation:"RG",code:88},{name:"Ravenna",abbreviation:"RA",code:39},{name:"Reggio-Calabria",abbreviation:"RC",code:35},{name:"Reggio-Emilia",abbreviation:"RE",code:35},{name:"Rieti",abbreviation:"RI",code:57},{name:"Rimini",abbreviation:"RN",code:99},{name:"Roma",abbreviation:"Roma",code:58},{name:"Rovigo",abbreviation:"RO",code:29},{name:"Salerno",abbreviation:"SA",code:65},{name:"Sassari",abbreviation:"SS",code:90},{name:"Savona",abbreviation:"SV",code:9},{name:"Siena",abbreviation:"SI",code:52},{name:"Siracusa",abbreviation:"SR",code:89},{name:"Sondrio",abbreviation:"SO",code:14},{name:"Taranto",abbreviation:"TA",code:73},{name:"Teramo",abbreviation:"TE",code:67},{name:"Terni",abbreviation:"TR",code:55},{name:"Torino",abbreviation:"TO",code:1},{name:"Trapani",abbreviation:"TP",code:81},{name:"Trento",abbreviation:"TN",code:22},{name:"Treviso",abbreviation:"TV",code:26},{name:"Trieste",abbreviation:"TS",code:32},{name:"Udine",abbreviation:"UD",code:30},{name:"Varese",abbreviation:"VA",code:12},{name:"Venezia",abbreviation:"VE",code:27},{name:"Verbania",abbreviation:"VB",code:27},{name:"Vercelli",abbreviation:"VC",code:2},{name:"Verona",abbreviation:"VR",code:23},{name:"Vibo-Valentia",abbreviation:"VV",code:102},{name:"Vicenza",abbreviation:"VI",code:24},{name:"Viterbo",abbreviation:"VT",code:56}]},nationalities:[{name:"Afghan"},{name:"Albanian"},{name:"Algerian"},{name:"American"},{name:"Andorran"},{name:"Angolan"},{name:"Antiguans"},{name:"Argentinean"},{name:"Armenian"},{name:"Australian"},{name:"Austrian"},{name:"Azerbaijani"},{name:"Bahami"},{name:"Bahraini"},{name:"Bangladeshi"},{name:"Barbadian"},{name:"Barbudans"},{name:"Batswana"},{name:"Belarusian"},{name:"Belgian"},{name:"Belizean"},{name:"Beninese"},{name:"Bhutanese"},{name:"Bolivian"},{name:"Bosnian"},{name:"Brazilian"},{name:"British"},{name:"Bruneian"},{name:"Bulgarian"},{name:"Burkinabe"},{name:"Burmese"},{name:"Burundian"},{name:"Cambodian"},{name:"Cameroonian"},{name:"Canadian"},{name:"Cape Verdean"},{name:"Central African"},{name:"Chadian"},{name:"Chilean"},{name:"Chinese"},{name:"Colombian"},{name:"Comoran"},{name:"Congolese"},{name:"Costa Rican"},{name:"Croatian"},{name:"Cuban"},{name:"Cypriot"},{name:"Czech"},{name:"Danish"},{name:"Djibouti"},{name:"Dominican"},{name:"Dutch"},{name:"East Timorese"},{name:"Ecuadorean"},{name:"Egyptian"},{name:"Emirian"},{name:"Equatorial Guinean"},{name:"Eritrean"},{name:"Estonian"},{name:"Ethiopian"},{name:"Fijian"},{name:"Filipino"},{name:"Finnish"},{name:"French"},{name:"Gabonese"},{name:"Gambian"},{name:"Georgian"},{name:"German"},{name:"Ghanaian"},{name:"Greek"},{name:"Grenadian"},{name:"Guatemalan"},{name:"Guinea-Bissauan"},{name:"Guinean"},{name:"Guyanese"},{name:"Haitian"},{name:"Herzegovinian"},{name:"Honduran"},{name:"Hungarian"},{name:"I-Kiribati"},{name:"Icelander"},{name:"Indian"},{name:"Indonesian"},{name:"Iranian"},{name:"Iraqi"},{name:"Irish"},{name:"Israeli"},{name:"Italian"},{name:"Ivorian"},{name:"Jamaican"},{name:"Japanese"},{name:"Jordanian"},{name:"Kazakhstani"},{name:"Kenyan"},{name:"Kittian and Nevisian"},{name:"Kuwaiti"},{name:"Kyrgyz"},{name:"Laotian"},{name:"Latvian"},{name:"Lebanese"},{name:"Liberian"},{name:"Libyan"},{name:"Liechtensteiner"},{name:"Lithuanian"},{name:"Luxembourger"},{name:"Macedonian"},{name:"Malagasy"},{name:"Malawian"},{name:"Malaysian"},{name:"Maldivan"},{name:"Malian"},{name:"Maltese"},{name:"Marshallese"},{name:"Mauritanian"},{name:"Mauritian"},{name:"Mexican"},{name:"Micronesian"},{name:"Moldovan"},{name:"Monacan"},{name:"Mongolian"},{name:"Moroccan"},{name:"Mosotho"},{name:"Motswana"},{name:"Mozambican"},{name:"Namibian"},{name:"Nauruan"},{name:"Nepalese"},{name:"New Zealander"},{name:"Nicaraguan"},{name:"Nigerian"},{name:"Nigerien"},{name:"North Korean"},{name:"Northern Irish"},{name:"Norwegian"},{name:"Omani"},{name:"Pakistani"},{name:"Palauan"},{name:"Panamanian"},{name:"Papua New Guinean"},{name:"Paraguayan"},{name:"Peruvian"},{name:"Polish"},{name:"Portuguese"},{name:"Qatari"},{name:"Romani"},{name:"Russian"},{name:"Rwandan"},{name:"Saint Lucian"},{name:"Salvadoran"},{name:"Samoan"},{name:"San Marinese"},{name:"Sao Tomean"},{name:"Saudi"},{name:"Scottish"},{name:"Senegalese"},{name:"Serbian"},{name:"Seychellois"},{name:"Sierra Leonean"},{name:"Singaporean"},{name:"Slovakian"},{name:"Slovenian"},{name:"Solomon Islander"},{name:"Somali"},{name:"South African"},{name:"South Korean"},{name:"Spanish"},{name:"Sri Lankan"},{name:"Sudanese"},{name:"Surinamer"},{name:"Swazi"},{name:"Swedish"},{name:"Swiss"},{name:"Syrian"},{name:"Taiwanese"},{name:"Tajik"},{name:"Tanzanian"},{name:"Thai"},{name:"Togolese"},{name:"Tongan"},{name:"Trinidadian or Tobagonian"},{name:"Tunisian"},{name:"Turkish"},{name:"Tuvaluan"},{name:"Ugandan"},{name:"Ukrainian"},{name:"Uruguaya"},{name:"Uzbekistani"},{name:"Venezuela"},{name:"Vietnamese"},{name:"Wels"},{name:"Yemenit"},{name:"Zambia"},{name:"Zimbabwe"}],locale_languages:["aa","ab","ae","af","ak","am","an","ar","as","av","ay","az","ba","be","bg","bh","bi","bm","bn","bo","br","bs","ca","ce","ch","co","cr","cs","cu","cv","cy","da","de","dv","dz","ee","el","en","eo","es","et","eu","fa","ff","fi","fj","fo","fr","fy","ga","gd","gl","gn","gu","gv","ha","he","hi","ho","hr","ht","hu","hy","hz","ia","id","ie","ig","ii","ik","io","is","it","iu","ja","jv","ka","kg","ki","kj","kk","kl","km","kn","ko","kr","ks","ku","kv","kw","ky","la","lb","lg","li","ln","lo","lt","lu","lv","mg","mh","mi","mk","ml","mn","mr","ms","mt","my","na","nb","nd","ne","ng","nl","nn","no","nr","nv","ny","oc","oj","om","or","os","pa","pi","pl","ps","pt","qu","rm","rn","ro","ru","rw","sa","sc","sd","se","sg","si","sk","sl","sm","sn","so","sq","sr","ss","st","su","sv","sw","ta","te","tg","th","ti","tk","tl","tn","to","tr","ts","tt","tw","ty","ug","uk","ur","uz","ve","vi","vo","wa","wo","xh","yi","yo","za","zh","zu"],locale_regions:["agq-CM","asa-TZ","ast-ES","bas-CM","bem-ZM","bez-TZ","brx-IN","cgg-UG","chr-US","dav-KE","dje-NE","dsb-DE","dua-CM","dyo-SN","ebu-KE","ewo-CM","fil-PH","fur-IT","gsw-CH","gsw-FR","gsw-LI","guz-KE","haw-US","hsb-DE","jgo-CM","jmc-TZ","kab-DZ","kam-KE","kde-TZ","kea-CV","khq-ML","kkj-CM","kln-KE","kok-IN","ksb-TZ","ksf-CM","ksh-DE","lag-TZ","lkt-US","luo-KE","luy-KE","mas-KE","mas-TZ","mer-KE","mfe-MU","mgh-MZ","mgo-CM","mua-CM","naq-NA","nmg-CM","nnh-CM","nus-SD","nyn-UG","rof-TZ","rwk-TZ","sah-RU","saq-KE","sbp-TZ","seh-MZ","ses-ML","shi-Latn","shi-Latn-MA","shi-Tfng","shi-Tfng-MA","smn-FI","teo-KE","teo-UG","twq-NE","tzm-Latn","tzm-Latn-MA","vai-Latn","vai-Latn-LR","vai-Vaii","vai-Vaii-LR","vun-TZ","wae-CH","xog-UG","yav-CM","zgh-MA","af-NA","af-ZA","ak-GH","am-ET","ar-001","ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ","ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS","ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","as-IN","az-Cyrl","az-Cyrl-AZ","az-Latn","az-Latn-AZ","be-BY","bg-BG","bm-Latn","bm-Latn-ML","bn-BD","bn-IN","bo-CN","bo-IN","br-FR","bs-Cyrl","bs-Cyrl-BA","bs-Latn","bs-Latn-BA","ca-AD","ca-ES","ca-ES-VALENCIA","ca-FR","ca-IT","cs-CZ","cy-GB","da-DK","da-GL","de-AT","de-BE","de-CH","de-DE","de-LI","de-LU","dz-BT","ee-GH","ee-TG","el-CY","el-GR","en-001","en-150","en-AG","en-AI","en-AS","en-AU","en-BB","en-BE","en-BM","en-BS","en-BW","en-BZ","en-CA","en-CC","en-CK","en-CM","en-CX","en-DG","en-DM","en-ER","en-FJ","en-FK","en-FM","en-GB","en-GD","en-GG","en-GH","en-GI","en-GM","en-GU","en-GY","en-HK","en-IE","en-IM","en-IN","en-IO","en-JE","en-JM","en-KE","en-KI","en-KN","en-KY","en-LC","en-LR","en-LS","en-MG","en-MH","en-MO","en-MP","en-MS","en-MT","en-MU","en-MW","en-MY","en-NA","en-NF","en-NG","en-NR","en-NU","en-NZ","en-PG","en-PH","en-PK","en-PN","en-PR","en-PW","en-RW","en-SB","en-SC","en-SD","en-SG","en-SH","en-SL","en-SS","en-SX","en-SZ","en-TC","en-TK","en-TO","en-TT","en-TV","en-TZ","en-UG","en-UM","en-US","en-US-POSIX","en-VC","en-VG","en-VI","en-VU","en-WS","en-ZA","en-ZM","en-ZW","eo-001","es-419","es-AR","es-BO","es-CL","es-CO","es-CR","es-CU","es-DO","es-EA","es-EC","es-ES","es-GQ","es-GT","es-HN","es-IC","es-MX","es-NI","es-PA","es-PE","es-PH","es-PR","es-PY","es-SV","es-US","es-UY","es-VE","et-EE","eu-ES","fa-AF","fa-IR","ff-CM","ff-GN","ff-MR","ff-SN","fi-FI","fo-FO","fr-BE","fr-BF","fr-BI","fr-BJ","fr-BL","fr-CA","fr-CD","fr-CF","fr-CG","fr-CH","fr-CI","fr-CM","fr-DJ","fr-DZ","fr-FR","fr-GA","fr-GF","fr-GN","fr-GP","fr-GQ","fr-HT","fr-KM","fr-LU","fr-MA","fr-MC","fr-MF","fr-MG","fr-ML","fr-MQ","fr-MR","fr-MU","fr-NC","fr-NE","fr-PF","fr-PM","fr-RE","fr-RW","fr-SC","fr-SN","fr-SY","fr-TD","fr-TG","fr-TN","fr-VU","fr-WF","fr-YT","fy-NL","ga-IE","gd-GB","gl-ES","gu-IN","gv-IM","ha-Latn","ha-Latn-GH","ha-Latn-NE","ha-Latn-NG","he-IL","hi-IN","hr-BA","hr-HR","hu-HU","hy-AM","id-ID","ig-NG","ii-CN","is-IS","it-CH","it-IT","it-SM","ja-JP","ka-GE","ki-KE","kk-Cyrl","kk-Cyrl-KZ","kl-GL","km-KH","kn-IN","ko-KP","ko-KR","ks-Arab","ks-Arab-IN","kw-GB","ky-Cyrl","ky-Cyrl-KG","lb-LU","lg-UG","ln-AO","ln-CD","ln-CF","ln-CG","lo-LA","lt-LT","lu-CD","lv-LV","mg-MG","mk-MK","ml-IN","mn-Cyrl","mn-Cyrl-MN","mr-IN","ms-Latn","ms-Latn-BN","ms-Latn-MY","ms-Latn-SG","mt-MT","my-MM","nb-NO","nb-SJ","nd-ZW","ne-IN","ne-NP","nl-AW","nl-BE","nl-BQ","nl-CW","nl-NL","nl-SR","nl-SX","nn-NO","om-ET","om-KE","or-IN","os-GE","os-RU","pa-Arab","pa-Arab-PK","pa-Guru","pa-Guru-IN","pl-PL","ps-AF","pt-AO","pt-BR","pt-CV","pt-GW","pt-MO","pt-MZ","pt-PT","pt-ST","pt-TL","qu-BO","qu-EC","qu-PE","rm-CH","rn-BI","ro-MD","ro-RO","ru-BY","ru-KG","ru-KZ","ru-MD","ru-RU","ru-UA","rw-RW","se-FI","se-NO","se-SE","sg-CF","si-LK","sk-SK","sl-SI","sn-ZW","so-DJ","so-ET","so-KE","so-SO","sq-AL","sq-MK","sq-XK","sr-Cyrl","sr-Cyrl-BA","sr-Cyrl-ME","sr-Cyrl-RS","sr-Cyrl-XK","sr-Latn","sr-Latn-BA","sr-Latn-ME","sr-Latn-RS","sr-Latn-XK","sv-AX","sv-FI","sv-SE","sw-CD","sw-KE","sw-TZ","sw-UG","ta-IN","ta-LK","ta-MY","ta-SG","te-IN","th-TH","ti-ER","ti-ET","to-TO","tr-CY","tr-TR","ug-Arab","ug-Arab-CN","uk-UA","ur-IN","ur-PK","uz-Arab","uz-Arab-AF","uz-Cyrl","uz-Cyrl-UZ","uz-Latn","uz-Latn-UZ","vi-VN","yi-001","yo-BJ","yo-NG","zh-Hans","zh-Hans-CN","zh-Hans-HK","zh-Hans-MO","zh-Hans-SG","zh-Hant","zh-Hant-HK","zh-Hant-MO","zh-Hant-TW","zu-ZA"],us_states_and_dc:[{name:"Alabama",abbreviation:"AL"},{name:"Alaska",abbreviation:"AK"},{name:"Arizona",abbreviation:"AZ"},{name:"Arkansas",abbreviation:"AR"},{name:"California",abbreviation:"CA"},{name:"Colorado",abbreviation:"CO"},{name:"Connecticut",abbreviation:"CT"},{name:"Delaware",abbreviation:"DE"},{name:"District of Columbia",abbreviation:"DC"},{name:"Florida",abbreviation:"FL"},{name:"Georgia",abbreviation:"GA"},{name:"Hawaii",abbreviation:"HI"},{name:"Idaho",abbreviation:"ID"},{name:"Illinois",abbreviation:"IL"},{name:"Indiana",abbreviation:"IN"},{name:"Iowa",abbreviation:"IA"},{name:"Kansas",abbreviation:"KS"},{name:"Kentucky",abbreviation:"KY"},{name:"Louisiana",abbreviation:"LA"},{name:"Maine",abbreviation:"ME"},{name:"Maryland",abbreviation:"MD"},{name:"Massachusetts",abbreviation:"MA"},{name:"Michigan",abbreviation:"MI"},{name:"Minnesota",abbreviation:"MN"},{name:"Mississippi",abbreviation:"MS"},{name:"Missouri",abbreviation:"MO"},{name:"Montana",abbreviation:"MT"},{name:"Nebraska",abbreviation:"NE"},{name:"Nevada",abbreviation:"NV"},{name:"New Hampshire",abbreviation:"NH"},{name:"New Jersey",abbreviation:"NJ"},{name:"New Mexico",abbreviation:"NM"},{name:"New York",abbreviation:"NY"},{name:"North Carolina",abbreviation:"NC"},{name:"North Dakota",abbreviation:"ND"},{name:"Ohio",abbreviation:"OH"},{name:"Oklahoma",abbreviation:"OK"},{name:"Oregon",abbreviation:"OR"},{name:"Pennsylvania",abbreviation:"PA"},{name:"Rhode Island",abbreviation:"RI"},{name:"South Carolina",abbreviation:"SC"},{name:"South Dakota",abbreviation:"SD"},{name:"Tennessee",abbreviation:"TN"},{name:"Texas",abbreviation:"TX"},{name:"Utah",abbreviation:"UT"},{name:"Vermont",abbreviation:"VT"},{name:"Virginia",abbreviation:"VA"},{name:"Washington",abbreviation:"WA"},{name:"West Virginia",abbreviation:"WV"},{name:"Wisconsin",abbreviation:"WI"},{name:"Wyoming",abbreviation:"WY"}],territories:[{name:"American Samoa",abbreviation:"AS"},{name:"Federated States of Micronesia",abbreviation:"FM"},{name:"Guam",abbreviation:"GU"},{name:"Marshall Islands",abbreviation:"MH"},{name:"Northern Mariana Islands",abbreviation:"MP"},{name:"Puerto Rico",abbreviation:"PR"},{name:"Virgin Islands, U.S.",abbreviation:"VI"}],armed_forces:[{name:"Armed Forces Europe",abbreviation:"AE"},{name:"Armed Forces Pacific",abbreviation:"AP"},{name:"Armed Forces the Americas",abbreviation:"AA"}],country_regions:{it:[{name:"Valle d'Aosta",abbreviation:"VDA"},{name:"Piemonte",abbreviation:"PIE"},{name:"Lombardia",abbreviation:"LOM"},{name:"Veneto",abbreviation:"VEN"},{name:"Trentino Alto Adige",abbreviation:"TAA"},{name:"Friuli Venezia Giulia",abbreviation:"FVG"},{name:"Liguria",abbreviation:"LIG"},{name:"Emilia Romagna",abbreviation:"EMR"},{name:"Toscana",abbreviation:"TOS"},{name:"Umbria",abbreviation:"UMB"},{name:"Marche",abbreviation:"MAR"},{name:"Abruzzo",abbreviation:"ABR"},{name:"Lazio",abbreviation:"LAZ"},{name:"Campania",abbreviation:"CAM"},{name:"Puglia",abbreviation:"PUG"},{name:"Basilicata",abbreviation:"BAS"},{name:"Molise",abbreviation:"MOL"},{name:"Calabria",abbreviation:"CAL"},{name:"Sicilia",abbreviation:"SIC"},{name:"Sardegna",abbreviation:"SAR"}],mx:[{name:"Aguascalientes",abbreviation:"AGU"},{name:"Baja California",abbreviation:"BCN"},{name:"Baja California Sur",abbreviation:"BCS"},{name:"Campeche",abbreviation:"CAM"},{name:"Chiapas",abbreviation:"CHP"},{name:"Chihuahua",abbreviation:"CHH"},{name:"Ciudad de México",abbreviation:"DIF"},{name:"Coahuila",abbreviation:"COA"},{name:"Colima",abbreviation:"COL"},{name:"Durango",abbreviation:"DUR"},{name:"Guanajuato",abbreviation:"GUA"},{name:"Guerrero",abbreviation:"GRO"},{name:"Hidalgo",abbreviation:"HID"},{name:"Jalisco",abbreviation:"JAL"},{name:"México",abbreviation:"MEX"},{name:"Michoacán",abbreviation:"MIC"},{name:"Morelos",abbreviation:"MOR"},{name:"Nayarit",abbreviation:"NAY"},{name:"Nuevo León",abbreviation:"NLE"},{name:"Oaxaca",abbreviation:"OAX"},{name:"Puebla",abbreviation:"PUE"},{name:"Querétaro",abbreviation:"QUE"},{name:"Quintana Roo",abbreviation:"ROO"},{name:"San Luis Potosí",abbreviation:"SLP"},{name:"Sinaloa",abbreviation:"SIN"},{name:"Sonora",abbreviation:"SON"},{name:"Tabasco",abbreviation:"TAB"},{name:"Tamaulipas",abbreviation:"TAM"},{name:"Tlaxcala",abbreviation:"TLA"},{name:"Veracruz",abbreviation:"VER"},{name:"Yucatán",abbreviation:"YUC"},{name:"Zacatecas",abbreviation:"ZAC"}]},street_suffixes:{us:[{name:"Avenue",abbreviation:"Ave"},{name:"Boulevard",abbreviation:"Blvd"},{name:"Center",abbreviation:"Ctr"},{name:"Circle",abbreviation:"Cir"},{name:"Court",abbreviation:"Ct"},{name:"Drive",abbreviation:"Dr"},{name:"Extension",abbreviation:"Ext"},{name:"Glen",abbreviation:"Gln"},{name:"Grove",abbreviation:"Grv"},{name:"Heights",abbreviation:"Hts"},{name:"Highway",abbreviation:"Hwy"},{name:"Junction",abbreviation:"Jct"},{name:"Key",abbreviation:"Key"},{name:"Lane",abbreviation:"Ln"},{name:"Loop",abbreviation:"Loop"},{name:"Manor",abbreviation:"Mnr"},{name:"Mill",abbreviation:"Mill"},{name:"Park",abbreviation:"Park"},{name:"Parkway",abbreviation:"Pkwy"},{name:"Pass",abbreviation:"Pass"},{name:"Path",abbreviation:"Path"},{name:"Pike",abbreviation:"Pike"},{name:"Place",abbreviation:"Pl"},{name:"Plaza",abbreviation:"Plz"},{name:"Point",abbreviation:"Pt"},{name:"Ridge",abbreviation:"Rdg"},{name:"River",abbreviation:"Riv"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Trail",abbreviation:"Trl"},{name:"Turnpike",abbreviation:"Tpke"},{name:"View",abbreviation:"Vw"},{name:"Way",abbreviation:"Way"}],it:[{name:"Accesso",abbreviation:"Acc."},{name:"Alzaia",abbreviation:"Alz."},{name:"Arco",abbreviation:"Arco"},{name:"Archivolto",abbreviation:"Acv."},{name:"Arena",abbreviation:"Arena"},{name:"Argine",abbreviation:"Argine"},{name:"Bacino",abbreviation:"Bacino"},{name:"Banchi",abbreviation:"Banchi"},{name:"Banchina",abbreviation:"Ban."},{name:"Bastioni",abbreviation:"Bas."},{name:"Belvedere",abbreviation:"Belv."},{name:"Borgata",abbreviation:"B.ta"},{name:"Borgo",abbreviation:"B.go"},{name:"Calata",abbreviation:"Cal."},{name:"Calle",abbreviation:"Calle"},{name:"Campiello",abbreviation:"Cam."},{name:"Campo",abbreviation:"Cam."},{name:"Canale",abbreviation:"Can."},{name:"Carraia",abbreviation:"Carr."},{name:"Cascina",abbreviation:"Cascina"},{name:"Case sparse",abbreviation:"c.s."},{name:"Cavalcavia",abbreviation:"Cv."},{name:"Circonvallazione",abbreviation:"Cv."},{name:"Complanare",abbreviation:"C.re"},{name:"Contrada",abbreviation:"C.da"},{name:"Corso",abbreviation:"C.so"},{name:"Corte",abbreviation:"C.te"},{name:"Cortile",abbreviation:"C.le"},{name:"Diramazione",abbreviation:"Dir."},{name:"Fondaco",abbreviation:"F.co"},{name:"Fondamenta",abbreviation:"F.ta"},{name:"Fondo",abbreviation:"F.do"},{name:"Frazione",abbreviation:"Fr."},{name:"Isola",abbreviation:"Is."},{name:"Largo",abbreviation:"L.go"},{name:"Litoranea",abbreviation:"Lit."},{name:"Lungolago",abbreviation:"L.go lago"},{name:"Lungo Po",abbreviation:"l.go Po"},{name:"Molo",abbreviation:"Molo"},{name:"Mura",abbreviation:"Mura"},{name:"Passaggio privato",abbreviation:"pass. priv."},{name:"Passeggiata",abbreviation:"Pass."},{name:"Piazza",abbreviation:"P.zza"},{name:"Piazzale",abbreviation:"P.le"},{name:"Ponte",abbreviation:"P.te"},{name:"Portico",abbreviation:"P.co"},{name:"Rampa",abbreviation:"Rampa"},{name:"Regione",abbreviation:"Reg."},{name:"Rione",abbreviation:"R.ne"},{name:"Rio",abbreviation:"Rio"},{name:"Ripa",abbreviation:"Ripa"},{name:"Riva",abbreviation:"Riva"},{name:"Rondò",abbreviation:"Rondò"},{name:"Rotonda",abbreviation:"Rot."},{name:"Sagrato",abbreviation:"Sagr."},{name:"Salita",abbreviation:"Sal."},{name:"Scalinata",abbreviation:"Scal."},{name:"Scalone",abbreviation:"Scal."},{name:"Slargo",abbreviation:"Sl."},{name:"Sottoportico",abbreviation:"Sott."},{name:"Strada",abbreviation:"Str."},{name:"Stradale",abbreviation:"Str.le"},{name:"Strettoia",abbreviation:"Strett."},{name:"Traversa",abbreviation:"Trav."},{name:"Via",abbreviation:"V."},{name:"Viale",abbreviation:"V.le"},{name:"Vicinale",abbreviation:"Vic.le"},{name:"Vicolo",abbreviation:"Vic."}],uk:[{name:"Avenue",abbreviation:"Ave"},{name:"Close",abbreviation:"Cl"},{name:"Court",abbreviation:"Ct"},{name:"Crescent",abbreviation:"Cr"},{name:"Drive",abbreviation:"Dr"},{name:"Garden",abbreviation:"Gdn"},{name:"Gardens",abbreviation:"Gdns"},{name:"Green",abbreviation:"Gn"},{name:"Grove",abbreviation:"Gr"},{name:"Lane",abbreviation:"Ln"},{name:"Mount",abbreviation:"Mt"},{name:"Place",abbreviation:"Pl"},{name:"Park",abbreviation:"Pk"},{name:"Ridge",abbreviation:"Rdg"},{name:"Road",abbreviation:"Rd"},{name:"Square",abbreviation:"Sq"},{name:"Street",abbreviation:"St"},{name:"Terrace",abbreviation:"Ter"},{name:"Valley",abbreviation:"Val"}]},months:[{name:"January",short_name:"Jan",numeric:"01",days:31},{name:"February",short_name:"Feb",numeric:"02",days:28},{name:"March",short_name:"Mar",numeric:"03",days:31},{name:"April",short_name:"Apr",numeric:"04",days:30},{name:"May",short_name:"May",numeric:"05",days:31},{name:"June",short_name:"Jun",numeric:"06",days:30},{name:"July",short_name:"Jul",numeric:"07",days:31},{name:"August",short_name:"Aug",numeric:"08",days:31},{name:"September",short_name:"Sep",numeric:"09",days:30},{name:"October",short_name:"Oct",numeric:"10",days:31},{name:"November",short_name:"Nov",numeric:"11",days:30},{name:"December",short_name:"Dec",numeric:"12",days:31}],cc_types:[{name:"American Express",short_name:"amex",prefix:"34",length:15},{name:"Bankcard",short_name:"bankcard",prefix:"5610",length:16},{name:"China UnionPay",short_name:"chinaunion",prefix:"62",length:16},{name:"Diners Club Carte Blanche",short_name:"dccarte",prefix:"300",length:14},{name:"Diners Club enRoute",short_name:"dcenroute",prefix:"2014",length:15},{name:"Diners Club International",short_name:"dcintl",prefix:"36",length:14},{name:"Diners Club United States & Canada",short_name:"dcusc",prefix:"54",length:16},{name:"Discover Card",short_name:"discover",prefix:"6011",length:16},{name:"InstaPayment",short_name:"instapay",prefix:"637",length:16},{name:"JCB",short_name:"jcb",prefix:"3528",length:16},{name:"Laser",short_name:"laser",prefix:"6304",length:16},{name:"Maestro",short_name:"maestro",prefix:"5018",length:16},{name:"Mastercard",short_name:"mc",prefix:"51",length:16},{name:"Solo",short_name:"solo",prefix:"6334",length:16},{name:"Switch",short_name:"switch",prefix:"4903",length:16},{name:"Visa",short_name:"visa",prefix:"4",length:16},{name:"Visa Electron",short_name:"electron",prefix:"4026",length:16}],currency_types:[{code:"AED",name:"United Arab Emirates Dirham"},{code:"AFN",name:"Afghanistan Afghani"},{code:"ALL",name:"Albania Lek"},{code:"AMD",name:"Armenia Dram"},{code:"ANG",name:"Netherlands Antilles Guilder"},{code:"AOA",name:"Angola Kwanza"},{code:"ARS",name:"Argentina Peso"},{code:"AUD",name:"Australia Dollar"},{code:"AWG",name:"Aruba Guilder"},{code:"AZN",name:"Azerbaijan New Manat"},{code:"BAM",name:"Bosnia and Herzegovina Convertible Marka"},{code:"BBD",name:"Barbados Dollar"},{code:"BDT",name:"Bangladesh Taka"},{code:"BGN",name:"Bulgaria Lev"},{code:"BHD",name:"Bahrain Dinar"},{code:"BIF",name:"Burundi Franc"},{code:"BMD",name:"Bermuda Dollar"},{code:"BND",name:"Brunei Darussalam Dollar"},{code:"BOB",name:"Bolivia Boliviano"},{code:"BRL",name:"Brazil Real"},{code:"BSD",name:"Bahamas Dollar"},{code:"BTN",name:"Bhutan Ngultrum"},{code:"BWP",name:"Botswana Pula"},{code:"BYR",name:"Belarus Ruble"},{code:"BZD",name:"Belize Dollar"},{code:"CAD",name:"Canada Dollar"},{code:"CDF",name:"Congo/Kinshasa Franc"},{code:"CHF",name:"Switzerland Franc"},{code:"CLP",name:"Chile Peso"},{code:"CNY",name:"China Yuan Renminbi"},{code:"COP",name:"Colombia Peso"},{code:"CRC",name:"Costa Rica Colon"},{code:"CUC",name:"Cuba Convertible Peso"},{code:"CUP",name:"Cuba Peso"},{code:"CVE",name:"Cape Verde Escudo"},{code:"CZK",name:"Czech Republic Koruna"},{code:"DJF",name:"Djibouti Franc"},{code:"DKK",name:"Denmark Krone"},{code:"DOP",name:"Dominican Republic Peso"},{code:"DZD",name:"Algeria Dinar"},{code:"EGP",name:"Egypt Pound"},{code:"ERN",name:"Eritrea Nakfa"},{code:"ETB",name:"Ethiopia Birr"},{code:"EUR",name:"Euro Member Countries"},{code:"FJD",name:"Fiji Dollar"},{code:"FKP",name:"Falkland Islands (Malvinas) Pound"},{code:"GBP",name:"United Kingdom Pound"},{code:"GEL",name:"Georgia Lari"},{code:"GGP",name:"Guernsey Pound"},{code:"GHS",name:"Ghana Cedi"},{code:"GIP",name:"Gibraltar Pound"},{code:"GMD",name:"Gambia Dalasi"},{code:"GNF",name:"Guinea Franc"},{code:"GTQ",name:"Guatemala Quetzal"},{code:"GYD",name:"Guyana Dollar"},{code:"HKD",name:"Hong Kong Dollar"},{code:"HNL",name:"Honduras Lempira"},{code:"HRK",name:"Croatia Kuna"},{code:"HTG",name:"Haiti Gourde"},{code:"HUF",name:"Hungary Forint"},{code:"IDR",name:"Indonesia Rupiah"},{code:"ILS",name:"Israel Shekel"},{code:"IMP",name:"Isle of Man Pound"},{code:"INR",name:"India Rupee"},{code:"IQD",name:"Iraq Dinar"},{code:"IRR",name:"Iran Rial"},{code:"ISK",name:"Iceland Krona"},{code:"JEP",name:"Jersey Pound"},{code:"JMD",name:"Jamaica Dollar"},{code:"JOD",name:"Jordan Dinar"},{code:"JPY",name:"Japan Yen"},{code:"KES",name:"Kenya Shilling"},{code:"KGS",name:"Kyrgyzstan Som"},{code:"KHR",name:"Cambodia Riel"},{code:"KMF",name:"Comoros Franc"},{code:"KPW",name:"Korea (North) Won"},{code:"KRW",name:"Korea (South) Won"},{code:"KWD",name:"Kuwait Dinar"},{code:"KYD",name:"Cayman Islands Dollar"},{code:"KZT",name:"Kazakhstan Tenge"},{code:"LAK",name:"Laos Kip"},{code:"LBP",name:"Lebanon Pound"},{code:"LKR",name:"Sri Lanka Rupee"},{code:"LRD",name:"Liberia Dollar"},{code:"LSL",name:"Lesotho Loti"},{code:"LTL",name:"Lithuania Litas"},{code:"LYD",name:"Libya Dinar"},{code:"MAD",name:"Morocco Dirham"},{code:"MDL",name:"Moldova Leu"},{code:"MGA",name:"Madagascar Ariary"},{code:"MKD",name:"Macedonia Denar"},{code:"MMK",name:"Myanmar (Burma) Kyat"},{code:"MNT",name:"Mongolia Tughrik"},{code:"MOP",name:"Macau Pataca"},{code:"MRO",name:"Mauritania Ouguiya"},{code:"MUR",name:"Mauritius Rupee"},{code:"MVR",name:"Maldives (Maldive Islands) Rufiyaa"},{code:"MWK",name:"Malawi Kwacha"},{code:"MXN",name:"Mexico Peso"},{code:"MYR",name:"Malaysia Ringgit"},{code:"MZN",name:"Mozambique Metical"},{code:"NAD",name:"Namibia Dollar"},{code:"NGN",name:"Nigeria Naira"},{code:"NIO",name:"Nicaragua Cordoba"},{code:"NOK",name:"Norway Krone"},{code:"NPR",name:"Nepal Rupee"},{code:"NZD",name:"New Zealand Dollar"},{code:"OMR",name:"Oman Rial"},{code:"PAB",name:"Panama Balboa"},{code:"PEN",name:"Peru Nuevo Sol"},{code:"PGK",name:"Papua New Guinea Kina"},{code:"PHP",name:"Philippines Peso"},{code:"PKR",name:"Pakistan Rupee"},{code:"PLN",name:"Poland Zloty"},{code:"PYG",name:"Paraguay Guarani"},{code:"QAR",name:"Qatar Riyal"},{code:"RON",name:"Romania New Leu"},{code:"RSD",name:"Serbia Dinar"},{code:"RUB",name:"Russia Ruble"},{code:"RWF",name:"Rwanda Franc"},{code:"SAR",name:"Saudi Arabia Riyal"},{code:"SBD",name:"Solomon Islands Dollar"},{code:"SCR",name:"Seychelles Rupee"},{code:"SDG",name:"Sudan Pound"},{code:"SEK",name:"Sweden Krona"},{code:"SGD",name:"Singapore Dollar"},{code:"SHP",name:"Saint Helena Pound"},{code:"SLL",name:"Sierra Leone Leone"},{code:"SOS",name:"Somalia Shilling"},{code:"SPL",name:"Seborga Luigino"},{code:"SRD",name:"Suriname Dollar"},{code:"STD",name:"São Tomé and Príncipe Dobra"},{code:"SVC",name:"El Salvador Colon"},{code:"SYP",name:"Syria Pound"},{code:"SZL",name:"Swaziland Lilangeni"},{code:"THB",name:"Thailand Baht"},{code:"TJS",name:"Tajikistan Somoni"},{code:"TMT",name:"Turkmenistan Manat"},{code:"TND",name:"Tunisia Dinar"},{code:"TOP",name:"Tonga Pa'anga"},{code:"TRY",name:"Turkey Lira"},{code:"TTD",name:"Trinidad and Tobago Dollar"},{code:"TVD",name:"Tuvalu Dollar"},{code:"TWD",name:"Taiwan New Dollar"},{code:"TZS",name:"Tanzania Shilling"},{code:"UAH",name:"Ukraine Hryvnia"},{code:"UGX",name:"Uganda Shilling"},{code:"USD",name:"United States Dollar"},{code:"UYU",name:"Uruguay Peso"},{code:"UZS",name:"Uzbekistan Som"},{code:"VEF",name:"Venezuela Bolivar"},{code:"VND",name:"Viet Nam Dong"},{code:"VUV",name:"Vanuatu Vatu"},{code:"WST",name:"Samoa Tala"},{code:"XAF",name:"Communauté Financière Africaine (BEAC) CFA Franc BEAC"},{code:"XCD",name:"East Caribbean Dollar"},{code:"XDR",name:"International Monetary Fund (IMF) Special Drawing Rights"},{code:"XOF",name:"Communauté Financière Africaine (BCEAO) Franc"},{code:"XPF",name:"Comptoirs Français du Pacifique (CFP) Franc"},{code:"YER",name:"Yemen Rial"},{code:"ZAR",name:"South Africa Rand"},{code:"ZMW",name:"Zambia Kwacha"},{code:"ZWD",name:"Zimbabwe Dollar"}],colorNames:["AliceBlue","Black","Navy","DarkBlue","MediumBlue","Blue","DarkGreen","Green","Teal","DarkCyan","DeepSkyBlue","DarkTurquoise","MediumSpringGreen","Lime","SpringGreen","Aqua","Cyan","MidnightBlue","DodgerBlue","LightSeaGreen","ForestGreen","SeaGreen","DarkSlateGray","LimeGreen","MediumSeaGreen","Turquoise","RoyalBlue","SteelBlue","DarkSlateBlue","MediumTurquoise","Indigo","DarkOliveGreen","CadetBlue","CornflowerBlue","RebeccaPurple","MediumAquaMarine","DimGray","SlateBlue","OliveDrab","SlateGray","LightSlateGray","MediumSlateBlue","LawnGreen","Chartreuse","Aquamarine","Maroon","Purple","Olive","Gray","SkyBlue","LightSkyBlue","BlueViolet","DarkRed","DarkMagenta","SaddleBrown","Ivory","White","DarkSeaGreen","LightGreen","MediumPurple","DarkViolet","PaleGreen","DarkOrchid","YellowGreen","Sienna","Brown","DarkGray","LightBlue","GreenYellow","PaleTurquoise","LightSteelBlue","PowderBlue","FireBrick","DarkGoldenRod","MediumOrchid","RosyBrown","DarkKhaki","Silver","MediumVioletRed","IndianRed","Peru","Chocolate","Tan","LightGray","Thistle","Orchid","GoldenRod","PaleVioletRed","Crimson","Gainsboro","Plum","BurlyWood","LightCyan","Lavender","DarkSalmon","Violet","PaleGoldenRod","LightCoral","Khaki","AliceBlue","HoneyDew","Azure","SandyBrown","Wheat","Beige","WhiteSmoke","MintCream","GhostWhite","Salmon","AntiqueWhite","Linen","LightGoldenRodYellow","OldLace","Red","Fuchsia","Magenta","DeepPink","OrangeRed","Tomato","HotPink","Coral","DarkOrange","LightSalmon","Orange","LightPink","Pink","Gold","PeachPuff","NavajoWhite","Moccasin","Bisque","MistyRose","BlanchedAlmond","PapayaWhip","LavenderBlush","SeaShell","Cornsilk","LemonChiffon","FloralWhite","Snow","Yellow","LightYellow"],company:["3Com Corp","3M Company","A.G. Edwards Inc.","Abbott Laboratories","Abercrombie & Fitch Co.","ABM Industries Incorporated","Ace Hardware Corporation","ACT Manufacturing Inc.","Acterna Corp.","Adams Resources & Energy, Inc.","ADC Telecommunications, Inc.","Adelphia Communications Corporation","Administaff, Inc.","Adobe Systems Incorporated","Adolph Coors Company","Advance Auto Parts, Inc.","Advanced Micro Devices, Inc.","AdvancePCS, Inc.","Advantica Restaurant Group, Inc.","The AES Corporation","Aetna Inc.","Affiliated Computer Services, Inc.","AFLAC Incorporated","AGCO Corporation","Agilent Technologies, Inc.","Agway Inc.","Apartment Investment and Management Company","Air Products and Chemicals, Inc.","Airborne, Inc.","Airgas, Inc.","AK Steel Holding Corporation","Alaska Air Group, Inc.","Alberto-Culver Company","Albertson's, Inc.","Alcoa Inc.","Alleghany Corporation","Allegheny Energy, Inc.","Allegheny Technologies Incorporated","Allergan, Inc.","ALLETE, Inc.","Alliant Energy Corporation","Allied Waste Industries, Inc.","Allmerica Financial Corporation","The Allstate Corporation","ALLTEL Corporation","The Alpine Group, Inc.","Amazon.com, Inc.","AMC Entertainment Inc.","American Power Conversion Corporation","Amerada Hess Corporation","AMERCO","Ameren Corporation","America West Holdings Corporation","American Axle & Manufacturing Holdings, Inc.","American Eagle Outfitters, Inc.","American Electric Power Company, Inc.","American Express Company","American Financial Group, Inc.","American Greetings Corporation","American International Group, Inc.","American Standard Companies Inc.","American Water Works Company, Inc.","AmerisourceBergen Corporation","Ames Department Stores, Inc.","Amgen Inc.","Amkor Technology, Inc.","AMR Corporation","AmSouth Bancorp.","Amtran, Inc.","Anadarko Petroleum Corporation","Analog Devices, Inc.","Anheuser-Busch Companies, Inc.","Anixter International Inc.","AnnTaylor Inc.","Anthem, Inc.","AOL Time Warner Inc.","Aon Corporation","Apache Corporation","Apple Computer, Inc.","Applera Corporation","Applied Industrial Technologies, Inc.","Applied Materials, Inc.","Aquila, Inc.","ARAMARK Corporation","Arch Coal, Inc.","Archer Daniels Midland Company","Arkansas Best Corporation","Armstrong Holdings, Inc.","Arrow Electronics, Inc.","ArvinMeritor, Inc.","Ashland Inc.","Astoria Financial Corporation","AT&T Corp.","Atmel Corporation","Atmos Energy Corporation","Audiovox Corporation","Autoliv, Inc.","Automatic Data Processing, Inc.","AutoNation, Inc.","AutoZone, Inc.","Avaya Inc.","Avery Dennison Corporation","Avista Corporation","Avnet, Inc.","Avon Products, Inc.","Baker Hughes Incorporated","Ball Corporation","Bank of America Corporation","The Bank of New York Company, Inc.","Bank One Corporation","Banknorth Group, Inc.","Banta Corporation","Barnes & Noble, Inc.","Bausch & Lomb Incorporated","Baxter International Inc.","BB&T Corporation","The Bear Stearns Companies Inc.","Beazer Homes USA, Inc.","Beckman Coulter, Inc.","Becton, Dickinson and Company","Bed Bath & Beyond Inc.","Belk, Inc.","Bell Microproducts Inc.","BellSouth Corporation","Belo Corp.","Bemis Company, Inc.","Benchmark Electronics, Inc.","Berkshire Hathaway Inc.","Best Buy Co., Inc.","Bethlehem Steel Corporation","Beverly Enterprises, Inc.","Big Lots, Inc.","BJ Services Company","BJ's Wholesale Club, Inc.","The Black & Decker Corporation","Black Hills Corporation","BMC Software, Inc.","The Boeing Company","Boise Cascade Corporation","Borders Group, Inc.","BorgWarner Inc.","Boston Scientific Corporation","Bowater Incorporated","Briggs & Stratton Corporation","Brightpoint, Inc.","Brinker International, Inc.","Bristol-Myers Squibb Company","Broadwing, Inc.","Brown Shoe Company, Inc.","Brown-Forman Corporation","Brunswick Corporation","Budget Group, Inc.","Burlington Coat Factory Warehouse Corporation","Burlington Industries, Inc.","Burlington Northern Santa Fe Corporation","Burlington Resources Inc.","C. H. Robinson Worldwide Inc.","Cablevision Systems Corp","Cabot Corp","Cadence Design Systems, Inc.","Calpine Corp.","Campbell Soup Co.","Capital One Financial Corp.","Cardinal Health Inc.","Caremark Rx Inc.","Carlisle Cos. Inc.","Carpenter Technology Corp.","Casey's General Stores Inc.","Caterpillar Inc.","CBRL Group Inc.","CDI Corp.","CDW Computer Centers Inc.","CellStar Corp.","Cendant Corp","Cenex Harvest States Cooperatives","Centex Corp.","CenturyTel Inc.","Ceridian Corp.","CH2M Hill Cos. Ltd.","Champion Enterprises Inc.","Charles Schwab Corp.","Charming Shoppes Inc.","Charter Communications Inc.","Charter One Financial Inc.","ChevronTexaco Corp.","Chiquita Brands International Inc.","Chubb Corp","Ciena Corp.","Cigna Corp","Cincinnati Financial Corp.","Cinergy Corp.","Cintas Corp.","Circuit City Stores Inc.","Cisco Systems Inc.","Citigroup, Inc","Citizens Communications Co.","CKE Restaurants Inc.","Clear Channel Communications Inc.","The Clorox Co.","CMGI Inc.","CMS Energy Corp.","CNF Inc.","Coca-Cola Co.","Coca-Cola Enterprises Inc.","Colgate-Palmolive Co.","Collins & Aikman Corp.","Comcast Corp.","Comdisco Inc.","Comerica Inc.","Comfort Systems USA Inc.","Commercial Metals Co.","Community Health Systems Inc.","Compass Bancshares Inc","Computer Associates International Inc.","Computer Sciences Corp.","Compuware Corp.","Comverse Technology Inc.","ConAgra Foods Inc.","Concord EFS Inc.","Conectiv, Inc","Conoco Inc","Conseco Inc.","Consolidated Freightways Corp.","Consolidated Edison Inc.","Constellation Brands Inc.","Constellation Emergy Group Inc.","Continental Airlines Inc.","Convergys Corp.","Cooper Cameron Corp.","Cooper Industries Ltd.","Cooper Tire & Rubber Co.","Corn Products International Inc.","Corning Inc.","Costco Wholesale Corp.","Countrywide Credit Industries Inc.","Coventry Health Care Inc.","Cox Communications Inc.","Crane Co.","Crompton Corp.","Crown Cork & Seal Co. Inc.","CSK Auto Corp.","CSX Corp.","Cummins Inc.","CVS Corp.","Cytec Industries Inc.","D&K Healthcare Resources, Inc.","D.R. Horton Inc.","Dana Corporation","Danaher Corporation","Darden Restaurants Inc.","DaVita Inc.","Dean Foods Company","Deere & Company","Del Monte Foods Co","Dell Computer Corporation","Delphi Corp.","Delta Air Lines Inc.","Deluxe Corporation","Devon Energy Corporation","Di Giorgio Corporation","Dial Corporation","Diebold Incorporated","Dillard's Inc.","DIMON Incorporated","Dole Food Company, Inc.","Dollar General Corporation","Dollar Tree Stores, Inc.","Dominion Resources, Inc.","Domino's Pizza LLC","Dover Corporation, Inc.","Dow Chemical Company","Dow Jones & Company, Inc.","DPL Inc.","DQE Inc.","Dreyer's Grand Ice Cream, Inc.","DST Systems, Inc.","DTE Energy Co.","E.I. Du Pont de Nemours and Company","Duke Energy Corp","Dun & Bradstreet Inc.","DURA Automotive Systems Inc.","DynCorp","Dynegy Inc.","E*Trade Group, Inc.","E.W. Scripps Company","Earthlink, Inc.","Eastman Chemical Company","Eastman Kodak Company","Eaton Corporation","Echostar Communications Corporation","Ecolab Inc.","Edison International","EGL Inc.","El Paso Corporation","Electronic Arts Inc.","Electronic Data Systems Corp.","Eli Lilly and Company","EMC Corporation","Emcor Group Inc.","Emerson Electric Co.","Encompass Services Corporation","Energizer Holdings Inc.","Energy East Corporation","Engelhard Corporation","Enron Corp.","Entergy Corporation","Enterprise Products Partners L.P.","EOG Resources, Inc.","Equifax Inc.","Equitable Resources Inc.","Equity Office Properties Trust","Equity Residential Properties Trust","Estee Lauder Companies Inc.","Exelon Corporation","Exide Technologies","Expeditors International of Washington Inc.","Express Scripts Inc.","ExxonMobil Corporation","Fairchild Semiconductor International Inc.","Family Dollar Stores Inc.","Farmland Industries Inc.","Federal Mogul Corp.","Federated Department Stores Inc.","Federal Express Corp.","Felcor Lodging Trust Inc.","Ferro Corp.","Fidelity National Financial Inc.","Fifth Third Bancorp","First American Financial Corp.","First Data Corp.","First National of Nebraska Inc.","First Tennessee National Corp.","FirstEnergy Corp.","Fiserv Inc.","Fisher Scientific International Inc.","FleetBoston Financial Co.","Fleetwood Enterprises Inc.","Fleming Companies Inc.","Flowers Foods Inc.","Flowserv Corp","Fluor Corp","FMC Corp","Foamex International Inc","Foot Locker Inc","Footstar Inc.","Ford Motor Co","Forest Laboratories Inc.","Fortune Brands Inc.","Foster Wheeler Ltd.","FPL Group Inc.","Franklin Resources Inc.","Freeport McMoran Copper & Gold Inc.","Frontier Oil Corp","Furniture Brands International Inc.","Gannett Co., Inc.","Gap Inc.","Gateway Inc.","GATX Corporation","Gemstar-TV Guide International Inc.","GenCorp Inc.","General Cable Corporation","General Dynamics Corporation","General Electric Company","General Mills Inc","General Motors Corporation","Genesis Health Ventures Inc.","Gentek Inc.","Gentiva Health Services Inc.","Genuine Parts Company","Genuity Inc.","Genzyme Corporation","Georgia Gulf Corporation","Georgia-Pacific Corporation","Gillette Company","Gold Kist Inc.","Golden State Bancorp Inc.","Golden West Financial Corporation","Goldman Sachs Group Inc.","Goodrich Corporation","The Goodyear Tire & Rubber Company","Granite Construction Incorporated","Graybar Electric Company Inc.","Great Lakes Chemical Corporation","Great Plains Energy Inc.","GreenPoint Financial Corp.","Greif Bros. Corporation","Grey Global Group Inc.","Group 1 Automotive Inc.","Guidant Corporation","H&R Block Inc.","H.B. Fuller Company","H.J. Heinz Company","Halliburton Co.","Harley-Davidson Inc.","Harman International Industries Inc.","Harrah's Entertainment Inc.","Harris Corp.","Harsco Corp.","Hartford Financial Services Group Inc.","Hasbro Inc.","Hawaiian Electric Industries Inc.","HCA Inc.","Health Management Associates Inc.","Health Net Inc.","Healthsouth Corp","Henry Schein Inc.","Hercules Inc.","Herman Miller Inc.","Hershey Foods Corp.","Hewlett-Packard Company","Hibernia Corp.","Hillenbrand Industries Inc.","Hilton Hotels Corp.","Hollywood Entertainment Corp.","Home Depot Inc.","Hon Industries Inc.","Honeywell International Inc.","Hormel Foods Corp.","Host Marriott Corp.","Household International Corp.","Hovnanian Enterprises Inc.","Hub Group Inc.","Hubbell Inc.","Hughes Supply Inc.","Humana Inc.","Huntington Bancshares Inc.","Idacorp Inc.","IDT Corporation","IKON Office Solutions Inc.","Illinois Tool Works Inc.","IMC Global Inc.","Imperial Sugar Company","IMS Health Inc.","Ingles Market Inc","Ingram Micro Inc.","Insight Enterprises Inc.","Integrated Electrical Services Inc.","Intel Corporation","International Paper Co.","Interpublic Group of Companies Inc.","Interstate Bakeries Corporation","International Business Machines Corp.","International Flavors & Fragrances Inc.","International Multifoods Corporation","Intuit Inc.","IT Group Inc.","ITT Industries Inc.","Ivax Corp.","J.B. Hunt Transport Services Inc.","J.C. Penny Co.","J.P. Morgan Chase & Co.","Jabil Circuit Inc.","Jack In The Box Inc.","Jacobs Engineering Group Inc.","JDS Uniphase Corp.","Jefferson-Pilot Co.","John Hancock Financial Services Inc.","Johnson & Johnson","Johnson Controls Inc.","Jones Apparel Group Inc.","KB Home","Kellogg Company","Kellwood Company","Kelly Services Inc.","Kemet Corp.","Kennametal Inc.","Kerr-McGee Corporation","KeyCorp","KeySpan Corp.","Kimball International Inc.","Kimberly-Clark Corporation","Kindred Healthcare Inc.","KLA-Tencor Corporation","K-Mart Corp.","Knight-Ridder Inc.","Kohl's Corp.","KPMG Consulting Inc.","Kroger Co.","L-3 Communications Holdings Inc.","Laboratory Corporation of America Holdings","Lam Research Corporation","LandAmerica Financial Group Inc.","Lands' End Inc.","Landstar System Inc.","La-Z-Boy Inc.","Lear Corporation","Legg Mason Inc.","Leggett & Platt Inc.","Lehman Brothers Holdings Inc.","Lennar Corporation","Lennox International Inc.","Level 3 Communications Inc.","Levi Strauss & Co.","Lexmark International Inc.","Limited Inc.","Lincoln National Corporation","Linens 'n Things Inc.","Lithia Motors Inc.","Liz Claiborne Inc.","Lockheed Martin Corporation","Loews Corporation","Longs Drug Stores Corporation","Louisiana-Pacific Corporation","Lowe's Companies Inc.","LSI Logic Corporation","The LTV Corporation","The Lubrizol Corporation","Lucent Technologies Inc.","Lyondell Chemical Company","M & T Bank Corporation","Magellan Health Services Inc.","Mail-Well Inc.","Mandalay Resort Group","Manor Care Inc.","Manpower Inc.","Marathon Oil Corporation","Mariner Health Care Inc.","Markel Corporation","Marriott International Inc.","Marsh & McLennan Companies Inc.","Marsh Supermarkets Inc.","Marshall & Ilsley Corporation","Martin Marietta Materials Inc.","Masco Corporation","Massey Energy Company","MasTec Inc.","Mattel Inc.","Maxim Integrated Products Inc.","Maxtor Corporation","Maxxam Inc.","The May Department Stores Company","Maytag Corporation","MBNA Corporation","McCormick & Company Incorporated","McDonald's Corporation","The McGraw-Hill Companies Inc.","McKesson Corporation","McLeodUSA Incorporated","M.D.C. Holdings Inc.","MDU Resources Group Inc.","MeadWestvaco Corporation","Medtronic Inc.","Mellon Financial Corporation","The Men's Wearhouse Inc.","Merck & Co., Inc.","Mercury General Corporation","Merrill Lynch & Co. Inc.","Metaldyne Corporation","Metals USA Inc.","MetLife Inc.","Metris Companies Inc","MGIC Investment Corporation","MGM Mirage","Michaels Stores Inc.","Micron Technology Inc.","Microsoft Corporation","Milacron Inc.","Millennium Chemicals Inc.","Mirant Corporation","Mohawk Industries Inc.","Molex Incorporated","The MONY Group Inc.","Morgan Stanley Dean Witter & Co.","Motorola Inc.","MPS Group Inc.","Murphy Oil Corporation","Nabors Industries Inc","Nacco Industries Inc","Nash Finch Company","National City Corp.","National Commerce Financial Corporation","National Fuel Gas Company","National Oilwell Inc","National Rural Utilities Cooperative Finance Corporation","National Semiconductor Corporation","National Service Industries Inc","Navistar International Corporation","NCR Corporation","The Neiman Marcus Group Inc.","New Jersey Resources Corporation","New York Times Company","Newell Rubbermaid Inc","Newmont Mining Corporation","Nextel Communications Inc","Nicor Inc","Nike Inc","NiSource Inc","Noble Energy Inc","Nordstrom Inc","Norfolk Southern Corporation","Nortek Inc","North Fork Bancorporation Inc","Northeast Utilities System","Northern Trust Corporation","Northrop Grumman Corporation","NorthWestern Corporation","Novellus Systems Inc","NSTAR","NTL Incorporated","Nucor Corp","Nvidia Corp","NVR Inc","Northwest Airlines Corp","Occidental Petroleum Corp","Ocean Energy Inc","Office Depot Inc.","OfficeMax Inc","OGE Energy Corp","Oglethorpe Power Corp.","Ohio Casualty Corp.","Old Republic International Corp.","Olin Corp.","OM Group Inc","Omnicare Inc","Omnicom Group","On Semiconductor Corp","ONEOK Inc","Oracle Corp","Oshkosh Truck Corp","Outback Steakhouse Inc.","Owens & Minor Inc.","Owens Corning","Owens-Illinois Inc","Oxford Health Plans Inc","Paccar Inc","PacifiCare Health Systems Inc","Packaging Corp. of America","Pactiv Corp","Pall Corp","Pantry Inc","Park Place Entertainment Corp","Parker Hannifin Corp.","Pathmark Stores Inc.","Paychex Inc","Payless Shoesource Inc","Penn Traffic Co.","Pennzoil-Quaker State Company","Pentair Inc","Peoples Energy Corp.","PeopleSoft Inc","Pep Boys Manny, Moe & Jack","Potomac Electric Power Co.","Pepsi Bottling Group Inc.","PepsiAmericas Inc.","PepsiCo Inc.","Performance Food Group Co.","Perini Corp","PerkinElmer Inc","Perot Systems Corp","Petco Animal Supplies Inc.","Peter Kiewit Sons', Inc.","PETsMART Inc","Pfizer Inc","Pacific Gas & Electric Corp.","Pharmacia Corp","Phar Mor Inc.","Phelps Dodge Corp.","Philip Morris Companies Inc.","Phillips Petroleum Co","Phillips Van Heusen Corp.","Phoenix Companies Inc","Pier 1 Imports Inc.","Pilgrim's Pride Corporation","Pinnacle West Capital Corp","Pioneer-Standard Electronics Inc.","Pitney Bowes Inc.","Pittston Brinks Group","Plains All American Pipeline LP","PNC Financial Services Group Inc.","PNM Resources Inc","Polaris Industries Inc.","Polo Ralph Lauren Corp","PolyOne Corp","Popular Inc","Potlatch Corp","PPG Industries Inc","PPL Corp","Praxair Inc","Precision Castparts Corp","Premcor Inc.","Pride International Inc","Primedia Inc","Principal Financial Group Inc.","Procter & Gamble Co.","Pro-Fac Cooperative Inc.","Progress Energy Inc","Progressive Corporation","Protective Life Corp","Provident Financial Group","Providian Financial Corp.","Prudential Financial Inc.","PSS World Medical Inc","Public Service Enterprise Group Inc.","Publix Super Markets Inc.","Puget Energy Inc.","Pulte Homes Inc","Qualcomm Inc","Quanta Services Inc.","Quantum Corp","Quest Diagnostics Inc.","Questar Corp","Quintiles Transnational","Qwest Communications Intl Inc","R.J. Reynolds Tobacco Company","R.R. Donnelley & Sons Company","Radio Shack Corporation","Raymond James Financial Inc.","Raytheon Company","Reader's Digest Association Inc.","Reebok International Ltd.","Regions Financial Corp.","Regis Corporation","Reliance Steel & Aluminum Co.","Reliant Energy Inc.","Rent A Center Inc","Republic Services Inc","Revlon Inc","RGS Energy Group Inc","Rite Aid Corp","Riverwood Holding Inc.","RoadwayCorp","Robert Half International Inc.","Rock-Tenn Co","Rockwell Automation Inc","Rockwell Collins Inc","Rohm & Haas Co.","Ross Stores Inc","RPM Inc.","Ruddick Corp","Ryder System Inc","Ryerson Tull Inc","Ryland Group Inc.","Sabre Holdings Corp","Safeco Corp","Safeguard Scientifics Inc.","Safeway Inc","Saks Inc","Sanmina-SCI Inc","Sara Lee Corp","SBC Communications Inc","Scana Corp.","Schering-Plough Corp","Scholastic Corp","SCI Systems Onc.","Science Applications Intl. Inc.","Scientific-Atlanta Inc","Scotts Company","Seaboard Corp","Sealed Air Corp","Sears Roebuck & Co","Sempra Energy","Sequa Corp","Service Corp. International","ServiceMaster Co","Shaw Group Inc","Sherwin-Williams Company","Shopko Stores Inc","Siebel Systems Inc","Sierra Health Services Inc","Sierra Pacific Resources","Silgan Holdings Inc.","Silicon Graphics Inc","Simon Property Group Inc","SLM Corporation","Smith International Inc","Smithfield Foods Inc","Smurfit-Stone Container Corp","Snap-On Inc","Solectron Corp","Solutia Inc","Sonic Automotive Inc.","Sonoco Products Co.","Southern Company","Southern Union Company","SouthTrust Corp.","Southwest Airlines Co","Southwest Gas Corp","Sovereign Bancorp Inc.","Spartan Stores Inc","Spherion Corp","Sports Authority Inc","Sprint Corp.","SPX Corp","St. Jude Medical Inc","St. Paul Cos.","Staff Leasing Inc.","StanCorp Financial Group Inc","Standard Pacific Corp.","Stanley Works","Staples Inc","Starbucks Corp","Starwood Hotels & Resorts Worldwide Inc","State Street Corp.","Stater Bros. Holdings Inc.","Steelcase Inc","Stein Mart Inc","Stewart & Stevenson Services Inc","Stewart Information Services Corp","Stilwell Financial Inc","Storage Technology Corporation","Stryker Corp","Sun Healthcare Group Inc.","Sun Microsystems Inc.","SunGard Data Systems Inc.","Sunoco Inc.","SunTrust Banks Inc","Supervalu Inc","Swift Transportation, Co., Inc","Symbol Technologies Inc","Synovus Financial Corp.","Sysco Corp","Systemax Inc.","Target Corp.","Tech Data Corporation","TECO Energy Inc","Tecumseh Products Company","Tektronix Inc","Teleflex Incorporated","Telephone & Data Systems Inc","Tellabs Inc.","Temple-Inland Inc","Tenet Healthcare Corporation","Tenneco Automotive Inc.","Teradyne Inc","Terex Corp","Tesoro Petroleum Corp.","Texas Industries Inc.","Texas Instruments Incorporated","Textron Inc","Thermo Electron Corporation","Thomas & Betts Corporation","Tiffany & Co","Timken Company","TJX Companies Inc","TMP Worldwide Inc","Toll Brothers Inc","Torchmark Corporation","Toro Company","Tower Automotive Inc.","Toys 'R' Us Inc","Trans World Entertainment Corp.","TransMontaigne Inc","Transocean Inc","TravelCenters of America Inc.","Triad Hospitals Inc","Tribune Company","Trigon Healthcare Inc.","Trinity Industries Inc","Trump Hotels & Casino Resorts Inc.","TruServ Corporation","TRW Inc","TXU Corp","Tyson Foods Inc","U.S. Bancorp","U.S. Industries Inc.","UAL Corporation","UGI Corporation","Unified Western Grocers Inc","Union Pacific Corporation","Union Planters Corp","Unisource Energy Corp","Unisys Corporation","United Auto Group Inc","United Defense Industries Inc.","United Parcel Service Inc","United Rentals Inc","United Stationers Inc","United Technologies Corporation","UnitedHealth Group Incorporated","Unitrin Inc","Universal Corporation","Universal Forest Products Inc","Universal Health Services Inc","Unocal Corporation","Unova Inc","UnumProvident Corporation","URS Corporation","US Airways Group Inc","US Oncology Inc","USA Interactive","USFreighways Corporation","USG Corporation","UST Inc","Valero Energy Corporation","Valspar Corporation","Value City Department Stores Inc","Varco International Inc","Vectren Corporation","Veritas Software Corporation","Verizon Communications Inc","VF Corporation","Viacom Inc","Viad Corp","Viasystems Group Inc","Vishay Intertechnology Inc","Visteon Corporation","Volt Information Sciences Inc","Vulcan Materials Company","W.R. Berkley Corporation","W.R. Grace & Co","W.W. Grainger Inc","Wachovia Corporation","Wakenhut Corporation","Walgreen Co","Wallace Computer Services Inc","Wal-Mart Stores Inc","Walt Disney Co","Walter Industries Inc","Washington Mutual Inc","Washington Post Co.","Waste Management Inc","Watsco Inc","Weatherford International Inc","Weis Markets Inc.","Wellpoint Health Networks Inc","Wells Fargo & Company","Wendy's International Inc","Werner Enterprises Inc","WESCO International Inc","Western Digital Inc","Western Gas Resources Inc","WestPoint Stevens Inc","Weyerhauser Company","WGL Holdings Inc","Whirlpool Corporation","Whole Foods Market Inc","Willamette Industries Inc.","Williams Companies Inc","Williams Sonoma Inc","Winn Dixie Stores Inc","Wisconsin Energy Corporation","Wm Wrigley Jr Company","World Fuel Services Corporation","WorldCom Inc","Worthington Industries Inc","WPS Resources Corporation","Wyeth","Wyndham International Inc","Xcel Energy Inc","Xerox Corp","Xilinx Inc","XO Communications Inc","Yellow Corporation","York International Corp","Yum Brands Inc.","Zale Corporation","Zions Bancorporation"],fileExtension:{raster:["bmp","gif","gpl","ico","jpeg","psd","png","psp","raw","tiff"],vector:["3dv","amf","awg","ai","cgm","cdr","cmx","dxf","e2d","egt","eps","fs","odg","svg","xar"],"3d":["3dmf","3dm","3mf","3ds","an8","aoi","blend","cal3d","cob","ctm","iob","jas","max","mb","mdx","obj","x","x3d"],document:["doc","docx","dot","html","xml","odt","odm","ott","csv","rtf","tex","xhtml","xps"]},timezones:[{name:"Dateline Standard Time",abbr:"DST",offset:-12,isdst:!1,text:"(UTC-12:00) International Date Line West",utc:["Etc/GMT+12"]},{name:"UTC-11",abbr:"U",offset:-11,isdst:!1,text:"(UTC-11:00) Coordinated Universal Time-11",utc:["Etc/GMT+11","Pacific/Midway","Pacific/Niue","Pacific/Pago_Pago"]},{name:"Hawaiian Standard Time",abbr:"HST",offset:-10,isdst:!1,text:"(UTC-10:00) Hawaii",utc:["Etc/GMT+10","Pacific/Honolulu","Pacific/Johnston","Pacific/Rarotonga","Pacific/Tahiti"]},{name:"Alaskan Standard Time",abbr:"AKDT",offset:-8,isdst:!0,text:"(UTC-09:00) Alaska",utc:["America/Anchorage","America/Juneau","America/Nome","America/Sitka","America/Yakutat"]},{name:"Pacific Standard Time (Mexico)",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-08:00) Baja California",utc:["America/Santa_Isabel"]},{name:"Pacific Daylight Time",abbr:"PDT",offset:-7,isdst:!0,text:"(UTC-07:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse"]},{name:"Pacific Standard Time",abbr:"PST",offset:-8,isdst:!1,text:"(UTC-08:00) Pacific Time (US & Canada)",utc:["America/Dawson","America/Los_Angeles","America/Tijuana","America/Vancouver","America/Whitehorse","PST8PDT"]},{name:"US Mountain Standard Time",abbr:"UMST",offset:-7,isdst:!1,text:"(UTC-07:00) Arizona",utc:["America/Creston","America/Dawson_Creek","America/Hermosillo","America/Phoenix","Etc/GMT+7"]},{name:"Mountain Standard Time (Mexico)",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Chihuahua, La Paz, Mazatlan",utc:["America/Chihuahua","America/Mazatlan"]},{name:"Mountain Standard Time",abbr:"MDT",offset:-6,isdst:!0,text:"(UTC-07:00) Mountain Time (US & Canada)",utc:["America/Boise","America/Cambridge_Bay","America/Denver","America/Edmonton","America/Inuvik","America/Ojinaga","America/Yellowknife","MST7MDT"]},{name:"Central America Standard Time",abbr:"CAST",offset:-6,isdst:!1,text:"(UTC-06:00) Central America",utc:["America/Belize","America/Costa_Rica","America/El_Salvador","America/Guatemala","America/Managua","America/Tegucigalpa","Etc/GMT+6","Pacific/Galapagos"]},{name:"Central Standard Time",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Central Time (US & Canada)",utc:["America/Chicago","America/Indiana/Knox","America/Indiana/Tell_City","America/Matamoros","America/Menominee","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Rainy_River","America/Rankin_Inlet","America/Resolute","America/Winnipeg","CST6CDT"]},{name:"Central Standard Time (Mexico)",abbr:"CDT",offset:-5,isdst:!0,text:"(UTC-06:00) Guadalajara, Mexico City, Monterrey",utc:["America/Bahia_Banderas","America/Cancun","America/Merida","America/Mexico_City","America/Monterrey"]},{name:"Canada Central Standard Time",abbr:"CCST",offset:-6,isdst:!1,text:"(UTC-06:00) Saskatchewan",utc:["America/Regina","America/Swift_Current"]},{name:"SA Pacific Standard Time",abbr:"SPST",offset:-5,isdst:!1,text:"(UTC-05:00) Bogota, Lima, Quito",utc:["America/Bogota","America/Cayman","America/Coral_Harbour","America/Eirunepe","America/Guayaquil","America/Jamaica","America/Lima","America/Panama","America/Rio_Branco","Etc/GMT+5"]},{name:"Eastern Standard Time",abbr:"EDT",offset:-4,isdst:!0,text:"(UTC-05:00) Eastern Time (US & Canada)",utc:["America/Detroit","America/Havana","America/Indiana/Petersburg","America/Indiana/Vincennes","America/Indiana/Winamac","America/Iqaluit","America/Kentucky/Monticello","America/Louisville","America/Montreal","America/Nassau","America/New_York","America/Nipigon","America/Pangnirtung","America/Port-au-Prince","America/Thunder_Bay","America/Toronto","EST5EDT"]},{name:"US Eastern Standard Time",abbr:"UEDT",offset:-4,isdst:!0,text:"(UTC-05:00) Indiana (East)",utc:["America/Indiana/Marengo","America/Indiana/Vevay","America/Indianapolis"]},{name:"Venezuela Standard Time",abbr:"VST",offset:-4.5,isdst:!1,text:"(UTC-04:30) Caracas",utc:["America/Caracas"]},{name:"Paraguay Standard Time",abbr:"PYT",offset:-4,isdst:!1,text:"(UTC-04:00) Asuncion",utc:["America/Asuncion"]},{name:"Atlantic Standard Time",abbr:"ADT",offset:-3,isdst:!0,text:"(UTC-04:00) Atlantic Time (Canada)",utc:["America/Glace_Bay","America/Goose_Bay","America/Halifax","America/Moncton","America/Thule","Atlantic/Bermuda"]},{name:"Central Brazilian Standard Time",abbr:"CBST",offset:-4,isdst:!1,text:"(UTC-04:00) Cuiaba",utc:["America/Campo_Grande","America/Cuiaba"]},{name:"SA Western Standard Time",abbr:"SWST",offset:-4,isdst:!1,text:"(UTC-04:00) Georgetown, La Paz, Manaus, San Juan",utc:["America/Anguilla","America/Antigua","America/Aruba","America/Barbados","America/Blanc-Sablon","America/Boa_Vista","America/Curacao","America/Dominica","America/Grand_Turk","America/Grenada","America/Guadeloupe","America/Guyana","America/Kralendijk","America/La_Paz","America/Lower_Princes","America/Manaus","America/Marigot","America/Martinique","America/Montserrat","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Santo_Domingo","America/St_Barthelemy","America/St_Kitts","America/St_Lucia","America/St_Thomas","America/St_Vincent","America/Tortola","Etc/GMT+4"]},{name:"Pacific SA Standard Time",abbr:"PSST",offset:-4,isdst:!1,text:"(UTC-04:00) Santiago",utc:["America/Santiago","Antarctica/Palmer"]},{name:"Newfoundland Standard Time",abbr:"NDT",offset:-2.5,isdst:!0,text:"(UTC-03:30) Newfoundland",utc:["America/St_Johns"]},{name:"E. South America Standard Time",abbr:"ESAST",offset:-3,isdst:!1,text:"(UTC-03:00) Brasilia",utc:["America/Sao_Paulo"]},{name:"Argentina Standard Time",abbr:"AST",offset:-3,isdst:!1,text:"(UTC-03:00) Buenos Aires",utc:["America/Argentina/La_Rioja","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Buenos_Aires","America/Catamarca","America/Cordoba","America/Jujuy","America/Mendoza"]},{name:"SA Eastern Standard Time",abbr:"SEST",offset:-3,isdst:!1,text:"(UTC-03:00) Cayenne, Fortaleza",utc:["America/Araguaina","America/Belem","America/Cayenne","America/Fortaleza","America/Maceio","America/Paramaribo","America/Recife","America/Santarem","Antarctica/Rothera","Atlantic/Stanley","Etc/GMT+3"]},{name:"Greenland Standard Time",abbr:"GDT",offset:-3,isdst:!0,text:"(UTC-03:00) Greenland",utc:["America/Godthab"]},{name:"Montevideo Standard Time",abbr:"MST",offset:-3,isdst:!1,text:"(UTC-03:00) Montevideo",utc:["America/Montevideo"]},{name:"Bahia Standard Time",abbr:"BST",offset:-3,isdst:!1,text:"(UTC-03:00) Salvador",utc:["America/Bahia"]},{name:"UTC-02",abbr:"U",offset:-2,isdst:!1,text:"(UTC-02:00) Coordinated Universal Time-02",utc:["America/Noronha","Atlantic/South_Georgia","Etc/GMT+2"]},{name:"Mid-Atlantic Standard Time",abbr:"MDT",offset:-1,isdst:!0,text:"(UTC-02:00) Mid-Atlantic - Old",utc:[]},{name:"Azores Standard Time",abbr:"ADT",offset:0,isdst:!0,text:"(UTC-01:00) Azores",utc:["America/Scoresbysund","Atlantic/Azores"]},{name:"Cape Verde Standard Time",abbr:"CVST",offset:-1,isdst:!1,text:"(UTC-01:00) Cape Verde Is.",utc:["Atlantic/Cape_Verde","Etc/GMT+1"]},{name:"Morocco Standard Time",abbr:"MDT",offset:1,isdst:!0,text:"(UTC) Casablanca",utc:["Africa/Casablanca","Africa/El_Aaiun"]},{name:"UTC",abbr:"UTC",offset:0,isdst:!1,text:"(UTC) Coordinated Universal Time",utc:["America/Danmarkshavn","Etc/GMT"]},{name:"GMT Standard Time",abbr:"GMT",offset:0,isdst:!1,text:"(UTC) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{name:"British Summer Time",abbr:"BST",offset:1,isdst:!0,text:"(UTC+01:00) Edinburgh, London",utc:["Europe/Isle_of_Man","Europe/Guernsey","Europe/Jersey","Europe/London"]},{name:"GMT Standard Time",abbr:"GDT",offset:1,isdst:!0,text:"(UTC) Dublin, Lisbon",utc:["Atlantic/Canary","Atlantic/Faeroe","Atlantic/Madeira","Europe/Dublin","Europe/Lisbon"]},{name:"Greenwich Standard Time",abbr:"GST",offset:0,isdst:!1,text:"(UTC) Monrovia, Reykjavik",utc:["Africa/Abidjan","Africa/Accra","Africa/Bamako","Africa/Banjul","Africa/Bissau","Africa/Conakry","Africa/Dakar","Africa/Freetown","Africa/Lome","Africa/Monrovia","Africa/Nouakchott","Africa/Ouagadougou","Africa/Sao_Tome","Atlantic/Reykjavik","Atlantic/St_Helena"]},{name:"W. Europe Standard Time",abbr:"WEDT",offset:2,isdst:!0,text:"(UTC+01:00) Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna",utc:["Arctic/Longyearbyen","Europe/Amsterdam","Europe/Andorra","Europe/Berlin","Europe/Busingen","Europe/Gibraltar","Europe/Luxembourg","Europe/Malta","Europe/Monaco","Europe/Oslo","Europe/Rome","Europe/San_Marino","Europe/Stockholm","Europe/Vaduz","Europe/Vatican","Europe/Vienna","Europe/Zurich"]},{name:"Central Europe Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Belgrade, Bratislava, Budapest, Ljubljana, Prague",utc:["Europe/Belgrade","Europe/Bratislava","Europe/Budapest","Europe/Ljubljana","Europe/Podgorica","Europe/Prague","Europe/Tirane"]},{name:"Romance Standard Time",abbr:"RDT",offset:2,isdst:!0,text:"(UTC+01:00) Brussels, Copenhagen, Madrid, Paris",utc:["Africa/Ceuta","Europe/Brussels","Europe/Copenhagen","Europe/Madrid","Europe/Paris"]},{name:"Central European Standard Time",abbr:"CEDT",offset:2,isdst:!0,text:"(UTC+01:00) Sarajevo, Skopje, Warsaw, Zagreb",utc:["Europe/Sarajevo","Europe/Skopje","Europe/Warsaw","Europe/Zagreb"]},{name:"W. Central Africa Standard Time",abbr:"WCAST",offset:1,isdst:!1,text:"(UTC+01:00) West Central Africa",utc:["Africa/Algiers","Africa/Bangui","Africa/Brazzaville","Africa/Douala","Africa/Kinshasa","Africa/Lagos","Africa/Libreville","Africa/Luanda","Africa/Malabo","Africa/Ndjamena","Africa/Niamey","Africa/Porto-Novo","Africa/Tunis","Etc/GMT-1"]},{name:"Namibia Standard Time",abbr:"NST",offset:1,isdst:!1,text:"(UTC+01:00) Windhoek",utc:["Africa/Windhoek"]},{name:"GTB Standard Time",abbr:"GDT",offset:3,isdst:!0,text:"(UTC+02:00) Athens, Bucharest",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau"]},{name:"Middle East Standard Time",abbr:"MEDT",offset:3,isdst:!0,text:"(UTC+02:00) Beirut",utc:["Asia/Beirut"]},{name:"Egypt Standard Time",abbr:"EST",offset:2,isdst:!1,text:"(UTC+02:00) Cairo",utc:["Africa/Cairo"]},{name:"Syria Standard Time",abbr:"SDT",offset:3,isdst:!0,text:"(UTC+02:00) Damascus",utc:["Asia/Damascus"]},{name:"E. Europe Standard Time",abbr:"EEDT",offset:3,isdst:!0,text:"(UTC+02:00) E. Europe",utc:["Asia/Nicosia","Europe/Athens","Europe/Bucharest","Europe/Chisinau","Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Nicosia","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"South Africa Standard Time",abbr:"SAST",offset:2,isdst:!1,text:"(UTC+02:00) Harare, Pretoria",utc:["Africa/Blantyre","Africa/Bujumbura","Africa/Gaborone","Africa/Harare","Africa/Johannesburg","Africa/Kigali","Africa/Lubumbashi","Africa/Lusaka","Africa/Maputo","Africa/Maseru","Africa/Mbabane","Etc/GMT-2"]},{name:"FLE Standard Time",abbr:"FDT",offset:3,isdst:!0,text:"(UTC+02:00) Helsinki, Kyiv, Riga, Sofia, Tallinn, Vilnius",utc:["Europe/Helsinki","Europe/Kiev","Europe/Mariehamn","Europe/Riga","Europe/Sofia","Europe/Tallinn","Europe/Uzhgorod","Europe/Vilnius","Europe/Zaporozhye"]},{name:"Turkey Standard Time",abbr:"TDT",offset:3,isdst:!1,text:"(UTC+03:00) Istanbul",utc:["Europe/Istanbul"]},{name:"Israel Standard Time",abbr:"JDT",offset:3,isdst:!0,text:"(UTC+02:00) Jerusalem",utc:["Asia/Jerusalem"]},{name:"Libya Standard Time",abbr:"LST",offset:2,isdst:!1,text:"(UTC+02:00) Tripoli",utc:["Africa/Tripoli"]},{name:"Jordan Standard Time",abbr:"JST",offset:3,isdst:!1,text:"(UTC+03:00) Amman",utc:["Asia/Amman"]},{name:"Arabic Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Baghdad",utc:["Asia/Baghdad"]},{name:"Kaliningrad Standard Time",abbr:"KST",offset:3,isdst:!1,text:"(UTC+02:00) Kaliningrad",utc:["Europe/Kaliningrad"]},{name:"Arab Standard Time",abbr:"AST",offset:3,isdst:!1,text:"(UTC+03:00) Kuwait, Riyadh",utc:["Asia/Aden","Asia/Bahrain","Asia/Kuwait","Asia/Qatar","Asia/Riyadh"]},{name:"E. Africa Standard Time",abbr:"EAST",offset:3,isdst:!1,text:"(UTC+03:00) Nairobi",utc:["Africa/Addis_Ababa","Africa/Asmera","Africa/Dar_es_Salaam","Africa/Djibouti","Africa/Juba","Africa/Kampala","Africa/Khartoum","Africa/Mogadishu","Africa/Nairobi","Antarctica/Syowa","Etc/GMT-3","Indian/Antananarivo","Indian/Comoro","Indian/Mayotte"]},{name:"Moscow Standard Time",abbr:"MSK",offset:3,isdst:!1,text:"(UTC+03:00) Moscow, St. Petersburg, Volgograd, Minsk",utc:["Europe/Kirov","Europe/Moscow","Europe/Simferopol","Europe/Volgograd","Europe/Minsk"]},{name:"Samara Time",abbr:"SAMT",offset:4,isdst:!1,text:"(UTC+04:00) Samara, Ulyanovsk, Saratov",utc:["Europe/Astrakhan","Europe/Samara","Europe/Ulyanovsk"]},{name:"Iran Standard Time",abbr:"IDT",offset:4.5,isdst:!0,text:"(UTC+03:30) Tehran",utc:["Asia/Tehran"]},{name:"Arabian Standard Time",abbr:"AST",offset:4,isdst:!1,text:"(UTC+04:00) Abu Dhabi, Muscat",utc:["Asia/Dubai","Asia/Muscat","Etc/GMT-4"]},{name:"Azerbaijan Standard Time",abbr:"ADT",offset:5,isdst:!0,text:"(UTC+04:00) Baku",utc:["Asia/Baku"]},{name:"Mauritius Standard Time",abbr:"MST",offset:4,isdst:!1,text:"(UTC+04:00) Port Louis",utc:["Indian/Mahe","Indian/Mauritius","Indian/Reunion"]},{name:"Georgian Standard Time",abbr:"GET",offset:4,isdst:!1,text:"(UTC+04:00) Tbilisi",utc:["Asia/Tbilisi"]},{name:"Caucasus Standard Time",abbr:"CST",offset:4,isdst:!1,text:"(UTC+04:00) Yerevan",utc:["Asia/Yerevan"]},{name:"Afghanistan Standard Time",abbr:"AST",offset:4.5,isdst:!1,text:"(UTC+04:30) Kabul",utc:["Asia/Kabul"]},{name:"West Asia Standard Time",abbr:"WAST",offset:5,isdst:!1,text:"(UTC+05:00) Ashgabat, Tashkent",utc:["Antarctica/Mawson","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Dushanbe","Asia/Oral","Asia/Samarkand","Asia/Tashkent","Etc/GMT-5","Indian/Kerguelen","Indian/Maldives"]},{name:"Yekaterinburg Time",abbr:"YEKT",offset:5,isdst:!1,text:"(UTC+05:00) Yekaterinburg",utc:["Asia/Yekaterinburg"]},{name:"Pakistan Standard Time",abbr:"PKT",offset:5,isdst:!1,text:"(UTC+05:00) Islamabad, Karachi",utc:["Asia/Karachi"]},{name:"India Standard Time",abbr:"IST",offset:5.5,isdst:!1,text:"(UTC+05:30) Chennai, Kolkata, Mumbai, New Delhi",utc:["Asia/Kolkata"]},{name:"Sri Lanka Standard Time",abbr:"SLST",offset:5.5,isdst:!1,text:"(UTC+05:30) Sri Jayawardenepura",utc:["Asia/Colombo"]},{name:"Nepal Standard Time",abbr:"NST",offset:5.75,isdst:!1,text:"(UTC+05:45) Kathmandu",utc:["Asia/Kathmandu"]},{name:"Central Asia Standard Time",abbr:"CAST",offset:6,isdst:!1,text:"(UTC+06:00) Nur-Sultan (Astana)",utc:["Antarctica/Vostok","Asia/Almaty","Asia/Bishkek","Asia/Qyzylorda","Asia/Urumqi","Etc/GMT-6","Indian/Chagos"]},{name:"Bangladesh Standard Time",abbr:"BST",offset:6,isdst:!1,text:"(UTC+06:00) Dhaka",utc:["Asia/Dhaka","Asia/Thimphu"]},{name:"Myanmar Standard Time",abbr:"MST",offset:6.5,isdst:!1,text:"(UTC+06:30) Yangon (Rangoon)",utc:["Asia/Rangoon","Indian/Cocos"]},{name:"SE Asia Standard Time",abbr:"SAST",offset:7,isdst:!1,text:"(UTC+07:00) Bangkok, Hanoi, Jakarta",utc:["Antarctica/Davis","Asia/Bangkok","Asia/Hovd","Asia/Jakarta","Asia/Phnom_Penh","Asia/Pontianak","Asia/Saigon","Asia/Vientiane","Etc/GMT-7","Indian/Christmas"]},{name:"N. Central Asia Standard Time",abbr:"NCAST",offset:7,isdst:!1,text:"(UTC+07:00) Novosibirsk",utc:["Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk"]},{name:"China Standard Time",abbr:"CST",offset:8,isdst:!1,text:"(UTC+08:00) Beijing, Chongqing, Hong Kong, Urumqi",utc:["Asia/Hong_Kong","Asia/Macau","Asia/Shanghai"]},{name:"North Asia Standard Time",abbr:"NAST",offset:8,isdst:!1,text:"(UTC+08:00) Krasnoyarsk",utc:["Asia/Krasnoyarsk"]},{name:"Singapore Standard Time",abbr:"MPST",offset:8,isdst:!1,text:"(UTC+08:00) Kuala Lumpur, Singapore",utc:["Asia/Brunei","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Makassar","Asia/Manila","Asia/Singapore","Etc/GMT-8"]},{name:"W. Australia Standard Time",abbr:"WAST",offset:8,isdst:!1,text:"(UTC+08:00) Perth",utc:["Antarctica/Casey","Australia/Perth"]},{name:"Taipei Standard Time",abbr:"TST",offset:8,isdst:!1,text:"(UTC+08:00) Taipei",utc:["Asia/Taipei"]},{name:"Ulaanbaatar Standard Time",abbr:"UST",offset:8,isdst:!1,text:"(UTC+08:00) Ulaanbaatar",utc:["Asia/Choibalsan","Asia/Ulaanbaatar"]},{name:"North Asia East Standard Time",abbr:"NAEST",offset:8,isdst:!1,text:"(UTC+08:00) Irkutsk",utc:["Asia/Irkutsk"]},{name:"Japan Standard Time",abbr:"JST",offset:9,isdst:!1,text:"(UTC+09:00) Osaka, Sapporo, Tokyo",utc:["Asia/Dili","Asia/Jayapura","Asia/Tokyo","Etc/GMT-9","Pacific/Palau"]},{name:"Korea Standard Time",abbr:"KST",offset:9,isdst:!1,text:"(UTC+09:00) Seoul",utc:["Asia/Pyongyang","Asia/Seoul"]},{name:"Cen. Australia Standard Time",abbr:"CAST",offset:9.5,isdst:!1,text:"(UTC+09:30) Adelaide",utc:["Australia/Adelaide","Australia/Broken_Hill"]},{name:"AUS Central Standard Time",abbr:"ACST",offset:9.5,isdst:!1,text:"(UTC+09:30) Darwin",utc:["Australia/Darwin"]},{name:"E. Australia Standard Time",abbr:"EAST",offset:10,isdst:!1,text:"(UTC+10:00) Brisbane",utc:["Australia/Brisbane","Australia/Lindeman"]},{name:"AUS Eastern Standard Time",abbr:"AEST",offset:10,isdst:!1,text:"(UTC+10:00) Canberra, Melbourne, Sydney",utc:["Australia/Melbourne","Australia/Sydney"]},{name:"West Pacific Standard Time",abbr:"WPST",offset:10,isdst:!1,text:"(UTC+10:00) Guam, Port Moresby",utc:["Antarctica/DumontDUrville","Etc/GMT-10","Pacific/Guam","Pacific/Port_Moresby","Pacific/Saipan","Pacific/Truk"]},{name:"Tasmania Standard Time",abbr:"TST",offset:10,isdst:!1,text:"(UTC+10:00) Hobart",utc:["Australia/Currie","Australia/Hobart"]},{name:"Yakutsk Standard Time",abbr:"YST",offset:9,isdst:!1,text:"(UTC+09:00) Yakutsk",utc:["Asia/Chita","Asia/Khandyga","Asia/Yakutsk"]},{name:"Central Pacific Standard Time",abbr:"CPST",offset:11,isdst:!1,text:"(UTC+11:00) Solomon Is., New Caledonia",utc:["Antarctica/Macquarie","Etc/GMT-11","Pacific/Efate","Pacific/Guadalcanal","Pacific/Kosrae","Pacific/Noumea","Pacific/Ponape"]},{name:"Vladivostok Standard Time",abbr:"VST",offset:11,isdst:!1,text:"(UTC+11:00) Vladivostok",utc:["Asia/Sakhalin","Asia/Ust-Nera","Asia/Vladivostok"]},{name:"New Zealand Standard Time",abbr:"NZST",offset:12,isdst:!1,text:"(UTC+12:00) Auckland, Wellington",utc:["Antarctica/McMurdo","Pacific/Auckland"]},{name:"UTC+12",abbr:"U",offset:12,isdst:!1,text:"(UTC+12:00) Coordinated Universal Time+12",utc:["Etc/GMT-12","Pacific/Funafuti","Pacific/Kwajalein","Pacific/Majuro","Pacific/Nauru","Pacific/Tarawa","Pacific/Wake","Pacific/Wallis"]},{name:"Fiji Standard Time",abbr:"FST",offset:12,isdst:!1,text:"(UTC+12:00) Fiji",utc:["Pacific/Fiji"]},{name:"Magadan Standard Time",abbr:"MST",offset:12,isdst:!1,text:"(UTC+12:00) Magadan",utc:["Asia/Anadyr","Asia/Kamchatka","Asia/Magadan","Asia/Srednekolymsk"]},{name:"Kamchatka Standard Time",abbr:"KDT",offset:13,isdst:!0,text:"(UTC+12:00) Petropavlovsk-Kamchatsky - Old",utc:["Asia/Kamchatka"]},{name:"Tonga Standard Time",abbr:"TST",offset:13,isdst:!1,text:"(UTC+13:00) Nuku'alofa",utc:["Etc/GMT-13","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Tongatapu"]},{name:"Samoa Standard Time",abbr:"SST",offset:13,isdst:!1,text:"(UTC+13:00) Samoa",utc:["Pacific/Apia"]}],profession:["Airline Pilot","Academic Team","Accountant","Account Executive","Actor","Actuary","Acquisition Analyst","Administrative Asst.","Administrative Analyst","Administrator","Advertising Director","Aerospace Engineer","Agent","Agricultural Inspector","Agricultural Scientist","Air Traffic Controller","Animal Trainer","Anthropologist","Appraiser","Architect","Art Director","Artist","Astronomer","Athletic Coach","Auditor","Author","Baker","Banker","Bankruptcy Attorney","Benefits Manager","Biologist","Bio-feedback Specialist","Biomedical Engineer","Biotechnical Researcher","Broadcaster","Broker","Building Manager","Building Contractor","Building Inspector","Business Analyst","Business Planner","Business Manager","Buyer","Call Center Manager","Career Counselor","Cash Manager","Ceramic Engineer","Chief Executive Officer","Chief Operation Officer","Chef","Chemical Engineer","Chemist","Child Care Manager","Chief Medical Officer","Chiropractor","Cinematographer","City Housing Manager","City Manager","Civil Engineer","Claims Manager","Clinical Research Assistant","Collections Manager","Compliance Manager","Comptroller","Computer Manager","Commercial Artist","Communications Affairs Director","Communications Director","Communications Engineer","Compensation Analyst","Computer Programmer","Computer Ops. Manager","Computer Engineer","Computer Operator","Computer Graphics Specialist","Construction Engineer","Construction Manager","Consultant","Consumer Relations Manager","Contract Administrator","Copyright Attorney","Copywriter","Corporate Planner","Corrections Officer","Cosmetologist","Credit Analyst","Cruise Director","Chief Information Officer","Chief Technology Officer","Customer Service Manager","Cryptologist","Dancer","Data Security Manager","Database Manager","Day Care Instructor","Dentist","Designer","Design Engineer","Desktop Publisher","Developer","Development Officer","Diamond Merchant","Dietitian","Direct Marketer","Director","Distribution Manager","Diversity Manager","Economist","EEO Compliance Manager","Editor","Education Adminator","Electrical Engineer","Electro Optical Engineer","Electronics Engineer","Embassy Management","Employment Agent","Engineer Technician","Entrepreneur","Environmental Analyst","Environmental Attorney","Environmental Engineer","Environmental Specialist","Escrow Officer","Estimator","Executive Assistant","Executive Director","Executive Recruiter","Facilities Manager","Family Counselor","Fashion Events Manager","Fashion Merchandiser","Fast Food Manager","Film Producer","Film Production Assistant","Financial Analyst","Financial Planner","Financier","Fine Artist","Wildlife Specialist","Fitness Consultant","Flight Attendant","Flight Engineer","Floral Designer","Food & Beverage Director","Food Service Manager","Forestry Technician","Franchise Management","Franchise Sales","Fraud Investigator","Freelance Writer","Fund Raiser","General Manager","Geologist","General Counsel","Geriatric Specialist","Gerontologist","Glamour Photographer","Golf Club Manager","Gourmet Chef","Graphic Designer","Grounds Keeper","Hazardous Waste Manager","Health Care Manager","Health Therapist","Health Service Administrator","Hearing Officer","Home Economist","Horticulturist","Hospital Administrator","Hotel Manager","Human Resources Manager","Importer","Industrial Designer","Industrial Engineer","Information Director","Inside Sales","Insurance Adjuster","Interior Decorator","Internal Controls Director","International Acct.","International Courier","International Lawyer","Interpreter","Investigator","Investment Banker","Investment Manager","IT Architect","IT Project Manager","IT Systems Analyst","Jeweler","Joint Venture Manager","Journalist","Labor Negotiator","Labor Organizer","Labor Relations Manager","Lab Services Director","Lab Technician","Land Developer","Landscape Architect","Law Enforcement Officer","Lawyer","Lead Software Engineer","Lead Software Test Engineer","Leasing Manager","Legal Secretary","Library Manager","Litigation Attorney","Loan Officer","Lobbyist","Logistics Manager","Maintenance Manager","Management Consultant","Managed Care Director","Managing Partner","Manufacturing Director","Manpower Planner","Marine Biologist","Market Res. Analyst","Marketing Director","Materials Manager","Mathematician","Membership Chairman","Mechanic","Mechanical Engineer","Media Buyer","Medical Investor","Medical Secretary","Medical Technician","Mental Health Counselor","Merchandiser","Metallurgical Engineering","Meteorologist","Microbiologist","MIS Manager","Motion Picture Director","Multimedia Director","Musician","Network Administrator","Network Specialist","Network Operator","New Product Manager","Novelist","Nuclear Engineer","Nuclear Specialist","Nutritionist","Nursing Administrator","Occupational Therapist","Oceanographer","Office Manager","Operations Manager","Operations Research Director","Optical Technician","Optometrist","Organizational Development Manager","Outplacement Specialist","Paralegal","Park Ranger","Patent Attorney","Payroll Specialist","Personnel Specialist","Petroleum Engineer","Pharmacist","Photographer","Physical Therapist","Physician","Physician Assistant","Physicist","Planning Director","Podiatrist","Political Analyst","Political Scientist","Politician","Portfolio Manager","Preschool Management","Preschool Teacher","Principal","Private Banker","Private Investigator","Probation Officer","Process Engineer","Producer","Product Manager","Product Engineer","Production Engineer","Production Planner","Professional Athlete","Professional Coach","Professor","Project Engineer","Project Manager","Program Manager","Property Manager","Public Administrator","Public Safety Director","PR Specialist","Publisher","Purchasing Agent","Publishing Director","Quality Assurance Specialist","Quality Control Engineer","Quality Control Inspector","Radiology Manager","Railroad Engineer","Real Estate Broker","Recreational Director","Recruiter","Redevelopment Specialist","Regulatory Affairs Manager","Registered Nurse","Rehabilitation Counselor","Relocation Manager","Reporter","Research Specialist","Restaurant Manager","Retail Store Manager","Risk Analyst","Safety Engineer","Sales Engineer","Sales Trainer","Sales Promotion Manager","Sales Representative","Sales Manager","Service Manager","Sanitation Engineer","Scientific Programmer","Scientific Writer","Securities Analyst","Security Consultant","Security Director","Seminar Presenter","Ship's Officer","Singer","Social Director","Social Program Planner","Social Research","Social Scientist","Social Worker","Sociologist","Software Developer","Software Engineer","Software Test Engineer","Soil Scientist","Special Events Manager","Special Education Teacher","Special Projects Director","Speech Pathologist","Speech Writer","Sports Event Manager","Statistician","Store Manager","Strategic Alliance Director","Strategic Planning Director","Stress Reduction Specialist","Stockbroker","Surveyor","Structural Engineer","Superintendent","Supply Chain Director","System Engineer","Systems Analyst","Systems Programmer","System Administrator","Tax Specialist","Teacher","Technical Support Specialist","Technical Illustrator","Technical Writer","Technology Director","Telecom Analyst","Telemarketer","Theatrical Director","Title Examiner","Tour Escort","Tour Guide Director","Traffic Manager","Trainer Translator","Transportation Manager","Travel Agent","Treasurer","TV Programmer","Underwriter","Union Representative","University Administrator","University Dean","Urban Planner","Veterinarian","Vendor Relations Director","Viticulturist","Warehouse Manager"],animals:{ocean:["Acantharea","Anemone","Angelfish King","Ahi Tuna","Albacore","American Oyster","Anchovy","Armored Snail","Arctic Char","Atlantic Bluefin Tuna","Atlantic Cod","Atlantic Goliath Grouper","Atlantic Trumpetfish","Atlantic Wolffish","Baleen Whale","Banded Butterflyfish","Banded Coral Shrimp","Banded Sea Krait","Barnacle","Barndoor Skate","Barracuda","Basking Shark","Bass","Beluga Whale","Bluebanded Goby","Bluehead Wrasse","Bluefish","Bluestreak Cleaner-Wrasse","Blue Marlin","Blue Shark","Blue Spiny Lobster","Blue Tang","Blue Whale","Broadclub Cuttlefish","Bull Shark","Chambered Nautilus","Chilean Basket Star","Chilean Jack Mackerel","Chinook Salmon","Christmas Tree Worm","Clam","Clown Anemonefish","Clown Triggerfish","Cod","Coelacanth","Cockscomb Cup Coral","Common Fangtooth","Conch","Cookiecutter Shark","Copepod","Coral","Corydoras","Cownose Ray","Crab","Crown-of-Thorns Starfish","Cushion Star","Cuttlefish","California Sea Otters","Dolphin","Dolphinfish","Dory","Devil Fish","Dugong","Dumbo Octopus","Dungeness Crab","Eccentric Sand Dollar","Edible Sea Cucumber","Eel","Elephant Seal","Elkhorn Coral","Emperor Shrimp","Estuarine Crocodile","Fathead Sculpin","Fiddler Crab","Fin Whale","Flameback","Flamingo Tongue Snail","Flashlight Fish","Flatback Turtle","Flatfish","Flying Fish","Flounder","Fluke","French Angelfish","Frilled Shark","Fugu (also called Pufferfish)","Gar","Geoduck","Giant Barrel Sponge","Giant Caribbean Sea Anemone","Giant Clam","Giant Isopod","Giant Kingfish","Giant Oarfish","Giant Pacific Octopus","Giant Pyrosome","Giant Sea Star","Giant Squid","Glowing Sucker Octopus","Giant Tube Worm","Goblin Shark","Goosefish","Great White Shark","Greenland Shark","Grey Atlantic Seal","Grouper","Grunion","Guineafowl Puffer","Haddock","Hake","Halibut","Hammerhead Shark","Hapuka","Harbor Porpoise","Harbor Seal","Hatchetfish","Hawaiian Monk Seal","Hawksbill Turtle","Hector's Dolphin","Hermit Crab","Herring","Hoki","Horn Shark","Horseshoe Crab","Humpback Anglerfish","Humpback Whale","Icefish","Imperator Angelfish","Irukandji Jellyfish","Isopod","Ivory Bush Coral","Japanese Spider Crab","Jellyfish","John Dory","Juan Fernandez Fur Seal","Killer Whale","Kiwa Hirsuta","Krill","Lagoon Triggerfish","Lamprey","Leafy Seadragon","Leopard Seal","Limpet","Ling","Lionfish","Lions Mane Jellyfish","Lobe Coral","Lobster","Loggerhead Turtle","Longnose Sawshark","Longsnout Seahorse","Lophelia Coral","Marrus Orthocanna","Manatee","Manta Ray","Marlin","Megamouth Shark","Mexican Lookdown","Mimic Octopus","Moon Jelly","Mollusk","Monkfish","Moray Eel","Mullet","Mussel","Megaladon","Napoleon Wrasse","Nassau Grouper","Narwhal","Nautilus","Needlefish","Northern Seahorse","North Atlantic Right Whale","Northern Red Snapper","Norway Lobster","Nudibranch","Nurse Shark","Oarfish","Ocean Sunfish","Oceanic Whitetip Shark","Octopus","Olive Sea Snake","Orange Roughy","Ostracod","Otter","Oyster","Pacific Angelshark","Pacific Blackdragon","Pacific Halibut","Pacific Sardine","Pacific Sea Nettle Jellyfish","Pacific White Sided Dolphin","Pantropical Spotted Dolphin","Patagonian Toothfish","Peacock Mantis Shrimp","Pelagic Thresher Shark","Penguin","Peruvian Anchoveta","Pilchard","Pink Salmon","Pinniped","Plankton","Porpoise","Polar Bear","Portuguese Man o' War","Pycnogonid Sea Spider","Quahog","Queen Angelfish","Queen Conch","Queen Parrotfish","Queensland Grouper","Ragfish","Ratfish","Rattail Fish","Ray","Red Drum","Red King Crab","Ringed Seal","Risso's Dolphin","Ross Seals","Sablefish","Salmon","Sand Dollar","Sandbar Shark","Sawfish","Sarcastic Fringehead","Scalloped Hammerhead Shark","Seahorse","Sea Cucumber","Sea Lion","Sea Urchin","Seal","Shark","Shortfin Mako Shark","Shovelnose Guitarfish","Shrimp","Silverside Fish","Skipjack Tuna","Slender Snipe Eel","Smalltooth Sawfish","Smelts","Sockeye Salmon","Southern Stingray","Sponge","Spotted Porcupinefish","Spotted Dolphin","Spotted Eagle Ray","Spotted Moray","Squid","Squidworm","Starfish","Stickleback","Stonefish","Stoplight Loosejaw","Sturgeon","Swordfish","Tan Bristlemouth","Tasseled Wobbegong","Terrible Claw Lobster","Threespot Damselfish","Tiger Prawn","Tiger Shark","Tilefish","Toadfish","Tropical Two-Wing Flyfish","Tuna","Umbrella Squid","Velvet Crab","Venus Flytrap Sea Anemone","Vigtorniella Worm","Viperfish","Vampire Squid","Vaquita","Wahoo","Walrus","West Indian Manatee","Whale","Whale Shark","Whiptail Gulper","White-Beaked Dolphin","White-Ring Garden Eel","White Shrimp","Wobbegong","Wrasse","Wreckfish","Xiphosura","Yellowtail Damselfish","Yelloweye Rockfish","Yellow Cup Black Coral","Yellow Tube Sponge","Yellowfin Tuna","Zebrashark","Zooplankton"],desert:["Aardwolf","Addax","African Wild Ass","Ant","Antelope","Armadillo","Baboon","Badger","Bat","Bearded Dragon","Beetle","Bird","Black-footed Cat","Boa","Brown Bear","Bustard","Butterfly","Camel","Caracal","Caracara","Caterpillar","Centipede","Cheetah","Chipmunk","Chuckwalla","Climbing Mouse","Coati","Cobra","Cotton Rat","Cougar","Courser","Crane Fly","Crow","Dassie Rat","Dove","Dunnart","Eagle","Echidna","Elephant","Emu","Falcon","Fly","Fox","Frogmouth","Gecko","Geoffroy's Cat","Gerbil","Grasshopper","Guanaco","Gundi","Hamster","Hawk","Hedgehog","Hyena","Hyrax","Jackal","Kangaroo","Kangaroo Rat","Kestrel","Kowari","Kultarr","Leopard","Lion","Macaw","Meerkat","Mouse","Oryx","Ostrich","Owl","Pronghorn","Python","Rabbit","Raccoon","Rattlesnake","Rhinoceros","Sand Cat","Spectacled Bear","Spiny Mouse","Starling","Stick Bug","Tarantula","Tit","Toad","Tortoise","Tyrant Flycatcher","Viper","Vulture","Waxwing","Xerus","Zebra"],grassland:["Aardvark","Aardwolf","Accentor","African Buffalo","African Wild Dog","Alpaca","Anaconda","Ant","Anteater","Antelope","Armadillo","Baboon","Badger","Bandicoot","Barbet","Bat","Bee","Bee-eater","Beetle","Bird","Bison","Black-footed Cat","Black-footed Ferret","Bluebird","Boa","Bowerbird","Brown Bear","Bush Dog","Bushshrike","Bustard","Butterfly","Buzzard","Caracal","Caracara","Cardinal","Caterpillar","Cheetah","Chipmunk","Civet","Climbing Mouse","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Common Genet","Cotton Rat","Cougar","Courser","Coyote","Crane","Crane Fly","Cricket","Crow","Culpeo","Death Adder","Deer","Deer Mouse","Dingo","Dinosaur","Dove","Drongo","Duck","Duiker","Dunnart","Eagle","Echidna","Elephant","Elk","Emu","Falcon","Finch","Flea","Fly","Flying Frog","Fox","Frog","Frogmouth","Garter Snake","Gazelle","Gecko","Geoffroy's Cat","Gerbil","Giant Tortoise","Giraffe","Grasshopper","Grison","Groundhog","Grouse","Guanaco","Guinea Pig","Hamster","Harrier","Hartebeest","Hawk","Hedgehog","Helmetshrike","Hippopotamus","Hornbill","Hyena","Hyrax","Impala","Jackal","Jaguar","Jaguarundi","Kangaroo","Kangaroo Rat","Kestrel","Kultarr","Ladybug","Leopard","Lion","Macaw","Meerkat","Mouse","Newt","Oryx","Ostrich","Owl","Pangolin","Pheasant","Prairie Dog","Pronghorn","Przewalski's Horse","Python","Quoll","Rabbit","Raven","Rhinoceros","Shelduck","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Tamandua","Tasmanian Devil","Thornbill","Thrush","Toad","Tortoise"],forest:["Agouti","Anaconda","Anoa","Ant","Anteater","Antelope","Armadillo","Asian Black Bear","Aye-aye","Babirusa","Baboon","Badger","Bandicoot","Banteng","Barbet","Basilisk","Bat","Bearded Dragon","Bee","Bee-eater","Beetle","Bettong","Binturong","Bird-of-paradise","Bongo","Bowerbird","Bulbul","Bush Dog","Bushbaby","Bushshrike","Butterfly","Buzzard","Caecilian","Cardinal","Cassowary","Caterpillar","Centipede","Chameleon","Chimpanzee","Cicada","Civet","Clouded Leopard","Coati","Cobra","Cockatoo","Cockroach","Colugo","Cotinga","Cotton Rat","Cougar","Crane Fly","Cricket","Crocodile","Crow","Cuckoo","Cuscus","Death Adder","Deer","Dhole","Dingo","Dinosaur","Drongo","Duck","Duiker","Eagle","Echidna","Elephant","Finch","Flat-headed Cat","Flea","Flowerpecker","Fly","Flying Frog","Fossa","Frog","Frogmouth","Gaur","Gecko","Gorilla","Grison","Hawaiian Honeycreeper","Hawk","Hedgehog","Helmetshrike","Hornbill","Hyrax","Iguana","Jackal","Jaguar","Jaguarundi","Kestrel","Ladybug","Lemur","Leopard","Lion","Macaw","Mandrill","Margay","Monkey","Mouse","Mouse Deer","Newt","Okapi","Old World Flycatcher","Orangutan","Owl","Pangolin","Peafowl","Pheasant","Possum","Python","Quokka","Rabbit","Raccoon","Red Panda","Red River Hog","Rhinoceros","Sloth Bear","Spectacled Bear","Squirrel","Starling","Stick Bug","Sun Bear","Tamandua","Tamarin","Tapir","Tarantula","Thrush","Tiger","Tit","Toad","Tortoise","Toucan","Trogon","Trumpeter","Turaco","Turtle","Tyrant Flycatcher","Viper","Vulture","Wallaby","Warbler","Wasp","Waxwing","Weaver","Weaver-finch","Whistler","White-eye","Whydah","Woodswallow","Worm","Wren","Xenops","Yellowjacket","Accentor","African Buffalo","American Black Bear","Anole","Bird","Bison","Boa","Brown Bear","Chipmunk","Common Genet","Copperhead","Coyote","Deer Mouse","Dormouse","Elk","Emu","Fisher","Fox","Garter Snake","Giant Panda","Giant Tortoise","Groundhog","Grouse","Guanaco","Himalayan Tahr","Kangaroo","Koala","Numbat","Quoll","Raccoon dog","Tasmanian Devil","Thornbill","Turkey","Vole","Weasel","Wildcat","Wolf","Wombat","Woodchuck","Woodpecker"],farm:["Alpaca","Buffalo","Banteng","Cow","Cat","Chicken","Carp","Camel","Donkey","Dog","Duck","Emu","Goat","Gayal","Guinea","Goose","Horse","Honey","Llama","Pig","Pigeon","Rhea","Rabbit","Sheep","Silkworm","Turkey","Yak","Zebu"],pet:["Bearded Dragon","Birds","Burro","Cats","Chameleons","Chickens","Chinchillas","Chinese Water Dragon","Cows","Dogs","Donkey","Ducks","Ferrets","Fish","Geckos","Geese","Gerbils","Goats","Guinea Fowl","Guinea Pigs","Hamsters","Hedgehogs","Horses","Iguanas","Llamas","Lizards","Mice","Mule","Peafowl","Pigs and Hogs","Pigeons","Ponies","Pot Bellied Pig","Rabbits","Rats","Sheep","Skinks","Snakes","Stick Insects","Sugar Gliders","Tarantula","Turkeys","Turtles"],zoo:["Aardvark","African Wild Dog","Aldabra Tortoise","American Alligator","American Bison","Amur Tiger","Anaconda","Andean Condor","Asian Elephant","Baby Doll Sheep","Bald Eagle","Barred Owl","Blue Iguana","Boer Goat","California Sea Lion","Caribbean Flamingo","Chinchilla","Collared Lemur","Coquerel's Sifaka","Cuban Amazon Parrot","Ebony Langur","Fennec Fox","Fossa","Gelada","Giant Anteater","Giraffe","Gorilla","Grizzly Bear","Henkel's Leaf-tailed Gecko","Indian Gharial","Indian Rhinoceros","King Cobra","King Vulture","Komodo Dragon","Linne's Two-toed Sloth","Lion","Little Penguin","Madagascar Tree Boa","Magellanic Penguin","Malayan Tapir","Malayan Tiger","Matschies Tree Kangaroo","Mini Donkey","Monarch Butterfly","Nile crocodile","North American Porcupine","Nubian Ibex","Okapi","Poison Dart Frog","Polar Bear","Pygmy Marmoset","Radiated Tortoise","Red Panda","Red Ruffed Lemur","Ring-tailed Lemur","Ring-tailed Mongoose","Rock Hyrax","Small Clawed Asian Otter","Snow Leopard","Snowy Owl","Southern White-faced Owl","Southern White Rhinocerous","Squirrel Monkey","Tufted Puffin","White Cheeked Gibbon","White-throated Bee Eater","Zebra"]},primes:[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999,3001,3011,3019,3023,3037,3041,3049,3061,3067,3079,3083,3089,3109,3119,3121,3137,3163,3167,3169,3181,3187,3191,3203,3209,3217,3221,3229,3251,3253,3257,3259,3271,3299,3301,3307,3313,3319,3323,3329,3331,3343,3347,3359,3361,3371,3373,3389,3391,3407,3413,3433,3449,3457,3461,3463,3467,3469,3491,3499,3511,3517,3527,3529,3533,3539,3541,3547,3557,3559,3571,3581,3583,3593,3607,3613,3617,3623,3631,3637,3643,3659,3671,3673,3677,3691,3697,3701,3709,3719,3727,3733,3739,3761,3767,3769,3779,3793,3797,3803,3821,3823,3833,3847,3851,3853,3863,3877,3881,3889,3907,3911,3917,3919,3923,3929,3931,3943,3947,3967,3989,4001,4003,4007,4013,4019,4021,4027,4049,4051,4057,4073,4079,4091,4093,4099,4111,4127,4129,4133,4139,4153,4157,4159,4177,4201,4211,4217,4219,4229,4231,4241,4243,4253,4259,4261,4271,4273,4283,4289,4297,4327,4337,4339,4349,4357,4363,4373,4391,4397,4409,4421,4423,4441,4447,4451,4457,4463,4481,4483,4493,4507,4513,4517,4519,4523,4547,4549,4561,4567,4583,4591,4597,4603,4621,4637,4639,4643,4649,4651,4657,4663,4673,4679,4691,4703,4721,4723,4729,4733,4751,4759,4783,4787,4789,4793,4799,4801,4813,4817,4831,4861,4871,4877,4889,4903,4909,4919,4931,4933,4937,4943,4951,4957,4967,4969,4973,4987,4993,4999,5003,5009,5011,5021,5023,5039,5051,5059,5077,5081,5087,5099,5101,5107,5113,5119,5147,5153,5167,5171,5179,5189,5197,5209,5227,5231,5233,5237,5261,5273,5279,5281,5297,5303,5309,5323,5333,5347,5351,5381,5387,5393,5399,5407,5413,5417,5419,5431,5437,5441,5443,5449,5471,5477,5479,5483,5501,5503,5507,5519,5521,5527,5531,5557,5563,5569,5573,5581,5591,5623,5639,5641,5647,5651,5653,5657,5659,5669,5683,5689,5693,5701,5711,5717,5737,5741,5743,5749,5779,5783,5791,5801,5807,5813,5821,5827,5839,5843,5849,5851,5857,5861,5867,5869,5879,5881,5897,5903,5923,5927,5939,5953,5981,5987,6007,6011,6029,6037,6043,6047,6053,6067,6073,6079,6089,6091,6101,6113,6121,6131,6133,6143,6151,6163,6173,6197,6199,6203,6211,6217,6221,6229,6247,6257,6263,6269,6271,6277,6287,6299,6301,6311,6317,6323,6329,6337,6343,6353,6359,6361,6367,6373,6379,6389,6397,6421,6427,6449,6451,6469,6473,6481,6491,6521,6529,6547,6551,6553,6563,6569,6571,6577,6581,6599,6607,6619,6637,6653,6659,6661,6673,6679,6689,6691,6701,6703,6709,6719,6733,6737,6761,6763,6779,6781,6791,6793,6803,6823,6827,6829,6833,6841,6857,6863,6869,6871,6883,6899,6907,6911,6917,6947,6949,6959,6961,6967,6971,6977,6983,6991,6997,7001,7013,7019,7027,7039,7043,7057,7069,7079,7103,7109,7121,7127,7129,7151,7159,7177,7187,7193,7207,7211,7213,7219,7229,7237,7243,7247,7253,7283,7297,7307,7309,7321,7331,7333,7349,7351,7369,7393,7411,7417,7433,7451,7457,7459,7477,7481,7487,7489,7499,7507,7517,7523,7529,7537,7541,7547,7549,7559,7561,7573,7577,7583,7589,7591,7603,7607,7621,7639,7643,7649,7669,7673,7681,7687,7691,7699,7703,7717,7723,7727,7741,7753,7757,7759,7789,7793,7817,7823,7829,7841,7853,7867,7873,7877,7879,7883,7901,7907,7919,7927,7933,7937,7949,7951,7963,7993,8009,8011,8017,8039,8053,8059,8069,8081,8087,8089,8093,8101,8111,8117,8123,8147,8161,8167,8171,8179,8191,8209,8219,8221,8231,8233,8237,8243,8263,8269,8273,8287,8291,8293,8297,8311,8317,8329,8353,8363,8369,8377,8387,8389,8419,8423,8429,8431,8443,8447,8461,8467,8501,8513,8521,8527,8537,8539,8543,8563,8573,8581,8597,8599,8609,8623,8627,8629,8641,8647,8663,8669,8677,8681,8689,8693,8699,8707,8713,8719,8731,8737,8741,8747,8753,8761,8779,8783,8803,8807,8819,8821,8831,8837,8839,8849,8861,8863,8867,8887,8893,8923,8929,8933,8941,8951,8963,8969,8971,8999,9001,9007,9011,9013,9029,9041,9043,9049,9059,9067,9091,9103,9109,9127,9133,9137,9151,9157,9161,9173,9181,9187,9199,9203,9209,9221,9227,9239,9241,9257,9277,9281,9283,9293,9311,9319,9323,9337,9341,9343,9349,9371,9377,9391,9397,9403,9413,9419,9421,9431,9433,9437,9439,9461,9463,9467,9473,9479,9491,9497,9511,9521,9533,9539,9547,9551,9587,9601,9613,9619,9623,9629,9631,9643,9649,9661,9677,9679,9689,9697,9719,9721,9733,9739,9743,9749,9767,9769,9781,9787,9791,9803,9811,9817,9829,9833,9839,9851,9857,9859,9871,9883,9887,9901,9907,9923,9929,9931,9941,9949,9967,9973,10007],emotions:["love","joy","surprise","anger","sadness","fear"],music_genres:{general:["Rock","Pop","Hip-Hop","Jazz","Classical","Electronic","Country","R&B","Reggae","Blues","Metal","Folk","Alternative","Punk","Disco","Funk","Techno","Indie","Gospel","Dance","Children's","World"],alternative:["Art Punk","Alternative Rock","Britpunk","College Rock","Crossover Thrash","Crust Punk","Emo / Emocore","Experimental Rock","Folk Punk","Goth / Gothic Rock","Grunge","Hardcore Punk","Hard Rock","Indie Rock","Lo-fi","Musique Concrète","New Wave","Progressive Rock","Punk","Shoegaze","Steampunk"],blues:["Acoustic Blues","African Blues","Blues Rock","Blues Shouter","British Blues","Canadian Blues","Chicago Blues","Classic Blues","Classic Female Blues","Contemporary Blues","Country Blues","Dark Blues","Delta Blues","Detroit Blues","Doom Blues","Electric Blues","Folk Blues","Gospel Blues","Harmonica Blues","Hill Country Blues","Hokum Blues","Jazz Blues","Jump Blues","Kansas City Blues","Louisiana Blues","Memphis Blues","Modern Blues","New Orlean Blues","NY Blues","Piano Blues","Piedmont Blues","Punk Blues","Ragtime Blues","Rhythm Blues","Soul Blues","St.Louis Blues","Soul Blues","Swamp Blues","Texas Blues","Urban Blues","Vandeville","West Coast Blues"],"children's":["Lullabies","Sing - Along","Stories"],classical:["Avant-Garde","Ballet","Baroque","Cantata","Chamber Music","String Quartet","Chant","Choral","Classical Crossover","Concerto","Concerto Grosso","Contemporary Classical","Early Music","Expressionist","High Classical","Impressionist","Mass Requiem","Medieval","Minimalism","Modern Composition","Modern Classical","Opera","Oratorio","Orchestral","Organum","Renaissance","Romantic (early period)","Romantic (later period)","Sonata","Symphonic","Symphony","Twelve-tone","Wedding Music"],country:["Alternative Country","Americana","Australian Country","Bakersfield Sound","Bluegrass","Blues Country","Cajun Fiddle Tunes","Christian Country","Classic Country","Close Harmony","Contemporary Bluegrass","Contemporary Country","Country Gospel","Country Pop","Country Rap","Country Rock","Country Soul","Cowboy / Western","Cowpunk","Dansband","Honky Tonk","Franco-Country","Gulf and Western","Hellbilly Music","Honky Tonk","Instrumental Country","Lubbock Sound","Nashville Sound","Neotraditional Country","Outlaw Country","Progressive","Psychobilly / Punkabilly","Red Dirt","Sertanejo","Texas County","Traditional Bluegrass","Traditional Country","Truck-Driving Country","Urban Cowboy","Western Swing"],dance:["Club / Club Dance","Breakcore","Breakbeat / Breakstep","Chillstep","Deep House","Dubstep","Dancehall","Electro House","Electroswing","Exercise","Future Garage","Garage","Glitch Hop","Glitch Pop","Grime","Hardcore","Hard Dance","Hi-NRG / Eurodance","Horrorcore","House","Jackin House","Jungle / Drum n bass","Liquid Dub","Regstep","Speedcore","Techno","Trance","Trap"],electronic:["2-Step","8bit","Ambient","Asian Underground","Bassline","Chillwave","Chiptune","Crunk","Downtempo","Drum & Bass","Hard Step","Electro","Electro-swing","Electroacoustic","Electronica","Electronic Rock","Eurodance","Hardstyle","Hi-Nrg","IDM/Experimental","Industrial","Trip Hop","Vaporwave","UK Garage","House","Dubstep","Deep House","EDM","Future Bass","Psychedelic trance"],jazz:["Acid Jazz","Afro-Cuban Jazz","Avant-Garde Jazz","Bebop","Big Band","Blue Note","British Dance Band (Jazz)","Cape Jazz","Chamber Jazz","Contemporary Jazz","Continental Jazz","Cool Jazz","Crossover Jazz","Dark Jazz","Dixieland","Early Jazz","Electro Swing (Jazz)","Ethio-jazz","Ethno-Jazz","European Free Jazz","Free Funk (Avant-Garde / Funk Jazz)","Free Jazz","Fusion","Gypsy Jazz","Hard Bop","Indo Jazz","Jazz Blues","Jazz-Funk (see Free Funk)","Jazz-Fusion","Jazz Rap","Jazz Rock","Kansas City Jazz","Latin Jazz","M-Base Jazz","Mainstream Jazz","Modal Jazz","Neo-Bop","Neo-Swing","Nu Jazz","Orchestral Jazz","Post-Bop","Punk Jazz","Ragtime","Ska Jazz","Skiffle (also Folk)","Smooth Jazz","Soul Jazz","Swing Jazz","Straight-Ahead Jazz","Trad Jazz","Third Stream","Jazz-Funk","Free Jazz","West Coast Jazz"],metal:["Heavy Metal","Speed Metal","Thrash Metal","Power Metal","Death Metal","Black Metal","Pagan Metal","Viking Metal","Folk Metal","Symphonic Metal","Gothic Metal","Glam Metal","Hair Metal","Doom Metal","Groove Metal","Industrial Metal","Modern Metal","Neoclassical Metal","New Wave Of British Heavy Metal","Post Metal","Progressive Metal","Avantgarde Metal","Sludge","Djent","Drone","Kawaii Metal","Pirate Metal","Nu Metal","Neue Deutsche Härte","Math Metal","Crossover","Grindcore","Hardcore","Metalcore","Deathcore","Post Hardcore","Mathcore"],folk:["American Folk Revival","Anti - Folk","British Folk Revival","Contemporary Folk","Filk Music","Freak Folk","Indie Folk","Industrial Folk","Neofolk","Progressive Folk","Psychedelic Folk","Sung Poetry","Techno - Folk","Folk Rock","Old-time Music","Bluegrass","Appalachian","Roots Revival","Celtic","Indie Folk"],pop:["Adult Contemporary","Arab Pop","Baroque","Britpop","Bubblegum Pop","Chamber Pop","Chanson","Christian Pop","Classical Crossover","Europop","Austropop","Balkan Pop","French Pop","Korean Pop","Japanese Pop","Chinese Pop","Latin Pop","Laïkó","Nederpop","Russian Pop","Dance Pop","Dream Pop","Electro Pop","Iranian Pop","Jangle Pop","Latin Ballad","Levenslied","Louisiana Swamp Pop","Mexican Pop","Motorpop","New Romanticism","Orchestral Pop","Pop Rap","Popera","Pop / Rock","Pop Punk","Power Pop","Psychedelic Pop","Russian Pop","Schlager","Soft Rock","Sophisti - Pop","Space Age Pop","Sunshine Pop","Surf Pop","Synthpop","Teen Pop","Traditional Pop Music","Turkish Pop","Vispop","Wonky Pop"],"r&b":["(Carolina) Beach Music","Contemporary R & B","Disco","Doo Wop","Funk","Modern Soul","Motown","Neo - Soul","Northern Soul","Psychedelic Soul","Quiet Storm","Soul","Soul Blues","Southern Soul"],reggae:["2 - Tone","Dub","Roots Reggae","Reggae Fusion","Reggae en Español","Spanish Reggae","Reggae 110","Reggae Bultrón","Romantic Flow","Lovers Rock","Raggamuffin","Ragga","Dancehall","Ska"],rock:["Acid Rock","Adult - Oriented Rock","Afro Punk","Adult Alternative","Alternative Rock","American Traditional Rock","Anatolian Rock","Arena Rock","Art Rock","Blues - Rock","British Invasion","Cock Rock","Death Metal / Black Metal","Doom Metal","Glam Rock","Gothic Metal","Grind Core","Hair Metal","Hard Rock","Math Metal","Math Rock","Metal","Metal Core","Noise Rock","Jam Bands","Post Punk","Post Rock","Prog - Rock / Art Rock","Progressive Metal","Psychedelic","Rock & Roll","Rockabilly","Roots Rock","Singer / Songwriter","Southern Rock","Spazzcore","Stoner Metal","Surf","Technical Death Metal","Tex - Mex","Thrash Metal","Time Lord Rock(Trock)","Trip - hop","Yacht Rock","School House Rock"],"hip-hop":["Alternative Rap","Avant - Garde","Bounce","Chap Hop","Christian Hip Hop","Conscious Hip Hop","Country - Rap","Grunk","Crunkcore","Cumbia Rap","Dirty South","East Coast","Brick City Club","Hardcore Hip Hop","Mafioso Rap","New Jersey Hip Hop","Freestyle Rap","G - Funk","Gangsta Rap","Golden Age","Grime","Hardcore Rap","Hip - Hop","Hip Pop","Horrorcore","Hyphy","Industrial Hip Hop","Instrumental Hip Hop","Jazz Rap","Latin Rap","Low Bap","Lyrical Hip Hop","Merenrap","Midwest Hip Hop","Chicago Hip Hop","Detroit Hip Hop","Horrorcore","St.Louis Hip Hop","Twin Cities Hip Hop","Motswako","Nerdcore","New Jack Swing","New School Hip Hop","Old School Rap","Rap","Trap","Turntablism","Underground Rap","West Coast Rap","East Coast Rap","Trap","UK Grime","Hyphy","Emo-rap","Cloud rap","G-funk","Boom Bap","Mumble","Drill","UK Drill","Soundcloud Rap","Lo-fi"],punk:["Afro-punk","Anarcho punk","Art punk","Christian punk","Crust punk","Deathrock","Egg punk","Garage punk","Glam punk","Hardcore punk","Horror punk","Incelcore/e-punk","Oi!","Peace punk","Punk pathetique","Queercore","Riot Grrrl","Skate punk","Street punk","Taqwacore","Trallpunk"],disco:["Nu-disco","Disco-funk","Hi-NRG","Italo Disco","Eurodisco","Boogie","Space Disco","Post-disco","Electro Disco","Disco House","Disco Pop","Soulful House"],funk:["Funk Rock","P-Funk (Parliament-Funkadelic)","Psychedelic Funk","Funk Metal","Electro-Funk","Go-go","Boogie-Funk","Jazz-Funk","Soul-Funk","Funky Disco","Nu-Funk","Afrobeat","Latin Funk","G-Funk","Acid Jazz","Funktronica","Folk-Funk","Space Funk","Ambient Funk","Hard Funk","Fusion Funk"],techno:["Acid Techno","Ambient Techno","Detroit Techno","Dub Techno","Minimal Techno","Industrial Techno","Hard Techno","Trance","Progressive Techno","Tech House","Electronica","Breakbeat Techno","Electro Techno","Melodic Techno","Experimental Techno","Dark Techno","Ebm","Hypnotic Techno","Psychedelic Techno","Rave Techno","Techno-Pop"],indie:["Indie Rock","Indie Pop","Indie Folk","Indie Electronic","Indie Punk","Indie Hip-Hop","Dream Pop","Shoegaze","Lo-fi","Chillwave","Freak Folk","Noise Pop","Math Rock","Post-Punk","Garage Rock","Experimental Indie","Surf Rock","Alternative Country","Indie Soul","Art Rock","Indie R&B","Indietronica","Emo","Post-Rock","Indie Pop-Rock","Indie Synthpop","Noise Rock","Psych Folk","Indie Blues"],gospel:["Traditional Gospel","Contemporary Gospel","Southern Gospel","Black Gospel","Urban Contemporary Gospel","Gospel Blues","Bluegrass Gospel","Country Gospel","Praise and Worship","Christian Hip-Hop","Gospel Jazz","Reggae Gospel","African Gospel","Latin Gospel","R&B Gospel","Gospel Choir","Acappella Gospel","Instrumental Gospel","Gospel Rap"],world:["African","Arabic","Asian","Caribbean","Celtic","European","Latin American","Middle Eastern","Native American","Polynesian","Reggae","Ska","Salsa","Flamenco","Bossa Nova","Tango","Fado","Klezmer","Balkan","Afrobeat","Mongolian Throat Singing","Indian Classical","Gamelan","Sufi Music","Zydeco","Kora Music","Andean Music","Irish Traditional","Gypsy Jazz","Bollywood","Bhangra","Jawaiian","Hawaiian Slack Key Guitar","Calypso","Cuban Son","Taiko Drumming","African Highlife","Merengue","Tuvan Throat Singing"]},emojis:{smileys_and_emotion:["0x1f600","0x1f603","0x1f604","0x1f601","0x1f606","0x1f605","0x1f923","0x1f602","0x1f642","0x1f643","0x1fae0","0x1f609","0x1f60a","0x1f607","0x1f970","0x1f60d","0x1f929","0x1f618","0x1f617","0x263a","0x1f61a","0x1f619","0x1f972","0x1f60b","0x1f61b","0x1f61c","0x1f92a","0x1f61d","0x1f911","0x1f917","0x1f92d","0x1fae2","0x1fae3","0x1f92b","0x1f914","0x1fae1","0x1f910","0x1f928","0x1f610","0x1f611","0x1f636","0x1fae5","0x1f636","0x200d","0x1f32b","0xfe0f","0x1f60f","0x1f612","0x1f644","0x1f62c","0x1f62e","0x200d","0x1f4a8","0x1f925","0x1fae8","0x1f642","0x200d","0x2194","0xfe0f","0x1f642","0x200d","0x2195","0xfe0f","0x1f60c","0x1f614","0x1f62a","0x1f924","0x1f634","0x1f637","0x1f912","0x1f915","0x1f922","0x1f92e","0x1f927","0x1f975","0x1f976","0x1f974","0x1f635","0x1f635","0x200d","0x1f4ab","0x1f92f","0x1f920","0x1f973","0x1f978","0x1f60e","0x1f913","0x1f9d0","0x1f615","0x1fae4","0x1f61f","0x1f641","0x2639","0x1f62e","0x1f62f","0x1f632","0x1f633","0x1f97a","0x1f979","0x1f626","0x1f627","0x1f628","0x1f630","0x1f625","0x1f622","0x1f62d","0x1f631","0x1f616","0x1f623","0x1f61e","0x1f613","0x1f629","0x1f62b","0x1f971","0x1f624","0x1f621","0x1f620","0x1f92c","0x1f608","0x1f47f","0x1f480","0x2620","0x1f4a9","0x1f921","0x1f479","0x1f47a","0x1f47b","0x1f47d","0x1f47e","0x1f916","0x1f63a","0x1f638","0x1f639","0x1f63b","0x1f63c","0x1f63d","0x1f640","0x1f63f","0x1f63e","0x1f648","0x1f649","0x1f64a","0x1f48c","0x1f498","0x1f49d","0x1f496","0x1f497","0x1f493","0x1f49e","0x1f495","0x1f49f","0x2763","0x1f494","0x2764","0xfe0f","0x200d","0x1f525","0x2764","0xfe0f","0x200d","0x1fa79","0x2764","0x1fa77","0x1f9e1","0x1f49b","0x1f49a","0x1f499","0x1fa75","0x1f49c","0x1f90e","0x1f5a4","0x1fa76","0x1f90d","0x1f48b","0x1f4af","0x1f4a2","0x1f4a5","0x1f4ab","0x1f4a6","0x1f4a8","0x1f573","0x1f4ac","0x1f441","0xfe0f","0x200d","0x1f5e8","0xfe0f","0x1f5e8","0x1f5ef","0x1f4ad","0x1f4a4"],people_and_body:["0x1f44b","0x1f91a","0x1f590","0x270b","0x1f596","0x1faf1","0x1faf2","0x1faf3","0x1faf4","0x1faf7","0x1faf8","0x1f44c","0x1f90c","0x1f90f","0x270c","0x1f91e","0x1faf0","0x1f91f","0x1f918","0x1f919","0x1f448","0x1f449","0x1f446","0x1f595","0x1f447","0x261d","0x1faf5","0x1f44d","0x1f44e","0x270a","0x1f44a","0x1f91b","0x1f91c","0x1f44f","0x1f64c","0x1faf6","0x1f450","0x1f932","0x1f91d","0x1f64f","0x270d","0x1f485","0x1f933","0x1f4aa","0x1f9be","0x1f9bf","0x1f9b5","0x1f9b6","0x1f442","0x1f9bb","0x1f443","0x1f9e0","0x1fac0","0x1fac1","0x1f9b7","0x1f9b4","0x1f440","0x1f441","0x1f445","0x1f444","0x1fae6","0x1f476","0x1f9d2","0x1f466","0x1f467","0x1f9d1","0x1f471","0x1f468","0x1f9d4","0x1f9d4","0x200d","0x2642","0xfe0f","0x1f9d4","0x200d","0x2640","0xfe0f","0x1f468","0x200d","0x1f9b0","0x1f468","0x200d","0x1f9b1","0x1f468","0x200d","0x1f9b3","0x1f468","0x200d","0x1f9b2","0x1f469","0x1f469","0x200d","0x1f9b0","0x1f9d1","0x200d","0x1f9b0","0x1f469","0x200d","0x1f9b1","0x1f9d1","0x200d","0x1f9b1","0x1f469","0x200d","0x1f9b3","0x1f9d1","0x200d","0x1f9b3","0x1f469","0x200d","0x1f9b2","0x1f9d1","0x200d","0x1f9b2","0x1f471","0x200d","0x2640","0xfe0f","0x1f471","0x200d","0x2642","0xfe0f","0x1f9d3","0x1f474","0x1f475","0x1f64d","0x1f64d","0x200d","0x2642","0xfe0f","0x1f64d","0x200d","0x2640","0xfe0f","0x1f64e","0x1f64e","0x200d","0x2642","0xfe0f","0x1f64e","0x200d","0x2640","0xfe0f","0x1f645","0x1f645","0x200d","0x2642","0xfe0f","0x1f645","0x200d","0x2640","0xfe0f","0x1f646","0x1f646","0x200d","0x2642","0xfe0f","0x1f646","0x200d","0x2640","0xfe0f","0x1f481","0x1f481","0x200d","0x2642","0xfe0f","0x1f481","0x200d","0x2640","0xfe0f","0x1f64b","0x1f64b","0x200d","0x2642","0xfe0f","0x1f64b","0x200d","0x2640","0xfe0f","0x1f9cf","0x1f9cf","0x200d","0x2642","0xfe0f","0x1f9cf","0x200d","0x2640","0xfe0f","0x1f647","0x1f647","0x200d","0x2642","0xfe0f","0x1f647","0x200d","0x2640","0xfe0f","0x1f926","0x1f926","0x200d","0x2642","0xfe0f","0x1f926","0x200d","0x2640","0xfe0f","0x1f937","0x1f937","0x200d","0x2642","0xfe0f","0x1f937","0x200d","0x2640","0xfe0f","0x1f9d1","0x200d","0x2695","0xfe0f","0x1f468","0x200d","0x2695","0xfe0f","0x1f469","0x200d","0x2695","0xfe0f","0x1f9d1","0x200d","0x1f393","0x1f468","0x200d","0x1f393","0x1f469","0x200d","0x1f393","0x1f9d1","0x200d","0x1f3eb","0x1f468","0x200d","0x1f3eb","0x1f469","0x200d","0x1f3eb","0x1f9d1","0x200d","0x2696","0xfe0f","0x1f468","0x200d","0x2696","0xfe0f","0x1f469","0x200d","0x2696","0xfe0f","0x1f9d1","0x200d","0x1f33e","0x1f468","0x200d","0x1f33e","0x1f469","0x200d","0x1f33e","0x1f9d1","0x200d","0x1f373","0x1f468","0x200d","0x1f373","0x1f469","0x200d","0x1f373","0x1f9d1","0x200d","0x1f527","0x1f468","0x200d","0x1f527","0x1f469","0x200d","0x1f527","0x1f9d1","0x200d","0x1f3ed","0x1f468","0x200d","0x1f3ed","0x1f469","0x200d","0x1f3ed","0x1f9d1","0x200d","0x1f4bc","0x1f468","0x200d","0x1f4bc","0x1f469","0x200d","0x1f4bc","0x1f9d1","0x200d","0x1f52c","0x1f468","0x200d","0x1f52c","0x1f469","0x200d","0x1f52c","0x1f9d1","0x200d","0x1f4bb","0x1f468","0x200d","0x1f4bb","0x1f469","0x200d","0x1f4bb","0x1f9d1","0x200d","0x1f3a4","0x1f468","0x200d","0x1f3a4","0x1f469","0x200d","0x1f3a4","0x1f9d1","0x200d","0x1f3a8","0x1f468","0x200d","0x1f3a8","0x1f469","0x200d","0x1f3a8","0x1f9d1","0x200d","0x2708","0xfe0f","0x1f468","0x200d","0x2708","0xfe0f","0x1f469","0x200d","0x2708","0xfe0f","0x1f9d1","0x200d","0x1f680","0x1f468","0x200d","0x1f680","0x1f469","0x200d","0x1f680","0x1f9d1","0x200d","0x1f692","0x1f468","0x200d","0x1f692","0x1f469","0x200d","0x1f692","0x1f46e","0x1f46e","0x200d","0x2642","0xfe0f","0x1f46e","0x200d","0x2640","0xfe0f","0x1f575","0x1f575","0xfe0f","0x200d","0x2642","0xfe0f","0x1f575","0xfe0f","0x200d","0x2640","0xfe0f","0x1f482","0x1f482","0x200d","0x2642","0xfe0f","0x1f482","0x200d","0x2640","0xfe0f","0x1f977","0x1f477","0x1f477","0x200d","0x2642","0xfe0f","0x1f477","0x200d","0x2640","0xfe0f","0x1fac5","0x1f934","0x1f478","0x1f473","0x1f473","0x200d","0x2642","0xfe0f","0x1f473","0x200d","0x2640","0xfe0f","0x1f472","0x1f9d5","0x1f935","0x1f935","0x200d","0x2642","0xfe0f","0x1f935","0x200d","0x2640","0xfe0f","0x1f470","0x1f470","0x200d","0x2642","0xfe0f","0x1f470","0x200d","0x2640","0xfe0f","0x1f930","0x1fac3","0x1fac4","0x1f931","0x1f469","0x200d","0x1f37c","0x1f468","0x200d","0x1f37c","0x1f9d1","0x200d","0x1f37c","0x1f47c","0x1f385","0x1f936","0x1f9d1","0x200d","0x1f384","0x1f9b8","0x1f9b8","0x200d","0x2642","0xfe0f","0x1f9b8","0x200d","0x2640","0xfe0f","0x1f9b9","0x1f9b9","0x200d","0x2642","0xfe0f","0x1f9b9","0x200d","0x2640","0xfe0f","0x1f9d9","0x1f9d9","0x200d","0x2642","0xfe0f","0x1f9d9","0x200d","0x2640","0xfe0f","0x1f9da","0x1f9da","0x200d","0x2642","0xfe0f","0x1f9da","0x200d","0x2640","0xfe0f","0x1f9db","0x1f9db","0x200d","0x2642","0xfe0f","0x1f9db","0x200d","0x2640","0xfe0f","0x1f9dc","0x1f9dc","0x200d","0x2642","0xfe0f","0x1f9dc","0x200d","0x2640","0xfe0f","0x1f9dd","0x1f9dd","0x200d","0x2642","0xfe0f","0x1f9dd","0x200d","0x2640","0xfe0f","0x1f9de","0x1f9de","0x200d","0x2642","0xfe0f","0x1f9de","0x200d","0x2640","0xfe0f","0x1f9df","0x1f9df","0x200d","0x2642","0xfe0f","0x1f9df","0x200d","0x2640","0xfe0f","0x1f9cc","0x1f486","0x1f486","0x200d","0x2642","0xfe0f","0x1f486","0x200d","0x2640","0xfe0f","0x1f487","0x1f487","0x200d","0x2642","0xfe0f","0x1f487","0x200d","0x2640","0xfe0f","0x1f6b6","0x1f6b6","0x200d","0x2642","0xfe0f","0x1f6b6","0x200d","0x2640","0xfe0f","0x1f6b6","0x200d","0x27a1","0xfe0f","0x1f6b6","0x200d","0x2640","0xfe0f","0x200d","0x27a1","0xfe0f","0x1f6b6","0x200d","0x2642","0xfe0f","0x200d","0x27a1","0xfe0f","0x1f9cd","0x1f9cd","0x200d","0x2642","0xfe0f","0x1f9cd","0x200d","0x2640","0xfe0f","0x1f9ce","0x1f9ce","0x200d","0x2642","0xfe0f","0x1f9ce","0x200d","0x2640","0xfe0f","0x1f9ce","0x200d","0x27a1","0xfe0f","0x1f9ce","0x200d","0x2640","0xfe0f","0x200d","0x27a1","0xfe0f","0x1f9ce","0x200d","0x2642","0xfe0f","0x200d","0x27a1","0xfe0f","0x1f9d1","0x200d","0x1f9af","0x1f9d1","0x200d","0x1f9af","0x200d","0x27a1","0xfe0f","0x1f468","0x200d","0x1f9af","0x1f468","0x200d","0x1f9af","0x200d","0x27a1","0xfe0f","0x1f469","0x200d","0x1f9af","0x1f469","0x200d","0x1f9af","0x200d","0x27a1","0xfe0f","0x1f9d1","0x200d","0x1f9bc","0x1f9d1","0x200d","0x1f9bc","0x200d","0x27a1","0xfe0f","0x1f468","0x200d","0x1f9bc","0x1f468","0x200d","0x1f9bc","0x200d","0x27a1","0xfe0f","0x1f469","0x200d","0x1f9bc","0x1f469","0x200d","0x1f9bc","0x200d","0x27a1","0xfe0f","0x1f9d1","0x200d","0x1f9bd","0x1f9d1","0x200d","0x1f9bd","0x200d","0x27a1","0xfe0f","0x1f468","0x200d","0x1f9bd","0x1f468","0x200d","0x1f9bd","0x200d","0x27a1","0xfe0f","0x1f469","0x200d","0x1f9bd","0x1f469","0x200d","0x1f9bd","0x200d","0x27a1","0xfe0f","0x1f3c3","0x1f3c3","0x200d","0x2642","0xfe0f","0x1f3c3","0x200d","0x2640","0xfe0f","0x1f3c3","0x200d","0x27a1","0xfe0f","0x1f3c3","0x200d","0x2640","0xfe0f","0x200d","0x27a1","0xfe0f","0x1f3c3","0x200d","0x2642","0xfe0f","0x200d","0x27a1","0xfe0f","0x1f483","0x1f57a","0x1f574","0x1f46f","0x1f46f","0x200d","0x2642","0xfe0f","0x1f46f","0x200d","0x2640","0xfe0f","0x1f9d6","0x1f9d6","0x200d","0x2642","0xfe0f","0x1f9d6","0x200d","0x2640","0xfe0f","0x1f9d7","0x1f9d7","0x200d","0x2642","0xfe0f","0x1f9d7","0x200d","0x2640","0xfe0f","0x1f93a","0x1f3c7","0x26f7","0x1f3c2","0x1f3cc","0x1f3cc","0xfe0f","0x200d","0x2642","0xfe0f","0x1f3cc","0xfe0f","0x200d","0x2640","0xfe0f","0x1f3c4","0x1f3c4","0x200d","0x2642","0xfe0f","0x1f3c4","0x200d","0x2640","0xfe0f","0x1f6a3","0x1f6a3","0x200d","0x2642","0xfe0f","0x1f6a3","0x200d","0x2640","0xfe0f","0x1f3ca","0x1f3ca","0x200d","0x2642","0xfe0f","0x1f3ca","0x200d","0x2640","0xfe0f","0x26f9","0x26f9","0xfe0f","0x200d","0x2642","0xfe0f","0x26f9","0xfe0f","0x200d","0x2640","0xfe0f","0x1f3cb","0x1f3cb","0xfe0f","0x200d","0x2642","0xfe0f","0x1f3cb","0xfe0f","0x200d","0x2640","0xfe0f","0x1f6b4","0x1f6b4","0x200d","0x2642","0xfe0f","0x1f6b4","0x200d","0x2640","0xfe0f","0x1f6b5","0x1f6b5","0x200d","0x2642","0xfe0f","0x1f6b5","0x200d","0x2640","0xfe0f","0x1f938","0x1f938","0x200d","0x2642","0xfe0f","0x1f938","0x200d","0x2640","0xfe0f","0x1f93c","0x1f93c","0x200d","0x2642","0xfe0f","0x1f93c","0x200d","0x2640","0xfe0f","0x1f93d","0x1f93d","0x200d","0x2642","0xfe0f","0x1f93d","0x200d","0x2640","0xfe0f","0x1f93e","0x1f93e","0x200d","0x2642","0xfe0f","0x1f93e","0x200d","0x2640","0xfe0f","0x1f939","0x1f939","0x200d","0x2642","0xfe0f","0x1f939","0x200d","0x2640","0xfe0f","0x1f9d8","0x1f9d8","0x200d","0x2642","0xfe0f","0x1f9d8","0x200d","0x2640","0xfe0f","0x1f6c0","0x1f6cc","0x1f9d1","0x200d","0x1f91d","0x200d","0x1f9d1","0x1f46d","0x1f46b","0x1f46c","0x1f48f","0x1f469","0x200d","0x2764","0xfe0f","0x200d","0x1f48b","0x200d","0x1f468","0x1f468","0x200d","0x2764","0xfe0f","0x200d","0x1f48b","0x200d","0x1f468","0x1f469","0x200d","0x2764","0xfe0f","0x200d","0x1f48b","0x200d","0x1f469","0x1f491","0x1f469","0x200d","0x2764","0xfe0f","0x200d","0x1f468","0x1f468","0x200d","0x2764","0xfe0f","0x200d","0x1f468","0x1f469","0x200d","0x2764","0xfe0f","0x200d","0x1f469","0x1f468","0x200d","0x1f469","0x200d","0x1f466","0x1f468","0x200d","0x1f469","0x200d","0x1f467","0x1f468","0x200d","0x1f469","0x200d","0x1f467","0x200d","0x1f466","0x1f468","0x200d","0x1f469","0x200d","0x1f466","0x200d","0x1f466","0x1f468","0x200d","0x1f469","0x200d","0x1f467","0x200d","0x1f467","0x1f468","0x200d","0x1f468","0x200d","0x1f466","0x1f468","0x200d","0x1f468","0x200d","0x1f467","0x1f468","0x200d","0x1f468","0x200d","0x1f467","0x200d","0x1f466","0x1f468","0x200d","0x1f468","0x200d","0x1f466","0x200d","0x1f466","0x1f468","0x200d","0x1f468","0x200d","0x1f467","0x200d","0x1f467","0x1f469","0x200d","0x1f469","0x200d","0x1f466","0x1f469","0x200d","0x1f469","0x200d","0x1f467","0x1f469","0x200d","0x1f469","0x200d","0x1f467","0x200d","0x1f466","0x1f469","0x200d","0x1f469","0x200d","0x1f466","0x200d","0x1f466","0x1f469","0x200d","0x1f469","0x200d","0x1f467","0x200d","0x1f467","0x1f468","0x200d","0x1f466","0x1f468","0x200d","0x1f466","0x200d","0x1f466","0x1f468","0x200d","0x1f467","0x1f468","0x200d","0x1f467","0x200d","0x1f466","0x1f468","0x200d","0x1f467","0x200d","0x1f467","0x1f469","0x200d","0x1f466","0x1f469","0x200d","0x1f466","0x200d","0x1f466","0x1f469","0x200d","0x1f467","0x1f469","0x200d","0x1f467","0x200d","0x1f466","0x1f469","0x200d","0x1f467","0x200d","0x1f467","0x1f5e3","0x1f464","0x1f465","0x1fac2","0x1f46a","0x1f9d1","0x200d","0x1f9d1","0x200d","0x1f9d2","0x1f9d1","0x200d","0x1f9d1","0x200d","0x1f9d2","0x200d","0x1f9d2","0x1f9d1","0x200d","0x1f9d2","0x1f9d1","0x200d","0x1f9d2","0x200d","0x1f9d2","0x1f463"],animals_and_nature:["0x1f435","0x1f412","0x1f98d","0x1f9a7","0x1f436","0x1f415","0x1f9ae","0x1f415","0x200d","0x1f9ba","0x1f429","0x1f43a","0x1f98a","0x1f99d","0x1f431","0x1f408","0x1f408","0x200d","0x2b1b","0x1f981","0x1f42f","0x1f405","0x1f406","0x1f434","0x1face","0x1facf","0x1f40e","0x1f984","0x1f993","0x1f98c","0x1f9ac","0x1f42e","0x1f402","0x1f403","0x1f404","0x1f437","0x1f416","0x1f417","0x1f43d","0x1f40f","0x1f411","0x1f410","0x1f42a","0x1f42b","0x1f999","0x1f992","0x1f418","0x1f9a3","0x1f98f","0x1f99b","0x1f42d","0x1f401","0x1f400","0x1f439","0x1f430","0x1f407","0x1f43f","0x1f9ab","0x1f994","0x1f987","0x1f43b","0x1f43b","0x200d","0x2744","0xfe0f","0x1f428","0x1f43c","0x1f9a5","0x1f9a6","0x1f9a8","0x1f998","0x1f9a1","0x1f43e","0x1f983","0x1f414","0x1f413","0x1f423","0x1f424","0x1f425","0x1f426","0x1f427","0x1f54a","0x1f985","0x1f986","0x1f9a2","0x1f989","0x1f9a4","0x1fab6","0x1f9a9","0x1f99a","0x1f99c","0x1fabd","0x1f426","0x200d","0x2b1b","0x1fabf","0x1f426","0x200d","0x1f525","0x1f438","0x1f40a","0x1f422","0x1f98e","0x1f40d","0x1f432","0x1f409","0x1f995","0x1f996","0x1f433","0x1f40b","0x1f42c","0x1f9ad","0x1f41f","0x1f420","0x1f421","0x1f988","0x1f419","0x1f41a","0x1fab8","0x1fabc","0x1f40c","0x1f98b","0x1f41b","0x1f41c","0x1f41d","0x1fab2","0x1f41e","0x1f997","0x1fab3","0x1f577","0x1f578","0x1f982","0x1f99f","0x1fab0","0x1fab1","0x1f9a0","0x1f490","0x1f338","0x1f4ae","0x1fab7","0x1f3f5","0x1f339","0x1f940","0x1f33a","0x1f33b","0x1f33c","0x1f337","0x1fabb","0x1f331","0x1fab4","0x1f332","0x1f333","0x1f334","0x1f335","0x1f33e","0x1f33f","0x2618","0x1f340","0x1f341","0x1f342","0x1f343","0x1fab9","0x1faba","0x1f344"],food_and_drink:["0x1f347","0x1f348","0x1f349","0x1f34a","0x1f34b","0x1f34b","0x200d","0x1f7e9","0x1f34c","0x1f34d","0x1f96d","0x1f34e","0x1f34f","0x1f350","0x1f351","0x1f352","0x1f353","0x1fad0","0x1f95d","0x1f345","0x1fad2","0x1f965","0x1f951","0x1f346","0x1f954","0x1f955","0x1f33d","0x1f336","0x1fad1","0x1f952","0x1f96c","0x1f966","0x1f9c4","0x1f9c5","0x1f95c","0x1fad8","0x1f330","0x1fada","0x1fadb","0x1f344","0x200d","0x1f7eb","0x1f35e","0x1f950","0x1f956","0x1fad3","0x1f968","0x1f96f","0x1f95e","0x1f9c7","0x1f9c0","0x1f356","0x1f357","0x1f969","0x1f953","0x1f354","0x1f35f","0x1f355","0x1f32d","0x1f96a","0x1f32e","0x1f32f","0x1fad4","0x1f959","0x1f9c6","0x1f95a","0x1f373","0x1f958","0x1f372","0x1fad5","0x1f963","0x1f957","0x1f37f","0x1f9c8","0x1f9c2","0x1f96b","0x1f371","0x1f358","0x1f359","0x1f35a","0x1f35b","0x1f35c","0x1f35d","0x1f360","0x1f362","0x1f363","0x1f364","0x1f365","0x1f96e","0x1f361","0x1f95f","0x1f960","0x1f961","0x1f980","0x1f99e","0x1f990","0x1f991","0x1f9aa","0x1f366","0x1f367","0x1f368","0x1f369","0x1f36a","0x1f382","0x1f370","0x1f9c1","0x1f967","0x1f36b","0x1f36c","0x1f36d","0x1f36e","0x1f36f","0x1f37c","0x1f95b","0x2615","0x1fad6","0x1f375","0x1f376","0x1f37e","0x1f377","0x1f378","0x1f379","0x1f37a","0x1f37b","0x1f942","0x1f943","0x1fad7","0x1f964","0x1f9cb","0x1f9c3","0x1f9c9","0x1f9ca","0x1f962","0x1f37d","0x1f374","0x1f944","0x1f52a","0x1fad9","0x1f3fa"],travel_and_places:["0x1f30d","0x1f30e","0x1f30f","0x1f310","0x1f5fa","0x1f5fe","0x1f9ed","0x1f3d4","0x26f0","0x1f30b","0x1f5fb","0x1f3d5","0x1f3d6","0x1f3dc","0x1f3dd","0x1f3de","0x1f3df","0x1f3db","0x1f3d7","0x1f9f1","0x1faa8","0x1fab5","0x1f6d6","0x1f3d8","0x1f3da","0x1f3e0","0x1f3e1","0x1f3e2","0x1f3e3","0x1f3e4","0x1f3e5","0x1f3e6","0x1f3e8","0x1f3e9","0x1f3ea","0x1f3eb","0x1f3ec","0x1f3ed","0x1f3ef","0x1f3f0","0x1f492","0x1f5fc","0x1f5fd","0x26ea","0x1f54c","0x1f6d5","0x1f54d","0x26e9","0x1f54b","0x26f2","0x26fa","0x1f301","0x1f303","0x1f3d9","0x1f304","0x1f305","0x1f306","0x1f307","0x1f309","0x2668","0x1f3a0","0x1f6dd","0x1f3a1","0x1f3a2","0x1f488","0x1f3aa","0x1f682","0x1f683","0x1f684","0x1f685","0x1f686","0x1f687","0x1f688","0x1f689","0x1f68a","0x1f69d","0x1f69e","0x1f68b","0x1f68c","0x1f68d","0x1f68e","0x1f690","0x1f691","0x1f692","0x1f693","0x1f694","0x1f695","0x1f696","0x1f697","0x1f698","0x1f699","0x1f6fb","0x1f69a","0x1f69b","0x1f69c","0x1f3ce","0x1f3cd","0x1f6f5","0x1f9bd","0x1f9bc","0x1f6fa","0x1f6b2","0x1f6f4","0x1f6f9","0x1f6fc","0x1f68f","0x1f6e3","0x1f6e4","0x1f6e2","0x26fd","0x1f6de","0x1f6a8","0x1f6a5","0x1f6a6","0x1f6d1","0x1f6a7","0x2693","0x1f6df","0x26f5","0x1f6f6","0x1f6a4","0x1f6f3","0x26f4","0x1f6e5","0x1f6a2","0x2708","0x1f6e9","0x1f6eb","0x1f6ec","0x1fa82","0x1f4ba","0x1f681","0x1f69f","0x1f6a0","0x1f6a1","0x1f6f0","0x1f680","0x1f6f8","0x1f6ce","0x1f9f3","0x231b","0x23f3","0x231a","0x23f0","0x23f1","0x23f2","0x1f570","0x1f55b","0x1f567","0x1f550","0x1f55c","0x1f551","0x1f55d","0x1f552","0x1f55e","0x1f553","0x1f55f","0x1f554","0x1f560","0x1f555","0x1f561","0x1f556","0x1f562","0x1f557","0x1f563","0x1f558","0x1f564","0x1f559","0x1f565","0x1f55a","0x1f566","0x1f311","0x1f312","0x1f313","0x1f314","0x1f315","0x1f316","0x1f317","0x1f318","0x1f319","0x1f31a","0x1f31b","0x1f31c","0x1f321","0x2600","0x1f31d","0x1f31e","0x1fa90","0x2b50","0x1f31f","0x1f320","0x1f30c","0x2601","0x26c5","0x26c8","0x1f324","0x1f325","0x1f326","0x1f327","0x1f328","0x1f329","0x1f32a","0x1f32b","0x1f32c","0x1f300","0x1f308","0x1f302","0x2602","0x2614","0x26f1","0x26a1","0x2744","0x2603","0x26c4","0x2604","0x1f525","0x1f4a7","0x1f30a"],activities:["0x1f383","0x1f384","0x1f386","0x1f387","0x1f9e8","0x2728","0x1f388","0x1f389","0x1f38a","0x1f38b","0x1f38d","0x1f38e","0x1f38f","0x1f390","0x1f391","0x1f9e7","0x1f380","0x1f381","0x1f397","0x1f39f","0x1f3ab","0x1f396","0x1f3c6","0x1f3c5","0x1f947","0x1f948","0x1f949","0x26bd","0x26be","0x1f94e","0x1f3c0","0x1f3d0","0x1f3c8","0x1f3c9","0x1f3be","0x1f94f","0x1f3b3","0x1f3cf","0x1f3d1","0x1f3d2","0x1f94d","0x1f3d3","0x1f3f8","0x1f94a","0x1f94b","0x1f945","0x26f3","0x26f8","0x1f3a3","0x1f93f","0x1f3bd","0x1f3bf","0x1f6f7","0x1f94c","0x1f3af","0x1fa80","0x1fa81","0x1f52b","0x1f3b1","0x1f52e","0x1fa84","0x1f3ae","0x1f579","0x1f3b0","0x1f3b2","0x1f9e9","0x1f9f8","0x1fa85","0x1faa9","0x1fa86","0x2660","0x2665","0x2666","0x2663","0x265f","0x1f0cf","0x1f004","0x1f3b4","0x1f3ad","0x1f5bc","0x1f3a8","0x1f9f5","0x1faa1","0x1f9f6","0x1faa2"],objects:["0x1f453","0x1f576","0x1f97d","0x1f97c","0x1f9ba","0x1f454","0x1f455","0x1f456","0x1f9e3","0x1f9e4","0x1f9e5","0x1f9e6","0x1f457","0x1f458","0x1f97b","0x1fa71","0x1fa72","0x1fa73","0x1f459","0x1f45a","0x1faad","0x1f45b","0x1f45c","0x1f45d","0x1f6cd","0x1f392","0x1fa74","0x1f45e","0x1f45f","0x1f97e","0x1f97f","0x1f460","0x1f461","0x1fa70","0x1f462","0x1faae","0x1f451","0x1f452","0x1f3a9","0x1f393","0x1f9e2","0x1fa96","0x26d1","0x1f4ff","0x1f484","0x1f48d","0x1f48e","0x1f507","0x1f508","0x1f509","0x1f50a","0x1f4e2","0x1f4e3","0x1f4ef","0x1f514","0x1f515","0x1f3bc","0x1f3b5","0x1f3b6","0x1f399","0x1f39a","0x1f39b","0x1f3a4","0x1f3a7","0x1f4fb","0x1f3b7","0x1fa97","0x1f3b8","0x1f3b9","0x1f3ba","0x1f3bb","0x1fa95","0x1f941","0x1fa98","0x1fa87","0x1fa88","0x1f4f1","0x1f4f2","0x260e","0x1f4de","0x1f4df","0x1f4e0","0x1f50b","0x1faab","0x1f50c","0x1f4bb","0x1f5a5","0x1f5a8","0x2328","0x1f5b1","0x1f5b2","0x1f4bd","0x1f4be","0x1f4bf","0x1f4c0","0x1f9ee","0x1f3a5","0x1f39e","0x1f4fd","0x1f3ac","0x1f4fa","0x1f4f7","0x1f4f8","0x1f4f9","0x1f4fc","0x1f50d","0x1f50e","0x1f56f","0x1f4a1","0x1f526","0x1f3ee","0x1fa94","0x1f4d4","0x1f4d5","0x1f4d6","0x1f4d7","0x1f4d8","0x1f4d9","0x1f4da","0x1f4d3","0x1f4d2","0x1f4c3","0x1f4dc","0x1f4c4","0x1f4f0","0x1f5de","0x1f4d1","0x1f516","0x1f3f7","0x1f4b0","0x1fa99","0x1f4b4","0x1f4b5","0x1f4b6","0x1f4b7","0x1f4b8","0x1f4b3","0x1f9fe","0x1f4b9","0x2709","0x1f4e7","0x1f4e8","0x1f4e9","0x1f4e4","0x1f4e5","0x1f4e6","0x1f4eb","0x1f4ea","0x1f4ec","0x1f4ed","0x1f4ee","0x1f5f3","0x270f","0x2712","0x1f58b","0x1f58a","0x1f58c","0x1f58d","0x1f4dd","0x1f4bc","0x1f4c1","0x1f4c2","0x1f5c2","0x1f4c5","0x1f4c6","0x1f5d2","0x1f5d3","0x1f4c7","0x1f4c8","0x1f4c9","0x1f4ca","0x1f4cb","0x1f4cc","0x1f4cd","0x1f4ce","0x1f587","0x1f4cf","0x1f4d0","0x2702","0x1f5c3","0x1f5c4","0x1f5d1","0x1f512","0x1f513","0x1f50f","0x1f510","0x1f511","0x1f5dd","0x1f528","0x1fa93","0x26cf","0x2692","0x1f6e0","0x1f5e1","0x2694","0x1f4a3","0x1fa83","0x1f3f9","0x1f6e1","0x1fa9a","0x1f527","0x1fa9b","0x1f529","0x2699","0x1f5dc","0x2696","0x1f9af","0x1f517","0x26d3","0xfe0f","0x200d","0x1f4a5","0x26d3","0x1fa9d","0x1f9f0","0x1f9f2","0x1fa9c","0x2697","0x1f9ea","0x1f9eb","0x1f9ec","0x1f52c","0x1f52d","0x1f4e1","0x1f489","0x1fa78","0x1f48a","0x1fa79","0x1fa7c","0x1fa7a","0x1fa7b","0x1f6aa","0x1f6d7","0x1fa9e","0x1fa9f","0x1f6cf","0x1f6cb","0x1fa91","0x1f6bd","0x1faa0","0x1f6bf","0x1f6c1","0x1faa4","0x1fa92","0x1f9f4","0x1f9f7","0x1f9f9","0x1f9fa","0x1f9fb","0x1faa3","0x1f9fc","0x1fae7","0x1faa5","0x1f9fd","0x1f9ef","0x1f6d2","0x1f6ac","0x26b0","0x1faa6","0x26b1","0x1f9ff","0x1faac","0x1f5ff","0x1faa7","0x1faaa"],symbols:["0x1f3e7","0x1f6ae","0x1f6b0","0x267f","0x1f6b9","0x1f6ba","0x1f6bb","0x1f6bc","0x1f6be","0x1f6c2","0x1f6c3","0x1f6c4","0x1f6c5","0x26a0","0x1f6b8","0x26d4","0x1f6ab","0x1f6b3","0x1f6ad","0x1f6af","0x1f6b1","0x1f6b7","0x1f4f5","0x1f51e","0x2622","0x2623","0x2b06","0x2197","0x27a1","0x2198","0x2b07","0x2199","0x2b05","0x2196","0x2195","0x2194","0x21a9","0x21aa","0x2934","0x2935","0x1f503","0x1f504","0x1f519","0x1f51a","0x1f51b","0x1f51c","0x1f51d","0x1f6d0","0x269b","0x1f549","0x2721","0x2638","0x262f","0x271d","0x2626","0x262a","0x262e","0x1f54e","0x1f52f","0x1faaf","0x2648","0x2649","0x264a","0x264b","0x264c","0x264d","0x264e","0x264f","0x2650","0x2651","0x2652","0x2653","0x26ce","0x1f500","0x1f501","0x1f502","0x25b6","0x23e9","0x23ed","0x23ef","0x25c0","0x23ea","0x23ee","0x1f53c","0x23eb","0x1f53d","0x23ec","0x23f8","0x23f9","0x23fa","0x23cf","0x1f3a6","0x1f505","0x1f506","0x1f4f6","0x1f6dc","0x1f4f3","0x1f4f4","0x2640","0x2642","0x26a7","0x2716","0x2795","0x2796","0x2797","0x1f7f0","0x267e","0x203c","0x2049","0x2753","0x2754","0x2755","0x2757","0x3030","0x1f4b1","0x1f4b2","0x2695","0x267b","0x269c","0x1f531","0x1f4db","0x1f530","0x2b55","0x2705","0x2611","0x2714","0x274c","0x274e","0x27b0","0x27bf","0x303d","0x2733","0x2734","0x2747","0x00a9","0x00ae","0x2122","0x0023","0xfe0f","0x20e3","0x002a","0xfe0f","0x20e3","0x0030","0xfe0f","0x20e3","0x0031","0xfe0f","0x20e3","0x0032","0xfe0f","0x20e3","0x0033","0xfe0f","0x20e3","0x0034","0xfe0f","0x20e3","0x0035","0xfe0f","0x20e3","0x0036","0xfe0f","0x20e3","0x0037","0xfe0f","0x20e3","0x0038","0xfe0f","0x20e3","0x0039","0xfe0f","0x20e3","0x1f51f","0x1f520","0x1f521","0x1f522","0x1f523","0x1f524","0x1f170","0x1f18e","0x1f171","0x1f191","0x1f192","0x1f193","0x2139","0x1f194","0x24c2","0x1f195","0x1f196","0x1f17e","0x1f197","0x1f17f","0x1f198","0x1f199","0x1f19a","0x1f201","0x1f202","0x1f237","0x1f236","0x1f22f","0x1f250","0x1f239","0x1f21a","0x1f232","0x1f251","0x1f238","0x1f234","0x1f233","0x3297","0x3299","0x1f23a","0x1f235","0x1f534","0x1f7e0","0x1f7e1","0x1f7e2","0x1f535","0x1f7e3","0x1f7e4","0x26ab","0x26aa","0x1f7e5","0x1f7e7","0x1f7e8","0x1f7e9","0x1f7e6","0x1f7ea","0x1f7eb","0x2b1b","0x2b1c","0x25fc","0x25fb","0x25fe","0x25fd","0x25aa","0x25ab","0x1f536","0x1f537","0x1f538","0x1f539","0x1f53a","0x1f53b","0x1f4a0","0x1f518","0x1f533","0x1f532"],flags:["0x1f3c1","0x1f6a9","0x1f38c","0x1f3f4","0x1f3f3","0x1f3f3","0xfe0f","0x200d","0x1f308","0x1f3f3","0xfe0f","0x200d","0x26a7","0xfe0f","0x1f3f4","0x200d","0x2620","0xfe0f","0x1f1e6","0x1f1e8","0x1f1e6","0x1f1e9","0x1f1e6","0x1f1ea","0x1f1e6","0x1f1eb","0x1f1e6","0x1f1ec","0x1f1e6","0x1f1ee","0x1f1e6","0x1f1f1","0x1f1e6","0x1f1f2","0x1f1e6","0x1f1f4","0x1f1e6","0x1f1f6","0x1f1e6","0x1f1f7","0x1f1e6","0x1f1f8","0x1f1e6","0x1f1f9","0x1f1e6","0x1f1fa","0x1f1e6","0x1f1fc","0x1f1e6","0x1f1fd","0x1f1e6","0x1f1ff","0x1f1e7","0x1f1e6","0x1f1e7","0x1f1e7","0x1f1e7","0x1f1e9","0x1f1e7","0x1f1ea","0x1f1e7","0x1f1eb","0x1f1e7","0x1f1ec","0x1f1e7","0x1f1ed","0x1f1e7","0x1f1ee","0x1f1e7","0x1f1ef","0x1f1e7","0x1f1f1","0x1f1e7","0x1f1f2","0x1f1e7","0x1f1f3","0x1f1e7","0x1f1f4","0x1f1e7","0x1f1f6","0x1f1e7","0x1f1f7","0x1f1e7","0x1f1f8","0x1f1e7","0x1f1f9","0x1f1e7","0x1f1fb","0x1f1e7","0x1f1fc","0x1f1e7","0x1f1fe","0x1f1e7","0x1f1ff","0x1f1e8","0x1f1e6","0x1f1e8","0x1f1e8","0x1f1e8","0x1f1e9","0x1f1e8","0x1f1eb","0x1f1e8","0x1f1ec","0x1f1e8","0x1f1ed","0x1f1e8","0x1f1ee","0x1f1e8","0x1f1f0","0x1f1e8","0x1f1f1","0x1f1e8","0x1f1f2","0x1f1e8","0x1f1f3","0x1f1e8","0x1f1f4","0x1f1e8","0x1f1f5","0x1f1e8","0x1f1f7","0x1f1e8","0x1f1fa","0x1f1e8","0x1f1fb","0x1f1e8","0x1f1fc","0x1f1e8","0x1f1fd","0x1f1e8","0x1f1fe","0x1f1e8","0x1f1ff","0x1f1e9","0x1f1ea","0x1f1e9","0x1f1ec","0x1f1e9","0x1f1ef","0x1f1e9","0x1f1f0","0x1f1e9","0x1f1f2","0x1f1e9","0x1f1f4","0x1f1e9","0x1f1ff","0x1f1ea","0x1f1e6","0x1f1ea","0x1f1e8","0x1f1ea","0x1f1ea","0x1f1ea","0x1f1ec","0x1f1ea","0x1f1ed","0x1f1ea","0x1f1f7","0x1f1ea","0x1f1f8","0x1f1ea","0x1f1f9","0x1f1ea","0x1f1fa","0x1f1eb","0x1f1ee","0x1f1eb","0x1f1ef","0x1f1eb","0x1f1f0","0x1f1eb","0x1f1f2","0x1f1eb","0x1f1f4","0x1f1eb","0x1f1f7","0x1f1ec","0x1f1e6","0x1f1ec","0x1f1e7","0x1f1ec","0x1f1e9","0x1f1ec","0x1f1ea","0x1f1ec","0x1f1eb","0x1f1ec","0x1f1ec","0x1f1ec","0x1f1ed","0x1f1ec","0x1f1ee","0x1f1ec","0x1f1f1","0x1f1ec","0x1f1f2","0x1f1ec","0x1f1f3","0x1f1ec","0x1f1f5","0x1f1ec","0x1f1f6","0x1f1ec","0x1f1f7","0x1f1ec","0x1f1f8","0x1f1ec","0x1f1f9","0x1f1ec","0x1f1fa","0x1f1ec","0x1f1fc","0x1f1ec","0x1f1fe","0x1f1ed","0x1f1f0","0x1f1ed","0x1f1f2","0x1f1ed","0x1f1f3","0x1f1ed","0x1f1f7","0x1f1ed","0x1f1f9","0x1f1ed","0x1f1fa","0x1f1ee","0x1f1e8","0x1f1ee","0x1f1e9","0x1f1ee","0x1f1ea","0x1f1ee","0x1f1f1","0x1f1ee","0x1f1f2","0x1f1ee","0x1f1f3","0x1f1ee","0x1f1f4","0x1f1ee","0x1f1f6","0x1f1ee","0x1f1f7","0x1f1ee","0x1f1f8","0x1f1ee","0x1f1f9","0x1f1ef","0x1f1ea","0x1f1ef","0x1f1f2","0x1f1ef","0x1f1f4","0x1f1ef","0x1f1f5","0x1f1f0","0x1f1ea","0x1f1f0","0x1f1ec","0x1f1f0","0x1f1ed","0x1f1f0","0x1f1ee","0x1f1f0","0x1f1f2","0x1f1f0","0x1f1f3","0x1f1f0","0x1f1f5","0x1f1f0","0x1f1f7","0x1f1f0","0x1f1fc","0x1f1f0","0x1f1fe","0x1f1f0","0x1f1ff","0x1f1f1","0x1f1e6","0x1f1f1","0x1f1e7","0x1f1f1","0x1f1e8","0x1f1f1","0x1f1ee","0x1f1f1","0x1f1f0","0x1f1f1","0x1f1f7","0x1f1f1","0x1f1f8","0x1f1f1","0x1f1f9","0x1f1f1","0x1f1fa","0x1f1f1","0x1f1fb","0x1f1f1","0x1f1fe","0x1f1f2","0x1f1e6","0x1f1f2","0x1f1e8","0x1f1f2","0x1f1e9","0x1f1f2","0x1f1ea","0x1f1f2","0x1f1eb","0x1f1f2","0x1f1ec","0x1f1f2","0x1f1ed","0x1f1f2","0x1f1f0","0x1f1f2","0x1f1f1","0x1f1f2","0x1f1f2","0x1f1f2","0x1f1f3","0x1f1f2","0x1f1f4","0x1f1f2","0x1f1f5","0x1f1f2","0x1f1f6","0x1f1f2","0x1f1f7","0x1f1f2","0x1f1f8","0x1f1f2","0x1f1f9","0x1f1f2","0x1f1fa","0x1f1f2","0x1f1fb","0x1f1f2","0x1f1fc","0x1f1f2","0x1f1fd","0x1f1f2","0x1f1fe","0x1f1f2","0x1f1ff","0x1f1f3","0x1f1e6","0x1f1f3","0x1f1e8","0x1f1f3","0x1f1ea","0x1f1f3","0x1f1eb","0x1f1f3","0x1f1ec","0x1f1f3","0x1f1ee","0x1f1f3","0x1f1f1","0x1f1f3","0x1f1f4","0x1f1f3","0x1f1f5","0x1f1f3","0x1f1f7","0x1f1f3","0x1f1fa","0x1f1f3","0x1f1ff","0x1f1f4","0x1f1f2","0x1f1f5","0x1f1e6","0x1f1f5","0x1f1ea","0x1f1f5","0x1f1eb","0x1f1f5","0x1f1ec","0x1f1f5","0x1f1ed","0x1f1f5","0x1f1f0","0x1f1f5","0x1f1f1","0x1f1f5","0x1f1f2","0x1f1f5","0x1f1f3","0x1f1f5","0x1f1f7","0x1f1f5","0x1f1f8","0x1f1f5","0x1f1f9","0x1f1f5","0x1f1fc","0x1f1f5","0x1f1fe","0x1f1f6","0x1f1e6","0x1f1f7","0x1f1ea","0x1f1f7","0x1f1f4","0x1f1f7","0x1f1f8","0x1f1f7","0x1f1fa","0x1f1f7","0x1f1fc","0x1f1f8","0x1f1e6","0x1f1f8","0x1f1e7","0x1f1f8","0x1f1e8","0x1f1f8","0x1f1e9","0x1f1f8","0x1f1ea","0x1f1f8","0x1f1ec","0x1f1f8","0x1f1ed","0x1f1f8","0x1f1ee","0x1f1f8","0x1f1ef","0x1f1f8","0x1f1f0","0x1f1f8","0x1f1f1","0x1f1f8","0x1f1f2","0x1f1f8","0x1f1f3","0x1f1f8","0x1f1f4","0x1f1f8","0x1f1f7","0x1f1f8","0x1f1f8","0x1f1f8","0x1f1f9","0x1f1f8","0x1f1fb","0x1f1f8","0x1f1fd","0x1f1f8","0x1f1fe","0x1f1f8","0x1f1ff","0x1f1f9","0x1f1e6","0x1f1f9","0x1f1e8","0x1f1f9","0x1f1e9","0x1f1f9","0x1f1eb","0x1f1f9","0x1f1ec","0x1f1f9","0x1f1ed","0x1f1f9","0x1f1ef","0x1f1f9","0x1f1f0","0x1f1f9","0x1f1f1","0x1f1f9","0x1f1f2","0x1f1f9","0x1f1f3","0x1f1f9","0x1f1f4","0x1f1f9","0x1f1f7","0x1f1f9","0x1f1f9","0x1f1f9","0x1f1fb","0x1f1f9","0x1f1fc","0x1f1f9","0x1f1ff","0x1f1fa","0x1f1e6","0x1f1fa","0x1f1ec","0x1f1fa","0x1f1f2","0x1f1fa","0x1f1f3","0x1f1fa","0x1f1f8","0x1f1fa","0x1f1fe","0x1f1fa","0x1f1ff","0x1f1fb","0x1f1e6","0x1f1fb","0x1f1e8","0x1f1fb","0x1f1ea","0x1f1fb","0x1f1ec","0x1f1fb","0x1f1ee","0x1f1fb","0x1f1f3","0x1f1fb","0x1f1fa","0x1f1fc","0x1f1eb","0x1f1fc","0x1f1f8","0x1f1fd","0x1f1f0","0x1f1fe","0x1f1ea","0x1f1fe","0x1f1f9","0x1f1ff","0x1f1e6","0x1f1ff","0x1f1f2","0x1f1ff","0x1f1fc","0x1f3f4","0xe0067","0xe0062","0xe0065","0xe006e","0xe0067","0xe007f","0x1f3f4","0xe0067","0xe0062","0xe0073","0xe0063","0xe0074","0xe007f","0x1f3f4","0xe0067","0xe0062","0xe0077","0xe006c","0xe0073","0xe007f"]}},v=Object.prototype.hasOwnProperty,_=Object.keys||function(e){var t=[];for(var r in e)v.call(e,r)&&t.push(r);return t};function C(e,t){var r=Array.isArray(e),n=t||(r?new Array(e.length):{});return r?function(e,t){for(var r=0,n=e.length;r0)return this.normal_pool(e);var t,r,n,i=e.mean,a=e.dev;do{t=(r=2*this.random()-1)*r+(n=2*this.random()-1)*n}while(t>=1);return a*(r*Math.sqrt(-2*Math.log(t)/t))+i},d.prototype.normal_pool=function(e){var t=0;do{var r=Math.round(this.normal({mean:e.mean,dev:e.dev}));if(r=0)return e.pool[r];t++}while(t<100);throw new RangeError("Chance: Your pool is too small for the given mean and standard deviation. Please adjust.")},d.prototype.radio=function(e){var t="";switch((e=f(e,{side:"?"})).side.toLowerCase()){case"east":case"e":t="W";break;case"west":case"w":t="K";break;default:t=this.character({pool:"KW"})}return t+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})+this.character({alpha:!0,casing:"upper"})},d.prototype.set=function(e,t){"string"==typeof e?S[e]=t:S=C(e,S)},d.prototype.tv=function(e){return this.radio(e)},d.prototype.cnpj=function(){var e=this.n(this.natural,8,{max:9}),t=2+6*e[7]+7*e[6]+8*e[5]+9*e[4]+2*e[3]+3*e[2]+4*e[1]+5*e[0];(t=11-t%11)>=10&&(t=0);var r=2*t+3+7*e[7]+8*e[6]+9*e[5]+2*e[4]+3*e[3]+4*e[2]+5*e[1]+6*e[0];return(r=11-r%11)>=10&&(r=0),""+e[0]+e[1]+"."+e[2]+e[3]+e[4]+"."+e[5]+e[6]+e[7]+"/0001-"+t+r},d.prototype.emotion=function(){return this.pick(this.get("emotions"))},d.prototype.mersenne_twister=function(e){return new A(e)},d.prototype.blueimp_md5=function(){return new E};var A=function(e){void 0===e&&(e=Math.floor(Math.random()*Math.pow(10,13))),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};A.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30,this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0},A.prototype.init_by_array=function(e,t){var r,n,i=1,a=0;for(this.init_genrand(19650218),r=this.N>t?this.N:t;r;r--)n=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1664525*((4294901760&n)>>>16)<<16)+1664525*(65535&n))+e[a]+a,this.mt[i]>>>=0,a++,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1),a>=t&&(a=0);for(r=this.N-1;r;r--)n=this.mt[i-1]^this.mt[i-1]>>>30,this.mt[i]=(this.mt[i]^(1566083941*((4294901760&n)>>>16)<<16)+1566083941*(65535&n))-i,this.mt[i]>>>=0,++i>=this.N&&(this.mt[0]=this.mt[this.N-1],i=1);this.mt[0]=2147483648},A.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti===this.N+1&&this.init_genrand(5489),r=0;r>>1^t[1&e];for(;r>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},A.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},A.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},A.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},A.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},A.prototype.genrand_res53=function(){return(67108864*(this.genrand_int32()>>>5)+(this.genrand_int32()>>>6))*(1/9007199254740992)};var E=function(){};E.prototype.VERSION="1.0.1",E.prototype.safe_add=function(e,t){var r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r},E.prototype.bit_roll=function(e,t){return e<>>32-t},E.prototype.md5_cmn=function(e,t,r,n,i,a){return this.safe_add(this.bit_roll(this.safe_add(this.safe_add(t,e),this.safe_add(n,a)),i),r)},E.prototype.md5_ff=function(e,t,r,n,i,a,o){return this.md5_cmn(t&r|~t&n,e,t,i,a,o)},E.prototype.md5_gg=function(e,t,r,n,i,a,o){return this.md5_cmn(t&n|r&~n,e,t,i,a,o)},E.prototype.md5_hh=function(e,t,r,n,i,a,o){return this.md5_cmn(t^r^n,e,t,i,a,o)},E.prototype.md5_ii=function(e,t,r,n,i,a,o){return this.md5_cmn(r^(t|~n),e,t,i,a,o)},E.prototype.binl_md5=function(e,t){e[t>>5]|=128<>>9<<4)]=t;var r,n,i,a,o,s=1732584193,c=-271733879,u=-1732584194,l=271733878;for(r=0;r>5]>>>t%32&255);return r},E.prototype.rstr2binl=function(e){var t,r=[];for(r[(e.length>>2)-1]=void 0,t=0;t>5]|=(255&e.charCodeAt(t/8))<16&&(i=this.binl_md5(i,8*e.length)),r=0;r<16;r+=1)a[r]=909522486^i[r],o[r]=1549556828^i[r];return n=this.binl_md5(a.concat(this.rstr2binl(t)),512+8*t.length),this.binl2rstr(this.binl_md5(o.concat(n),640))},E.prototype.rstr2hex=function(e){var t,r,n="0123456789abcdef",i="";for(r=0;r>>4&15)+n.charAt(15&t);return i},E.prototype.str2rstr_utf8=function(e){return unescape(encodeURIComponent(e))},E.prototype.raw_md5=function(e){return this.rstr_md5(this.str2rstr_utf8(e))},E.prototype.hex_md5=function(e){return this.rstr2hex(this.raw_md5(e))},E.prototype.raw_hmac_md5=function(e,t){return this.rstr_hmac_md5(this.str2rstr_utf8(e),this.str2rstr_utf8(t))},E.prototype.hex_hmac_md5=function(e,t){return this.rstr2hex(this.raw_hmac_md5(e,t))},E.prototype.md5=function(e,t,r){return t?r?this.raw_hmac_md5(t,e):this.hex_hmac_md5(t,e):r?this.raw_md5(e):this.hex_md5(e)},e.exports&&(t=e.exports=d),t.Chance=d,void 0===(r=function(){return d}.apply(t,[]))||(e.exports=r),"undefined"!=typeof importScripts&&(chance=new d,self.Chance=d),"object"==typeof window&&"object"==typeof window.document&&(window.Chance=d,window.chance=new d)}()},98274:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){var r,a;if((0,n.default)(e),t=(0,i.default)(t,{urlSafe:!1,padding:!(null!==(r=t)&&void 0!==r&&r.urlSafe)}),""===e)return!0;if(t.padding&&e.length%4!=0)return!1;a=t.urlSafe?t.padding?c:u:t.padding?o:s;return(!t.padding||e.length%4==0)&&a.test(e)};var n=a(r(83399)),i=a(r(93610));function a(e){return e&&e.__esModule?e:{default:e}}var o=/^[A-Za-z0-9+/]+={0,2}$/,s=/^[A-Za-z0-9+/]+$/,c=/^[A-Za-z0-9_-]+={0,2}$/,u=/^[A-Za-z0-9_-]+$/;e.exports=t.default,e.exports.default=t.default},98376:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.alphabetStringUppercase=void 0;const n=r(218);t.alphabetStringUppercase=n.alphabetString.toUpperCase()},98406:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.MetadataTransformer=void 0;const o=r(71519),s=r(32287),c=r(96390),u=r(18436),l=r(76893),d=r(23615),f=r(12720);let p=class extends l.AbstractNodeTransformer{constructor(e,t){super(e,t),this.runAfter=[c.NodeTransformer.ParentificationTransformer,c.NodeTransformer.VariablePreserveTransformer]}getVisitor(e){return e===u.NodeTransformationStage.Preparing?{enter:(e,t)=>this.transformNode(e,t)}:null}transformNode(e,t){return f.NodeMetadata.set(e,{ignoredNode:!1}),d.NodeGuards.isLiteralNode(e)&&f.NodeMetadata.set(e,{stringArrayCallLiteralNode:!1}),e}};t.MetadataTransformer=p,t.MetadataTransformer=p=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],p)},98597:function(e,t,r){"use strict";var n,i=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.ProcessEnvObfuscationGuard=void 0;const a=r(71519),o=r(50275),s=r(23615);let c=n=class{static isProcessEnvMemberExpression(e){return!!s.NodeGuards.isMemberExpressionNode(e)&&(s.NodeGuards.isIdentifierNode(e.object)&&"process"===e.object.name&&s.NodeGuards.isIdentifierNode(e.property)&&"env"===e.property.name&&!e.computed)}static isPartOfProcessEnvChain(e){if(n.isProcessEnvMemberExpression(e))return!0;const t=e.parentNode;if(t&&s.NodeGuards.isMemberExpressionNode(t)){if(n.isProcessEnvMemberExpression(t.object))return!0;if(n.isProcessEnvMemberExpression(t))return!0}return!1}check(e){return n.isPartOfProcessEnvChain(e)?o.ObfuscatingGuardResult.Ignore:o.ObfuscatingGuardResult.Transform}};t.ProcessEnvObfuscationGuard=c,t.ProcessEnvObfuscationGuard=c=n=i([(0,a.injectable)()],c)},98825:function(e,t,r){"use strict";var n=this&&this.__createBinding||(Object.create?function(e,t,r,n){void 0===n&&(n=r);var i=Object.getOwnPropertyDescriptor(t,r);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[r]}}),Object.defineProperty(e,n,i)}:function(e,t,r,n){void 0===n&&(n=r),e[n]=t[r]}),i=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),a=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)"default"!==r&&Object.prototype.hasOwnProperty.call(e,r)&&n(t,e,r);return i(t,e),t};Object.defineProperty(t,"__esModule",{value:!0}),t.inject=void 0;var o=a(r(2006)),s=(0,r(31601).injectBase)(o.INJECT_TAG);t.inject=s},98928:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.tagged=function(e,t){return(0,i.createTaggedDecorator)(new n.Metadata(e,t))};var n=r(14425),i=r(24157)},98986:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"en-US",r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};(0,i.default)(e);var n=e,o=r.ignore;if(o)if(o instanceof RegExp)n=n.replace(o,"");else{if("string"!=typeof o)throw new Error("ignore should be instance of a String or RegExp");n=n.replace(new RegExp("[".concat(o.replace(/[-[\]{}()*+?.,\\^$|#\\s]/g,"\\$&"),"]"),"g"),"")}if(t in a.alphanumeric)return a.alphanumeric[t].test(n);throw new Error("Invalid locale '".concat(t,"'"))},t.locales=void 0;var n,i=(n=r(83399))&&n.__esModule?n:{default:n},a=r(13237);t.locales=Object.keys(a.alphanumeric)},99013:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){t="string"==typeof t?(0,i.default)({format:t},c):(0,i.default)(t,c);if("string"==typeof e&&(S=t.format,/(^(y{4}|y{2})[.\/-](m{1,2})[.\/-](d{1,2})$)|(^(m{1,2})[.\/-](d{1,2})[.\/-]((y{4}|y{2})$))|(^(d{1,2})[.\/-](m{1,2})[.\/-]((y{4}|y{2})$))/gi.test(S))){if(t.strictMode&&e.length!==t.format.length)return!1;var r,n=t.delimiters.find(function(e){return-1!==t.format.indexOf(e)}),s=t.strictMode?n:t.delimiters.find(function(t){return-1!==e.indexOf(t)}),u=function(e,t){for(var r=[],n=Math.max(e.length,t.length),i=0;i=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(e){throw e},f:i}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var a,s=!0,c=!1;return{s:function(){r=r.call(e)},n:function(){var e=r.next();return s=e.done,e},e:function(e){c=!0,a=e},f:function(){try{s||null==r.return||r.return()}finally{if(c)throw a}}}}(u);try{for(d.s();!(r=d.n()).done;){var f=a(r.value,2),p=f[0],h=f[1];if(!p||!h||p.length!==h.length)return!1;l[h.charAt(0)]=p}}catch(e){d.e(e)}finally{d.f()}var m=l.y;if(m.startsWith("-"))return!1;if(2===l.y.length){var g=parseInt(l.y,10);if(isNaN(g))return!1;m=g<(new Date).getFullYear()%100?"20".concat(l.y):"19".concat(l.y)}var b=l.m;1===l.m.length&&(b="0".concat(l.m));var y=l.d;return 1===l.d.length&&(y="0".concat(l.d)),new Date("".concat(m,"-").concat(b,"-").concat(y,"T00:00:00.000Z")).getUTCDate()===+l.d}var S;if(!t.strictMode)return"[object Date]"===Object.prototype.toString.call(e)&&isFinite(e);return!1};var n,i=(n=r(93610))&&n.__esModule?n:{default:n};function a(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,i,a,o,s=[],c=!0,u=!1;try{if(a=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;c=!1}else for(;!(c=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);c=!0);}catch(e){u=!0,i=e}finally{try{if(!c&&null!=r.return&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}(e,t)||o(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function o(e,t){if(e){if("string"==typeof e)return s(e,t);var r={}.toString.call(e).slice(8,-1);return"Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r?Array.from(e):"Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?s(e,t):void 0}}function s(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o},i=this&&this.__metadata||function(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)},a=this&&this.__param||function(e,t){return function(r,n){t(r,n,e)}};Object.defineProperty(t,"__esModule",{value:!0}),t.StringArrayScopeCallsWrappersDataStorage=void 0;const o=r(71519),s=r(32287),c=r(33600);let u=class extends c.WeakMapStorage{constructor(e,t){super(e,t)}};t.StringArrayScopeCallsWrappersDataStorage=u,t.StringArrayScopeCallsWrappersDataStorage=u=n([(0,o.injectable)(),a(0,(0,o.inject)(s.ServiceIdentifiers.IRandomGenerator)),a(1,(0,o.inject)(s.ServiceIdentifiers.IOptions)),i("design:paramtypes",[Object,Object])],u)},99319:function(e,t,r){"use strict";var n=this&&this.__decorate||function(e,t,r,n){var i,a=arguments.length,o=a<3?t:null===n?n=Object.getOwnPropertyDescriptor(t,r):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)o=Reflect.decorate(e,t,r,n);else for(var s=e.length-1;s>=0;s--)(i=e[s])&&(o=(a<3?i(o):a>3?i(t,r,o):i(t,r))||o);return a>3&&o&&Object.defineProperty(t,r,o),o};Object.defineProperty(t,"__esModule",{value:!0}),t.LevelledTopologicalSorter=void 0;const i=r(71519);let a=class{constructor(){this.graph=new Map}add(e,t=null){return null!==t?this.link(e,t):this.register(e)}sort(){const e=Array.from(this.graph.keys()),t=[],r={};for(const n of e)void 0===r[n]&&this.visit(t,r,n);return t}sortByGroups(){this.sort();const e=[];for(;this.hasNodes();){const t=this.findRootNodes();e.push(t);for(const e of t)this.delete(e)}return e}delete(e){if(this.getPrecedents(e).length)throw new Error(`Unable to remove non-root node: ${e}`);this.graph.delete(e);const t=Array.from(this.graph.values());for(const r of t){for(let t=r.length-1;t>=0;t-=1)r[t]===e&&r.splice(t,1)}}findRootNodes(){const e=Array.from(this.graph.keys()),t=[];for(const r of e)this.hasPrecedents(r)||t.push(r);return t}getPrecedents(e){const t=this.graph.get(e);if(!t)throw new Error(`Unknown node: ${e}`);return t}hasNodes(){return this.graph.size>0}hasPrecedents(e){return this.getPrecedents(e).length>0}link(e,t){this.register(e),this.register(t);const r=this.graph.get(t);return r&&!r.includes(e)&&r.push(e),this}register(e){return this.graph.has(e)||this.graph.set(e,[]),this}visit(e,t,r){const n=t[r];if("visiting"===n)throw new Error(`Detected cycle involving node: ${r}`);if(n)return;t[r]="visiting";const i=this.getPrecedents(r);for(const r of i)this.visit(e,t,r);t[r]="ok",e.push(r)}};t.LevelledTopologicalSorter=a,t.LevelledTopologicalSorter=a=n([(0,i.injectable)()],a)},99546:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,i.default)(e),a.test(e)};var n,i=(n=r(83399))&&n.__esModule?n:{default:n};var a=/^(0o)?[0-7]+$/i;e.exports=t.default,e.exports.default=t.default},99841:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return(0,n.default)(e),a.test(e)};var n=i(r(83399));function i(e){return e&&e.__esModule?e:{default:e}}var a=(0,i(r(55730)).default)(["^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)","(?:-((?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-z-][0-9a-z-]*))*))","?(?:\\+([0-9a-z-]+(?:\\.[0-9a-z-]+)*))?$"],"i");e.exports=t.default,e.exports.default=t.default}},__webpack_module_cache__={};function __webpack_require__(e){var t=__webpack_module_cache__[e];if(void 0!==t)return t.exports;var r=__webpack_module_cache__[e]={id:e,loaded:!1,exports:{}};return __webpack_modules__[e].call(r.exports,r,r.exports,__webpack_require__),r.loaded=!0,r.exports}__webpack_require__.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return __webpack_require__.d(t,{a:t}),t},__webpack_require__.d=(e,t)=>{for(var r in t)__webpack_require__.o(t,r)&&!__webpack_require__.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},__webpack_require__.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),__webpack_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),__webpack_require__.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},__webpack_require__.nmd=e=>(e.paths=[],e.children||(e.children=[]),e);var __webpack_exports__=__webpack_require__(70073);return __webpack_exports__})()); +//# sourceMappingURL=index.browser.js.map \ No newline at end of file diff --git a/pkg/appsec/challenge/js/obfuscate/obfuscate.js b/pkg/appsec/challenge/js/obfuscate/obfuscate.js new file mode 100644 index 00000000000..08fadb3b12a --- /dev/null +++ b/pkg/appsec/challenge/js/obfuscate/obfuscate.js @@ -0,0 +1,34 @@ +// Downloaded from https://cdn.jsdelivr.net/npm/javascript-obfuscator/dist/index.browser.js +import JavaScriptObfuscator from "./javascript-obfuscator.js"; + +function readStdin() { + const buffer = new Uint8Array(1024); + const input = []; + while (true) { + const bytesRead = Javy.IO.readSync(0, buffer); + if (bytesRead === 0) break; + const chunk = buffer.subarray(0, bytesRead); + for (let i = 0; i < bytesRead; i++) { + input.push(chunk[i]); + } + } + return new TextDecoder().decode(new Uint8Array(input)); +} + +function writeStdout(str) { + const buffer = new TextEncoder().encode(str); + Javy.IO.writeSync(1, buffer); +} + +try { + const sourceCode = readStdin(); + + const result = JavaScriptObfuscator.obfuscate( + sourceCode, + JavaScriptObfuscator.getOptionsByPreset("high-obfuscation"), + ); + + writeStdout(result.getObfuscatedCode()); +} catch (e) { + writeStdout(`// OBFUSCATION FAILED: ${e.message}`); +} diff --git a/pkg/appsec/challenge/matcher.go b/pkg/appsec/challenge/matcher.go new file mode 100644 index 00000000000..b9bc7cd3964 --- /dev/null +++ b/pkg/appsec/challenge/matcher.go @@ -0,0 +1,35 @@ +package challenge + +type ChallengeMatcher struct { + allowed bool + conditions []bool +} + +func (cm *ChallengeMatcher) AddConditions(conditions ...bool) { + cm.conditions = append(cm.conditions, conditions...) +} + +func (cm *ChallengeMatcher) Allow() bool { + allowed := true + for _, condition := range cm.conditions { + if !condition { + allowed = false + break + } + } + cm.allowed = allowed + return cm.allowed +} + +func (cm *ChallengeMatcher) Deny(reason string) bool { + if cm.allowed { + return false + } + return true +} + +func NewChallengeMatcher(conditions ...bool) *ChallengeMatcher { + return &ChallengeMatcher{ + conditions: conditions, + } +} diff --git a/pkg/appsec/challenge/pb/fingerprint.pb.go b/pkg/appsec/challenge/pb/fingerprint.pb.go new file mode 100644 index 00000000000..8c5eaf68c1c --- /dev/null +++ b/pkg/appsec/challenge/pb/fingerprint.pb.go @@ -0,0 +1,2969 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.34.1 +// source: fingerprint.proto + +package pb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type FingerprintData struct { + state protoimpl.MessageState `protogen:"open.v1"` + Signals *FingerprintSignals `protobuf:"bytes,1,opt,name=signals,proto3" json:"signals,omitempty"` + Fsid string `protobuf:"bytes,2,opt,name=fsid,proto3" json:"fsid,omitempty"` + Nonce string `protobuf:"bytes,3,opt,name=nonce,proto3" json:"nonce,omitempty"` + Time int64 `protobuf:"varint,4,opt,name=time,proto3" json:"time,omitempty"` + Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` + FastBotDetection bool `protobuf:"varint,6,opt,name=fastBotDetection,proto3" json:"fastBotDetection,omitempty"` + FastBotDetectionDetails *FingerprintFastBotDetectionDetails `protobuf:"bytes,7,opt,name=fastBotDetectionDetails,proto3" json:"fastBotDetectionDetails,omitempty"` + Bot *FingerprintBotAlias `protobuf:"bytes,8,opt,name=bot,proto3" json:"bot,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintData) Reset() { + *x = FingerprintData{} + mi := &file_fingerprint_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintData) ProtoMessage() {} + +func (x *FingerprintData) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintData.ProtoReflect.Descriptor instead. +func (*FingerprintData) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{0} +} + +func (x *FingerprintData) GetSignals() *FingerprintSignals { + if x != nil { + return x.Signals + } + return nil +} + +func (x *FingerprintData) GetFsid() string { + if x != nil { + return x.Fsid + } + return "" +} + +func (x *FingerprintData) GetNonce() string { + if x != nil { + return x.Nonce + } + return "" +} + +func (x *FingerprintData) GetTime() int64 { + if x != nil { + return x.Time + } + return 0 +} + +func (x *FingerprintData) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +func (x *FingerprintData) GetFastBotDetection() bool { + if x != nil { + return x.FastBotDetection + } + return false +} + +func (x *FingerprintData) GetFastBotDetectionDetails() *FingerprintFastBotDetectionDetails { + if x != nil { + return x.FastBotDetectionDetails + } + return nil +} + +func (x *FingerprintData) GetBot() *FingerprintBotAlias { + if x != nil { + return x.Bot + } + return nil +} + +// ChallengeCookie is the sealed cookie payload. It wraps the validated +// fingerprint together with metadata that influences re-challenge decisions +// (e.g. the PoW difficulty the client proved). Keeping this separate from +// FingerprintData lets us evolve the cookie envelope without polluting the +// fingerprint model exposed to hook expressions. +type ChallengeCookie struct { + state protoimpl.MessageState `protogen:"open.v1"` + Fingerprint *FingerprintData `protobuf:"bytes,1,opt,name=fingerprint,proto3" json:"fingerprint,omitempty"` + // pow_difficulty is the PoW difficulty (in leading zero bits) the client + // proved when this cookie was sealed. + PowDifficulty int32 `protobuf:"varint,2,opt,name=pow_difficulty,json=powDifficulty,proto3" json:"pow_difficulty,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ChallengeCookie) Reset() { + *x = ChallengeCookie{} + mi := &file_fingerprint_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ChallengeCookie) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ChallengeCookie) ProtoMessage() {} + +func (x *ChallengeCookie) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ChallengeCookie.ProtoReflect.Descriptor instead. +func (*ChallengeCookie) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{1} +} + +func (x *ChallengeCookie) GetFingerprint() *FingerprintData { + if x != nil { + return x.Fingerprint + } + return nil +} + +func (x *ChallengeCookie) GetPowDifficulty() int32 { + if x != nil { + return x.PowDifficulty + } + return 0 +} + +type FingerprintSignals struct { + state protoimpl.MessageState `protogen:"open.v1"` + Automation *FingerprintAutomation `protobuf:"bytes,1,opt,name=automation,proto3" json:"automation,omitempty"` + Device *FingerprintDevice `protobuf:"bytes,2,opt,name=device,proto3" json:"device,omitempty"` + Browser *FingerprintBrowser `protobuf:"bytes,3,opt,name=browser,proto3" json:"browser,omitempty"` + Graphics *FingerprintGraphics `protobuf:"bytes,4,opt,name=graphics,proto3" json:"graphics,omitempty"` + Codecs *FingerprintCodecs `protobuf:"bytes,5,opt,name=codecs,proto3" json:"codecs,omitempty"` + Locale *FingerprintLocale `protobuf:"bytes,6,opt,name=locale,proto3" json:"locale,omitempty"` + Contexts *FingerprintContexts `protobuf:"bytes,7,opt,name=contexts,proto3" json:"contexts,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintSignals) Reset() { + *x = FingerprintSignals{} + mi := &file_fingerprint_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintSignals) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintSignals) ProtoMessage() {} + +func (x *FingerprintSignals) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintSignals.ProtoReflect.Descriptor instead. +func (*FingerprintSignals) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{2} +} + +func (x *FingerprintSignals) GetAutomation() *FingerprintAutomation { + if x != nil { + return x.Automation + } + return nil +} + +func (x *FingerprintSignals) GetDevice() *FingerprintDevice { + if x != nil { + return x.Device + } + return nil +} + +func (x *FingerprintSignals) GetBrowser() *FingerprintBrowser { + if x != nil { + return x.Browser + } + return nil +} + +func (x *FingerprintSignals) GetGraphics() *FingerprintGraphics { + if x != nil { + return x.Graphics + } + return nil +} + +func (x *FingerprintSignals) GetCodecs() *FingerprintCodecs { + if x != nil { + return x.Codecs + } + return nil +} + +func (x *FingerprintSignals) GetLocale() *FingerprintLocale { + if x != nil { + return x.Locale + } + return nil +} + +func (x *FingerprintSignals) GetContexts() *FingerprintContexts { + if x != nil { + return x.Contexts + } + return nil +} + +type FingerprintAutomation struct { + state protoimpl.MessageState `protogen:"open.v1"` + Webdriver bool `protobuf:"varint,1,opt,name=webdriver,proto3" json:"webdriver,omitempty"` + WebdriverWritable bool `protobuf:"varint,2,opt,name=webdriverWritable,proto3" json:"webdriverWritable,omitempty"` + Selenium bool `protobuf:"varint,3,opt,name=selenium,proto3" json:"selenium,omitempty"` + Cdp bool `protobuf:"varint,4,opt,name=cdp,proto3" json:"cdp,omitempty"` + Playwright bool `protobuf:"varint,5,opt,name=playwright,proto3" json:"playwright,omitempty"` + NavigatorPropertyDescriptors string `protobuf:"bytes,6,opt,name=navigatorPropertyDescriptors,proto3" json:"navigatorPropertyDescriptors,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintAutomation) Reset() { + *x = FingerprintAutomation{} + mi := &file_fingerprint_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintAutomation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintAutomation) ProtoMessage() {} + +func (x *FingerprintAutomation) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintAutomation.ProtoReflect.Descriptor instead. +func (*FingerprintAutomation) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{3} +} + +func (x *FingerprintAutomation) GetWebdriver() bool { + if x != nil { + return x.Webdriver + } + return false +} + +func (x *FingerprintAutomation) GetWebdriverWritable() bool { + if x != nil { + return x.WebdriverWritable + } + return false +} + +func (x *FingerprintAutomation) GetSelenium() bool { + if x != nil { + return x.Selenium + } + return false +} + +func (x *FingerprintAutomation) GetCdp() bool { + if x != nil { + return x.Cdp + } + return false +} + +func (x *FingerprintAutomation) GetPlaywright() bool { + if x != nil { + return x.Playwright + } + return false +} + +func (x *FingerprintAutomation) GetNavigatorPropertyDescriptors() string { + if x != nil { + return x.NavigatorPropertyDescriptors + } + return "" +} + +type FingerprintDevice struct { + state protoimpl.MessageState `protogen:"open.v1"` + CpuCount int32 `protobuf:"varint,1,opt,name=cpuCount,proto3" json:"cpuCount,omitempty"` + Memory int32 `protobuf:"varint,2,opt,name=memory,proto3" json:"memory,omitempty"` + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` + ScreenResolution *FingerprintScreenResolution `protobuf:"bytes,4,opt,name=screenResolution,proto3" json:"screenResolution,omitempty"` + MultimediaDevices *FingerprintMultimediaDevices `protobuf:"bytes,5,opt,name=multimediaDevices,proto3" json:"multimediaDevices,omitempty"` + MediaQueries *FingerprintDeviceMediaQueries `protobuf:"bytes,6,opt,name=mediaQueries,proto3" json:"mediaQueries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintDevice) Reset() { + *x = FingerprintDevice{} + mi := &file_fingerprint_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintDevice) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintDevice) ProtoMessage() {} + +func (x *FingerprintDevice) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintDevice.ProtoReflect.Descriptor instead. +func (*FingerprintDevice) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{4} +} + +func (x *FingerprintDevice) GetCpuCount() int32 { + if x != nil { + return x.CpuCount + } + return 0 +} + +func (x *FingerprintDevice) GetMemory() int32 { + if x != nil { + return x.Memory + } + return 0 +} + +func (x *FingerprintDevice) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *FingerprintDevice) GetScreenResolution() *FingerprintScreenResolution { + if x != nil { + return x.ScreenResolution + } + return nil +} + +func (x *FingerprintDevice) GetMultimediaDevices() *FingerprintMultimediaDevices { + if x != nil { + return x.MultimediaDevices + } + return nil +} + +func (x *FingerprintDevice) GetMediaQueries() *FingerprintDeviceMediaQueries { + if x != nil { + return x.MediaQueries + } + return nil +} + +type FingerprintScreenResolution struct { + state protoimpl.MessageState `protogen:"open.v1"` + Width int32 `protobuf:"varint,1,opt,name=width,proto3" json:"width,omitempty"` + Height int32 `protobuf:"varint,2,opt,name=height,proto3" json:"height,omitempty"` + PixelDepth int32 `protobuf:"varint,3,opt,name=pixelDepth,proto3" json:"pixelDepth,omitempty"` + ColorDepth int32 `protobuf:"varint,4,opt,name=colorDepth,proto3" json:"colorDepth,omitempty"` + AvailableWidth int32 `protobuf:"varint,5,opt,name=availableWidth,proto3" json:"availableWidth,omitempty"` + AvailableHeight int32 `protobuf:"varint,6,opt,name=availableHeight,proto3" json:"availableHeight,omitempty"` + InnerWidth int32 `protobuf:"varint,7,opt,name=innerWidth,proto3" json:"innerWidth,omitempty"` + InnerHeight int32 `protobuf:"varint,8,opt,name=innerHeight,proto3" json:"innerHeight,omitempty"` + HasMultipleDisplays bool `protobuf:"varint,9,opt,name=hasMultipleDisplays,proto3" json:"hasMultipleDisplays,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintScreenResolution) Reset() { + *x = FingerprintScreenResolution{} + mi := &file_fingerprint_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintScreenResolution) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintScreenResolution) ProtoMessage() {} + +func (x *FingerprintScreenResolution) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintScreenResolution.ProtoReflect.Descriptor instead. +func (*FingerprintScreenResolution) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{5} +} + +func (x *FingerprintScreenResolution) GetWidth() int32 { + if x != nil { + return x.Width + } + return 0 +} + +func (x *FingerprintScreenResolution) GetHeight() int32 { + if x != nil { + return x.Height + } + return 0 +} + +func (x *FingerprintScreenResolution) GetPixelDepth() int32 { + if x != nil { + return x.PixelDepth + } + return 0 +} + +func (x *FingerprintScreenResolution) GetColorDepth() int32 { + if x != nil { + return x.ColorDepth + } + return 0 +} + +func (x *FingerprintScreenResolution) GetAvailableWidth() int32 { + if x != nil { + return x.AvailableWidth + } + return 0 +} + +func (x *FingerprintScreenResolution) GetAvailableHeight() int32 { + if x != nil { + return x.AvailableHeight + } + return 0 +} + +func (x *FingerprintScreenResolution) GetInnerWidth() int32 { + if x != nil { + return x.InnerWidth + } + return 0 +} + +func (x *FingerprintScreenResolution) GetInnerHeight() int32 { + if x != nil { + return x.InnerHeight + } + return 0 +} + +func (x *FingerprintScreenResolution) GetHasMultipleDisplays() bool { + if x != nil { + return x.HasMultipleDisplays + } + return false +} + +type FingerprintMultimediaDevices struct { + state protoimpl.MessageState `protogen:"open.v1"` + Speakers int32 `protobuf:"varint,1,opt,name=speakers,proto3" json:"speakers,omitempty"` + Microphones int32 `protobuf:"varint,2,opt,name=microphones,proto3" json:"microphones,omitempty"` + Webcams int32 `protobuf:"varint,3,opt,name=webcams,proto3" json:"webcams,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintMultimediaDevices) Reset() { + *x = FingerprintMultimediaDevices{} + mi := &file_fingerprint_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintMultimediaDevices) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintMultimediaDevices) ProtoMessage() {} + +func (x *FingerprintMultimediaDevices) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintMultimediaDevices.ProtoReflect.Descriptor instead. +func (*FingerprintMultimediaDevices) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{6} +} + +func (x *FingerprintMultimediaDevices) GetSpeakers() int32 { + if x != nil { + return x.Speakers + } + return 0 +} + +func (x *FingerprintMultimediaDevices) GetMicrophones() int32 { + if x != nil { + return x.Microphones + } + return 0 +} + +func (x *FingerprintMultimediaDevices) GetWebcams() int32 { + if x != nil { + return x.Webcams + } + return 0 +} + +type FingerprintDeviceMediaQueries struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrefersColorScheme string `protobuf:"bytes,1,opt,name=prefersColorScheme,proto3" json:"prefersColorScheme,omitempty"` + PrefersReducedMotion bool `protobuf:"varint,2,opt,name=prefersReducedMotion,proto3" json:"prefersReducedMotion,omitempty"` + PrefersReducedTransparency bool `protobuf:"varint,3,opt,name=prefersReducedTransparency,proto3" json:"prefersReducedTransparency,omitempty"` + ColorGamut string `protobuf:"bytes,4,opt,name=colorGamut,proto3" json:"colorGamut,omitempty"` + Pointer string `protobuf:"bytes,5,opt,name=pointer,proto3" json:"pointer,omitempty"` + AnyPointer string `protobuf:"bytes,6,opt,name=anyPointer,proto3" json:"anyPointer,omitempty"` + Hover bool `protobuf:"varint,7,opt,name=hover,proto3" json:"hover,omitempty"` + AnyHover bool `protobuf:"varint,8,opt,name=anyHover,proto3" json:"anyHover,omitempty"` + ColorDepth int32 `protobuf:"varint,9,opt,name=colorDepth,proto3" json:"colorDepth,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintDeviceMediaQueries) Reset() { + *x = FingerprintDeviceMediaQueries{} + mi := &file_fingerprint_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintDeviceMediaQueries) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintDeviceMediaQueries) ProtoMessage() {} + +func (x *FingerprintDeviceMediaQueries) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintDeviceMediaQueries.ProtoReflect.Descriptor instead. +func (*FingerprintDeviceMediaQueries) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{7} +} + +func (x *FingerprintDeviceMediaQueries) GetPrefersColorScheme() string { + if x != nil { + return x.PrefersColorScheme + } + return "" +} + +func (x *FingerprintDeviceMediaQueries) GetPrefersReducedMotion() bool { + if x != nil { + return x.PrefersReducedMotion + } + return false +} + +func (x *FingerprintDeviceMediaQueries) GetPrefersReducedTransparency() bool { + if x != nil { + return x.PrefersReducedTransparency + } + return false +} + +func (x *FingerprintDeviceMediaQueries) GetColorGamut() string { + if x != nil { + return x.ColorGamut + } + return "" +} + +func (x *FingerprintDeviceMediaQueries) GetPointer() string { + if x != nil { + return x.Pointer + } + return "" +} + +func (x *FingerprintDeviceMediaQueries) GetAnyPointer() string { + if x != nil { + return x.AnyPointer + } + return "" +} + +func (x *FingerprintDeviceMediaQueries) GetHover() bool { + if x != nil { + return x.Hover + } + return false +} + +func (x *FingerprintDeviceMediaQueries) GetAnyHover() bool { + if x != nil { + return x.AnyHover + } + return false +} + +func (x *FingerprintDeviceMediaQueries) GetColorDepth() int32 { + if x != nil { + return x.ColorDepth + } + return 0 +} + +type FingerprintBrowser struct { + state protoimpl.MessageState `protogen:"open.v1"` + UserAgent string `protobuf:"bytes,1,opt,name=userAgent,proto3" json:"userAgent,omitempty"` + Features *FingerprintBrowserFeatures `protobuf:"bytes,2,opt,name=features,proto3" json:"features,omitempty"` + Plugins *FingerprintBrowserPlugins `protobuf:"bytes,3,opt,name=plugins,proto3" json:"plugins,omitempty"` + Extensions *FingerprintBrowserExtensions `protobuf:"bytes,4,opt,name=extensions,proto3" json:"extensions,omitempty"` + HighEntropyValues *FingerprintBrowserHighEntropyValues `protobuf:"bytes,5,opt,name=highEntropyValues,proto3" json:"highEntropyValues,omitempty"` + Etsl int32 `protobuf:"varint,6,opt,name=etsl,proto3" json:"etsl,omitempty"` + Maths string `protobuf:"bytes,7,opt,name=maths,proto3" json:"maths,omitempty"` + ToSourceError *FingerprintBrowserToSourceError `protobuf:"bytes,8,opt,name=toSourceError,proto3" json:"toSourceError,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrowser) Reset() { + *x = FingerprintBrowser{} + mi := &file_fingerprint_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrowser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrowser) ProtoMessage() {} + +func (x *FingerprintBrowser) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrowser.ProtoReflect.Descriptor instead. +func (*FingerprintBrowser) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{8} +} + +func (x *FingerprintBrowser) GetUserAgent() string { + if x != nil { + return x.UserAgent + } + return "" +} + +func (x *FingerprintBrowser) GetFeatures() *FingerprintBrowserFeatures { + if x != nil { + return x.Features + } + return nil +} + +func (x *FingerprintBrowser) GetPlugins() *FingerprintBrowserPlugins { + if x != nil { + return x.Plugins + } + return nil +} + +func (x *FingerprintBrowser) GetExtensions() *FingerprintBrowserExtensions { + if x != nil { + return x.Extensions + } + return nil +} + +func (x *FingerprintBrowser) GetHighEntropyValues() *FingerprintBrowserHighEntropyValues { + if x != nil { + return x.HighEntropyValues + } + return nil +} + +func (x *FingerprintBrowser) GetEtsl() int32 { + if x != nil { + return x.Etsl + } + return 0 +} + +func (x *FingerprintBrowser) GetMaths() string { + if x != nil { + return x.Maths + } + return "" +} + +func (x *FingerprintBrowser) GetToSourceError() *FingerprintBrowserToSourceError { + if x != nil { + return x.ToSourceError + } + return nil +} + +type FingerprintBrowserFeatures struct { + state protoimpl.MessageState `protogen:"open.v1"` + Bitmask string `protobuf:"bytes,1,opt,name=bitmask,proto3" json:"bitmask,omitempty"` + Chrome bool `protobuf:"varint,2,opt,name=chrome,proto3" json:"chrome,omitempty"` + Brave bool `protobuf:"varint,3,opt,name=brave,proto3" json:"brave,omitempty"` + ApplePaySupport bool `protobuf:"varint,4,opt,name=applePaySupport,proto3" json:"applePaySupport,omitempty"` + Opera bool `protobuf:"varint,5,opt,name=opera,proto3" json:"opera,omitempty"` + Serial bool `protobuf:"varint,6,opt,name=serial,proto3" json:"serial,omitempty"` + AttachShadow bool `protobuf:"varint,7,opt,name=attachShadow,proto3" json:"attachShadow,omitempty"` + Caches bool `protobuf:"varint,8,opt,name=caches,proto3" json:"caches,omitempty"` + WebAssembly bool `protobuf:"varint,9,opt,name=webAssembly,proto3" json:"webAssembly,omitempty"` + Buffer bool `protobuf:"varint,10,opt,name=buffer,proto3" json:"buffer,omitempty"` + ShowModalDialog bool `protobuf:"varint,11,opt,name=showModalDialog,proto3" json:"showModalDialog,omitempty"` + Safari bool `protobuf:"varint,12,opt,name=safari,proto3" json:"safari,omitempty"` + WebkitPrefixedFunction bool `protobuf:"varint,13,opt,name=webkitPrefixedFunction,proto3" json:"webkitPrefixedFunction,omitempty"` + MozPrefixedFunction bool `protobuf:"varint,14,opt,name=mozPrefixedFunction,proto3" json:"mozPrefixedFunction,omitempty"` + Usb bool `protobuf:"varint,15,opt,name=usb,proto3" json:"usb,omitempty"` + BrowserCapture bool `protobuf:"varint,16,opt,name=browserCapture,proto3" json:"browserCapture,omitempty"` + PaymentRequestUpdateEvent bool `protobuf:"varint,17,opt,name=paymentRequestUpdateEvent,proto3" json:"paymentRequestUpdateEvent,omitempty"` + PressureObserver bool `protobuf:"varint,18,opt,name=pressureObserver,proto3" json:"pressureObserver,omitempty"` + AudioSession bool `protobuf:"varint,19,opt,name=audioSession,proto3" json:"audioSession,omitempty"` + SelectAudioOutput bool `protobuf:"varint,20,opt,name=selectAudioOutput,proto3" json:"selectAudioOutput,omitempty"` + BarcodeDetector bool `protobuf:"varint,21,opt,name=barcodeDetector,proto3" json:"barcodeDetector,omitempty"` + Battery bool `protobuf:"varint,22,opt,name=battery,proto3" json:"battery,omitempty"` + DevicePosture bool `protobuf:"varint,23,opt,name=devicePosture,proto3" json:"devicePosture,omitempty"` + DocumentPictureInPicture bool `protobuf:"varint,24,opt,name=documentPictureInPicture,proto3" json:"documentPictureInPicture,omitempty"` + EyeDropper bool `protobuf:"varint,25,opt,name=eyeDropper,proto3" json:"eyeDropper,omitempty"` + EditContext bool `protobuf:"varint,26,opt,name=editContext,proto3" json:"editContext,omitempty"` + FencedFrame bool `protobuf:"varint,27,opt,name=fencedFrame,proto3" json:"fencedFrame,omitempty"` + Sanitizer bool `protobuf:"varint,28,opt,name=sanitizer,proto3" json:"sanitizer,omitempty"` + OtpCredential bool `protobuf:"varint,29,opt,name=otpCredential,proto3" json:"otpCredential,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrowserFeatures) Reset() { + *x = FingerprintBrowserFeatures{} + mi := &file_fingerprint_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrowserFeatures) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrowserFeatures) ProtoMessage() {} + +func (x *FingerprintBrowserFeatures) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrowserFeatures.ProtoReflect.Descriptor instead. +func (*FingerprintBrowserFeatures) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{9} +} + +func (x *FingerprintBrowserFeatures) GetBitmask() string { + if x != nil { + return x.Bitmask + } + return "" +} + +func (x *FingerprintBrowserFeatures) GetChrome() bool { + if x != nil { + return x.Chrome + } + return false +} + +func (x *FingerprintBrowserFeatures) GetBrave() bool { + if x != nil { + return x.Brave + } + return false +} + +func (x *FingerprintBrowserFeatures) GetApplePaySupport() bool { + if x != nil { + return x.ApplePaySupport + } + return false +} + +func (x *FingerprintBrowserFeatures) GetOpera() bool { + if x != nil { + return x.Opera + } + return false +} + +func (x *FingerprintBrowserFeatures) GetSerial() bool { + if x != nil { + return x.Serial + } + return false +} + +func (x *FingerprintBrowserFeatures) GetAttachShadow() bool { + if x != nil { + return x.AttachShadow + } + return false +} + +func (x *FingerprintBrowserFeatures) GetCaches() bool { + if x != nil { + return x.Caches + } + return false +} + +func (x *FingerprintBrowserFeatures) GetWebAssembly() bool { + if x != nil { + return x.WebAssembly + } + return false +} + +func (x *FingerprintBrowserFeatures) GetBuffer() bool { + if x != nil { + return x.Buffer + } + return false +} + +func (x *FingerprintBrowserFeatures) GetShowModalDialog() bool { + if x != nil { + return x.ShowModalDialog + } + return false +} + +func (x *FingerprintBrowserFeatures) GetSafari() bool { + if x != nil { + return x.Safari + } + return false +} + +func (x *FingerprintBrowserFeatures) GetWebkitPrefixedFunction() bool { + if x != nil { + return x.WebkitPrefixedFunction + } + return false +} + +func (x *FingerprintBrowserFeatures) GetMozPrefixedFunction() bool { + if x != nil { + return x.MozPrefixedFunction + } + return false +} + +func (x *FingerprintBrowserFeatures) GetUsb() bool { + if x != nil { + return x.Usb + } + return false +} + +func (x *FingerprintBrowserFeatures) GetBrowserCapture() bool { + if x != nil { + return x.BrowserCapture + } + return false +} + +func (x *FingerprintBrowserFeatures) GetPaymentRequestUpdateEvent() bool { + if x != nil { + return x.PaymentRequestUpdateEvent + } + return false +} + +func (x *FingerprintBrowserFeatures) GetPressureObserver() bool { + if x != nil { + return x.PressureObserver + } + return false +} + +func (x *FingerprintBrowserFeatures) GetAudioSession() bool { + if x != nil { + return x.AudioSession + } + return false +} + +func (x *FingerprintBrowserFeatures) GetSelectAudioOutput() bool { + if x != nil { + return x.SelectAudioOutput + } + return false +} + +func (x *FingerprintBrowserFeatures) GetBarcodeDetector() bool { + if x != nil { + return x.BarcodeDetector + } + return false +} + +func (x *FingerprintBrowserFeatures) GetBattery() bool { + if x != nil { + return x.Battery + } + return false +} + +func (x *FingerprintBrowserFeatures) GetDevicePosture() bool { + if x != nil { + return x.DevicePosture + } + return false +} + +func (x *FingerprintBrowserFeatures) GetDocumentPictureInPicture() bool { + if x != nil { + return x.DocumentPictureInPicture + } + return false +} + +func (x *FingerprintBrowserFeatures) GetEyeDropper() bool { + if x != nil { + return x.EyeDropper + } + return false +} + +func (x *FingerprintBrowserFeatures) GetEditContext() bool { + if x != nil { + return x.EditContext + } + return false +} + +func (x *FingerprintBrowserFeatures) GetFencedFrame() bool { + if x != nil { + return x.FencedFrame + } + return false +} + +func (x *FingerprintBrowserFeatures) GetSanitizer() bool { + if x != nil { + return x.Sanitizer + } + return false +} + +func (x *FingerprintBrowserFeatures) GetOtpCredential() bool { + if x != nil { + return x.OtpCredential + } + return false +} + +type FingerprintBrowserPlugins struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsValidPluginArray bool `protobuf:"varint,1,opt,name=isValidPluginArray,proto3" json:"isValidPluginArray,omitempty"` + PluginCount int32 `protobuf:"varint,2,opt,name=pluginCount,proto3" json:"pluginCount,omitempty"` + PluginNamesHash string `protobuf:"bytes,3,opt,name=pluginNamesHash,proto3" json:"pluginNamesHash,omitempty"` + PluginConsistency1 bool `protobuf:"varint,4,opt,name=pluginConsistency1,proto3" json:"pluginConsistency1,omitempty"` + PluginOverflow bool `protobuf:"varint,5,opt,name=pluginOverflow,proto3" json:"pluginOverflow,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrowserPlugins) Reset() { + *x = FingerprintBrowserPlugins{} + mi := &file_fingerprint_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrowserPlugins) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrowserPlugins) ProtoMessage() {} + +func (x *FingerprintBrowserPlugins) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrowserPlugins.ProtoReflect.Descriptor instead. +func (*FingerprintBrowserPlugins) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{10} +} + +func (x *FingerprintBrowserPlugins) GetIsValidPluginArray() bool { + if x != nil { + return x.IsValidPluginArray + } + return false +} + +func (x *FingerprintBrowserPlugins) GetPluginCount() int32 { + if x != nil { + return x.PluginCount + } + return 0 +} + +func (x *FingerprintBrowserPlugins) GetPluginNamesHash() string { + if x != nil { + return x.PluginNamesHash + } + return "" +} + +func (x *FingerprintBrowserPlugins) GetPluginConsistency1() bool { + if x != nil { + return x.PluginConsistency1 + } + return false +} + +func (x *FingerprintBrowserPlugins) GetPluginOverflow() bool { + if x != nil { + return x.PluginOverflow + } + return false +} + +type FingerprintBrowserExtensions struct { + state protoimpl.MessageState `protogen:"open.v1"` + Bitmask string `protobuf:"bytes,1,opt,name=bitmask,proto3" json:"bitmask,omitempty"` + Extensions []string `protobuf:"bytes,2,rep,name=extensions,proto3" json:"extensions,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrowserExtensions) Reset() { + *x = FingerprintBrowserExtensions{} + mi := &file_fingerprint_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrowserExtensions) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrowserExtensions) ProtoMessage() {} + +func (x *FingerprintBrowserExtensions) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrowserExtensions.ProtoReflect.Descriptor instead. +func (*FingerprintBrowserExtensions) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{11} +} + +func (x *FingerprintBrowserExtensions) GetBitmask() string { + if x != nil { + return x.Bitmask + } + return "" +} + +func (x *FingerprintBrowserExtensions) GetExtensions() []string { + if x != nil { + return x.Extensions + } + return nil +} + +type FingerprintBrowserHighEntropyValues struct { + state protoimpl.MessageState `protogen:"open.v1"` + Architecture string `protobuf:"bytes,1,opt,name=architecture,proto3" json:"architecture,omitempty"` + Bitness string `protobuf:"bytes,2,opt,name=bitness,proto3" json:"bitness,omitempty"` + Brands []*FingerprintBrandVersion `protobuf:"bytes,3,rep,name=brands,proto3" json:"brands,omitempty"` + Mobile bool `protobuf:"varint,4,opt,name=mobile,proto3" json:"mobile,omitempty"` + Model string `protobuf:"bytes,5,opt,name=model,proto3" json:"model,omitempty"` + Platform string `protobuf:"bytes,6,opt,name=platform,proto3" json:"platform,omitempty"` + PlatformVersion string `protobuf:"bytes,7,opt,name=platformVersion,proto3" json:"platformVersion,omitempty"` + UaFullVersion string `protobuf:"bytes,8,opt,name=uaFullVersion,proto3" json:"uaFullVersion,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrowserHighEntropyValues) Reset() { + *x = FingerprintBrowserHighEntropyValues{} + mi := &file_fingerprint_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrowserHighEntropyValues) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrowserHighEntropyValues) ProtoMessage() {} + +func (x *FingerprintBrowserHighEntropyValues) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrowserHighEntropyValues.ProtoReflect.Descriptor instead. +func (*FingerprintBrowserHighEntropyValues) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{12} +} + +func (x *FingerprintBrowserHighEntropyValues) GetArchitecture() string { + if x != nil { + return x.Architecture + } + return "" +} + +func (x *FingerprintBrowserHighEntropyValues) GetBitness() string { + if x != nil { + return x.Bitness + } + return "" +} + +func (x *FingerprintBrowserHighEntropyValues) GetBrands() []*FingerprintBrandVersion { + if x != nil { + return x.Brands + } + return nil +} + +func (x *FingerprintBrowserHighEntropyValues) GetMobile() bool { + if x != nil { + return x.Mobile + } + return false +} + +func (x *FingerprintBrowserHighEntropyValues) GetModel() string { + if x != nil { + return x.Model + } + return "" +} + +func (x *FingerprintBrowserHighEntropyValues) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *FingerprintBrowserHighEntropyValues) GetPlatformVersion() string { + if x != nil { + return x.PlatformVersion + } + return "" +} + +func (x *FingerprintBrowserHighEntropyValues) GetUaFullVersion() string { + if x != nil { + return x.UaFullVersion + } + return "" +} + +type FingerprintBrandVersion struct { + state protoimpl.MessageState `protogen:"open.v1"` + Brand string `protobuf:"bytes,1,opt,name=brand,proto3" json:"brand,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrandVersion) Reset() { + *x = FingerprintBrandVersion{} + mi := &file_fingerprint_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrandVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrandVersion) ProtoMessage() {} + +func (x *FingerprintBrandVersion) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrandVersion.ProtoReflect.Descriptor instead. +func (*FingerprintBrandVersion) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{13} +} + +func (x *FingerprintBrandVersion) GetBrand() string { + if x != nil { + return x.Brand + } + return "" +} + +func (x *FingerprintBrandVersion) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type FingerprintBrowserToSourceError struct { + state protoimpl.MessageState `protogen:"open.v1"` + ToSourceError string `protobuf:"bytes,1,opt,name=toSourceError,proto3" json:"toSourceError,omitempty"` + HasToSource bool `protobuf:"varint,2,opt,name=hasToSource,proto3" json:"hasToSource,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBrowserToSourceError) Reset() { + *x = FingerprintBrowserToSourceError{} + mi := &file_fingerprint_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBrowserToSourceError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBrowserToSourceError) ProtoMessage() {} + +func (x *FingerprintBrowserToSourceError) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBrowserToSourceError.ProtoReflect.Descriptor instead. +func (*FingerprintBrowserToSourceError) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{14} +} + +func (x *FingerprintBrowserToSourceError) GetToSourceError() string { + if x != nil { + return x.ToSourceError + } + return "" +} + +func (x *FingerprintBrowserToSourceError) GetHasToSource() bool { + if x != nil { + return x.HasToSource + } + return false +} + +type FingerprintGraphics struct { + state protoimpl.MessageState `protogen:"open.v1"` + WebGL *FingerprintGraphicsWebGL `protobuf:"bytes,1,opt,name=webGL,proto3" json:"webGL,omitempty"` + Webgpu *FingerprintGraphicsWebGPU `protobuf:"bytes,2,opt,name=webgpu,proto3" json:"webgpu,omitempty"` + Canvas *FingerprintGraphicsCanvas `protobuf:"bytes,3,opt,name=canvas,proto3" json:"canvas,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintGraphics) Reset() { + *x = FingerprintGraphics{} + mi := &file_fingerprint_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintGraphics) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintGraphics) ProtoMessage() {} + +func (x *FingerprintGraphics) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintGraphics.ProtoReflect.Descriptor instead. +func (*FingerprintGraphics) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{15} +} + +func (x *FingerprintGraphics) GetWebGL() *FingerprintGraphicsWebGL { + if x != nil { + return x.WebGL + } + return nil +} + +func (x *FingerprintGraphics) GetWebgpu() *FingerprintGraphicsWebGPU { + if x != nil { + return x.Webgpu + } + return nil +} + +func (x *FingerprintGraphics) GetCanvas() *FingerprintGraphicsCanvas { + if x != nil { + return x.Canvas + } + return nil +} + +type FingerprintGraphicsWebGL struct { + state protoimpl.MessageState `protogen:"open.v1"` + Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"` + Renderer string `protobuf:"bytes,2,opt,name=renderer,proto3" json:"renderer,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintGraphicsWebGL) Reset() { + *x = FingerprintGraphicsWebGL{} + mi := &file_fingerprint_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintGraphicsWebGL) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintGraphicsWebGL) ProtoMessage() {} + +func (x *FingerprintGraphicsWebGL) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintGraphicsWebGL.ProtoReflect.Descriptor instead. +func (*FingerprintGraphicsWebGL) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{16} +} + +func (x *FingerprintGraphicsWebGL) GetVendor() string { + if x != nil { + return x.Vendor + } + return "" +} + +func (x *FingerprintGraphicsWebGL) GetRenderer() string { + if x != nil { + return x.Renderer + } + return "" +} + +type FingerprintGraphicsWebGPU struct { + state protoimpl.MessageState `protogen:"open.v1"` + Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"` + Architecture string `protobuf:"bytes,2,opt,name=architecture,proto3" json:"architecture,omitempty"` + Device string `protobuf:"bytes,3,opt,name=device,proto3" json:"device,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintGraphicsWebGPU) Reset() { + *x = FingerprintGraphicsWebGPU{} + mi := &file_fingerprint_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintGraphicsWebGPU) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintGraphicsWebGPU) ProtoMessage() {} + +func (x *FingerprintGraphicsWebGPU) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintGraphicsWebGPU.ProtoReflect.Descriptor instead. +func (*FingerprintGraphicsWebGPU) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{17} +} + +func (x *FingerprintGraphicsWebGPU) GetVendor() string { + if x != nil { + return x.Vendor + } + return "" +} + +func (x *FingerprintGraphicsWebGPU) GetArchitecture() string { + if x != nil { + return x.Architecture + } + return "" +} + +func (x *FingerprintGraphicsWebGPU) GetDevice() string { + if x != nil { + return x.Device + } + return "" +} + +func (x *FingerprintGraphicsWebGPU) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type FingerprintGraphicsCanvas struct { + state protoimpl.MessageState `protogen:"open.v1"` + HasModifiedCanvas bool `protobuf:"varint,1,opt,name=hasModifiedCanvas,proto3" json:"hasModifiedCanvas,omitempty"` + CanvasFingerprint string `protobuf:"bytes,2,opt,name=canvasFingerprint,proto3" json:"canvasFingerprint,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintGraphicsCanvas) Reset() { + *x = FingerprintGraphicsCanvas{} + mi := &file_fingerprint_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintGraphicsCanvas) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintGraphicsCanvas) ProtoMessage() {} + +func (x *FingerprintGraphicsCanvas) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintGraphicsCanvas.ProtoReflect.Descriptor instead. +func (*FingerprintGraphicsCanvas) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{18} +} + +func (x *FingerprintGraphicsCanvas) GetHasModifiedCanvas() bool { + if x != nil { + return x.HasModifiedCanvas + } + return false +} + +func (x *FingerprintGraphicsCanvas) GetCanvasFingerprint() string { + if x != nil { + return x.CanvasFingerprint + } + return "" +} + +type FingerprintCodecs struct { + state protoimpl.MessageState `protogen:"open.v1"` + AudioCanPlayTypeHash string `protobuf:"bytes,1,opt,name=audioCanPlayTypeHash,proto3" json:"audioCanPlayTypeHash,omitempty"` + VideoCanPlayTypeHash string `protobuf:"bytes,2,opt,name=videoCanPlayTypeHash,proto3" json:"videoCanPlayTypeHash,omitempty"` + AudioMediaSourceHash string `protobuf:"bytes,3,opt,name=audioMediaSourceHash,proto3" json:"audioMediaSourceHash,omitempty"` + VideoMediaSourceHash string `protobuf:"bytes,4,opt,name=videoMediaSourceHash,proto3" json:"videoMediaSourceHash,omitempty"` + RtcAudioCapabilitiesHash string `protobuf:"bytes,5,opt,name=rtcAudioCapabilitiesHash,proto3" json:"rtcAudioCapabilitiesHash,omitempty"` + RtcVideoCapabilitiesHash string `protobuf:"bytes,6,opt,name=rtcVideoCapabilitiesHash,proto3" json:"rtcVideoCapabilitiesHash,omitempty"` + HasMediaSource bool `protobuf:"varint,7,opt,name=hasMediaSource,proto3" json:"hasMediaSource,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintCodecs) Reset() { + *x = FingerprintCodecs{} + mi := &file_fingerprint_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintCodecs) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintCodecs) ProtoMessage() {} + +func (x *FingerprintCodecs) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintCodecs.ProtoReflect.Descriptor instead. +func (*FingerprintCodecs) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{19} +} + +func (x *FingerprintCodecs) GetAudioCanPlayTypeHash() string { + if x != nil { + return x.AudioCanPlayTypeHash + } + return "" +} + +func (x *FingerprintCodecs) GetVideoCanPlayTypeHash() string { + if x != nil { + return x.VideoCanPlayTypeHash + } + return "" +} + +func (x *FingerprintCodecs) GetAudioMediaSourceHash() string { + if x != nil { + return x.AudioMediaSourceHash + } + return "" +} + +func (x *FingerprintCodecs) GetVideoMediaSourceHash() string { + if x != nil { + return x.VideoMediaSourceHash + } + return "" +} + +func (x *FingerprintCodecs) GetRtcAudioCapabilitiesHash() string { + if x != nil { + return x.RtcAudioCapabilitiesHash + } + return "" +} + +func (x *FingerprintCodecs) GetRtcVideoCapabilitiesHash() string { + if x != nil { + return x.RtcVideoCapabilitiesHash + } + return "" +} + +func (x *FingerprintCodecs) GetHasMediaSource() bool { + if x != nil { + return x.HasMediaSource + } + return false +} + +type FingerprintLocale struct { + state protoimpl.MessageState `protogen:"open.v1"` + Internationalization *FingerprintLocaleInternationalization `protobuf:"bytes,1,opt,name=internationalization,proto3" json:"internationalization,omitempty"` + Languages *FingerprintLocaleLanguages `protobuf:"bytes,2,opt,name=languages,proto3" json:"languages,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintLocale) Reset() { + *x = FingerprintLocale{} + mi := &file_fingerprint_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintLocale) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintLocale) ProtoMessage() {} + +func (x *FingerprintLocale) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintLocale.ProtoReflect.Descriptor instead. +func (*FingerprintLocale) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{20} +} + +func (x *FingerprintLocale) GetInternationalization() *FingerprintLocaleInternationalization { + if x != nil { + return x.Internationalization + } + return nil +} + +func (x *FingerprintLocale) GetLanguages() *FingerprintLocaleLanguages { + if x != nil { + return x.Languages + } + return nil +} + +type FingerprintLocaleInternationalization struct { + state protoimpl.MessageState `protogen:"open.v1"` + Timezone string `protobuf:"bytes,1,opt,name=timezone,proto3" json:"timezone,omitempty"` + LocaleLanguage string `protobuf:"bytes,2,opt,name=localeLanguage,proto3" json:"localeLanguage,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintLocaleInternationalization) Reset() { + *x = FingerprintLocaleInternationalization{} + mi := &file_fingerprint_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintLocaleInternationalization) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintLocaleInternationalization) ProtoMessage() {} + +func (x *FingerprintLocaleInternationalization) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintLocaleInternationalization.ProtoReflect.Descriptor instead. +func (*FingerprintLocaleInternationalization) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{21} +} + +func (x *FingerprintLocaleInternationalization) GetTimezone() string { + if x != nil { + return x.Timezone + } + return "" +} + +func (x *FingerprintLocaleInternationalization) GetLocaleLanguage() string { + if x != nil { + return x.LocaleLanguage + } + return "" +} + +type FingerprintLocaleLanguages struct { + state protoimpl.MessageState `protogen:"open.v1"` + Languages []string `protobuf:"bytes,1,rep,name=languages,proto3" json:"languages,omitempty"` + Language string `protobuf:"bytes,2,opt,name=language,proto3" json:"language,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintLocaleLanguages) Reset() { + *x = FingerprintLocaleLanguages{} + mi := &file_fingerprint_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintLocaleLanguages) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintLocaleLanguages) ProtoMessage() {} + +func (x *FingerprintLocaleLanguages) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintLocaleLanguages.ProtoReflect.Descriptor instead. +func (*FingerprintLocaleLanguages) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{22} +} + +func (x *FingerprintLocaleLanguages) GetLanguages() []string { + if x != nil { + return x.Languages + } + return nil +} + +func (x *FingerprintLocaleLanguages) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +type FingerprintContexts struct { + state protoimpl.MessageState `protogen:"open.v1"` + Iframe *FingerprintIframeContext `protobuf:"bytes,1,opt,name=iframe,proto3" json:"iframe,omitempty"` + WebWorker *FingerprintWebWorkerContext `protobuf:"bytes,2,opt,name=webWorker,proto3" json:"webWorker,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintContexts) Reset() { + *x = FingerprintContexts{} + mi := &file_fingerprint_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintContexts) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintContexts) ProtoMessage() {} + +func (x *FingerprintContexts) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintContexts.ProtoReflect.Descriptor instead. +func (*FingerprintContexts) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{23} +} + +func (x *FingerprintContexts) GetIframe() *FingerprintIframeContext { + if x != nil { + return x.Iframe + } + return nil +} + +func (x *FingerprintContexts) GetWebWorker() *FingerprintWebWorkerContext { + if x != nil { + return x.WebWorker + } + return nil +} + +type FingerprintIframeContext struct { + state protoimpl.MessageState `protogen:"open.v1"` + Webdriver bool `protobuf:"varint,1,opt,name=webdriver,proto3" json:"webdriver,omitempty"` + UserAgent string `protobuf:"bytes,2,opt,name=userAgent,proto3" json:"userAgent,omitempty"` + Platform string `protobuf:"bytes,3,opt,name=platform,proto3" json:"platform,omitempty"` + Memory int32 `protobuf:"varint,4,opt,name=memory,proto3" json:"memory,omitempty"` + CpuCount int32 `protobuf:"varint,5,opt,name=cpuCount,proto3" json:"cpuCount,omitempty"` + Language string `protobuf:"bytes,6,opt,name=language,proto3" json:"language,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintIframeContext) Reset() { + *x = FingerprintIframeContext{} + mi := &file_fingerprint_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintIframeContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintIframeContext) ProtoMessage() {} + +func (x *FingerprintIframeContext) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintIframeContext.ProtoReflect.Descriptor instead. +func (*FingerprintIframeContext) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{24} +} + +func (x *FingerprintIframeContext) GetWebdriver() bool { + if x != nil { + return x.Webdriver + } + return false +} + +func (x *FingerprintIframeContext) GetUserAgent() string { + if x != nil { + return x.UserAgent + } + return "" +} + +func (x *FingerprintIframeContext) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *FingerprintIframeContext) GetMemory() int32 { + if x != nil { + return x.Memory + } + return 0 +} + +func (x *FingerprintIframeContext) GetCpuCount() int32 { + if x != nil { + return x.CpuCount + } + return 0 +} + +func (x *FingerprintIframeContext) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +type FingerprintWebWorkerContext struct { + state protoimpl.MessageState `protogen:"open.v1"` + Vendor string `protobuf:"bytes,1,opt,name=vendor,proto3" json:"vendor,omitempty"` + Renderer string `protobuf:"bytes,2,opt,name=renderer,proto3" json:"renderer,omitempty"` + UserAgent string `protobuf:"bytes,3,opt,name=userAgent,proto3" json:"userAgent,omitempty"` + Language string `protobuf:"bytes,4,opt,name=language,proto3" json:"language,omitempty"` + Platform string `protobuf:"bytes,5,opt,name=platform,proto3" json:"platform,omitempty"` + Memory int32 `protobuf:"varint,6,opt,name=memory,proto3" json:"memory,omitempty"` + CpuCount int32 `protobuf:"varint,7,opt,name=cpuCount,proto3" json:"cpuCount,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintWebWorkerContext) Reset() { + *x = FingerprintWebWorkerContext{} + mi := &file_fingerprint_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintWebWorkerContext) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintWebWorkerContext) ProtoMessage() {} + +func (x *FingerprintWebWorkerContext) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintWebWorkerContext.ProtoReflect.Descriptor instead. +func (*FingerprintWebWorkerContext) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{25} +} + +func (x *FingerprintWebWorkerContext) GetVendor() string { + if x != nil { + return x.Vendor + } + return "" +} + +func (x *FingerprintWebWorkerContext) GetRenderer() string { + if x != nil { + return x.Renderer + } + return "" +} + +func (x *FingerprintWebWorkerContext) GetUserAgent() string { + if x != nil { + return x.UserAgent + } + return "" +} + +func (x *FingerprintWebWorkerContext) GetLanguage() string { + if x != nil { + return x.Language + } + return "" +} + +func (x *FingerprintWebWorkerContext) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *FingerprintWebWorkerContext) GetMemory() int32 { + if x != nil { + return x.Memory + } + return 0 +} + +func (x *FingerprintWebWorkerContext) GetCpuCount() int32 { + if x != nil { + return x.CpuCount + } + return 0 +} + +type FingerprintFastBotDetectionDetails struct { + state protoimpl.MessageState `protogen:"open.v1"` + HeadlessChromeScreenResolution *FingerprintDetectionResult `protobuf:"bytes,1,opt,name=headlessChromeScreenResolution,proto3" json:"headlessChromeScreenResolution,omitempty"` + HasWebdriver *FingerprintDetectionResult `protobuf:"bytes,2,opt,name=hasWebdriver,proto3" json:"hasWebdriver,omitempty"` + HasWebdriverWritable *FingerprintDetectionResult `protobuf:"bytes,3,opt,name=hasWebdriverWritable,proto3" json:"hasWebdriverWritable,omitempty"` + HasSeleniumProperty *FingerprintDetectionResult `protobuf:"bytes,4,opt,name=hasSeleniumProperty,proto3" json:"hasSeleniumProperty,omitempty"` + HasCDP *FingerprintDetectionResult `protobuf:"bytes,5,opt,name=hasCDP,proto3" json:"hasCDP,omitempty"` + HasPlaywright *FingerprintDetectionResult `protobuf:"bytes,6,opt,name=hasPlaywright,proto3" json:"hasPlaywright,omitempty"` + HasImpossibleDeviceMemory *FingerprintDetectionResult `protobuf:"bytes,7,opt,name=hasImpossibleDeviceMemory,proto3" json:"hasImpossibleDeviceMemory,omitempty"` + HasHighCPUCount *FingerprintDetectionResult `protobuf:"bytes,8,opt,name=hasHighCPUCount,proto3" json:"hasHighCPUCount,omitempty"` + HasMissingChromeObject *FingerprintDetectionResult `protobuf:"bytes,9,opt,name=hasMissingChromeObject,proto3" json:"hasMissingChromeObject,omitempty"` + HasWebdriverIframe *FingerprintDetectionResult `protobuf:"bytes,10,opt,name=hasWebdriverIframe,proto3" json:"hasWebdriverIframe,omitempty"` + HasWebdriverWorker *FingerprintDetectionResult `protobuf:"bytes,11,opt,name=hasWebdriverWorker,proto3" json:"hasWebdriverWorker,omitempty"` + HasMismatchWebGLInWorker *FingerprintDetectionResult `protobuf:"bytes,12,opt,name=hasMismatchWebGLInWorker,proto3" json:"hasMismatchWebGLInWorker,omitempty"` + HasMismatchPlatformIframe *FingerprintDetectionResult `protobuf:"bytes,13,opt,name=hasMismatchPlatformIframe,proto3" json:"hasMismatchPlatformIframe,omitempty"` + HasMismatchPlatformWorker *FingerprintDetectionResult `protobuf:"bytes,14,opt,name=hasMismatchPlatformWorker,proto3" json:"hasMismatchPlatformWorker,omitempty"` + HasSwiftshaderRenderer *FingerprintDetectionResult `protobuf:"bytes,15,opt,name=hasSwiftshaderRenderer,proto3" json:"hasSwiftshaderRenderer,omitempty"` + HasUTCTimezone *FingerprintDetectionResult `protobuf:"bytes,16,opt,name=hasUTCTimezone,proto3" json:"hasUTCTimezone,omitempty"` + HasMismatchLanguages *FingerprintDetectionResult `protobuf:"bytes,17,opt,name=hasMismatchLanguages,proto3" json:"hasMismatchLanguages,omitempty"` + HasInconsistentEtsl *FingerprintDetectionResult `protobuf:"bytes,18,opt,name=hasInconsistentEtsl,proto3" json:"hasInconsistentEtsl,omitempty"` + HasBotUserAgent *FingerprintDetectionResult `protobuf:"bytes,19,opt,name=hasBotUserAgent,proto3" json:"hasBotUserAgent,omitempty"` + HasGPUMismatch *FingerprintDetectionResult `protobuf:"bytes,20,opt,name=hasGPUMismatch,proto3" json:"hasGPUMismatch,omitempty"` + HasPlatformMismatch *FingerprintDetectionResult `protobuf:"bytes,21,opt,name=hasPlatformMismatch,proto3" json:"hasPlatformMismatch,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintFastBotDetectionDetails) Reset() { + *x = FingerprintFastBotDetectionDetails{} + mi := &file_fingerprint_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintFastBotDetectionDetails) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintFastBotDetectionDetails) ProtoMessage() {} + +func (x *FingerprintFastBotDetectionDetails) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintFastBotDetectionDetails.ProtoReflect.Descriptor instead. +func (*FingerprintFastBotDetectionDetails) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{26} +} + +func (x *FingerprintFastBotDetectionDetails) GetHeadlessChromeScreenResolution() *FingerprintDetectionResult { + if x != nil { + return x.HeadlessChromeScreenResolution + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasWebdriver() *FingerprintDetectionResult { + if x != nil { + return x.HasWebdriver + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasWebdriverWritable() *FingerprintDetectionResult { + if x != nil { + return x.HasWebdriverWritable + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasSeleniumProperty() *FingerprintDetectionResult { + if x != nil { + return x.HasSeleniumProperty + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasCDP() *FingerprintDetectionResult { + if x != nil { + return x.HasCDP + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasPlaywright() *FingerprintDetectionResult { + if x != nil { + return x.HasPlaywright + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasImpossibleDeviceMemory() *FingerprintDetectionResult { + if x != nil { + return x.HasImpossibleDeviceMemory + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasHighCPUCount() *FingerprintDetectionResult { + if x != nil { + return x.HasHighCPUCount + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasMissingChromeObject() *FingerprintDetectionResult { + if x != nil { + return x.HasMissingChromeObject + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasWebdriverIframe() *FingerprintDetectionResult { + if x != nil { + return x.HasWebdriverIframe + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasWebdriverWorker() *FingerprintDetectionResult { + if x != nil { + return x.HasWebdriverWorker + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasMismatchWebGLInWorker() *FingerprintDetectionResult { + if x != nil { + return x.HasMismatchWebGLInWorker + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasMismatchPlatformIframe() *FingerprintDetectionResult { + if x != nil { + return x.HasMismatchPlatformIframe + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasMismatchPlatformWorker() *FingerprintDetectionResult { + if x != nil { + return x.HasMismatchPlatformWorker + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasSwiftshaderRenderer() *FingerprintDetectionResult { + if x != nil { + return x.HasSwiftshaderRenderer + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasUTCTimezone() *FingerprintDetectionResult { + if x != nil { + return x.HasUTCTimezone + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasMismatchLanguages() *FingerprintDetectionResult { + if x != nil { + return x.HasMismatchLanguages + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasInconsistentEtsl() *FingerprintDetectionResult { + if x != nil { + return x.HasInconsistentEtsl + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasBotUserAgent() *FingerprintDetectionResult { + if x != nil { + return x.HasBotUserAgent + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasGPUMismatch() *FingerprintDetectionResult { + if x != nil { + return x.HasGPUMismatch + } + return nil +} + +func (x *FingerprintFastBotDetectionDetails) GetHasPlatformMismatch() *FingerprintDetectionResult { + if x != nil { + return x.HasPlatformMismatch + } + return nil +} + +type FingerprintDetectionResult struct { + state protoimpl.MessageState `protogen:"open.v1"` + Detected bool `protobuf:"varint,1,opt,name=detected,proto3" json:"detected,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintDetectionResult) Reset() { + *x = FingerprintDetectionResult{} + mi := &file_fingerprint_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintDetectionResult) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintDetectionResult) ProtoMessage() {} + +func (x *FingerprintDetectionResult) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintDetectionResult.ProtoReflect.Descriptor instead. +func (*FingerprintDetectionResult) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{27} +} + +func (x *FingerprintDetectionResult) GetDetected() bool { + if x != nil { + return x.Detected + } + return false +} + +type FingerprintBotAlias struct { + state protoimpl.MessageState `protogen:"open.v1"` + HeadlessChromeScreenResolution bool `protobuf:"varint,1,opt,name=headlessChromeScreenResolution,proto3" json:"headlessChromeScreenResolution,omitempty"` + Webdriver bool `protobuf:"varint,2,opt,name=webdriver,proto3" json:"webdriver,omitempty"` + WebdriverWritable bool `protobuf:"varint,3,opt,name=webdriverWritable,proto3" json:"webdriverWritable,omitempty"` + Selenium bool `protobuf:"varint,4,opt,name=selenium,proto3" json:"selenium,omitempty"` + Cdp bool `protobuf:"varint,5,opt,name=cdp,proto3" json:"cdp,omitempty"` + Playwright bool `protobuf:"varint,6,opt,name=playwright,proto3" json:"playwright,omitempty"` + ImpossibleDeviceMemory bool `protobuf:"varint,7,opt,name=impossibleDeviceMemory,proto3" json:"impossibleDeviceMemory,omitempty"` + HighCPUCount bool `protobuf:"varint,8,opt,name=highCPUCount,proto3" json:"highCPUCount,omitempty"` + MissingChromeObject bool `protobuf:"varint,9,opt,name=missingChromeObject,proto3" json:"missingChromeObject,omitempty"` + WebdriverIframe bool `protobuf:"varint,10,opt,name=webdriverIframe,proto3" json:"webdriverIframe,omitempty"` + WebdriverWorker bool `protobuf:"varint,11,opt,name=webdriverWorker,proto3" json:"webdriverWorker,omitempty"` + MismatchWebGLInWorker bool `protobuf:"varint,12,opt,name=mismatchWebGLInWorker,proto3" json:"mismatchWebGLInWorker,omitempty"` + MismatchPlatformIframe bool `protobuf:"varint,13,opt,name=mismatchPlatformIframe,proto3" json:"mismatchPlatformIframe,omitempty"` + MismatchPlatformWorker bool `protobuf:"varint,14,opt,name=mismatchPlatformWorker,proto3" json:"mismatchPlatformWorker,omitempty"` + SwiftshaderRenderer bool `protobuf:"varint,15,opt,name=swiftshaderRenderer,proto3" json:"swiftshaderRenderer,omitempty"` + UtcTimezone bool `protobuf:"varint,16,opt,name=utcTimezone,proto3" json:"utcTimezone,omitempty"` + AnyDetected bool `protobuf:"varint,17,opt,name=anyDetected,proto3" json:"anyDetected,omitempty"` + DetectedCount int32 `protobuf:"varint,18,opt,name=detectedCount,proto3" json:"detectedCount,omitempty"` + MismatchLanguages bool `protobuf:"varint,19,opt,name=mismatchLanguages,proto3" json:"mismatchLanguages,omitempty"` + InconsistentEtsl bool `protobuf:"varint,20,opt,name=inconsistentEtsl,proto3" json:"inconsistentEtsl,omitempty"` + BotUserAgent bool `protobuf:"varint,21,opt,name=botUserAgent,proto3" json:"botUserAgent,omitempty"` + GpuMismatch bool `protobuf:"varint,22,opt,name=gpuMismatch,proto3" json:"gpuMismatch,omitempty"` + PlatformMismatch bool `protobuf:"varint,23,opt,name=platformMismatch,proto3" json:"platformMismatch,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FingerprintBotAlias) Reset() { + *x = FingerprintBotAlias{} + mi := &file_fingerprint_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FingerprintBotAlias) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FingerprintBotAlias) ProtoMessage() {} + +func (x *FingerprintBotAlias) ProtoReflect() protoreflect.Message { + mi := &file_fingerprint_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FingerprintBotAlias.ProtoReflect.Descriptor instead. +func (*FingerprintBotAlias) Descriptor() ([]byte, []int) { + return file_fingerprint_proto_rawDescGZIP(), []int{28} +} + +func (x *FingerprintBotAlias) GetHeadlessChromeScreenResolution() bool { + if x != nil { + return x.HeadlessChromeScreenResolution + } + return false +} + +func (x *FingerprintBotAlias) GetWebdriver() bool { + if x != nil { + return x.Webdriver + } + return false +} + +func (x *FingerprintBotAlias) GetWebdriverWritable() bool { + if x != nil { + return x.WebdriverWritable + } + return false +} + +func (x *FingerprintBotAlias) GetSelenium() bool { + if x != nil { + return x.Selenium + } + return false +} + +func (x *FingerprintBotAlias) GetCdp() bool { + if x != nil { + return x.Cdp + } + return false +} + +func (x *FingerprintBotAlias) GetPlaywright() bool { + if x != nil { + return x.Playwright + } + return false +} + +func (x *FingerprintBotAlias) GetImpossibleDeviceMemory() bool { + if x != nil { + return x.ImpossibleDeviceMemory + } + return false +} + +func (x *FingerprintBotAlias) GetHighCPUCount() bool { + if x != nil { + return x.HighCPUCount + } + return false +} + +func (x *FingerprintBotAlias) GetMissingChromeObject() bool { + if x != nil { + return x.MissingChromeObject + } + return false +} + +func (x *FingerprintBotAlias) GetWebdriverIframe() bool { + if x != nil { + return x.WebdriverIframe + } + return false +} + +func (x *FingerprintBotAlias) GetWebdriverWorker() bool { + if x != nil { + return x.WebdriverWorker + } + return false +} + +func (x *FingerprintBotAlias) GetMismatchWebGLInWorker() bool { + if x != nil { + return x.MismatchWebGLInWorker + } + return false +} + +func (x *FingerprintBotAlias) GetMismatchPlatformIframe() bool { + if x != nil { + return x.MismatchPlatformIframe + } + return false +} + +func (x *FingerprintBotAlias) GetMismatchPlatformWorker() bool { + if x != nil { + return x.MismatchPlatformWorker + } + return false +} + +func (x *FingerprintBotAlias) GetSwiftshaderRenderer() bool { + if x != nil { + return x.SwiftshaderRenderer + } + return false +} + +func (x *FingerprintBotAlias) GetUtcTimezone() bool { + if x != nil { + return x.UtcTimezone + } + return false +} + +func (x *FingerprintBotAlias) GetAnyDetected() bool { + if x != nil { + return x.AnyDetected + } + return false +} + +func (x *FingerprintBotAlias) GetDetectedCount() int32 { + if x != nil { + return x.DetectedCount + } + return 0 +} + +func (x *FingerprintBotAlias) GetMismatchLanguages() bool { + if x != nil { + return x.MismatchLanguages + } + return false +} + +func (x *FingerprintBotAlias) GetInconsistentEtsl() bool { + if x != nil { + return x.InconsistentEtsl + } + return false +} + +func (x *FingerprintBotAlias) GetBotUserAgent() bool { + if x != nil { + return x.BotUserAgent + } + return false +} + +func (x *FingerprintBotAlias) GetGpuMismatch() bool { + if x != nil { + return x.GpuMismatch + } + return false +} + +func (x *FingerprintBotAlias) GetPlatformMismatch() bool { + if x != nil { + return x.PlatformMismatch + } + return false +} + +var File_fingerprint_proto protoreflect.FileDescriptor + +const file_fingerprint_proto_rawDesc = "" + + "\n" + + "\x11fingerprint.proto\x12\vfingerprint\"\xe7\x02\n" + + "\x0fFingerprintData\x129\n" + + "\asignals\x18\x01 \x01(\v2\x1f.fingerprint.fingerprintSignalsR\asignals\x12\x12\n" + + "\x04fsid\x18\x02 \x01(\tR\x04fsid\x12\x14\n" + + "\x05nonce\x18\x03 \x01(\tR\x05nonce\x12\x12\n" + + "\x04time\x18\x04 \x01(\x03R\x04time\x12\x10\n" + + "\x03url\x18\x05 \x01(\tR\x03url\x12*\n" + + "\x10fastBotDetection\x18\x06 \x01(\bR\x10fastBotDetection\x12i\n" + + "\x17fastBotDetectionDetails\x18\a \x01(\v2/.fingerprint.fingerprintFastBotDetectionDetailsR\x17fastBotDetectionDetails\x122\n" + + "\x03bot\x18\b \x01(\v2 .fingerprint.fingerprintBotAliasR\x03bot\"x\n" + + "\x0fChallengeCookie\x12>\n" + + "\vfingerprint\x18\x01 \x01(\v2\x1c.fingerprint.FingerprintDataR\vfingerprint\x12%\n" + + "\x0epow_difficulty\x18\x02 \x01(\x05R\rpowDifficulty\"\xb7\x03\n" + + "\x12fingerprintSignals\x12B\n" + + "\n" + + "automation\x18\x01 \x01(\v2\".fingerprint.fingerprintAutomationR\n" + + "automation\x126\n" + + "\x06device\x18\x02 \x01(\v2\x1e.fingerprint.fingerprintDeviceR\x06device\x129\n" + + "\abrowser\x18\x03 \x01(\v2\x1f.fingerprint.fingerprintBrowserR\abrowser\x12<\n" + + "\bgraphics\x18\x04 \x01(\v2 .fingerprint.fingerprintGraphicsR\bgraphics\x126\n" + + "\x06codecs\x18\x05 \x01(\v2\x1e.fingerprint.fingerprintCodecsR\x06codecs\x126\n" + + "\x06locale\x18\x06 \x01(\v2\x1e.fingerprint.fingerprintLocaleR\x06locale\x12<\n" + + "\bcontexts\x18\a \x01(\v2 .fingerprint.fingerprintContextsR\bcontexts\"\xf5\x01\n" + + "\x15fingerprintAutomation\x12\x1c\n" + + "\twebdriver\x18\x01 \x01(\bR\twebdriver\x12,\n" + + "\x11webdriverWritable\x18\x02 \x01(\bR\x11webdriverWritable\x12\x1a\n" + + "\bselenium\x18\x03 \x01(\bR\bselenium\x12\x10\n" + + "\x03cdp\x18\x04 \x01(\bR\x03cdp\x12\x1e\n" + + "\n" + + "playwright\x18\x05 \x01(\bR\n" + + "playwright\x12B\n" + + "\x1cnavigatorPropertyDescriptors\x18\x06 \x01(\tR\x1cnavigatorPropertyDescriptors\"\xe2\x02\n" + + "\x11fingerprintDevice\x12\x1a\n" + + "\bcpuCount\x18\x01 \x01(\x05R\bcpuCount\x12\x16\n" + + "\x06memory\x18\x02 \x01(\x05R\x06memory\x12\x1a\n" + + "\bplatform\x18\x03 \x01(\tR\bplatform\x12T\n" + + "\x10screenResolution\x18\x04 \x01(\v2(.fingerprint.fingerprintScreenResolutionR\x10screenResolution\x12W\n" + + "\x11multimediaDevices\x18\x05 \x01(\v2).fingerprint.fingerprintMultimediaDevicesR\x11multimediaDevices\x12N\n" + + "\fmediaQueries\x18\x06 \x01(\v2*.fingerprint.fingerprintDeviceMediaQueriesR\fmediaQueries\"\xd1\x02\n" + + "\x1bfingerprintScreenResolution\x12\x14\n" + + "\x05width\x18\x01 \x01(\x05R\x05width\x12\x16\n" + + "\x06height\x18\x02 \x01(\x05R\x06height\x12\x1e\n" + + "\n" + + "pixelDepth\x18\x03 \x01(\x05R\n" + + "pixelDepth\x12\x1e\n" + + "\n" + + "colorDepth\x18\x04 \x01(\x05R\n" + + "colorDepth\x12&\n" + + "\x0eavailableWidth\x18\x05 \x01(\x05R\x0eavailableWidth\x12(\n" + + "\x0favailableHeight\x18\x06 \x01(\x05R\x0favailableHeight\x12\x1e\n" + + "\n" + + "innerWidth\x18\a \x01(\x05R\n" + + "innerWidth\x12 \n" + + "\vinnerHeight\x18\b \x01(\x05R\vinnerHeight\x120\n" + + "\x13hasMultipleDisplays\x18\t \x01(\bR\x13hasMultipleDisplays\"v\n" + + "\x1cfingerprintMultimediaDevices\x12\x1a\n" + + "\bspeakers\x18\x01 \x01(\x05R\bspeakers\x12 \n" + + "\vmicrophones\x18\x02 \x01(\x05R\vmicrophones\x12\x18\n" + + "\awebcams\x18\x03 \x01(\x05R\awebcams\"\xef\x02\n" + + "\x1dfingerprintDeviceMediaQueries\x12.\n" + + "\x12prefersColorScheme\x18\x01 \x01(\tR\x12prefersColorScheme\x122\n" + + "\x14prefersReducedMotion\x18\x02 \x01(\bR\x14prefersReducedMotion\x12>\n" + + "\x1aprefersReducedTransparency\x18\x03 \x01(\bR\x1aprefersReducedTransparency\x12\x1e\n" + + "\n" + + "colorGamut\x18\x04 \x01(\tR\n" + + "colorGamut\x12\x18\n" + + "\apointer\x18\x05 \x01(\tR\apointer\x12\x1e\n" + + "\n" + + "anyPointer\x18\x06 \x01(\tR\n" + + "anyPointer\x12\x14\n" + + "\x05hover\x18\a \x01(\bR\x05hover\x12\x1a\n" + + "\banyHover\x18\b \x01(\bR\banyHover\x12\x1e\n" + + "\n" + + "colorDepth\x18\t \x01(\x05R\n" + + "colorDepth\"\xe2\x03\n" + + "\x12fingerprintBrowser\x12\x1c\n" + + "\tuserAgent\x18\x01 \x01(\tR\tuserAgent\x12C\n" + + "\bfeatures\x18\x02 \x01(\v2'.fingerprint.fingerprintBrowserFeaturesR\bfeatures\x12@\n" + + "\aplugins\x18\x03 \x01(\v2&.fingerprint.fingerprintBrowserPluginsR\aplugins\x12I\n" + + "\n" + + "extensions\x18\x04 \x01(\v2).fingerprint.fingerprintBrowserExtensionsR\n" + + "extensions\x12^\n" + + "\x11highEntropyValues\x18\x05 \x01(\v20.fingerprint.fingerprintBrowserHighEntropyValuesR\x11highEntropyValues\x12\x12\n" + + "\x04etsl\x18\x06 \x01(\x05R\x04etsl\x12\x14\n" + + "\x05maths\x18\a \x01(\tR\x05maths\x12R\n" + + "\rtoSourceError\x18\b \x01(\v2,.fingerprint.fingerprintBrowserToSourceErrorR\rtoSourceError\"\xa2\b\n" + + "\x1afingerprintBrowserFeatures\x12\x18\n" + + "\abitmask\x18\x01 \x01(\tR\abitmask\x12\x16\n" + + "\x06chrome\x18\x02 \x01(\bR\x06chrome\x12\x14\n" + + "\x05brave\x18\x03 \x01(\bR\x05brave\x12(\n" + + "\x0fapplePaySupport\x18\x04 \x01(\bR\x0fapplePaySupport\x12\x14\n" + + "\x05opera\x18\x05 \x01(\bR\x05opera\x12\x16\n" + + "\x06serial\x18\x06 \x01(\bR\x06serial\x12\"\n" + + "\fattachShadow\x18\a \x01(\bR\fattachShadow\x12\x16\n" + + "\x06caches\x18\b \x01(\bR\x06caches\x12 \n" + + "\vwebAssembly\x18\t \x01(\bR\vwebAssembly\x12\x16\n" + + "\x06buffer\x18\n" + + " \x01(\bR\x06buffer\x12(\n" + + "\x0fshowModalDialog\x18\v \x01(\bR\x0fshowModalDialog\x12\x16\n" + + "\x06safari\x18\f \x01(\bR\x06safari\x126\n" + + "\x16webkitPrefixedFunction\x18\r \x01(\bR\x16webkitPrefixedFunction\x120\n" + + "\x13mozPrefixedFunction\x18\x0e \x01(\bR\x13mozPrefixedFunction\x12\x10\n" + + "\x03usb\x18\x0f \x01(\bR\x03usb\x12&\n" + + "\x0ebrowserCapture\x18\x10 \x01(\bR\x0ebrowserCapture\x12<\n" + + "\x19paymentRequestUpdateEvent\x18\x11 \x01(\bR\x19paymentRequestUpdateEvent\x12*\n" + + "\x10pressureObserver\x18\x12 \x01(\bR\x10pressureObserver\x12\"\n" + + "\faudioSession\x18\x13 \x01(\bR\faudioSession\x12,\n" + + "\x11selectAudioOutput\x18\x14 \x01(\bR\x11selectAudioOutput\x12(\n" + + "\x0fbarcodeDetector\x18\x15 \x01(\bR\x0fbarcodeDetector\x12\x18\n" + + "\abattery\x18\x16 \x01(\bR\abattery\x12$\n" + + "\rdevicePosture\x18\x17 \x01(\bR\rdevicePosture\x12:\n" + + "\x18documentPictureInPicture\x18\x18 \x01(\bR\x18documentPictureInPicture\x12\x1e\n" + + "\n" + + "eyeDropper\x18\x19 \x01(\bR\n" + + "eyeDropper\x12 \n" + + "\veditContext\x18\x1a \x01(\bR\veditContext\x12 \n" + + "\vfencedFrame\x18\x1b \x01(\bR\vfencedFrame\x12\x1c\n" + + "\tsanitizer\x18\x1c \x01(\bR\tsanitizer\x12$\n" + + "\rotpCredential\x18\x1d \x01(\bR\rotpCredential\"\xef\x01\n" + + "\x19fingerprintBrowserPlugins\x12.\n" + + "\x12isValidPluginArray\x18\x01 \x01(\bR\x12isValidPluginArray\x12 \n" + + "\vpluginCount\x18\x02 \x01(\x05R\vpluginCount\x12(\n" + + "\x0fpluginNamesHash\x18\x03 \x01(\tR\x0fpluginNamesHash\x12.\n" + + "\x12pluginConsistency1\x18\x04 \x01(\bR\x12pluginConsistency1\x12&\n" + + "\x0epluginOverflow\x18\x05 \x01(\bR\x0epluginOverflow\"X\n" + + "\x1cfingerprintBrowserExtensions\x12\x18\n" + + "\abitmask\x18\x01 \x01(\tR\abitmask\x12\x1e\n" + + "\n" + + "extensions\x18\x02 \x03(\tR\n" + + "extensions\"\xbb\x02\n" + + "#fingerprintBrowserHighEntropyValues\x12\"\n" + + "\farchitecture\x18\x01 \x01(\tR\farchitecture\x12\x18\n" + + "\abitness\x18\x02 \x01(\tR\abitness\x12<\n" + + "\x06brands\x18\x03 \x03(\v2$.fingerprint.fingerprintBrandVersionR\x06brands\x12\x16\n" + + "\x06mobile\x18\x04 \x01(\bR\x06mobile\x12\x14\n" + + "\x05model\x18\x05 \x01(\tR\x05model\x12\x1a\n" + + "\bplatform\x18\x06 \x01(\tR\bplatform\x12(\n" + + "\x0fplatformVersion\x18\a \x01(\tR\x0fplatformVersion\x12$\n" + + "\ruaFullVersion\x18\b \x01(\tR\ruaFullVersion\"I\n" + + "\x17fingerprintBrandVersion\x12\x14\n" + + "\x05brand\x18\x01 \x01(\tR\x05brand\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\"i\n" + + "\x1ffingerprintBrowserToSourceError\x12$\n" + + "\rtoSourceError\x18\x01 \x01(\tR\rtoSourceError\x12 \n" + + "\vhasToSource\x18\x02 \x01(\bR\vhasToSource\"\xd2\x01\n" + + "\x13fingerprintGraphics\x12;\n" + + "\x05webGL\x18\x01 \x01(\v2%.fingerprint.fingerprintGraphicsWebGLR\x05webGL\x12>\n" + + "\x06webgpu\x18\x02 \x01(\v2&.fingerprint.fingerprintGraphicsWebGPUR\x06webgpu\x12>\n" + + "\x06canvas\x18\x03 \x01(\v2&.fingerprint.fingerprintGraphicsCanvasR\x06canvas\"N\n" + + "\x18fingerprintGraphicsWebGL\x12\x16\n" + + "\x06vendor\x18\x01 \x01(\tR\x06vendor\x12\x1a\n" + + "\brenderer\x18\x02 \x01(\tR\brenderer\"\x91\x01\n" + + "\x19fingerprintGraphicsWebGPU\x12\x16\n" + + "\x06vendor\x18\x01 \x01(\tR\x06vendor\x12\"\n" + + "\farchitecture\x18\x02 \x01(\tR\farchitecture\x12\x16\n" + + "\x06device\x18\x03 \x01(\tR\x06device\x12 \n" + + "\vdescription\x18\x04 \x01(\tR\vdescription\"w\n" + + "\x19fingerprintGraphicsCanvas\x12,\n" + + "\x11hasModifiedCanvas\x18\x01 \x01(\bR\x11hasModifiedCanvas\x12,\n" + + "\x11canvasFingerprint\x18\x02 \x01(\tR\x11canvasFingerprint\"\x83\x03\n" + + "\x11fingerprintCodecs\x122\n" + + "\x14audioCanPlayTypeHash\x18\x01 \x01(\tR\x14audioCanPlayTypeHash\x122\n" + + "\x14videoCanPlayTypeHash\x18\x02 \x01(\tR\x14videoCanPlayTypeHash\x122\n" + + "\x14audioMediaSourceHash\x18\x03 \x01(\tR\x14audioMediaSourceHash\x122\n" + + "\x14videoMediaSourceHash\x18\x04 \x01(\tR\x14videoMediaSourceHash\x12:\n" + + "\x18rtcAudioCapabilitiesHash\x18\x05 \x01(\tR\x18rtcAudioCapabilitiesHash\x12:\n" + + "\x18rtcVideoCapabilitiesHash\x18\x06 \x01(\tR\x18rtcVideoCapabilitiesHash\x12&\n" + + "\x0ehasMediaSource\x18\a \x01(\bR\x0ehasMediaSource\"\xc2\x01\n" + + "\x11fingerprintLocale\x12f\n" + + "\x14internationalization\x18\x01 \x01(\v22.fingerprint.fingerprintLocaleInternationalizationR\x14internationalization\x12E\n" + + "\tlanguages\x18\x02 \x01(\v2'.fingerprint.fingerprintLocaleLanguagesR\tlanguages\"k\n" + + "%fingerprintLocaleInternationalization\x12\x1a\n" + + "\btimezone\x18\x01 \x01(\tR\btimezone\x12&\n" + + "\x0elocaleLanguage\x18\x02 \x01(\tR\x0elocaleLanguage\"V\n" + + "\x1afingerprintLocaleLanguages\x12\x1c\n" + + "\tlanguages\x18\x01 \x03(\tR\tlanguages\x12\x1a\n" + + "\blanguage\x18\x02 \x01(\tR\blanguage\"\x9c\x01\n" + + "\x13fingerprintContexts\x12=\n" + + "\x06iframe\x18\x01 \x01(\v2%.fingerprint.fingerprintIframeContextR\x06iframe\x12F\n" + + "\twebWorker\x18\x02 \x01(\v2(.fingerprint.fingerprintWebWorkerContextR\twebWorker\"\xc2\x01\n" + + "\x18fingerprintIframeContext\x12\x1c\n" + + "\twebdriver\x18\x01 \x01(\bR\twebdriver\x12\x1c\n" + + "\tuserAgent\x18\x02 \x01(\tR\tuserAgent\x12\x1a\n" + + "\bplatform\x18\x03 \x01(\tR\bplatform\x12\x16\n" + + "\x06memory\x18\x04 \x01(\x05R\x06memory\x12\x1a\n" + + "\bcpuCount\x18\x05 \x01(\x05R\bcpuCount\x12\x1a\n" + + "\blanguage\x18\x06 \x01(\tR\blanguage\"\xdb\x01\n" + + "\x1bfingerprintWebWorkerContext\x12\x16\n" + + "\x06vendor\x18\x01 \x01(\tR\x06vendor\x12\x1a\n" + + "\brenderer\x18\x02 \x01(\tR\brenderer\x12\x1c\n" + + "\tuserAgent\x18\x03 \x01(\tR\tuserAgent\x12\x1a\n" + + "\blanguage\x18\x04 \x01(\tR\blanguage\x12\x1a\n" + + "\bplatform\x18\x05 \x01(\tR\bplatform\x12\x16\n" + + "\x06memory\x18\x06 \x01(\x05R\x06memory\x12\x1a\n" + + "\bcpuCount\x18\a \x01(\x05R\bcpuCount\"\x93\x0f\n" + + "\"fingerprintFastBotDetectionDetails\x12o\n" + + "\x1eheadlessChromeScreenResolution\x18\x01 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x1eheadlessChromeScreenResolution\x12K\n" + + "\fhasWebdriver\x18\x02 \x01(\v2'.fingerprint.fingerprintDetectionResultR\fhasWebdriver\x12[\n" + + "\x14hasWebdriverWritable\x18\x03 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x14hasWebdriverWritable\x12Y\n" + + "\x13hasSeleniumProperty\x18\x04 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x13hasSeleniumProperty\x12?\n" + + "\x06hasCDP\x18\x05 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x06hasCDP\x12M\n" + + "\rhasPlaywright\x18\x06 \x01(\v2'.fingerprint.fingerprintDetectionResultR\rhasPlaywright\x12e\n" + + "\x19hasImpossibleDeviceMemory\x18\a \x01(\v2'.fingerprint.fingerprintDetectionResultR\x19hasImpossibleDeviceMemory\x12Q\n" + + "\x0fhasHighCPUCount\x18\b \x01(\v2'.fingerprint.fingerprintDetectionResultR\x0fhasHighCPUCount\x12_\n" + + "\x16hasMissingChromeObject\x18\t \x01(\v2'.fingerprint.fingerprintDetectionResultR\x16hasMissingChromeObject\x12W\n" + + "\x12hasWebdriverIframe\x18\n" + + " \x01(\v2'.fingerprint.fingerprintDetectionResultR\x12hasWebdriverIframe\x12W\n" + + "\x12hasWebdriverWorker\x18\v \x01(\v2'.fingerprint.fingerprintDetectionResultR\x12hasWebdriverWorker\x12c\n" + + "\x18hasMismatchWebGLInWorker\x18\f \x01(\v2'.fingerprint.fingerprintDetectionResultR\x18hasMismatchWebGLInWorker\x12e\n" + + "\x19hasMismatchPlatformIframe\x18\r \x01(\v2'.fingerprint.fingerprintDetectionResultR\x19hasMismatchPlatformIframe\x12e\n" + + "\x19hasMismatchPlatformWorker\x18\x0e \x01(\v2'.fingerprint.fingerprintDetectionResultR\x19hasMismatchPlatformWorker\x12_\n" + + "\x16hasSwiftshaderRenderer\x18\x0f \x01(\v2'.fingerprint.fingerprintDetectionResultR\x16hasSwiftshaderRenderer\x12O\n" + + "\x0ehasUTCTimezone\x18\x10 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x0ehasUTCTimezone\x12[\n" + + "\x14hasMismatchLanguages\x18\x11 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x14hasMismatchLanguages\x12Y\n" + + "\x13hasInconsistentEtsl\x18\x12 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x13hasInconsistentEtsl\x12Q\n" + + "\x0fhasBotUserAgent\x18\x13 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x0fhasBotUserAgent\x12O\n" + + "\x0ehasGPUMismatch\x18\x14 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x0ehasGPUMismatch\x12Y\n" + + "\x13hasPlatformMismatch\x18\x15 \x01(\v2'.fingerprint.fingerprintDetectionResultR\x13hasPlatformMismatch\"8\n" + + "\x1afingerprintDetectionResult\x12\x1a\n" + + "\bdetected\x18\x01 \x01(\bR\bdetected\"\xe7\a\n" + + "\x13fingerprintBotAlias\x12F\n" + + "\x1eheadlessChromeScreenResolution\x18\x01 \x01(\bR\x1eheadlessChromeScreenResolution\x12\x1c\n" + + "\twebdriver\x18\x02 \x01(\bR\twebdriver\x12,\n" + + "\x11webdriverWritable\x18\x03 \x01(\bR\x11webdriverWritable\x12\x1a\n" + + "\bselenium\x18\x04 \x01(\bR\bselenium\x12\x10\n" + + "\x03cdp\x18\x05 \x01(\bR\x03cdp\x12\x1e\n" + + "\n" + + "playwright\x18\x06 \x01(\bR\n" + + "playwright\x126\n" + + "\x16impossibleDeviceMemory\x18\a \x01(\bR\x16impossibleDeviceMemory\x12\"\n" + + "\fhighCPUCount\x18\b \x01(\bR\fhighCPUCount\x120\n" + + "\x13missingChromeObject\x18\t \x01(\bR\x13missingChromeObject\x12(\n" + + "\x0fwebdriverIframe\x18\n" + + " \x01(\bR\x0fwebdriverIframe\x12(\n" + + "\x0fwebdriverWorker\x18\v \x01(\bR\x0fwebdriverWorker\x124\n" + + "\x15mismatchWebGLInWorker\x18\f \x01(\bR\x15mismatchWebGLInWorker\x126\n" + + "\x16mismatchPlatformIframe\x18\r \x01(\bR\x16mismatchPlatformIframe\x126\n" + + "\x16mismatchPlatformWorker\x18\x0e \x01(\bR\x16mismatchPlatformWorker\x120\n" + + "\x13swiftshaderRenderer\x18\x0f \x01(\bR\x13swiftshaderRenderer\x12 \n" + + "\vutcTimezone\x18\x10 \x01(\bR\vutcTimezone\x12 \n" + + "\vanyDetected\x18\x11 \x01(\bR\vanyDetected\x12$\n" + + "\rdetectedCount\x18\x12 \x01(\x05R\rdetectedCount\x12,\n" + + "\x11mismatchLanguages\x18\x13 \x01(\bR\x11mismatchLanguages\x12*\n" + + "\x10inconsistentEtsl\x18\x14 \x01(\bR\x10inconsistentEtsl\x12\"\n" + + "\fbotUserAgent\x18\x15 \x01(\bR\fbotUserAgent\x12 \n" + + "\vgpuMismatch\x18\x16 \x01(\bR\vgpuMismatch\x12*\n" + + "\x10platformMismatch\x18\x17 \x01(\bR\x10platformMismatchB\x06Z\x04.;pbb\x06proto3" + +var ( + file_fingerprint_proto_rawDescOnce sync.Once + file_fingerprint_proto_rawDescData []byte +) + +func file_fingerprint_proto_rawDescGZIP() []byte { + file_fingerprint_proto_rawDescOnce.Do(func() { + file_fingerprint_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_fingerprint_proto_rawDesc), len(file_fingerprint_proto_rawDesc))) + }) + return file_fingerprint_proto_rawDescData +} + +var file_fingerprint_proto_msgTypes = make([]protoimpl.MessageInfo, 29) +var file_fingerprint_proto_goTypes = []any{ + (*FingerprintData)(nil), // 0: fingerprint.FingerprintData + (*ChallengeCookie)(nil), // 1: fingerprint.ChallengeCookie + (*FingerprintSignals)(nil), // 2: fingerprint.fingerprintSignals + (*FingerprintAutomation)(nil), // 3: fingerprint.fingerprintAutomation + (*FingerprintDevice)(nil), // 4: fingerprint.fingerprintDevice + (*FingerprintScreenResolution)(nil), // 5: fingerprint.fingerprintScreenResolution + (*FingerprintMultimediaDevices)(nil), // 6: fingerprint.fingerprintMultimediaDevices + (*FingerprintDeviceMediaQueries)(nil), // 7: fingerprint.fingerprintDeviceMediaQueries + (*FingerprintBrowser)(nil), // 8: fingerprint.fingerprintBrowser + (*FingerprintBrowserFeatures)(nil), // 9: fingerprint.fingerprintBrowserFeatures + (*FingerprintBrowserPlugins)(nil), // 10: fingerprint.fingerprintBrowserPlugins + (*FingerprintBrowserExtensions)(nil), // 11: fingerprint.fingerprintBrowserExtensions + (*FingerprintBrowserHighEntropyValues)(nil), // 12: fingerprint.fingerprintBrowserHighEntropyValues + (*FingerprintBrandVersion)(nil), // 13: fingerprint.fingerprintBrandVersion + (*FingerprintBrowserToSourceError)(nil), // 14: fingerprint.fingerprintBrowserToSourceError + (*FingerprintGraphics)(nil), // 15: fingerprint.fingerprintGraphics + (*FingerprintGraphicsWebGL)(nil), // 16: fingerprint.fingerprintGraphicsWebGL + (*FingerprintGraphicsWebGPU)(nil), // 17: fingerprint.fingerprintGraphicsWebGPU + (*FingerprintGraphicsCanvas)(nil), // 18: fingerprint.fingerprintGraphicsCanvas + (*FingerprintCodecs)(nil), // 19: fingerprint.fingerprintCodecs + (*FingerprintLocale)(nil), // 20: fingerprint.fingerprintLocale + (*FingerprintLocaleInternationalization)(nil), // 21: fingerprint.fingerprintLocaleInternationalization + (*FingerprintLocaleLanguages)(nil), // 22: fingerprint.fingerprintLocaleLanguages + (*FingerprintContexts)(nil), // 23: fingerprint.fingerprintContexts + (*FingerprintIframeContext)(nil), // 24: fingerprint.fingerprintIframeContext + (*FingerprintWebWorkerContext)(nil), // 25: fingerprint.fingerprintWebWorkerContext + (*FingerprintFastBotDetectionDetails)(nil), // 26: fingerprint.fingerprintFastBotDetectionDetails + (*FingerprintDetectionResult)(nil), // 27: fingerprint.fingerprintDetectionResult + (*FingerprintBotAlias)(nil), // 28: fingerprint.fingerprintBotAlias +} +var file_fingerprint_proto_depIdxs = []int32{ + 2, // 0: fingerprint.FingerprintData.signals:type_name -> fingerprint.fingerprintSignals + 26, // 1: fingerprint.FingerprintData.fastBotDetectionDetails:type_name -> fingerprint.fingerprintFastBotDetectionDetails + 28, // 2: fingerprint.FingerprintData.bot:type_name -> fingerprint.fingerprintBotAlias + 0, // 3: fingerprint.ChallengeCookie.fingerprint:type_name -> fingerprint.FingerprintData + 3, // 4: fingerprint.fingerprintSignals.automation:type_name -> fingerprint.fingerprintAutomation + 4, // 5: fingerprint.fingerprintSignals.device:type_name -> fingerprint.fingerprintDevice + 8, // 6: fingerprint.fingerprintSignals.browser:type_name -> fingerprint.fingerprintBrowser + 15, // 7: fingerprint.fingerprintSignals.graphics:type_name -> fingerprint.fingerprintGraphics + 19, // 8: fingerprint.fingerprintSignals.codecs:type_name -> fingerprint.fingerprintCodecs + 20, // 9: fingerprint.fingerprintSignals.locale:type_name -> fingerprint.fingerprintLocale + 23, // 10: fingerprint.fingerprintSignals.contexts:type_name -> fingerprint.fingerprintContexts + 5, // 11: fingerprint.fingerprintDevice.screenResolution:type_name -> fingerprint.fingerprintScreenResolution + 6, // 12: fingerprint.fingerprintDevice.multimediaDevices:type_name -> fingerprint.fingerprintMultimediaDevices + 7, // 13: fingerprint.fingerprintDevice.mediaQueries:type_name -> fingerprint.fingerprintDeviceMediaQueries + 9, // 14: fingerprint.fingerprintBrowser.features:type_name -> fingerprint.fingerprintBrowserFeatures + 10, // 15: fingerprint.fingerprintBrowser.plugins:type_name -> fingerprint.fingerprintBrowserPlugins + 11, // 16: fingerprint.fingerprintBrowser.extensions:type_name -> fingerprint.fingerprintBrowserExtensions + 12, // 17: fingerprint.fingerprintBrowser.highEntropyValues:type_name -> fingerprint.fingerprintBrowserHighEntropyValues + 14, // 18: fingerprint.fingerprintBrowser.toSourceError:type_name -> fingerprint.fingerprintBrowserToSourceError + 13, // 19: fingerprint.fingerprintBrowserHighEntropyValues.brands:type_name -> fingerprint.fingerprintBrandVersion + 16, // 20: fingerprint.fingerprintGraphics.webGL:type_name -> fingerprint.fingerprintGraphicsWebGL + 17, // 21: fingerprint.fingerprintGraphics.webgpu:type_name -> fingerprint.fingerprintGraphicsWebGPU + 18, // 22: fingerprint.fingerprintGraphics.canvas:type_name -> fingerprint.fingerprintGraphicsCanvas + 21, // 23: fingerprint.fingerprintLocale.internationalization:type_name -> fingerprint.fingerprintLocaleInternationalization + 22, // 24: fingerprint.fingerprintLocale.languages:type_name -> fingerprint.fingerprintLocaleLanguages + 24, // 25: fingerprint.fingerprintContexts.iframe:type_name -> fingerprint.fingerprintIframeContext + 25, // 26: fingerprint.fingerprintContexts.webWorker:type_name -> fingerprint.fingerprintWebWorkerContext + 27, // 27: fingerprint.fingerprintFastBotDetectionDetails.headlessChromeScreenResolution:type_name -> fingerprint.fingerprintDetectionResult + 27, // 28: fingerprint.fingerprintFastBotDetectionDetails.hasWebdriver:type_name -> fingerprint.fingerprintDetectionResult + 27, // 29: fingerprint.fingerprintFastBotDetectionDetails.hasWebdriverWritable:type_name -> fingerprint.fingerprintDetectionResult + 27, // 30: fingerprint.fingerprintFastBotDetectionDetails.hasSeleniumProperty:type_name -> fingerprint.fingerprintDetectionResult + 27, // 31: fingerprint.fingerprintFastBotDetectionDetails.hasCDP:type_name -> fingerprint.fingerprintDetectionResult + 27, // 32: fingerprint.fingerprintFastBotDetectionDetails.hasPlaywright:type_name -> fingerprint.fingerprintDetectionResult + 27, // 33: fingerprint.fingerprintFastBotDetectionDetails.hasImpossibleDeviceMemory:type_name -> fingerprint.fingerprintDetectionResult + 27, // 34: fingerprint.fingerprintFastBotDetectionDetails.hasHighCPUCount:type_name -> fingerprint.fingerprintDetectionResult + 27, // 35: fingerprint.fingerprintFastBotDetectionDetails.hasMissingChromeObject:type_name -> fingerprint.fingerprintDetectionResult + 27, // 36: fingerprint.fingerprintFastBotDetectionDetails.hasWebdriverIframe:type_name -> fingerprint.fingerprintDetectionResult + 27, // 37: fingerprint.fingerprintFastBotDetectionDetails.hasWebdriverWorker:type_name -> fingerprint.fingerprintDetectionResult + 27, // 38: fingerprint.fingerprintFastBotDetectionDetails.hasMismatchWebGLInWorker:type_name -> fingerprint.fingerprintDetectionResult + 27, // 39: fingerprint.fingerprintFastBotDetectionDetails.hasMismatchPlatformIframe:type_name -> fingerprint.fingerprintDetectionResult + 27, // 40: fingerprint.fingerprintFastBotDetectionDetails.hasMismatchPlatformWorker:type_name -> fingerprint.fingerprintDetectionResult + 27, // 41: fingerprint.fingerprintFastBotDetectionDetails.hasSwiftshaderRenderer:type_name -> fingerprint.fingerprintDetectionResult + 27, // 42: fingerprint.fingerprintFastBotDetectionDetails.hasUTCTimezone:type_name -> fingerprint.fingerprintDetectionResult + 27, // 43: fingerprint.fingerprintFastBotDetectionDetails.hasMismatchLanguages:type_name -> fingerprint.fingerprintDetectionResult + 27, // 44: fingerprint.fingerprintFastBotDetectionDetails.hasInconsistentEtsl:type_name -> fingerprint.fingerprintDetectionResult + 27, // 45: fingerprint.fingerprintFastBotDetectionDetails.hasBotUserAgent:type_name -> fingerprint.fingerprintDetectionResult + 27, // 46: fingerprint.fingerprintFastBotDetectionDetails.hasGPUMismatch:type_name -> fingerprint.fingerprintDetectionResult + 27, // 47: fingerprint.fingerprintFastBotDetectionDetails.hasPlatformMismatch:type_name -> fingerprint.fingerprintDetectionResult + 48, // [48:48] is the sub-list for method output_type + 48, // [48:48] is the sub-list for method input_type + 48, // [48:48] is the sub-list for extension type_name + 48, // [48:48] is the sub-list for extension extendee + 0, // [0:48] is the sub-list for field type_name +} + +func init() { file_fingerprint_proto_init() } +func file_fingerprint_proto_init() { + if File_fingerprint_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_fingerprint_proto_rawDesc), len(file_fingerprint_proto_rawDesc)), + NumEnums: 0, + NumMessages: 29, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_fingerprint_proto_goTypes, + DependencyIndexes: file_fingerprint_proto_depIdxs, + MessageInfos: file_fingerprint_proto_msgTypes, + }.Build() + File_fingerprint_proto = out.File + file_fingerprint_proto_goTypes = nil + file_fingerprint_proto_depIdxs = nil +} diff --git a/pkg/appsec/challenge/pb/fingerprint.proto b/pkg/appsec/challenge/pb/fingerprint.proto new file mode 100644 index 00000000000..9213eb71587 --- /dev/null +++ b/pkg/appsec/challenge/pb/fingerprint.proto @@ -0,0 +1,289 @@ +syntax = "proto3"; +package fingerprint; + +option go_package = ".;pb"; + +message FingerprintData { + fingerprintSignals signals = 1; + string fsid = 2; + string nonce = 3; + int64 time = 4; + string url = 5; + bool fastBotDetection = 6; + fingerprintFastBotDetectionDetails fastBotDetectionDetails = 7; + fingerprintBotAlias bot = 8; +} + +// ChallengeCookie is the sealed cookie payload. It wraps the validated +// fingerprint together with metadata that influences re-challenge decisions +// (e.g. the PoW difficulty the client proved). Keeping this separate from +// FingerprintData lets us evolve the cookie envelope without polluting the +// fingerprint model exposed to hook expressions. +message ChallengeCookie { + FingerprintData fingerprint = 1; + // pow_difficulty is the PoW difficulty (in leading zero bits) the client + // proved when this cookie was sealed. + int32 pow_difficulty = 2; +} + +message fingerprintSignals { + fingerprintAutomation automation = 1; + fingerprintDevice device = 2; + fingerprintBrowser browser = 3; + fingerprintGraphics graphics = 4; + fingerprintCodecs codecs = 5; + fingerprintLocale locale = 6; + fingerprintContexts contexts = 7; +} + +message fingerprintAutomation { + bool webdriver = 1; + bool webdriverWritable = 2; + bool selenium = 3; + bool cdp = 4; + bool playwright = 5; + string navigatorPropertyDescriptors = 6; +} + +message fingerprintDevice { + int32 cpuCount = 1; + int32 memory = 2; + string platform = 3; + fingerprintScreenResolution screenResolution = 4; + fingerprintMultimediaDevices multimediaDevices = 5; + fingerprintDeviceMediaQueries mediaQueries = 6; +} + +message fingerprintScreenResolution { + int32 width = 1; + int32 height = 2; + int32 pixelDepth = 3; + int32 colorDepth = 4; + int32 availableWidth = 5; + int32 availableHeight = 6; + int32 innerWidth = 7; + int32 innerHeight = 8; + bool hasMultipleDisplays = 9; +} + +message fingerprintMultimediaDevices { + int32 speakers = 1; + int32 microphones = 2; + int32 webcams = 3; +} + +message fingerprintDeviceMediaQueries { + string prefersColorScheme = 1; + bool prefersReducedMotion = 2; + bool prefersReducedTransparency = 3; + string colorGamut = 4; + string pointer = 5; + string anyPointer = 6; + bool hover = 7; + bool anyHover = 8; + int32 colorDepth = 9; +} + +message fingerprintBrowser { + string userAgent = 1; + fingerprintBrowserFeatures features = 2; + fingerprintBrowserPlugins plugins = 3; + fingerprintBrowserExtensions extensions = 4; + fingerprintBrowserHighEntropyValues highEntropyValues = 5; + int32 etsl = 6; + string maths = 7; + fingerprintBrowserToSourceError toSourceError = 8; +} + +message fingerprintBrowserFeatures { + string bitmask = 1; + bool chrome = 2; + bool brave = 3; + bool applePaySupport = 4; + bool opera = 5; + bool serial = 6; + bool attachShadow = 7; + bool caches = 8; + bool webAssembly = 9; + bool buffer = 10; + bool showModalDialog = 11; + bool safari = 12; + bool webkitPrefixedFunction = 13; + bool mozPrefixedFunction = 14; + bool usb = 15; + bool browserCapture = 16; + bool paymentRequestUpdateEvent = 17; + bool pressureObserver = 18; + bool audioSession = 19; + bool selectAudioOutput = 20; + bool barcodeDetector = 21; + bool battery = 22; + bool devicePosture = 23; + bool documentPictureInPicture = 24; + bool eyeDropper = 25; + bool editContext = 26; + bool fencedFrame = 27; + bool sanitizer = 28; + bool otpCredential = 29; +} + +message fingerprintBrowserPlugins { + bool isValidPluginArray = 1; + int32 pluginCount = 2; + string pluginNamesHash = 3; + bool pluginConsistency1 = 4; + bool pluginOverflow = 5; +} + +message fingerprintBrowserExtensions { + string bitmask = 1; + repeated string extensions = 2; +} + +message fingerprintBrowserHighEntropyValues { + string architecture = 1; + string bitness = 2; + repeated fingerprintBrandVersion brands = 3; + bool mobile = 4; + string model = 5; + string platform = 6; + string platformVersion = 7; + string uaFullVersion = 8; +} + +message fingerprintBrandVersion { + string brand = 1; + string version = 2; +} + +message fingerprintBrowserToSourceError { + string toSourceError = 1; + bool hasToSource = 2; +} + +message fingerprintGraphics { + fingerprintGraphicsWebGL webGL = 1; + fingerprintGraphicsWebGPU webgpu = 2; + fingerprintGraphicsCanvas canvas = 3; +} + +message fingerprintGraphicsWebGL { + string vendor = 1; + string renderer = 2; +} + +message fingerprintGraphicsWebGPU { + string vendor = 1; + string architecture = 2; + string device = 3; + string description = 4; +} + +message fingerprintGraphicsCanvas { + bool hasModifiedCanvas = 1; + string canvasFingerprint = 2; +} + +message fingerprintCodecs { + string audioCanPlayTypeHash = 1; + string videoCanPlayTypeHash = 2; + string audioMediaSourceHash = 3; + string videoMediaSourceHash = 4; + string rtcAudioCapabilitiesHash = 5; + string rtcVideoCapabilitiesHash = 6; + bool hasMediaSource = 7; +} + +message fingerprintLocale { + fingerprintLocaleInternationalization internationalization = 1; + fingerprintLocaleLanguages languages = 2; +} + +message fingerprintLocaleInternationalization { + string timezone = 1; + string localeLanguage = 2; +} + +message fingerprintLocaleLanguages { + repeated string languages = 1; + string language = 2; +} + +message fingerprintContexts { + fingerprintIframeContext iframe = 1; + fingerprintWebWorkerContext webWorker = 2; +} + +message fingerprintIframeContext { + bool webdriver = 1; + string userAgent = 2; + string platform = 3; + int32 memory = 4; + int32 cpuCount = 5; + string language = 6; +} + +message fingerprintWebWorkerContext { + string vendor = 1; + string renderer = 2; + string userAgent = 3; + string language = 4; + string platform = 5; + int32 memory = 6; + int32 cpuCount = 7; +} + +message fingerprintFastBotDetectionDetails { + fingerprintDetectionResult headlessChromeScreenResolution = 1; + fingerprintDetectionResult hasWebdriver = 2; + fingerprintDetectionResult hasWebdriverWritable = 3; + fingerprintDetectionResult hasSeleniumProperty = 4; + fingerprintDetectionResult hasCDP = 5; + fingerprintDetectionResult hasPlaywright = 6; + fingerprintDetectionResult hasImpossibleDeviceMemory = 7; + fingerprintDetectionResult hasHighCPUCount = 8; + fingerprintDetectionResult hasMissingChromeObject = 9; + fingerprintDetectionResult hasWebdriverIframe = 10; + fingerprintDetectionResult hasWebdriverWorker = 11; + fingerprintDetectionResult hasMismatchWebGLInWorker = 12; + fingerprintDetectionResult hasMismatchPlatformIframe = 13; + fingerprintDetectionResult hasMismatchPlatformWorker = 14; + fingerprintDetectionResult hasSwiftshaderRenderer = 15; + fingerprintDetectionResult hasUTCTimezone = 16; + fingerprintDetectionResult hasMismatchLanguages = 17; + fingerprintDetectionResult hasInconsistentEtsl = 18; + fingerprintDetectionResult hasBotUserAgent = 19; + fingerprintDetectionResult hasGPUMismatch = 20; + fingerprintDetectionResult hasPlatformMismatch = 21; +} + +message fingerprintDetectionResult { + bool detected = 1; +} + +message fingerprintBotAlias { + bool headlessChromeScreenResolution = 1; + bool webdriver = 2; + bool webdriverWritable = 3; + bool selenium = 4; + bool cdp = 5; + bool playwright = 6; + bool impossibleDeviceMemory = 7; + bool highCPUCount = 8; + bool missingChromeObject = 9; + bool webdriverIframe = 10; + bool webdriverWorker = 11; + bool mismatchWebGLInWorker = 12; + bool mismatchPlatformIframe = 13; + bool mismatchPlatformWorker = 14; + bool swiftshaderRenderer = 15; + bool utcTimezone = 16; + bool anyDetected = 17; + int32 detectedCount = 18; + bool mismatchLanguages = 19; + bool inconsistentEtsl = 20; + bool botUserAgent = 21; + bool gpuMismatch = 22; + bool platformMismatch = 23; +} + diff --git a/pkg/appsec/challenge/pb/generate.go b/pkg/appsec/challenge/pb/generate.go new file mode 100644 index 00000000000..f26d9801d30 --- /dev/null +++ b/pkg/appsec/challenge/pb/generate.go @@ -0,0 +1,14 @@ +package pb + +// Dependencies: +// +// apt install protobuf-compiler +// +// keep this in sync with go.mod +// go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.34.2 +// +// Not the same versions as google.golang.org/grpc +// go list -m -versions google.golang.org/grpc/cmd/protoc-gen-go-grpc +// go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.5.1 + +//go:generate protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative fingerprint.proto diff --git a/pkg/appsec/challenge/pow-worker.js b/pkg/appsec/challenge/pow-worker.js new file mode 100644 index 00000000000..8310f047358 --- /dev/null +++ b/pkg/appsec/challenge/pow-worker.js @@ -0,0 +1,77 @@ +"use strict"; + +var K = [ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, + 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5, + 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, + 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174, + 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, + 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, + 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967, + 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, + 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, + 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070, + 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, + 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3, + 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 +]; + +function sha256(data) { + var h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a, + h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19; + var len = data.length, bitLen = len * 8; + var padLen = 64 - ((len + 9) % 64); + var totalLen = len + 1 + (padLen === 64 ? 0 : padLen) + 8; + var msg = new Uint8Array(totalLen); + msg.set(data); msg[len] = 0x80; + var dv = new DataView(msg.buffer); + dv.setUint32(totalLen - 4, bitLen, false); + var w = new Int32Array(64); + for (var offset = 0; offset < totalLen; offset += 64) { + for (var i = 0; i < 16; i++) w[i] = dv.getInt32(offset + i * 4, false); + for (var i = 16; i < 64; i++) { + var s0 = (((w[i-15] >>> 7) | (w[i-15] << 25)) ^ ((w[i-15] >>> 18) | (w[i-15] << 14)) ^ (w[i-15] >>> 3)) | 0; + var s1 = (((w[i-2] >>> 17) | (w[i-2] << 15)) ^ ((w[i-2] >>> 19) | (w[i-2] << 13)) ^ (w[i-2] >>> 10)) | 0; + w[i] = (w[i-16] + s0 + w[i-7] + s1) | 0; + } + var a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7; + for (var i = 0; i < 64; i++) { + var S1 = (((e >>> 6) | (e << 26)) ^ ((e >>> 11) | (e << 21)) ^ ((e >>> 25) | (e << 7))) | 0; + var ch = ((e & f) ^ (~e & g)) | 0; + var t1 = (h + S1 + ch + K[i] + w[i]) | 0; + var S0 = (((a >>> 2) | (a << 30)) ^ ((a >>> 13) | (a << 19)) ^ ((a >>> 22) | (a << 10))) | 0; + var maj = ((a & b) ^ (a & c) ^ (b & c)) | 0; + var t2 = (S0 + maj) | 0; + h = g; g = f; f = e; e = (d + t1) | 0; d = c; c = b; b = a; a = (t1 + t2) | 0; + } + h0 = (h0 + a) | 0; h1 = (h1 + b) | 0; h2 = (h2 + c) | 0; h3 = (h3 + d) | 0; + h4 = (h4 + e) | 0; h5 = (h5 + f) | 0; h6 = (h6 + g) | 0; h7 = (h7 + h) | 0; + } + var out = new Uint8Array(32); + var ov = new DataView(out.buffer); + ov.setUint32(0, h0, false); ov.setUint32(4, h1, false); + ov.setUint32(8, h2, false); ov.setUint32(12, h3, false); + ov.setUint32(16, h4, false); ov.setUint32(20, h5, false); + ov.setUint32(24, h6, false); ov.setUint32(28, h7, false); + return out; +} + +self.onmessage = function(e) { + var prefix = e.data.p, difficulty = e.data.d, nonce = 0; + var enc = new TextEncoder(); + while (true) { + var candidate = prefix + nonce.toString(36); + var hash = sha256(enc.encode(candidate)); + var fullBytes = difficulty >> 3, remainBits = difficulty & 7, ok = true; + for (var i = 0; i < fullBytes; i++) { if (hash[i] !== 0) { ok = false; break; } } + if (ok && remainBits > 0) { + var mask = (0xff << (8 - remainBits)) & 0xff; + if ((hash[fullBytes] & mask) !== 0) ok = false; + } + if (ok) { self.postMessage(nonce.toString(36)); return; } + nonce++; + } +}; diff --git a/pkg/appsec/challenge/tzcountry_data.go b/pkg/appsec/challenge/tzcountry_data.go new file mode 100644 index 00000000000..1343e2326d8 --- /dev/null +++ b/pkg/appsec/challenge/tzcountry_data.go @@ -0,0 +1,354 @@ +package challenge + +// Generated from IANA tzdb zone1970.tab (public domain). Maps an IANA +// timezone name to the set of ISO-3166 alpha-2 country codes associated +// with it. Regenerate with: +// +// awk -F'\t' '!/^#/ && NF>=3 { ... }' /usr/share/zoneinfo/zone1970.tab +// +// see the plan / repo docs for the full script. +// +// Historical aliases (Asia/Calcutta, Europe/Kiev, etc.) are in tzAliases +// below so older browsers that still send those names resolve correctly. + +var tzCountry = map[string][]string{ + "Europe/Andorra": {"AD"}, + "Asia/Dubai": {"AE", "OM", "RE", "SC", "TF"}, + "Asia/Kabul": {"AF"}, + "Europe/Tirane": {"AL"}, + "Asia/Yerevan": {"AM"}, + "Antarctica/Casey": {"AQ"}, + "Antarctica/Davis": {"AQ"}, + "Antarctica/Mawson": {"AQ"}, + "Antarctica/Palmer": {"AQ"}, + "Antarctica/Rothera": {"AQ"}, + "Antarctica/Troll": {"AQ"}, + "Antarctica/Vostok": {"AQ"}, + "America/Argentina/Buenos_Aires": {"AR"}, + "America/Argentina/Cordoba": {"AR"}, + "America/Argentina/Salta": {"AR"}, + "America/Argentina/Jujuy": {"AR"}, + "America/Argentina/Tucuman": {"AR"}, + "America/Argentina/Catamarca": {"AR"}, + "America/Argentina/La_Rioja": {"AR"}, + "America/Argentina/San_Juan": {"AR"}, + "America/Argentina/Mendoza": {"AR"}, + "America/Argentina/San_Luis": {"AR"}, + "America/Argentina/Rio_Gallegos": {"AR"}, + "America/Argentina/Ushuaia": {"AR"}, + "Pacific/Pago_Pago": {"AS", "UM"}, + "Europe/Vienna": {"AT"}, + "Australia/Lord_Howe": {"AU"}, + "Antarctica/Macquarie": {"AU"}, + "Australia/Hobart": {"AU"}, + "Australia/Melbourne": {"AU"}, + "Australia/Sydney": {"AU"}, + "Australia/Broken_Hill": {"AU"}, + "Australia/Brisbane": {"AU"}, + "Australia/Lindeman": {"AU"}, + "Australia/Adelaide": {"AU"}, + "Australia/Darwin": {"AU"}, + "Australia/Perth": {"AU"}, + "Australia/Eucla": {"AU"}, + "Asia/Baku": {"AZ"}, + "America/Barbados": {"BB"}, + "Asia/Dhaka": {"BD"}, + "Europe/Brussels": {"BE", "LU", "NL"}, + "Europe/Sofia": {"BG"}, + "Atlantic/Bermuda": {"BM"}, + "America/La_Paz": {"BO"}, + "America/Noronha": {"BR"}, + "America/Belem": {"BR"}, + "America/Fortaleza": {"BR"}, + "America/Recife": {"BR"}, + "America/Araguaina": {"BR"}, + "America/Maceio": {"BR"}, + "America/Bahia": {"BR"}, + "America/Sao_Paulo": {"BR"}, + "America/Campo_Grande": {"BR"}, + "America/Cuiaba": {"BR"}, + "America/Santarem": {"BR"}, + "America/Porto_Velho": {"BR"}, + "America/Boa_Vista": {"BR"}, + "America/Manaus": {"BR"}, + "America/Eirunepe": {"BR"}, + "America/Rio_Branco": {"BR"}, + "Asia/Thimphu": {"BT"}, + "Europe/Minsk": {"BY"}, + "America/Belize": {"BZ"}, + "America/St_Johns": {"CA"}, + "America/Halifax": {"CA"}, + "America/Glace_Bay": {"CA"}, + "America/Moncton": {"CA"}, + "America/Goose_Bay": {"CA"}, + "America/Toronto": {"CA", "BS"}, + "America/Iqaluit": {"CA"}, + "America/Winnipeg": {"CA"}, + "America/Resolute": {"CA"}, + "America/Rankin_Inlet": {"CA"}, + "America/Regina": {"CA"}, + "America/Swift_Current": {"CA"}, + "America/Edmonton": {"CA"}, + "America/Cambridge_Bay": {"CA"}, + "America/Inuvik": {"CA"}, + "America/Dawson_Creek": {"CA"}, + "America/Fort_Nelson": {"CA"}, + "America/Whitehorse": {"CA"}, + "America/Dawson": {"CA"}, + "America/Vancouver": {"CA"}, + "Europe/Zurich": {"CH", "DE", "LI"}, + "Africa/Abidjan": {"CI", "BF", "GH", "GM", "GN", "IS", "ML", "MR", "SH", "SL", "SN", "TG"}, + "Pacific/Rarotonga": {"CK"}, + "America/Santiago": {"CL"}, + "America/Coyhaique": {"CL"}, + "America/Punta_Arenas": {"CL"}, + "Pacific/Easter": {"CL"}, + "Asia/Shanghai": {"CN"}, + "Asia/Urumqi": {"CN"}, + "America/Bogota": {"CO"}, + "America/Costa_Rica": {"CR"}, + "America/Havana": {"CU"}, + "Atlantic/Cape_Verde": {"CV"}, + "Asia/Nicosia": {"CY"}, + "Asia/Famagusta": {"CY"}, + "Europe/Prague": {"CZ", "SK"}, + "Europe/Berlin": {"DE", "DK", "NO", "SE", "SJ"}, + "America/Santo_Domingo": {"DO"}, + "Africa/Algiers": {"DZ"}, + "America/Guayaquil": {"EC"}, + "Pacific/Galapagos": {"EC"}, + "Europe/Tallinn": {"EE"}, + "Africa/Cairo": {"EG"}, + "Africa/El_Aaiun": {"EH"}, + "Europe/Madrid": {"ES"}, + "Africa/Ceuta": {"ES"}, + "Atlantic/Canary": {"ES"}, + "Europe/Helsinki": {"FI", "AX"}, + "Pacific/Fiji": {"FJ"}, + "Atlantic/Stanley": {"FK"}, + "Pacific/Kosrae": {"FM"}, + "Atlantic/Faroe": {"FO"}, + "Europe/Paris": {"FR", "MC"}, + "Europe/London": {"GB", "GG", "IM", "JE"}, + "Asia/Tbilisi": {"GE"}, + "America/Cayenne": {"GF"}, + "Europe/Gibraltar": {"GI"}, + "America/Nuuk": {"GL"}, + "America/Danmarkshavn": {"GL"}, + "America/Scoresbysund": {"GL"}, + "America/Thule": {"GL"}, + "Europe/Athens": {"GR"}, + "Atlantic/South_Georgia": {"GS"}, + "America/Guatemala": {"GT"}, + "Pacific/Guam": {"GU", "MP"}, + "Africa/Bissau": {"GW"}, + "America/Guyana": {"GY"}, + "Asia/Hong_Kong": {"HK"}, + "America/Tegucigalpa": {"HN"}, + "America/Port-au-Prince": {"HT"}, + "Europe/Budapest": {"HU"}, + "Asia/Jakarta": {"ID"}, + "Asia/Pontianak": {"ID"}, + "Asia/Makassar": {"ID"}, + "Asia/Jayapura": {"ID"}, + "Europe/Dublin": {"IE"}, + "Asia/Jerusalem": {"IL"}, + "Asia/Kolkata": {"IN"}, + "Indian/Chagos": {"IO"}, + "Asia/Baghdad": {"IQ"}, + "Asia/Tehran": {"IR"}, + "Europe/Rome": {"IT", "SM", "VA"}, + "America/Jamaica": {"JM"}, + "Asia/Amman": {"JO"}, + "Asia/Tokyo": {"JP", "AU"}, + "Africa/Nairobi": {"KE", "DJ", "ER", "ET", "KM", "MG", "SO", "TZ", "UG", "YT"}, + "Asia/Bishkek": {"KG"}, + "Pacific/Tarawa": {"KI", "MH", "TV", "UM", "WF"}, + "Pacific/Kanton": {"KI"}, + "Pacific/Kiritimati": {"KI"}, + "Asia/Pyongyang": {"KP"}, + "Asia/Seoul": {"KR"}, + "Asia/Almaty": {"KZ"}, + "Asia/Qyzylorda": {"KZ"}, + "Asia/Qostanay": {"KZ"}, + "Asia/Aqtobe": {"KZ"}, + "Asia/Aqtau": {"KZ"}, + "Asia/Atyrau": {"KZ"}, + "Asia/Oral": {"KZ"}, + "Asia/Beirut": {"LB"}, + "Asia/Colombo": {"LK"}, + "Africa/Monrovia": {"LR"}, + "Europe/Vilnius": {"LT"}, + "Europe/Riga": {"LV"}, + "Africa/Tripoli": {"LY"}, + "Africa/Casablanca": {"MA"}, + "Europe/Chisinau": {"MD"}, + "Pacific/Kwajalein": {"MH"}, + "Asia/Yangon": {"MM", "CC"}, + "Asia/Ulaanbaatar": {"MN"}, + "Asia/Hovd": {"MN"}, + "Asia/Macau": {"MO"}, + "America/Martinique": {"MQ"}, + "Europe/Malta": {"MT"}, + "Indian/Mauritius": {"MU"}, + "Indian/Maldives": {"MV", "TF"}, + "America/Mexico_City": {"MX"}, + "America/Cancun": {"MX"}, + "America/Merida": {"MX"}, + "America/Monterrey": {"MX"}, + "America/Matamoros": {"MX"}, + "America/Chihuahua": {"MX"}, + "America/Ciudad_Juarez": {"MX"}, + "America/Ojinaga": {"MX"}, + "America/Mazatlan": {"MX"}, + "America/Bahia_Banderas": {"MX"}, + "America/Hermosillo": {"MX"}, + "America/Tijuana": {"MX"}, + "Asia/Kuching": {"MY", "BN"}, + "Africa/Maputo": {"MZ", "BI", "BW", "CD", "MW", "RW", "ZM", "ZW"}, + "Africa/Windhoek": {"NA"}, + "Pacific/Noumea": {"NC"}, + "Pacific/Norfolk": {"NF"}, + "Africa/Lagos": {"NG", "AO", "BJ", "CD", "CF", "CG", "CM", "GA", "GQ", "NE"}, + "America/Managua": {"NI"}, + "Asia/Kathmandu": {"NP"}, + "Pacific/Nauru": {"NR"}, + "Pacific/Niue": {"NU"}, + "Pacific/Auckland": {"NZ", "AQ"}, + "Pacific/Chatham": {"NZ"}, + "America/Panama": {"PA", "CA", "KY"}, + "America/Lima": {"PE"}, + "Pacific/Tahiti": {"PF"}, + "Pacific/Marquesas": {"PF"}, + "Pacific/Gambier": {"PF"}, + "Pacific/Port_Moresby": {"PG", "AQ", "FM"}, + "Pacific/Bougainville": {"PG"}, + "Asia/Manila": {"PH"}, + "Asia/Karachi": {"PK"}, + "Europe/Warsaw": {"PL"}, + "America/Miquelon": {"PM"}, + "Pacific/Pitcairn": {"PN"}, + "America/Puerto_Rico": {"PR", "AG", "CA", "AI", "AW", "BL", "BQ", "CW", "DM", "GD", "GP", "KN", "LC", "MF", "MS", "SX", "TT", "VC", "VG", "VI"}, + "Asia/Gaza": {"PS"}, + "Asia/Hebron": {"PS"}, + "Europe/Lisbon": {"PT"}, + "Atlantic/Madeira": {"PT"}, + "Atlantic/Azores": {"PT"}, + "Pacific/Palau": {"PW"}, + "America/Asuncion": {"PY"}, + "Asia/Qatar": {"QA", "BH"}, + "Europe/Bucharest": {"RO"}, + "Europe/Belgrade": {"RS", "BA", "HR", "ME", "MK", "SI"}, + "Europe/Kaliningrad": {"RU"}, + "Europe/Moscow": {"RU"}, + "Europe/Simferopol": {"RU", "UA"}, + "Europe/Kirov": {"RU"}, + "Europe/Volgograd": {"RU"}, + "Europe/Astrakhan": {"RU"}, + "Europe/Saratov": {"RU"}, + "Europe/Ulyanovsk": {"RU"}, + "Europe/Samara": {"RU"}, + "Asia/Yekaterinburg": {"RU"}, + "Asia/Omsk": {"RU"}, + "Asia/Novosibirsk": {"RU"}, + "Asia/Barnaul": {"RU"}, + "Asia/Tomsk": {"RU"}, + "Asia/Novokuznetsk": {"RU"}, + "Asia/Krasnoyarsk": {"RU"}, + "Asia/Irkutsk": {"RU"}, + "Asia/Chita": {"RU"}, + "Asia/Yakutsk": {"RU"}, + "Asia/Khandyga": {"RU"}, + "Asia/Vladivostok": {"RU"}, + "Asia/Ust-Nera": {"RU"}, + "Asia/Magadan": {"RU"}, + "Asia/Sakhalin": {"RU"}, + "Asia/Srednekolymsk": {"RU"}, + "Asia/Kamchatka": {"RU"}, + "Asia/Anadyr": {"RU"}, + "Asia/Riyadh": {"SA", "AQ", "KW", "YE"}, + "Pacific/Guadalcanal": {"SB", "FM"}, + "Africa/Khartoum": {"SD"}, + "Asia/Singapore": {"SG", "AQ", "MY"}, + "America/Paramaribo": {"SR"}, + "Africa/Juba": {"SS"}, + "Africa/Sao_Tome": {"ST"}, + "America/El_Salvador": {"SV"}, + "Asia/Damascus": {"SY"}, + "America/Grand_Turk": {"TC"}, + "Africa/Ndjamena": {"TD"}, + "Asia/Bangkok": {"TH", "CX", "KH", "LA", "VN"}, + "Asia/Dushanbe": {"TJ"}, + "Pacific/Fakaofo": {"TK"}, + "Asia/Dili": {"TL"}, + "Asia/Ashgabat": {"TM"}, + "Africa/Tunis": {"TN"}, + "Pacific/Tongatapu": {"TO"}, + "Europe/Istanbul": {"TR"}, + "Asia/Taipei": {"TW"}, + "Europe/Kyiv": {"UA"}, + "America/New_York": {"US"}, + "America/Detroit": {"US"}, + "America/Kentucky/Louisville": {"US"}, + "America/Kentucky/Monticello": {"US"}, + "America/Indiana/Indianapolis": {"US"}, + "America/Indiana/Vincennes": {"US"}, + "America/Indiana/Winamac": {"US"}, + "America/Indiana/Marengo": {"US"}, + "America/Indiana/Petersburg": {"US"}, + "America/Indiana/Vevay": {"US"}, + "America/Chicago": {"US"}, + "America/Indiana/Tell_City": {"US"}, + "America/Indiana/Knox": {"US"}, + "America/Menominee": {"US"}, + "America/North_Dakota/Center": {"US"}, + "America/North_Dakota/New_Salem": {"US"}, + "America/North_Dakota/Beulah": {"US"}, + "America/Denver": {"US"}, + "America/Boise": {"US"}, + "America/Phoenix": {"US", "CA"}, + "America/Los_Angeles": {"US"}, + "America/Anchorage": {"US"}, + "America/Juneau": {"US"}, + "America/Sitka": {"US"}, + "America/Metlakatla": {"US"}, + "America/Yakutat": {"US"}, + "America/Nome": {"US"}, + "America/Adak": {"US"}, + "Pacific/Honolulu": {"US"}, + "America/Montevideo": {"UY"}, + "Asia/Samarkand": {"UZ"}, + "Asia/Tashkent": {"UZ"}, + "America/Caracas": {"VE"}, + "Asia/Ho_Chi_Minh": {"VN"}, + "Pacific/Efate": {"VU"}, + "Pacific/Apia": {"WS"}, + "Africa/Johannesburg": {"ZA", "LS", "SZ"}, +} + +// tzAliases maps deprecated / legacy timezone names that older browsers or +// operating systems still emit to their canonical equivalents in tzCountry. +// Keeping the aliases small and explicit rather than generated; pull more in +// as we observe them in production traffic. +var tzAliases = map[string]string{ + "Asia/Calcutta": "Asia/Kolkata", + "Asia/Saigon": "Asia/Ho_Chi_Minh", + "Asia/Katmandu": "Asia/Kathmandu", + "Asia/Istanbul": "Europe/Istanbul", + "Europe/Kiev": "Europe/Kyiv", + "America/Buenos_Aires": "America/Argentina/Buenos_Aires", + "America/Godthab": "America/Nuuk", +} + +// lookupTimezoneCountries returns the ISO country codes associated with an +// IANA timezone, resolving aliases first. Returns nil for unknown zones — +// callers treat nil as "no data" and decline to emit a mismatch signal. +func lookupTimezoneCountries(tz string) []string { + if tz == "" { + return nil + } + if canonical, ok := tzAliases[tz]; ok { + tz = canonical + } + return tzCountry[tz] +} diff --git a/pkg/appsec/cookie/cookie.go b/pkg/appsec/cookie/cookie.go new file mode 100644 index 00000000000..f1d3ba45fda --- /dev/null +++ b/pkg/appsec/cookie/cookie.go @@ -0,0 +1,138 @@ +package cookie + +import ( + "net/http" + "strings" + "time" +) + +const ( + defaultCookiePath = "/" + defaultCookieSameSite = "Lax" +) + +const ( + SameSiteLax = "Lax" + SameSiteStrict = "Strict" + SameSiteNone = "None" +) + +type AppsecCookie struct { + Name string + Expiration int64 + Val string + PathVal string + DomainName string + SecureFlag bool + HttpOnlyFlag bool + SameSiteMode string +} + +// NewAppsecCookie returns a cookie pre-populated with sensible defaults. +// Defaults: Path "/", SameSite=Lax, session lifetime, not secure/httponly unless set. +func NewAppsecCookie(name string) *AppsecCookie { + return (&AppsecCookie{Name: name}).withDefaults() +} + +// Cookie is a short alias for NewAppsecCookie. +func Cookie(name string) *AppsecCookie { + return NewAppsecCookie(name) +} + +func (c *AppsecCookie) withDefaults() *AppsecCookie { + if c.PathVal == "" { + c.PathVal = defaultCookiePath + } + + if c.SameSiteMode == "" { + c.SameSiteMode = defaultCookieSameSite + } + + return c +} + +func (c *AppsecCookie) Value(value string) *AppsecCookie { + c.Val = value + return c +} + +func (c *AppsecCookie) Path(path string) *AppsecCookie { + if path == "" { + path = defaultCookiePath + } + + c.PathVal = path + return c +} + +func (c *AppsecCookie) Domain(domain string) *AppsecCookie { + c.DomainName = domain + return c +} + +func (c *AppsecCookie) Secure() *AppsecCookie { + c.SecureFlag = true + return c +} + +func (c *AppsecCookie) HttpOnly() *AppsecCookie { + c.HttpOnlyFlag = true + return c +} + +func (c *AppsecCookie) SameSite(mode string) *AppsecCookie { + c.SameSiteMode = mode + return c +} + +// ExpiresAt sets an absolute expiration time (unix seconds). +func (c *AppsecCookie) ExpiresAt(t time.Time) *AppsecCookie { + c.Expiration = t.Unix() + return c +} + +// ExpiresIn sets the expiration relative to now. +func (c *AppsecCookie) ExpiresIn(d time.Duration) *AppsecCookie { + c.Expiration = time.Now().Add(d).Unix() + return c +} + +// String formats the cookie into a Set-Cookie compatible string. +func (c *AppsecCookie) String() string { + c.withDefaults() + + cookie := http.Cookie{ + Name: c.Name, + Value: c.Val, + Path: c.PathVal, + Domain: c.DomainName, + Secure: c.SecureFlag, + HttpOnly: c.HttpOnlyFlag, + SameSite: toSameSite(c.SameSiteMode), + } + + if c.Expiration > 0 { + cookie.Expires = time.Unix(c.Expiration, 0).UTC() + cookie.MaxAge = int(time.Until(cookie.Expires).Seconds()) + } + + // SameSite=None requires Secure=true per modern browsers; enforce to avoid invalid cookies. + if cookie.SameSite == http.SameSiteNoneMode && !cookie.Secure { + cookie.Secure = true + } + + return cookie.String() +} + +func toSameSite(mode string) http.SameSite { + switch strings.ToLower(mode) { + case "lax": + return http.SameSiteLaxMode + case "strict": + return http.SameSiteStrictMode + case "none": + return http.SameSiteNoneMode + default: + return http.SameSiteDefaultMode + } +} diff --git a/pkg/appsec/fingerprint_mismatch_runtime_test.go b/pkg/appsec/fingerprint_mismatch_runtime_test.go new file mode 100644 index 00000000000..2fb596f5d12 --- /dev/null +++ b/pkg/appsec/fingerprint_mismatch_runtime_test.go @@ -0,0 +1,259 @@ +package appsec + +import ( + "encoding/json" + "net/http" + "testing" + + "github.com/prometheus/client_golang/prometheus" + "github.com/prometheus/client_golang/prometheus/testutil" + log "github.com/sirupsen/logrus" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" + + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" + "github.com/crowdsecurity/crowdsec/pkg/exprhelpers" + "github.com/crowdsecurity/crowdsec/pkg/metrics" +) + +// Well-known MaxMind test vectors that exist in the test mmdb under +// pkg/parser/testdata. Used to exercise the geoip-backed country +// resolution inside EvaluateMismatches without mocks. +const ( + testIPUS = "216.160.83.56" // Milton, US + testIPGB = "81.2.69.142" // London, GB +) + +// setupGeoIP loads the same test mmdb the parser tests use so that +// IPToCountryString has a working reader to query. Safe to call more than +// once in a single test run. +func setupGeoIP(t *testing.T) { + t.Helper() + require.NoError(t, exprhelpers.GeoIPInit("../parser/testdata/"), "geoip init failed") +} + +// fpEuropeParisCDP returns a fingerprint with Europe/Paris timezone and a +// single fired library signal (CDP), so EvaluateMismatches can be driven +// predictably. +func fpEuropeParisCDP(t *testing.T) *challenge.FingerprintData { + t.Helper() + raw := `{ + "signals": { + "device": {"platform": "MacIntel"}, + "browser": { + "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) Chrome/120", + "highEntropyValues": {"platform": "macOS"} + }, + "locale": { + "internationalization": {"timezone": "Europe/Paris"}, + "languages": {"language": "en"} + } + }, + "fsid": "FS_RUNTIME", "nonce": "n", "time": 1, "url": "http://x/", + "fastBotDetection": true, + "fastBotDetectionDetails": { + "hasCDP": {"detected": true, "severity": "high"} + } + }` + fp := &challenge.FingerprintData{} + require.NoError(t, json.Unmarshal([]byte(raw), fp)) + return fp +} + +func makeRuntime() *AppsecRuntimeConfig { + return &AppsecRuntimeConfig{Logger: log.NewEntry(log.StandardLogger())} +} + +func TestEvaluateMismatches_GeoIPTimezoneMismatch_Fires(t *testing.T) { + setupGeoIP(t) + metrics.AppsecFingerprintMismatch.Reset() + + w := makeRuntime() + httpReq, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + + state := &AppsecRequestState{Fingerprint: fpEuropeParisCDP(t)} + req := &ParsedRequest{ + HTTPRequest: httpReq, + ClientIP: testIPUS, // geoip resolves to "US" + AppsecEngine: "test-engine", + } + + report := w.EvaluateMismatches(state, req) + + // Europe/Paris fingerprint timezone but request geoips to US → the + // soft timezone_country signal must fire. CDP already fires from the + // library side. + assert.True(t, report.Has(challenge.ReasonTimezoneCountry), + "expected timezone_country to fire for Europe/Paris + US geoip") + assert.True(t, report.Has(challenge.ReasonCDP)) + assert.Equal(t, 1, report.High(), "only CDP is high severity here") + assert.Equal(t, 1, report.Low(), "timezone_country is low severity") + + // Prometheus counters must reflect one bump per fired signal. + assert.Equal(t, 1.0, testutil.ToFloat64( + metrics.AppsecFingerprintMismatch.With(prometheus.Labels{ + "reason": challenge.ReasonTimezoneCountry, + "severity": challenge.SeverityLow, + "appsec_engine": "test-engine", + }), + )) + assert.Equal(t, 1.0, testutil.ToFloat64( + metrics.AppsecFingerprintMismatch.With(prometheus.Labels{ + "reason": challenge.ReasonCDP, + "severity": challenge.SeverityHigh, + "appsec_engine": "test-engine", + }), + )) +} + +func TestEvaluateMismatches_GeoIPConsistent_NoTimezoneSignal(t *testing.T) { + setupGeoIP(t) + metrics.AppsecFingerprintMismatch.Reset() + + w := makeRuntime() + httpReq, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + + // Browser reports Europe/London tz; client IP geolocates to GB. + // No timezone_country mismatch should fire. + raw := `{ + "signals": { + "device": {"platform": "Win32"}, + "browser": { + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120", + "highEntropyValues": {"platform": "Windows"} + }, + "locale": { + "internationalization": {"timezone": "Europe/London"}, + "languages": {"language": "en"} + } + }, + "fsid": "FS_OK_GB", "nonce": "n", "time": 1, "url": "http://x/", + "fastBotDetection": false, + "fastBotDetectionDetails": {} + }` + fp := &challenge.FingerprintData{} + require.NoError(t, json.Unmarshal([]byte(raw), fp)) + + state := &AppsecRequestState{Fingerprint: fp} + req := &ParsedRequest{ + HTTPRequest: httpReq, + ClientIP: testIPGB, // geoip resolves to "GB" + AppsecEngine: "test-engine", + } + + report := w.EvaluateMismatches(state, req) + + assert.False(t, report.Has(challenge.ReasonTimezoneCountry), + "Europe/London + GB geoip must not fire timezone_country") + assert.True(t, report.Empty(), "no signals expected at all") +} + +func TestEvaluateMismatches_CachesAcrossCalls(t *testing.T) { + setupGeoIP(t) + metrics.AppsecFingerprintMismatch.Reset() + + w := makeRuntime() + httpReq, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + + state := &AppsecRequestState{Fingerprint: fpEuropeParisCDP(t)} + req := &ParsedRequest{ + HTTPRequest: httpReq, + ClientIP: testIPUS, + AppsecEngine: "test-engine", + } + + first := w.EvaluateMismatches(state, req) + second := w.EvaluateMismatches(state, req) + third := w.EvaluateMismatches(state, req) + + // All three calls must return the exact same pointer — state cache. + assert.Same(t, first, second) + assert.Same(t, second, third) + assert.Same(t, first, state.LastMismatchReport) + + // Observability fires once total (log + metric) despite three calls. + // Verifies the emitMismatchObservability gate at state.LastMismatchReport. + assert.Equal(t, 1.0, testutil.ToFloat64( + metrics.AppsecFingerprintMismatch.With(prometheus.Labels{ + "reason": challenge.ReasonTimezoneCountry, + "severity": challenge.SeverityLow, + "appsec_engine": "test-engine", + }), + )) +} + +func TestEvaluateMismatches_UnresolvableClientIP_NoTimezoneSignal(t *testing.T) { + setupGeoIP(t) + metrics.AppsecFingerprintMismatch.Reset() + + w := makeRuntime() + httpReq, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + + state := &AppsecRequestState{Fingerprint: fpEuropeParisCDP(t)} + req := &ParsedRequest{ + HTTPRequest: httpReq, + ClientIP: "203.0.113.1", // not in the test mmdb + AppsecEngine: "test-engine", + } + + report := w.EvaluateMismatches(state, req) + + // With country == "" the timezone_country helper declines to decide, + // so only the library CDP signal fires. + assert.False(t, report.Has(challenge.ReasonTimezoneCountry)) + assert.True(t, report.Has(challenge.ReasonCDP)) +} + +func TestEvaluateMismatches_EmptyReport_NoObservability(t *testing.T) { + setupGeoIP(t) + metrics.AppsecFingerprintMismatch.Reset() + + w := makeRuntime() + httpReq, err := http.NewRequest("GET", "http://x/", nil) + require.NoError(t, err) + + // Consistent fingerprint — no library signals, no custom helper fires. + raw := `{ + "signals": { + "device": {"platform": "Win32"}, + "browser": { + "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120", + "highEntropyValues": {"platform": "Windows"} + }, + "locale": { + "internationalization": {"timezone": "Europe/London"}, + "languages": {"language": "en"} + } + }, + "fsid": "X", "nonce": "n", "time": 1, "url": "http://x/", + "fastBotDetection": false, + "fastBotDetectionDetails": {} + }` + fp := &challenge.FingerprintData{} + require.NoError(t, json.Unmarshal([]byte(raw), fp)) + + state := &AppsecRequestState{Fingerprint: fp} + req := &ParsedRequest{ + HTTPRequest: httpReq, + ClientIP: testIPGB, + AppsecEngine: "test-engine", + } + + report := w.EvaluateMismatches(state, req) + assert.True(t, report.Empty()) + + // No metric bump for any reason when the report is empty. + for _, reason := range challenge.KnownReasons() { + sev := challenge.SeverityFor(reason) + got := testutil.ToFloat64(metrics.AppsecFingerprintMismatch.With(prometheus.Labels{ + "reason": reason, + "severity": sev, + "appsec_engine": "test-engine", + })) + assert.Equal(t, 0.0, got, "no counter bump expected for %q", reason) + } +} diff --git a/pkg/appsec/patcher.go b/pkg/appsec/patcher.go new file mode 100644 index 00000000000..9905893b08d --- /dev/null +++ b/pkg/appsec/patcher.go @@ -0,0 +1,14 @@ +package appsec + +import "github.com/expr-lang/expr/ast" + +// This is not an actual patcher: we just walk the AST to check if we need to create a WASM VM for the challenge mode. +type appsecExprPatcher struct { + NeedWASMVM bool +} + +func (p *appsecExprPatcher) Visit(node *ast.Node) { + if n, ok := (*node).(*ast.CallNode); ok && n.Callee.String() == "SendChallenge" { + p.NeedWASMVM = true + } +} diff --git a/pkg/appsec/patcher_test.go b/pkg/appsec/patcher_test.go new file mode 100644 index 00000000000..3ed6e8fe654 --- /dev/null +++ b/pkg/appsec/patcher_test.go @@ -0,0 +1,46 @@ +package appsec + +import ( + "io" + "testing" + + log "github.com/sirupsen/logrus" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestAppsecConfigBuildDetectsRequireValidChallenge(t *testing.T) { + logger := log.New() + logger.SetOutput(io.Discard) + + cfg := AppsecConfig{ + Logger: log.NewEntry(logger), + PreEval: []Hook{ + { + Apply: []string{"SendChallenge()"}, + }, + }, + } + + runtimeCfg, err := cfg.Build(nil) + require.NoError(t, err) + assert.True(t, runtimeCfg.NeedWASMVM) +} + +func TestAppsecConfigBuildDoesNotDetectRequireValidChallengeWhenUnused(t *testing.T) { + logger := log.New() + logger.SetOutput(io.Discard) + + cfg := AppsecConfig{ + Logger: log.NewEntry(logger), + PreEval: []Hook{ + { + Apply: []string{"SetRemediation(\"ban\")"}, + }, + }, + } + + runtimeCfg, err := cfg.Build(nil) + require.NoError(t, err) + assert.False(t, runtimeCfg.NeedWASMVM) +} diff --git a/pkg/appsec/waf_helpers.go b/pkg/appsec/waf_helpers.go index 7da4eba2398..e47801e8954 100644 --- a/pkg/appsec/waf_helpers.go +++ b/pkg/appsec/waf_helpers.go @@ -1,6 +1,8 @@ package appsec import ( + "github.com/crowdsecurity/crowdsec/pkg/appsec/challenge" + "github.com/crowdsecurity/crowdsec/pkg/appsec/cookie" "github.com/crowdsecurity/crowdsec/pkg/pipeline" ) @@ -15,6 +17,7 @@ func GetOnLoadEnv(w *AppsecRuntimeConfig) map[string]interface{} { "SetRemediationByTag": w.SetActionByTag, "SetRemediationByID": w.SetActionByID, "SetRemediationByName": w.SetActionByName, + "SetChallengeDifficulty": w.SetChallengeDifficulty, } } @@ -30,6 +33,8 @@ func GetPreEvalEnv(w *AppsecRuntimeConfig, state *AppsecRequestState, request *P "RemoveOutBandRuleByTag": func(tag string) error { return w.RemoveOutbandRuleByTag(state, tag) }, "RemoveOutBandRuleByName": func(name string) error { return w.RemoveOutbandRuleByName(state, name) }, "DropRequest": func(reason string) error { return w.DropRequest(state, request, reason) }, + "SetChallengeBody": func(body string) error { return w.SetChallengeBody(state, body) }, + "SetChallengeCookie": func(cookie cookie.AppsecCookie) error { return w.SetChallengeCookie(state, cookie) }, "SetRemediationByTag": w.SetActionByTag, "SetRemediationByID": w.SetActionByID, "SetRemediationByName": w.SetActionByName, @@ -41,6 +46,19 @@ func GetPreEvalEnv(w *AppsecRuntimeConfig, state *AppsecRequestState, request *P state.PendingHTTPCode = &code return nil }, + "AppsecCookie": func(name string) *cookie.AppsecCookie { + return cookie.NewAppsecCookie(name) + }, + "SendChallenge": func() error { + return w.SendChallenge(state, request) + }, + "SetChallengeDifficulty": func(level string) error { + return w.SetChallengeDifficultyPerRequest(state, level) + }, + /*"ValidateChallenge": func(conditions ...bool) (*challenge.ChallengeMatcher, error) { + return w.ValidateChallenge(state, request, conditions...) + },*/ + "fingerprint": state.Fingerprint, } } @@ -50,21 +68,71 @@ func GetPostEvalEnv(w *AppsecRuntimeConfig, state *AppsecRequestState, request * "IsOutBand": request.IsOutBand, "DumpRequest": request.DumpRequest, "req": request.HTTPRequest, + "SendChallenge": func() error { + return w.SendChallenge(state, request) + }, + "SetChallengeDifficulty": func(level string) error { + return w.SetChallengeDifficultyPerRequest(state, level) + }, + "fingerprint": state.Fingerprint, + /*"ValidateChallenge": func(name string, conditions ...bool) (*challenge.ChallengeMatcher, error) { + return w.ValidateChallenge(state, request, conditions...) + },*/ + } +} + +func GetOnChallengeEnv(w *AppsecRuntimeConfig, state *AppsecRequestState, request *ParsedRequest) map[string]interface{} { + return map[string]interface{}{ + "req": request.HTTPRequest, + "IsInBand": request.IsInBand, + "fingerprint": state.Fingerprint, + "SendChallenge": func() error { + return w.SendChallenge(state, request) + }, + "SetRemediation": func(action string) error { + state.PendingAction = &action + return nil + }, + "SetReturnCode": func(code int) error { + state.PendingHTTPCode = &code + return nil + }, + "DropRequest": func(reason string) error { return w.DropRequest(state, request, reason) }, + "SetChallengeDifficulty": func(level string) error { + return w.SetChallengeDifficultyPerRequest(state, level) + }, + + // EvaluateMismatches: aggregate fingerprint mismatch report. First + // call per request computes the report, caches it on state, and + // emits one Debug log line + per-signal Prometheus counter bumps; + // subsequent calls return the cached pointer so rules can chain + // `.High() >= 1 && .Has("cdp")` without redoing the work. + // + // Atomic helpers (fingerprint.UAMobileMismatch, + // fingerprint.AcceptLanguageMismatch(req), + // fingerprint.TimezoneCountryMismatch(country)) are methods on + // `fingerprint` and can still be called directly from rules. + "EvaluateMismatches": func() *challenge.MismatchReport { + return w.EvaluateMismatches(state, request) + }, } } func GetOnMatchEnv(w *AppsecRuntimeConfig, state *AppsecRequestState, request *ParsedRequest, evt pipeline.Event) map[string]interface{} { return map[string]interface{}{ - "evt": evt, - "req": request.HTTPRequest, - "IsInBand": request.IsInBand, - "IsOutBand": request.IsOutBand, - "SetRemediation": func(action string) error { return w.SetAction(state, action) }, - "SetReturnCode": func(code int) error { return w.SetHTTPCode(state, code) }, - "CancelEvent": func() error { return w.CancelEvent(state) }, - "SendEvent": func() error { return w.SendEvent(state) }, - "CancelAlert": func() error { return w.CancelAlert(state) }, - "SendAlert": func() error { return w.SendAlert(state) }, - "DumpRequest": request.DumpRequest, + "evt": evt, + "req": request.HTTPRequest, + "IsInBand": request.IsInBand, + "IsOutBand": request.IsOutBand, + "SetRemediation": func(action string) error { return w.SetAction(state, action) }, + "SetReturnCode": func(code int) error { return w.SetHTTPCode(state, code) }, + "CancelEvent": func() error { return w.CancelEvent(state) }, + "SendEvent": func() error { return w.SendEvent(state) }, + "CancelAlert": func() error { return w.CancelAlert(state) }, + "SendAlert": func() error { return w.SendAlert(state) }, + "DumpRequest": request.DumpRequest, + "SetChallengeBody": func(body string) error { return w.SetChallengeBody(state, body) }, + "SetChallengeCookie": func(cookie cookie.AppsecCookie) error { return w.SetChallengeCookie(state, cookie) }, + "AppsecCookie": func(name string) *cookie.AppsecCookie { return cookie.NewAppsecCookie(name) }, } } diff --git a/pkg/exprhelpers/expr_lib.go b/pkg/exprhelpers/expr_lib.go index 8fa8e084b26..e00b375c1ec 100644 --- a/pkg/exprhelpers/expr_lib.go +++ b/pkg/exprhelpers/expr_lib.go @@ -531,6 +531,13 @@ var exprFuncs = []exprCustomFunc{ new(func(string) *net.IPNet), }, }, + { + name: "IPToCountry", + function: IPToCountry, + signature: []any{ + new(func(string) string), + }, + }, { name: "JA4H", function: JA4H, diff --git a/pkg/exprhelpers/geoip.go b/pkg/exprhelpers/geoip.go index 6d8813dc0ad..5c9a980ed85 100644 --- a/pkg/exprhelpers/geoip.go +++ b/pkg/exprhelpers/geoip.go @@ -21,6 +21,36 @@ func GeoIPEnrich(params ...any) (any, error) { return city, nil } +// IPToCountryString resolves an IP address string to its ISO-3166 alpha-2 +// country code, returning an empty string on any nil/parse/lookup failure. +// Intended for internal Go callers; expr rules use IPToCountry. +func IPToCountryString(ip string) string { + if geoIPCityReader == nil || ip == "" { + return "" + } + + parsedIP := net.ParseIP(ip) + if parsedIP == nil { + return "" + } + + city, err := geoIPCityReader.City(parsedIP) + if err != nil || city == nil { + return "" + } + + return city.Country.IsoCode +} + +// IPToCountry wraps IPToCountryString for expr. Lets rules write +// `IPToCountry(req.RemoteAddr)` instead of +// `GeoIPEnrich(req.RemoteAddr)?.Country.IsoCode` when they only need the +// country and want nil-safety. +func IPToCountry(params ...any) (any, error) { + ip, _ := params[0].(string) + return IPToCountryString(ip), nil +} + func GeoIPASNEnrich(params ...any) (any, error) { if geoIPASNReader == nil { return nil, nil diff --git a/pkg/metrics/acquisition_appsec.go b/pkg/metrics/acquisition_appsec.go index 45f34b7da9c..8f28e4ae7fa 100644 --- a/pkg/metrics/acquisition_appsec.go +++ b/pkg/metrics/acquisition_appsec.go @@ -66,3 +66,13 @@ var AppsecRuleHits = prometheus.NewCounterVec( }, []string{"rule_name", "type", "appsec_engine", "source"}, ) + +const AppsecFingerprintMismatchMetricName = "cs_appsec_fingerprint_mismatch_total" + +var AppsecFingerprintMismatch = prometheus.NewCounterVec( + prometheus.CounterOpts{ + Name: AppsecFingerprintMismatchMetricName, + Help: "Count of fingerprint mismatch signals fired per reason and severity.", + }, + []string{"reason", "severity", "appsec_engine"}, +)