diff --git a/.DEREK.yml b/.DEREK.yml new file mode 100644 index 0000000000..462522f880 --- /dev/null +++ b/.DEREK.yml @@ -0,0 +1,11 @@ +curators: + - alexrogalskiy + +features: + - dco_check + - comments + - pr_description_required + - release_notes + - hacktoberfest + +contributing_url: https://github.com/AlexRogalskiy/github-action-random-quote/blob/master/.github/CONTRIBUTING.md diff --git a/.alexignore b/.alexignore new file mode 100644 index 0000000000..8b7e7e40b8 --- /dev/null +++ b/.alexignore @@ -0,0 +1,2 @@ +# We will handle the older blog posts later. +config/ diff --git a/.alexrc.js b/.alexrc.js new file mode 100644 index 0000000000..ffe03f6e66 --- /dev/null +++ b/.alexrc.js @@ -0,0 +1,14 @@ +exports.allow = [ + // We frequently refer to form props by their name "disabled". + // Ideally we would alex-ignore only the valid uses (PRs accepted). + "invalid", + + // Unfortunately "watchman" is a library name that we depend on. + "watchman-watchwoman", + + // ignore rehab rule, Detox is an e2e testing library + "rehab" +]; + +// Use a "maybe" level of profanity instead of the default "unlikely". +exports.profanitySureness = 1; diff --git a/.all-contributorsrc b/.all-contributorsrc index 3c6ea27bb3..0b9246febf 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -6,8 +6,15 @@ "files": [ "README.md" ], + "types": { + "marketing": { + "symbol": "๐Ÿ’Œ", + "description": "Marketing - People who help in marketing the repo/project" + } + }, "imageSize": 100, - "commit": false, + "commit": true, + "contributorsPerLine": 5, "contributors": [ { "login": "AlexRogalskiy", diff --git a/.dependabot/config.yml b/.dependabot/config.yml index 3ea4679c45..2f6ff0b910 100644 --- a/.dependabot/config.yml +++ b/.dependabot/config.yml @@ -10,6 +10,10 @@ update_configs: - package_manager: "javascript" directory: "/" update_schedule: "live" + automerged_updates: + - match: + dependency_type: "all" + update_type: "semver:minor" allowed_updates: - match: dependency_type: "development" @@ -38,4 +42,4 @@ update_configs: - package_manager: "python" directory: "/" - update_schedule: "weekly" \ No newline at end of file + update_schedule: "weekly" diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000000..7c9aaa8e27 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,15 @@ +.dependabot +.github +.husky +.idea +reports +scripts +images +k8s +traffic +node_modules +tilt_modules + +npm-debug.log +.gitignore + diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000000..63e1e2c9ec --- /dev/null +++ b/.editorconfig @@ -0,0 +1,31 @@ +# http://editorconfig.org +root = true + +[*] +indent_size = 2 +# Possible values - tab, space +indent_style = space +# Possible values - lf, crlf, cr +end_of_line = lf +# Possible values - latin1, utf-8, utf-16be, utf-16le +charset = utf-8 +insert_final_newline = true +trim_trailing_whitespace = true +max_line_length = 120 + +[*.{js, ts}] +indent_size = 2 +max_line_length = 100 + +[*.{yml, yaml}] +indent_size = 2 + +[*.{html, xml}] +indent_size = 4 + +[*.{css, scss, json}] +indent_size = 4 + +[*.{md, markdown}] +max_line_length = off +trim_trailing_whitespace = false diff --git a/.env.example b/.env.example new file mode 100644 index 0000000000..c360b7a898 --- /dev/null +++ b/.env.example @@ -0,0 +1,14 @@ +##################################################### +###### General settings +##################################################### +IMAGE_SOURCE=node +IMAGE_TAG=12-buster + +APP_NAME=android-patterns +APP_HOST_NAME=${APP_NAME} +APP_CONTAINER_NAME=${APP_NAME} +APP_IMAGE_NAME=${APP_NAME} + +APP_DATA_DIR=./data + +TILT_WATCH_WINDOWS_BUFFER_SIZE=10265536 diff --git a/.gitbook.yaml b/.gitbook.yaml index 207fec18dd..46e567c0cd 100644 --- a/.gitbook.yaml +++ b/.gitbook.yaml @@ -1,6 +1,6 @@ root: ./docs/ -โ€‹structure: +โ€‹structure: user-guide: changelog: ./user-guide/changelog.md dependency: ./user-guide/dependency.md @@ -25,8 +25,8 @@ root: ./docs/ links: info: ./links/info.md -redirects: +redirects: msin: ./README.md info: ./SUMMARY.mdโ€‹ help: ./user-guide/support.md - start: ./user-guide/getting-started.md \ No newline at end of file + start: ./user-guide/getting-started.md diff --git a/.github/auto-comment.yml b/.github/auto-comment.yml new file mode 100644 index 0000000000..767b748474 --- /dev/null +++ b/.github/auto-comment.yml @@ -0,0 +1,12 @@ +issuesOpened: > + Thank you for raising this issue! We will try and get back to you as soon as possible. + Please make sure you format it properly, followed our [code of conduct](https://github.com/AlexRogalskiy/android-patterns/blob/master/.github/CODE_OF_CONDUCT.md) and have given us as much context as possible. + + /cc @AlexRogalskiy + +pullRequestOpened: > + Thank you for raising your pull request. + Please make sure again that you have followed our [contributing guidelines](https://github.com/AlexRogalskiy/android-patterns/blob/master/.github/CONTRIBUTING.md) and the [code of conduct](https://github.com/AlexRogalskiy/android-patterns/blob/master/.github/CODE_OF_CONDUCT.md). + We will review it as soon as possible. + + /cc @AlexRogalskiy diff --git a/.github/codeql/codeql-config.yml b/.github/codeql/codeql-config.yml new file mode 100644 index 0000000000..de726199f6 --- /dev/null +++ b/.github/codeql/codeql-config.yml @@ -0,0 +1,7 @@ +name: "CodeQL config" + +paths-ignore: + - '**/config/**' + - '**/vendor/**' + - '**/reports/**' + - '**/scripts/**' diff --git a/.github/community-code-of-conduct.md b/.github/community-code-of-conduct.md index 8f5445bd34..c13681faa7 100644 --- a/.github/community-code-of-conduct.md +++ b/.github/community-code-of-conduct.md @@ -55,4 +55,4 @@ Should incidents arise, upon adjudication those found to be in violation of this ## Policy precedence -This version of the Nullables.io Community Code of Conduct may be a copy included for your convenience, and as such may not be up to date; all versions of the Nullables.io Community Code of Conduct are superseded by the version found in the [repository](https://github.com/AlexRogalskiy/gradle-java-sample), which takes precedence over any prior versions. +This version of the Nullables.io Community Code of Conduct may be a copy included for your convenience, and as such may not be up to date; all versions of the Nullables.io Community Code of Conduct are superseded by the version found in the [repository](https://github.com/AlexRogalskiy/android-patterns), which takes precedence over any prior versions. diff --git a/.github/labeler.yml b/.github/labeler.yml new file mode 100644 index 0000000000..3567bfde57 --- /dev/null +++ b/.github/labeler.yml @@ -0,0 +1,14 @@ +# https://github.com/actions/labeler/blob/master/README.md + +src: + - src/* + +repo: + - Dockerfile + - entrypoint.sh + +.github-actions: + - .github + +license: + - ./LICENSE diff --git a/.github/labels.json b/.github/labels.json new file mode 100644 index 0000000000..3575f3d9f8 --- /dev/null +++ b/.github/labels.json @@ -0,0 +1,42 @@ +[ + { + "name": "kind/bug", + "color": "c7def8", + "description": "Categorizes issue or PR as related to a bug" + }, + { + "name": "kind/cleanup", + "color": "c7def8", + "description": "Categorizes issue or PR as related to cleaning up code, process, or technical debt" + }, + { + "name": "kind/documentation", + "color": "c7def8", + "description": "Categorizes issue or PR as related to documentation" + }, + { + "name": "kind/feature", + "color": "c7def8", + "description": "Categorizes issue or PR as related to a new feature" + }, + { + "name": "bump:major", + "color": "ef6bb4", + "description": "Attach to PR to automatically bump major version on merge" + }, + { + "name": "bump:minor", + "color": "ef6bb4", + "description": "Attach to PR to automatically bump minor version on merge" + }, + { + "name": "bump:patch", + "color": "ef6bb4", + "description": "Attach to PR to automatically bump patch version on merge" + }, + { + "name": "do-not-merge/hold", + "color": "e11d21", + "description": "Indicated that a PR is not to be merged" + } +] diff --git a/.github/lock.yml b/.github/lock.yml index cd809780a1..ded304589c 100644 --- a/.github/lock.yml +++ b/.github/lock.yml @@ -1,36 +1,26 @@ # Configuration for lock-threads - https://github.com/dessant/lock-threads # Number of days of inactivity before a closed issue or pull request is locked -daysUntilLock: 60 +daysUntilLock: 180 # Skip issues and pull requests created before a given timestamp. Timestamp must # follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable skipCreatedBefore: false -# Issues and pull requests with these labels will not be locked. Set to `[]` to disable -exemptLabels: - - backlog +# Assign `resolved` as the reason for locking. Set to `false` to disable +setLockReason: true # Label to add before locking, such as `outdated`. Set to `false` to disable lockLabel: ๐Ÿ”’ Locked # Comment to post before locking. Set to `false` to disable lockComment: > - This thread has been automatically locked because it has not had recent - activity. Please open a new issue for related bugs and link to relevant - comments in this thread. - -# Assign `resolved` as the reason for locking. Set to `false` to disable -setLockReason: true + โš ๏ธThis issue has been automatically locked ๐Ÿ”’since there has not been + any recent activity after it was closed. Please open a new ๐Ÿ†•issue for related bugs + and mention this issue. Thanks! ๐Ÿ‘ +# Issues or pull requests with these labels will not be locked +exemptLabels: + - help-wanted # Limit to only `issues` or `pulls` only: issues - -# Optionally, specify configuration settings just for `issues` or `pulls` -# issues: -# exemptLabels: -# - help-wanted -# lockLabel: outdated - -# pulls: -# daysUntilLock: 30 diff --git a/.github/no-response.yml b/.github/no-response.yml new file mode 100644 index 0000000000..1c8799d135 --- /dev/null +++ b/.github/no-response.yml @@ -0,0 +1,15 @@ +# Configuration for probot-no-response - https://github.com/probot/no-response + +# Number of days of inactivity before an issue is closed for lack of response +daysUntilClose: 28 + +# Label requiring a response +responseRequiredLabel: more-information-needed + +# Comment to post when closing an issue for lack of response. Set to `false` to disable. +closeComment: > + This issue has been automatically closed because there has been no response + to our request for more information from the original author. With only the + information that is currently in the issue, we don't have enough information + to take action. Please reach out if you have or find the answers we need so + that we can investigate further. diff --git a/.github/stale.yml b/.github/stale.yml index b3160652bc..9cbd2eb867 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,70 +1,34 @@ # Configuration for probot-stale - https://github.com/probot/stale -# Number of days of inactivity before an issue becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale issue is closed -daysUntilClose: 7 -# Issues with these labels will never be considered stale -exemptLabels: - - pinned - - security -# Label to use when marking an issue as stale -staleLabel: wontfix -# Comment to post when marking an issue as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when closing a stale issue. Set to `false` to disable -closeComment: false - -# Comment to be posted to on first time issues -newIssueWelcomeComment: | - ๐Ÿ‘‹ Thanks for opening your first issue! If you're reporting a ๐Ÿž bug, please make sure - you include steps to reproduce it. If you're requesting a feature ๐ŸŽ, please provide real - use cases that would benefit. ๐Ÿ‘ช +# Number of days of inactivity before an Issue or Pull Request becomes stale +daysUntilStale: 365 - To help make this a smooth process, please be sure you have first read the - [contributing guidelines](https://github.com/AlexRogalskiy/android-patters/blob/master/.github/CONTRIBUTING.md). +# Number of days of inactivity before a stale Issue or Pull Request is closed +daysUntilClose: 14 -# Comment to be posted to on PRs from first time contributors in your repository -newPRWelcomeComment: | - ๐Ÿ’– Thanks for opening this pull request! ๐Ÿ’– +# Issues or Pull Requests with these labels will never be considered stale +# exemptLabels: - To help make this a smooth process, please be sure you have first read the - [contributing guidelines](https://github.com/AlexRogalskiy/android-patters/blob/master/.github/CONTRIBUTING.md). +# Label to use when marking as stale +staleLabel: Stale +# Comment to post when marking as stale. Set to `false` to disable +markComment: > + ๐Ÿ‘ Thanks for your contribution! + โš ๏ธThis issue has been automatically marked as stale because it has not had + recent activity. Because the team treats their issues + [as their backlog](https://en.wikipedia.org/wiki/Scrum_(software_development)#Product_backlog), stale issues + are closed. ๐Ÿ“• If you would like this issue to remain open: + 1. Verify that you can still reproduce the issue in the latest version of Atom + 1. Comment that the issue is still reproducible and include: + * What version of Atom you reproduced the issue on + * What OS and version you reproduced the issue on + * What steps you followed to reproduce the issue + Thank you! ๐Ÿ‘ +# Comment to post when removing the stale label. Set to `false` to disable +unmarkComment: true -# Comment to be posted to on pull requests merged by a first time user -firstPRMergeComment: > - Congrats on merging your first pull request! ๐ŸŽ‰๐ŸŽ‰๐ŸŽ‰ You're helping make Insomnia awesome! ๐Ÿ™Œ +# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable +closeComment: true -# Comment to post when marking as stale. Set to `false` to disable. -issues: - daysUntilStale: 90 - daysUntilClose: 7 - exemptLabels: - - confirmed - markComment: > - Thank you for taking the time to raise this issue. However, it has - not had any activity on it in the past 180 days and will be closed in - 90 days if no updates occur. - Please check if the master branch has already resolved the issue - since it was raised. If you believe the issue is still valid and you - would like input from the maintainers then please comment to ask for - it to be reviewed. - closeComment: > - This issue has been automatically closed due to inactivity. Please re-open - if this still requires investigation. -pulls: - daysUntilStale: 90 - daysUntilClose: 30 - markComment: > - Thank you for your contribution! However, this pull request has not - had any activity in the past 180 days and will be closed in 90 days if - no updates occur. - If you believe the changes are still valid then please verify your - branch has no conflicts with master and rebase if needed. If you - are awaiting a (re-)review then please let us know. - closeComment: > - This pull request has been automatically closed due to inactivity. Please re-open - if these changes are still required. +# Limit to only `issues` or `pulls` +only: issues diff --git a/.github/workflows/action-devto.yml b/.github/workflows/action-devto.yml new file mode 100644 index 0000000000..ab860a9c43 --- /dev/null +++ b/.github/workflows/action-devto.yml @@ -0,0 +1,20 @@ +name: TheActionDev Sync + +on: + workflow_dispatch: + schedule: + - cron: '0 23 * * *' + +jobs: + operations: + runs-on: ubuntu-latest + steps: + - name: Checkout repo + uses: actions/checkout@v2 + + - name: Syncing Article to dev.to + uses: ful1e5/TheActionDev@v2 + with: + api-key: ${{ secrets.DEVTO_API_KEY }} + directory: ./docs/articles + ignore: default.md.tpl \ No newline at end of file diff --git a/.github/workflows/add-labels.yml b/.github/workflows/add-labels.yml new file mode 100644 index 0000000000..da4328f80b --- /dev/null +++ b/.github/workflows/add-labels.yml @@ -0,0 +1,13 @@ +name: Pull Request Labeler + +on: + pull_request_target: + types: [ opened ] + +jobs: + triage: + runs-on: ubuntu-latest + steps: + - uses: ericcornelissen/labeler@label-based-on-status + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000000..5acb70da31 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,49 @@ +name: CI + +on: + pull_request: + branches: + - master + push: + branches: + - master + - 'releases/*' + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 30 + strategy: + max-parallel: 2 + matrix: + node-version: + - 10.x + - 11.x + - 12.x + - 14.x + + steps: + - uses: actions/checkout@v2 + with: + ref: ${{ github.head_ref }} + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + + - name: Setup PNPM + uses: pnpm/action-setup@v1.2.1 + with: + version: 4.11.1 + + - name: Install Dependencies + run: pnpm i + + - name: Lint & Format + run: | + pnpm run all --if-present + + - name: Check + run: | + pnpm run check:all --if-present diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml index 89b58d0f26..bf85704812 100644 --- a/.github/workflows/changelog.yml +++ b/.github/workflows/changelog.yml @@ -20,7 +20,7 @@ jobs: uses: ruby/setup-ruby@v1 with: ruby-version: 3.0 - - uses: actions/cache@v2 + - uses: actions/cache@v2.1.4 with: path: vendor/bundle key: ${{ runner.os }}-changelog-gem diff --git a/.github/workflows/chart-release.yaml b/.github/workflows/chart-release.yaml new file mode 100644 index 0000000000..321494d2ae --- /dev/null +++ b/.github/workflows/chart-release.yaml @@ -0,0 +1,52 @@ +name: Release Charts + +on: + push: + branches: + - master + +jobs: + release: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Configure Git + run: | + git config user.name "$GITHUB_ACTOR" + git config user.email "$GITHUB_ACTOR@users.noreply.github.com" + + - name: Install Helm + uses: azure/setup-helm@v1 + with: + version: v3.4.1 + +# # Optional step if GPG signing is used +# - name: Prepare GPG key +# run: | +# gpg_dir=.cr-gpg +# mkdir "$gpg_dir" +# keyring="$gpg_dir/secring.gpg" +# base64 -d <<< "$GPG_KEYRING_BASE64" > "$keyring" +# passphrase_file="$gpg_dir/passphrase" +# echo "$GPG_PASSPHRASE" > "$passphrase_file" +# echo "CR_PASSPHRASE_FILE=$passphrase_file" >> "$GITHUB_ENV" +# echo "CR_KEYRING=$keyring" >> "$GITHUB_ENV" +# env: +# GPG_KEYRING_BASE64: "${{ secrets.GPG_KEYRING_BASE64 }}" +# GPG_PASSPHRASE: "${{ secrets.GPG_PASSPHRASE }}" + +# - name: Add dependency chart repos +# run: | +# helm repo add bitnami https://charts.bitnami.com/bitnami + + - name: Run chart-releaser + uses: helm/chart-releaser-action@v1.1.0 + with: + charts_dir: charts + config: cr.yaml + env: + CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml new file mode 100644 index 0000000000..5a38c79e51 --- /dev/null +++ b/.github/workflows/codeql-analysis.yml @@ -0,0 +1,34 @@ +name: "CodeQL" + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + schedule: + - cron: '43 1 * * 2' + +jobs: + analyze: + name: Analyze + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + language: [ 'javascript' ] + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Initialize CodeQL + uses: github/codeql-action/init@v1 + with: + languages: ${{ matrix.language }} + config-file: ./.github/codeql/codeql-config.yml + queries: security-extended + setup-python-dependencies: false + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml index 98b55588f4..252e75a55e 100644 --- a/.github/workflows/commitlint.yml +++ b/.github/workflows/commitlint.yml @@ -11,7 +11,7 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: 0 - - uses: wagoid/commitlint-github-action@v2.1.7 + - uses: wagoid/commitlint-github-action@v2.2.5 with: configFile: './.github/workflows/lint/.commitlintrc.json' helpURL: https://rook.io/docs/rook/master/development-flow.html#commit-structure diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml new file mode 100644 index 0000000000..d7462eeadb --- /dev/null +++ b/.github/workflows/docker.yaml @@ -0,0 +1,39 @@ +name: Docker build and container scan + +on: + push: + branches: + - '**' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Docker build + run: | + docker build . --file Dockerfile --tag containerscanner:${{ github.sha }} + + - name: Anchore scan + uses: anchore/scan-action@1.0.6 + with: + image-reference: containerscanner:${{ github.sha }} + dockerfile-path: Dockerfile + include-app-packages: true + fail-build: true # no idea why it doesn't work + + - name: Show Anchore results + run: for j in `ls ./anchore-reports/*.json`; do echo "---- ${j} ----"; cat ${j}; echo; done + if: ${{ always() }} + + - name: Upload Anchore results + uses: actions/upload-artifact@v2 + with: + name: anchore-reports + path: ./anchore-reports/ + if: ${{ always() }} + + - name: Fail on any vulnerability + run: jq -e '.vulnerabilities | any( . ) | not' anchore-reports/vulnerabilities.json diff --git a/.github/workflows/enforce-labels.yml b/.github/workflows/enforce-labels.yml new file mode 100644 index 0000000000..654bd92e6c --- /dev/null +++ b/.github/workflows/enforce-labels.yml @@ -0,0 +1,14 @@ +name: Enforce PR labels for release drafter + +on: + pull_request: + types: [ labeled, unlabeled, opened, edited, synchronize ] + +jobs: + enforce-label: + runs-on: ubuntu-latest + steps: + - uses: yogevbd/enforce-label-action@2.2.1 + with: + REQUIRED_LABELS_ANY: "bug,enhancement,internal,no-changelog,sync" + REQUIRED_LABELS_ANY_DESCRIPTION: "Select at least one label ['bug','enhancement','internal','no-changelog'] for the PR" diff --git a/.github/workflows/gh-pages.yml b/.github/workflows/gh-pages.yml new file mode 100644 index 0000000000..83947e1e94 --- /dev/null +++ b/.github/workflows/gh-pages.yml @@ -0,0 +1,29 @@ +name: GitHub Pages + +on: + workflow_dispatch: + push: + paths: + - docs + branches: + - master + +jobs: + Manage: + name: Manage GitHub labels + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Display structure of files + run: ls -R + working-directory: docs/ + + - name: Deploy Github Pages + uses: JamesIves/github-pages-deploy-action@4.0.0 + with: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BRANCH: gh-pages + FOLDER: docs/ \ No newline at end of file diff --git a/.github/workflows/greetings.yml b/.github/workflows/greetings.yml new file mode 100644 index 0000000000..dded9c13d9 --- /dev/null +++ b/.github/workflows/greetings.yml @@ -0,0 +1,13 @@ +name: Greetings + +on: [ pull_request, issues ] + +jobs: + greeting: + runs-on: ubuntu-latest + steps: + - uses: actions/first-interaction@v1 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + issue-message: 'Message that will be displayed on users'' first issue' + pr-message: 'Message that will be displayed on users'' first pr' diff --git a/.github/workflows/helm.yml b/.github/workflows/helm.yml new file mode 100644 index 0000000000..d83e602594 --- /dev/null +++ b/.github/workflows/helm.yml @@ -0,0 +1,74 @@ +name: release +on: + push: + tags: + - 'v*' + +jobs: + build-push: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Prepare + id: prep + run: | + VERSION=$(grep 'version' package.json | awk '{ print $4 }' | tr -d '"') + CHANGELOG="https://github.com/AlexRogalskiy/android-patterns/blob/main/CHANGELOG.md#$(echo $VERSION | tr -d '.')" + echo ::set-output name=BUILD_DATE::$(date -u +'%Y-%m-%dT%H:%M:%SZ') + echo ::set-output name=VERSION::${VERSION} + echo ::set-output name=CHANGELOG::${CHANGELOG} + - name: Setup QEMU + uses: docker/setup-qemu-action@v1 + with: + platforms: all + - name: Setup Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v1 + with: + buildkitd-flags: "--debug" + - name: Login to GitHub Container Registry + uses: docker/login-action@v1 + with: + registry: ghcr.io + username: AlexRogalskiy + password: ${{ secrets.GITHUB_TOKEN }} + - name: Publish image + uses: docker/build-push-action@v2 + with: + push: true + builder: ${{ steps.buildx.outputs.name }} + context: . + file: ./Dockerfile + platforms: linux/amd64,linux/arm64,linux/arm/v7 + build-args: | + REVISON=${{ github.sha }} + tags: | + ghcr.io/AlexRogalskiy/android-patterns:${{ steps.prep.outputs.VERSION }} + labels: | + org.opencontainers.image.title=${{ github.event.repository.name }} + org.opencontainers.image.description=${{ github.event.repository.description }} + org.opencontainers.image.url=${{ github.event.repository.html_url }} + org.opencontainers.image.source=${{ github.event.repository.html_url }} + org.opencontainers.image.revision=${{ github.sha }} + org.opencontainers.image.version=${{ steps.prep.outputs.VERSION }} + org.opencontainers.image.created=${{ steps.prep.outputs.BUILD_DATE }} + - name: Check images + run: | + docker buildx imagetools inspect ghcr.io/AlexRogalskiy/android-patterns:${{ steps.prep.outputs.VERSION }} + - name: Publish Helm charts + uses: stefanprodan/helm-gh-pages@v1.3.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + charts_url: ./charts + linting: off + - name: Create release + uses: actions/create-release@latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + release_name: ${{ github.ref }} + draft: false + prerelease: false + body: | + [CHANGELOG](${{ steps.prep.outputs.CHANGELOG }}) diff --git a/.github/workflows/label.yml b/.github/workflows/label.yml new file mode 100644 index 0000000000..3da6b1561e --- /dev/null +++ b/.github/workflows/label.yml @@ -0,0 +1,12 @@ +name: Labeler + +on: [ pull_request ] + +jobs: + label: + runs-on: ubuntu-latest + + steps: + - uses: actions/labeler@v2 + with: + repo-token: "${{ secrets.GITHUB_TOKEN }}" diff --git a/.github/workflows/labels.yml b/.github/workflows/labels.yml new file mode 100644 index 0000000000..cd7a18214b --- /dev/null +++ b/.github/workflows/labels.yml @@ -0,0 +1,23 @@ +name: Labels + +on: + push: + paths: + - .github/labels.json + - .github/workflows/labels.yml + branches: + - master + +jobs: + Manage: + name: Manage GitHub labels + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@master + + - name: Manage labels + uses: lannonbr/issue-label-manager-action@2.0.0 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/labels2.yml b/.github/workflows/labels2.yml new file mode 100644 index 0000000000..6447c1277a --- /dev/null +++ b/.github/workflows/labels2.yml @@ -0,0 +1,25 @@ +name: GitHub labels + +on: + push: + branches: + - master + +jobs: + labeler: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + + - name: Run Labeler + if: success() + uses: crazy-max/ghaction-github-labeler@v3 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + yaml-file: .github/labels.yml + skip-delete: false + dry-run: false + exclude: | + help* + *issue diff --git a/.github/workflows/link-check-all.yml b/.github/workflows/link-check-all.yml new file mode 100644 index 0000000000..2e447ee83c --- /dev/null +++ b/.github/workflows/link-check-all.yml @@ -0,0 +1,22 @@ +name: Check all links in the repository + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * *' + +jobs: + run: + name: Link Check All + runs-on: ubuntu-latest + env: + NODE_OPTIONS: '--max-http-header-size=65536' + + steps: + - uses: actions/checkout@v2 + + - name: Run Link Check + uses: 'iterative/link-check.action@v0.7' + with: + configFile: './config/config.yml' + output: consoleLog diff --git a/.github/workflows/link-check-deploy.yml b/.github/workflows/link-check-deploy.yml new file mode 100644 index 0000000000..aa1d42c6aa --- /dev/null +++ b/.github/workflows/link-check-deploy.yml @@ -0,0 +1,51 @@ +name: Check new links against deployment + +# This workflow "triggers" and skips on deployment because GitHub Actions / +# Checks refuses to show the check on deployment_status +on: + - deployment + - deployment_status + +jobs: + run: + name: Initialize + runs-on: ubuntu-latest + if: github.event.deployment.ref != 'master' && github.event.deployment_status.state == 'success' + + steps: + - uses: actions/checkout@v2 + + - id: build_check + uses: LouisBrunner/checks-action@v1.0.0 + with: + token: ${{ secrets.GITHUB_TOKEN }} + name: Report + status: queued + + - name: Run Link Check + id: check + uses: 'iterative/link-check.action@v0.7' + with: + diff: true + configFile: './config/config.yml' + rootURL: '${{ github.event.deployment.payload.web_url }}' + output: checksAction + + - uses: LouisBrunner/checks-action@v1.0.0 + if: ${{ success() }} + with: + token: ${{ secrets.GITHUB_TOKEN }} + check_id: ${{ steps.build_check.outputs.check_id }} + status: completed + conclusion: ${{ steps.check.outputs.conclusion }} + output: ${{ steps.check.outputs.output }} + + - uses: LouisBrunner/checks-action@v1.0.0 + if: ${{ failure() }} + with: + token: ${{ secrets.GITHUB_TOKEN }} + check_id: ${{ steps.build_check.outputs.check_id }} + status: completed + conclusion: failure + output: >- + {"summary": "The Link Check script had an error!"} diff --git a/.github/workflows/lint-pr.yml b/.github/workflows/lint-pr.yml new file mode 100644 index 0000000000..13ca0e1f8f --- /dev/null +++ b/.github/workflows/lint-pr.yml @@ -0,0 +1,16 @@ +name: Lint PR + +on: + pull_request: + types: [ labeled, unlabeled, opened, edited ] + +jobs: + lint-pr: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + with: + ref: ${{ secrets.GITHUB_REF }} + - uses: yogevbd/pr-lint-action@master + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint-test.yaml b/.github/workflows/lint-test.yaml new file mode 100644 index 0000000000..3df8c3e5f6 --- /dev/null +++ b/.github/workflows/lint-test.yaml @@ -0,0 +1,47 @@ +name: Lint and Test Charts + +on: pull_request + +jobs: + lint-test: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Set up Helm + uses: azure/setup-helm@v1 + with: + version: v3.4.1 + + # Python is required because `ct lint` runs Yamale (https://github.com/23andMe/Yamale) and + # yamllint (https://github.com/adrienverge/yamllint) which require Python + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: 3.7 + + - name: Set up chart-testing + uses: helm/chart-testing-action@v2.0.1 + with: + version: v3.3.0 + + - name: Run chart-testing (list-changed) + id: list-changed + run: | + changed=$(ct list-changed --config ct.yaml) + if [[ -n "$changed" ]]; then + echo "::set-output name=changed::true" + fi + + - name: Run chart-testing (lint) + run: ct lint --config ct.yaml + + - name: Create kind cluster + uses: helm/kind-action@v1.1.0 + if: steps.list-changed.outputs.changed == 'true' + + - name: Run chart-testing (install) + run: ct install --config ct.yaml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000000..9e351326a0 --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,36 @@ +name: Run linters + +on: + workflow_dispatch: + push: + +env: + MAX_LINE_LENGTH: 110 + +jobs: + lint: + runs-on: ubuntu-20.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + fetch-depth: 1 + + - name: Set up Python + uses: actions/setup-python@v1 + with: + python-version: 3.9 + architecture: x64 + + - name: Install flake8 + run: | + pip install flake8 pycodestyle + + - name: Lint with flake8 + run: | + # one pass for show-stopper syntax errors or undefined names + flake8 . --count --show-source --statistics + # flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics --exclude ./ckan/include/rjsmin.py,./contrib/cookiecutter/* + # one pass for small stylistic things + flake8 . --count --max-line-length="$MAX_LINE_LENGTH" --statistics + # flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index ced9bb1698..188737f53e 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -16,7 +16,7 @@ on: branches: [ master ] env: - FILTER_REGEX_EXCLUDE: .gh-md-toc + FILTER_REGEX_INCLUDE: .*docs/.* ############### # Set the Job # ############### diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml new file mode 100644 index 0000000000..0efd8fa3c2 --- /dev/null +++ b/.github/workflows/mkdocs.yml @@ -0,0 +1,61 @@ +name: Publish docs via GitHub Pages + +on: + push: + branches: + - master + +env: + PYTHONIOENCODING: utf-8 + PYTHONLEGACYWINDOWSSTDIO: utf-8 + USE_COLOR: False + +jobs: + deploy: + runs-on: ubuntu-18.04 + steps: + - uses: actions/checkout@v2 + with: + submodules: true + fetch-depth: 1 + + - name: Setup Python 3.9 + uses: actions/setup-python@v2 + with: + python-version: '3.9' + architecture: x64 + + - name: Upgrade pip + run: | + # install pip=>20.1 to use "pip cache dir" + python3 -m pip install --upgrade pip --quiet + + - name: Get pip cache dir + id: pip-cache + run: | + echo "::set-output name=dir::$(pip cache dir)" + + - name: Cache dependencies + uses: actions/cache@v2 + with: + path: ${{ steps.pip-cache.outputs.dir }} + key: ${{ runner.os }}-pip-${{ hashFiles('**/docs/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + + - name: Install dependencies + run: python3 -m pip install mkdocs mkdocs-material fontawesome_markdown mkdocs-redirects markdown-include --quiet + + - name: Build mkdocs + run: mkdocs build + + - name: Directory listing for debugging + run: | + pwd + ls + + - name: Deploy + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./site diff --git a/.github/workflows/opengraph-card.yml b/.github/workflows/opengraph-card.yml new file mode 100644 index 0000000000..c5b438a732 --- /dev/null +++ b/.github/workflows/opengraph-card.yml @@ -0,0 +1,57 @@ +name: Generate OpenGraph Card + +on: + workflow_dispatch: + +jobs: + generate-opengraph-card: + env: + BASE_PATH: https://og-image.now.sh + QUERY_PATH: _**Android%20Design%20patterns**_%3Cbr%3E_@AlexRogalskiy/android4you_ + THEME: light + MARKDOWN_ENABLED: 1 + FONT_SIZE: 75px + IMAGES_HEIGHT: "200, 200" + IMAGES: "https://assets.vercel.com/image/upload/front/assets/design/vercel-triangle-black.svg, https://simpleicons.org/icons/github.svg" + runs-on: ubuntu-latest + steps: + - name: Checkout Code + uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Create OpenGraph card + run: | + IFS=', ' + + full_path="${BASE_PATH}/${QUERY_PATH}" + full_path="${full_path}?theme=${THEME}" + full_path="${full_path}&md=${MARKDOWN_ENABLED}" + full_path="${full_path}&fontSize=${FONT_SIZE}" + + read -r -a array <<< "$IMAGES" + for i in "${array[@]}" + do + full_path="${full_path}&images=$i" + done + + read -r -a array <<< "$IMAGES_HEIGHT" + for i in "${array[@]}" + do + full_path="${full_path}&heights=$i" + done + + echo "$full_path" + curl "$full_path" > ./images/opengraph-card.png + shell: bash + + - name: Commit update + uses: stefanzweifel/git-auto-commit-action@v4 + with: + branch: master + skip_dirty_check: true + commit_message: "docs: updates on OpenGraph card\n\n Added OpenGraph card" + commit_options: '--no-verify --signoff' + commit_user_name: GitHub Bot + commit_user_email: github-actions@nullables.io + commit_author: GitHub Bot diff --git a/.github/workflows/pr-helper.yml b/.github/workflows/pr-helper.yml new file mode 100644 index 0000000000..ec0e175edb --- /dev/null +++ b/.github/workflows/pr-helper.yml @@ -0,0 +1,35 @@ +name: PR Merge on Schedule + +on: + schedule: + - cron: '* 5 * * *' + +jobs: + prhelper_schedule: + runs-on: ubuntu-latest + steps: + - name: Run PR Helper on Schedule + id: runprhelperonschedule + uses: Matticusau/pr-helper@v1.2.5 + with: + repo-token: ${{ secrets.GHACTION_PAT }} + enable-prmerge-automation: true + enable-prcomment-automation: false + enable-prlabel-automation: true + enable-prreviewer-frontmatter: true + enable-welcomemessage: false + prmerge-requireallchecks: true + prmerge-requirereviewcount: 1 + prmerge-method: 'merge' + prmerge-deletebranch: 'true' + prmerge-deletebranch-config: '' + prmerge-pathcheck: true + prmerge-allowpaths: '{"any":["articles/**"]}' + prreviewer-authorkey: 'author' + prreviewer-githubuserfromauthorfile: true + prreviewer-authorfilepath: '_data/authors.yaml' + prlabel-default: 'pr-onhold' + prlabel-ready: 'pr-ready' + prlabel-onhold: 'pr-onhold' + prlabel-reviewrequired: 'review-required' + prlabel-automerge: 'auto-merge' \ No newline at end of file diff --git a/.github/workflows/remove-labels.yml b/.github/workflows/remove-labels.yml new file mode 100644 index 0000000000..93b6f4f5d8 --- /dev/null +++ b/.github/workflows/remove-labels.yml @@ -0,0 +1,53 @@ +name: Remove outdated labels + +on: + pull_request_target: + types: + - closed + issues: + types: + - closed + +jobs: + remove-merged-pr-labels: + name: Remove merged pull request labels + if: github.event.pull_request.merged + runs-on: ubuntu-latest + steps: + - uses: mondeja/remove-labels-gh-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: | + awaiting reply + changes requested + duplicate + in discussion + invalid + out of scope + pending + won't add + + remove-closed-pr-labels: + name: Remove closed pull request labels + if: github.event_name == 'pull_request_target' && (! github.event.pull_request.merged) + runs-on: ubuntu-latest + steps: + - uses: mondeja/remove-labels-gh-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: | + in discussion + pending + + remove-closed-issue-labels: + name: Remove closed issue labels + if: github.event.issue.state == 'closed' + runs-on: ubuntu-latest + steps: + - uses: mondeja/remove-labels-gh-action@v1 + with: + token: ${{ secrets.GITHUB_TOKEN }} + labels: | + in discussion + pending + tracking diff --git a/.github/workflows/repo-traffic.yml b/.github/workflows/repo-traffic.yml new file mode 100644 index 0000000000..c9ff50025a --- /dev/null +++ b/.github/workflows/repo-traffic.yml @@ -0,0 +1,35 @@ +name: Repository Traffic + +on: + workflow_dispatch: + schedule: + # runs once a week on sunday + - cron: "55 23 * * 0" + +jobs: + # This workflow contains a single job called "traffic" + traffic: + # The type of runner that the job will run on + runs-on: ubuntu-latest + + # Steps represent a sequence of tasks that will be executed as part of the job + steps: + # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it + - uses: actions/checkout@v2 + with: + ref: "master" + + # Calculates traffic and clones and stores in CSV file + - name: GitHub traffic + uses: sangonzal/repository-traffic-action@v0.1.4 + env: + TRAFFIC_ACTION_TOKEN: ${{ secrets.TRAFFIC_ACTION_TOKEN }} + + # Commits files to repository + - name: Commit changes + uses: EndBug/add-and-commit@v4 + with: + author_name: AccTextBot + message: "GitHub traffic" + add: "./traffic/*" + ref: "master" diff --git a/.github/workflows/shiftleft-analysis.yml b/.github/workflows/shiftleft-analysis.yml new file mode 100644 index 0000000000..5a97689c6f --- /dev/null +++ b/.github/workflows/shiftleft-analysis.yml @@ -0,0 +1,36 @@ +# This workflow integrates Scan with GitHub's code scanning feature +# Scan is a free open-source security tool for modern DevOps teams from ShiftLeft +# Visit https://slscan.io/en/latest/integrations/code-scan for help +name: SL Scan + +# This section configures the trigger for the workflow. Feel free to customize depending on your convention +on: push + +jobs: + Scan-Build: + # Scan runs on ubuntu, mac and windows + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v1 + # Instructions + # 1. Setup JDK, Node.js, Python etc depending on your project type + # 2. Compile or build the project before invoking scan + # Example: mvn compile, or npm install or pip install goes here + # 3. Invoke Scan with the github token. Leave the workspace empty to use relative url + + - name: Perform Scan + uses: ShiftLeftSecurity/scan-action@master + env: + WORKSPACE: "" + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + SCAN_AUTO_BUILD: true + with: + output: reports + # Scan auto-detects the languages in your project. To override uncomment the below variable and set the type + # type: credscan,java + # type: python + + - name: Upload report + uses: github/codeql-action/upload-sarif@v1 + with: + sarif_file: reports diff --git a/.github/workflows/yaml-lint.yml b/.github/workflows/yaml-lint.yml new file mode 100644 index 0000000000..3ea6b5c398 --- /dev/null +++ b/.github/workflows/yaml-lint.yml @@ -0,0 +1,18 @@ +name: YAML Lint + +on: + push: + paths: + - '**.yml' + +jobs: + lint: + name: Lint + timeout-minutes: 3 + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2.3.4 + - uses: ibiqlik/action-yamllint@v3.0.2 + with: + config_file: .yamllint.yml + strict: false diff --git a/.gitignore b/.gitignore index 6a78d46217..3e63d7f21b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,16 +1,22 @@ -# Compiled class file -*.class - -# Log file +# Log files *.log +logs +npm-debug.log* +yarn-debug.log* +yarn-error.log* +lerna-debug.log* # BlueJ files *.ctxt +*.iml -# Mobile Tools for Java (J2ME) -.mtj.tmp/ +# Cache files +.npm +.eslintcache +lunr-index.json +build.txt -# Package Files # +# Package files *.jar *.war *.nar @@ -18,9 +24,27 @@ *.zip *.tar.gz *.rar +*.tgz +**/.DS_Store + +# License files +licenses.json # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* +pids +*.pid +*.seed +*.pid.lock + +# Yarn Integrity file +.yarn-integrity + +# TypeScript cache +*.tsbuildinfo + +# Optional REPL history +.node_repl_history # Build and temp folders .settings/ @@ -29,7 +53,13 @@ hs_err_pid* bin/ tmp/ build/* -packages/ +coverage/ target/ log/ -site/ \ No newline at end of file +site/ +dist/ +.cache +node_modules + +# Env files +.env diff --git a/.husky/.gitignore b/.husky/.gitignore new file mode 100644 index 0000000000..31354ec138 --- /dev/null +++ b/.husky/.gitignore @@ -0,0 +1 @@ +_ diff --git a/.husky/post-commit b/.husky/post-commit new file mode 100644 index 0000000000..a06768dcbf --- /dev/null +++ b/.husky/post-commit @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run validate:commit diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100644 index 0000000000..82693347d2 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1,11 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run lint:staged +npm run all +npm run changelog + +git add docs/ + +git add README.md +git add CHANGELOG.md diff --git a/.husky/pre-push b/.husky/pre-push new file mode 100644 index 0000000000..687fec934f --- /dev/null +++ b/.husky/pre-push @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +npm run check:all diff --git a/.husky/prepare-commit-msg b/.husky/prepare-commit-msg new file mode 100644 index 0000000000..e188806f54 --- /dev/null +++ b/.husky/prepare-commit-msg @@ -0,0 +1,4 @@ +#!/bin/sh +. "$(dirname "$0")/_/husky.sh" + +exec < /dev/tty && git cz --hook --non-interactive --type=feat --subject="added new features" || true diff --git a/.kodiak.toml b/.kodiak.toml new file mode 100644 index 0000000000..a964fb21f0 --- /dev/null +++ b/.kodiak.toml @@ -0,0 +1,9 @@ +# This file is maintained in https://github.com/WeblateOrg/meta/ +# Configuration for https://kodiakhq.com/ +version = 1 + +[merge] +method = "rebase" + +[update] +ignored_usernames = ["dependabot", "weblate"] diff --git a/.lintstagedrc.json b/.lintstagedrc.json new file mode 100644 index 0000000000..b4dc1e4b1c --- /dev/null +++ b/.lintstagedrc.json @@ -0,0 +1,3 @@ +{ + "**/*.{json,yaml,yml}": "prettier --single-quote --write --ignore-unknown" +} diff --git a/.ls-lint.yml b/.ls-lint.yml new file mode 100644 index 0000000000..d984b89a2b --- /dev/null +++ b/.ls-lint.yml @@ -0,0 +1,21 @@ +ls: + .js: kebab-case + .md: kebab-case + .ts: kebab-case + .d.ts: kebab-case + .spec.ts: kebab-case + .generated.ts: kebab-case + +ignore: + - .cache + - .eslintrc.js + - .git + - .github + - .dependabot + - idea + - coverage + - dist + - jest.config.ts + - node_modules + - SECURITY.md + - tests diff --git a/.markdownlint.yml b/.markdownlint.yml new file mode 100644 index 0000000000..4f70a1de8c --- /dev/null +++ b/.markdownlint.yml @@ -0,0 +1,3 @@ +--- +default: true +line_length: false diff --git a/.markdownlintignore b/.markdownlintignore new file mode 100644 index 0000000000..bb72b0179b --- /dev/null +++ b/.markdownlintignore @@ -0,0 +1,2 @@ +node_modules +tilt_modules diff --git a/.mergify.yml b/.mergify.yml new file mode 100644 index 0000000000..c1f067d49d --- /dev/null +++ b/.mergify.yml @@ -0,0 +1,71 @@ +pull_request_rules: + - name: automatic merge on CI success require review + conditions: + - status-success=Travis CI - Pull Request + - '#approved-reviews-by>=1' + - '#changes-requested-reviews-by=0' + - label!=block-merge + actions: + label: + add: + - quotes + merge: + method: squash + strict: smart + strict_method: merge + + # if there is a conflict in a backport PR, ping the author to send a proper backport PR + - name: ping author on conflicts + conditions: + - conflict + actions: + comment: + message: + This pull request has merge conflicts that must be resolved before it + can be merged. @{{author}} please rebase it. + https://rook.io/docs/rook/master/development-flow.html#updating-your-fork + + # automerge on master only under certain strict conditions + - name: + automerge merge master with specific label and approvals with code change + conditions: + - author=mergify[bot] + - base=master + - '#approved-reviews-by>=1' + - '#changes-requested-reviews-by=0' + - label!=do-not-merge + - label=ready-to-merge + actions: + merge: + method: merge + strict: false + dismiss_reviews: {} + delete_head_branch: {} + + - name: automatic merge on CI success for TemplateControl + conditions: + - status-success=Travis CI - Pull Request + - label=merge-when-green + - label!=block-merge + actions: + merge: + method: squash + strict: smart + + - name: delete branch after merge + conditions: + - merged + actions: + delete_head_branch: {} + + - name: Automatically approve Dependabot PRs + conditions: + - base=master + - author~=^dependabot(|-preview)\[bot\]$ + - -title~=(WIP|wip) + - -label~=(blocked|do-not-merge) + - -merged + - -closed + actions: + review: + type: APPROVE diff --git a/.npmignore b/.npmignore new file mode 100644 index 0000000000..8c997f9aae --- /dev/null +++ b/.npmignore @@ -0,0 +1,13 @@ +/src/ +/test/ +/coverage/ +tsconfig* +.editorconfig +.travis.yml +tslint.json +jest.config.js +.huskyrc +.lintstagedrc +.prettierignore +.prettierrc +yarn-error.log diff --git a/.npmrc b/.npmrc new file mode 100644 index 0000000000..5c69597eca --- /dev/null +++ b/.npmrc @@ -0,0 +1,2 @@ +package-lock=false +save-exact=false diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000000..2a0dc9a810 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +14.16.0 diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000000..8f586a712e --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,61 @@ +--- +# https://pre-commit.com/ +default_stages: [commit, push] +default_language_version: + # force all unspecified Python hooks to run python3 + python: python3 +minimum_pre_commit_version: "1.20.0" +repos: + - repo: meta + hooks: + - id: identity + - id: check-hooks-apply + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.4.0 + hooks: + - id: check-added-large-files + - id: check-case-conflict + - id: check-executables-have-shebangs + exclude: ^scripts/windows\.sh$ + - id: check-merge-conflict + - id: check-vcs-permalinks + # - id: check-yaml + - id: end-of-file-fixer + - id: fix-byte-order-marker + - id: mixed-line-ending + - id: trailing-whitespace + # - repo: https://github.com/Lucas-C/pre-commit-hooks + # rev: v1.1.10 + # hooks: + # - id: forbid-tabs + # - id: remove-tabs + - repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 2.1.5 + hooks: + - id: shellcheck + # - id: shfmt + - repo: https://github.com/codespell-project/codespell + rev: v2.0.0 + hooks: + - id: codespell + name: Run codespell + description: Check Spelling with codespell + entry: codespell --ignore-words=codespell.txt + # - repo: https://github.com/igorshubovych/markdownlint-cli + # rev: v0.27.1 + # hooks: + # - id: markdownlint + # name: Run markdownlint + # description: Checks the style of Markdown files + # entry: markdownlint -c .github/linters/.markdown-lint.yml . + # types: [markdown] + # files: \.(md|mdown|markdown)$ + # - repo: https://github.com/adrienverge/yamllint + # rev: v1.26.1 + # hooks: + # - id: yamllint + # name: Run yamllint + # description: Check YAML files with yamllint + # entry: yamllint --strict -c .github/linters/.yaml-lint.yml + # types: [yaml] + # files: \.(yaml|yml)$ diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 0000000000..8bfe3309a5 --- /dev/null +++ b/.prettierignore @@ -0,0 +1,20 @@ +*.log +*.DS_Store +OSSMETADATA + +.github +.dependabot +.idea +.vscode +.husky + +node_modules +flow-typed +coverage +dist +helm +tilt_modules +okteto +charts +k8s +release diff --git a/.prettierrc.yaml b/.prettierrc.yaml new file mode 100644 index 0000000000..d8291611cc --- /dev/null +++ b/.prettierrc.yaml @@ -0,0 +1,37 @@ +$schema: http://json.schemastore.org/prettierrc +printWidth: 110 +tabWidth: 4 +useTabs: false +endOfLine: lf +semi: false +singleQuote: true +quoteProps: 'consistent' +jsxSingleQuote: false +trailingComma: 'all' +bracketSpacing: true +jsxBracketSameLine: true +arrowParens: 'avoid' +proseWrap: 'always' +overrides: + - files: + - '*.html' + - 'legacy/**/*.js' + options: + semi: true + - files: '**/*.json*' + options: + parser: json + proseWrap: 'always' + - files: '**/*.md*' + options: + parser: markdown + proseWrap: 'always' + - files: '**/*.{yaml,yml}*' + options: + parser: yaml + tabWidth: 2 + printWidth: 80 + - files: '**/.all-(contributorsrc|membersrc|sponsorsrc)' + options: + parser: 'json-stringify' + singleQuote: false diff --git a/.pylintrc b/.pylintrc new file mode 100644 index 0000000000..2e278810ec --- /dev/null +++ b/.pylintrc @@ -0,0 +1,5 @@ +[FORMAT] +indent-string=\t + +[MESSAGES CONTROL] +disable=C0103,C0111,C0301,R0902,R0903,R0904,R1723,W0703 diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000000..7f21237a85 --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,24 @@ +# .readthedocs.yaml +# Read the Docs configuration file +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +formats: + - epub + - pdf + +mkdocs: + configuration: mkdocs.yml + fail_on_warning: false + +# Optionally set the version of Python and requirements required to build your docs +python: + version: 3.7 + install: + - requirements: docs/requirements.txt + +# Avoid cloning submodules +submodules: + exclude: all diff --git a/.release-it.json b/.release-it.json new file mode 100644 index 0000000000..d5a65e0985 --- /dev/null +++ b/.release-it.json @@ -0,0 +1,15 @@ +{ + "git": { + "commitMessage": "chore(release): v${version}", + "requireBranch": "main", + "requireCommits": true, + "tagName": "v${version}", + "push": true + }, + "github": { + "release": true + }, + "npm": { + "publish": false + } +} diff --git a/.remarkrc b/.remarkrc new file mode 100644 index 0000000000..fad0406aaf --- /dev/null +++ b/.remarkrc @@ -0,0 +1,6 @@ +{ + "plugins": { + "lint-code-block-style": "fenced", + "lint-ordered-list-marker-value": "ordered" + } +} diff --git a/.stignore b/.stignore new file mode 100644 index 0000000000..da23ba5edd --- /dev/null +++ b/.stignore @@ -0,0 +1,3 @@ +/.git +/node_modules +/tilt_modules diff --git a/.stylelintignore b/.stylelintignore new file mode 100644 index 0000000000..338f656357 --- /dev/null +++ b/.stylelintignore @@ -0,0 +1,12 @@ +.dependabot +.github +.husky +.idea +docs +images +node_modules +tilt_modules +k8s +helm +reports +scripts diff --git a/.stylelintrc.json b/.stylelintrc.json new file mode 100644 index 0000000000..5058a90588 --- /dev/null +++ b/.stylelintrc.json @@ -0,0 +1,24 @@ +{ + "extends": "stylelint-config-standard", + "plugins": ["stylelint-order", "stylelint-scss"], + "rules": { + "indentation": 4, + "at-rule-empty-line-before": null, + "color-hex-length": null, + "no-descending-specificity": null, + "rule-empty-line-before": null, + "selector-list-comma-newline-after": null, + "declaration-block-trailing-semicolon": null, + "block-closing-brace-empty-line-before": null, + "number-no-trailing-zeros": null, + "number-leading-zero": null, + "comment-empty-line-before": null, + "length-zero-no-unit": null, + "value-keyword-case": null, + "comment-whitespace-inside": null, + "declaration-empty-line-before": null, + "max-empty-lines": null, + "no-duplicate-selectors": null, + "selector-pseudo-element-colon-notation": null + } +} diff --git a/.textlint.terms.json b/.textlint.terms.json new file mode 100644 index 0000000000..c6fdb878f4 --- /dev/null +++ b/.textlint.terms.json @@ -0,0 +1,209 @@ +[ + "3D", + "API", + "Airbnb", + "Ajax", + "Algolia", + "Android", + "BrowserStack", + "Browsersync", + "CSS", + "CodePen", + "CodeSandbox", + "Codecov", + "DocSearch", + "ECMAScript", + "ESLint", + "EditorConfig", + "GIF", + "GitHub", + "GraphQL", + "HTML", + "HTTPS", + "ID", + "InstantSearch", + "IoT", + "I/O", + "JPEG", + "JavaScript", + "JetBrains", + "LinkedIn", + "Lodash", + "MIME", + "MacBook", + "Markdown", + "OK", + "OpenType", + "PDF", + "PNG", + "PaaS", + "SaaS", + "Sass", + "SemVer", + "TypeScript", + "URL", + "UglifyJS", + "WebStorm", + "WordPress", + "YouTube", + "advancedSyntax", + "allowCompressionOfIntegerArray", + "allowTyposOnNumericTokens", + "alternativesAsExact", + "analyticsTags", + "aroundLatLngViaIP", + "aroundLatLng", + "aroundPrecision", + "aroundRadius", + "aroundRadius", + "attributeForDistinct", + "attributesForFaceting", + "attributesToHighlight", + "attributesToRetrieve", + "attributesToSnippet", + "camelCaseAttributes", + "clickAnalytics", + "customRanking", + "decompoundedAttributes", + "disableExactOnAttributes", + "disablePrefixOnAttributes", + "disableTypoToleranceOnAttributes", + "disableTypoToleranceOnWords", + "enableRules", + "exactOnSingleWordQuery", + "e-commerce", + "facetFilters", + "facetingAfterDistinct", + "getRankingInfo", + "highlightPostTag", + "highlightPreTag", + "hitsPerPage", + "iOS", + "ignorePlurals", + "insideBoundingBox", + "insidePolygon", + "jQuery", + "maxFacetHits", + "maxValuesPerFacet", + "minProximity", + "minWordSizefor1Typo", + "minWordSizefor2Typos", + "minimumAroundRadius", + "npm", + "numericAttributesForFiltering", + "numericFilters", + "open source", + "optionalFilters", + "optionalWords", + "pagehitsPerPagepagination", + "paginationLimitedTo", + "percentileComputation", + "queryType", + "removeStopWords", + "removeWordsIfNoResults", + "replaceSynonymsInHighlight", + "responseFields", + "restrictHighlightAndSnippetArrays", + "restrictSearchableAttributes", + "ruleContexts", + "searchableAttributes", + "searchableAttributes", + "separatorsToIndex", + "snippetEllipsisText", + "sortFacetValuesBy", + "sumOrFiltersScores", + "tagFilters", + "typoTolerance", + "unretrievableAttributes", + ["3-D", "3D"], + ["Aloglia", "Algolia"], + ["CLI tool(s?)", "command-line tool$1"], + ["HTTP[ /]2(?:\\.0)?", "HTTP/2"], + ["I-O", "I/O"], + ["JSDocs?", "JSDoc"], + ["Mac ?OS", "macOS"], + ["Nodejs", "Node.js"], + ["OS X", "macOS"], + ["React[ .]js", "React"], + ["SauceLabs", "Sauce Labs"], + ["StackOverflow", "Stack Overflow"], + ["an URL", "a URL"], + ["auto[- ]complete", "autocomplete"], + ["auto[- ]fixing", "autofixing"], + ["auto[- ]fix", "autofix"], + ["auto[- ]format", "autoformat"], + ["a npm", "an npm"], + ["backwards compatible", "backward compatible"], + ["back[- ]end(\\w*)", "backend$1"], + ["bug[- ]fix(es?)", "bugfix$1"], + ["build system(s?)", "build tool$1"], + ["built ?in", "built-in"], + ["check[- ]box(es?)", "checkbox$1"], + ["client ?side", "client-side"], + ["code-?review(s?)", "code review$1"], + ["code-?splitting", "code splitting"], + ["code[- ]base(es?)", "codebase$1"], + ["command ?line", "command-line"], + ["co[- ]locate(d?)", "colocate$1"], + ["css-?in-?js", "CSS in JS"], + ["datas", "data"], + ["ecommerce", "e-commerce"], + ["end ?to ?end", "end-to-end"], + ["end-?user(s?)", "end user$1"], + ["end[- ]point(s?)", "endpoint$1"], + ["environemnt(s?)", "environment$1"], + ["error ?prone", "error-prone"], + ["e commerce", "e-commerce"], + ["e[- ]mail(s?)", "email$1"], + ["falsey", "falsy"], + ["feedbacks", "feedback"], + ["file-?type(s?)", "file type$1"], + ["file[- ]name(s?)", "filename$1"], + ["front[- ]end(\\w*)", "frontend$1"], + ["he or she", "they"], + ["he/she", "they"], + ["higher ?order", "higher-order"], + ["host[- ]name(s?)", "hostname$1"], + ["hot[- ]key(s?)", "hotkey$1"], + ["id(s?)", "ID$1"], + ["informations", "information"], + ["key[/ ]?value", "key-value"], + ["life[- ]cycle", "lifecycle"], + ["life[- ]stream(s?)", "lifestream$1"], + ["lock[- ]file(s?)", "lockfile$1"], + ["mark-up", "markup"], + ["meta[- ]data", "metadata"], + ["name[- ]space(s?)", "namespace$1"], + ["one URLs", "one URL"], + ["opensource([\\.,]?)", "open source$1"], + ["open-source([\\.,]?)", "open source$1"], + ["pacakge(s?)", "package$1"], + ["pre[- ]condition(s?)", "precondition$1"], + ["pre[- ]defined", "predefined"], + ["pre[- ]release(s?)", "prerelease$1"], + ["regexp?(s?)", "regular expression$1"], + ["repo\\b", "repository"], + ["run[- ]time", "runtime"], + ["screen[- ]shot(s?)", "screenshot$1"], + ["screen[- ]?snap(s?)", "screenshot$1"], + ["server ?side", "server-side"], + ["slave(s?)", "replica$1"], + ["smartphone(s?)", "mobile phone$1"], + ["source-?map(s?)", "source map$1"], + ["styled ?components", "styled-components"], + ["style-?guide(s?)", "style guide$1"], + ["style-?sheet(s?)", "style sheet$1"], + ["sub[- ]class((?:es|ing)?)", "subclass$1"], + ["sub[- ]tree(s?)", "subtree$1"], + ["tilda", "tilde"], + ["time[- ]stamp(s?)", "timestamp$1"], + ["touch[- ]screen(s?)", "touchscreen$1"], + ["tree-?shaking", "tree shaking"], + ["user-?base", "user base"], + ["user[- ]name(s?)", "username$1"], + ["walk[- ]through", "walkthrough"], + ["web-?page(s?)", "web page$1"], + ["white[- ]space", "whitespace"], + ["wild[- ]card(s?)", "wildcard$1"], + ["wi[- ]?fi", "Wi-Fi"] +] diff --git a/.textlintrc.js b/.textlintrc.js new file mode 100644 index 0000000000..dd59a01308 --- /dev/null +++ b/.textlintrc.js @@ -0,0 +1,50 @@ +/* eslint-disable import/no-commonjs */ +const textlintMode = process.env.TEXTLINT_MODE; + +const allRules = { + alex: { + allow: ['color', 'hook', 'host-hostess', 'itch'], + }, + 'common-misspellings': true, + 'en-capitalization': false, + 'stop-words': { + exclude: [ + 'relative to', // We need to talk about links "relative to the root", + 'pick out', // Needed word, not to clumsy + 'encounter', // Needed word, not to clumsy + 'proceed', + 'therefore', + 'this command', + 'Failure to', + 'frequently', + 'ALL of', + 'in addition to', + 'in addition', + 'Take a look at', + 'In addition to', + 'In addition', + 'simply', + 'deem' + ], + }, + terminology: { + defaultTerms: false, + terms: `${__dirname}/.textlint.terms.json`, + }, + 'write-good': { + passive: true, + severity: 'warning', + }, +}; + +// Not all rules are automatically fixable, so when running `yarn run +// lint:md:fix`, we only run the one that can be fixed. +const fixableRules = { + 'common-misspellings': allRules['common-misspellings'], + 'en-capitalization': allRules['en-capitalization'], + terminology: allRules['terminology'], +}; + +module.exports = { + rules: textlintMode === 'fix' ? fixableRules : allRules, +}; diff --git a/.tiltignore b/.tiltignore new file mode 100644 index 0000000000..e69de29bb2 diff --git a/.typo-ci.yml b/.typo-ci.yml index 81bd58150a..7011e90eb5 100644 --- a/.typo-ci.yml +++ b/.typo-ci.yml @@ -1,7 +1,6 @@ # This is a sample .typo-ci.yml file, it's used to configure how Typo CI will behave. # Add it to the root of your project and push it to github. --- - # What language dictionaries should it use? By default Typo CI will select 'en' & 'en_GB' # Currently Typo CI supports: # de @@ -19,23 +18,23 @@ dictionaries: # Any files/folders we should ignore? excluded_files: - - "vendor/**/*" - - "node_modules/**/*" - - "*.key" - - "*.enc" - - "*.min.css" - - "*.css.map" - - "*.min.js" - - "*.js.map" - - "*.mk" - - "package-lock.json" - - "yarn.lock" - - "Gemfile.lock" - - ".typo-ci.yml" + - 'vendor/**/*' + - 'node_modules/**/*' + - '*.key' + - '*.enc' + - '*.min.css' + - '*.css.map' + - '*.min.js' + - '*.js.map' + - '*.mk' + - 'package-lock.json' + - 'yarn.lock' + - 'Gemfile.lock' + - '.typo-ci.yml' # Any typos we should ignore? excluded_words: - typoci # Would you like filenames to also be spellchecked? -spellcheck_filenames: true \ No newline at end of file +spellcheck_filenames: true diff --git a/.unibeautifyrc.json b/.unibeautifyrc.json new file mode 100644 index 0000000000..1e2a599d0b --- /dev/null +++ b/.unibeautifyrc.json @@ -0,0 +1,7 @@ +{ + "Markdown": { + "beautifiers": ["Prettier"], + "__pragma_insert__": true, + "wrap_line_length": 0 + } +} diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000000..bb4f902589 --- /dev/null +++ b/.vimrc @@ -0,0 +1,7 @@ +set tabstop=2 +set shiftwidth=2 +set softtabstop=2 +set expandtab +set nosmarttab + +set textwidth=80 diff --git a/.yaml-lint.yml b/.yaml-lint.yml new file mode 100644 index 0000000000..7de4621afe --- /dev/null +++ b/.yaml-lint.yml @@ -0,0 +1,46 @@ +--- +# https://yamllint.readthedocs.io/en/stable/index.html +# yamllint --strict -c .yaml-lint.yml . + +extends: default + +locale: en_US.UTF-8 + +rules: + # 150 chars should be enough, but don't fail if a line is longer + line-length: + max: 150 + allow-non-breakable-inline-mappings: true + level: warning + comments: + min-spaces-from-content: 1 + level: warning + braces: + min-spaces-inside: 0 + max-spaces-inside: 0 + brackets: + min-spaces-inside: 0 + max-spaces-inside: 0 + indentation: + indent-sequences: consistent + level: warning + document-end: disable + document-start: + level: warning + indentation: disable + colons: enable + commas: enable + comments-indentation: + level: warning + empty-lines: enable + empty-values: disable + hyphens: enable + key-duplicates: enable + key-ordering: disable + new-line-at-end-of-file: enable + new-lines: enable + octal-values: disable + quoted-strings: disable + trailing-spaces: enable + truthy: + level: warning diff --git a/.yarnrc b/.yarnrc new file mode 100644 index 0000000000..7bd7a52cae --- /dev/null +++ b/.yarnrc @@ -0,0 +1,3 @@ +save-prefix "^" +--no-lockfile true +unsafe-disable-integrity-migration true diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000000..78e249f5e9 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,12 @@ +# This file lists all individuals having contributed content to the repository. +# For how it is generated, see `scripts/generate-authors.sh`. + +AccTextBot <41898282+github-actions[bot]@users.noreply.github.com> +AccTextBot +AccTextBot +AlexRogalskiy +blog-post-bot +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +GitHub Bot +github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> +Renovate Bot diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000000..809d1b478b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,62 @@ +# Changelog + +## [1.0.1](https://github.com/AlexRogalskiy/android-patterns/tree/1.0.1) (2021-02-18) + +[Full Changelog](https://github.com/AlexRogalskiy/android-patterns/compare/v1...1.0.1) + +## [v1](https://github.com/AlexRogalskiy/android-patterns/tree/v1) (2021-02-18) + +[Full Changelog](https://github.com/AlexRogalskiy/android-patterns/compare/v1.0...v1) + +## [v1.0](https://github.com/AlexRogalskiy/android-patterns/tree/v1.0) (2021-02-18) + +[Full Changelog](https://github.com/AlexRogalskiy/android-patterns/compare/v1.0.1...v1.0) + +## [v1.0.1](https://github.com/AlexRogalskiy/android-patterns/tree/v1.0.1) (2021-02-18) + +[Full Changelog](https://github.com/AlexRogalskiy/android-patterns/compare/1b4e42605dc8c8659e4cf3ba3034b5a0494e7a8c...v1.0.1) + +**Merged pull requests:** + +- github-actions: bump wagoid/commitlint-github-action from v2.1.7 to v2.2.3 [\#44](https://github.com/AlexRogalskiy/android-patterns/pull/44) ([dependabot[bot]](https://github.com/apps/dependabot)) +- :arrow\_up: Updates Matticusau/pr-helper action to v1.2.5 [\#43](https://github.com/AlexRogalskiy/android-patterns/pull/43) ([renovate[bot]](https://github.com/apps/renovate)) +- github-actions: bump Matticusau/pr-helper from v1.2.4 to v1.2.5 [\#42](https://github.com/AlexRogalskiy/android-patterns/pull/42) ([dependabot[bot]](https://github.com/apps/dependabot)) +- github-actions: bump JamesIves/github-pages-deploy-action from 3.7.1 to 4.0.0 [\#40](https://github.com/AlexRogalskiy/android-patterns/pull/40) ([dependabot[bot]](https://github.com/apps/dependabot)) +- :arrow\_up: Updates JamesIves/github-pages-deploy-action action to v4 [\#39](https://github.com/AlexRogalskiy/android-patterns/pull/39) ([renovate[bot]](https://github.com/apps/renovate)) +- github-actions: bump mondeja/remove-labels-gh-action from v1.0.0 to v1 [\#37](https://github.com/AlexRogalskiy/android-patterns/pull/37) ([dependabot[bot]](https://github.com/apps/dependabot)) +- github-actions: bump actions/cache from v2 to v2.1.4 [\#36](https://github.com/AlexRogalskiy/android-patterns/pull/36) ([dependabot[bot]](https://github.com/apps/dependabot)) +- Merge pull request \#31 from AlexRogalskiy/master [\#32](https://github.com/AlexRogalskiy/android-patterns/pull/32) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- sync: master to main [\#31](https://github.com/AlexRogalskiy/android-patterns/pull/31) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Main [\#30](https://github.com/AlexRogalskiy/android-patterns/pull/30) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- Auto Compress Images [\#29](https://github.com/AlexRogalskiy/android-patterns/pull/29) ([github-actions[bot]](https://github.com/apps/github-actions)) +- sync: master to main [\#28](https://github.com/AlexRogalskiy/android-patterns/pull/28) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Merge pull request \#26 from AlexRogalskiy/master [\#27](https://github.com/AlexRogalskiy/android-patterns/pull/27) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- sync: master to main [\#26](https://github.com/AlexRogalskiy/android-patterns/pull/26) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Merge pull request \#23 from AlexRogalskiy/master [\#25](https://github.com/AlexRogalskiy/android-patterns/pull/25) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- Auto Compress Images [\#24](https://github.com/AlexRogalskiy/android-patterns/pull/24) ([github-actions[bot]](https://github.com/apps/github-actions)) +- sync: master to main [\#23](https://github.com/AlexRogalskiy/android-patterns/pull/23) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Main [\#22](https://github.com/AlexRogalskiy/android-patterns/pull/22) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- sync: master to main [\#21](https://github.com/AlexRogalskiy/android-patterns/pull/21) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Main [\#20](https://github.com/AlexRogalskiy/android-patterns/pull/20) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- sync: master to main [\#19](https://github.com/AlexRogalskiy/android-patterns/pull/19) ([github-actions[bot]](https://github.com/apps/github-actions)) +- :arrow\_up: Updates actions/checkout action to v2 [\#17](https://github.com/AlexRogalskiy/android-patterns/pull/17) ([renovate[bot]](https://github.com/apps/renovate)) +- sync: master to main [\#16](https://github.com/AlexRogalskiy/android-patterns/pull/16) ([github-actions[bot]](https://github.com/apps/github-actions)) +- sync: master to main [\#15](https://github.com/AlexRogalskiy/android-patterns/pull/15) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Merge pull request \#12 from AlexRogalskiy/master [\#14](https://github.com/AlexRogalskiy/android-patterns/pull/14) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- github-actions: update actions/github-script requirement to v3.1 [\#13](https://github.com/AlexRogalskiy/android-patterns/pull/13) ([dependabot[bot]](https://github.com/apps/dependabot)) +- sync: master to main [\#12](https://github.com/AlexRogalskiy/android-patterns/pull/12) ([github-actions[bot]](https://github.com/apps/github-actions)) +- github-actions: bump wagoid/commitlint-github-action from v1.6.0 to v2.1.7 [\#11](https://github.com/AlexRogalskiy/android-patterns/pull/11) ([dependabot[bot]](https://github.com/apps/dependabot)) +- github-actions: bump dessant/lock-threads from v2.0.1 to v2.0.3 [\#10](https://github.com/AlexRogalskiy/android-patterns/pull/10) ([dependabot[bot]](https://github.com/apps/dependabot)) +- github-actions: bump Dunning-Kruger/unlock-issues from v1 to v1.1 [\#9](https://github.com/AlexRogalskiy/android-patterns/pull/9) ([dependabot[bot]](https://github.com/apps/dependabot)) +- github-actions: bump actions/setup-node from v1 to v2.1.4 [\#8](https://github.com/AlexRogalskiy/android-patterns/pull/8) ([dependabot[bot]](https://github.com/apps/dependabot)) +- github-actions: bump prologic/action-remark-lint from v0.0.5 to v2 [\#7](https://github.com/AlexRogalskiy/android-patterns/pull/7) ([dependabot[bot]](https://github.com/apps/dependabot)) +- sync: master to main [\#6](https://github.com/AlexRogalskiy/android-patterns/pull/6) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Main [\#5](https://github.com/AlexRogalskiy/android-patterns/pull/5) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- sync: master to main [\#4](https://github.com/AlexRogalskiy/android-patterns/pull/4) ([github-actions[bot]](https://github.com/apps/github-actions)) +- sync: master to main [\#3](https://github.com/AlexRogalskiy/android-patterns/pull/3) ([github-actions[bot]](https://github.com/apps/github-actions)) +- Main [\#2](https://github.com/AlexRogalskiy/android-patterns/pull/2) ([AlexRogalskiy](https://github.com/AlexRogalskiy)) +- sync: master to main [\#1](https://github.com/AlexRogalskiy/android-patterns/pull/1) ([github-actions[bot]](https://github.com/apps/github-actions)) + + + +\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)* diff --git a/.github/CONTRIBUTING.md b/CONTRIBUTING.md similarity index 85% rename from .github/CONTRIBUTING.md rename to CONTRIBUTING.md index b789a1767a..5950fa9188 100644 --- a/.github/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -32,21 +32,21 @@ orientation. Examples of behavior that contributes to creating a positive environment include: -* Using welcoming and inclusive language -* Being respectful of differing viewpoints and experiences -* Gracefully accepting constructive criticism -* Focusing on what is best for the community -* Showing empathy towards other community members +- Using welcoming and inclusive language +- Being respectful of differing viewpoints and experiences +- Gracefully accepting constructive criticism +- Focusing on what is best for the community +- Showing empathy towards other community members Examples of unacceptable behavior by participants include: -* The use of sexualized language or imagery and unwelcome sexual attention or -advances -* Trolling, insulting/derogatory comments, and personal or political attacks -* Public or private harassment -* Publishing others' private information, such as a physical or electronic +- The use of sexualized language or imagery and unwelcome sexual attention or + advances +- Trolling, insulting/derogatory comments, and personal or political attacks +- Public or private harassment +- Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a +- Other conduct which could reasonably be considered inappropriate in a professional setting ### Our Responsibilities @@ -73,7 +73,7 @@ further defined and clarified by project maintainers. ### Enforcement Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported by contacting the project team at [INSERT EMAIL ADDRESS]. All +reported by contacting the project team at \[INSERT EMAIL ADDRESS]. All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. @@ -89,4 +89,5 @@ This Code of Conduct is adapted from the [Contributor Covenant][homepage], versi available at [http://contributor-covenant.org/version/1/4][version] [homepage]: http://contributor-covenant.org + [version]: http://contributor-covenant.org/version/1/4/ diff --git a/CONTRIBUTORS b/CONTRIBUTORS new file mode 100644 index 0000000000..3f49f44618 --- /dev/null +++ b/CONTRIBUTORS @@ -0,0 +1,12 @@ +# This file lists all contributors having contributed to pouch. +# For how it is generated, see `scripts/generate-contributors.sh`. + +AccTextBot <41898282+github-actions[bot]@users.noreply.github.com> +AccTextBot +AccTextBot +AlexRogalskiy +blog-post-bot +dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> +GitHub Bot +github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> +Renovate Bot diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..fafdc2ddc0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,218 @@ +## +## ---- Base OS layer ---- +## docker build -t styled-android-patterns --build-arg IMAGE_SOURCE=node --build-arg IMAGE_TAG=12-buster . +## +ARG IMAGE_SOURCE=node +ARG IMAGE_TAG=12-buster + +FROM ${IMAGE_SOURCE}:${IMAGE_TAG} AS base + +## setup base stage +RUN echo "**** Base stage ****" + +## setup image arguments +ARG PYTHON_VERSION=3.8.2 + +ARG USER +ARG UID +ARG GID + +ARG NAME="android-patterns" +ARG VERSION="$(git describe --abbrev=0 --tag)" +ARG PACKAGE="AlexRogalskiy/android-patterns" +ARG DESCRIPTION="Android Design Patterns" + +ARG LC_ALL="en_US.UTF-8" +ARG BUILD_DATE="$(date -u +\"%Y-%m-%dT%H:%M:%SZ\")" +ARG VCS_REF="$(git rev-parse --short HEAD)" + +ARG APP_DIR="/usr/src/app" +ARG DATA_DIR="/usr/src/data" +ARG TEMP_DIR="/tmp" + +ARG INSTALL_PACKAGES="git curl tini dos2unix locales" + +## setup image labels +LABEL "name"="$NAME" +LABEL "version"="$VERSION" +LABEL "description"="$DESCRIPTION" + +LABEL "com.github.repository"="https://github.com/${PACKAGE}" +LABEL "com.github.homepage"="https://github.com/${PACKAGE}" +LABEL "com.github.documentation"="https://github.com/${PACKAGE}/blob/master/README.md" +LABEL "com.github.maintainer"="Sensiblemetrics, Inc. (https://sensiblemetrics.io)" + +LABEL "com.github.version"="$VERSION" +LABEL "com.github.build-date"="$BUILD_DATE" +LABEL "com.github.vcs-ref"="$VCS_REF" + +LABEL "com.github.name"="$NAME" +LABEL "com.github.description"="$DESCRIPTION" + +## setup environment variables +ENV PYTHON_VERSION $PYTHON_VERSION + +ENV APP_DIR=$APP_DIR \ + DATA_DIR=$DATA_DIR \ + TEMP_DIR=$TEMP_DIR + +ENV TZ=UTC \ + LANGUAGE=en_US:en \ + LC_ALL=$LC_ALL \ + LC_CTYPE=$LC_ALL \ + LANG=$LC_ALL \ + PYTHONIOENCODING=UTF-8 \ + PYTHONLEGACYWINDOWSSTDIO=UTF-8 \ + PYTHONUNBUFFERED=1 \ + PYTHONDONTWRITEBYTECODE=1 \ + DEBIAN_FRONTEND=noninteractive \ + APT_KEY_DONT_WARN_ON_DANGEROUS_USAGE=1 \ + PIP_DISABLE_PIP_VERSION_CHECK=1 \ + PIP_NO_CACHE_DIR=1 \ + PIP_DEFAULT_TIMEOUT=100 \ + NPM_CONFIG_LOGLEVEL=error \ + IN_DOCKER=True + +ENV USER=${USER:-'devbot'} \ + UID=${UID:-5000} \ + GID=${GID:-10000} + +## create user +RUN addgroup --gid "$GID" "$USER" || exit 0 +RUN adduser \ + --disabled-password \ + --gecos "" \ + --ingroup "$USER" \ + --uid "$UID" \ + --shell /bin/bash \ + "$USER" \ + || exit 0 + +## mount volumes +VOLUME ["$APP_DIR", "$DATA_DIR", "$TEMP_DIR"] + +## create working directory +WORKDIR $APP_DIR + +## install dependencies +RUN echo "**** Installing build packages ****" +## RUN echo "deb http://archive.ubuntu.com/ubuntu precise main universe" > /etc/apt/sources.list +RUN apt-get update \ + && apt-get install --assume-yes --no-install-recommends $INSTALL_PACKAGES \ + && apt-get autoclean \ + && apt-get clean \ + && apt-get autoremove \ + && rm -rf /var/lib/apt/lists/* + +## install python +RUN echo "**** Installing Python ****" +RUN cd /tmp && curl -O https://www.python.org/ftp/python/${PYTHON_VERSION}/Python-${PYTHON_VERSION}.tar.xz && \ + tar -xvf Python-${PYTHON_VERSION}.tar.xz && \ + cd Python-${PYTHON_VERSION} && \ + ./configure --enable-optimizations && \ + make -j 4 && \ + make altinstall && \ + ln -s /usr/local/bin/python3.8 /usr/bin/python3.8 + +## show versions +RUN echo "npm version: $(npm --version)" +RUN echo "node version: $(node --version | awk -F. '{print $1}')" +RUN echo "python version: $(python3 --version)" + +## setup entrypoint +ENTRYPOINT [ "/usr/bin/tini", "--" ] + +## remove cache +RUN echo "**** Cleaning cache ****" + +RUN apt-get remove -y build-essential zlib1g-dev libncurses5-dev libgdbm-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev g++ +RUN rm -rf /var/cache/apt/* /tmp/* /var/tmp/* + +## copy project files +COPY package.json . +COPY ./docs/requirements.txt . + +## +## ---- Python Dependencies ---- +## +FROM base AS python-dependencies + +## setup python dependencies stage +RUN echo "**** Installing python modules stage ****" + +RUN /usr/bin/python3.8 -m pip install --upgrade setuptools && \ + /usr/bin/python3.8 -m pip install --upgrade pip && \ + /usr/bin/python3.8 -m pip install -r requirements.txt + +## remove cache +RUN echo "**** Cleaning python cache ****" + +RUN rm -rf ~/.cache/pip + +## +## ---- Node Dependencies ---- +## +FROM base AS node-dependencies + +## setup node modules stage +RUN echo "**** Installing node modules stage ****" + +## update npm settings +RUN npm set progress=false && npm config set depth 0 + +## install only node_modules +## RUN npm install --no-audit --only=prod + +## copy production node_modules aside +## RUN cp -R node_modules prod_node_modules + +## install node_modules, including 'devDependencies' +RUN npm install --no-audit + +## remove cache +RUN echo "**** Cleaning node cache ****" + +RUN npm cache clean --force + +## +## ---- Testing ---- +## +FROM node-dependencies AS test + +## setup testing stage +RUN echo "**** Testing stage ****" + +## copy source files +COPY . ./ + +## run format checking & linting +RUN npm run test:all + +## +## ---- Release ---- +## +FROM base AS release + +## setup release stage +RUN echo "**** Release stage ****" + +## copy dependencies +#COPY --from=node-dependencies ${APP_DIR}/prod_node_modules ./node_modules +COPY --from=node-dependencies ${APP_DIR}/node_modules ./node_modules +COPY --from=python-dependencies /usr/local/lib/python3.8/site-packages /usr/local/lib/python3.8/site-packages + +## setup environment path +ENV PATH=/root/.local:$PATH + +## copy app sources +COPY . ./ + +## setup user +USER $USER + +## expose port +EXPOSE 8000 + +## define cmd +CMD [ "/usr/bin/python3.8", "-m", "mkdocs", "serve", "--verbose", "--dirtyreload", "--dev-addr=0.0.0.0:8000" ] +## CMD [ "mkdocs", "serve", "--verbose", "--dirtyreload", "-a", "0.0.0.0:8000" ] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000000..f477edd5aa --- /dev/null +++ b/Makefile @@ -0,0 +1,149 @@ +# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. +$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) + +# SHELL defines the shell that the Makefile uses. +# We also set -o pipefail so that if a previous command in a pipeline fails, a command fails. +# http://redsymbol.net/articles/unofficial-bash-strict-mode +SHELL := /bin/bash + +# Set V=1 on the command line to turn off all suppression. Many trivial +# commands are suppressed with "@", by setting V=1, this will be turned off. +ifeq ($(V),1) + AT := +else + AT := @ +endif + +IMAGE ?= styled-android-patterns +OKTETO_IMAGE ?= okteto/styled-android-patterns +DOCKER_IMAGE ?= alexanderr/styled-android-patterns +TAG ?= latest + +# UNAME_OS stores the value of uname -s. +UNAME_OS := $(shell uname -s) +# UNAME_ARCH stores the value of uname -m. +UNAME_ARCH := $(shell uname -m) + +# TMP_BASE is the base directory used for TMP. +# Use TMP and not TMP_BASE as the temporary directory. +TMP_BASE := .tmp +# TMP_COVERAGE is where we store code coverage files. +TMP_COVERAGE := $(TMP_BASE)/coverage + +UTILS := docker tilt helm +# Make sure that all required utilities can be located. +UTIL_CHECK := $(or $(shell which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to install `docker` and `tilt` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) +DIRS := $(shell ls -ad -- */ | grep -v release) + +# Run all by default when "make" is invoked. +.DEFAULT_GOAL := list + +# Default target (by virtue of being the first non '.'-prefixed in the file). +.PHONY: _no-target-specified +_no-target-specified: + $(error Please specify the target to make - `make list` shows targets) + +# Lists all targets defined in this makefile. +.PHONY: list +list: + $(AT)$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort + +# Lists all dirs (except `release`). +.PHONY: dirs +dirs: + echo "$(DIRS)" + +# Run version command. +.PHONY: versions +versions: + $(AT) echo + docker --version + $(AT) echo + tilt version + $(AT) echo + helm version + $(AT) echo + +# Clean removes all temporary files. +.PHONY: clean +clean: + rm -rf $(TMP_BASE) + rm -rf dist + rm -rf release + +# Ensures that the git workspace is clean. +.PHONY: _ensure-clean +_ensure-clean: + $(AT)[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } + +# Run docker build command. +.PHONY: docker-build +docker-build: _ensure-clean + docker build -f Dockerfile -t $(IMAGE):$(TAG) . + +# Run docker start command. +.PHONY: docker-start +docker-start: + docker-compose -f docker-compose.yml up -d + +# Run docker stop command. +.PHONY: docker-stop +docker-stop: + docker-compose -f docker-compose.yml down -v --remove-orphans + +# Run tilt start command. +.PHONY: tilt-start +tilt-start: + tilt up + +# Run tilt stop command. +.PHONY: tilt-stop +tilt-stop: + tilt down --delete-namespaces + +# Run helm lint command. +.PHONY: helm-lint +helm-lint: + helm lint charts --values charts/values.yaml + +# Run helm start command. +.PHONY: helm-start +helm-start: + helm upgrade --install backend-android-patterns -f charts/values.yaml --create-namespace --namespace webapp charts + +# Run helm stop command. +.PHONY: helm-stop +helm-stop: + helm uninstall backend-android-patterns --namespace webapp + +# Run helm package command. +.PHONY: helm-package +helm-package: + mkdir -p release/charts + helm package charts --dependency-update --destination release/charts + +# Run helm dev command. +.PHONY: helm-dev +helm-dev: clean helm-lint helm-package + +# Run okteto build command. +.PHONY: okteto +okteto: + okteto build -t $(DOCKER_IMAGE) . + okteto build -t $(OKTETO_IMAGE) . + +# Run local build command. +.PHONY: local-build +local-build: + python3 -m pip install -r ./docs/requirements.txt + python3 -m mkdocs build --clean --config-file mkdocs.yml + +# Run local run command. +.PHONY: local-run +local-run: + python3 -m mkdocs serve --verbose --dirtyreload + +# Run github pages deploy command. +.PHONY: gh-pages +gh-pages: + python3 -m mkdocs --verbose gh-deploy --force --remote-branch gh-pages diff --git a/OSSMETADATA b/OSSMETADATA new file mode 100644 index 0000000000..b96d4a4dfa --- /dev/null +++ b/OSSMETADATA @@ -0,0 +1 @@ +osslifecycle=active diff --git a/README.md b/README.md index 1bbf0e0ff6..5af9ed1196 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,10 @@ Nullable labs - Android Design patterns + Android patterns + + + Android patterns

@@ -25,19 +28,24 @@ ![GitHub search hit counter](https://img.shields.io/github/search/AlexRogalskiy/android-patterns/goto) ![GitHub Repository branches](https://badgen.net/github/branches/AlexRogalskiy/android-patterns) ![GitHub Repository dependents](https://badgen.net/github/dependents-repo/AlexRogalskiy/android-patterns) + [![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2FAlexRogalskiy%2Fandroid-patterns.svg?type=shield)](https://app.fossa.com/projects/git%2Bgithub.com%2FAlexRogalskiy%2Fandroid-patterns?ref=badge_shield) +[![Renovatebot](https://badgen.net/badge/renovate/enabled/green?cache=300)](https://renovatebot.com/) [![Dependabot](https://img.shields.io/badge/dependabot-enabled-1f8ceb.svg?style=flat-square)](https://dependabot.com/) [![NewReleases](https://newreleases.io/badge.svg)](https://newreleases.io/github/AlexRogalskiy/android-patterns) [![Hits-of-Code](https://hitsofcode.com/github/alexrogalskiy/android-patterns?branch=master)](https://hitsofcode.com/github/alexrogalskiy/android-patterns?branch=master/view?branch=master) [![ComVer](https://img.shields.io/badge/ComVer-compliant-brightgreen.svg)][repo] +[![GitHub Super-Linter](https://github.com/alexrogalskiy/android-patterns/workflows/Lint%20Code%20Base/badge.svg)](https://github.com/marketplace/actions/super-linter) +[![Documentation Status](https://readthedocs.org/projects/android-patterns/badge/?version=latest)](https://android-patterns.readthedocs.io/en/latest/?badge=latest) -## ๐ŸŽน _Table of contents_ +## ๐ŸŽน *Table of contents* * [Android Design Patterns](#android-design-patterns) * [Table of contents](#-table-of-contents) * [Summary](#-summary) * [Documentation](#-documentation) + * [Kubernetes](#-kubernetes) * [Statistics](#-statistics) * [Versioning](#-versioning) * [Authors](#-authors) @@ -46,6 +54,7 @@ * [Licensing](#-licensing) * [Development Support](#-development-support) * [Acknowledgement](#-acknowledgement) + * [OpenGraph Card](#-opengraph-card) * [Feeds and Podcasts](#-feeds-and-podcasts) * [Reddit posts](#reddit-posts) * [InfoWorld posts](#infoworld-posts) @@ -58,7 +67,7 @@ * [Infinum posts](#infinum-posts) -## โ˜ _Summary_ +## โ˜ *Summary*

Android @@ -73,7 +82,7 @@

-_**Android Design Patterns**_ is intended to provide various use case scenarios and architectural concepts on prototyping adaptive applications. +***Android Design Patterns*** is intended to provide various use case scenarios and architectural concepts on prototyping adaptive applications. ```text mkdocs.yml # Configuration file. @@ -107,248 +116,319 @@ docs/ info.md # Links page ``` -## ๐Ÿ“ _Documentation_ +## ๐Ÿ“ *Documentation* The Website documentation is provided by [gitbook](https://www.gitbook.com/) and can be discovered at url: -[_**Android Patterns**_][docs] +[***Android Patterns***][docs] -To enable documentation serving at _**localhost**_ the following steps should be considered: +To enable documentation serving at ***localhost*** you can run the following script -1\) Install/upgrade _**pip**_ command-line utility: +```shell script +./scripts/build-docs.sh +``` -```text +otherwise, the next steps should be considered: + +1\) Install/upgrade ***pip*** command-line utility: + +```shell script pip install --upgrade pip ``` -or if you need to install _**pip**_ for the first time: +or if you need to install ***pip*** for the first time: -```text +```shell script +wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py python get-pip.py ``` -2\) Install the _**mkdocs**_ package using pip: +2\) Install the ***mkdocs*** package using pip: -```text +```shell script pip install mkdocs ``` or more conveniently for Windows subsystem: -```text +```shell script python -m pip install mkdocs python -m mkdocs ``` 3\) Install the material theme for the website: -```text -pip install mkdocs-material -pip install markdown-include +```shell script +python -m pip install mkdocs-material +python -m pip install markdown-include +... +(see requirements.txt) +... ``` -4\) Start the server at _**localhost**_ by running the following command: +4\) Start the server at ***localhost*** by running the following command: -```text -mkdocs serve --verbose --dirtyreload +```shell script +python -m mkdocs build --clean --config-file mkdocs.yml +python -m mkdocs serve --verbose --dirtyreload ``` 5\) Deploy to GitHub pages: -```text -mkdocs --verbose gh-deploy --force --remote-branch gh-pages +```shell script +python -m mkdocs --verbose gh-deploy --force --remote-branch gh-pages ``` 5\) Open up [localhost](http://127.0.0.1:8000/) in browser to get the default documentation homepage. -## โฐ _Statistics_ +## ๐Ÿงถ *Kubernetes* + +Running k8s cluster with tilt command by acquiring k8s deployment configuration: + +```shell +tilt up +``` + +Shutting down k8s cluster with provisioned resources removal: + +```shell +tilt down --delete-namespaces +``` + +## โฐ *Statistics*

Documentation PageSpeed result dashboard

-## ๐Ÿ“ _Versioning_ +## ๐Ÿ“ *Versioning* The project uses [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository][tags]. -## ๐ŸŒน _Authors_ +## ๐ŸŒน *Authors* -_**Android Patterns**_ is maintained by the following GitHub team-members: +***Android Patterns*** is maintained by the following GitHub team-members: -* [![Author](https://img.shields.io/badge/author-AlexRogalskiy-FB8F0A)](https://github.com/AlexRogalskiy) +- [![Author](https://img.shields.io/badge/author-AlexRogalskiy-FB8F0A)](https://github.com/AlexRogalskiy) with community support please contact with us if you have some question or proposition. -## ๐Ÿ’• _Contributing_ +## ๐Ÿ’• *Contributing* + +[![Contributors Display](https://badges.pufler.dev/contributors/AlexRogalskiy/android-patterns?size=50\&padding=5\&bots=true)](https://badges.pufler.dev) -[![Contributors Display](https://badges.pufler.dev/contributors/AlexRogalskiy/android-patterns?size=50&padding=5&bots=true)](https://badges.pufler.dev) +Please read [CONTRIBUTING.md](CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests +to us ([emoji key](https://allcontributors.org/docs/en/emoji-key)). -Please read [CONTRIBUTING.md](https://github.com/AlexRogalskiy/android-patterns/blob/master/.github/CONTRIBUTING.md) for details on our code of conduct, and the process for submitting pull requests to us. +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) +specification. Contributions of any kind are welcome! [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square)](http://makeapullrequest.com) ![Github contributors](https://img.shields.io/github/all-contributors/AlexRogalskiy/android-patterns) See also the list of [contributors][contributors] who participated in this project. -## ๐Ÿšจ _Visitor stats_ +## ๐Ÿšจ *Visitor stats* -[![GitHub page hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FAlexRogalskiy%2Fandroid-patterns&count_bg=%2379C83D&title_bg=%23555555&icon=&icon_color=%23E7E7E7&title=hits&edge_flat=true)](https://hits.seeyoufarm.com) +[![GitHub page hits](https://hits.seeyoufarm.com/api/count/incr/badge.svg?url=https%3A%2F%2Fgithub.com%2FAlexRogalskiy%2Fandroid-patterns\&count_bg=%2379C83D\&title_bg=%23555555\&icon=\&icon_color=%23E7E7E7\&title=hits\&edge_flat=true)](https://hits.seeyoufarm.com) ![GitHub stars](https://img.shields.io/github/stars/AlexRogalskiy/android-patterns?style=social) ![GitHub forks](https://img.shields.io/github/forks/AlexRogalskiy/android-patterns?style=social) ![GitHub watchers](https://img.shields.io/github/watchers/AlexRogalskiy/android-patterns?style=social) -## โšฝ _Licensing_ +## โšฝ *Licensing* -_**Android Patterns**_ is distributed under LGPL version 3 or later, [[License](https://github.com/AlexRogalskiy/android-patterns/blob/master/LICENSE.txt)]. +***Android Patterns*** is distributed under LGPL version 3 or later, \[[License](https://github.com/AlexRogalskiy/android-patterns/blob/master/LICENSE.txt)]. LGPLv3 is additional permissions on top of GPLv3. ![image](https://user-images.githubusercontent.com/19885116/48661948-6cf97e80-ea7a-11e8-97e7-b45332a13e49.png) -## ๐ŸŒŸ _Development Support_ +## ๐ŸŒŸ *Development Support* Like Android Design patterns - and _**Android Patterns**_ ? Consider buying me a coffee :\) +and ***Android Patterns*** ? Consider buying me a coffee :) -[![Become a Patron](https://img.shields.io/badge/Become_Patron-Support_me_on_Patreon-blue.svg?style=flat-square&logo=patreon&color=e64413)](https://www.patreon.com/alexrogalskiy) +[![Become a Patron](https://img.shields.io/badge/Become_Patron-Support_me_on_Patreon-blue.svg?style=flat-square\&logo=patreon\&color=e64413)](https://www.patreon.com/alexrogalskiy) [![Buy Me A Coffee](https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-yellow.svg?logo=buy%20me%20a%20coffee)](https://www.buymeacoffee.com/AlexRogalskiy) [![KoFi](https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-yellow.svg?logo=ko-fi)](https://ko-fi.com/alexrogalskiy) -## ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ _Acknowledgement_ +## ๐Ÿ‘จโ€๐Ÿ‘จโ€๐Ÿ‘งโ€๐Ÿ‘ฆ *Acknowledgement* [![Stargazers repo roster for @AlexRogalskiy/android-patterns](https://reporoster.com/stars/AlexRogalskiy/android-patterns)][stars] -## ๐Ÿ”ฅ _Feeds and Podcasts_ +[![Stargazers over time](https://starchart.cc/AlexRogalskiy/android-patterns.svg)][stars_chart] + +[![Statistics report](https://cauldron.io/project/5126/stats.svg)][stats_chart] + +## ๐Ÿ“Ž *OpenGraph Card* + +

+ OpenGraph card +

+ +## ๐Ÿ”ฅ *Feeds and Podcasts* -### _Reddit posts_ +### *Reddit posts* -- [Here is my first Boss ever!!](https://www.reddit.com/r/androiddev/comments/lak5z7/here_is_my_first_boss_ever/) -- [How to send push notifications in real time to an android device without Firebase](https://www.reddit.com/r/androiddev/comments/lafsln/how_to_send_push_notifications_in_real_time_to_an/) -- [Android Navigation Deep link path regex?](https://www.reddit.com/r/androiddev/comments/ladug2/android_navigation_deep_link_path_regex/) -- [Compose Ui StateFlow.collectAsState() not working for StateFlow>](https://www.reddit.com/r/androiddev/comments/ladp0q/compose_ui_stateflowcollectasstate_not_working/) -- [Finally emulator is available inside android studio for M1 !!!](https://www.reddit.com/r/androiddev/comments/lacrll/finally_emulator_is_available_inside_android/) -- ["Notice me senpai!" In Android Docs...](https://www.reddit.com/r/androiddev/comments/laau6u/notice_me_senpai_in_android_docs/) -- [Question about AR Apps](https://www.reddit.com/r/androiddev/comments/laa6rk/question_about_ar_apps/) -- [Fast migration from Kotlin Synthetics to View Binding- Tips and Tricks](https://www.reddit.com/r/androiddev/comments/laa3t6/fast_migration_from_kotlin_synthetics_to_view/) -- [Need help on where to start app development](https://www.reddit.com/r/androiddev/comments/laa1hr/need_help_on_where_to_start_app_development/) -- [Kotlin's one of those languages, which many devs wish migrate to!](https://www.reddit.com/r/androiddev/comments/laa10m/kotlins_one_of_those_languages_which_many_devs/) +- [Guys, what are your thoughts about the new Google 16KB page size requirements that will take effect starting November?](https://www.reddit.com/r/androiddev/comments/1kulsww/guys_what_are_your_thoughts_about_the_new_google/) +- [Should I make separate resumes for Flutter and Jetpack Compose experience?](https://www.reddit.com/r/androiddev/comments/1kuki29/should_i_make_separate_resumes_for_flutter_and/) +- [Apk easy tool cannot compiling files](https://www.reddit.com/r/androiddev/comments/1kujjf6/apk_easy_tool_cannot_compiling_files/) +- [Drag and drop animation and shadow effects](https://www.reddit.com/r/androiddev/comments/1kuitaq/drag_and_drop_animation_and_shadow_effects/) +- [yt3 x90l table running android 6](https://www.reddit.com/r/androiddev/comments/1kuigen/yt3_x90l_table_running_android_6/) +- [Build, Runtime Performance, Apk size Improvement](https://www.reddit.com/r/androiddev/comments/1kui4xn/build_runtime_performance_apk_size_improvement/) +- [Book opinion](https://www.reddit.com/r/androiddev/comments/1kuhekc/book_opinion/) +- [Flatpaks on Android 16's linux VM?](https://www.reddit.com/r/androiddev/comments/1kugy9t/flatpaks_on_android_16s_linux_vm/) +- [Google's replacement to fat-aar is coming!](https://www.reddit.com/r/androiddev/comments/1kugnp8/googles_replacement_to_fataar_is_coming/) +- [How are wallpapers in tapet wallpaper app generated?](https://www.reddit.com/r/androiddev/comments/1kuf8cv/how_are_wallpapers_in_tapet_wallpaper_app/) -### _InfoWorld posts_ +### *InfoWorld posts* -- [Android Studio improves machine learning support](https://www.infoworld.com/article/3584465/android-studio-improves-machine-learning-support.html#tk.rss_android) -- [Kotlin mobile SDK shares code across Android, iOS](https://www.infoworld.com/article/3574076/kotlin-mobile-sdk-shares-code-across-android-ios.html#tk.rss_android) -- [Googleโ€™s UI toolkit for Android moves to alpha release](https://www.infoworld.com/article/3572565/googles-ui-toolkit-for-android-moves-to-alpha-release.html#tk.rss_android) -- [Gradle 6.5 adds file system watching to improve build times](https://www.infoworld.com/article/3561572/gradle-65-adds-file-system-watching-to-improve-build-times.html#tk.rss_android) -- [Android Studio 4.0 adds Motion Editor and Build Analyzer](https://www.infoworld.com/article/3561230/android-studio-40-adds-motion-editor-and-build-analyzer.html#tk.rss_android) -- [Amid the pandemic, using trust to fight shadow IT](https://www.computerworld.com/article/3544301/amid-the-pandemic-using-trust-to-fight-shadow-it.html#tk.rss_android) -- [How smartphone apps could save lives (and the economy)](https://www.idginsiderpro.com/article/3537532/how-smartphone-apps-could-save-lives-and-the-economy.html#tk.rss_android) +- [JetBrains debuts Kotlin 2.0.0 with K2 compiler performance boost](https://www.infoworld.com/article/3715312/jetbrains-debuts-kotlin-200-with-k2-compiler-performance-boost.html#tk.rss_android) +- [Android 15 reaches beta](https://www.infoworld.com/article/3715401/android-15-reaches-beta.html#tk.rss_android) +- [Kotlin keeps climbing the Tiobe popularity index](https://www.infoworld.com/article/3710290/kotlin-keeps-climbing-the-tiobe-popularity-index.html#tk.rss_android) +- [Building for Linux and Android on Windows](https://www.infoworld.com/article/3707729/building-for-linux-and-android-on-windows.html#tk.rss_android) +- [Flutter 3.13 speeds rendering on iOS](https://www.infoworld.com/article/3705031/flutter-313-speeds-rendering-on-ios.html#tk.rss_android) +- [Kotlin 1.9.0 features beta of advanced K2 compiler](https://www.infoworld.com/article/3701893/kotlin-1-9-0-features-beta-of-advanced-k2-compiler.html#tk.rss_android) +- [Build better Jetpack Compose apps with Sentry](https://www.infoworld.com/article/3693018/build-better-jetpack-compose-apps-with-sentry.html#tk.rss_android) +- [Android Studio Flamingo upgrades UI tooling](https://www.infoworld.com/article/3693588/android-studio-flamingo-ide-enhances-ui-building.html#tk.rss_android) +- [Android 14 preview for developers arrives](https://www.infoworld.com/article/3687731/android-14-preview-for-developers-arrives.html#tk.rss_android) - [What is Kotlin? The Java alternative explained](https://www.infoworld.com/article/3224868/what-is-kotlin-the-java-alternative-explained.html#tk.rss_android) -- [Android 11 developer preview stresses 5G, security](https://www.infoworld.com/article/3528552/android-11-developer-preview-stresses-5g-security.html#tk.rss_android) -- [Android in 2020: Trends and predictions](https://www.infoworld.com/video/100859/android-in-2020-trends-and-predictions#tk.rss_android) -### _RedHat posts_ +### *RedHat posts* + - [Android SPKI Pinning with TrustKit](https://developers.redhat.com/blog/2017/10/26/android-spki-pinning-trustkit/) - [Server-side Kotlin with Eclipse Vert.x at JavaOne](https://developers.redhat.com/blog/2017/10/13/server-side-kotlin-eclipse-vert-x-javaone/) - [Testing your Android Appโ€™s UI with Espresso](https://developers.redhat.com/blog/2017/07/13/testing-your-android-apps-ui-with-espresso/) - [Installing Linux on an Android Phone](https://developers.redhat.com/blog/2017/03/16/installing-linux-on-an-android-phone/) - [A step-by-step tutorial for continuous integration with Jenkins on a Red Hat Mobile Native Android application: Part 2](https://developers.redhat.com/blog/2016/08/11/a-step-by-step-tutorial-for-continuous-integration-with-jenkins-on-a-red-hat-mobile-native-android-application-part-2/) + -### _Android Authority posts_ +### *Android Authority posts* + - [15 best Android emulators for PC and Mac of 2021](https://www.androidauthority.com/best-android-emulators-for-pc-655308/) -- [How to create Oculus Quest experiences in Unity](https://www.androidauthority.com/oculus-quest-development-1196351/) -- [Upwork vs Fiverr: Which is the best place to sell your services?](https://www.androidauthority.com/upwork-vs-fiverr-1190439/) -- [How to install Android on PC: These are your best options](https://www.androidauthority.com/install-android-pc-668643/) -- [A guide to Android app development for complete beginners in 5 easy steps](https://www.androidauthority.com/android-app-development-1128595/) -- [How to reverse a string in Python](https://www.androidauthority.com/how-to-reverse-a-string-in-python-1140847/) -- [What is Microsoft Azure? Azure certification for professionals](https://www.androidauthority.com/what-is-azure-1159879/) -- [How to call a method in Java](https://www.androidauthority.com/how-to-call-a-method-in-java-1149853/) -- [Making an app with no programming experience: What are your options?](https://www.androidauthority.com/how-to-make-android-apps-629325/) -- [What is Azure certification?](https://www.androidauthority.com/azure-certification-1162875/) +- [Google I/O 2021: Hereโ€™s what to expect](https://www.androidauthority.com/google-io/) +- [How to make a game in Python: An introduction to Pygame](https://www.androidauthority.com/how-to-make-a-game-in-python-1136589/) +- [How to call a function in Python](https://www.androidauthority.com/python-function-call-1121793/) +- [How to use loops in Python](https://www.androidauthority.com/how-to-use-loops-in-python-1148510/) +- [The best Android developer tools for getting started](https://www.androidauthority.com/best-android-developer-tools-671650/) +- [How to install Python and start coding on Windows, Mac, or Linux](https://www.androidauthority.com/how-to-install-python-1134793/) +- [How to define a function in Python](https://www.androidauthority.com/how-to-define-a-function-in-python-1141219/) +- [Python beginnerโ€™s guide โ€“ Everything you need to know to get started](https://www.androidauthority.com/learn-python-beginner-1142688/) +- [Kotlin tutorial for Android for beginners: Build a simple quiz](https://www.androidauthority.com/kotlin-tutorial-1134289/) + -### _Android Arsenal posts_ +### *Android Arsenal posts* -- [RxDisposableWatcher](http://android-arsenal.com/details/1/8225) -- [android-uniDevId](http://android-arsenal.com/details/1/8224) -- [BottomSheet Menu](http://android-arsenal.com/details/1/8223) -- [Boot Laces](http://android-arsenal.com/details/1/8222) -- [Pixl](http://android-arsenal.com/details/1/8221) -- [TagLabelText](http://android-arsenal.com/details/1/8220) -- [StoryViewer](http://android-arsenal.com/details/3/8219) -- [Bouncy](http://android-arsenal.com/details/1/8218) -- [Routes](http://android-arsenal.com/details/1/8217) -- [Moshi Kotlin Extensions](http://android-arsenal.com/details/1/8216) + +- [locus](http://android-arsenal.com/details/1/8244) +- [SSImagePicker](http://android-arsenal.com/details/1/8243) +- [Comparing Performance Bar](http://android-arsenal.com/details/1/8242) +- [Screenshot Detection](http://android-arsenal.com/details/1/8241) +- [AndroidResourceManager](http://android-arsenal.com/details/1/8240) +- [FixedHeaderTableLayout](http://android-arsenal.com/details/1/8239) +- [AndroidStyling-LintRules](http://android-arsenal.com/details/1/8238) +- [MaterialPreferences](http://android-arsenal.com/details/1/8237) +- [MaterialDialogFragments](http://android-arsenal.com/details/1/8236) +- [Android BLE Made Easy](http://android-arsenal.com/details/1/8235) + -### _Medium posts_ +### *Medium posts* -- [Modelling UI State on Android](https://proandroiddev.com/modelling-ui-state-on-android-26314a5975b9?source=rss------android-5) -- [Create a simple Samsung Galaxy Watch companionย .NET appโ€Šโ€”โ€ŠPart 1](https://medium.com/@kennay-kermani/create-a-simple-samsung-galaxy-watch-companion-net-app-part-1-1466fd9e2e6c?source=rss------android-5) -- [Hungry Shark Evolution MOD APK](https://medium.com/@Asiofficial/hungry-shark-evolution-mod-apk-f1cfe4c05b36?source=rss------android-5) -- [How to See Saved Password on Chrome](https://medium.com/@smarttecksolutions/how-to-see-saved-password-on-chrome-37ebcdb11f3e?source=rss------android-5) -- [Getting Android vector drawable as Path](https://medium.com/@aednlaxer/getting-android-vector-drawable-as-path-f4de5651f559?source=rss------android-5) -- [Ford and Android are partner, Ford will use ANDROID](https://medium.com/@androidhelipad/ford-and-android-are-partner-ford-will-use-android-9e15c10b6985?source=rss------android-5) -- [Gamification in Social Networks: Do you remember these games?](https://medium.com/@bitwings/gamification-in-social-networks-do-you-remember-these-games-8b66f56e7951?source=rss------android-5) -- [Report: Netflix Is Testing a Sleep Timer Feature on Android](https://medium.com/pcmag-access/report-netflix-is-testing-a-sleep-timer-feature-on-android-88958f4df184?source=rss------android-5) -- [Implementing Android Notifications In Unity Game](https://medium.com/swlh/implementing-android-notifications-in-unity-game-15642d316c9e?source=rss------android-5) + +- [Every student needs to install this FREE android app NOW!](https://lydia22.medium.com/every-student-needs-to-install-this-free-android-app-now-563fed9189d1?source=rss------android-5) +- [Digital Signature Android Demo.](https://info-anikdey003.medium.com/digital-signature-android-demo-a38f1342b880?source=rss------android-5) +- [Augmented Reality(AR) in Android](https://mothegoat.medium.com/augmented-reality-ar-in-android-1af62f6a207e?source=rss------android-5) +- [5 Effective Dos and Donโ€™ts in Java Programming](https://betterprogramming.pub/5-effective-dos-and-donts-in-java-programming-3c14b0467bfd?source=rss------android-5) +- [Latest whatsapp messenger apk download](https://farida-bomo.medium.com/latest-whatsapp-messenger-apk-download-230c83acbc43?source=rss------android-5) +- [Android : Good to know, Part-1](https://anubhav-arora.medium.com/android-good-to-know-part-1-93b141e93192?source=rss------android-5) +- [Pop-Up-Date](https://medium.com/niagara-launcher/pop-up-date-4a5d3522df2d?source=rss------android-5) +- [Unโ€™organizzazione che vuole aiutare e dare privilegi a chi ha meno privilegi e anche aumentare ilโ€ฆ](https://wemovekel01.medium.com/unorganizzazione-che-vuole-aiutare-e-dare-privilegi-a-chi-ha-meno-privilegi-e-anche-aumentare-il-13ec5ea12f09?source=rss------android-5) +- [Getting started: Android CameraX](https://thewerner.medium.com/getting-started-android-camerax-a84e138e2c00?source=rss------android-5) +- [Maintain View from Resizing while use `ADJUST_RESIZE`](https://mahmoud-mabrok.medium.com/maintain-view-from-resizing-while-use-adjust-resize-915676c1c5e5?source=rss------android-5) + -### _Gizmodo posts_ +### *Gizmodo posts* -- [Ford Will Put Android in Millions of Cars Starting in 2023](https://gizmodo.com/ford-will-put-android-in-millions-of-cars-starting-in-2-1846174165) -- [Google Suspended Federated Chat App Element for Allegedly Hosting Abusive Content](https://gizmodo.com/google-suspended-federated-chat-app-element-for-alleged-1846167702) -- [See Which Apps Are Using Your Camera, Microphone, and Location](https://gizmodo.com/see-which-apps-are-using-your-camera-microphone-and-l-1846044433) -- [It's Doneโ€”the Google-Fitbit Deal Is Complete](https://gizmodo.com/its-done-the-google-fitbit-deal-is-complete-1846057104) -- [The Best Apps to Distract Your Brain from the Nightmare That Is 2021](https://gizmodo.com/the-best-apps-to-distract-your-brain-from-the-nightmare-1846027578) -- [TCL Is Pushing the Price of 5G Down Even Further with the TCL 20 5G](https://gizmodo.com/tcl-is-pushing-the-price-of-5g-down-even-further-with-t-1846033224) -- [Samsung Finally Announced the Galaxy Unpacked Event We All Knew About: Here's What's Coming](https://gizmodo.com/samsung-finally-announced-the-galaxy-unpacked-event-we-1845983996) -- [How to Enable the Hidden Tap Gesture on iPhone or Android](https://gizmodo.com/how-to-enable-the-hidden-tap-gesture-on-iphone-or-andro-1845953239) -- [Google Sneakily Removed Support for Astrophotography Mode from Ultra-Wide Cams on the Pixel 5 and 4a 5G](https://gizmodo.com/google-sneakily-removed-support-for-astrophotography-mo-1845962214) -- [Samsung's Galaxy S21 Ultra Will Reportedly Get S-Pen Support](https://gizmodo.com/samsungs-galaxy-s21-ultra-will-reportedly-get-s-pen-sup-1845940688) + +- [The Asus Zenfone 8 Is an Affordable, Compelling Option If You Love Small Phones](https://gizmodo.com/the-asus-zenfone-8-is-an-affordable-compelling-option-1846854210) +- [My Kingdom for an Android Tablet That Doubles As a Portable Monitor](https://gizmodo.com/my-kingdom-for-an-android-tablet-that-doubles-as-a-port-1846850182) +- [Google, You Should Already Know How People Feel About Wear OS](https://gizmodo.com/google-you-should-already-know-how-people-feel-about-w-1846866808) +- [Clubhouse Launches Android Beta as iOS Downloads Nosedive](https://gizmodo.com/clubhouse-launches-android-beta-as-downloads-nosedive-1846856771) +- [Qualcomm Chip Flaw Could Leave 30 Percent of the World's Phones Vulnerable to Hackers](https://gizmodo.com/qualcomm-chip-flaw-could-leave-30-percent-of-the-worlds-1846837667) +- [Google Is Launching Its Own Version of Appleโ€™s Privacy Nutrition Labels](https://gizmodo.com/google-is-launching-its-own-version-of-apple-s-privacy-1846839667) +- [Google Assistant Is Getting a New Family Broadcast Feature Just in Time for Mother's Day](https://gizmodo.com/google-assistant-is-getting-a-new-family-broadcast-feat-1846836811) +- [Google Is Bringing a Google TV-Like Experience to Android Tablets](https://gizmodo.com/google-is-bringing-a-google-tv-like-experience-to-andro-1846824566) +- [Google May Have Inadvertently Just Spilled the Beans About the Pixel Buds A on Twitter](https://gizmodo.com/google-may-have-inadvertently-just-spilled-the-beans-ab-1846823832) +- [60% of School Apps Are Sharing Your Kids' Data With Third Parties](https://gizmodo.com/60-of-school-apps-are-sharing-your-kids-data-with-thir-1846819024) + -### _Mobile Dev Memo posts_ +### *Mobile Dev Memo posts* -- [Apple privileges its own ad network with ATT. Whatโ€™s its privacy endgame?](https://mobiledevmemo.com/apple-privileges-its-own-ad-network-whats-its-privacy-end-game/) -- [Unpacking Appleโ€™s latest iOS14 privacy policy guidance](https://mobiledevmemo.com/unpacking-apples-latest-ios14-privacy-policy-guidance/) -- [Podcast: IDFA, TURTLEDOVE, and the Future of Online Privacy](https://mobiledevmemo.com/idfa-turtledove-and-the-future-of-privacy/) -- [Ad tech companies will become gaming companies in 2021](https://mobiledevmemo.com/mobile-ad-tech-companies-should-become-gaming-companies-in-2021/) -- [Facebook may take 7% revenue hit from Apple privacy changes](https://mobiledevmemo.com/facebook-may-take-revenue-hit-from-apple-privacy-changes/) -- [Fingerprinting with iOS 14: Reality or delusion?](https://mobiledevmemo.com/fingerprinting-with-att-reality-or-delusion/) -- [What happens to digital advertising if Facebook is broken up?](https://mobiledevmemo.com/what-happens-to-advertisers-if-facebook-is-broken-up/) -- [App Tracking Transparency Codex: the ultimate guide to ATT, IDFA deprecation, and SKAdNetwork](https://mobiledevmemo.com/app-tracking-transparency-codex-guide-to-idfa-deprecation-and-skadnetwork/) -- [2021 predictions for mobile marketing, Part 2](https://mobiledevmemo.com/2021-predictions-for-mobile-marketing-part-2/) -- [2021 predictions for mobile marketing](https://mobiledevmemo.com/2021-predictions-for-mobile-marketing/) + +- [Apple robbed the mobโ€™s bank](https://mobiledevmemo.com/apple-robbed-the-mobs-bank/) +- [iOS 14: How to prevail in Q2 2021](https://mobiledevmemo.com/ios-14-prevailing-in-q2-2021/) +- [โ€œMobile advertising spend canโ€™t just disappearโ€](https://mobiledevmemo.com/mobile-advertising-spend-cant-just-disappear/) +- [Creative paralysis: ad creative production and testing in iOS 14](https://mobiledevmemo.com/creative-paralysis-ad-creative-production-and-testing-for-ios-14/) +- [The end of the beginning on mobile: ATT is enforced next week](https://mobiledevmemo.com/the-end-of-the-beginning-on-mobile-att-is-enforced-next-week/) +- [The growth trap](https://mobiledevmemo.com/the-growth-trap/) +- [ATT opt-in rates are irrelevant](https://mobiledevmemo.com/att-opt-in-rates-are-irrelevant/) +- [Unpacking Tim Cookโ€™s comments about ATT](https://mobiledevmemo.com/unpacking-tim-cooks-comments-about-att/) +- [What is differential privacy in digital advertising?](https://mobiledevmemo.com/what-is-differential-privacy/) +- [Dear App Developers: fingerprinting is not a viable workaround to ATT](https://mobiledevmemo.com/dear-app-developers-fingerprinting-is-not-a-viable-workaround-to-att/) + -### _Infinum posts_ +### *Infinum posts* -- [RxJava vs. Coroutines](https://androidsweets.ongoodbits.com/2021/01/29/rxjava-vs-coroutines) -- [Make your own device lab!](https://androidsweets.ongoodbits.com/2021/01/22/make-your-own-device-lab) -- [How much debuggable option slows down your app?](https://androidsweets.ongoodbits.com/2021/01/15/how-much-debuggable-option-slows-down-your-app) -- [Do you know how to keep secrets?](https://androidsweets.ongoodbits.com/2021/01/08/do-you-know-how-to-keep-secrets) -- [Is your app MAD enough?](https://androidsweets.ongoodbits.com/2020/12/18/is-your-app-mad-enough) + +- [Android Studio 4.2 is now available](https://androidsweets.ongoodbits.com/android-studio-4-2-is-now-available) +- [Be careful with you Google ads!](https://androidsweets.ongoodbits.com/be-careful-with-you-google-ads) +- [How to have Modular Navigation with Jetpack Compose?](https://androidsweets.ongoodbits.com/how-to-have-modular-navigation-with-jetpack-compose) +- [How Dalvik and ART work?](https://androidsweets.ongoodbits.com/how-dalvik-and-art-work) +- [Tools to help developers provide a positive user experience](https://androidsweets.ongoodbits.com/tools-to-help-developers-provide-a-positive-user-experience) + - [repo]: https://github.com/AlexRogalskiy/android-patterns - [tags]: https://github.com/AlexRogalskiy/android-patterns/tags - [issues]: https://github.com/AlexRogalskiy/android-patterns/issues - [pulls]: https://github.com/AlexRogalskiy/android-patterns/pulls - [wiki]: https://github.com/AlexRogalskiy/android-patterns/wiki - [stars]: https://github.com/AlexRogalskiy/android-patterns/stargazers - [contributors]: https://github.com/AlexRogalskiy/android-patterns/graphs/contributors - [docs]: https://alexander-rogalsky.gitbook.io/android-patterns/ \ No newline at end of file +*** + +[![forthebadge](https://img.shields.io/badge/made%20with-%20markdown-C1282D.svg?logo=markdown\&style=for-the-badge)](https://www.markdownguide.org/) +[![forthebadge](https://img.shields.io/badge/powered%20by-%20gitbook-7116FB.svg?logo=gitbook\&style=for-the-badge)](https://www.gitbook.com/) +[![forthebadge](https://img.shields.io/badge/build%20with-%20%E2%9D%A4-B6FF9B.svg?logo=heart\&style=for-the-badge)](https://forthebadge.com/) + +[repo]: https://github.com/AlexRogalskiy/android-patterns + +[tags]: https://github.com/AlexRogalskiy/android-patterns/tags + +[issues]: https://github.com/AlexRogalskiy/android-patterns/issues + +[pulls]: https://github.com/AlexRogalskiy/android-patterns/pulls + +[wiki]: https://github.com/AlexRogalskiy/android-patterns/wiki + +[stars]: https://github.com/AlexRogalskiy/android-patterns/stargazers + +[stars_chart]: https://starchart.cc/AlexRogalskiy/android-patterns + +[stats_chart]: https://cauldron.io/project/5126 + +[contributors]: https://github.com/AlexRogalskiy/android-patterns/graphs/contributors + +[docs]: https://alexander-rogalsky.gitbook.io/android-patterns/ diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000000..034e848032 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,21 @@ +# Security Policy + +## Supported Versions + +Use this section to tell people about which versions of your project are +currently being supported with security updates. + +| Version | Supported | +| ------- | ------------------ | +| 5.1.x | :white_check_mark: | +| 5.0.x | :x: | +| 4.0.x | :white_check_mark: | +| < 4.0 | :x: | + +## Reporting a Vulnerability + +Use this section to tell people how to report a vulnerability. + +Tell them where to go, how often they can expect to get an update on a +reported vulnerability, what to expect if the vulnerability is accepted or +declined, etc. diff --git a/Tiltfile b/Tiltfile new file mode 100644 index 0000000000..251ea0beae --- /dev/null +++ b/Tiltfile @@ -0,0 +1,41 @@ +# -*- mode: Python -* + +# For more on Extensions, see: https://docs.tilt.dev/extensions.html +load('ext://restart_process', 'docker_build_with_restart') +load('ext://conftest', 'conftest') +load('ext://list_port_forwards', 'display_port_forwards') +load('ext://print_tiltfile_dir', 'print_tiltfile_dir') +load('ext://min_tilt_version', 'min_tilt_version') +min_tilt_version('0.13.0') + +load('ext://tilt_inspector', 'tilt_inspector') +tilt_inspector() + +#load('ext://min_k8s_version', 'min_k8s_version') +#min_k8s_version('1.21.1') + +load('ext://namespace', 'namespace_create', 'namespace_inject') +namespace_create('webapp') + +conftest(path='k8s/backend/deployment.yaml', namespace='main') +# k8s_yaml('k8s/backend/deployment.yaml') +k8s_yaml(namespace_inject(read_file('k8s/backend/deployment.yaml'), 'webapp'), allow_duplicates=False) +k8s_resource('backend-android-patterns-v1', port_forwards=8000, resource_deps=['deploy', 'conftest']) + +# Records the current time, then kicks off a server update. +# Normally, you would let Tilt do deploys automatically, but this +# shows you how to set up a custom workflow that measures it. +local_resource( + 'deploy', + 'python3 ./record-start-time.py' +) + +# Add a live_update rule to our docker_build +congrats = "๐ŸŽ‰ Congrats, you ran a live_update! ๐ŸŽ‰" +docker_build('styled-android-patterns', '.', build_args={'IMAGE_SOURCE': 'node', 'IMAGE_TAG': '12-buster'}, + dockerfile='./Dockerfile', + live_update=[ + sync('.', '/usr/src/app'), + run('python3 ./record-start-time.py'), + run('cd /usr/src/app/docs && pip3.8 install -r requirements.txt --quiet', trigger='./requirements.txt') +]) diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..66f71b623a --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,17 @@ +environment: + matrix: + - nodejs_version: '14' + +install: + - ps: Install-Product node $env:nodejs_version + - npm i -g npm@latest + - npm ci + +build: false + +test_script: + - node --version + - npm --version + - npm run all + +version: '{build}' diff --git a/changelog.config.js b/changelog.config.js new file mode 100644 index 0000000000..02d357baa7 --- /dev/null +++ b/changelog.config.js @@ -0,0 +1,60 @@ +module.exports = { + disableEmoji: false, + list: ['test', 'feat', 'fix', 'chore', 'docs', 'refactor', 'style', 'ci', 'perf'], + maxMessageLength: 64, + minMessageLength: 3, + questions: ['type', 'scope', 'subject', 'body', 'breaking', 'issues', 'lerna'], + scopes: [], + types: { + chore: { + description: 'Build process or auxiliary tool changes', + emoji: '๐Ÿค–', + value: 'chore', + }, + ci: { + description: 'CI related changes', + emoji: '๐ŸŽก', + value: 'ci', + }, + docs: { + description: 'Documentation only changes', + emoji: 'โœ๏ธ', + value: 'docs', + }, + feat: { + description: 'A new feature', + emoji: '๐ŸŽธ', + value: 'feat', + }, + fix: { + description: 'A bug fix', + emoji: '๐Ÿ›', + value: 'fix', + }, + perf: { + description: 'A code change that improves performance', + emoji: 'โšก๏ธ', + value: 'perf', + }, + refactor: { + description: 'A code change that neither fixes a bug or adds a feature', + emoji: '๐Ÿ’ก', + value: 'refactor', + }, + release: { + description: 'Create a release commit', + emoji: '๐Ÿน', + value: 'release', + }, + style: { + description: 'Markup, white-space, formatting, missing semi-colons...', + emoji: '๐Ÿ’„', + value: 'style', + }, + test: { + description: 'Adding missing tests', + emoji: '๐Ÿ’', + value: 'test', + }, + }, +} diff --git a/charts/.helmignore b/charts/.helmignore new file mode 100644 index 0000000000..0e8a0eb36f --- /dev/null +++ b/charts/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/charts/Chart.yaml b/charts/Chart.yaml new file mode 100644 index 0000000000..86331b3d44 --- /dev/null +++ b/charts/Chart.yaml @@ -0,0 +1,22 @@ +apiVersion: v2 +version: 1.0.0 +appVersion: "1.0.1" +created: "2021-09-01T06:23:41.21262323Z" +name: backend-android-patterns +description: | + Android Design Patterns documentation +home: https://alexander-rogalsky.gitbook.io/android-patterns +icon: https://d1j8pt39hxlh3d.cloudfront.net/emoji/emojione/5.0/png/unicode/32/1f4d2.png +type: application +keywords: + - android + - design patterns + - documentation +maintainers: + - email: alexrogalskiy@users.noreply.github.com + name: AlexRogalskiy +sources: + - https://github.com/AlexRogalskiy/android-patterns +urls: + - https://github.com/AlexRogalskiy/android-patterns/archive/refs/tags/1.0.1.tar.gz +kubeVersion: '>=1.19.0-0' diff --git a/charts/README.md b/charts/README.md new file mode 100644 index 0000000000..aa4c4bc3ab --- /dev/null +++ b/charts/README.md @@ -0,0 +1,118 @@ +# Hello Kubernetes! + +This container image can be deployed on a Kubernetes cluster. It runs a web app, that displays the following: + +- a default **Hello world!** message +- namespace, pod, and node details +- container image details + +## Quick start + +You can deploy `android-patterns` to your Kubernetes cluster using [Helm 3](https://helm.sh/docs/intro/install/). The Helm chart installation and configuration +options can be found in the [Deploy using Helm](docs/deploy-using-helm.md) guide. + +When running through the following examples, ensure that you are in the chart directory in the repo, since you are referencing a local helm chart. + +```bash +$ cd helm +``` + +### Example 1: Default + +Deploy the `android-patterns` app into the `webapp` namespace. The app is exposed via a public Load Balancer on port 80 by default - note that a LoadBalancer +service typically only works in cloud provider based Kubernetes offerings. + +```bash +$ helm upgrade --install backend-android-patterns -f values.yaml --create-namespace --namespace webapp . + +# get the LoadBalancer ip address. +$ kubectl get svc webapp-backend-android-patterns -n webapp -o 'jsonpath={ .status.loadBalancer.ingress[0].ip }' +``` + +### Example 2: Custom message + +Deploy the `android-patterns` app into the `webapp` namespace with an "I just deployed this on Kubernetes!" message. The app is exposed via a public Load Balancer +on port 80 by default - note that a LoadBalancer service typically only works in cloud provider based Kubernetes offerings. + +```bash +$ helm upgrade --install backend-android-patterns -f values.yaml --create-namespace --namespace webapp . --set message="I just deployed this on Kubernetes!" + +# get the LoadBalancer ip address. +$ kubectl get svc webapp-backend-android-patterns -n webapp -o 'jsonpath={ .status.loadBalancer.ingress[0].ip }' +``` + +### Example 3: Ingress + +Deploy the `android-patterns` app into the `webapp` namespace. This example assumes that an ingress has been deployed and configured in the cluster, and that the +ingress has a path of `/app/android-patterns/` mapped to the `android-patterns` service. + +The `android-patterns` app can be reached on the ip address of the ingress via the `/app/android-patterns/` path. + +```bash +$ helm upgrade --install backend-android-patterns -f values.yaml --create-namespace --namespace webapp ingress . \ + --set ingress.configured=true \ + --set ingress.pathPrefix="/app/android-patterns/" \ + --set service.type="ClusterIP" +``` + +Alternatively, a YAML file that specifies the values for the above parameters can be provided while installing the chart. For example, + +```bash +$ helm install --create-namespace --namespace webapp backend-android-patterns . -f values.yaml +``` + +> **Tip**: You can use the default [values.yaml](values.yaml) + +### Example 4: Helm uninstall + +```bash +helm uninstall backend-android-patterns --namespace webapp +``` + +### Example 5: Helm status + +```bash +helm status backend-android-patterns --namespace webapp +``` + +### Example 6: Helm list + +```bash +helm list --namespace webapp +``` + +### Example 7: Helm lint + +```bash +helm lint charts +``` + +## Documentation + +### Deploying + +If you'd like to explore the various Helm chart configuration options, then read the [Deploy with Helm](charts2/docs/deploy-using-helm.md) documentation. You can also +discover more about the ingress configuration options in the [Deploy with ingress](charts2/docs/deploy-with-ingress.md) documentation + +### Building your own images + +If you'd like to build the `android-patterns` container image yourself and reference from your own registry or DockerHub repository, then you can get more details +on how to do this in the [Build and push container images](charts2/docs/build-and-push-container-images.md) documentation. + +### Development environment + +If you have [VS Code](https://code.visualstudio.com/) and +the [VS Code Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) extension installed, the `.devcontainer` +folder will be used to provide a container based development environment. You can read more about how to use this in +the [Development environments](docs/development-environment.md) documentation. + +## Upgrading the chart + +### To =< 5.0.0 + +Version 5.0.0 is a major update. + +- The chart now follows the new Kubernetes label recommendations: + + +The simplest way to update is to do a force upgrade, which recreates the resources by doing a delete and an install. diff --git a/charts/docs/build-and-push-container-images.md b/charts/docs/build-and-push-container-images.md new file mode 100644 index 0000000000..91b43aa702 --- /dev/null +++ b/charts/docs/build-and-push-container-images.md @@ -0,0 +1,31 @@ +Building docker image with docker command: + +```shell +GIT_SHA=$(git rev-parse HEAD) +docker build -f Dockerfile -t styled-android-patterns -t styled-android-patterns:$GIT_SHA --build-arg VERCEL_TOKEN=$1 . +``` + +Running docker image via `docker-compose` command: + +```shell +docker-compose -f docker-compose.yml build +docker-compose -f docker-compose.yml up -d +``` + +Removing docker image via `docker-compose` command: + +```shell +docker-compose -f docker-compose.yml down -v --remove-orphans +``` + +Running k8s cluster with `tilt` command by acquiring k8s deployment configuration: + +```shell +tilt up +``` + +Shutting down k8s cluster with `tilt` command with provisioned resources removal: + +```shell +tilt down --delete-namespaces +``` diff --git a/charts/docs/deploy-using-helm.md b/charts/docs/deploy-using-helm.md new file mode 100644 index 0000000000..b6d3fefd11 --- /dev/null +++ b/charts/docs/deploy-using-helm.md @@ -0,0 +1,75 @@ +# Deploy using Helm + +The `android-patterns` Helm chart can be used to deploy the `android-patterns` application. The chart will deploy the following resources: + +- ServiceAccount +- Service +- Deployment + +## Prerequisites + +- [Helm 3](https://v3.helm.sh/) + +If you are using the [VS Code Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) based development +environment, all of the prerequisites will be available in the terminal. + +## Configuration and installation + +The following table lists the configuration parameters of the android-patterns chart, and their default values. + +| Parameter | Type | Default | Description | +| --------- | ---- | ------- | ----------- | +| `message` | `string` | `""` | A custom message to display instead of the default. | +| `ingress.configured` | `bool` | `false` | Indicates whether an ingress has been configured in the cluster.
Note: this chart will not install or configure an ingress. You will need to install an ingress controller and add ingress record to the app namespace. | +| `ingress.rewritePath` | `bool` | `true` | Indicates whether pathPrefix is rewritten by the ingress.
If this is set to `true` then the android-patterns dynamic content and static assets will be served from `/`, otherwise, they will be served from `/$pathPrefix`. | +| `ingress.pathPrefix` | `string` | `""` | The path prefix configured in the ingress for the android-patterns service.
Must be provided when ingress is used. | +| `service.type` | `string` | `"LoadBalancer"` | The service type. | +| `service.port` | `int` | `80` | The port exposed by the service. | +| `deployment.replicaCount` | `int` | `2` | The number of replicas for the android-patterns deployment. | +| `deployment.container.image.repository` | `string` | `android-patterns` | The container image to run in the android-patterns pods. | +| `deployment.container.image.tag` | `string` | `""` | The container image tag. If not specified, the chart's appVersion is used. | +| `deployment.container.image.pullPolicy` | `string` | `"IfNotPresent"` | The pull policy for the container image. | +| `deployment.container.port` | `int` | `"8080"` | The port that android-patterns app listens on. | +| `deployment.nodeSelector` | `object` | `{"kubernetes.io/os":"linux", "kubernetes.io/arch":"amd64"}` | The node selector for the deployment. | +| `deployment.resources` | `object` | `{}` | The resource limits for the deployment. | +| `deployment.tolerations` | `object` | `[]` | The tolerations for the deployment. | +| `deployment.affinity` | `object` | `{}` | The affinity for the deployment. | + +### Installing the chart + +Ensure that you are in the chart directory in the repo, since the instructions reference a local helm chart. + +To install `android-patterns` via the Helm chart, use the following to: + +- create the webapp namespace if it doesn't exist +- deploy the chart located in the current folder into the webapp namespace +- create a Helm release named android-patterns + +```bash +$ helm install --create-namespace --namespace webapp android-patterns . +``` + +You can override the values for the configuration parameter defined in the table above, either directly in the `values.yaml` file, or via the `--set` switches. + +```bash +$ helm install --create-namespace --namespace webapp custom-message . --set message="I just deployed this on Kubernetes!" +``` + +### Upgrading the chart + +Ensure that you are in the chart directory in the repo, since the instructions reference a local helm chart. + +You can modify the `android-patterns` app by providing new values for the configuration parameter defined in the table above, either directly in the `values.yaml` +file, or via the `--set` switches. + +```bash +$ helm upgrade --namespace webapp custom-android-patterns . --set message="This is a different message" +``` + +### Uninstalling the chart + +You can uninstall the `android-patterns` app as follows: + +```bash +$ helm uninstall --namespace webapp custom-android-patterns +``` diff --git a/charts/docs/deploy-with-ingress.md b/charts/docs/deploy-with-ingress.md new file mode 100644 index 0000000000..dfea5f48ac --- /dev/null +++ b/charts/docs/deploy-with-ingress.md @@ -0,0 +1,104 @@ +# Deploy with ingress + +The `android-patterns` Helm chart can be used to deploy and configure the `android-patterns` application for use with an ingress controller. + +> **Note:** +> +> The `android-patterns` Helm chart does **not** deploy an [Ingress Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) and does **not** deploy the [Ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) definition. +> +> The chart aims to support deployment to as many platforms and providers as possible, so the choice of Ingress Controller and configuration of Ingress resource is left to the person deploying. + +## Prerequisites + +- [Helm 3](https://v3.helm.sh/) + +If you are using the [VS Code Remote Containers](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers) based development +environment, all of the prerequisites will be available in the terminal. + +## Install ingress controller + +Install an [Ingress Controller](https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/) that is available for your platform or provider. +Here is an example that uses the [Nginx Ingress Controller](https://kubernetes.github.io/ingress-nginx/deploy/) on a cloud provider: + +```bash +$ helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx + +$ helm install nginx-ingress ingress-nginx/ingress-nginx \ + --create-namespace --namespace ingress \ + --set controller.replicaCount=2 +``` + +## Use webapp with ingress + +### Deploy webapp instances + +Install two `android-patterns` instances that will be available via 2 different paths on the ingress. + +The `android-patterns` instance will display the default "Hello world!" message, and the `custom-android-patterns` instance will display a "This is my custom +message!" message. + +```bash +$ helm install --create-namespace --namespace webapp android-patterns . \ + --set ingress.configured=true --set ingress.pathPrefix=hello-world \ + --set service.type=ClusterIP + +$ helm install --create-namespace --namespace webapp custom-android-patterns . \ + --set ingress.configured=true --set ingress.pathPrefix=custom-message \ + --set service.type=ClusterIP \ + --set message="This is my custom message!" +``` + +### Deploy ingress definition + +The `android-patterns` Helm chart has a `ingress.rewritePath` configuration parameter that is `true` by default. When used together with +the `ingress.configured=true` configuration parameter, there is an assumption that the ingress being used supports path rewrites. See +the [Deploy using Helm](charts2/docs/deploy-using-helm.md) guidance for more details. + +So from our example, a request to `/android-patterns` should be rewritten to `/` before being passed to the `android-patterns` app instance. + +Create a file named `webapp-ingress.yaml` with the content below. This ingress definition will be serviced by the nginx ingress controller due to +the `kubernetes.io/ingress.class: nginx` annotation. It will also leverage the path rewrite capabilities of nginx via +the `nginx.ingress.kubernetes.io/rewrite-target: /$2` annotation. + +```yaml +# webapp-ingress.yaml +apiVersion: networking.k8s.io/v1beta1 +kind: Ingress +metadata: + name: webapp-ingress + annotations: + kubernetes.io/ingress.class: nginx + nginx.ingress.kubernetes.io/rewrite-target: /$2 +spec: + rules: + - http: + paths: + - backend: + serviceName: webapp-android-patterns + servicePort: 8000 + path: /hello-world(/|$)(.*) + - backend: + serviceName: webapp-custom-android-patterns + servicePort: 8000 + path: /custom-message(/|$)(.*) +``` + +Deploy the contents of the `webapp-ingress.yaml` into the same namespace as the two `android-patterns` apps. + +```bash +$ kubectl apply -n webapp -f webapp-ingress.yaml +``` + +### Browse + +You can browse to each of the `android-patterns` apps via the $INGRESS_CONTROLLER_IPADDRESS and each of the configured paths. So for our example at: + +- `$INGRESS_CONTROLLER_IPADDRESS/hello-world` - the `android-patterns` instance with the default "Hello world!" message +- `$INGRESS_CONTROLLER_IPADDRESS/custom-android-patterns` - the `custom-android-patterns` instance with the "This is my custom message!" message + +## Alternatives + +You can deploy the `android-patterns` app via the Helm chart with the `ingress.rewritePath=false` configuration parameter if you are deploying with an ingress +controller that does not support path rewrites. + +In this case, the `android-patterns` apps will serve dynamic content and static assets from the path defined by the `ingress.pathPrefix` configuration parameter. diff --git a/charts/templates/NOTES.txt b/charts/templates/NOTES.txt new file mode 100644 index 0000000000..b88fdcb2ee --- /dev/null +++ b/charts/templates/NOTES.txt @@ -0,0 +1,34 @@ + +Thank you for installing Android Patterns Docs! + +- The application has been deployed, but it could take a few minutes to be ready. + You can check the rollout using: + + kubectl rollout status deployment {{ include "backend-android-patterns.fullname" . }} + +- The Android Patterns Docs webapp are accessible through the landing page: +{{ if .Values.ingress.enabled }} +{{- range $host := .Values.ingress.hosts }} + {{- range .paths }} + http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ . }}/android-patterns/ + {{- end }} +{{- end }} + +{{- else if contains "NodePort" .Values.service.type }} + export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "backend-android-patterns.fullname" . }}) + export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}") + echo "http://$NODE_IP:$NODE_PORT/android-patterns/" + +{{- else if contains "LoadBalancer" .Values.service.type }} + NOTE: It may take a few minutes for the LoadBalancer IP to be available. + You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "backend-android-patterns.fullname" . }}' + export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "backend-android-patterns.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}") + echo "http://$SERVICE_IP:{{ .Values.service.port }}/android-patterns/" + +{{- else if contains "ClusterIP" .Values.service.type }} + kubectl --namespace {{ .Release.Namespace }} port-forward svc/{{ include "backend-android-patterns.fullname" . }} {{ .Values.service.port }} + kubectl port-forward $POD_NAME 8000:8000 + http://localhost:8000/android-patterns/ +{{- end }} + +Enjoy automation! diff --git a/charts/templates/_helpers.tpl b/charts/templates/_helpers.tpl new file mode 100644 index 0000000000..25609a5070 --- /dev/null +++ b/charts/templates/_helpers.tpl @@ -0,0 +1,77 @@ +{{/* vim: set filetype=mustache: */}} +{{/* +Expand the name of the chart. +*/}} +{{- define "backend-android-patterns.name" -}} +{{- default .Chart.Name .Values.general.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Expand the app version of the chart. +*/}} +{{- define "backend-android-patterns.appVersion" -}} +{{- default .Chart.AppVersion | trunc 33 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +*/}} +{{- define "backend-android-patterns.fullname" -}} +{{- if .Values.general.fullnameOverride }} +{{- .Values.general.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.general.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "backend-android-patterns.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "backend-android-patterns.selectorLabels" -}} +app.kubernetes.io/name: {{ include "backend-android-patterns.name" . }} +app.kubernetes.io/instance: {{ .Release.Name | lower | quote }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "backend-android-patterns.labels" -}} +helm.sh/chart: {{ include "backend-android-patterns.chart" . }} +{{ include "backend-android-patterns.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Create the name of the tls secret for secure port +*/}} +{{- define "backend-android-patterns.tlsSecretName" -}} +{{- $fullname := include "backend-android-patterns.name" . -}} +{{- default (printf "%s-tls" $fullname) .Values.tls.secretName -}} +{{- end }} + +{{/* +Create the name of the service account to use +*/}} +{{- define "backend-android-patterns.serviceAccountName" -}} +{{- if .Values.serviceAccount.create }} +{{- default (include "backend-android-patterns.fullname" .) .Values.serviceAccount.name }} +{{- else }} +{{- default "default" .Values.serviceAccount.name }} +{{- end }} +{{- end }} diff --git a/charts/templates/certificate.yaml b/charts/templates/certificate.yaml new file mode 100644 index 0000000000..aef286b114 --- /dev/null +++ b/charts/templates/certificate.yaml @@ -0,0 +1,17 @@ +{{- if .Values.certificate.create }} +{{- $fullName := include "backend-android-patterns.fullname" . -}} +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: {{ $fullName }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} +spec: + dnsNames: + {{- range .Values.certificate.dnsNames }} + - {{ . | quote }} + {{- end }} + secretName: {{ include "backend-android-patterns.tlsSecretName" . }} + issuerRef: + {{- .Values.certificate.issuerRef | toYaml | trimSuffix "\n" | nindent 4 }} +{{- end }} diff --git a/charts/templates/configmap.yaml b/charts/templates/configmap.yaml new file mode 100644 index 0000000000..441f04307c --- /dev/null +++ b/charts/templates/configmap.yaml @@ -0,0 +1,11 @@ +{{- $fullName := include "backend-android-patterns.fullname" . -}} +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ $fullName }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} +data: + DEBUG: {{ default "" .Values.configMaps.data.debug | quote }} + SERVER_PORT: {{ default "" .Values.configMaps.data.serverPort | quote }} + APP_NAME: {{ default "" .Values.configMaps.data.appName | quote }} diff --git a/charts/templates/deployment.yaml b/charts/templates/deployment.yaml new file mode 100644 index 0000000000..46e71cd5e5 --- /dev/null +++ b/charts/templates/deployment.yaml @@ -0,0 +1,148 @@ +{{- $fullName := include "backend-android-patterns.fullname" . -}} +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ $fullName }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.deployment.additionalLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + {{- if not .Values.hpa.enabled }} + replicas: {{ .Values.general.replicaCount }} + {{- end }} + strategy: + type: RollingUpdate + rollingUpdate: + maxUnavailable: 1 + selector: + matchLabels: + {{- include "backend-android-patterns.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "backend-android-patterns.selectorLabels" . | nindent 8 }} + annotations: + {{- range $key, $value := .Values.deployment.podAnnotations }} + {{ $key }}: {{ $value | quote }} + {{- end }} + spec: + {{- with .Values.image.pullSecrets }} + imagePullSecrets: + {{- toYaml . | nindent 8 }} + {{- end }} + terminationGracePeriodSeconds: 30 + {{- if .Values.serviceAccount.enabled }} + serviceAccountName: {{ include "backend-android-patterns.serviceAccountName" . }} + {{- end }} + securityContext: + {{- toYaml .Values.podSecurityContext | nindent 8 }} + containers: + - name: {{ .Chart.Name }} + image: "{{ .Values.deployment.container.image.repository }}:{{ .Values.deployment.container.image.tag | default .Chart.AppVersion }}" + imagePullPolicy: {{ .Values.deployment.container.image.pullPolicy }} + {{ if .Values.image.command -}} + command: {{ .Values.image.command }} + {{- end }} + {{ if .Values.image.args -}} + args: {{ .Values.image.args }} + {{- end }} + {{- if .Values.securityContext }} + securityContext: + {{- toYaml .Values.securityContext | nindent 12 }} + {{- else if (or .Values.service.hostPort .Values.tls.hostPort) }} + securityContext: + allowPrivilegeEscalation: true + capabilities: + drop: + - ALL + add: + - NET_BIND_SERVICE + {{- end }} + ports: + - name: http + containerPort: {{ .Values.service.httpPort | default 8000 }} + protocol: TCP + {{- if .Values.service.hostPort }} + hostPort: {{ .Values.service.hostPort }} + {{- end }} + {{- if .Values.tls.enabled }} + - name: https + containerPort: {{ .Values.tls.externalPort | default 8443 }} + protocol: TCP + {{- if .Values.tls.hostPort }} + hostPort: {{ .Values.tls.hostPort }} + {{- end }} + {{- end }} + env: + {{- if ne (.Values.deployment.container.port | int) (8000 | int) }} + - name: PORT + value: "{{ .Values.deployment.container.port }}" + {{- end }} + {{- if .Values.message }} + - name: MESSAGE + value: "{{ .Values.message }}" + {{- end }} + {{- if .Values.ingress.configured }} + - name: HANDLER_PATH_PREFIX + {{- if .Values.ingress.rewritePath }} + value: "" + {{- else }} + value: "{{ .Values.ingress.pathPrefix }}" + {{- end }} + - name: RENDER_PATH_PREFIX + value: "{{ .Values.ingress.pathPrefix }}" + {{- end }} + - name: KUBERNETES_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: KUBERNETES_POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: KUBERNETES_NODE_NAME + valueFrom: + fieldRef: + fieldPath: spec.nodeName + - name: CONTAINER_IMAGE + value: "{{ .Values.deployment.container.image.repository }}:{{ .Values.deployment.container.image.tag | default .Chart.AppVersion }}" + volumeMounts: + - name: data + mountPath: /data + {{- if .Values.tls.enabled }} + - name: tls + mountPath: {{ .Values.tls.certPath | default "/data/cert" }} + readOnly: true + {{- end }} + {{ if .Values.deployment.livenessProbe.enabled -}} + livenessProbe: + {{- toYaml .Values.deployment.livenessProbe.config | nindent 12 }} + {{- end }} + {{ if .Values.deployment.readinessProbe.enabled -}} + readinessProbe: + {{- toYaml .Values.deployment.readinessProbe.config | nindent 12 }} + {{- end }} + resources: + {{- toYaml .Values.deployment.resources | nindent 12 }} + {{- with .Values.deployment.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.deployment.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.deployment.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: + - name: data + emptyDir: { } + {{- if .Values.tls.enabled }} + - name: tls + secret: + secretName: {{ include "backend-android-patterns.tlsSecretName" . }} + {{- end }} diff --git a/charts/templates/hpa.yaml b/charts/templates/hpa.yaml new file mode 100644 index 0000000000..b4ecd538e6 --- /dev/null +++ b/charts/templates/hpa.yaml @@ -0,0 +1,41 @@ +{{- if .Values.hpa.enabled }} +apiVersion: autoscaling/v2beta2 +kind: HorizontalPodAutoscaler +metadata: + name: {{ include "backend-android-patterns.fullname" . }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: {{ include "backend-android-patterns.fullname" . }} + minReplicas: {{ .Values.hpa.minReplicas }} + maxReplicas: {{ .Values.hpa.maxReplicas }} + metrics: + {{- if .Values.hpa.cpu }} + - type: Resource + resource: + name: cpu + target: + type: Utilization + averageUtilization: {{ .Values.hpa.cpu }} + {{- end }} + {{- if .Values.hpa.memory }} + - type: Resource + resource: + name: memory + target: + type: AverageValue + averageValue: {{ .Values.hpa.memory }} + {{- end }} + {{- if .Values.hpa.requests }} + - type: Pods + pods: + metric: + name: http_requests + target: + type: AverageValue + averageValue: {{ .Values.hpa.requests }} + {{- end }} +{{- end }} diff --git a/charts/templates/ingress.yaml b/charts/templates/ingress.yaml new file mode 100644 index 0000000000..34b6763f98 --- /dev/null +++ b/charts/templates/ingress.yaml @@ -0,0 +1,43 @@ +{{- if .Values.ingress.enabled }} +{{- $fullName := include "backend-android-patterns.fullname" . -}} +{{- $svcPort := .Values.service.externalPort -}} +{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}} +apiVersion: networking.k8s.io/v1beta1 +{{- else -}} +apiVersion: extensions/v1beta1 +{{- end }} +kind: Ingress +metadata: + name: {{ $fullName }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.ingress.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + ingressClassName: {{ .Values.ingress.className }} + {{- if .Values.ingress.tls }} + tls: + {{- range .Values.ingress.tls }} + - hosts: + {{- range .hosts }} + - {{ . | quote }} + {{- end }} + secretName: {{ .secretName }} + {{- end }} + {{- end }} + rules: + {{- range .Values.ingress.hosts }} + - host: {{ .host | quote }} + http: + paths: + {{- range .paths }} + - path: {{ .path }} + pathType: {{ .pathType }} + backend: + serviceName: {{ $fullName }} + servicePort: {{ $svcPort }} + {{- end }} + {{- end }} + {{- end }} diff --git a/charts/templates/linkerd.yaml b/charts/templates/linkerd.yaml new file mode 100644 index 0000000000..b35ce78619 --- /dev/null +++ b/charts/templates/linkerd.yaml @@ -0,0 +1,14 @@ +{{- if .Values.linkerd.profile.enabled }} +apiVersion: linkerd.io/v1alpha2 +kind: ServiceProfile +metadata: + name: {{ include "backend-android-patterns.name" . }}.{{ .Release.Namespace }}.svc.cluster.local + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} +spec: + routes: + - condition: + method: GET + pathRegex: / + name: GET / +{{- end }} diff --git a/charts/templates/secret.yaml b/charts/templates/secret.yaml new file mode 100644 index 0000000000..905f297c6a --- /dev/null +++ b/charts/templates/secret.yaml @@ -0,0 +1,18 @@ +{{- if .Values.secrets.create }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "backend-android-patterns.fullname" . }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.secrets.additionalLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +data: + BASE_URL: {{ default "" .Values.secrets.data.baseUrl | b64enc | quote }} + {{- if .Values.secrets.data.baseToken }} + BASE_TOKEN: {{ .Values.secrets.data.baseToken | b64enc | quote }} + {{- else }} + BASE_TOKEN: {{ randAlphaNum 10 | b64enc | quote }} + {{- end }} +{{- end }} diff --git a/charts/templates/service.yaml b/charts/templates/service.yaml new file mode 100644 index 0000000000..031d197340 --- /dev/null +++ b/charts/templates/service.yaml @@ -0,0 +1,30 @@ +{{- if .Values.service.enabled }} +apiVersion: v1 +kind: Service +metadata: + name: {{ include "backend-android-patterns.fullname" . }} + labels: + {{ include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.service.annotations }} + annotations: + {{- toYaml . | indent 4 }} + {{- end }} +spec: + type: {{ .Values.service.type }} + ports: + - port: {{ .Values.service.externalPort }} + targetPort: http + protocol: TCP + name: http + {{- if (and (eq .Values.service.type "NodePort") (not (empty .Values.service.nodePort))) }} + nodePort: {{ .Values.service.nodePort }} + {{- end }} + {{- if .Values.tls.enabled }} + - port: {{ .Values.tls.httpPort | default 8000 }} + targetPort: https + protocol: TCP + name: https + {{- end }} + selector: + {{- include "backend-android-patterns.selectorLabels" . | nindent 4 }} +{{- end }} diff --git a/charts/templates/serviceaccount.yaml b/charts/templates/serviceaccount.yaml new file mode 100644 index 0000000000..960ab7ca27 --- /dev/null +++ b/charts/templates/serviceaccount.yaml @@ -0,0 +1,12 @@ +{{- if .Values.serviceAccount.create -}} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "backend-android-patterns.serviceAccountName" . }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +{{- end }} diff --git a/charts/templates/servicemonitor.yaml b/charts/templates/servicemonitor.yaml new file mode 100644 index 0000000000..7f5e7a8094 --- /dev/null +++ b/charts/templates/servicemonitor.yaml @@ -0,0 +1,22 @@ +{{- if .Values.serviceMonitor.enabled }} +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "backend-android-patterns.fullname" . }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.serviceMonitor.additionalLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + endpoints: + - path: /metrics + port: http + interval: {{ .Values.serviceMonitor.interval }} + namespaceSelector: + matchNames: + - {{ .Release.Namespace }} + selector: + matchLabels: + {{- include "backend-android-patterns.selectorLabels" . | nindent 6 }} +{{- end }} diff --git a/charts/templates/tests/test-connection.yaml b/charts/templates/tests/test-connection.yaml new file mode 100644 index 0000000000..75ce78efb6 --- /dev/null +++ b/charts/templates/tests/test-connection.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Pod +metadata: + name: "{{ include "backend-android-patterns.fullname" . }}-test-connection" + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + annotations: + "helm.sh/hook": test +spec: + containers: + - name: curl + image: curlimages/curl + command: ['curl'] + args: [ + '--retry-connrefused', + '--connect-timeout', '5', + '--max-time', '10', + '--retry', '15', + '--retry-max-time', '300', + '{{ include "backend-android-patterns.fullname" . }}:{{ .Values.service.port }}', + ] + restartPolicy: Never diff --git a/charts/templates/virtualservice.yaml b/charts/templates/virtualservice.yaml new file mode 100644 index 0000000000..641f266b14 --- /dev/null +++ b/charts/templates/virtualservice.yaml @@ -0,0 +1,44 @@ +{{- if .Values.virtualservice.enabled -}} +{{- $fullName := include "backend-android-patterns.fullname" . -}} +{{- $svcPort := .Values.service.port -}} +{{- $svcHost := .Values.virtualservice.serviceHost -}} +apiVersion: networking.istio.io/v1beta1 +kind: VirtualService +metadata: + name: {{ $fullName }} + labels: + {{- include "backend-android-patterns.labels" . | nindent 4 }} + {{- with .Values.virtualservice.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + exportTo: + - '*' + {{- range .Values.virtualservice.hosts }} + hosts: + - {{ .host | quote }} + gateways: + - istio-system/gateway + http: + {{- range .names }} + - name: {{ .name | quote }} + match: + {{- range .uris }} + - uri: + prefix: {{ .prefix | quote }} + - uri: + exact: {{ .exact | quote }} + {{- end }} + {{- range .rewrites }} + rewrite: + uri: {{ . | quote }} + {{- end }} + route: + - destination: + host: {{ $svcHost }} + port: + number: {{ $svcPort }} + {{- end }} +{{- end }} +{{- end }} diff --git a/charts/values.yaml b/charts/values.yaml new file mode 100644 index 0000000000..c9e384a36e --- /dev/null +++ b/charts/values.yaml @@ -0,0 +1,222 @@ +# Provide a custom message +message: "" + +general: + debug: false + replicaCount: 1 + nameOverride: "" + fullnameOverride: "" + logLevel: info + host: #0.0.0.0 + backend: #http://backend-podinfo:9898/echo + backends: [] + +image: + repository: styled-android-patterns + tag: latest + pullPolicy: IfNotPresent + pullSecrets: {} + # command: ['./run.sh'] + # args: [] + +podSecurityContext: + fsGroup: 1000 + +configMaps: + create: false + data: + debug: info + serverPort: "8000" + appName: "styled-android-patterns" + +secrets: + create: false + additionalLabels: + app.kubernetes.io/component: vault + data: + baseUrl: "" + baseToken: "" + +ui: + color: "#34577c" + message: "" + logo: "" + +# failure conditions +faults: + delay: false + error: false + unhealthy: false + unready: false + testFail: false + testTimeout: false + +service: + enabled: true + annotations: {} + type: ClusterIP +# port: 8193 +# portName: http + httpPort: 8000 + externalPort: 8000 + nodePort: 8000 + # the port used to bind the http port to the host + # NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing + # in local clusters such as kind without port forwarding + hostPort: + +# enable h2c protocol (non-TLS version of HTTP/2) +h2c: + enabled: false + +# enable tls on the podinfo service +tls: + enabled: false + # the name of the secret used to mount the certificate key pair + secretName: + # the path where the certificate key pair will be mounted + certPath: /data/cert + # the port used to host the tls endpoint on the service + httpPort: 8000 + externalPort: 8000 + # the port used to bind the tls port to the host + # NOTE: requires privileged container with NET_BIND_SERVICE capability -- this is useful for testing + # in local clusters such as kind without port forwarding + hostPort: + +# create a certificate manager certificate (cert-manager required) +certificate: + create: false + # the issuer used to issue the certificate + issuerRef: + kind: ClusterIssuer + name: self-signed + # the hostname / subject alternative names for the certificate + dnsNames: + - localhost + +# metrics-server add-on required +hpa: + enabled: true + minReplicas: 2 + maxReplicas: 10 + targetCPUUtilizationPercentage: 80 + targetMemoryUtilizationPercentage: 80 + # average total CPU usage per pod (1-100) + cpu: + # average memory usage per pod (100Mi-1Gi) + memory: + # average http requests per second per pod (k8s-prometheus-adapter) + requests: + +serviceAccount: + enabled: false + # Specifies whether a service account should be created + create: true + # Annotations to add to the service account + annotations: {} + # The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + name: "" + +# set container security context +securityContext: {} + # capabilities: + # drop: + # - ALL + # readOnlyRootFilesystem: true + # runAsNonRoot: true + # runAsUser: 1000 + +# Remember to set service.type=ClusterIP if you are using an ingress +ingress: + enabled: false + className: "" + annotations: {} + # kubernetes.io/ingress.class: nginx + # kubernetes.io/tls-acme: "true" + configured: false + rewritePath: true + pathPrefix: "" + hosts: + - host: podinfo.local + paths: + - path: / + pathType: ImplementationSpecific + tls: [] + # - secretName: chart-example-tls + # hosts: + # - chart-example.local + +linkerd: + profile: + enabled: false + +# create Prometheus Operator monitor +serviceMonitor: + enabled: false + interval: 15s + additionalLabels: {} + +virtualservice: + enabled: false + annotations: [] + hosts: + - host: "" + names: [] + uris: {} + rewrites: [] + serviceHost: "" + +resources: + limits: + cpu: 500m + memory: 1024Mi + requests: + cpu: 100m + memory: 512Mi + +deployment: + replicaCount: 2 + container: + image: + repository: "styled-android-patterns" + tag: "latest" # uses chart appVersion if not provided + pullPolicy: IfNotPresent + port: 8000 + + resources: + limits: + requests: + cpu: 1m + memory: 16Mi + + # An arbitrary use of livenessProbe could make a lot of service interruption, use it wisely. + livenessProbe: + enabled: false + config: + httpGet: + path: /actuator/health + port: http + initialDelaySeconds: 210 + periodSeconds: 60 + + readinessProbe: + enabled: false + config: + httpGet: + path: /actuator/health + port: http + initialDelaySeconds: 180 + periodSeconds: 60 + + # Currently only linux images on amd64 architecture are supported - support for arm64 and windows/amd64 coming ... + nodeSelector: {} +# kubernetes.io/os: linux +# kubernetes.io/arch: amd64 + + tolerations: [] + + affinity: {} + + podAnnotations: {} diff --git a/codespell.txt b/codespell.txt new file mode 100644 index 0000000000..5a95200ed4 --- /dev/null +++ b/codespell.txt @@ -0,0 +1 @@ +arbitrer diff --git a/config/config.yml b/config/config.yml new file mode 100644 index 0000000000..2c145c62dc --- /dev/null +++ b/config/config.yml @@ -0,0 +1,15 @@ +rootURL: https://github.com/AlexRogalskiy/android-patterns + +fileIncludePatterns: '{.github,content,src}/**/*!(.test).{css,js,jsx,md,tsx,ts,json}' + +fileExcludePatternFile: ./config/excluded-files.yml +linkExcludePatternFile: ./config/excluded-links.yml + +linkOptions: + '*.wikipedia.org': + minTime: 2000 + maxConcurrent: 1 + + '(*.)?github.com': + minTime: 1000 + maxConcurrent: 1 diff --git a/config/excluded-files.yml b/config/excluded-files.yml new file mode 100644 index 0000000000..eb065074ae --- /dev/null +++ b/config/excluded-files.yml @@ -0,0 +1,4 @@ +- 'src/consts.js' +- '**/*.test.js' +- 'src/server/**/*' +- '.github/workflows/**/*' diff --git a/config/excluded-links.yml b/config/excluded-links.yml new file mode 100644 index 0000000000..997bcb42be --- /dev/null +++ b/config/excluded-links.yml @@ -0,0 +1,19 @@ +- 'http://localhost:8000**' +- 'http://millionsongdataset.com/pages/getting-dataset/#subset' +- 'https://marketplace.visualstudio.com/items?itemName=stkb.rewrap' +- 'https://marketplace.visualstudio.com/items?itemName=redhat.vscode-yaml' +- 'https://remote.dvc.org/get-started' +- 'https://sweedom.us10.list-manage.com/subscribe/post?u=a08bf93caae4063c4e6a351f6&id=24c0ecc49a' +- 'https://www.meetup.com/San-Francisco-Machine-Learning-Meetup/events/264846847/' +- 'https://www.reddit.com/r/MachineLearning/comments/bx0apm/d_how_do_you_manage_your_machine_learning/' +- 'https://www.amazon.com/DevOps-Handbook-World-Class-Reliability-Organizations-ebook/dp/B01M9ASFQ3' +- '**linkedin.com/in/**' +- '**linkedin.com/company/**' +- 'link' +- '/img/.gif' +- '/uploads/images/2020-02-10/image.png' +- 'https://portal.aws.amazon.com/gp/aws/developer/registration/index.html' +- 'https://github.com/iterative/dvc/releases/download/' +- 'https://www.kaggle.com/kurianbenoy/introduction-to-data-version-control-dvc' +- 'https://timheuer.com/blog/skipping-ci-github-actions-workflows/' +- 'https://www.zazzle.com/t_shirt-235920696568133954' diff --git a/cr.yaml b/cr.yaml new file mode 100644 index 0000000000..3b20d542d8 --- /dev/null +++ b/cr.yaml @@ -0,0 +1,4 @@ +# Set to true for GPG signing +sign: true +# UID of the GPG key to use +key: Chart Releaser Test Key diff --git a/ct.yaml b/ct.yaml new file mode 100644 index 0000000000..ca30461ddd --- /dev/null +++ b/ct.yaml @@ -0,0 +1,8 @@ +# See https://github.com/helm/chart-testing#configuration +remote: origin +target-branch: master +chart-dirs: + - charts +chart-repos: + - https://github.com/AlexRogalskiy/android-patterns +helm-extra-args: --timeout 600s diff --git a/default_rules.yaml b/default_rules.yaml new file mode 100644 index 0000000000..8ec28218dc --- /dev/null +++ b/default_rules.yaml @@ -0,0 +1,226 @@ +--- +profile: + name: 'Default' + description: 'Default Profile. Checks basic syntax.' + includes: + #- recommended_label_rules.yaml +line_rules: + LABEL: + paramSyntaxRegex: /.+/ + # Use defined_label_rules to defined a set of labels for your dockerfile + # In this example, the labels "Vendor","Authoritative_Registry","BZComponent" + # have been defined. A label value is 'valid' if matches the regular + # expression 'valueRegex', otherwise an warn is logged with the string "message" + # at level 'level'. 'reference_url' provides a web link where the user can + # get more information about the rule. + # + defined_namevals: + Name: + valueRegex: /[\w]+/ + message: "Label 'Name' is missing or has invalid format" + level: 'warn' + required: true + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + Version: + valueRegex: /[\w.${}()"'\\\/~<>\-?\%:]+/ + message: "Label 'Version' is missing or has invalid format" + level: 'warn' + required: true + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + Release: + valueRegex: /[\w.${}()"'\\\/~<>\-?\%:]+/ + message: "Label 'Release' is missing or has invalid format" + level: 'warn' + required: false + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + Architecture: + valueRegex: /[\w]*[6,8][4,6]|[.]*86[.]*64/ + message: + "Label 'Architecture' is missing or has invalid format: x86, i386, + x86_64" + level: 'info' + required: false + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + Vendor: + valueRegex: /([\w]+).+/ + message: "Label 'Vendor' is missing or has invalid format" + level: 'warn' + required: false + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + Url: + valueRegex: /([\w]+).+/ + message: "Label 'Url' is missing or has invalid format" + level: 'warn' + required: false + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + Help: + valueRegex: /([\w]+).+/ + message: "Label 'Help' is missing or has invalid format" + level: 'warn' + required: false + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_recommended_labels_for_your_project' + + FROM: + paramSyntaxRegex: /^[${}\w./\-:]+(:[${}\w.]+)?(-[${}\w.]+)?( as [-_\w]+)?$/i + rules: + - label: 'is_latest_tag' + regex: /latest/ + level: 'error' + message: "base image uses 'latest' tag" + description: + "using the 'latest' tag may cause unpredictable builds. It is + recommended that a specific tag is used in the FROM line or *-released + which is the latest supported release." + reference_url: + - 'https://docs.docker.com/engine/reference/builder/' + - '#from' + - label: 'no_tag' + regex: /^[:]/ + level: 'error' + message: 'No tag is used' + description: 'lorem ipsum tar' + reference_url: + - 'https://docs.docker.com/engine/reference/builder/' + - '#from' + MAINTAINER: + paramSyntaxRegex: /.+/ + rules: [] + RUN: + paramSyntaxRegex: /.+/ + rules: + - label: 'no_yum_clean_all' + regex: /yum(?!.+clean all|.+\.repo|-config|\.conf)/ + level: 'warn' + message: 'yum clean all is not used' + description: + 'the yum cache will remain in this layer making the layer + unnecessarily large' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_clear_packaging_caches_and_temporary_package_downloads' + - label: 'yum_update_all' + regex: /yum(.+update all|.+upgrade|.+update)/ + level: 'info' + message: + 'updating the entire base image may add unnecessary size to the + container' + description: + 'update the entire base image may add unnecessary size to the + container' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_clear_packaging_caches_and_temporary_package_downloads' + - label: 'no_dnf_clean_all' + regex: /dnf(?!.+clean all|.+\.repo)/g + level: 'warn' + message: 'dnf clean all is not used' + description: + 'the dnf cache will remain in this layer making the layer + unnecessarily large' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_clear_packaging_caches_and_temporary_package_downloads' + - label: 'no_rvm_cleanup_all' + regex: /rvm install(?!.+cleanup all)/g + level: 'warn' + message: 'rvm cleanup is not used' + description: + 'the rvm cache will remain in this layer making the layer + unnecessarily large' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_clear_packaging_caches_and_temporary_package_downloads' + - label: 'no_gem_clean_all' + regex: /gem install(?!.+cleanup|.+\rvm cleanup all)/g + level: 'warn' + message: 'gem cleanup all is not used' + description: + 'the gem cache will remain in this layer making the layer + unnecessarily large' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_clear_packaging_caches_and_temporary_package_downloads' + - label: 'no_apt-get_clean' + regex: /apt-get install(?!.+clean)/g + level: 'info' + message: 'apt-get clean is not used' + description: + 'the apt-get cache will remain in this layer making the layer + unnecessarily large' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '_clear_packaging_caches_and_temporary_package_downloads' + - label: 'privileged_run_container' + regex: /privileged/ + level: 'warn' + message: 'a privileged run container is allowed access to host devices' + description: 'Does this run need to be privileged?' + reference_url: + - 'http://docs.docker.com/engine/reference/run/#' + - 'runtime-privilege-and-linux-capabilities' + - label: 'installing_ssh' + regex: /openssh-server/ + level: 'warn' + message: 'installing SSH in a container is not recommended' + description: 'Do you really need SSH in this image?' + reference_url: 'https://github.com/jpetazzo/nsenter' + - label: 'no_ampersand_usage' + regex: / ; / + level: 'info' + message: 'using ; instead of &&' + description: + 'RUN do_1 && do_2: The ampersands change the resulting evaluation into + do_1 and then do_2 only if do_1 was successful.' + reference_url: + - 'http://docs.projectatomic.io/container-best-practices/#' + - '#_using_semi_colons_vs_double_ampersands' + EXPOSE: + paramSyntaxRegex: /^[\d-\s\w/\\]+$/ + rules: [] + ENV: + paramSyntaxRegex: /^[\w-$/\\=\"[\]{}@:,'`\t. ]+$/ + rules: [] + ADD: + paramSyntaxRegex: /^~?([\w-.~:/?#\[\]\\\/*@!$&'()*+,;=.{}"]+[\s]*)+$/ + COPY: + paramSyntaxRegex: /.+/ + rules: [] + ENTRYPOINT: + paramSyntaxRegex: /.+/ + rules: [] + VOLUME: + paramSyntaxRegex: /.+/ + rules: [] + USER: + paramSyntaxRegex: /^[a-zA-Z0-9_$][a-zA-Z0-9_-]{0,40}$/ + rules: [] + WORKDIR: + paramSyntaxRegex: /^~?[\w\d-\/.{}$\/:]+[\s]*$/ + rules: [] + ONBUILD: + paramSyntaxRegex: /.+/ + rules: [] +required_instructions: + - instruction: 'EXPOSE' + count: 1 + level: 'info' + message: "There is no 'EXPOSE' instruction" + description: + 'Without exposed ports how will the service of the container be accessed?' + reference_url: + - 'https://docs.docker.com/engine/reference/builder/' + - '#expose' diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000000..8ffc15a81d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,91 @@ +version: '3.9' + +x-deploy: &deploy-template + deploy: + mode: global + +x-restart-deploy: &restart-deploy-template + <<: *deploy-template + deploy: + restart_policy: + condition: on-failure + max_attempts: 3 + delay: 5s + window: 120s + +x-replica-deploy: &replica-deploy-template + <<: *deploy-template + deploy: + mode: replicated + replicas: 2 + update_config: + parallelism: 2 + delay: 10s + order: stop-first + resources: + limits: + cpus: '0.5' + memory: 1000M + reservations: + memory: 250M + +x-logging: &logging-template + logging: + options: + max-size: '100m' + max-file: '10' + +x-restart: &restart-template + restart: unless-stopped + +services: + app: + <<: *deploy-template + <<: *logging-template + <<: *restart-template + container_name: ${APP_CONTAINER_NAME:-'android-patterns'} + image: ${APP_IMAGE_NAME:-'android-patterns'} + hostname: ${APP_HOST_NAME:-'android-patterns'} + build: + context: './' + dockerfile: Dockerfile + labels: + - 'org.opencontainers.image.authors=Alexander Rogalskiy' + - 'org.opencontainers.image.vendor=Sensiblemetrics, Inc.' + args: + IMAGE_SOURCE: '$IMAGE_SOURCE' + IMAGE_TAG: '$IMAGE_TAG' + env_file: + - .env + volumes: + - type: volume + source: appvolume + target: /usr/src/app + volume: + nocopy: true + - type: bind + source: ${APP_DATA_DIR:-./data} + target: /usr/src/data + healthcheck: + test: ['CMD-SHELL', 'nc', '-vz', 'localhost', '8000'] + interval: 3s + retries: 15 + start_period: 30s + networks: + - default + ports: + - '${IP_ADDRESS:-127.0.0.1}:${APP_SERVER_PORT:-8000}:8000' + +networks: + default: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + +volumes: + appvolume: + driver: local + driver_opts: + o: bind + type: none + device: ./ diff --git a/docs/README.md b/docs/README.md index f74cd0ba93..24be635cb3 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,9 +1,9 @@ # Getting Started -## _Installation_ +## *Installation* -For full documentation visit [https://docs.gitbook.com/](https://docs.gitbook.com/). +For full documentation visit . -## _Description_ +## *Description* -With the help of _**GitBook**_ you can create and develop documentation on Android Design patterns. \ No newline at end of file +With the help of ***GitBook*** you can create and develop documentation on Android Design patterns. diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index 1bc2aa438f..2f3543113d 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -1,20 +1,20 @@ # Table of contents -* [Getting Started](README.md) -* [Contributing](contributing/README.md) - * [Contributing](contributing/info.md) -* [User Guide](user-guide/README.md) - * [Upgrading](user-guide/upgrade.md) - * [Troubleshooting](user-guide/troubleshooting.md) - * [Getting Started](user-guide/getting-started.md) - * [FAQ](user-guide/faq.md) - * [Changelog](user-guide/changelog.md) - * [Code Owners](user-guide/code_owners.md) - * [Code of Conduct](user-guide/code_of_conduct.md) - * [Dependency Management](user-guide/dependency.md) -* [Links](links/README.md) - * [Resources](links/info.md) -* [Units](units/README.md) - * [Scenarios](units/scenarios.md) - * [Use Cases](units/use-cases.md) - * [Design Patterns](units/design-patterns.md) \ No newline at end of file +- [Getting Started](README.md) +- [Contributing](contributing/README.md) + - [Contributing](contributing/info.md) +- [User Guide](user-guide/README.md) + - [Upgrading](user-guide/upgrade.md) + - [Troubleshooting](user-guide/troubleshooting.md) + - [Getting Started](user-guide/getting-started.md) + - [FAQ](user-guide/faq.md) + - [Changelog](user-guide/changelog.md) + - [Code Owners](user-guide/code_owners.md) + - [Code of Conduct](user-guide/code_of_conduct.md) + - [Dependency Management](user-guide/dependency.md) +- [Links](links/README.md) + - [Resources](links/info.md) +- [Units](units/README.md) + - [Scenarios](units/scenarios.md) + - [Use Cases](units/use-cases.md) + - [Design Patterns](units/design-patterns.md) diff --git a/docs/_config.yml b/docs/_config.yml index 34c0db1af6..7b70a7ded4 100644 --- a/docs/_config.yml +++ b/docs/_config.yml @@ -4,7 +4,9 @@ permalink: pretty baseurl: https://github.com/AlexRogalskiy/android-patterns title: Android Design Patterns -description: Explores different architectural concepts and design principles for Android applications +description: + Explores different architectural concepts and design principles for Android + applications author: Alexander Rogalskiy diff --git a/docs/articles/default.md.tpl b/docs/articles/default.md.tpl new file mode 100644 index 0000000000..9671b77766 --- /dev/null +++ b/docs/articles/default.md.tpl @@ -0,0 +1,13 @@ +--- +title: string # `Required` +published: true/false # `Required` but 'false' by default +description: string # `Optional` +tags: string # `Optional` multiple tags separated by comma (typescript, javascript, github) +series: string # `Optional` +cover_image: string # `Optional` url to image +canonical_url: string # `Optional` url +--- + +First Post with **TheActionDev** ๐Ÿคฉ + +{% github ful1e5/TheActionDev %} \ No newline at end of file diff --git a/docs/assets/css/asciinema-player.css b/docs/assets/css/asciinema-player.css new file mode 100644 index 0000000000..00e9c95d3a --- /dev/null +++ b/docs/assets/css/asciinema-player.css @@ -0,0 +1,3330 @@ +.asciinema-player-wrapper { + position: relative; + text-align: center; + outline: none; +} + +.asciinema-player-wrapper .title-bar { + display: none; + top: -78px; + transition: top 0.15s linear; + position: absolute; + left: 0; + right: 0; + box-sizing: content-box; + font-size: 20px; + line-height: 1em; + padding: 15px; + font-family: sans-serif; + color: white; + background-color: rgba(0, 0, 0, 0.8); +} + +.asciinema-player-wrapper .title-bar img { + vertical-align: middle; + height: 48px; + margin-right: 16px; +} + +.asciinema-player-wrapper .title-bar a { + color: white; + text-decoration: underline; +} + +.asciinema-player-wrapper .title-bar a:hover { + text-decoration: none; +} + +.asciinema-player-wrapper:fullscreen { + background-color: #000; + width: 100%; + height: 100%; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-justify-content: center; + justify-content: center; + -webkit-align-items: center; + align-items: center; +} + +.asciinema-player-wrapper:fullscreen .asciinema-player { + position: static; +} + +.asciinema-player-wrapper:fullscreen .title-bar { + display: initial; +} + +.asciinema-player-wrapper:fullscreen.hud .title-bar { + top: 0; +} + +.asciinema-player-wrapper:-webkit-full-screen { + background-color: #000; + width: 100%; + height: 100%; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-justify-content: center; + justify-content: center; + -webkit-align-items: center; + align-items: center; +} + +.asciinema-player-wrapper:-webkit-full-screen .asciinema-player { + position: static; +} + +.asciinema-player-wrapper:-webkit-full-screen .title-bar { + display: initial; +} + +.asciinema-player-wrapper:-webkit-full-screen.hud .title-bar { + top: 0; +} + +.asciinema-player-wrapper:-moz-full-screen { + background-color: #000; + width: 100%; + height: 100%; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-justify-content: center; + justify-content: center; + -webkit-align-items: center; + align-items: center; +} + +.asciinema-player-wrapper:-moz-full-screen .asciinema-player { + position: static; +} + +.asciinema-player-wrapper:-moz-full-screen .title-bar { + display: initial; +} + +.asciinema-player-wrapper:-moz-full-screen.hud .title-bar { + top: 0; +} + +.asciinema-player-wrapper:-ms-fullscreen { + background-color: #000; + width: 100%; + height: 100%; + display: -webkit-flex; + display: -ms-flexbox; + display: flex; + -webkit-justify-content: center; + justify-content: center; + -webkit-align-items: center; + align-items: center; +} + +.asciinema-player-wrapper:-ms-fullscreen .asciinema-player { + position: static; +} + +.asciinema-player-wrapper:-ms-fullscreen .title-bar { + display: initial; +} + +.asciinema-player-wrapper:-ms-fullscreen.hud .title-bar { + top: 0; +} + +.asciinema-player-wrapper .asciinema-player { + text-align: left; + display: inline-block; + padding: 0px; + position: relative; + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + overflow: hidden; + max-width: 100%; +} + +.asciinema-terminal { + box-sizing: content-box; + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; + overflow: hidden; + padding: 0; + margin: 0px; + display: block; + white-space: pre; + border: 0; + word-wrap: normal; + word-break: normal; + border-radius: 0; + border-style: solid; + cursor: text; + border-width: 0.5em; + font-family: Consolas, Menlo, 'Bitstream Vera Sans Mono', monospace, 'Powerline Symbols'; + line-height: 1.3333333333em; +} + +.asciinema-terminal .line { + letter-spacing: normal; + overflow: hidden; + height: 1.3333333333em; +} + +.asciinema-terminal .line span { + padding: 0; + display: inline-block; + height: 1.3333333333em; +} + +.asciinema-terminal .line { + display: block; + width: 200%; +} + +.asciinema-terminal .bright { + font-weight: bold; +} + +.asciinema-terminal .underline { + text-decoration: underline; +} + +.asciinema-terminal .italic { + font-style: italic; +} + +.asciinema-terminal.font-small { + font-size: 12px; +} + +.asciinema-terminal.font-medium { + font-size: 18px; +} + +.asciinema-terminal.font-big { + font-size: 24px; +} + +.asciinema-player .control-bar { + width: 100%; + height: 32px; + background: rgba(0, 0, 0, 0.8); + /* no gradient fallback */ + background: -moz-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%); + /* FF3.6-15 */ + background: -webkit-linear-gradient(top, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%); + /* Chrome10-25,Safari5.1-6 */ + background: linear-gradient(to bottom, rgba(0, 0, 0, 0.5) 0%, #000000 25%, #000000 100%); + /* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */ + color: #bbbbbb; + box-sizing: content-box; + line-height: 1; + position: absolute; + bottom: -35px; + left: 0; + transition: bottom 0.15s linear; +} + +.asciinema-player .control-bar * { + box-sizing: inherit; + font-size: 0; +} + +.asciinema-player .control-bar svg.icon path { + fill: #bbbbbb; +} + +.asciinema-player .control-bar .playback-button { + display: block; + float: left; + cursor: pointer; + height: 12px; + width: 12px; + padding: 10px; +} + +.asciinema-player .control-bar .playback-button svg { + height: 12px; + width: 12px; +} + +.asciinema-player .control-bar .timer { + display: block; + float: left; + width: 50px; + height: 100%; + text-align: center; + font-family: Helvetica, Arial, sans-serif; + font-size: 11px; + font-weight: bold; + line-height: 32px; + cursor: default; +} + +.asciinema-player .control-bar .timer span { + display: inline-block; + font-size: inherit; +} + +.asciinema-player .control-bar .timer .time-remaining { + display: none; +} + +.asciinema-player .control-bar .timer:hover .time-elapsed { + display: none; +} + +.asciinema-player .control-bar .timer:hover .time-remaining { + display: inline; +} + +.asciinema-player .control-bar .progressbar { + display: block; + overflow: hidden; + height: 100%; + padding: 0 10px; +} + +.asciinema-player .control-bar .progressbar .bar { + display: block; + cursor: pointer; + height: 100%; + padding-top: 15px; + font-size: 0; +} + +.asciinema-player .control-bar .progressbar .bar .gutter { + display: block; + height: 3px; + background-color: #333; +} + +.asciinema-player .control-bar .progressbar .bar .gutter span { + display: inline-block; + height: 100%; + background-color: #bbbbbb; + border-radius: 3px; +} + +.asciinema-player .control-bar.live .progressbar .bar { + cursor: default; +} + +.asciinema-player .control-bar .fullscreen-button { + display: block; + float: right; + width: 14px; + height: 14px; + padding: 9px; + cursor: pointer; +} + +.asciinema-player .control-bar .fullscreen-button svg { + width: 14px; + height: 14px; +} + +.asciinema-player .control-bar .fullscreen-button svg:first-child { + display: inline; +} + +.asciinema-player .control-bar .fullscreen-button svg:last-child { + display: none; +} + +.asciinema-player-wrapper.hud .control-bar { + bottom: 0px; +} + +.asciinema-player-wrapper:fullscreen .fullscreen-button svg:first-child { + display: none; +} + +.asciinema-player-wrapper:fullscreen .fullscreen-button svg:last-child { + display: inline; +} + +.asciinema-player-wrapper:-webkit-full-screen .fullscreen-button svg:first-child { + display: none; +} + +.asciinema-player-wrapper:-webkit-full-screen .fullscreen-button svg:last-child { + display: inline; +} + +.asciinema-player-wrapper:-moz-full-screen .fullscreen-button svg:first-child { + display: none; +} + +.asciinema-player-wrapper:-moz-full-screen .fullscreen-button svg:last-child { + display: inline; +} + +.asciinema-player-wrapper:-ms-fullscreen .fullscreen-button svg:first-child { + display: none; +} + +.asciinema-player-wrapper:-ms-fullscreen .fullscreen-button svg:last-child { + display: inline; +} + +.asciinema-player .loading { + z-index: 10; + background-repeat: no-repeat; + background-position: center; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 32px; + background-color: rgba(0, 0, 0, 0.5); +} + +.asciinema-player .start-prompt { + z-index: 10; + background-repeat: no-repeat; + background-position: center; + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 32px; + z-index: 20; + cursor: pointer; +} + +.asciinema-player .start-prompt .play-button { + font-size: 0px; +} + +.asciinema-player .start-prompt .play-button { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + text-align: center; + color: white; + display: table; + width: 100%; + height: 100%; +} + +.asciinema-player .start-prompt .play-button div { + vertical-align: middle; + display: table-cell; +} + +.asciinema-player .start-prompt .play-button div span { + width: 96px; + height: 96px; + display: inline-block; +} + +@-webkit-keyframes expand { + 0% { + -webkit-transform: scale(0); + } + 50% { + -webkit-transform: scale(1); + } + 100% { + z-index: 1; + } +} + +@-moz-keyframes expand { + 0% { + -moz-transform: scale(0); + } + 50% { + -moz-transform: scale(1); + } + 100% { + z-index: 1; + } +} + +@-o-keyframes expand { + 0% { + -o-transform: scale(0); + } + 50% { + -o-transform: scale(1); + } + 100% { + z-index: 1; + } +} + +@keyframes expand { + 0% { + transform: scale(0); + } + 50% { + transform: scale(1); + } + 100% { + z-index: 1; + } +} + +.loader { + position: absolute; + left: 50%; + top: 50%; + margin: -20px 0 0 -20px; + background-color: white; + border-radius: 50%; + box-shadow: 0 0 0 6.66667px #141414; + width: 40px; + height: 40px; +} + +.loader:before, +.loader:after { + content: ""; + position: absolute; + left: 50%; + top: 50%; + display: block; + margin: -21px 0 0 -21px; + border-radius: 50%; + z-index: 2; + width: 42px; + height: 42px; +} + +.loader:before { + background-color: #141414; + -webkit-animation: expand 1.6s linear infinite both; + -moz-animation: expand 1.6s linear infinite both; + animation: expand 1.6s linear infinite both; +} + +.loader:after { + background-color: white; + -webkit-animation: expand 1.6s linear 0.8s infinite both; + -moz-animation: expand 1.6s linear 0.8s infinite both; + animation: expand 1.6s linear 0.8s infinite both; +} + +.asciinema-terminal .fg-16 { + color: #000000; +} + +.asciinema-terminal .bg-16 { + background-color: #000000; +} + +.asciinema-terminal .fg-17 { + color: #00005f; +} + +.asciinema-terminal .bg-17 { + background-color: #00005f; +} + +.asciinema-terminal .fg-18 { + color: #000087; +} + +.asciinema-terminal .bg-18 { + background-color: #000087; +} + +.asciinema-terminal .fg-19 { + color: #0000af; +} + +.asciinema-terminal .bg-19 { + background-color: #0000af; +} + +.asciinema-terminal .fg-20 { + color: #0000d7; +} + +.asciinema-terminal .bg-20 { + background-color: #0000d7; +} + +.asciinema-terminal .fg-21 { + color: #0000ff; +} + +.asciinema-terminal .bg-21 { + background-color: #0000ff; +} + +.asciinema-terminal .fg-22 { + color: #005f00; +} + +.asciinema-terminal .bg-22 { + background-color: #005f00; +} + +.asciinema-terminal .fg-23 { + color: #005f5f; +} + +.asciinema-terminal .bg-23 { + background-color: #005f5f; +} + +.asciinema-terminal .fg-24 { + color: #005f87; +} + +.asciinema-terminal .bg-24 { + background-color: #005f87; +} + +.asciinema-terminal .fg-25 { + color: #005faf; +} + +.asciinema-terminal .bg-25 { + background-color: #005faf; +} + +.asciinema-terminal .fg-26 { + color: #005fd7; +} + +.asciinema-terminal .bg-26 { + background-color: #005fd7; +} + +.asciinema-terminal .fg-27 { + color: #005fff; +} + +.asciinema-terminal .bg-27 { + background-color: #005fff; +} + +.asciinema-terminal .fg-28 { + color: #008700; +} + +.asciinema-terminal .bg-28 { + background-color: #008700; +} + +.asciinema-terminal .fg-29 { + color: #00875f; +} + +.asciinema-terminal .bg-29 { + background-color: #00875f; +} + +.asciinema-terminal .fg-30 { + color: #008787; +} + +.asciinema-terminal .bg-30 { + background-color: #008787; +} + +.asciinema-terminal .fg-31 { + color: #0087af; +} + +.asciinema-terminal .bg-31 { + background-color: #0087af; +} + +.asciinema-terminal .fg-32 { + color: #0087d7; +} + +.asciinema-terminal .bg-32 { + background-color: #0087d7; +} + +.asciinema-terminal .fg-33 { + color: #0087ff; +} + +.asciinema-terminal .bg-33 { + background-color: #0087ff; +} + +.asciinema-terminal .fg-34 { + color: #00af00; +} + +.asciinema-terminal .bg-34 { + background-color: #00af00; +} + +.asciinema-terminal .fg-35 { + color: #00af5f; +} + +.asciinema-terminal .bg-35 { + background-color: #00af5f; +} + +.asciinema-terminal .fg-36 { + color: #00af87; +} + +.asciinema-terminal .bg-36 { + background-color: #00af87; +} + +.asciinema-terminal .fg-37 { + color: #00afaf; +} + +.asciinema-terminal .bg-37 { + background-color: #00afaf; +} + +.asciinema-terminal .fg-38 { + color: #00afd7; +} + +.asciinema-terminal .bg-38 { + background-color: #00afd7; +} + +.asciinema-terminal .fg-39 { + color: #00afff; +} + +.asciinema-terminal .bg-39 { + background-color: #00afff; +} + +.asciinema-terminal .fg-40 { + color: #00d700; +} + +.asciinema-terminal .bg-40 { + background-color: #00d700; +} + +.asciinema-terminal .fg-41 { + color: #00d75f; +} + +.asciinema-terminal .bg-41 { + background-color: #00d75f; +} + +.asciinema-terminal .fg-42 { + color: #00d787; +} + +.asciinema-terminal .bg-42 { + background-color: #00d787; +} + +.asciinema-terminal .fg-43 { + color: #00d7af; +} + +.asciinema-terminal .bg-43 { + background-color: #00d7af; +} + +.asciinema-terminal .fg-44 { + color: #00d7d7; +} + +.asciinema-terminal .bg-44 { + background-color: #00d7d7; +} + +.asciinema-terminal .fg-45 { + color: #00d7ff; +} + +.asciinema-terminal .bg-45 { + background-color: #00d7ff; +} + +.asciinema-terminal .fg-46 { + color: #00ff00; +} + +.asciinema-terminal .bg-46 { + background-color: #00ff00; +} + +.asciinema-terminal .fg-47 { + color: #00ff5f; +} + +.asciinema-terminal .bg-47 { + background-color: #00ff5f; +} + +.asciinema-terminal .fg-48 { + color: #00ff87; +} + +.asciinema-terminal .bg-48 { + background-color: #00ff87; +} + +.asciinema-terminal .fg-49 { + color: #00ffaf; +} + +.asciinema-terminal .bg-49 { + background-color: #00ffaf; +} + +.asciinema-terminal .fg-50 { + color: #00ffd7; +} + +.asciinema-terminal .bg-50 { + background-color: #00ffd7; +} + +.asciinema-terminal .fg-51 { + color: #00ffff; +} + +.asciinema-terminal .bg-51 { + background-color: #00ffff; +} + +.asciinema-terminal .fg-52 { + color: #5f0000; +} + +.asciinema-terminal .bg-52 { + background-color: #5f0000; +} + +.asciinema-terminal .fg-53 { + color: #5f005f; +} + +.asciinema-terminal .bg-53 { + background-color: #5f005f; +} + +.asciinema-terminal .fg-54 { + color: #5f0087; +} + +.asciinema-terminal .bg-54 { + background-color: #5f0087; +} + +.asciinema-terminal .fg-55 { + color: #5f00af; +} + +.asciinema-terminal .bg-55 { + background-color: #5f00af; +} + +.asciinema-terminal .fg-56 { + color: #5f00d7; +} + +.asciinema-terminal .bg-56 { + background-color: #5f00d7; +} + +.asciinema-terminal .fg-57 { + color: #5f00ff; +} + +.asciinema-terminal .bg-57 { + background-color: #5f00ff; +} + +.asciinema-terminal .fg-58 { + color: #5f5f00; +} + +.asciinema-terminal .bg-58 { + background-color: #5f5f00; +} + +.asciinema-terminal .fg-59 { + color: #5f5f5f; +} + +.asciinema-terminal .bg-59 { + background-color: #5f5f5f; +} + +.asciinema-terminal .fg-60 { + color: #5f5f87; +} + +.asciinema-terminal .bg-60 { + background-color: #5f5f87; +} + +.asciinema-terminal .fg-61 { + color: #5f5faf; +} + +.asciinema-terminal .bg-61 { + background-color: #5f5faf; +} + +.asciinema-terminal .fg-62 { + color: #5f5fd7; +} + +.asciinema-terminal .bg-62 { + background-color: #5f5fd7; +} + +.asciinema-terminal .fg-63 { + color: #5f5fff; +} + +.asciinema-terminal .bg-63 { + background-color: #5f5fff; +} + +.asciinema-terminal .fg-64 { + color: #5f8700; +} + +.asciinema-terminal .bg-64 { + background-color: #5f8700; +} + +.asciinema-terminal .fg-65 { + color: #5f875f; +} + +.asciinema-terminal .bg-65 { + background-color: #5f875f; +} + +.asciinema-terminal .fg-66 { + color: #5f8787; +} + +.asciinema-terminal .bg-66 { + background-color: #5f8787; +} + +.asciinema-terminal .fg-67 { + color: #5f87af; +} + +.asciinema-terminal .bg-67 { + background-color: #5f87af; +} + +.asciinema-terminal .fg-68 { + color: #5f87d7; +} + +.asciinema-terminal .bg-68 { + background-color: #5f87d7; +} + +.asciinema-terminal .fg-69 { + color: #5f87ff; +} + +.asciinema-terminal .bg-69 { + background-color: #5f87ff; +} + +.asciinema-terminal .fg-70 { + color: #5faf00; +} + +.asciinema-terminal .bg-70 { + background-color: #5faf00; +} + +.asciinema-terminal .fg-71 { + color: #5faf5f; +} + +.asciinema-terminal .bg-71 { + background-color: #5faf5f; +} + +.asciinema-terminal .fg-72 { + color: #5faf87; +} + +.asciinema-terminal .bg-72 { + background-color: #5faf87; +} + +.asciinema-terminal .fg-73 { + color: #5fafaf; +} + +.asciinema-terminal .bg-73 { + background-color: #5fafaf; +} + +.asciinema-terminal .fg-74 { + color: #5fafd7; +} + +.asciinema-terminal .bg-74 { + background-color: #5fafd7; +} + +.asciinema-terminal .fg-75 { + color: #5fafff; +} + +.asciinema-terminal .bg-75 { + background-color: #5fafff; +} + +.asciinema-terminal .fg-76 { + color: #5fd700; +} + +.asciinema-terminal .bg-76 { + background-color: #5fd700; +} + +.asciinema-terminal .fg-77 { + color: #5fd75f; +} + +.asciinema-terminal .bg-77 { + background-color: #5fd75f; +} + +.asciinema-terminal .fg-78 { + color: #5fd787; +} + +.asciinema-terminal .bg-78 { + background-color: #5fd787; +} + +.asciinema-terminal .fg-79 { + color: #5fd7af; +} + +.asciinema-terminal .bg-79 { + background-color: #5fd7af; +} + +.asciinema-terminal .fg-80 { + color: #5fd7d7; +} + +.asciinema-terminal .bg-80 { + background-color: #5fd7d7; +} + +.asciinema-terminal .fg-81 { + color: #5fd7ff; +} + +.asciinema-terminal .bg-81 { + background-color: #5fd7ff; +} + +.asciinema-terminal .fg-82 { + color: #5fff00; +} + +.asciinema-terminal .bg-82 { + background-color: #5fff00; +} + +.asciinema-terminal .fg-83 { + color: #5fff5f; +} + +.asciinema-terminal .bg-83 { + background-color: #5fff5f; +} + +.asciinema-terminal .fg-84 { + color: #5fff87; +} + +.asciinema-terminal .bg-84 { + background-color: #5fff87; +} + +.asciinema-terminal .fg-85 { + color: #5fffaf; +} + +.asciinema-terminal .bg-85 { + background-color: #5fffaf; +} + +.asciinema-terminal .fg-86 { + color: #5fffd7; +} + +.asciinema-terminal .bg-86 { + background-color: #5fffd7; +} + +.asciinema-terminal .fg-87 { + color: #5fffff; +} + +.asciinema-terminal .bg-87 { + background-color: #5fffff; +} + +.asciinema-terminal .fg-88 { + color: #870000; +} + +.asciinema-terminal .bg-88 { + background-color: #870000; +} + +.asciinema-terminal .fg-89 { + color: #87005f; +} + +.asciinema-terminal .bg-89 { + background-color: #87005f; +} + +.asciinema-terminal .fg-90 { + color: #870087; +} + +.asciinema-terminal .bg-90 { + background-color: #870087; +} + +.asciinema-terminal .fg-91 { + color: #8700af; +} + +.asciinema-terminal .bg-91 { + background-color: #8700af; +} + +.asciinema-terminal .fg-92 { + color: #8700d7; +} + +.asciinema-terminal .bg-92 { + background-color: #8700d7; +} + +.asciinema-terminal .fg-93 { + color: #8700ff; +} + +.asciinema-terminal .bg-93 { + background-color: #8700ff; +} + +.asciinema-terminal .fg-94 { + color: #875f00; +} + +.asciinema-terminal .bg-94 { + background-color: #875f00; +} + +.asciinema-terminal .fg-95 { + color: #875f5f; +} + +.asciinema-terminal .bg-95 { + background-color: #875f5f; +} + +.asciinema-terminal .fg-96 { + color: #875f87; +} + +.asciinema-terminal .bg-96 { + background-color: #875f87; +} + +.asciinema-terminal .fg-97 { + color: #875faf; +} + +.asciinema-terminal .bg-97 { + background-color: #875faf; +} + +.asciinema-terminal .fg-98 { + color: #875fd7; +} + +.asciinema-terminal .bg-98 { + background-color: #875fd7; +} + +.asciinema-terminal .fg-99 { + color: #875fff; +} + +.asciinema-terminal .bg-99 { + background-color: #875fff; +} + +.asciinema-terminal .fg-100 { + color: #878700; +} + +.asciinema-terminal .bg-100 { + background-color: #878700; +} + +.asciinema-terminal .fg-101 { + color: #87875f; +} + +.asciinema-terminal .bg-101 { + background-color: #87875f; +} + +.asciinema-terminal .fg-102 { + color: #878787; +} + +.asciinema-terminal .bg-102 { + background-color: #878787; +} + +.asciinema-terminal .fg-103 { + color: #8787af; +} + +.asciinema-terminal .bg-103 { + background-color: #8787af; +} + +.asciinema-terminal .fg-104 { + color: #8787d7; +} + +.asciinema-terminal .bg-104 { + background-color: #8787d7; +} + +.asciinema-terminal .fg-105 { + color: #8787ff; +} + +.asciinema-terminal .bg-105 { + background-color: #8787ff; +} + +.asciinema-terminal .fg-106 { + color: #87af00; +} + +.asciinema-terminal .bg-106 { + background-color: #87af00; +} + +.asciinema-terminal .fg-107 { + color: #87af5f; +} + +.asciinema-terminal .bg-107 { + background-color: #87af5f; +} + +.asciinema-terminal .fg-108 { + color: #87af87; +} + +.asciinema-terminal .bg-108 { + background-color: #87af87; +} + +.asciinema-terminal .fg-109 { + color: #87afaf; +} + +.asciinema-terminal .bg-109 { + background-color: #87afaf; +} + +.asciinema-terminal .fg-110 { + color: #87afd7; +} + +.asciinema-terminal .bg-110 { + background-color: #87afd7; +} + +.asciinema-terminal .fg-111 { + color: #87afff; +} + +.asciinema-terminal .bg-111 { + background-color: #87afff; +} + +.asciinema-terminal .fg-112 { + color: #87d700; +} + +.asciinema-terminal .bg-112 { + background-color: #87d700; +} + +.asciinema-terminal .fg-113 { + color: #87d75f; +} + +.asciinema-terminal .bg-113 { + background-color: #87d75f; +} + +.asciinema-terminal .fg-114 { + color: #87d787; +} + +.asciinema-terminal .bg-114 { + background-color: #87d787; +} + +.asciinema-terminal .fg-115 { + color: #87d7af; +} + +.asciinema-terminal .bg-115 { + background-color: #87d7af; +} + +.asciinema-terminal .fg-116 { + color: #87d7d7; +} + +.asciinema-terminal .bg-116 { + background-color: #87d7d7; +} + +.asciinema-terminal .fg-117 { + color: #87d7ff; +} + +.asciinema-terminal .bg-117 { + background-color: #87d7ff; +} + +.asciinema-terminal .fg-118 { + color: #87ff00; +} + +.asciinema-terminal .bg-118 { + background-color: #87ff00; +} + +.asciinema-terminal .fg-119 { + color: #87ff5f; +} + +.asciinema-terminal .bg-119 { + background-color: #87ff5f; +} + +.asciinema-terminal .fg-120 { + color: #87ff87; +} + +.asciinema-terminal .bg-120 { + background-color: #87ff87; +} + +.asciinema-terminal .fg-121 { + color: #87ffaf; +} + +.asciinema-terminal .bg-121 { + background-color: #87ffaf; +} + +.asciinema-terminal .fg-122 { + color: #87ffd7; +} + +.asciinema-terminal .bg-122 { + background-color: #87ffd7; +} + +.asciinema-terminal .fg-123 { + color: #87ffff; +} + +.asciinema-terminal .bg-123 { + background-color: #87ffff; +} + +.asciinema-terminal .fg-124 { + color: #af0000; +} + +.asciinema-terminal .bg-124 { + background-color: #af0000; +} + +.asciinema-terminal .fg-125 { + color: #af005f; +} + +.asciinema-terminal .bg-125 { + background-color: #af005f; +} + +.asciinema-terminal .fg-126 { + color: #af0087; +} + +.asciinema-terminal .bg-126 { + background-color: #af0087; +} + +.asciinema-terminal .fg-127 { + color: #af00af; +} + +.asciinema-terminal .bg-127 { + background-color: #af00af; +} + +.asciinema-terminal .fg-128 { + color: #af00d7; +} + +.asciinema-terminal .bg-128 { + background-color: #af00d7; +} + +.asciinema-terminal .fg-129 { + color: #af00ff; +} + +.asciinema-terminal .bg-129 { + background-color: #af00ff; +} + +.asciinema-terminal .fg-130 { + color: #af5f00; +} + +.asciinema-terminal .bg-130 { + background-color: #af5f00; +} + +.asciinema-terminal .fg-131 { + color: #af5f5f; +} + +.asciinema-terminal .bg-131 { + background-color: #af5f5f; +} + +.asciinema-terminal .fg-132 { + color: #af5f87; +} + +.asciinema-terminal .bg-132 { + background-color: #af5f87; +} + +.asciinema-terminal .fg-133 { + color: #af5faf; +} + +.asciinema-terminal .bg-133 { + background-color: #af5faf; +} + +.asciinema-terminal .fg-134 { + color: #af5fd7; +} + +.asciinema-terminal .bg-134 { + background-color: #af5fd7; +} + +.asciinema-terminal .fg-135 { + color: #af5fff; +} + +.asciinema-terminal .bg-135 { + background-color: #af5fff; +} + +.asciinema-terminal .fg-136 { + color: #af8700; +} + +.asciinema-terminal .bg-136 { + background-color: #af8700; +} + +.asciinema-terminal .fg-137 { + color: #af875f; +} + +.asciinema-terminal .bg-137 { + background-color: #af875f; +} + +.asciinema-terminal .fg-138 { + color: #af8787; +} + +.asciinema-terminal .bg-138 { + background-color: #af8787; +} + +.asciinema-terminal .fg-139 { + color: #af87af; +} + +.asciinema-terminal .bg-139 { + background-color: #af87af; +} + +.asciinema-terminal .fg-140 { + color: #af87d7; +} + +.asciinema-terminal .bg-140 { + background-color: #af87d7; +} + +.asciinema-terminal .fg-141 { + color: #af87ff; +} + +.asciinema-terminal .bg-141 { + background-color: #af87ff; +} + +.asciinema-terminal .fg-142 { + color: #afaf00; +} + +.asciinema-terminal .bg-142 { + background-color: #afaf00; +} + +.asciinema-terminal .fg-143 { + color: #afaf5f; +} + +.asciinema-terminal .bg-143 { + background-color: #afaf5f; +} + +.asciinema-terminal .fg-144 { + color: #afaf87; +} + +.asciinema-terminal .bg-144 { + background-color: #afaf87; +} + +.asciinema-terminal .fg-145 { + color: #afafaf; +} + +.asciinema-terminal .bg-145 { + background-color: #afafaf; +} + +.asciinema-terminal .fg-146 { + color: #afafd7; +} + +.asciinema-terminal .bg-146 { + background-color: #afafd7; +} + +.asciinema-terminal .fg-147 { + color: #afafff; +} + +.asciinema-terminal .bg-147 { + background-color: #afafff; +} + +.asciinema-terminal .fg-148 { + color: #afd700; +} + +.asciinema-terminal .bg-148 { + background-color: #afd700; +} + +.asciinema-terminal .fg-149 { + color: #afd75f; +} + +.asciinema-terminal .bg-149 { + background-color: #afd75f; +} + +.asciinema-terminal .fg-150 { + color: #afd787; +} + +.asciinema-terminal .bg-150 { + background-color: #afd787; +} + +.asciinema-terminal .fg-151 { + color: #afd7af; +} + +.asciinema-terminal .bg-151 { + background-color: #afd7af; +} + +.asciinema-terminal .fg-152 { + color: #afd7d7; +} + +.asciinema-terminal .bg-152 { + background-color: #afd7d7; +} + +.asciinema-terminal .fg-153 { + color: #afd7ff; +} + +.asciinema-terminal .bg-153 { + background-color: #afd7ff; +} + +.asciinema-terminal .fg-154 { + color: #afff00; +} + +.asciinema-terminal .bg-154 { + background-color: #afff00; +} + +.asciinema-terminal .fg-155 { + color: #afff5f; +} + +.asciinema-terminal .bg-155 { + background-color: #afff5f; +} + +.asciinema-terminal .fg-156 { + color: #afff87; +} + +.asciinema-terminal .bg-156 { + background-color: #afff87; +} + +.asciinema-terminal .fg-157 { + color: #afffaf; +} + +.asciinema-terminal .bg-157 { + background-color: #afffaf; +} + +.asciinema-terminal .fg-158 { + color: #afffd7; +} + +.asciinema-terminal .bg-158 { + background-color: #afffd7; +} + +.asciinema-terminal .fg-159 { + color: #afffff; +} + +.asciinema-terminal .bg-159 { + background-color: #afffff; +} + +.asciinema-terminal .fg-160 { + color: #d70000; +} + +.asciinema-terminal .bg-160 { + background-color: #d70000; +} + +.asciinema-terminal .fg-161 { + color: #d7005f; +} + +.asciinema-terminal .bg-161 { + background-color: #d7005f; +} + +.asciinema-terminal .fg-162 { + color: #d70087; +} + +.asciinema-terminal .bg-162 { + background-color: #d70087; +} + +.asciinema-terminal .fg-163 { + color: #d700af; +} + +.asciinema-terminal .bg-163 { + background-color: #d700af; +} + +.asciinema-terminal .fg-164 { + color: #d700d7; +} + +.asciinema-terminal .bg-164 { + background-color: #d700d7; +} + +.asciinema-terminal .fg-165 { + color: #d700ff; +} + +.asciinema-terminal .bg-165 { + background-color: #d700ff; +} + +.asciinema-terminal .fg-166 { + color: #d75f00; +} + +.asciinema-terminal .bg-166 { + background-color: #d75f00; +} + +.asciinema-terminal .fg-167 { + color: #d75f5f; +} + +.asciinema-terminal .bg-167 { + background-color: #d75f5f; +} + +.asciinema-terminal .fg-168 { + color: #d75f87; +} + +.asciinema-terminal .bg-168 { + background-color: #d75f87; +} + +.asciinema-terminal .fg-169 { + color: #d75faf; +} + +.asciinema-terminal .bg-169 { + background-color: #d75faf; +} + +.asciinema-terminal .fg-170 { + color: #d75fd7; +} + +.asciinema-terminal .bg-170 { + background-color: #d75fd7; +} + +.asciinema-terminal .fg-171 { + color: #d75fff; +} + +.asciinema-terminal .bg-171 { + background-color: #d75fff; +} + +.asciinema-terminal .fg-172 { + color: #d78700; +} + +.asciinema-terminal .bg-172 { + background-color: #d78700; +} + +.asciinema-terminal .fg-173 { + color: #d7875f; +} + +.asciinema-terminal .bg-173 { + background-color: #d7875f; +} + +.asciinema-terminal .fg-174 { + color: #d78787; +} + +.asciinema-terminal .bg-174 { + background-color: #d78787; +} + +.asciinema-terminal .fg-175 { + color: #d787af; +} + +.asciinema-terminal .bg-175 { + background-color: #d787af; +} + +.asciinema-terminal .fg-176 { + color: #d787d7; +} + +.asciinema-terminal .bg-176 { + background-color: #d787d7; +} + +.asciinema-terminal .fg-177 { + color: #d787ff; +} + +.asciinema-terminal .bg-177 { + background-color: #d787ff; +} + +.asciinema-terminal .fg-178 { + color: #d7af00; +} + +.asciinema-terminal .bg-178 { + background-color: #d7af00; +} + +.asciinema-terminal .fg-179 { + color: #d7af5f; +} + +.asciinema-terminal .bg-179 { + background-color: #d7af5f; +} + +.asciinema-terminal .fg-180 { + color: #d7af87; +} + +.asciinema-terminal .bg-180 { + background-color: #d7af87; +} + +.asciinema-terminal .fg-181 { + color: #d7afaf; +} + +.asciinema-terminal .bg-181 { + background-color: #d7afaf; +} + +.asciinema-terminal .fg-182 { + color: #d7afd7; +} + +.asciinema-terminal .bg-182 { + background-color: #d7afd7; +} + +.asciinema-terminal .fg-183 { + color: #d7afff; +} + +.asciinema-terminal .bg-183 { + background-color: #d7afff; +} + +.asciinema-terminal .fg-184 { + color: #d7d700; +} + +.asciinema-terminal .bg-184 { + background-color: #d7d700; +} + +.asciinema-terminal .fg-185 { + color: #d7d75f; +} + +.asciinema-terminal .bg-185 { + background-color: #d7d75f; +} + +.asciinema-terminal .fg-186 { + color: #d7d787; +} + +.asciinema-terminal .bg-186 { + background-color: #d7d787; +} + +.asciinema-terminal .fg-187 { + color: #d7d7af; +} + +.asciinema-terminal .bg-187 { + background-color: #d7d7af; +} + +.asciinema-terminal .fg-188 { + color: #d7d7d7; +} + +.asciinema-terminal .bg-188 { + background-color: #d7d7d7; +} + +.asciinema-terminal .fg-189 { + color: #d7d7ff; +} + +.asciinema-terminal .bg-189 { + background-color: #d7d7ff; +} + +.asciinema-terminal .fg-190 { + color: #d7ff00; +} + +.asciinema-terminal .bg-190 { + background-color: #d7ff00; +} + +.asciinema-terminal .fg-191 { + color: #d7ff5f; +} + +.asciinema-terminal .bg-191 { + background-color: #d7ff5f; +} + +.asciinema-terminal .fg-192 { + color: #d7ff87; +} + +.asciinema-terminal .bg-192 { + background-color: #d7ff87; +} + +.asciinema-terminal .fg-193 { + color: #d7ffaf; +} + +.asciinema-terminal .bg-193 { + background-color: #d7ffaf; +} + +.asciinema-terminal .fg-194 { + color: #d7ffd7; +} + +.asciinema-terminal .bg-194 { + background-color: #d7ffd7; +} + +.asciinema-terminal .fg-195 { + color: #d7ffff; +} + +.asciinema-terminal .bg-195 { + background-color: #d7ffff; +} + +.asciinema-terminal .fg-196 { + color: #ff0000; +} + +.asciinema-terminal .bg-196 { + background-color: #ff0000; +} + +.asciinema-terminal .fg-197 { + color: #ff005f; +} + +.asciinema-terminal .bg-197 { + background-color: #ff005f; +} + +.asciinema-terminal .fg-198 { + color: #ff0087; +} + +.asciinema-terminal .bg-198 { + background-color: #ff0087; +} + +.asciinema-terminal .fg-199 { + color: #ff00af; +} + +.asciinema-terminal .bg-199 { + background-color: #ff00af; +} + +.asciinema-terminal .fg-200 { + color: #ff00d7; +} + +.asciinema-terminal .bg-200 { + background-color: #ff00d7; +} + +.asciinema-terminal .fg-201 { + color: #ff00ff; +} + +.asciinema-terminal .bg-201 { + background-color: #ff00ff; +} + +.asciinema-terminal .fg-202 { + color: #ff5f00; +} + +.asciinema-terminal .bg-202 { + background-color: #ff5f00; +} + +.asciinema-terminal .fg-203 { + color: #ff5f5f; +} + +.asciinema-terminal .bg-203 { + background-color: #ff5f5f; +} + +.asciinema-terminal .fg-204 { + color: #ff5f87; +} + +.asciinema-terminal .bg-204 { + background-color: #ff5f87; +} + +.asciinema-terminal .fg-205 { + color: #ff5faf; +} + +.asciinema-terminal .bg-205 { + background-color: #ff5faf; +} + +.asciinema-terminal .fg-206 { + color: #ff5fd7; +} + +.asciinema-terminal .bg-206 { + background-color: #ff5fd7; +} + +.asciinema-terminal .fg-207 { + color: #ff5fff; +} + +.asciinema-terminal .bg-207 { + background-color: #ff5fff; +} + +.asciinema-terminal .fg-208 { + color: #ff8700; +} + +.asciinema-terminal .bg-208 { + background-color: #ff8700; +} + +.asciinema-terminal .fg-209 { + color: #ff875f; +} + +.asciinema-terminal .bg-209 { + background-color: #ff875f; +} + +.asciinema-terminal .fg-210 { + color: #ff8787; +} + +.asciinema-terminal .bg-210 { + background-color: #ff8787; +} + +.asciinema-terminal .fg-211 { + color: #ff87af; +} + +.asciinema-terminal .bg-211 { + background-color: #ff87af; +} + +.asciinema-terminal .fg-212 { + color: #ff87d7; +} + +.asciinema-terminal .bg-212 { + background-color: #ff87d7; +} + +.asciinema-terminal .fg-213 { + color: #ff87ff; +} + +.asciinema-terminal .bg-213 { + background-color: #ff87ff; +} + +.asciinema-terminal .fg-214 { + color: #ffaf00; +} + +.asciinema-terminal .bg-214 { + background-color: #ffaf00; +} + +.asciinema-terminal .fg-215 { + color: #ffaf5f; +} + +.asciinema-terminal .bg-215 { + background-color: #ffaf5f; +} + +.asciinema-terminal .fg-216 { + color: #ffaf87; +} + +.asciinema-terminal .bg-216 { + background-color: #ffaf87; +} + +.asciinema-terminal .fg-217 { + color: #ffafaf; +} + +.asciinema-terminal .bg-217 { + background-color: #ffafaf; +} + +.asciinema-terminal .fg-218 { + color: #ffafd7; +} + +.asciinema-terminal .bg-218 { + background-color: #ffafd7; +} + +.asciinema-terminal .fg-219 { + color: #ffafff; +} + +.asciinema-terminal .bg-219 { + background-color: #ffafff; +} + +.asciinema-terminal .fg-220 { + color: #ffd700; +} + +.asciinema-terminal .bg-220 { + background-color: #ffd700; +} + +.asciinema-terminal .fg-221 { + color: #ffd75f; +} + +.asciinema-terminal .bg-221 { + background-color: #ffd75f; +} + +.asciinema-terminal .fg-222 { + color: #ffd787; +} + +.asciinema-terminal .bg-222 { + background-color: #ffd787; +} + +.asciinema-terminal .fg-223 { + color: #ffd7af; +} + +.asciinema-terminal .bg-223 { + background-color: #ffd7af; +} + +.asciinema-terminal .fg-224 { + color: #ffd7d7; +} + +.asciinema-terminal .bg-224 { + background-color: #ffd7d7; +} + +.asciinema-terminal .fg-225 { + color: #ffd7ff; +} + +.asciinema-terminal .bg-225 { + background-color: #ffd7ff; +} + +.asciinema-terminal .fg-226 { + color: #ffff00; +} + +.asciinema-terminal .bg-226 { + background-color: #ffff00; +} + +.asciinema-terminal .fg-227 { + color: #ffff5f; +} + +.asciinema-terminal .bg-227 { + background-color: #ffff5f; +} + +.asciinema-terminal .fg-228 { + color: #ffff87; +} + +.asciinema-terminal .bg-228 { + background-color: #ffff87; +} + +.asciinema-terminal .fg-229 { + color: #ffffaf; +} + +.asciinema-terminal .bg-229 { + background-color: #ffffaf; +} + +.asciinema-terminal .fg-230 { + color: #ffffd7; +} + +.asciinema-terminal .bg-230 { + background-color: #ffffd7; +} + +.asciinema-terminal .fg-231 { + color: #ffffff; +} + +.asciinema-terminal .bg-231 { + background-color: #ffffff; +} + +.asciinema-terminal .fg-232 { + color: #080808; +} + +.asciinema-terminal .bg-232 { + background-color: #080808; +} + +.asciinema-terminal .fg-233 { + color: #121212; +} + +.asciinema-terminal .bg-233 { + background-color: #121212; +} + +.asciinema-terminal .fg-234 { + color: #1c1c1c; +} + +.asciinema-terminal .bg-234 { + background-color: #1c1c1c; +} + +.asciinema-terminal .fg-235 { + color: #262626; +} + +.asciinema-terminal .bg-235 { + background-color: #262626; +} + +.asciinema-terminal .fg-236 { + color: #303030; +} + +.asciinema-terminal .bg-236 { + background-color: #303030; +} + +.asciinema-terminal .fg-237 { + color: #3a3a3a; +} + +.asciinema-terminal .bg-237 { + background-color: #3a3a3a; +} + +.asciinema-terminal .fg-238 { + color: #444444; +} + +.asciinema-terminal .bg-238 { + background-color: #444444; +} + +.asciinema-terminal .fg-239 { + color: #4e4e4e; +} + +.asciinema-terminal .bg-239 { + background-color: #4e4e4e; +} + +.asciinema-terminal .fg-240 { + color: #585858; +} + +.asciinema-terminal .bg-240 { + background-color: #585858; +} + +.asciinema-terminal .fg-241 { + color: #626262; +} + +.asciinema-terminal .bg-241 { + background-color: #626262; +} + +.asciinema-terminal .fg-242 { + color: #6c6c6c; +} + +.asciinema-terminal .bg-242 { + background-color: #6c6c6c; +} + +.asciinema-terminal .fg-243 { + color: #767676; +} + +.asciinema-terminal .bg-243 { + background-color: #767676; +} + +.asciinema-terminal .fg-244 { + color: #808080; +} + +.asciinema-terminal .bg-244 { + background-color: #808080; +} + +.asciinema-terminal .fg-245 { + color: #8a8a8a; +} + +.asciinema-terminal .bg-245 { + background-color: #8a8a8a; +} + +.asciinema-terminal .fg-246 { + color: #949494; +} + +.asciinema-terminal .bg-246 { + background-color: #949494; +} + +.asciinema-terminal .fg-247 { + color: #9e9e9e; +} + +.asciinema-terminal .bg-247 { + background-color: #9e9e9e; +} + +.asciinema-terminal .fg-248 { + color: #a8a8a8; +} + +.asciinema-terminal .bg-248 { + background-color: #a8a8a8; +} + +.asciinema-terminal .fg-249 { + color: #b2b2b2; +} + +.asciinema-terminal .bg-249 { + background-color: #b2b2b2; +} + +.asciinema-terminal .fg-250 { + color: #bcbcbc; +} + +.asciinema-terminal .bg-250 { + background-color: #bcbcbc; +} + +.asciinema-terminal .fg-251 { + color: #c6c6c6; +} + +.asciinema-terminal .bg-251 { + background-color: #c6c6c6; +} + +.asciinema-terminal .fg-252 { + color: #d0d0d0; +} + +.asciinema-terminal .bg-252 { + background-color: #d0d0d0; +} + +.asciinema-terminal .fg-253 { + color: #dadada; +} + +.asciinema-terminal .bg-253 { + background-color: #dadada; +} + +.asciinema-terminal .fg-254 { + color: #e4e4e4; +} + +.asciinema-terminal .bg-254 { + background-color: #e4e4e4; +} + +.asciinema-terminal .fg-255 { + color: #eeeeee; +} + +.asciinema-terminal .bg-255 { + background-color: #eeeeee; +} + +.asciinema-theme-asciinema .asciinema-terminal { + color: #cccccc; + background-color: #121314; + border-color: #121314; +} + +.asciinema-theme-asciinema .fg-bg { + color: #121314; +} + +.asciinema-theme-asciinema .bg-fg { + background-color: #cccccc; +} + +.asciinema-theme-asciinema .fg-0 { + color: #000000; +} + +.asciinema-theme-asciinema .bg-0 { + background-color: #000000; +} + +.asciinema-theme-asciinema .fg-1 { + color: #dd3c69; +} + +.asciinema-theme-asciinema .bg-1 { + background-color: #dd3c69; +} + +.asciinema-theme-asciinema .fg-2 { + color: #4ebf22; +} + +.asciinema-theme-asciinema .bg-2 { + background-color: #4ebf22; +} + +.asciinema-theme-asciinema .fg-3 { + color: #ddaf3c; +} + +.asciinema-theme-asciinema .bg-3 { + background-color: #ddaf3c; +} + +.asciinema-theme-asciinema .fg-4 { + color: #26b0d7; +} + +.asciinema-theme-asciinema .bg-4 { + background-color: #26b0d7; +} + +.asciinema-theme-asciinema .fg-5 { + color: #b954e1; +} + +.asciinema-theme-asciinema .bg-5 { + background-color: #b954e1; +} + +.asciinema-theme-asciinema .fg-6 { + color: #54e1b9; +} + +.asciinema-theme-asciinema .bg-6 { + background-color: #54e1b9; +} + +.asciinema-theme-asciinema .fg-7 { + color: #d9d9d9; +} + +.asciinema-theme-asciinema .bg-7 { + background-color: #d9d9d9; +} + +.asciinema-theme-asciinema .fg-8 { + color: #4d4d4d; +} + +.asciinema-theme-asciinema .bg-8 { + background-color: #4d4d4d; +} + +.asciinema-theme-asciinema .fg-9 { + color: #dd3c69; +} + +.asciinema-theme-asciinema .bg-9 { + background-color: #dd3c69; +} + +.asciinema-theme-asciinema .fg-10 { + color: #4ebf22; +} + +.asciinema-theme-asciinema .bg-10 { + background-color: #4ebf22; +} + +.asciinema-theme-asciinema .fg-11 { + color: #ddaf3c; +} + +.asciinema-theme-asciinema .bg-11 { + background-color: #ddaf3c; +} + +.asciinema-theme-asciinema .fg-12 { + color: #26b0d7; +} + +.asciinema-theme-asciinema .bg-12 { + background-color: #26b0d7; +} + +.asciinema-theme-asciinema .fg-13 { + color: #b954e1; +} + +.asciinema-theme-asciinema .bg-13 { + background-color: #b954e1; +} + +.asciinema-theme-asciinema .fg-14 { + color: #54e1b9; +} + +.asciinema-theme-asciinema .bg-14 { + background-color: #54e1b9; +} + +.asciinema-theme-asciinema .fg-15 { + color: #ffffff; +} + +.asciinema-theme-asciinema .bg-15 { + background-color: #ffffff; +} + +.asciinema-theme-asciinema .fg-8, +.asciinema-theme-asciinema .fg-9, +.asciinema-theme-asciinema .fg-10, +.asciinema-theme-asciinema .fg-11, +.asciinema-theme-asciinema .fg-12, +.asciinema-theme-asciinema .fg-13, +.asciinema-theme-asciinema .fg-14, +.asciinema-theme-asciinema .fg-15 { + font-weight: bold; +} + +.asciinema-theme-tango .asciinema-terminal { + color: #cccccc; + background-color: #121314; + border-color: #121314; +} + +.asciinema-theme-tango .fg-bg { + color: #121314; +} + +.asciinema-theme-tango .bg-fg { + background-color: #cccccc; +} + +.asciinema-theme-tango .fg-0 { + color: #000000; +} + +.asciinema-theme-tango .bg-0 { + background-color: #000000; +} + +.asciinema-theme-tango .fg-1 { + color: #cc0000; +} + +.asciinema-theme-tango .bg-1 { + background-color: #cc0000; +} + +.asciinema-theme-tango .fg-2 { + color: #4e9a06; +} + +.asciinema-theme-tango .bg-2 { + background-color: #4e9a06; +} + +.asciinema-theme-tango .fg-3 { + color: #c4a000; +} + +.asciinema-theme-tango .bg-3 { + background-color: #c4a000; +} + +.asciinema-theme-tango .fg-4 { + color: #3465a4; +} + +.asciinema-theme-tango .bg-4 { + background-color: #3465a4; +} + +.asciinema-theme-tango .fg-5 { + color: #75507b; +} + +.asciinema-theme-tango .bg-5 { + background-color: #75507b; +} + +.asciinema-theme-tango .fg-6 { + color: #06989a; +} + +.asciinema-theme-tango .bg-6 { + background-color: #06989a; +} + +.asciinema-theme-tango .fg-7 { + color: #d3d7cf; +} + +.asciinema-theme-tango .bg-7 { + background-color: #d3d7cf; +} + +.asciinema-theme-tango .fg-8 { + color: #555753; +} + +.asciinema-theme-tango .bg-8 { + background-color: #555753; +} + +.asciinema-theme-tango .fg-9 { + color: #ef2929; +} + +.asciinema-theme-tango .bg-9 { + background-color: #ef2929; +} + +.asciinema-theme-tango .fg-10 { + color: #8ae234; +} + +.asciinema-theme-tango .bg-10 { + background-color: #8ae234; +} + +.asciinema-theme-tango .fg-11 { + color: #fce94f; +} + +.asciinema-theme-tango .bg-11 { + background-color: #fce94f; +} + +.asciinema-theme-tango .fg-12 { + color: #729fcf; +} + +.asciinema-theme-tango .bg-12 { + background-color: #729fcf; +} + +.asciinema-theme-tango .fg-13 { + color: #ad7fa8; +} + +.asciinema-theme-tango .bg-13 { + background-color: #ad7fa8; +} + +.asciinema-theme-tango .fg-14 { + color: #34e2e2; +} + +.asciinema-theme-tango .bg-14 { + background-color: #34e2e2; +} + +.asciinema-theme-tango .fg-15 { + color: #eeeeec; +} + +.asciinema-theme-tango .bg-15 { + background-color: #eeeeec; +} + +.asciinema-theme-tango .fg-8, +.asciinema-theme-tango .fg-9, +.asciinema-theme-tango .fg-10, +.asciinema-theme-tango .fg-11, +.asciinema-theme-tango .fg-12, +.asciinema-theme-tango .fg-13, +.asciinema-theme-tango .fg-14, +.asciinema-theme-tango .fg-15 { + font-weight: bold; +} + +.asciinema-theme-solarized-dark .asciinema-terminal { + color: #839496; + background-color: #002b36; + border-color: #002b36; +} + +.asciinema-theme-solarized-dark .fg-bg { + color: #002b36; +} + +.asciinema-theme-solarized-dark .bg-fg { + background-color: #839496; +} + +.asciinema-theme-solarized-dark .fg-0 { + color: #073642; +} + +.asciinema-theme-solarized-dark .bg-0 { + background-color: #073642; +} + +.asciinema-theme-solarized-dark .fg-1 { + color: #dc322f; +} + +.asciinema-theme-solarized-dark .bg-1 { + background-color: #dc322f; +} + +.asciinema-theme-solarized-dark .fg-2 { + color: #859900; +} + +.asciinema-theme-solarized-dark .bg-2 { + background-color: #859900; +} + +.asciinema-theme-solarized-dark .fg-3 { + color: #b58900; +} + +.asciinema-theme-solarized-dark .bg-3 { + background-color: #b58900; +} + +.asciinema-theme-solarized-dark .fg-4 { + color: #268bd2; +} + +.asciinema-theme-solarized-dark .bg-4 { + background-color: #268bd2; +} + +.asciinema-theme-solarized-dark .fg-5 { + color: #d33682; +} + +.asciinema-theme-solarized-dark .bg-5 { + background-color: #d33682; +} + +.asciinema-theme-solarized-dark .fg-6 { + color: #2aa198; +} + +.asciinema-theme-solarized-dark .bg-6 { + background-color: #2aa198; +} + +.asciinema-theme-solarized-dark .fg-7 { + color: #eee8d5; +} + +.asciinema-theme-solarized-dark .bg-7 { + background-color: #eee8d5; +} + +.asciinema-theme-solarized-dark .fg-8 { + color: #002b36; +} + +.asciinema-theme-solarized-dark .bg-8 { + background-color: #002b36; +} + +.asciinema-theme-solarized-dark .fg-9 { + color: #cb4b16; +} + +.asciinema-theme-solarized-dark .bg-9 { + background-color: #cb4b16; +} + +.asciinema-theme-solarized-dark .fg-10 { + color: #586e75; +} + +.asciinema-theme-solarized-dark .bg-10 { + background-color: #586e75; +} + +.asciinema-theme-solarized-dark .fg-11 { + color: #657b83; +} + +.asciinema-theme-solarized-dark .bg-11 { + background-color: #657b83; +} + +.asciinema-theme-solarized-dark .fg-12 { + color: #839496; +} + +.asciinema-theme-solarized-dark .bg-12 { + background-color: #839496; +} + +.asciinema-theme-solarized-dark .fg-13 { + color: #6c71c4; +} + +.asciinema-theme-solarized-dark .bg-13 { + background-color: #6c71c4; +} + +.asciinema-theme-solarized-dark .fg-14 { + color: #93a1a1; +} + +.asciinema-theme-solarized-dark .bg-14 { + background-color: #93a1a1; +} + +.asciinema-theme-solarized-dark .fg-15 { + color: #fdf6e3; +} + +.asciinema-theme-solarized-dark .bg-15 { + background-color: #fdf6e3; +} + +.asciinema-theme-solarized-light .asciinema-terminal { + color: #657b83; + background-color: #fdf6e3; + border-color: #fdf6e3; +} + +.asciinema-theme-solarized-light .fg-bg { + color: #fdf6e3; +} + +.asciinema-theme-solarized-light .bg-fg { + background-color: #657b83; +} + +.asciinema-theme-solarized-light .fg-0 { + color: #073642; +} + +.asciinema-theme-solarized-light .bg-0 { + background-color: #073642; +} + +.asciinema-theme-solarized-light .fg-1 { + color: #dc322f; +} + +.asciinema-theme-solarized-light .bg-1 { + background-color: #dc322f; +} + +.asciinema-theme-solarized-light .fg-2 { + color: #859900; +} + +.asciinema-theme-solarized-light .bg-2 { + background-color: #859900; +} + +.asciinema-theme-solarized-light .fg-3 { + color: #b58900; +} + +.asciinema-theme-solarized-light .bg-3 { + background-color: #b58900; +} + +.asciinema-theme-solarized-light .fg-4 { + color: #268bd2; +} + +.asciinema-theme-solarized-light .bg-4 { + background-color: #268bd2; +} + +.asciinema-theme-solarized-light .fg-5 { + color: #d33682; +} + +.asciinema-theme-solarized-light .bg-5 { + background-color: #d33682; +} + +.asciinema-theme-solarized-light .fg-6 { + color: #2aa198; +} + +.asciinema-theme-solarized-light .bg-6 { + background-color: #2aa198; +} + +.asciinema-theme-solarized-light .fg-7 { + color: #eee8d5; +} + +.asciinema-theme-solarized-light .bg-7 { + background-color: #eee8d5; +} + +.asciinema-theme-solarized-light .fg-8 { + color: #002b36; +} + +.asciinema-theme-solarized-light .bg-8 { + background-color: #002b36; +} + +.asciinema-theme-solarized-light .fg-9 { + color: #cb4b16; +} + +.asciinema-theme-solarized-light .bg-9 { + background-color: #cb4b16; +} + +.asciinema-theme-solarized-light .fg-10 { + color: #586e75; +} + +.asciinema-theme-solarized-light .bg-10 { + background-color: #586e75; +} + +.asciinema-theme-solarized-light .fg-11 { + color: #657c83; +} + +.asciinema-theme-solarized-light .bg-11 { + background-color: #657c83; +} + +.asciinema-theme-solarized-light .fg-12 { + color: #839496; +} + +.asciinema-theme-solarized-light .bg-12 { + background-color: #839496; +} + +.asciinema-theme-solarized-light .fg-13 { + color: #6c71c4; +} + +.asciinema-theme-solarized-light .bg-13 { + background-color: #6c71c4; +} + +.asciinema-theme-solarized-light .fg-14 { + color: #93a1a1; +} + +.asciinema-theme-solarized-light .bg-14 { + background-color: #93a1a1; +} + +.asciinema-theme-solarized-light .fg-15 { + color: #fdf6e3; +} + +.asciinema-theme-solarized-light .bg-15 { + background-color: #fdf6e3; +} + +.asciinema-theme-seti .asciinema-terminal { + color: #cacecd; + background-color: #111213; + border-color: #111213; +} + +.asciinema-theme-seti .fg-bg { + color: #111213; +} + +.asciinema-theme-seti .bg-fg { + background-color: #cacecd; +} + +.asciinema-theme-seti .fg-0 { + color: #323232; +} + +.asciinema-theme-seti .bg-0 { + background-color: #323232; +} + +.asciinema-theme-seti .fg-1 { + color: #c22832; +} + +.asciinema-theme-seti .bg-1 { + background-color: #c22832; +} + +.asciinema-theme-seti .fg-2 { + color: #8ec43d; +} + +.asciinema-theme-seti .bg-2 { + background-color: #8ec43d; +} + +.asciinema-theme-seti .fg-3 { + color: #e0c64f; +} + +.asciinema-theme-seti .bg-3 { + background-color: #e0c64f; +} + +.asciinema-theme-seti .fg-4 { + color: #43a5d5; +} + +.asciinema-theme-seti .bg-4 { + background-color: #43a5d5; +} + +.asciinema-theme-seti .fg-5 { + color: #8b57b5; +} + +.asciinema-theme-seti .bg-5 { + background-color: #8b57b5; +} + +.asciinema-theme-seti .fg-6 { + color: #8ec43d; +} + +.asciinema-theme-seti .bg-6 { + background-color: #8ec43d; +} + +.asciinema-theme-seti .fg-7 { + color: #eeeeee; +} + +.asciinema-theme-seti .bg-7 { + background-color: #eeeeee; +} + +.asciinema-theme-seti .fg-8 { + color: #323232; +} + +.asciinema-theme-seti .bg-8 { + background-color: #323232; +} + +.asciinema-theme-seti .fg-9 { + color: #c22832; +} + +.asciinema-theme-seti .bg-9 { + background-color: #c22832; +} + +.asciinema-theme-seti .fg-10 { + color: #8ec43d; +} + +.asciinema-theme-seti .bg-10 { + background-color: #8ec43d; +} + +.asciinema-theme-seti .fg-11 { + color: #e0c64f; +} + +.asciinema-theme-seti .bg-11 { + background-color: #e0c64f; +} + +.asciinema-theme-seti .fg-12 { + color: #43a5d5; +} + +.asciinema-theme-seti .bg-12 { + background-color: #43a5d5; +} + +.asciinema-theme-seti .fg-13 { + color: #8b57b5; +} + +.asciinema-theme-seti .bg-13 { + background-color: #8b57b5; +} + +.asciinema-theme-seti .fg-14 { + color: #8ec43d; +} + +.asciinema-theme-seti .bg-14 { + background-color: #8ec43d; +} + +.asciinema-theme-seti .fg-15 { + color: #ffffff; +} + +.asciinema-theme-seti .bg-15 { + background-color: #ffffff; +} + +.asciinema-theme-seti .fg-8, +.asciinema-theme-seti .fg-9, +.asciinema-theme-seti .fg-10, +.asciinema-theme-seti .fg-11, +.asciinema-theme-seti .fg-12, +.asciinema-theme-seti .fg-13, +.asciinema-theme-seti .fg-14, +.asciinema-theme-seti .fg-15 { + font-weight: bold; +} + +/* Based on Monokai from base16 collection - https://github.com/chriskempson/base16 */ +.asciinema-theme-monokai .asciinema-terminal { + color: #f8f8f2; + background-color: #272822; + border-color: #272822; +} + +.asciinema-theme-monokai .fg-bg { + color: #272822; +} + +.asciinema-theme-monokai .bg-fg { + background-color: #f8f8f2; +} + +.asciinema-theme-monokai .fg-0 { + color: #272822; +} + +.asciinema-theme-monokai .bg-0 { + background-color: #272822; +} + +.asciinema-theme-monokai .fg-1 { + color: #f92672; +} + +.asciinema-theme-monokai .bg-1 { + background-color: #f92672; +} + +.asciinema-theme-monokai .fg-2 { + color: #a6e22e; +} + +.asciinema-theme-monokai .bg-2 { + background-color: #a6e22e; +} + +.asciinema-theme-monokai .fg-3 { + color: #f4bf75; +} + +.asciinema-theme-monokai .bg-3 { + background-color: #f4bf75; +} + +.asciinema-theme-monokai .fg-4 { + color: #66d9ef; +} + +.asciinema-theme-monokai .bg-4 { + background-color: #66d9ef; +} + +.asciinema-theme-monokai .fg-5 { + color: #ae81ff; +} + +.asciinema-theme-monokai .bg-5 { + background-color: #ae81ff; +} + +.asciinema-theme-monokai .fg-6 { + color: #a1efe4; +} + +.asciinema-theme-monokai .bg-6 { + background-color: #a1efe4; +} + +.asciinema-theme-monokai .fg-7 { + color: #f8f8f2; +} + +.asciinema-theme-monokai .bg-7 { + background-color: #f8f8f2; +} + +.asciinema-theme-monokai .fg-8 { + color: #75715e; +} + +.asciinema-theme-monokai .bg-8 { + background-color: #75715e; +} + +.asciinema-theme-monokai .fg-9 { + color: #f92672; +} + +.asciinema-theme-monokai .bg-9 { + background-color: #f92672; +} + +.asciinema-theme-monokai .fg-10 { + color: #a6e22e; +} + +.asciinema-theme-monokai .bg-10 { + background-color: #a6e22e; +} + +.asciinema-theme-monokai .fg-11 { + color: #f4bf75; +} + +.asciinema-theme-monokai .bg-11 { + background-color: #f4bf75; +} + +.asciinema-theme-monokai .fg-12 { + color: #66d9ef; +} + +.asciinema-theme-monokai .bg-12 { + background-color: #66d9ef; +} + +.asciinema-theme-monokai .fg-13 { + color: #ae81ff; +} + +.asciinema-theme-monokai .bg-13 { + background-color: #ae81ff; +} + +.asciinema-theme-monokai .fg-14 { + color: #a1efe4; +} + +.asciinema-theme-monokai .bg-14 { + background-color: #a1efe4; +} + +.asciinema-theme-monokai .fg-15 { + color: #f9f8f5; +} + +.asciinema-theme-monokai .bg-15 { + background-color: #f9f8f5; +} + +.asciinema-theme-monokai .fg-8, +.asciinema-theme-monokai .fg-9, +.asciinema-theme-monokai .fg-10, +.asciinema-theme-monokai .fg-11, +.asciinema-theme-monokai .fg-12, +.asciinema-theme-monokai .fg-13, +.asciinema-theme-monokai .fg-14, +.asciinema-theme-monokai .fg-15 { + font-weight: bold; +} diff --git a/docs/assets/css/extra.css b/docs/assets/css/extra.css new file mode 100644 index 0000000000..c6a3a7fb8f --- /dev/null +++ b/docs/assets/css/extra.css @@ -0,0 +1,32 @@ +.md-header__button.md-logo img, .md-header__button.md-logo svg { + width: 3rem; +} + +.md-header-nav__button.md-logo { + margin: 0; + padding: 0; +} + +.md-header { + height: 3rem; +} + +.md-header-nav { + align-items: center; +} + +.md-ellipsis { + display: inline; +} + +.md-header-nav__topic { + position: relative; +} + +[data-md-color-primary=black] .md-tabs { + background-color: #0DCEFF; +} + +.md-tabs { + color: black; +} diff --git a/docs/assets/images/favicons/favicon.ico b/docs/assets/images/favicons/favicon.ico new file mode 100644 index 0000000000..9e41a24838 Binary files /dev/null and b/docs/assets/images/favicons/favicon.ico differ diff --git a/docs/assets/images/icons/icons8-add-property-64.png b/docs/assets/images/icons/icons8-add-property-64.png new file mode 100644 index 0000000000..53d2b16cb1 Binary files /dev/null and b/docs/assets/images/icons/icons8-add-property-64.png differ diff --git a/docs/assets/images/icons/icons8-attach-64.png b/docs/assets/images/icons/icons8-attach-64.png new file mode 100644 index 0000000000..2d4ab27e3d Binary files /dev/null and b/docs/assets/images/icons/icons8-attach-64.png differ diff --git a/docs/assets/images/icons/icons8-bug-64.png b/docs/assets/images/icons/icons8-bug-64.png new file mode 100644 index 0000000000..ce4b80192d Binary files /dev/null and b/docs/assets/images/icons/icons8-bug-64.png differ diff --git a/docs/assets/images/icons/icons8-code-64.png b/docs/assets/images/icons/icons8-code-64.png new file mode 100644 index 0000000000..4ffa3cccf0 Binary files /dev/null and b/docs/assets/images/icons/icons8-code-64.png differ diff --git a/docs/assets/images/icons/icons8-edit-property-64.png b/docs/assets/images/icons/icons8-edit-property-64.png new file mode 100644 index 0000000000..cf8a2c79f8 Binary files /dev/null and b/docs/assets/images/icons/icons8-edit-property-64.png differ diff --git a/docs/assets/images/icons/icons8-editor-64.png b/docs/assets/images/icons/icons8-editor-64.png new file mode 100644 index 0000000000..787b180c90 Binary files /dev/null and b/docs/assets/images/icons/icons8-editor-64.png differ diff --git a/docs/assets/images/icons/icons8-fork-64.png b/docs/assets/images/icons/icons8-fork-64.png new file mode 100644 index 0000000000..434dda59f8 Binary files /dev/null and b/docs/assets/images/icons/icons8-fork-64.png differ diff --git a/docs/assets/images/icons/icons8-help-64.png b/docs/assets/images/icons/icons8-help-64.png new file mode 100644 index 0000000000..578624d07b Binary files /dev/null and b/docs/assets/images/icons/icons8-help-64.png differ diff --git a/docs/assets/images/icons/icons8-inspect-code-64.png b/docs/assets/images/icons/icons8-inspect-code-64.png new file mode 100644 index 0000000000..3d3d8471f9 Binary files /dev/null and b/docs/assets/images/icons/icons8-inspect-code-64.png differ diff --git a/docs/assets/images/icons/icons8-inspector-64.png b/docs/assets/images/icons/icons8-inspector-64.png new file mode 100644 index 0000000000..3a1d517241 Binary files /dev/null and b/docs/assets/images/icons/icons8-inspector-64.png differ diff --git a/docs/assets/images/icons/icons8-list-64.png b/docs/assets/images/icons/icons8-list-64.png new file mode 100644 index 0000000000..eb95222f4d Binary files /dev/null and b/docs/assets/images/icons/icons8-list-64.png differ diff --git a/docs/assets/images/icons/icons8-module-64.png b/docs/assets/images/icons/icons8-module-64.png new file mode 100644 index 0000000000..52f9dfc711 Binary files /dev/null and b/docs/assets/images/icons/icons8-module-64.png differ diff --git a/docs/assets/images/icons/icons8-plan-64.png b/docs/assets/images/icons/icons8-plan-64.png new file mode 100644 index 0000000000..475e9ba9a7 Binary files /dev/null and b/docs/assets/images/icons/icons8-plan-64.png differ diff --git a/docs/assets/images/icons/icons8-plugin-64.png b/docs/assets/images/icons/icons8-plugin-64.png new file mode 100644 index 0000000000..5d42c5d936 Binary files /dev/null and b/docs/assets/images/icons/icons8-plugin-64.png differ diff --git a/docs/assets/images/icons/icons8-program-64.png b/docs/assets/images/icons/icons8-program-64.png new file mode 100644 index 0000000000..30696d6d33 Binary files /dev/null and b/docs/assets/images/icons/icons8-program-64.png differ diff --git a/docs/assets/images/icons/icons8-remove-property-64.png b/docs/assets/images/icons/icons8-remove-property-64.png new file mode 100644 index 0000000000..bf3d237621 Binary files /dev/null and b/docs/assets/images/icons/icons8-remove-property-64.png differ diff --git a/docs/assets/images/icons/icons8-report-64.png b/docs/assets/images/icons/icons8-report-64.png new file mode 100644 index 0000000000..7f4a5fcf79 Binary files /dev/null and b/docs/assets/images/icons/icons8-report-64.png differ diff --git a/docs/assets/images/icons/icons8-source-64.png b/docs/assets/images/icons/icons8-source-64.png new file mode 100644 index 0000000000..c6781eafce Binary files /dev/null and b/docs/assets/images/icons/icons8-source-64.png differ diff --git a/docs/assets/images/icons/icons8-sys-info-64.png b/docs/assets/images/icons/icons8-sys-info-64.png new file mode 100644 index 0000000000..2fac87233c Binary files /dev/null and b/docs/assets/images/icons/icons8-sys-info-64.png differ diff --git a/docs/assets/images/icons/icons8-template-64.png b/docs/assets/images/icons/icons8-template-64.png new file mode 100644 index 0000000000..db225de71f Binary files /dev/null and b/docs/assets/images/icons/icons8-template-64.png differ diff --git a/docs/assets/images/icons/icons8-true-false-64.png b/docs/assets/images/icons/icons8-true-false-64.png new file mode 100644 index 0000000000..fe874cee4c Binary files /dev/null and b/docs/assets/images/icons/icons8-true-false-64.png differ diff --git a/docs/assets/images/logos/logo.svg b/docs/assets/images/logos/logo.svg new file mode 100644 index 0000000000..228eab724a --- /dev/null +++ b/docs/assets/images/logos/logo.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/docs/assets/js/asciinema-player.js b/docs/assets/js/asciinema-player.js new file mode 100644 index 0000000000..0d14b0dfcb --- /dev/null +++ b/docs/assets/js/asciinema-player.js @@ -0,0 +1,32424 @@ +/** + * asciinema-player v2.6.1 + * + * Copyright 2011-2018, Marcin Kulik + * + */ + +// CustomEvent polyfill from MDN (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent) + +(function () { + if (typeof window.CustomEvent === "function") { + return false; + } + + function CustomEvent(event, params) { + params = params || {bubbles: false, cancelable: false, detail: undefined}; + var evt = document.createEvent('CustomEvent'); + evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail); + return evt; + } + + CustomEvent.prototype = window.Event.prototype; + + window.CustomEvent = CustomEvent; +})(); + +/** + * @license + * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. + * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt + * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt + * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt + * Code distributed by Google as part of the polymer project is also + * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt + */ +// @version 0.7.22 +"undefined" == typeof WeakMap && !function () { + var e = Object.defineProperty, t = Date.now() % 1e9, n = function () { + this.name = "__st" + (1e9 * Math.random() >>> 0) + (t++ + "__") + }; + n.prototype = { + set: function (t, n) { + var o = t[this.name]; + return o && o[0] === t ? o[1] = n : e(t, this.name, {value: [t, n], writable: !0}), this + }, get: function (e) { + var t; + return (t = e[this.name]) && t[0] === e ? t[1] : void 0 + }, "delete": function (e) { + var t = e[this.name]; + return t && t[0] === e ? (t[0] = t[1] = void 0, !0) : !1 + }, has: function (e) { + var t = e[this.name]; + return t ? t[0] === e : !1 + } + }, window.WeakMap = n +}(), function (e) { + function t(e) { + E.push(e), b || (b = !0, w(o)) + } + + function n(e) { + return window.ShadowDOMPolyfill && window.ShadowDOMPolyfill.wrapIfNeeded(e) || e + } + + function o() { + b = !1; + var e = E; + E = [], e.sort(function (e, t) { + return e.uid_ - t.uid_ + }); + var t = !1; + e.forEach(function (e) { + var n = e.takeRecords(); + r(e), n.length && (e.callback_(n, e), t = !0) + }), t && o() + } + + function r(e) { + e.nodes_.forEach(function (t) { + var n = v.get(t); + n && n.forEach(function (t) { + t.observer === e && t.removeTransientObservers() + }) + }) + } + + function i(e, t) { + for (var n = e; n; n = n.parentNode) { + var o = v.get(n); + if (o) { + for (var r = 0; r < o.length; r++) { + var i = o[r], a = i.options; + if (n === e || a.subtree) { + var d = t(a); + d && i.enqueue(d) + } + } + } + } + } + + function a(e) { + this.callback_ = e, this.nodes_ = [], this.records_ = [], this.uid_ = ++_ + } + + function d(e, t) { + this.type = e, this.target = t, this.addedNodes = [], this.removedNodes = [], this.previousSibling = null, this.nextSibling = null, this.attributeName = null, this.attributeNamespace = null, this.oldValue = null + } + + function s(e) { + var t = new d(e.type, e.target); + return t.addedNodes = e.addedNodes.slice(), t.removedNodes = e.removedNodes.slice(), t.previousSibling = e.previousSibling, t.nextSibling = e.nextSibling, t.attributeName = e.attributeName, t.attributeNamespace = e.attributeNamespace, t.oldValue = e.oldValue, t + } + + function u(e, t) { + return y = new d(e, t) + } + + function c(e) { + return N ? N : (N = s(y), N.oldValue = e, N) + } + + function l() { + y = N = void 0 + } + + function f(e) { + return e === N || e === y + } + + function p(e, t) { + return e === t ? e : N && f(e) ? N : null + } + + function m(e, t, n) { + this.observer = e, this.target = t, this.options = n, this.transientObservedNodes = [] + } + + if (!e.JsMutationObserver) { + var w, v = new WeakMap; + if (/Trident|Edge/.test( + navigator.userAgent)) { + w = setTimeout; + } else if (window.setImmediate) { + w = window.setImmediate; + } else { + var h = [], g = String(Math.random()); + window.addEventListener("message", function (e) { + if (e.data === g) { + var t = h; + h = [], t.forEach(function (e) { + e() + }) + } + }), w = function (e) { + h.push(e), window.postMessage(g, "*") + } + } + var b = !1, E = [], _ = 0; + a.prototype = { + observe: function (e, t) { + if (e = n(e), !t.childList && !t.attributes && !t.characterData || t.attributeOldValue + && !t.attributes || t.attributeFilter && t.attributeFilter.length && !t.attributes + || t.characterDataOldValue && !t.characterData) { + throw new SyntaxError; + } + var o = v.get(e); + o || v.set(e, o = []); + for (var r, i = 0; i < o.length; i++) { + if (o[i].observer === this) { + r = o[i], r.removeListeners(), r.options = t; + break + } + } + r || (r = new m(this, e, t), o.push(r), this.nodes_.push(e)), r.addListeners() + }, disconnect: function () { + this.nodes_.forEach(function (e) { + for (var t = v.get(e), n = 0; n < t.length; n++) { + var o = t[n]; + if (o.observer === this) { + o.removeListeners(), t.splice(n, 1); + break + } + } + }, this), this.records_ = [] + }, takeRecords: function () { + var e = this.records_; + return this.records_ = [], e + } + }; + var y, N; + m.prototype = { + enqueue: function (e) { + var n = this.observer.records_, o = n.length; + if (n.length > 0) { + var r = n[o - 1], i = p(r, e); + if (i) { + return void (n[o - 1] = i) + } + } else { + t(this.observer); + } + n[o] = e + }, addListeners: function () { + this.addListeners_(this.target) + }, addListeners_: function (e) { + var t = this.options; + t.attributes && e.addEventListener("DOMAttrModified", this, !0), t.characterData + && e.addEventListener("DOMCharacterDataModified", this, !0), t.childList + && e.addEventListener("DOMNodeInserted", this, !0), (t.childList || t.subtree) + && e.addEventListener("DOMNodeRemoved", this, !0) + }, removeListeners: function () { + this.removeListeners_(this.target) + }, removeListeners_: function (e) { + var t = this.options; + t.attributes && e.removeEventListener("DOMAttrModified", this, !0), t.characterData + && e.removeEventListener("DOMCharacterDataModified", this, !0), t.childList + && e.removeEventListener("DOMNodeInserted", this, !0), (t.childList || t.subtree) + && e.removeEventListener("DOMNodeRemoved", this, !0) + }, addTransientObserver: function (e) { + if (e !== this.target) { + this.addListeners_(e), this.transientObservedNodes.push(e); + var t = v.get(e); + t || v.set(e, t = []), t.push(this) + } + }, removeTransientObservers: function () { + var e = this.transientObservedNodes; + this.transientObservedNodes = [], e.forEach(function (e) { + this.removeListeners_(e); + for (var t = v.get(e), n = 0; n < t.length; n++) { + if (t[n] === this) { + t.splice(n, 1); + break + } + } + }, this) + }, handleEvent: function (e) { + switch (e.stopImmediatePropagation(), e.type) { + case"DOMAttrModified": + var t = e.attrName, n = e.relatedNode.namespaceURI, o = e.target, + r = new u("attributes", o); + r.attributeName = t, r.attributeNamespace = n; + var a = e.attrChange === MutationEvent.ADDITION ? null : e.prevValue; + i(o, function (e) { + return !e.attributes || e.attributeFilter && e.attributeFilter.length && -1 + === e.attributeFilter.indexOf(t) && -1 === e.attributeFilter.indexOf(n) ? void 0 + : e.attributeOldValue ? c(a) : r + }); + break; + case"DOMCharacterDataModified": + var o = e.target, r = u("characterData", o), a = e.prevValue; + i(o, function (e) { + return e.characterData ? e.characterDataOldValue ? c(a) : r : void 0 + }); + break; + case"DOMNodeRemoved": + this.addTransientObserver(e.target); + case"DOMNodeInserted": + var d, s, f = e.target; + "DOMNodeInserted" === e.type ? (d = [f], s = []) : (d = [], s = [f]); + var p = f.previousSibling, m = f.nextSibling, r = u("childList", e.target.parentNode); + r.addedNodes = d, r.removedNodes = s, r.previousSibling = p, r.nextSibling = m, i( + e.relatedNode, function (e) { + return e.childList ? r : void 0 + }) + } + l() + } + }, e.JsMutationObserver = a, e.MutationObserver + || (e.MutationObserver = a, a._isPolyfilled = !0) + } +}(self), function (e) { + "use strict"; + if (!window.performance) { + var t = Date.now(); + window.performance = { + now: function () { + return Date.now() - t + } + } + } + window.requestAnimationFrame || (window.requestAnimationFrame = function () { + var e = window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame; + return e ? function (t) { + return e(function () { + t(performance.now()) + }) + } : function (e) { + return window.setTimeout(e, 1e3 / 60) + } + }()), window.cancelAnimationFrame || (window.cancelAnimationFrame = function () { + return window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || function (e) { + clearTimeout(e) + } + }()); + var n = function () { + var e = document.createEvent("Event"); + return e.initEvent("foo", !0, !0), e.preventDefault(), e.defaultPrevented + }(); + if (!n) { + var o = Event.prototype.preventDefault; + Event.prototype.preventDefault = function () { + this.cancelable && (o.call(this), Object.defineProperty(this, "defaultPrevented", { + get: function () { + return !0 + }, configurable: !0 + })) + } + } + var r = /Trident/.test(navigator.userAgent); + if ((!window.CustomEvent || r && "function" != typeof window.CustomEvent) + && (window.CustomEvent = function (e, t) { + t = t || {}; + var n = document.createEvent("CustomEvent"); + return n.initCustomEvent(e, Boolean(t.bubbles), Boolean(t.cancelable), t.detail), n + }, window.CustomEvent.prototype = window.Event.prototype), !window.Event || r && "function" + != typeof window.Event) { + var i = window.Event; + window.Event = function (e, t) { + t = t || {}; + var n = document.createEvent("Event"); + return n.initEvent(e, Boolean(t.bubbles), Boolean(t.cancelable)), n + }, window.Event.prototype = i.prototype + } +}(window.WebComponents), window.CustomElements = window.CustomElements + || {flags: {}}, function (e) { + var t = e.flags, n = [], o = function (e) { + n.push(e) + }, r = function () { + n.forEach(function (t) { + t(e) + }) + }; + e.addModule = o, e.initializeModules = r, e.hasNative = Boolean( + document.registerElement), e.isIE = /Trident/.test( + navigator.userAgent), e.useNative = !t.register && e.hasNative && !window.ShadowDOMPolyfill + && (!window.HTMLImports || window.HTMLImports.useNative) +}(window.CustomElements), window.CustomElements.addModule(function (e) { + function t(e, t) { + n(e, function (e) { + return t(e) ? !0 : void o(e, t) + }), o(e, t) + } + + function n(e, t, o) { + var r = e.firstElementChild; + if (!r) { + for (r = e.firstChild; r && r.nodeType !== Node.ELEMENT_NODE;) { + r = r.nextSibling; + } + } + for (; r;) { + t(r, o) !== !0 && n(r, t, o), r = r.nextElementSibling; + } + return null + } + + function o(e, n) { + for (var o = e.shadowRoot; o;) { + t(o, n), o = o.olderShadowRoot + } + } + + function r(e, t) { + i(e, t, []) + } + + function i(e, t, n) { + if (e = window.wrap(e), !(n.indexOf(e) >= 0)) { + n.push(e); + for (var o, r = e.querySelectorAll("link[rel=" + a + "]"), d = 0, s = r.length; + s > d && (o = r[d]); d++) { + o["import"] && i(o["import"], t, n); + } + t(e) + } + } + + var a = window.HTMLImports ? window.HTMLImports.IMPORT_LINK_TYPE : "none"; + e.forDocumentTree = r, e.forSubtree = t +}), window.CustomElements.addModule(function (e) { + function t(e, t) { + return n(e, t) || o(e, t) + } + + function n(t, n) { + return e.upgrade(t, n) ? !0 : void (n && a(t)) + } + + function o(e, t) { + b(e, function (e) { + return n(e, t) ? !0 : void 0 + }) + } + + function r(e) { + N.push(e), y || (y = !0, setTimeout(i)) + } + + function i() { + y = !1; + for (var e, t = N, n = 0, o = t.length; o > n && (e = t[n]); n++) { + e(); + } + N = [] + } + + function a(e) { + _ ? r(function () { + d(e) + }) : d(e) + } + + function d(e) { + e.__upgraded__ && !e.__attached && (e.__attached = !0, e.attachedCallback + && e.attachedCallback()) + } + + function s(e) { + u(e), b(e, function (e) { + u(e) + }) + } + + function u(e) { + _ ? r(function () { + c(e) + }) : c(e) + } + + function c(e) { + e.__upgraded__ && e.__attached && (e.__attached = !1, e.detachedCallback + && e.detachedCallback()) + } + + function l(e) { + for (var t = e, n = window.wrap(document); t;) { + if (t == n) { + return !0; + } + t = t.parentNode || t.nodeType === Node.DOCUMENT_FRAGMENT_NODE && t.host + } + } + + function f(e) { + if (e.shadowRoot && !e.shadowRoot.__watched) { + g.dom && console.log("watching shadow-root for: ", e.localName); + for (var t = e.shadowRoot; t;) { + w(t), t = t.olderShadowRoot + } + } + } + + function p(e, n) { + if (g.dom) { + var o = n[0]; + if (o && "childList" === o.type && o.addedNodes && o.addedNodes) { + for (var r = o.addedNodes[0]; r && r !== document && !r.host;) { + r = r.parentNode; + } + var i = r && (r.URL || r._URL || r.host && r.host.localName) || ""; + i = i.split("/?").shift().split("/").pop() + } + console.group("mutations (%d) [%s]", n.length, i || "") + } + var a = l(e); + n.forEach(function (e) { + "childList" === e.type && (M(e.addedNodes, function (e) { + e.localName && t(e, a) + }), M(e.removedNodes, function (e) { + e.localName && s(e) + })) + }), g.dom && console.groupEnd() + } + + function m(e) { + for (e = window.wrap(e), e || (e = window.wrap(document)); e.parentNode;) { + e = e.parentNode; + } + var t = e.__observer; + t && (p(e, t.takeRecords()), i()) + } + + function w(e) { + if (!e.__observer) { + var t = new MutationObserver(p.bind(this, e)); + t.observe(e, {childList: !0, subtree: !0}), e.__observer = t + } + } + + function v(e) { + e = window.wrap(e), g.dom && console.group("upgradeDocument: ", e.baseURI.split("/").pop()); + var n = e === window.wrap(document); + t(e, n), w(e), g.dom && console.groupEnd() + } + + function h(e) { + E(e, v) + } + + var g = e.flags, b = e.forSubtree, E = e.forDocumentTree, + _ = window.MutationObserver._isPolyfilled && g["throttle-attached"]; + e.hasPolyfillMutations = _, e.hasThrottledAttached = _; + var y = !1, N = [], M = Array.prototype.forEach.call.bind(Array.prototype.forEach), + O = Element.prototype.createShadowRoot; + O && (Element.prototype.createShadowRoot = function () { + var e = O.call(this); + return window.CustomElements.watchShadow(this), e + }), e.watchShadow = f, e.upgradeDocumentTree = h, e.upgradeDocument = v, e.upgradeSubtree = o, e.upgradeAll = t, e.attached = a, e.takeRecords = m +}), window.CustomElements.addModule(function (e) { + function t(t, o) { + if ("template" === t.localName && window.HTMLTemplateElement && HTMLTemplateElement.decorate + && HTMLTemplateElement.decorate(t), !t.__upgraded__ && t.nodeType === Node.ELEMENT_NODE) { + var r = t.getAttribute("is"), + i = e.getRegisteredDefinition(t.localName) || e.getRegisteredDefinition(r); + if (i && (r && i.tag == t.localName || !r && !i["extends"])) { + return n(t, i, o) + } + } + } + + function n(t, n, r) { + return a.upgrade && console.group("upgrade:", t.localName), n.is && t.setAttribute("is", + n.is), o(t, n), t.__upgraded__ = !0, i(t), r && e.attached(t), e.upgradeSubtree(t, + r), a.upgrade && console.groupEnd(), t + } + + function o(e, t) { + Object.__proto__ ? e.__proto__ = t.prototype : (r(e, t.prototype, + t["native"]), e.__proto__ = t.prototype) + } + + function r(e, t, n) { + for (var o = {}, r = t; r !== n && r !== HTMLElement.prototype;) { + for (var i, a = Object.getOwnPropertyNames(r), d = 0; i = a[d]; d++) { + o[i] + || (Object.defineProperty(e, i, Object.getOwnPropertyDescriptor(r, i)), o[i] = 1); + } + r = Object.getPrototypeOf(r) + } + } + + function i(e) { + e.createdCallback && e.createdCallback() + } + + var a = e.flags; + e.upgrade = t, e.upgradeWithDefinition = n, e.implementPrototype = o +}), window.CustomElements.addModule(function (e) { + function t(t, o) { + var s = o || {}; + if (!t) { + throw new Error("document.registerElement: first argument `name` must not be empty"); + } + if (t.indexOf("-") < 0) { + throw new Error( + "document.registerElement: first argument ('name') must contain a dash ('-'). Argument provided was '" + + String(t) + "'."); + } + if (r(t)) { + throw new Error( + "Failed to execute 'registerElement' on 'Document': Registration failed for type '" + + String( + t) + "'. The type name is invalid."); + } + if (u(t)) { + throw new Error( + "DuplicateDefinitionError: a type with name '" + String(t) + "' is already registered"); + } + return s.prototype || (s.prototype = Object.create( + HTMLElement.prototype)), s.__name = t.toLowerCase(), s["extends"] + && (s["extends"] = s["extends"].toLowerCase()), s.lifecycle = s.lifecycle || {}, s.ancestry = i( + s["extends"]), a(s), d(s), n(s.prototype), c(s.__name, s), s.ctor = l( + s), s.ctor.prototype = s.prototype, s.prototype.constructor = s.ctor, e.ready && v( + document), s.ctor + } + + function n(e) { + if (!e.setAttribute._polyfilled) { + var t = e.setAttribute; + e.setAttribute = function (e, n) { + o.call(this, e, n, t) + }; + var n = e.removeAttribute; + e.removeAttribute = function (e) { + o.call(this, e, null, n) + }, e.setAttribute._polyfilled = !0 + } + } + + function o(e, t, n) { + e = e.toLowerCase(); + var o = this.getAttribute(e); + n.apply(this, arguments); + var r = this.getAttribute(e); + this.attributeChangedCallback && r !== o && this.attributeChangedCallback(e, o, r) + } + + function r(e) { + for (var t = 0; t < _.length; t++) { + if (e === _[t]) { + return !0 + } + } + } + + function i(e) { + var t = u(e); + return t ? i(t["extends"]).concat([t]) : [] + } + + function a(e) { + for (var t, n = e["extends"], o = 0; t = e.ancestry[o]; o++) { + n = t.is && t.tag; + } + e.tag = n || e.__name, n && (e.is = e.__name) + } + + function d(e) { + if (!Object.__proto__) { + var t = HTMLElement.prototype; + if (e.is) { + var n = document.createElement(e.tag); + t = Object.getPrototypeOf(n) + } + for (var o, r = e.prototype, i = !1; r;) { + r == t && (i = !0), o = Object.getPrototypeOf(r), o + && (r.__proto__ = o), r = o; + } + i || console.warn( + e.tag + " prototype not found in prototype chain for " + e.is), e["native"] = t + } + } + + function s(e) { + return g(M(e.tag), e) + } + + function u(e) { + return e ? y[e.toLowerCase()] : void 0 + } + + function c(e, t) { + y[e] = t + } + + function l(e) { + return function () { + return s(e) + } + } + + function f(e, t, n) { + return e === N ? p(t, n) : O(e, t) + } + + function p(e, t) { + e && (e = e.toLowerCase()), t && (t = t.toLowerCase()); + var n = u(t || e); + if (n) { + if (e == n.tag && t == n.is) { + return new n.ctor; + } + if (!t && !n.is) { + return new n.ctor + } + } + var o; + return t ? (o = p(e), o.setAttribute("is", t), o) : (o = M(e), e.indexOf("-") >= 0 && b(o, + HTMLElement), o) + } + + function m(e, t) { + var n = e[t]; + e[t] = function () { + var e = n.apply(this, arguments); + return h(e), e + } + } + + var w, v = (e.isIE, e.upgradeDocumentTree), h = e.upgradeAll, g = e.upgradeWithDefinition, + b = e.implementPrototype, E = e.useNative, + _ = ["annotation-xml", "color-profile", "font-face", "font-face-src", "font-face-uri", + "font-face-format", "font-face-name", "missing-glyph"], y = {}, + N = "http://www.w3.org/1999/xhtml", M = document.createElement.bind(document), + O = document.createElementNS.bind(document); + w = Object.__proto__ || E ? function (e, t) { + return e instanceof t + } : function (e, t) { + if (e instanceof t) { + return !0; + } + for (var n = e; n;) { + if (n === t.prototype) { + return !0; + } + n = n.__proto__ + } + return !1 + }, m(Node.prototype, "cloneNode"), m(document, + "importNode"), document.registerElement = t, document.createElement = p, document.createElementNS = f, e.registry = y, e["instanceof"] = w, e.reservedTagList = _, e.getRegisteredDefinition = u, document.register = document.registerElement +}), function (e) { + function t() { + i(window.wrap(document)), window.CustomElements.ready = !0; + var e = window.requestAnimationFrame || function (e) { + setTimeout(e, 16) + }; + e(function () { + setTimeout(function () { + window.CustomElements.readyTime = Date.now(), window.HTMLImports + && (window.CustomElements.elapsed = window.CustomElements.readyTime + - window.HTMLImports.readyTime), document.dispatchEvent( + new CustomEvent("WebComponentsReady", {bubbles: !0})) + }) + }) + } + + var n = e.useNative, o = e.initializeModules; + e.isIE; + if (n) { + var r = function () { + }; + e.watchShadow = r, e.upgrade = r, e.upgradeAll = r, e.upgradeDocumentTree = r, e.upgradeSubtree = r, e.takeRecords = r, e["instanceof"] = function (e, + t) { + return e instanceof t + } + } else { + o(); + } + var i = e.upgradeDocumentTree, a = e.upgradeDocument; + if (window.wrap || (window.ShadowDOMPolyfill + ? (window.wrap = window.ShadowDOMPolyfill.wrapIfNeeded, window.unwrap = window.ShadowDOMPolyfill.unwrapIfNeeded) + : window.wrap = window.unwrap = function (e) { + return e + }), window.HTMLImports && (window.HTMLImports.__importsParsingHook = function (e) { + e["import"] && a(wrap(e["import"])) + }), "complete" === document.readyState || e.flags.eager) { + t(); + } else if ("interactive" + !== document.readyState || window.attachEvent || window.HTMLImports + && !window.HTMLImports.ready) { + var d = window.HTMLImports && !window.HTMLImports.ready ? "HTMLImportsLoaded" + : "DOMContentLoaded"; + window.addEventListener(d, t) + } else { + t() + } +}(window.CustomElements); +if (typeof Math.imul == "undefined" || (Math.imul(0xffffffff, 5) == 0)) { + Math.imul = function (a, b) { + var ah = (a >>> 16) & 0xffff; + var al = a & 0xffff; + var bh = (b >>> 16) & 0xffff; + var bl = b & 0xffff; + // the shift by 0 fixes the sign on the high part + // the final |0 converts the unsigned value into a signed value + return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0); + } +} + +/** + * React v15.5.4 + * + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +!function (t) { + if ("object" == typeof exports && "undefined" + != typeof module) { + module.exports = t(); + } else if ("function" == typeof define + && define.amd) { + define([], t); + } else { + var e; + e = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" + != typeof self ? self : this, e.React = t() + } +}(function () { + return function t(e, n, r) { + function o(u, a) { + if (!n[u]) { + if (!e[u]) { + var s = "function" == typeof require && require; + if (!a && s) { + return s(u, !0); + } + if (i) { + return i(u, !0); + } + var c = new Error("Cannot find module '" + u + "'"); + throw c.code = "MODULE_NOT_FOUND", c + } + var l = n[u] = {exports: {}}; + e[u][0].call(l.exports, function (t) { + var n = e[u][1][t]; + return o(n || t) + }, l, l.exports, t, e, n, r) + } + return n[u].exports + } + + for (var i = "function" == typeof require && require, u = 0; u < r.length; u++) { + o(r[u]); + } + return o + }({ + 1: [function (t, e, n) { + "use strict"; + + function r(t) { + var e = {"=": "=0", ":": "=2"}; + return "$" + ("" + t).replace(/[=:]/g, function (t) { + return e[t] + }) + } + + function o(t) { + var e = {"=0": "=", "=2": ":"}; + return ("" + ("." === t[0] && "$" === t[1] ? t.substring(2) : t.substring(1))).replace( + /(=0|=2)/g, function (t) { + return e[t] + }) + } + + var i = {escape: r, unescape: o}; + e.exports = i + }, {}], + 2: [function (t, e, n) { + "use strict"; + var r = t(20), o = (t(24), function (t) { + var e = this; + if (e.instancePool.length) { + var n = e.instancePool.pop(); + return e.call(n, t), n + } + return new e(t) + }), i = function (t, e) { + var n = this; + if (n.instancePool.length) { + var r = n.instancePool.pop(); + return n.call(r, t, e), r + } + return new n(t, e) + }, u = function (t, e, n) { + var r = this; + if (r.instancePool.length) { + var o = r.instancePool.pop(); + return r.call(o, t, e, n), o + } + return new r(t, e, n) + }, a = function (t, e, n, r) { + var o = this; + if (o.instancePool.length) { + var i = o.instancePool.pop(); + return o.call(i, t, e, n, r), i + } + return new o(t, e, n, r) + }, s = function (t) { + var e = this; + t instanceof e || r("25"), t.destructor(), e.instancePool.length < e.poolSize + && e.instancePool.push(t) + }, c = o, l = function (t, e) { + var n = t; + return n.instancePool = [], n.getPooled = e || c, n.poolSize + || (n.poolSize = 10), n.release = s, n + }, f = { + addPoolingTo: l, + oneArgumentPooler: o, + twoArgumentPooler: i, + threeArgumentPooler: u, + fourArgumentPooler: a + }; + e.exports = f + }, {20: 20, 24: 24}], + 3: [function (t, e, n) { + "use strict"; + var r = t(26), o = t(4), i = t(6), u = t(14), a = t(5), s = t(8), c = t(9), l = t(13), + f = t(16), p = t(19), d = (t(25), c.createElement), y = c.createFactory, h = c.cloneElement, + v = r, m = { + Children: { + map: o.map, + forEach: o.forEach, + count: o.count, + toArray: o.toArray, + only: p + }, + Component: i, + PureComponent: u, + createElement: d, + cloneElement: h, + isValidElement: c.isValidElement, + PropTypes: l, + createClass: a.createClass, + createFactory: y, + createMixin: function (t) { + return t + }, + DOM: s, + version: f, + __spread: v + }; + e.exports = m + }, {13: 13, 14: 14, 16: 16, 19: 19, 25: 25, 26: 26, 4: 4, 5: 5, 6: 6, 8: 8, 9: 9}], + 4: [function (t, e, n) { + "use strict"; + + function r(t) { + return ("" + t).replace(E, "$&/") + } + + function o(t, e) { + this.func = t, this.context = e, this.count = 0 + } + + function i(t, e, n) { + var r = t.func, o = t.context; + r.call(o, e, t.count++) + } + + function u(t, e, n) { + if (null == t) { + return t; + } + var r = o.getPooled(e, n); + m(t, i, r), o.release(r) + } + + function a(t, e, n, r) { + this.result = t, this.keyPrefix = e, this.func = n, this.context = r, this.count = 0 + } + + function s(t, e, n) { + var o = t.result, i = t.keyPrefix, u = t.func, a = t.context, s = u.call(a, e, t.count++); + Array.isArray(s) ? c(s, o, n, v.thatReturnsArgument) : null != s && (h.isValidElement(s) + && (s = h.cloneAndReplaceKey(s, + i + (!s.key || e && e.key === s.key ? "" : r(s.key) + "/") + n)), o.push(s)) + } + + function c(t, e, n, o, i) { + var u = ""; + null != n && (u = r(n) + "/"); + var c = a.getPooled(e, u, o, i); + m(t, s, c), a.release(c) + } + + function l(t, e, n) { + if (null == t) { + return t; + } + var r = []; + return c(t, r, null, e, n), r + } + + function f(t, e, n) { + return null + } + + function p(t, e) { + return m(t, f, null) + } + + function d(t) { + var e = []; + return c(t, e, null, v.thatReturnsArgument), e + } + + var y = t(2), h = t(9), v = t(22), m = t(21), b = y.twoArgumentPooler, + g = y.fourArgumentPooler, E = /\/+/g; + o.prototype.destructor = function () { + this.func = null, this.context = null, this.count = 0 + }, y.addPoolingTo(o, b), a.prototype.destructor = function () { + this.result = null, this.keyPrefix = null, this.func = null, this.context = null, this.count = 0 + }, y.addPoolingTo(a, g); + var x = {forEach: u, map: l, mapIntoWithKeyPrefixInternal: c, count: p, toArray: d}; + e.exports = x + }, {2: 2, 21: 21, 22: 22, 9: 9}], + 5: [function (t, e, n) { + "use strict"; + + function r(t) { + return t + } + + function o(t, e) { + var n = E.hasOwnProperty(e) ? E[e] : null; + _.hasOwnProperty(e) && "OVERRIDE_BASE" !== n && p("73", e), t && "DEFINE_MANY" !== n + && "DEFINE_MANY_MERGED" !== n && p("74", e) + } + + function i(t, e) { + if (e) { + "function" == typeof e && p("75"), h.isValidElement(e) && p("76"); + var n = t.prototype, r = n.__reactAutoBindPairs; + e.hasOwnProperty(b) && x.mixins(t, e.mixins); + for (var i in e) { + if (e.hasOwnProperty(i) && i !== b) { + var u = e[i], a = n.hasOwnProperty(i); + if (o(a, i), x.hasOwnProperty(i)) { + x[i](t, u); + } else { + var l = E.hasOwnProperty(i), f = "function" == typeof u, + d = f && !l && !a && !1 !== e.autobind; + if (d) { + r.push(i, u), n[i] = u; + } else if (a) { + var y = E[i]; + (!l || "DEFINE_MANY_MERGED" !== y && "DEFINE_MANY" !== y) && p("77", y, + i), "DEFINE_MANY_MERGED" === y ? n[i] = s(n[i], u) : "DEFINE_MANY" === y + && (n[i] = c(n[i], u)) + } else { + n[i] = u + } + } + } + } + } + } + + function u(t, e) { + if (e) { + for (var n in e) { + var r = e[n]; + if (e.hasOwnProperty(n)) { + var o = n in x; + o && p("78", n); + var i = n in t; + i && p("79", n), t[n] = r + } + } + } + } + + function a(t, e) { + t && e && "object" == typeof t && "object" == typeof e || p("80"); + for (var n in e) { + e.hasOwnProperty(n) && (void 0 !== t[n] && p("81", n), t[n] = e[n]); + } + return t + } + + function s(t, e) { + return function () { + var n = t.apply(this, arguments), r = e.apply(this, arguments); + if (null == n) { + return r; + } + if (null == r) { + return n; + } + var o = {}; + return a(o, n), a(o, r), o + } + } + + function c(t, e) { + return function () { + t.apply(this, arguments), e.apply(this, arguments) + } + } + + function l(t, e) { + return e.bind(t) + } + + function f(t) { + for (var e = t.__reactAutoBindPairs, n = 0; n < e.length; n += 2) { + var r = e[n], o = e[n + 1]; + t[r] = l(t, o) + } + } + + var p = t(20), d = t(26), y = t(6), h = t(9), v = (t(12), t(11)), m = t(23), + b = (t(24), t(25), "mixins"), g = [], E = { + mixins: "DEFINE_MANY", + statics: "DEFINE_MANY", + propTypes: "DEFINE_MANY", + contextTypes: "DEFINE_MANY", + childContextTypes: "DEFINE_MANY", + getDefaultProps: "DEFINE_MANY_MERGED", + getInitialState: "DEFINE_MANY_MERGED", + getChildContext: "DEFINE_MANY_MERGED", + render: "DEFINE_ONCE", + componentWillMount: "DEFINE_MANY", + componentDidMount: "DEFINE_MANY", + componentWillReceiveProps: "DEFINE_MANY", + shouldComponentUpdate: "DEFINE_ONCE", + componentWillUpdate: "DEFINE_MANY", + componentDidUpdate: "DEFINE_MANY", + componentWillUnmount: "DEFINE_MANY", + updateComponent: "OVERRIDE_BASE" + }, x = { + displayName: function (t, e) { + t.displayName = e + }, mixins: function (t, e) { + if (e) { + for (var n = 0; n < e.length; n++) { + i(t, e[n]) + } + } + }, childContextTypes: function (t, e) { + t.childContextTypes = d({}, t.childContextTypes, e) + }, contextTypes: function (t, e) { + t.contextTypes = d({}, t.contextTypes, e) + }, getDefaultProps: function (t, e) { + t.getDefaultProps ? t.getDefaultProps = s(t.getDefaultProps, e) : t.getDefaultProps = e + }, propTypes: function (t, e) { + t.propTypes = d({}, t.propTypes, e) + }, statics: function (t, e) { + u(t, e) + }, autobind: function () { + } + }, _ = { + replaceState: function (t, e) { + this.updater.enqueueReplaceState(this, t), e && this.updater.enqueueCallback(this, e, + "replaceState") + }, isMounted: function () { + return this.updater.isMounted(this) + } + }, P = function () { + }; + d(P.prototype, y.prototype, _); + var w = { + createClass: function (t) { + var e = r(function (t, n, r) { + this.__reactAutoBindPairs.length && f( + this), this.props = t, this.context = n, this.refs = m, this.updater = r + || v, this.state = null; + var o = this.getInitialState ? this.getInitialState() : null; + ("object" != typeof o || Array.isArray(o)) && p("82", + e.displayName || "ReactCompositeComponent"), this.state = o + }); + e.prototype = new P, e.prototype.constructor = e, e.prototype.__reactAutoBindPairs = [], g.forEach( + i.bind(null, e)), i(e, t), e.getDefaultProps + && (e.defaultProps = e.getDefaultProps()), e.prototype.render || p("83"); + for (var n in E) { + e.prototype[n] || (e.prototype[n] = null); + } + return e + }, injection: { + injectMixin: function (t) { + g.push(t) + } + } + }; + e.exports = w + }, {11: 11, 12: 12, 20: 20, 23: 23, 24: 24, 25: 25, 26: 26, 6: 6, 9: 9}], + 6: [function (t, e, n) { + "use strict"; + + function r(t, e, n) { + this.props = t, this.context = e, this.refs = u, this.updater = n || i + } + + var o = t(20), i = t(11), u = (t(17), t(23)); + t(24), t(25); + r.prototype.isReactComponent = {}, r.prototype.setState = function (t, e) { + "object" != typeof t && "function" != typeof t && null != t && o( + "85"), this.updater.enqueueSetState(this, t), e && this.updater.enqueueCallback(this, e, + "setState") + }, r.prototype.forceUpdate = function (t) { + this.updater.enqueueForceUpdate(this), t && this.updater.enqueueCallback(this, t, + "forceUpdate") + }; + e.exports = r + }, {11: 11, 17: 17, 20: 20, 23: 23, 24: 24, 25: 25}], + 7: [function (t, e, n) { + "use strict"; + var r = {current: null}; + e.exports = r + }, {}], + 8: [function (t, e, n) { + "use strict"; + var r = t(9), o = r.createFactory, i = { + a: o("a"), + abbr: o("abbr"), + address: o("address"), + area: o("area"), + article: o("article"), + aside: o("aside"), + audio: o("audio"), + b: o("b"), + base: o("base"), + bdi: o("bdi"), + bdo: o("bdo"), + big: o("big"), + blockquote: o("blockquote"), + body: o("body"), + br: o("br"), + button: o("button"), + canvas: o("canvas"), + caption: o("caption"), + cite: o("cite"), + code: o("code"), + col: o("col"), + colgroup: o("colgroup"), + data: o("data"), + datalist: o("datalist"), + dd: o("dd"), + del: o("del"), + details: o("details"), + dfn: o("dfn"), + dialog: o("dialog"), + div: o("div"), + dl: o("dl"), + dt: o("dt"), + em: o("em"), + embed: o("embed"), + fieldset: o("fieldset"), + figcaption: o("figcaption"), + figure: o("figure"), + footer: o("footer"), + form: o("form"), + h1: o("h1"), + h2: o("h2"), + h3: o("h3"), + h4: o("h4"), + h5: o("h5"), + h6: o("h6"), + head: o("head"), + header: o("header"), + hgroup: o("hgroup"), + hr: o("hr"), + html: o("html"), + i: o("i"), + iframe: o("iframe"), + img: o("img"), + input: o("input"), + ins: o("ins"), + kbd: o("kbd"), + keygen: o("keygen"), + label: o("label"), + legend: o("legend"), + li: o("li"), + link: o("link"), + main: o("main"), + map: o("map"), + mark: o("mark"), + menu: o("menu"), + menuitem: o("menuitem"), + meta: o("meta"), + meter: o("meter"), + nav: o("nav"), + noscript: o("noscript"), + object: o("object"), + ol: o("ol"), + optgroup: o("optgroup"), + option: o("option"), + output: o("output"), + p: o("p"), + param: o("param"), + picture: o("picture"), + pre: o("pre"), + progress: o("progress"), + q: o("q"), + rp: o("rp"), + rt: o("rt"), + ruby: o("ruby"), + s: o("s"), + samp: o("samp"), + script: o("script"), + section: o("section"), + select: o("select"), + small: o("small"), + source: o("source"), + span: o("span"), + strong: o("strong"), + style: o("style"), + sub: o("sub"), + summary: o("summary"), + sup: o("sup"), + table: o("table"), + tbody: o("tbody"), + td: o("td"), + textarea: o("textarea"), + tfoot: o("tfoot"), + th: o("th"), + thead: o("thead"), + time: o("time"), + title: o("title"), + tr: o("tr"), + track: o("track"), + u: o("u"), + ul: o("ul"), + var: o("var"), + video: o("video"), + wbr: o("wbr"), + circle: o("circle"), + clipPath: o("clipPath"), + defs: o("defs"), + ellipse: o("ellipse"), + g: o("g"), + image: o("image"), + line: o("line"), + linearGradient: o("linearGradient"), + mask: o("mask"), + path: o("path"), + pattern: o("pattern"), + polygon: o("polygon"), + polyline: o("polyline"), + radialGradient: o("radialGradient"), + rect: o("rect"), + stop: o("stop"), + svg: o("svg"), + text: o("text"), + tspan: o("tspan") + }; + e.exports = i + }, {9: 9}], + 9: [function (t, e, n) { + "use strict"; + + function r(t) { + return void 0 !== t.ref + } + + function o(t) { + return void 0 !== t.key + } + + var i = t(26), u = t(7), a = (t(25), t(17), Object.prototype.hasOwnProperty), s = t(10), + c = {key: !0, ref: !0, __self: !0, __source: !0}, l = function (t, e, n, r, o, i, u) { + return {$$typeof: s, type: t, key: e, ref: n, props: u, _owner: i} + }; + l.createElement = function (t, e, n) { + var i, s = {}, f = null, p = null; + if (null != e) { + r(e) && (p = e.ref), o(e) && (f = "" + e.key), void 0 === e.__self ? null + : e.__self, void 0 === e.__source ? null : e.__source; + for (i in e) { + a.call(e, i) && !c.hasOwnProperty(i) && (s[i] = e[i]) + } + } + var d = arguments.length - 2; + if (1 === d) { + s.children = n; + } else if (d > 1) { + for (var y = Array(d), h = 0; h < d; h++) { + y[h] = arguments[h + 2]; + } + s.children = y + } + if (t && t.defaultProps) { + var v = t.defaultProps; + for (i in v) { + void 0 === s[i] && (s[i] = v[i]) + } + } + return l(t, f, p, 0, 0, u.current, s) + }, l.createFactory = function (t) { + var e = l.createElement.bind(null, t); + return e.type = t, e + }, l.cloneAndReplaceKey = function (t, e) { + return l(t.type, e, t.ref, t._self, t._source, t._owner, t.props) + }, l.cloneElement = function (t, e, n) { + var s, f = i({}, t.props), p = t.key, d = t.ref, y = (t._self, t._source, t._owner); + if (null != e) { + r(e) && (d = e.ref, y = u.current), o(e) && (p = "" + e.key); + var h; + t.type && t.type.defaultProps && (h = t.type.defaultProps); + for (s in e) { + a.call(e, s) && !c.hasOwnProperty(s) && (void 0 === e[s] && void 0 !== h + ? f[s] = h[s] : f[s] = e[s]) + } + } + var v = arguments.length - 2; + if (1 === v) { + f.children = n; + } else if (v > 1) { + for (var m = Array(v), b = 0; b < v; b++) { + m[b] = arguments[b + 2]; + } + f.children = m + } + return l(t.type, p, d, 0, 0, y, f) + }, l.isValidElement = function (t) { + return "object" == typeof t && null !== t && t.$$typeof === s + }, e.exports = l + }, {10: 10, 17: 17, 25: 25, 26: 26, 7: 7}], + 10: [function (t, e, n) { + "use strict"; + var r = "function" == typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103; + e.exports = r + }, {}], + 11: [function (t, e, n) { + "use strict"; + var r = (t(25), { + isMounted: function (t) { + return !1 + }, enqueueCallback: function (t, e) { + }, enqueueForceUpdate: function (t) { + }, enqueueReplaceState: function (t, e) { + }, enqueueSetState: function (t, e) { + } + }); + e.exports = r + }, {25: 25}], + 12: [function (t, e, n) { + "use strict"; + var r = {}; + e.exports = r + }, {}], + 13: [function (t, e, n) { + "use strict"; + var r = t(9), o = r.isValidElement, i = t(28); + e.exports = i(o) + }, {28: 28, 9: 9}], + 14: [function (t, e, n) { + "use strict"; + + function r(t, e, n) { + this.props = t, this.context = e, this.refs = s, this.updater = n || a + } + + function o() { + } + + var i = t(26), u = t(6), a = t(11), s = t(23); + o.prototype = u.prototype, r.prototype = new o, r.prototype.constructor = r, i(r.prototype, + u.prototype), r.prototype.isPureReactComponent = !0, e.exports = r + }, {11: 11, 23: 23, 26: 26, 6: 6}], + 15: [function (t, e, n) { + "use strict"; + var r = t(26), o = t(3), + i = r(o, {__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {ReactCurrentOwner: t(7)}}); + e.exports = i + }, {26: 26, 3: 3, 7: 7}], + 16: [function (t, e, n) { + "use strict"; + e.exports = "15.5.4" + }, {}], + 17: [function (t, e, n) { + "use strict"; + e.exports = !1 + }, {}], + 18: [function (t, e, n) { + "use strict"; + + function r(t) { + var e = t && (o && t[o] || t[i]); + if ("function" == typeof e) { + return e + } + } + + var o = "function" == typeof Symbol && Symbol.iterator, i = "@@iterator"; + e.exports = r + }, {}], + 19: [function (t, e, n) { + "use strict"; + + function r(t) { + return i.isValidElement(t) || o("143"), t + } + + var o = t(20), i = t(9); + t(24); + e.exports = r + }, {20: 20, 24: 24, 9: 9}], + 20: [function (t, e, n) { + "use strict"; + + function r(t) { + for (var e = arguments.length - 1, n = "Minified React error #" + t + + "; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=" + t, r = 0; + r < e; r++) { + n += "&args[]=" + encodeURIComponent(arguments[r + 1]); + } + n += " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + var o = new Error(n); + throw o.name = "Invariant Violation", o.framesToPop = 1, o + } + + e.exports = r + }, {}], + 21: [function (t, e, n) { + "use strict"; + + function r(t, e) { + return t && "object" == typeof t && null != t.key ? c.escape(t.key) : e.toString(36) + } + + function o(t, e, n, i) { + var p = typeof t; + if ("undefined" !== p && "boolean" !== p || (t = null), null === t || "string" === p + || "number" === p || "object" === p && t.$$typeof === a) { + return n(i, t, + "" === e ? l + r(t, 0) : e), 1; + } + var d, y, h = 0, v = "" === e ? l : e + f; + if (Array.isArray(t)) { + for (var m = 0; m < t.length; m++) { + d = t[m], y = v + r(d, m), h += o( + d, y, n, i); + } + } else { + var b = s(t); + if (b) { + var g, E = b.call(t); + if (b !== t.entries) { + for (var x = 0; !(g = E.next()).done;) { + d = g.value, y = v + r(d, + x++), h += o(d, y, n, i); + } + } else { + for (; !(g = E.next()).done;) { + var _ = g.value; + _ && (d = _[1], y = v + c.escape(_[0]) + f + r(d, 0), h += o(d, y, n, i)) + } + } + } else if ("object" === p) { + var P = String(t); + u("31", + "[object Object]" === P ? "object with keys {" + Object.keys(t).join(", ") + "}" : P, + "") + } + } + return h + } + + function i(t, e, n) { + return null == t ? 0 : o(t, "", e, n) + } + + var u = t(20), a = (t(7), t(10)), s = t(18), c = (t(24), t(1)), l = (t(25), "."), f = ":"; + e.exports = i + }, {1: 1, 10: 10, 18: 18, 20: 20, 24: 24, 25: 25, 7: 7}], + 22: [function (t, e, n) { + "use strict"; + + function r(t) { + return function () { + return t + } + } + + var o = function () { + }; + o.thatReturns = r, o.thatReturnsFalse = r(!1), o.thatReturnsTrue = r( + !0), o.thatReturnsNull = r(null), o.thatReturnsThis = function () { + return this + }, o.thatReturnsArgument = function (t) { + return t + }, e.exports = o + }, {}], + 23: [function (t, e, n) { + "use strict"; + var r = {}; + e.exports = r + }, {}], + 24: [function (t, e, n) { + "use strict"; + + function r(t, e, n, r, i, u, a, s) { + if (o(e), !t) { + var c; + if (void 0 === e) { + c = new Error( + "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); + } else { + var l = [n, r, i, u, a, s], f = 0; + c = new Error(e.replace(/%s/g, function () { + return l[f++] + })), c.name = "Invariant Violation" + } + throw c.framesToPop = 1, c + } + } + + var o = function (t) { + }; + e.exports = r + }, {}], + 25: [function (t, e, n) { + "use strict"; + var r = t(22), o = r; + e.exports = o + }, {22: 22}], + 26: [function (t, e, n) { + "use strict"; + + function r(t) { + if (null === t || void 0 === t) { + throw new TypeError( + "Object.assign cannot be called with null or undefined"); + } + return Object(t) + } + + var o = Object.getOwnPropertySymbols, i = Object.prototype.hasOwnProperty, + u = Object.prototype.propertyIsEnumerable; + e.exports = function () { + try { + if (!Object.assign) { + return !1; + } + var t = new String("abc"); + if (t[5] = "de", "5" === Object.getOwnPropertyNames(t)[0]) { + return !1; + } + for (var e = {}, n = 0; n < 10; n++) { + e["_" + String.fromCharCode(n)] = n; + } + if ("0123456789" !== Object.getOwnPropertyNames(e).map(function (t) { + return e[t] + }).join("")) { + return !1; + } + var r = {}; + return "abcdefghijklmnopqrst".split("").forEach(function (t) { + r[t] = t + }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("") + } catch (t) { + return !1 + } + }() ? Object.assign : function (t, e) { + for (var n, a, s = r(t), c = 1; c < arguments.length; c++) { + n = Object(arguments[c]); + for (var l in n) { + i.call(n, l) && (s[l] = n[l]); + } + if (o) { + a = o(n); + for (var f = 0; f < a.length; f++) { + u.call(n, a[f]) && (s[a[f]] = n[a[f]]) + } + } + } + return s + } + }, {}], + 27: [function (t, e, n) { + "use strict"; + + function r(t, e, n, r, o) { + } + + e.exports = r + }, {24: 24, 25: 25, 30: 30}], + 28: [function (t, e, n) { + "use strict"; + var r = t(29); + e.exports = function (t) { + return r(t, !1) + } + }, {29: 29}], + 29: [function (t, e, n) { + "use strict"; + var r = t(22), o = t(24), i = (t(25), t(30)), u = t(27); + e.exports = function (t, e) { + function n(t) { + var e = t && (_ && t[_] || t[P]); + if ("function" == typeof e) { + return e + } + } + + function a(t, e) { + return t === e ? 0 !== t || 1 / t == 1 / e : t !== t && e !== e + } + + function s(t) { + this.message = t, this.stack = "" + } + + function c(t) { + function n(n, r, u, a, c, l, f) { + if (a = a || w, l = l || u, f !== i) { + if (e) { + o(!1, + "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types"); + } else { + ; + } + } + return null == r[u] ? n ? new s( + null === r[u] ? "The " + c + " `" + l + "` is marked as required in `" + a + + "`, but its value is `null`." : "The " + c + " `" + l + + "` is marked as required in `" + a + "`, but its value is `undefined`.") : null + : t(r, u, a, c, l) + } + + var r = n.bind(null, !1); + return r.isRequired = n.bind(null, !0), r + } + + function l(t) { + function e(e, n, r, o, i, u) { + var a = e[n]; + if (g(a) !== t) { + return new s( + "Invalid " + o + " `" + i + "` of type `" + E(a) + "` supplied to `" + r + + "`, expected `" + t + "`."); + } + return null + } + + return c(e) + } + + function f(t) { + function e(e, n, r, o, u) { + if ("function" != typeof t) { + return new s("Property `" + u + "` of component `" + r + + "` has invalid PropType notation inside arrayOf."); + } + var a = e[n]; + if (!Array.isArray(a)) { + return new s("Invalid " + o + " `" + u + "` of type `" + g(a) + "` supplied to `" + r + + "`, expected an array.") + } + for (var c = 0; c < a.length; c++) { + var l = t(a, c, r, o, u + "[" + c + "]", i); + if (l instanceof Error) { + return l + } + } + return null + } + + return c(e) + } + + function p(t) { + function e(e, n, r, o, i) { + if (!(e[n] instanceof t)) { + var u = t.name || w; + return new s( + "Invalid " + o + " `" + i + "` of type `" + x(e[n]) + "` supplied to `" + r + + "`, expected instance of `" + u + "`.") + } + return null + } + + return c(e) + } + + function d(t) { + function e(e, n, r, o, i) { + for (var u = e[n], c = 0; c < t.length; c++) { + if (a(u, t[c])) { + return null; + } + } + return new s("Invalid " + o + " `" + i + "` of value `" + u + "` supplied to `" + r + + "`, expected one of " + JSON.stringify(t) + ".") + } + + return Array.isArray(t) ? c(e) : r.thatReturnsNull + } + + function y(t) { + function e(e, n, r, o, u) { + if ("function" != typeof t) { + return new s("Property `" + u + "` of component `" + r + + "` has invalid PropType notation inside objectOf."); + } + var a = e[n], c = g(a); + if ("object" !== c) { + return new s( + "Invalid " + o + " `" + u + "` of type `" + c + "` supplied to `" + r + + "`, expected an object."); + } + for (var l in a) { + if (a.hasOwnProperty(l)) { + var f = t(a, l, r, o, u + "." + l, i); + if (f instanceof Error) { + return f + } + } + } + return null + } + + return c(e) + } + + function h(t) { + function e(e, n, r, o, u) { + for (var a = 0; a < t.length; a++) { + if (null == (0, t[a])(e, n, r, o, u, i)) { + return null + } + } + return new s("Invalid " + o + " `" + u + "` supplied to `" + r + "`.") + } + + return Array.isArray(t) ? c(e) : r.thatReturnsNull + } + + function v(t) { + function e(e, n, r, o, u) { + var a = e[n], c = g(a); + if ("object" !== c) { + return new s( + "Invalid " + o + " `" + u + "` of type `" + c + "` supplied to `" + r + + "`, expected `object`."); + } + for (var l in t) { + var f = t[l]; + if (f) { + var p = f(a, l, r, o, u + "." + l, i); + if (p) { + return p + } + } + } + return null + } + + return c(e) + } + + function m(e) { + switch (typeof e) { + case"number": + case"string": + case"undefined": + return !0; + case"boolean": + return !e; + case"object": + if (Array.isArray(e)) { + return e.every(m); + } + if (null === e || t(e)) { + return !0; + } + var r = n(e); + if (!r) { + return !1; + } + var o, i = r.call(e); + if (r !== e.entries) { + for (; !(o = i.next()).done;) { + if (!m(o.value)) { + return !1 + } + } + } else { + for (; !(o = i.next()).done;) { + var u = o.value; + if (u && !m(u[1])) { + return !1 + } + } + } + return !0; + default: + return !1 + } + } + + function b(t, e) { + return "symbol" === t || ("Symbol" === e["@@toStringTag"] || "function" == typeof Symbol + && e instanceof Symbol) + } + + function g(t) { + var e = typeof t; + return Array.isArray(t) ? "array" : t instanceof RegExp ? "object" : b(e, t) ? "symbol" + : e + } + + function E(t) { + var e = g(t); + if ("object" === e) { + if (t instanceof Date) { + return "date"; + } + if (t instanceof RegExp) { + return "regexp" + } + } + return e + } + + function x(t) { + return t.constructor && t.constructor.name ? t.constructor.name : w + } + + var _ = "function" == typeof Symbol && Symbol.iterator, P = "@@iterator", + w = "<>", N = { + array: l("array"), + bool: l("boolean"), + func: l("function"), + number: l("number"), + object: l("object"), + string: l("string"), + symbol: l("symbol"), + any: function () { + return c(r.thatReturnsNull) + }(), + arrayOf: f, + element: function () { + function e(e, n, r, o, i) { + var u = e[n]; + if (!t(u)) { + return new s( + "Invalid " + o + " `" + i + "` of type `" + g(u) + "` supplied to `" + r + + "`, expected a single ReactElement.") + } + return null + } + + return c(e) + }(), + instanceOf: p, + node: function () { + function t(t, e, n, r, o) { + return m(t[e]) ? null : new s( + "Invalid " + r + " `" + o + "` supplied to `" + n + "`, expected a ReactNode.") + } + + return c(t) + }(), + objectOf: y, + oneOf: d, + oneOfType: h, + shape: v + }; + return s.prototype = Error.prototype, N.checkPropTypes = u, N.PropTypes = N, N + } + }, {22: 22, 24: 24, 25: 25, 27: 27, 30: 30}], + 30: [function (t, e, n) { + "use strict"; + e.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED" + }, {}] + }, {}, [15])(15) +}); +!function (f) { + if ("object" == typeof exports && "undefined" + != typeof module) { + module.exports = f(); + } else if ("function" == typeof define + && define.amd) { + define([], f); + } else { + var g; + if (g = "undefined" != typeof window ? window : "undefined" != typeof global ? global + : "undefined" != typeof self ? self : this, void 0 === g.React) { + throw Error( + "React module should be required before createClass"); + } + g.createReactClass = f() + } +}(function () { + return function e(t, n, r) { + function s(o, u) { + if (!n[o]) { + if (!t[o]) { + var a = "function" == typeof require && require; + if (!u && a) { + return a(o, !0); + } + if (i) { + return i(o, !0); + } + var f = new Error("Cannot find module '" + o + "'"); + throw f.code = "MODULE_NOT_FOUND", f + } + var l = n[o] = {exports: {}}; + t[o][0].call(l.exports, function (e) { + var n = t[o][1][e]; + return s(n || e) + }, l, l.exports, e, t, n, r) + } + return n[o].exports + } + + for (var i = "function" == typeof require && require, o = 0; o < r.length; o++) { + s(r[o]); + } + return s + }({ + 1: [function (require, module, exports) { + "use strict"; + + function identity(fn) { + return fn + } + + function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) { + function validateMethodOverride(isAlreadyDefined, name) { + var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] + : null; + ReactClassMixin.hasOwnProperty(name) && _invariant("OVERRIDE_BASE" === specPolicy, + "ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.", + name), isAlreadyDefined && _invariant( + "DEFINE_MANY" === specPolicy || "DEFINE_MANY_MERGED" === specPolicy, + "ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.", + name) + } + + function mixSpecIntoComponent(Constructor, spec) { + if (spec) { + _invariant("function" != typeof spec, + "ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."), _invariant( + !isValidElement(spec), + "ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object."); + var proto = Constructor.prototype, autoBindPairs = proto.__reactAutoBindPairs; + spec.hasOwnProperty(MIXINS_KEY) && RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins); + for (var name in spec) { + if (spec.hasOwnProperty(name) && name !== MIXINS_KEY) { + var property = spec[name], isAlreadyDefined = proto.hasOwnProperty(name); + if (validateMethodOverride(isAlreadyDefined, + name), RESERVED_SPEC_KEYS.hasOwnProperty( + name)) { + RESERVED_SPEC_KEYS[name](Constructor, property); + } else { + var isReactClassMethod = ReactClassInterface.hasOwnProperty(name), + isFunction = "function" == typeof property, + shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && !1 + !== spec.autobind; + if (shouldAutoBind) { + autoBindPairs.push(name, + property), proto[name] = property; + } else if (isAlreadyDefined) { + var specPolicy = ReactClassInterface[name]; + _invariant( + isReactClassMethod && ("DEFINE_MANY_MERGED" === specPolicy || "DEFINE_MANY" + === specPolicy), + "ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.", + specPolicy, name), "DEFINE_MANY_MERGED" === specPolicy + ? proto[name] = createMergedResultFunction(proto[name], property) + : "DEFINE_MANY" === specPolicy && (proto[name] = createChainedFunction( + proto[name], property)) + } else { + proto[name] = property + } + } + } + } + } else { + ; + } + } + + function mixStaticSpecIntoComponent(Constructor, statics) { + if (statics) { + for (var name in statics) { + var property = statics[name]; + if (statics.hasOwnProperty(name)) { + var isReserved = name in RESERVED_SPEC_KEYS; + _invariant(!isReserved, + 'ReactClass: You are attempting to define a reserved property, `%s`, that shouldn\'t be on the "statics" key. Define it as an instance property instead; it will still be accessible on the constructor.', + name); + var isInherited = name in Constructor; + _invariant(!isInherited, + "ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.", + name), Constructor[name] = property + } + } + } + } + + function mergeIntoWithNoDuplicateKeys(one, two) { + _invariant(one && two && "object" == typeof one && "object" == typeof two, + "mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects."); + for (var key in two) { + two.hasOwnProperty(key) && (_invariant(void 0 === one[key], + "mergeIntoWithNoDuplicateKeys(): Tried to merge two objects with the same key: `%s`. This conflict may be due to a mixin; in particular, this may be caused by two getInitialState() or getDefaultProps() methods returning objects with clashing keys.", + key), one[key] = two[key]); + } + return one + } + + function createMergedResultFunction(one, two) { + return function () { + var a = one.apply(this, arguments), b = two.apply(this, arguments); + if (null == a) { + return b; + } + if (null == b) { + return a; + } + var c = {}; + return mergeIntoWithNoDuplicateKeys(c, a), mergeIntoWithNoDuplicateKeys(c, b), c + } + } + + function createChainedFunction(one, two) { + return function () { + one.apply(this, arguments), two.apply(this, arguments) + } + } + + function bindAutoBindMethod(component, method) { + var boundMethod = method.bind(component); + return boundMethod + } + + function bindAutoBindMethods(component) { + for (var pairs = component.__reactAutoBindPairs, i = 0; i < pairs.length; i += 2) { + var autoBindKey = pairs[i], method = pairs[i + 1]; + component[autoBindKey] = bindAutoBindMethod(component, method) + } + } + + function createClass(spec) { + var Constructor = identity(function (props, context, updater) { + this.__reactAutoBindPairs.length && bindAutoBindMethods( + this), this.props = props, this.context = context, this.refs = emptyObject, this.updater = updater + || ReactNoopUpdateQueue, this.state = null; + var initialState = this.getInitialState ? this.getInitialState() : null; + _invariant("object" == typeof initialState && !Array.isArray(initialState), + "%s.getInitialState(): must return an object or null", + Constructor.displayName || "ReactCompositeComponent"), this.state = initialState + }); + Constructor.prototype = new ReactClassComponent, Constructor.prototype.constructor = Constructor, Constructor.prototype.__reactAutoBindPairs = [], injectedMixins.forEach( + mixSpecIntoComponent.bind(null, Constructor)), mixSpecIntoComponent(Constructor, + IsMountedMixin), mixSpecIntoComponent(Constructor, spec), Constructor.getDefaultProps + && (Constructor.defaultProps = Constructor.getDefaultProps()), _invariant( + Constructor.prototype.render, + "createClass(...): Class specification must implement a `render` method."); + for (var methodName in ReactClassInterface) { + Constructor.prototype[methodName] + || (Constructor.prototype[methodName] = null); + } + return Constructor + } + + var injectedMixins = [], ReactClassInterface = { + mixins: "DEFINE_MANY", + statics: "DEFINE_MANY", + propTypes: "DEFINE_MANY", + contextTypes: "DEFINE_MANY", + childContextTypes: "DEFINE_MANY", + getDefaultProps: "DEFINE_MANY_MERGED", + getInitialState: "DEFINE_MANY_MERGED", + getChildContext: "DEFINE_MANY_MERGED", + render: "DEFINE_ONCE", + componentWillMount: "DEFINE_MANY", + componentDidMount: "DEFINE_MANY", + componentWillReceiveProps: "DEFINE_MANY", + shouldComponentUpdate: "DEFINE_ONCE", + componentWillUpdate: "DEFINE_MANY", + componentDidUpdate: "DEFINE_MANY", + componentWillUnmount: "DEFINE_MANY", + updateComponent: "OVERRIDE_BASE" + }, RESERVED_SPEC_KEYS = { + displayName: function (Constructor, displayName) { + Constructor.displayName = displayName + }, mixins: function (Constructor, mixins) { + if (mixins) { + for (var i = 0; i < mixins.length; i++) { + mixSpecIntoComponent(Constructor, + mixins[i]) + } + } + }, childContextTypes: function (Constructor, childContextTypes) { + Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, + childContextTypes) + }, contextTypes: function (Constructor, contextTypes) { + Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes) + }, getDefaultProps: function (Constructor, getDefaultProps) { + Constructor.getDefaultProps ? Constructor.getDefaultProps = createMergedResultFunction( + Constructor.getDefaultProps, getDefaultProps) + : Constructor.getDefaultProps = getDefaultProps + }, propTypes: function (Constructor, propTypes) { + Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes) + }, statics: function (Constructor, statics) { + mixStaticSpecIntoComponent(Constructor, statics) + }, autobind: function () { + } + }, IsMountedMixin = { + componentDidMount: function () { + this.__isMounted = !0 + }, componentWillUnmount: function () { + this.__isMounted = !1 + } + }, ReactClassMixin = { + replaceState: function (newState, callback) { + this.updater.enqueueReplaceState(this, newState, callback) + }, isMounted: function () { + return !!this.__isMounted + } + }, ReactClassComponent = function () { + }; + return _assign(ReactClassComponent.prototype, ReactComponent.prototype, + ReactClassMixin), createClass + } + + var _assign = require(7), emptyObject = require(4), _invariant = require(5), + MIXINS_KEY = "mixins"; + module.exports = factory + }, {4: 4, 5: 5, 6: 6, 7: 7}], 2: [function (require, module, exports) { + "use strict"; + var factory = require(1), ReactNoopUpdateQueue = (new React.Component).updater; + module.exports = factory(React.Component, React.isValidElement, ReactNoopUpdateQueue) + }, {1: 1}], 3: [function (require, module, exports) { + "use strict"; + + function makeEmptyFunction(arg) { + return function () { + return arg + } + } + + var emptyFunction = function () { + }; + emptyFunction.thatReturns = makeEmptyFunction, emptyFunction.thatReturnsFalse = makeEmptyFunction( + !1), emptyFunction.thatReturnsTrue = makeEmptyFunction( + !0), emptyFunction.thatReturnsNull = makeEmptyFunction( + null), emptyFunction.thatReturnsThis = function () { + return this + }, emptyFunction.thatReturnsArgument = function (arg) { + return arg + }, module.exports = emptyFunction + }, {}], 4: [function (require, module, exports) { + "use strict"; + var emptyObject = {}; + module.exports = emptyObject + }, {}], 5: [function (require, module, exports) { + "use strict"; + + function invariant(condition, format, a, b, c, d, e, f) { + if (validateFormat(format), !condition) { + var error; + if (void 0 === format) { + error = new Error( + "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); + } else { + var args = [a, b, c, d, e, f], argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++] + })), error.name = "Invariant Violation" + } + throw error.framesToPop = 1, error + } + } + + var validateFormat = function (format) { + }; + module.exports = invariant + }, {}], 6: [function (require, module, exports) { + "use strict"; + var emptyFunction = require(3), warning = emptyFunction; + module.exports = warning + }, {3: 3}], 7: [function (require, module, exports) { + "use strict"; + + function toObject(val) { + if (null === val || void 0 === val) { + throw new TypeError( + "Object.assign cannot be called with null or undefined"); + } + return Object(val) + } + + var getOwnPropertySymbols = Object.getOwnPropertySymbols, + hasOwnProperty = Object.prototype.hasOwnProperty, + propIsEnumerable = Object.prototype.propertyIsEnumerable; + module.exports = function () { + try { + if (!Object.assign) { + return !1; + } + var test1 = new String("abc"); + if (test1[5] = "de", "5" === Object.getOwnPropertyNames(test1)[0]) { + return !1; + } + for (var test2 = {}, i = 0; i < 10; i++) { + test2["_" + String.fromCharCode(i)] = i; + } + if ("0123456789" !== Object.getOwnPropertyNames(test2).map(function (n) { + return test2[n] + }).join("")) { + return !1; + } + var test3 = {}; + return "abcdefghijklmnopqrst".split("").forEach(function (letter) { + test3[letter] = letter + }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, test3)).join("") + } catch (err) { + return !1 + } + }() ? Object.assign : function (target, source) { + for (var from, symbols, to = toObject(target), s = 1; s < arguments.length; s++) { + from = Object(arguments[s]); + for (var key in from) { + hasOwnProperty.call(from, key) && (to[key] = from[key]); + } + if (getOwnPropertySymbols) { + symbols = getOwnPropertySymbols(from); + for (var i = 0; i < symbols.length; i++) { + propIsEnumerable.call(from, symbols[i]) + && (to[symbols[i]] = from[symbols[i]]) + } + } + } + return to + } + }, {}] + }, {}, [2])(2) +}); + +/** + * ReactDOM v15.5.4 + * + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + * + */ +!function (e) { + if ("object" == typeof exports && "undefined" != typeof module) { + module.exports = e( + require("react")); + } else if ("function" == typeof define && define.amd) { + define(["react"], + e); + } else { + var t; + t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" + != typeof self ? self : this, t.ReactDOM = e(t.React) + } +}(function (e) { + return function (t) { + return function () { + return function e(t, n, r) { + function o(a, s) { + if (!n[a]) { + if (!t[a]) { + var u = "function" == typeof require && require; + if (!s && u) { + return u(a, !0); + } + if (i) { + return i(a, !0); + } + var l = new Error("Cannot find module '" + a + "'"); + throw l.code = "MODULE_NOT_FOUND", l + } + var c = n[a] = {exports: {}}; + t[a][0].call(c.exports, function (e) { + var n = t[a][1][e]; + return o(n || e) + }, c, c.exports, e, t, n, r) + } + return n[a].exports + } + + for (var i = "function" == typeof require && require, a = 0; a < r.length; a++) { + o(r[a]); + } + return o + }({ + 1: [function (e, t, n) { + "use strict"; + var r = { + Properties: { + "aria-current": 0, + "aria-details": 0, + "aria-disabled": 0, + "aria-hidden": 0, + "aria-invalid": 0, + "aria-keyshortcuts": 0, + "aria-label": 0, + "aria-roledescription": 0, + "aria-autocomplete": 0, + "aria-checked": 0, + "aria-expanded": 0, + "aria-haspopup": 0, + "aria-level": 0, + "aria-modal": 0, + "aria-multiline": 0, + "aria-multiselectable": 0, + "aria-orientation": 0, + "aria-placeholder": 0, + "aria-pressed": 0, + "aria-readonly": 0, + "aria-required": 0, + "aria-selected": 0, + "aria-sort": 0, + "aria-valuemax": 0, + "aria-valuemin": 0, + "aria-valuenow": 0, + "aria-valuetext": 0, + "aria-atomic": 0, + "aria-busy": 0, + "aria-live": 0, + "aria-relevant": 0, + "aria-dropeffect": 0, + "aria-grabbed": 0, + "aria-activedescendant": 0, + "aria-colcount": 0, + "aria-colindex": 0, + "aria-colspan": 0, + "aria-controls": 0, + "aria-describedby": 0, + "aria-errormessage": 0, + "aria-flowto": 0, + "aria-labelledby": 0, + "aria-owns": 0, + "aria-posinset": 0, + "aria-rowcount": 0, + "aria-rowindex": 0, + "aria-rowspan": 0, + "aria-setsize": 0 + }, DOMAttributeNames: {}, DOMPropertyNames: {} + }; + t.exports = r + }, {}], + 2: [function (e, t, n) { + "use strict"; + var r = e(33), o = e(131), i = { + focusDOMComponent: function () { + o(r.getNodeFromInstance(this)) + } + }; + t.exports = i + }, {131: 131, 33: 33}], + 3: [function (e, t, n) { + "use strict"; + + function r(e) { + return (e.ctrlKey || e.altKey || e.metaKey) && !(e.ctrlKey && e.altKey) + } + + function o(e) { + switch (e) { + case"topCompositionStart": + return T.compositionStart; + case"topCompositionEnd": + return T.compositionEnd; + case"topCompositionUpdate": + return T.compositionUpdate + } + } + + function i(e, t) { + return "topKeyDown" === e && t.keyCode === y + } + + function a(e, t) { + switch (e) { + case"topKeyUp": + return -1 !== g.indexOf(t.keyCode); + case"topKeyDown": + return t.keyCode !== y; + case"topKeyPress": + case"topMouseDown": + case"topBlur": + return !0; + default: + return !1 + } + } + + function s(e) { + var t = e.detail; + return "object" == typeof t && "data" in t ? t.data : null + } + + function u(e, t, n, r) { + var u, l; + if (_ ? u = o(e) : P ? a(e, n) && (u = T.compositionEnd) : i(e, n) + && (u = T.compositionStart), !u) { + return null; + } + E && (P || u !== T.compositionStart ? u === T.compositionEnd && P && (l = P.getData()) + : P = h.getPooled(r)); + var c = m.getPooled(u, t, n, r); + if (l) { + c.data = l; + } else { + var p = s(n); + null !== p && (c.data = p) + } + return d.accumulateTwoPhaseDispatches(c), c + } + + function l(e, t) { + switch (e) { + case"topCompositionEnd": + return s(t); + case"topKeyPress": + return t.which !== x ? null : (k = !0, w); + case"topTextInput": + var n = t.data; + return n === w && k ? null : n; + default: + return null + } + } + + function c(e, t) { + if (P) { + if ("topCompositionEnd" === e || !_ && a(e, t)) { + var n = P.getData(); + return h.release(P), P = null, n + } + return null + } + switch (e) { + case"topPaste": + return null; + case"topKeyPress": + return t.which && !r(t) ? String.fromCharCode(t.which) : null; + case"topCompositionEnd": + return E ? null : t.data; + default: + return null + } + } + + function p(e, t, n, r) { + var o; + if (!(o = b ? l(e, n) : c(e, n))) { + return null; + } + var i = v.getPooled(T.beforeInput, t, n, r); + return i.data = o, d.accumulateTwoPhaseDispatches(i), i + } + + var d = e(19), f = e(123), h = e(20), m = e(78), v = e(82), g = [9, 13, 27, 32], y = 229, + _ = f.canUseDOM && "CompositionEvent" in window, C = null; + f.canUseDOM && "documentMode" in document && (C = document.documentMode); + var b = f.canUseDOM && "TextEvent" in window && !C && !function () { + var e = window.opera; + return "object" == typeof e && "function" == typeof e.version && parseInt(e.version(), + 10) <= 12 + }(), E = f.canUseDOM && (!_ || C && C > 8 && C <= 11), x = 32, w = String.fromCharCode(x), + T = { + beforeInput: { + phasedRegistrationNames: { + bubbled: "onBeforeInput", + captured: "onBeforeInputCapture" + }, dependencies: ["topCompositionEnd", "topKeyPress", "topTextInput", "topPaste"] + }, + compositionEnd: { + phasedRegistrationNames: { + bubbled: "onCompositionEnd", + captured: "onCompositionEndCapture" + }, + dependencies: ["topBlur", "topCompositionEnd", "topKeyDown", "topKeyPress", + "topKeyUp", "topMouseDown"] + }, + compositionStart: { + phasedRegistrationNames: { + bubbled: "onCompositionStart", + captured: "onCompositionStartCapture" + }, + dependencies: ["topBlur", "topCompositionStart", "topKeyDown", "topKeyPress", + "topKeyUp", "topMouseDown"] + }, + compositionUpdate: { + phasedRegistrationNames: { + bubbled: "onCompositionUpdate", + captured: "onCompositionUpdateCapture" + }, + dependencies: ["topBlur", "topCompositionUpdate", "topKeyDown", "topKeyPress", + "topKeyUp", "topMouseDown"] + } + }, k = !1, P = null, S = { + eventTypes: T, extractEvents: function (e, t, n, r) { + return [u(e, t, n, r), p(e, t, n, r)] + } + }; + t.exports = S + }, {123: 123, 19: 19, 20: 20, 78: 78, 82: 82}], + 4: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return e + t.charAt(0).toUpperCase() + t.substring(1) + } + + var o = { + animationIterationCount: !0, + borderImageOutset: !0, + borderImageSlice: !0, + borderImageWidth: !0, + boxFlex: !0, + boxFlexGroup: !0, + boxOrdinalGroup: !0, + columnCount: !0, + flex: !0, + flexGrow: !0, + flexPositive: !0, + flexShrink: !0, + flexNegative: !0, + flexOrder: !0, + gridRow: !0, + gridColumn: !0, + fontWeight: !0, + lineClamp: !0, + lineHeight: !0, + opacity: !0, + order: !0, + orphans: !0, + tabSize: !0, + widows: !0, + zIndex: !0, + zoom: !0, + fillOpacity: !0, + floodOpacity: !0, + stopOpacity: !0, + strokeDasharray: !0, + strokeDashoffset: !0, + strokeMiterlimit: !0, + strokeOpacity: !0, + strokeWidth: !0 + }, i = ["Webkit", "ms", "Moz", "O"]; + Object.keys(o).forEach(function (e) { + i.forEach(function (t) { + o[r(t, e)] = o[e] + }) + }); + var a = { + background: { + backgroundAttachment: !0, + backgroundColor: !0, + backgroundImage: !0, + backgroundPositionX: !0, + backgroundPositionY: !0, + backgroundRepeat: !0 + }, + backgroundPosition: {backgroundPositionX: !0, backgroundPositionY: !0}, + border: {borderWidth: !0, borderStyle: !0, borderColor: !0}, + borderBottom: {borderBottomWidth: !0, borderBottomStyle: !0, borderBottomColor: !0}, + borderLeft: {borderLeftWidth: !0, borderLeftStyle: !0, borderLeftColor: !0}, + borderRight: {borderRightWidth: !0, borderRightStyle: !0, borderRightColor: !0}, + borderTop: {borderTopWidth: !0, borderTopStyle: !0, borderTopColor: !0}, + font: { + fontStyle: !0, + fontVariant: !0, + fontWeight: !0, + fontSize: !0, + lineHeight: !0, + fontFamily: !0 + }, + outline: {outlineWidth: !0, outlineStyle: !0, outlineColor: !0} + }, s = {isUnitlessNumber: o, shorthandPropertyExpansions: a}; + t.exports = s + }, {}], + 5: [function (e, t, n) { + "use strict"; + var r = e(4), o = e(123), i = (e(58), e(125), e(94)), a = e(136), s = e(140), + u = (e(142), s(function (e) { + return a(e) + })), l = !1, c = "cssFloat"; + if (o.canUseDOM) { + var p = document.createElement("div").style; + try { + p.font = "" + } catch (e) { + l = !0 + } + void 0 === document.documentElement.style.cssFloat && (c = "styleFloat") + } + var d = { + createMarkupForStyles: function (e, t) { + var n = ""; + for (var r in e) { + if (e.hasOwnProperty(r)) { + var o = e[r]; + null != o && (n += u(r) + ":", n += i(r, o, t) + ";") + } + } + return n || null + }, setValueForStyles: function (e, t, n) { + var o = e.style; + for (var a in t) { + if (t.hasOwnProperty(a)) { + var s = i(a, t[a], n); + if ("float" !== a && "cssFloat" !== a || (a = c), s) { + o[a] = s; + } else { + var u = l && r.shorthandPropertyExpansions[a]; + if (u) { + for (var p in u) { + o[p] = ""; + } + } else { + o[a] = "" + } + } + } + } + } + }; + t.exports = d + }, {123: 123, 125: 125, 136: 136, 140: 140, 142: 142, 4: 4, 58: 58, 94: 94}], + 6: [function (e, t, n) { + "use strict"; + + function r(e, t) { + if (!(e instanceof t)) { + throw new TypeError("Cannot call a class as a function") + } + } + + var o = e(112), i = e(24), a = (e(137), function () { + function e(t) { + r(this, e), this._callbacks = null, this._contexts = null, this._arg = t + } + + return e.prototype.enqueue = function (e, t) { + this._callbacks = this._callbacks || [], this._callbacks.push( + e), this._contexts = this._contexts || [], this._contexts.push(t) + }, e.prototype.notifyAll = function () { + var e = this._callbacks, t = this._contexts, n = this._arg; + if (e && t) { + e.length !== t.length && o("24"), this._callbacks = null, this._contexts = null; + for (var r = 0; r < e.length; r++) { + e[r].call(t[r], n); + } + e.length = 0, t.length = 0 + } + }, e.prototype.checkpoint = function () { + return this._callbacks ? this._callbacks.length : 0 + }, e.prototype.rollback = function (e) { + this._callbacks && this._contexts + && (this._callbacks.length = e, this._contexts.length = e) + }, e.prototype.reset = function () { + this._callbacks = null, this._contexts = null + }, e.prototype.destructor = function () { + this.reset() + }, e + }()); + t.exports = i.addPoolingTo(a) + }, {112: 112, 137: 137, 24: 24}], + 7: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e.nodeName && e.nodeName.toLowerCase(); + return "select" === t || "input" === t && "file" === e.type + } + + function o(e) { + var t = w.getPooled(S.change, M, e, T(e)); + C.accumulateTwoPhaseDispatches(t), x.batchedUpdates(i, t) + } + + function i(e) { + _.enqueueEvents(e), _.processEventQueue(!1) + } + + function a(e, t) { + N = e, M = t, N.attachEvent("onchange", o) + } + + function s() { + N && (N.detachEvent("onchange", o), N = null, M = null) + } + + function u(e, t) { + if ("topChange" === e) { + return t + } + } + + function l(e, t, n) { + "topFocus" === e ? (s(), a(t, n)) : "topBlur" === e && s() + } + + function c(e, t) { + N = e, M = t, I = e.value, O = Object.getOwnPropertyDescriptor(e.constructor.prototype, + "value"), Object.defineProperty(N, "value", D), N.attachEvent ? N.attachEvent( + "onpropertychange", d) : N.addEventListener("propertychange", d, !1) + } + + function p() { + N && (delete N.value, N.detachEvent ? N.detachEvent("onpropertychange", d) + : N.removeEventListener("propertychange", d, + !1), N = null, M = null, I = null, O = null) + } + + function d(e) { + if ("value" === e.propertyName) { + var t = e.srcElement.value; + t !== I && (I = t, o(e)) + } + } + + function f(e, t) { + if ("topInput" === e) { + return t + } + } + + function h(e, t, n) { + "topFocus" === e ? (p(), c(t, n)) : "topBlur" === e && p() + } + + function m(e, t) { + if (("topSelectionChange" === e || "topKeyUp" === e || "topKeyDown" === e) && N + && N.value !== I) { + return I = N.value, M + } + } + + function v(e) { + return e.nodeName && "input" === e.nodeName.toLowerCase() && ("checkbox" === e.type + || "radio" === e.type) + } + + function g(e, t) { + if ("topClick" === e) { + return t + } + } + + function y(e, t) { + if (null != e) { + var n = e._wrapperState || t._wrapperState; + if (n && n.controlled && "number" === t.type) { + var r = "" + t.value; + t.getAttribute("value") !== r && t.setAttribute("value", r) + } + } + } + + var _ = e(16), C = e(19), b = e(123), E = e(33), x = e(71), w = e(80), T = e(102), + k = e(109), P = e(110), S = { + change: { + phasedRegistrationNames: { + bubbled: "onChange", + captured: "onChangeCapture" + }, + dependencies: ["topBlur", "topChange", "topClick", "topFocus", "topInput", + "topKeyDown", "topKeyUp", "topSelectionChange"] + } + }, N = null, M = null, I = null, O = null, R = !1; + b.canUseDOM && (R = k("change") && (!document.documentMode || document.documentMode > 8)); + var A = !1; + b.canUseDOM && (A = k("input") && (!document.documentMode || document.documentMode > 11)); + var D = { + get: function () { + return O.get.call(this) + }, set: function (e) { + I = "" + e, O.set.call(this, e) + } + }, L = { + eventTypes: S, extractEvents: function (e, t, n, o) { + var i, a, s = t ? E.getNodeFromInstance(t) : window; + if (r(s) ? R ? i = u : a = l : P(s) ? A ? i = f : (i = m, a = h) : v(s) + && (i = g), i) { + var c = i(e, t); + if (c) { + var p = w.getPooled(S.change, c, n, o); + return p.type = "change", C.accumulateTwoPhaseDispatches(p), p + } + } + a && a(e, s, t), "topBlur" === e && y(t, s) + } + }; + t.exports = L + }, {102: 102, 109: 109, 110: 110, 123: 123, 16: 16, 19: 19, 33: 33, 71: 71, 80: 80}], + 8: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return Array.isArray(t) && (t = t[1]), t ? t.nextSibling : e.firstChild + } + + function o(e, t, n) { + c.insertTreeBefore(e, t, n) + } + + function i(e, t, n) { + Array.isArray(t) ? s(e, t[0], t[1], n) : m(e, t, n) + } + + function a(e, t) { + if (Array.isArray(t)) { + var n = t[1]; + t = t[0], u(e, t, n), e.removeChild(n) + } + e.removeChild(t) + } + + function s(e, t, n, r) { + for (var o = t; ;) { + var i = o.nextSibling; + if (m(e, o, r), o === n) { + break; + } + o = i + } + } + + function u(e, t, n) { + for (; ;) { + var r = t.nextSibling; + if (r === n) { + break; + } + e.removeChild(r) + } + } + + function l(e, t, n) { + var r = e.parentNode, o = e.nextSibling; + o === t ? n && m(r, document.createTextNode(n), o) : n ? (h(o, n), u(r, o, t)) : u(r, e, + t) + } + + var c = e(9), p = e(13), d = (e(33), e(58), e(93)), f = e(114), h = e(115), + m = d(function (e, t, n) { + e.insertBefore(t, n) + }), v = p.dangerouslyReplaceNodeWithMarkup, g = { + dangerouslyReplaceNodeWithMarkup: v, + replaceDelimitedText: l, + processUpdates: function (e, t) { + for (var n = 0; n < t.length; n++) { + var s = t[n]; + switch (s.type) { + case"INSERT_MARKUP": + o(e, s.content, r(e, s.afterNode)); + break; + case"MOVE_EXISTING": + i(e, s.fromNode, r(e, s.afterNode)); + break; + case"SET_MARKUP": + f(e, s.content); + break; + case"TEXT_CONTENT": + h(e, s.content); + break; + case"REMOVE_NODE": + a(e, s.fromNode) + } + } + } + }; + t.exports = g + }, {114: 114, 115: 115, 13: 13, 33: 33, 58: 58, 9: 9, 93: 93}], + 9: [function (e, t, n) { + "use strict"; + + function r(e) { + if (h) { + var t = e.node, n = e.children; + if (n.length) { + for (var r = 0; r < n.length; r++) { + m(t, n[r], null); + } + } else { + null != e.html + ? p(t, e.html) : null != e.text && f(t, e.text) + } + } + } + + function o(e, t) { + e.parentNode.replaceChild(t.node, e), r(t) + } + + function i(e, t) { + h ? e.children.push(t) : e.node.appendChild(t.node) + } + + function a(e, t) { + h ? e.html = t : p(e.node, t) + } + + function s(e, t) { + h ? e.text = t : f(e.node, t) + } + + function u() { + return this.node.nodeName + } + + function l(e) { + return {node: e, children: [], html: null, text: null, toString: u} + } + + var c = e(10), p = e(114), d = e(93), f = e(115), + h = "undefined" != typeof document && "number" == typeof document.documentMode + || "undefined" != typeof navigator && "string" == typeof navigator.userAgent + && /\bEdge\/\d/.test(navigator.userAgent), m = d(function (e, t, n) { + 11 === t.node.nodeType || 1 === t.node.nodeType && "object" + === t.node.nodeName.toLowerCase() && (null == t.node.namespaceURI || t.node.namespaceURI + === c.html) ? (r(t), e.insertBefore(t.node, n)) : (e.insertBefore(t.node, n), r(t)) + }); + l.insertTreeBefore = m, l.replaceChildWithTree = o, l.queueChild = i, l.queueHTML = a, l.queueText = s, t.exports = l + }, {10: 10, 114: 114, 115: 115, 93: 93}], + 10: [function (e, t, n) { + "use strict"; + var r = { + html: "http://www.w3.org/1999/xhtml", + mathml: "http://www.w3.org/1998/Math/MathML", + svg: "http://www.w3.org/2000/svg" + }; + t.exports = r + }, {}], + 11: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return (e & t) === t + } + + var o = e(112), i = (e(137), { + MUST_USE_PROPERTY: 1, + HAS_BOOLEAN_VALUE: 4, + HAS_NUMERIC_VALUE: 8, + HAS_POSITIVE_NUMERIC_VALUE: 24, + HAS_OVERLOADED_BOOLEAN_VALUE: 32, + injectDOMPropertyConfig: function (e) { + var t = i, n = e.Properties || {}, a = e.DOMAttributeNamespaces || {}, + u = e.DOMAttributeNames || {}, l = e.DOMPropertyNames || {}, + c = e.DOMMutationMethods || {}; + e.isCustomAttribute && s._isCustomAttributeFunctions.push(e.isCustomAttribute); + for (var p in n) { + s.properties.hasOwnProperty(p) && o("48", p); + var d = p.toLowerCase(), f = n[p], h = { + attributeName: d, + attributeNamespace: null, + propertyName: p, + mutationMethod: null, + mustUseProperty: r(f, t.MUST_USE_PROPERTY), + hasBooleanValue: r(f, t.HAS_BOOLEAN_VALUE), + hasNumericValue: r(f, t.HAS_NUMERIC_VALUE), + hasPositiveNumericValue: r(f, t.HAS_POSITIVE_NUMERIC_VALUE), + hasOverloadedBooleanValue: r(f, t.HAS_OVERLOADED_BOOLEAN_VALUE) + }; + if (h.hasBooleanValue + h.hasNumericValue + h.hasOverloadedBooleanValue <= 1 || o( + "50", p), u.hasOwnProperty(p)) { + var m = u[p]; + h.attributeName = m + } + a.hasOwnProperty(p) && (h.attributeNamespace = a[p]), l.hasOwnProperty(p) + && (h.propertyName = l[p]), c.hasOwnProperty(p) + && (h.mutationMethod = c[p]), s.properties[p] = h + } + } + }), + a = ":A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD", + s = { + ID_ATTRIBUTE_NAME: "data-reactid", + ROOT_ATTRIBUTE_NAME: "data-reactroot", + ATTRIBUTE_NAME_START_CHAR: a, + ATTRIBUTE_NAME_CHAR: a + "\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040", + properties: {}, + getPossibleStandardName: null, + _isCustomAttributeFunctions: [], + isCustomAttribute: function (e) { + for (var t = 0; t < s._isCustomAttributeFunctions.length; + t++) { + if ((0, s._isCustomAttributeFunctions[t])(e)) { + return !0; + } + } + return !1 + }, + injection: i + }; + t.exports = s + }, {112: 112, 137: 137}], + 12: [function (e, t, n) { + "use strict"; + + function r(e) { + return !!l.hasOwnProperty(e) || !u.hasOwnProperty(e) && (s.test(e) ? (l[e] = !0, !0) + : (u[e] = !0, !1)) + } + + function o(e, t) { + return null == t || e.hasBooleanValue && !t || e.hasNumericValue && isNaN(t) + || e.hasPositiveNumericValue && t < 1 || e.hasOverloadedBooleanValue && !1 === t + } + + var i = e(11), a = (e(33), e(58), e(111)), s = (e(142), new RegExp( + "^[" + i.ATTRIBUTE_NAME_START_CHAR + "][" + i.ATTRIBUTE_NAME_CHAR + "]*$")), u = {}, + l = {}, c = { + createMarkupForID: function (e) { + return i.ID_ATTRIBUTE_NAME + "=" + a(e) + }, setAttributeForID: function (e, t) { + e.setAttribute(i.ID_ATTRIBUTE_NAME, t) + }, createMarkupForRoot: function () { + return i.ROOT_ATTRIBUTE_NAME + '=""' + }, setAttributeForRoot: function (e) { + e.setAttribute(i.ROOT_ATTRIBUTE_NAME, "") + }, createMarkupForProperty: function (e, t) { + var n = i.properties.hasOwnProperty(e) ? i.properties[e] : null; + if (n) { + if (o(n, t)) { + return ""; + } + var r = n.attributeName; + return n.hasBooleanValue || n.hasOverloadedBooleanValue && !0 === t ? r + '=""' : r + + "=" + a(t) + } + return i.isCustomAttribute(e) ? null == t ? "" : e + "=" + a(t) : null + }, createMarkupForCustomAttribute: function (e, t) { + return r(e) && null != t ? e + "=" + a(t) : "" + }, setValueForProperty: function (e, t, n) { + var r = i.properties.hasOwnProperty(t) ? i.properties[t] : null; + if (r) { + var a = r.mutationMethod; + if (a) { + a(e, n); + } else { + if (o(r, n)) { + return void this.deleteValueForProperty(e, t); + } + if (r.mustUseProperty) { + e[r.propertyName] = n; + } else { + var s = r.attributeName, u = r.attributeNamespace; + u ? e.setAttributeNS(u, s, "" + n) : r.hasBooleanValue + || r.hasOverloadedBooleanValue && !0 === n ? e.setAttribute(s, "") + : e.setAttribute(s, "" + n) + } + } + } else if (i.isCustomAttribute(t)) { + return void c.setValueForAttribute(e, t, n) + } + }, setValueForAttribute: function (e, t, n) { + r(t) && (null == n ? e.removeAttribute(t) : e.setAttribute(t, "" + n)) + }, deleteValueForAttribute: function (e, t) { + e.removeAttribute(t) + }, deleteValueForProperty: function (e, t) { + var n = i.properties.hasOwnProperty(t) ? i.properties[t] : null; + if (n) { + var r = n.mutationMethod; + if (r) { + r(e, void 0); + } else if (n.mustUseProperty) { + var o = n.propertyName; + n.hasBooleanValue ? e[o] = !1 : e[o] = "" + } else { + e.removeAttribute(n.attributeName) + } + } else { + i.isCustomAttribute(t) && e.removeAttribute(t) + } + } + }; + t.exports = c + }, {11: 11, 111: 111, 142: 142, 33: 33, 58: 58}], + 13: [function (e, t, n) { + "use strict"; + var r = e(112), o = e(9), i = e(123), a = e(128), s = e(129), u = (e(137), { + dangerouslyReplaceNodeWithMarkup: function (e, t) { + if (i.canUseDOM || r("56"), t || r("57"), "HTML" === e.nodeName && r("58"), "string" + == typeof t) { + var n = a(t, s)[0]; + e.parentNode.replaceChild(n, e) + } else { + o.replaceChildWithTree(e, t) + } + } + }); + t.exports = u + }, {112: 112, 123: 123, 128: 128, 129: 129, 137: 137, 9: 9}], + 14: [function (e, t, n) { + "use strict"; + var r = ["ResponderEventPlugin", "SimpleEventPlugin", "TapEventPlugin", + "EnterLeaveEventPlugin", "ChangeEventPlugin", "SelectEventPlugin", + "BeforeInputEventPlugin"]; + t.exports = r + }, {}], + 15: [function (e, t, n) { + "use strict"; + var r = e(19), o = e(33), i = e(84), a = { + mouseEnter: { + registrationName: "onMouseEnter", + dependencies: ["topMouseOut", "topMouseOver"] + }, + mouseLeave: { + registrationName: "onMouseLeave", + dependencies: ["topMouseOut", "topMouseOver"] + } + }, s = { + eventTypes: a, extractEvents: function (e, t, n, s) { + if ("topMouseOver" === e && (n.relatedTarget || n.fromElement)) { + return null; + } + if ("topMouseOut" !== e && "topMouseOver" !== e) { + return null; + } + var u; + if (s.window === s) { + u = s; + } else { + var l = s.ownerDocument; + u = l ? l.defaultView || l.parentWindow : window + } + var c, p; + if ("topMouseOut" === e) { + c = t; + var d = n.relatedTarget || n.toElement; + p = d ? o.getClosestInstanceFromNode(d) : null + } else { + c = null, p = t; + } + if (c === p) { + return null; + } + var f = null == c ? u : o.getNodeFromInstance(c), + h = null == p ? u : o.getNodeFromInstance(p), + m = i.getPooled(a.mouseLeave, c, n, s); + m.type = "mouseleave", m.target = f, m.relatedTarget = h; + var v = i.getPooled(a.mouseEnter, p, n, s); + return v.type = "mouseenter", v.target = h, v.relatedTarget = f, r.accumulateEnterLeaveDispatches( + m, v, c, p), [m, v] + } + }; + t.exports = s + }, {19: 19, 33: 33, 84: 84}], + 16: [function (e, t, n) { + "use strict"; + + function r(e) { + return "button" === e || "input" === e || "select" === e || "textarea" === e + } + + function o(e, t, n) { + switch (e) { + case"onClick": + case"onClickCapture": + case"onDoubleClick": + case"onDoubleClickCapture": + case"onMouseDown": + case"onMouseDownCapture": + case"onMouseMove": + case"onMouseMoveCapture": + case"onMouseUp": + case"onMouseUpCapture": + return !(!n.disabled || !r(t)); + default: + return !1 + } + } + + var i = e(112), a = e(17), s = e(18), u = e(50), l = e(91), c = e(98), p = (e(137), {}), + d = null, f = function (e, t) { + e && (s.executeDispatchesInOrder(e, t), e.isPersistent() || e.constructor.release(e)) + }, h = function (e) { + return f(e, !0) + }, m = function (e) { + return f(e, !1) + }, v = function (e) { + return "." + e._rootNodeID + }, g = { + injection: { + injectEventPluginOrder: a.injectEventPluginOrder, + injectEventPluginsByName: a.injectEventPluginsByName + }, putListener: function (e, t, n) { + "function" != typeof n && i("94", t, typeof n); + var r = v(e); + (p[t] || (p[t] = {}))[r] = n; + var o = a.registrationNameModules[t]; + o && o.didPutListener && o.didPutListener(e, t, n) + }, getListener: function (e, t) { + var n = p[t]; + if (o(t, e._currentElement.type, e._currentElement.props)) { + return null; + } + var r = v(e); + return n && n[r] + }, deleteListener: function (e, t) { + var n = a.registrationNameModules[t]; + n && n.willDeleteListener && n.willDeleteListener(e, t); + var r = p[t]; + r && delete r[v(e)] + }, deleteAllListeners: function (e) { + var t = v(e); + for (var n in p) { + if (p.hasOwnProperty(n) && p[n][t]) { + var r = a.registrationNameModules[n]; + r && r.willDeleteListener && r.willDeleteListener(e, n), delete p[n][t] + } + } + }, extractEvents: function (e, t, n, r) { + for (var o, i = a.plugins, s = 0; s < i.length; s++) { + var u = i[s]; + if (u) { + var c = u.extractEvents(e, t, n, r); + c && (o = l(o, c)) + } + } + return o + }, enqueueEvents: function (e) { + e && (d = l(d, e)) + }, processEventQueue: function (e) { + var t = d; + d = null, e ? c(t, h) : c(t, m), d && i("95"), u.rethrowCaughtError() + }, __purge: function () { + p = {} + }, __getListenerBank: function () { + return p + } + }; + t.exports = g + }, {112: 112, 137: 137, 17: 17, 18: 18, 50: 50, 91: 91, 98: 98}], + 17: [function (e, t, n) { + "use strict"; + + function r() { + if (s) { + for (var e in u) { + var t = u[e], n = s.indexOf(e); + if (n > -1 || a("96", e), !l.plugins[n]) { + t.extractEvents || a("97", e), l.plugins[n] = t; + var r = t.eventTypes; + for (var i in r) { + o(r[i], t, i) || a("98", i, e) + } + } + } + } + } + + function o(e, t, n) { + l.eventNameDispatchConfigs.hasOwnProperty(n) && a("99", + n), l.eventNameDispatchConfigs[n] = e; + var r = e.phasedRegistrationNames; + if (r) { + for (var o in r) { + if (r.hasOwnProperty(o)) { + var s = r[o]; + i(s, t, n) + } + } + return !0 + } + return !!e.registrationName && (i(e.registrationName, t, n), !0) + } + + function i(e, t, n) { + l.registrationNameModules[e] && a("100", + e), l.registrationNameModules[e] = t, l.registrationNameDependencies[e] = t.eventTypes[n].dependencies + } + + var a = e(112), s = (e(137), null), u = {}, l = { + plugins: [], + eventNameDispatchConfigs: {}, + registrationNameModules: {}, + registrationNameDependencies: {}, + possibleRegistrationNames: null, + injectEventPluginOrder: function (e) { + s && a("101"), s = Array.prototype.slice.call(e), r() + }, + injectEventPluginsByName: function (e) { + var t = !1; + for (var n in e) { + if (e.hasOwnProperty(n)) { + var o = e[n]; + u.hasOwnProperty(n) && u[n] === o || (u[n] && a("102", n), u[n] = o, t = !0) + } + } + t && r() + }, + getPluginModuleForEvent: function (e) { + var t = e.dispatchConfig; + if (t.registrationName) { + return l.registrationNameModules[t.registrationName] || null; + } + if (void 0 !== t.phasedRegistrationNames) { + var n = t.phasedRegistrationNames; + for (var r in n) { + if (n.hasOwnProperty(r)) { + var o = l.registrationNameModules[n[r]]; + if (o) { + return o + } + } + } + } + return null + }, + _resetEventPlugins: function () { + s = null; + for (var e in u) { + u.hasOwnProperty(e) && delete u[e]; + } + l.plugins.length = 0; + var t = l.eventNameDispatchConfigs; + for (var n in t) { + t.hasOwnProperty(n) && delete t[n]; + } + var r = l.registrationNameModules; + for (var o in r) { + r.hasOwnProperty(o) && delete r[o] + } + } + }; + t.exports = l + }, {112: 112, 137: 137}], + 18: [function (e, t, n) { + "use strict"; + + function r(e) { + return "topMouseUp" === e || "topTouchEnd" === e || "topTouchCancel" === e + } + + function o(e) { + return "topMouseMove" === e || "topTouchMove" === e + } + + function i(e) { + return "topMouseDown" === e || "topTouchStart" === e + } + + function a(e, t, n, r) { + var o = e.type || "unknown-event"; + e.currentTarget = g.getNodeFromInstance(r), t ? m.invokeGuardedCallbackWithCatch(o, n, + e) : m.invokeGuardedCallback(o, n, e), e.currentTarget = null + } + + function s(e, t) { + var n = e._dispatchListeners, r = e._dispatchInstances; + if (Array.isArray(n)) { + for (var o = 0; o < n.length && !e.isPropagationStopped(); o++) { + a( + e, t, n[o], r[o]); + } + } else { + n && a(e, t, n, r); + } + e._dispatchListeners = null, e._dispatchInstances = null + } + + function u(e) { + var t = e._dispatchListeners, n = e._dispatchInstances; + if (Array.isArray(t)) { + for (var r = 0; r < t.length && !e.isPropagationStopped(); r++) { + if (t[r](e, + n[r])) { + return n[r] + } + } + } else if (t && t(e, n)) { + return n; + } + return null + } + + function l(e) { + var t = u(e); + return e._dispatchInstances = null, e._dispatchListeners = null, t + } + + function c(e) { + var t = e._dispatchListeners, n = e._dispatchInstances; + Array.isArray(t) && h("103"), e.currentTarget = t ? g.getNodeFromInstance(n) : null; + var r = t ? t(e) : null; + return e.currentTarget = null, e._dispatchListeners = null, e._dispatchInstances = null, r + } + + function p(e) { + return !!e._dispatchListeners + } + + var d, f, h = e(112), m = e(50), v = (e(137), e(142), { + injectComponentTree: function (e) { + d = e + }, injectTreeTraversal: function (e) { + f = e + } + }), g = { + isEndish: r, + isMoveish: o, + isStartish: i, + executeDirectDispatch: c, + executeDispatchesInOrder: s, + executeDispatchesInOrderStopAtTrue: l, + hasDispatches: p, + getInstanceFromNode: function (e) { + return d.getInstanceFromNode(e) + }, + getNodeFromInstance: function (e) { + return d.getNodeFromInstance(e) + }, + isAncestor: function (e, t) { + return f.isAncestor(e, t) + }, + getLowestCommonAncestor: function (e, t) { + return f.getLowestCommonAncestor(e, t) + }, + getParentInstance: function (e) { + return f.getParentInstance(e) + }, + traverseTwoPhase: function (e, t, n) { + return f.traverseTwoPhase(e, t, n) + }, + traverseEnterLeave: function (e, t, n, r, o) { + return f.traverseEnterLeave(e, t, n, r, o) + }, + injection: v + }; + t.exports = g + }, {112: 112, 137: 137, 142: 142, 50: 50}], + 19: [function (e, t, n) { + "use strict"; + + function r(e, t, n) { + var r = t.dispatchConfig.phasedRegistrationNames[n]; + return g(e, r) + } + + function o(e, t, n) { + var o = r(e, n, t); + o && (n._dispatchListeners = m(n._dispatchListeners, o), n._dispatchInstances = m( + n._dispatchInstances, e)) + } + + function i(e) { + e && e.dispatchConfig.phasedRegistrationNames && h.traverseTwoPhase(e._targetInst, o, e) + } + + function a(e) { + if (e && e.dispatchConfig.phasedRegistrationNames) { + var t = e._targetInst, n = t ? h.getParentInstance(t) : null; + h.traverseTwoPhase(n, o, e) + } + } + + function s(e, t, n) { + if (n && n.dispatchConfig.registrationName) { + var r = n.dispatchConfig.registrationName, o = g(e, r); + o && (n._dispatchListeners = m(n._dispatchListeners, o), n._dispatchInstances = m( + n._dispatchInstances, e)) + } + } + + function u(e) { + e && e.dispatchConfig.registrationName && s(e._targetInst, null, e) + } + + function l(e) { + v(e, i) + } + + function c(e) { + v(e, a) + } + + function p(e, t, n, r) { + h.traverseEnterLeave(n, r, s, e, t) + } + + function d(e) { + v(e, u) + } + + var f = e(16), h = e(18), m = e(91), v = e(98), g = (e(142), f.getListener), y = { + accumulateTwoPhaseDispatches: l, + accumulateTwoPhaseDispatchesSkipTarget: c, + accumulateDirectDispatches: d, + accumulateEnterLeaveDispatches: p + }; + t.exports = y + }, {142: 142, 16: 16, 18: 18, 91: 91, 98: 98}], + 20: [function (e, t, n) { + "use strict"; + + function r(e) { + this._root = e, this._startText = this.getText(), this._fallbackText = null + } + + var o = e(143), i = e(24), a = e(106); + o(r.prototype, { + destructor: function () { + this._root = null, this._startText = null, this._fallbackText = null + }, getText: function () { + return "value" in this._root ? this._root.value : this._root[a()] + }, getData: function () { + if (this._fallbackText) { + return this._fallbackText; + } + var e, t, n = this._startText, r = n.length, o = this.getText(), i = o.length; + for (e = 0; e < r && n[e] === o[e]; e++) { + ; + } + var a = r - e; + for (t = 1; t <= a && n[r - t] === o[i - t]; t++) { + ; + } + var s = t > 1 ? 1 - t : void 0; + return this._fallbackText = o.slice(e, s), this._fallbackText + } + }), i.addPoolingTo(r), t.exports = r + }, {106: 106, 143: 143, 24: 24}], + 21: [function (e, t, n) { + "use strict"; + var r = e(11), o = r.injection.MUST_USE_PROPERTY, i = r.injection.HAS_BOOLEAN_VALUE, + a = r.injection.HAS_NUMERIC_VALUE, s = r.injection.HAS_POSITIVE_NUMERIC_VALUE, + u = r.injection.HAS_OVERLOADED_BOOLEAN_VALUE, l = { + isCustomAttribute: RegExp.prototype.test.bind( + new RegExp("^(data|aria)-[" + r.ATTRIBUTE_NAME_CHAR + "]*$")), + Properties: { + accept: 0, + acceptCharset: 0, + accessKey: 0, + action: 0, + allowFullScreen: i, + allowTransparency: 0, + alt: 0, + as: 0, + async: i, + autoComplete: 0, + autoPlay: i, + capture: i, + cellPadding: 0, + cellSpacing: 0, + charSet: 0, + challenge: 0, + checked: o | i, + cite: 0, + classID: 0, + className: 0, + cols: s, + colSpan: 0, + content: 0, + contentEditable: 0, + contextMenu: 0, + controls: i, + coords: 0, + crossOrigin: 0, + data: 0, + dateTime: 0, + default: i, + defer: i, + dir: 0, + disabled: i, + download: u, + draggable: 0, + encType: 0, + form: 0, + formAction: 0, + formEncType: 0, + formMethod: 0, + formNoValidate: i, + formTarget: 0, + frameBorder: 0, + headers: 0, + height: 0, + hidden: i, + high: 0, + href: 0, + hrefLang: 0, + htmlFor: 0, + httpEquiv: 0, + icon: 0, + id: 0, + inputMode: 0, + integrity: 0, + is: 0, + keyParams: 0, + keyType: 0, + kind: 0, + label: 0, + lang: 0, + list: 0, + loop: i, + low: 0, + manifest: 0, + marginHeight: 0, + marginWidth: 0, + max: 0, + maxLength: 0, + media: 0, + mediaGroup: 0, + method: 0, + min: 0, + minLength: 0, + multiple: o | i, + muted: o | i, + name: 0, + nonce: 0, + noValidate: i, + open: i, + optimum: 0, + pattern: 0, + placeholder: 0, + playsInline: i, + poster: 0, + preload: 0, + profile: 0, + radioGroup: 0, + readOnly: i, + referrerPolicy: 0, + rel: 0, + required: i, + reversed: i, + role: 0, + rows: s, + rowSpan: a, + sandbox: 0, + scope: 0, + scoped: i, + scrolling: 0, + seamless: i, + selected: o | i, + shape: 0, + size: s, + sizes: 0, + span: s, + spellCheck: 0, + src: 0, + srcDoc: 0, + srcLang: 0, + srcSet: 0, + start: a, + step: 0, + style: 0, + summary: 0, + tabIndex: 0, + target: 0, + title: 0, + type: 0, + useMap: 0, + value: 0, + width: 0, + wmode: 0, + wrap: 0, + about: 0, + datatype: 0, + inlist: 0, + prefix: 0, + property: 0, + resource: 0, + typeof: 0, + vocab: 0, + autoCapitalize: 0, + autoCorrect: 0, + autoSave: 0, + color: 0, + itemProp: 0, + itemScope: i, + itemType: 0, + itemID: 0, + itemRef: 0, + results: 0, + security: 0, + unselectable: 0 + }, + DOMAttributeNames: { + acceptCharset: "accept-charset", + className: "class", + htmlFor: "for", + httpEquiv: "http-equiv" + }, + DOMPropertyNames: {}, + DOMMutationMethods: { + value: function (e, t) { + if (null == t) { + return e.removeAttribute("value"); + } + "number" !== e.type || !1 === e.hasAttribute("value") ? e.setAttribute("value", + "" + t) : e.validity && !e.validity.badInput && e.ownerDocument.activeElement + !== e && e.setAttribute("value", "" + t) + } + } + }; + t.exports = l + }, {11: 11}], + 22: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = {"=": "=0", ":": "=2"}; + return "$" + ("" + e).replace(/[=:]/g, function (e) { + return t[e] + }) + } + + function o(e) { + var t = {"=0": "=", "=2": ":"}; + return ("" + ("." === e[0] && "$" === e[1] ? e.substring(2) : e.substring(1))).replace( + /(=0|=2)/g, function (e) { + return t[e] + }) + } + + var i = {escape: r, unescape: o}; + t.exports = i + }, {}], + 23: [function (e, t, n) { + "use strict"; + + function r(e) { + null != e.checkedLink && null != e.valueLink && s("87") + } + + function o(e) { + r(e), (null != e.value || null != e.onChange) && s("88") + } + + function i(e) { + r(e), (null != e.checked || null != e.onChange) && s("89") + } + + function a(e) { + if (e) { + var t = e.getName(); + if (t) { + return " Check the render method of `" + t + "`." + } + } + return "" + } + + var s = e(112), u = e(64), l = e(145), c = e(120), p = l(c.isValidElement), + d = (e(137), e(142), { + button: !0, + checkbox: !0, + image: !0, + hidden: !0, + radio: !0, + reset: !0, + submit: !0 + }), f = { + value: function (e, t, n) { + return !e[t] || d[e.type] || e.onChange || e.readOnly || e.disabled ? null + : new Error( + "You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.") + }, checked: function (e, t, n) { + return !e[t] || e.onChange || e.readOnly || e.disabled ? null : new Error( + "You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.") + }, onChange: p.func + }, h = {}, m = { + checkPropTypes: function (e, t, n) { + for (var r in f) { + if (f.hasOwnProperty(r)) { + var o = f[r](t, r, e, "prop", null, u); + } + o instanceof Error && !(o.message in h) && (h[o.message] = !0, a(n)) + } + }, getValue: function (e) { + return e.valueLink ? (o(e), e.valueLink.value) : e.value + }, getChecked: function (e) { + return e.checkedLink ? (i(e), e.checkedLink.value) : e.checked + }, executeOnChange: function (e, t) { + return e.valueLink ? (o(e), e.valueLink.requestChange(t.target.value)) : e.checkedLink + ? (i(e), e.checkedLink.requestChange(t.target.checked)) : e.onChange + ? e.onChange.call(void 0, t) : void 0 + } + }; + t.exports = m + }, {112: 112, 120: 120, 137: 137, 142: 142, 145: 145, 64: 64}], + 24: [function (e, t, n) { + "use strict"; + var r = e(112), o = (e(137), function (e) { + var t = this; + if (t.instancePool.length) { + var n = t.instancePool.pop(); + return t.call(n, e), n + } + return new t(e) + }), i = function (e, t) { + var n = this; + if (n.instancePool.length) { + var r = n.instancePool.pop(); + return n.call(r, e, t), r + } + return new n(e, t) + }, a = function (e, t, n) { + var r = this; + if (r.instancePool.length) { + var o = r.instancePool.pop(); + return r.call(o, e, t, n), o + } + return new r(e, t, n) + }, s = function (e, t, n, r) { + var o = this; + if (o.instancePool.length) { + var i = o.instancePool.pop(); + return o.call(i, e, t, n, r), i + } + return new o(e, t, n, r) + }, u = function (e) { + var t = this; + e instanceof t || r("25"), e.destructor(), t.instancePool.length < t.poolSize + && t.instancePool.push(e) + }, l = o, c = function (e, t) { + var n = e; + return n.instancePool = [], n.getPooled = t || l, n.poolSize + || (n.poolSize = 10), n.release = u, n + }, p = { + addPoolingTo: c, + oneArgumentPooler: o, + twoArgumentPooler: i, + threeArgumentPooler: a, + fourArgumentPooler: s + }; + t.exports = p + }, {112: 112, 137: 137}], + 25: [function (e, t, n) { + "use strict"; + + function r(e) { + return Object.prototype.hasOwnProperty.call(e, m) || (e[m] = f++, p[e[m]] = {}), p[e[m]] + } + + var o, i = e(143), a = e(17), s = e(51), u = e(90), l = e(107), c = e(109), p = {}, + d = !1, f = 0, h = { + topAbort: "abort", + topAnimationEnd: l("animationend") || "animationend", + topAnimationIteration: l("animationiteration") || "animationiteration", + topAnimationStart: l("animationstart") || "animationstart", + topBlur: "blur", + topCanPlay: "canplay", + topCanPlayThrough: "canplaythrough", + topChange: "change", + topClick: "click", + topCompositionEnd: "compositionend", + topCompositionStart: "compositionstart", + topCompositionUpdate: "compositionupdate", + topContextMenu: "contextmenu", + topCopy: "copy", + topCut: "cut", + topDoubleClick: "dblclick", + topDrag: "drag", + topDragEnd: "dragend", + topDragEnter: "dragenter", + topDragExit: "dragexit", + topDragLeave: "dragleave", + topDragOver: "dragover", + topDragStart: "dragstart", + topDrop: "drop", + topDurationChange: "durationchange", + topEmptied: "emptied", + topEncrypted: "encrypted", + topEnded: "ended", + topError: "error", + topFocus: "focus", + topInput: "input", + topKeyDown: "keydown", + topKeyPress: "keypress", + topKeyUp: "keyup", + topLoadedData: "loadeddata", + topLoadedMetadata: "loadedmetadata", + topLoadStart: "loadstart", + topMouseDown: "mousedown", + topMouseMove: "mousemove", + topMouseOut: "mouseout", + topMouseOver: "mouseover", + topMouseUp: "mouseup", + topPaste: "paste", + topPause: "pause", + topPlay: "play", + topPlaying: "playing", + topProgress: "progress", + topRateChange: "ratechange", + topScroll: "scroll", + topSeeked: "seeked", + topSeeking: "seeking", + topSelectionChange: "selectionchange", + topStalled: "stalled", + topSuspend: "suspend", + topTextInput: "textInput", + topTimeUpdate: "timeupdate", + topTouchCancel: "touchcancel", + topTouchEnd: "touchend", + topTouchMove: "touchmove", + topTouchStart: "touchstart", + topTransitionEnd: l("transitionend") || "transitionend", + topVolumeChange: "volumechange", + topWaiting: "waiting", + topWheel: "wheel" + }, m = "_reactListenersID" + String(Math.random()).slice(2), v = i({}, s, { + ReactEventListener: null, injection: { + injectReactEventListener: function (e) { + e.setHandleTopLevel(v.handleTopLevel), v.ReactEventListener = e + } + }, setEnabled: function (e) { + v.ReactEventListener && v.ReactEventListener.setEnabled(e) + }, isEnabled: function () { + return !(!v.ReactEventListener || !v.ReactEventListener.isEnabled()) + }, listenTo: function (e, t) { + for (var n = t, o = r(n), i = a.registrationNameDependencies[e], s = 0; s < i.length; + s++) { + var u = i[s]; + o.hasOwnProperty(u) && o[u] || ("topWheel" === u ? c("wheel") + ? v.ReactEventListener.trapBubbledEvent("topWheel", "wheel", n) : c("mousewheel") + ? v.ReactEventListener.trapBubbledEvent("topWheel", "mousewheel", n) + : v.ReactEventListener.trapBubbledEvent("topWheel", "DOMMouseScroll", n) + : "topScroll" === u ? c("scroll", !0) ? v.ReactEventListener.trapCapturedEvent( + "topScroll", "scroll", n) : v.ReactEventListener.trapBubbledEvent("topScroll", + "scroll", v.ReactEventListener.WINDOW_HANDLE) : "topFocus" === u || "topBlur" + === u ? (c("focus", !0) ? (v.ReactEventListener.trapCapturedEvent("topFocus", + "focus", n), v.ReactEventListener.trapCapturedEvent("topBlur", "blur", n)) : c( + "focusin") && (v.ReactEventListener.trapBubbledEvent("topFocus", "focusin", + n), v.ReactEventListener.trapBubbledEvent("topBlur", "focusout", + n)), o.topBlur = !0, o.topFocus = !0) : h.hasOwnProperty(u) + && v.ReactEventListener.trapBubbledEvent(u, h[u], n), o[u] = !0) + } + }, trapBubbledEvent: function (e, t, n) { + return v.ReactEventListener.trapBubbledEvent(e, t, n) + }, trapCapturedEvent: function (e, t, n) { + return v.ReactEventListener.trapCapturedEvent(e, t, n) + }, supportsEventPageXY: function () { + if (!document.createEvent) { + return !1; + } + var e = document.createEvent("MouseEvent"); + return null != e && "pageX" in e + }, ensureScrollValueMonitoring: function () { + if (void 0 === o && (o = v.supportsEventPageXY()), !o && !d) { + var e = u.refreshScrollValues; + v.ReactEventListener.monitorScrollValue(e), d = !0 + } + } + }); + t.exports = v + }, {107: 107, 109: 109, 143: 143, 17: 17, 51: 51, 90: 90}], + 26: [function (e, t, n) { + (function (n) { + "use strict"; + + function r(e, t, n, r) { + var o = void 0 === e[n]; + null != t && o && (e[n] = i(t, !0)) + } + + var o = e(66), i = e(108), a = (e(22), e(116)), s = e(117); + e(142); + void 0 !== n && n.env; + var u = { + instantiateChildren: function (e, t, n, o) { + if (null == e) { + return null; + } + var i = {}; + return s(e, r, i), i + }, updateChildren: function (e, t, n, r, s, u, l, c, p) { + if (t || e) { + var d, f; + for (d in t) { + if (t.hasOwnProperty(d)) { + f = e && e[d]; + var h = f && f._currentElement, m = t[d]; + if (null != f && a(h, m)) { + o.receiveComponent(f, m, s, c), t[d] = f; + } else { + f && (r[d] = o.getHostNode(f), o.unmountComponent(f, !1)); + var v = i(m, !0); + t[d] = v; + var g = o.mountComponent(v, s, u, l, c, p); + n.push(g) + } + } + } + for (d in e) { + !e.hasOwnProperty(d) || t && t.hasOwnProperty(d) + || (f = e[d], r[d] = o.getHostNode(f), o.unmountComponent(f, !1)) + } + } + }, unmountChildren: function (e, t) { + for (var n in e) { + if (e.hasOwnProperty(n)) { + var r = e[n]; + o.unmountComponent(r, t) + } + } + } + }; + t.exports = u + }).call(this, void 0) + }, {108: 108, 116: 116, 117: 117, 142: 142, 22: 22, 66: 66}], + 27: [function (e, t, n) { + "use strict"; + var r = e(8), o = e(37), i = { + processChildrenUpdates: o.dangerouslyProcessChildrenUpdates, + replaceNodeWithMarkup: r.dangerouslyReplaceNodeWithMarkup + }; + t.exports = i + }, {37: 37, 8: 8}], + 28: [function (e, t, n) { + "use strict"; + var r = e(112), o = (e(137), !1), i = { + replaceNodeWithMarkup: null, + processChildrenUpdates: null, + injection: { + injectEnvironment: function (e) { + o && r( + "104"), i.replaceNodeWithMarkup = e.replaceNodeWithMarkup, i.processChildrenUpdates = e.processChildrenUpdates, o = !0 + } + } + }; + t.exports = i + }, {112: 112, 137: 137}], + 29: [function (e, t, n) { + "use strict"; + + function r(e) { + } + + function o(e) { + return !(!e.prototype || !e.prototype.isReactComponent) + } + + function i(e) { + return !(!e.prototype || !e.prototype.isPureReactComponent) + } + + var a = e(112), s = e(143), u = e(120), l = e(28), c = e(119), p = e(50), d = e(57), + f = (e(58), e(62)), h = e(66), m = e(130), v = (e(137), e(141)), g = e(116), + y = (e(142), {ImpureClass: 0, PureClass: 1, StatelessFunctional: 2}); + r.prototype.render = function () { + var e = d.get(this)._currentElement.type, t = e(this.props, this.context, this.updater); + return t + }; + var _ = 1, C = { + construct: function (e) { + this._currentElement = e, this._rootNodeID = 0, this._compositeType = null, this._instance = null, this._hostParent = null, this._hostContainerInfo = null, this._updateBatchNumber = null, this._pendingElement = null, this._pendingStateQueue = null, this._pendingReplaceState = !1, this._pendingForceUpdate = !1, this._renderedNodeType = null, this._renderedComponent = null, this._context = null, this._mountOrder = 0, this._topLevelWrapper = null, this._pendingCallbacks = null, this._calledComponentWillUnmount = !1 + }, mountComponent: function (e, t, n, s) { + this._context = s, this._mountOrder = _++, this._hostParent = t, this._hostContainerInfo = n; + var l, c = this._currentElement.props, p = this._processContext(s), + f = this._currentElement.type, h = e.getUpdateQueue(), v = o(f), + g = this._constructComponent(v, c, p, h); + v || null != g && null != g.render ? i(f) ? this._compositeType = y.PureClass + : this._compositeType = y.ImpureClass : (l = g, null === g || !1 === g + || u.isValidElement(g) || a("105", f.displayName || f.name || "Component"), g = new r( + f), this._compositeType = y.StatelessFunctional), g.props = c, g.context = p, g.refs = m, g.updater = h, this._instance = g, d.set( + g, this); + var C = g.state; + void 0 === C && (g.state = C = null), ("object" != typeof C || Array.isArray(C)) && a( + "106", this.getName() + || "ReactCompositeComponent"), this._pendingStateQueue = null, this._pendingReplaceState = !1, this._pendingForceUpdate = !1; + var b; + return b = g.unstable_handleError ? this.performInitialMountWithErrorHandling(l, t, n, + e, s) : this.performInitialMount(l, t, n, e, s), g.componentDidMount + && e.getReactMountReady().enqueue(g.componentDidMount, g), b + }, _constructComponent: function (e, t, n, r) { + return this._constructComponentWithoutOwner(e, t, n, r) + }, _constructComponentWithoutOwner: function (e, t, n, r) { + var o = this._currentElement.type; + return e ? new o(t, n, r) : o(t, n, r) + }, performInitialMountWithErrorHandling: function (e, t, n, r, o) { + var i, a = r.checkpoint(); + try { + i = this.performInitialMount(e, t, n, r, o) + } catch (s) { + r.rollback(a), this._instance.unstable_handleError(s), this._pendingStateQueue + && (this._instance.state = this._processPendingState(this._instance.props, + this._instance.context)), a = r.checkpoint(), this._renderedComponent.unmountComponent( + !0), r.rollback(a), i = this.performInitialMount(e, t, n, r, o) + } + return i + }, performInitialMount: function (e, t, n, r, o) { + var i = this._instance; + i.componentWillMount && (i.componentWillMount(), this._pendingStateQueue + && (i.state = this._processPendingState(i.props, i.context))), void 0 === e + && (e = this._renderValidatedComponent()); + var a = f.getType(e); + this._renderedNodeType = a; + var s = this._instantiateReactComponent(e, a !== f.EMPTY); + return this._renderedComponent = s, h.mountComponent(s, r, t, n, + this._processChildContext(o), 0) + }, getHostNode: function () { + return h.getHostNode(this._renderedComponent) + }, unmountComponent: function (e) { + if (this._renderedComponent) { + var t = this._instance; + if (t.componentWillUnmount + && !t._calledComponentWillUnmount) { + if (t._calledComponentWillUnmount = !0, e) { + var n = this.getName() + ".componentWillUnmount()"; + p.invokeGuardedCallback(n, t.componentWillUnmount.bind(t)) + } else { + t.componentWillUnmount(); + } + } + this._renderedComponent && (h.unmountComponent(this._renderedComponent, + e), this._renderedNodeType = null, this._renderedComponent = null, this._instance = null), this._pendingStateQueue = null, this._pendingReplaceState = !1, this._pendingForceUpdate = !1, this._pendingCallbacks = null, this._pendingElement = null, this._context = null, this._rootNodeID = 0, this._topLevelWrapper = null, d.remove( + t) + } + }, _maskContext: function (e) { + var t = this._currentElement.type, n = t.contextTypes; + if (!n) { + return m; + } + var r = {}; + for (var o in n) { + r[o] = e[o]; + } + return r + }, _processContext: function (e) { + return this._maskContext(e) + }, _processChildContext: function (e) { + var t, n = this._currentElement.type, r = this._instance; + if (r.getChildContext && (t = r.getChildContext()), t) { + "object" != typeof n.childContextTypes && a("107", + this.getName() || "ReactCompositeComponent"); + for (var o in t) { + o in n.childContextTypes || a("108", + this.getName() || "ReactCompositeComponent", o); + } + return s({}, e, t) + } + return e + }, _checkContextTypes: function (e, t, n) { + }, receiveComponent: function (e, t, n) { + var r = this._currentElement, o = this._context; + this._pendingElement = null, this.updateComponent(t, r, e, o, n) + }, performUpdateIfNecessary: function (e) { + null != this._pendingElement ? h.receiveComponent(this, this._pendingElement, e, + this._context) : null !== this._pendingStateQueue || this._pendingForceUpdate + ? this.updateComponent(e, this._currentElement, this._currentElement, this._context, + this._context) : this._updateBatchNumber = null + }, updateComponent: function (e, t, n, r, o) { + var i = this._instance; + null == i && a("136", this.getName() || "ReactCompositeComponent"); + var s, u = !1; + this._context === o ? s = i.context : (s = this._processContext(o), u = !0); + var l = t.props, c = n.props; + t !== n && (u = !0), u && i.componentWillReceiveProps && i.componentWillReceiveProps( + c, s); + var p = this._processPendingState(c, s), d = !0; + this._pendingForceUpdate || (i.shouldComponentUpdate ? d = i.shouldComponentUpdate(c, + p, s) : this._compositeType === y.PureClass && (d = !v(l, c) || !v(i.state, + p))), this._updateBatchNumber = null, d + ? (this._pendingForceUpdate = !1, this._performComponentUpdate(n, c, p, s, e, o)) + : (this._currentElement = n, this._context = o, i.props = c, i.state = p, i.context = s) + }, _processPendingState: function (e, t) { + var n = this._instance, r = this._pendingStateQueue, o = this._pendingReplaceState; + if (this._pendingReplaceState = !1, this._pendingStateQueue = null, !r) { + return n.state; + } + if (o && 1 === r.length) { + return r[0]; + } + for (var i = s({}, o ? r[0] : n.state), a = o ? 1 : 0; a < r.length; a++) { + var u = r[a]; + s(i, "function" == typeof u ? u.call(n, i, e, t) : u) + } + return i + }, _performComponentUpdate: function (e, t, n, r, o, i) { + var a, s, u, l = this._instance, c = Boolean(l.componentDidUpdate); + c && (a = l.props, s = l.state, u = l.context), l.componentWillUpdate + && l.componentWillUpdate(t, n, + r), this._currentElement = e, this._context = i, l.props = t, l.state = n, l.context = r, this._updateRenderedComponent( + o, i), c && o.getReactMountReady().enqueue(l.componentDidUpdate.bind(l, a, s, u), l) + }, _updateRenderedComponent: function (e, t) { + var n = this._renderedComponent, r = n._currentElement, + o = this._renderValidatedComponent(); + if (g(r, o)) { + h.receiveComponent(n, o, e, this._processChildContext(t)); + } else { + var i = h.getHostNode(n); + h.unmountComponent(n, !1); + var a = f.getType(o); + this._renderedNodeType = a; + var s = this._instantiateReactComponent(o, a !== f.EMPTY); + this._renderedComponent = s; + var u = h.mountComponent(s, e, this._hostParent, this._hostContainerInfo, + this._processChildContext(t), 0); + this._replaceNodeWithMarkup(i, u, n) + } + }, _replaceNodeWithMarkup: function (e, t, n) { + l.replaceNodeWithMarkup(e, t, n) + }, _renderValidatedComponentWithoutOwnerOrContext: function () { + return this._instance.render() + }, _renderValidatedComponent: function () { + var e; + if (this._compositeType !== y.StatelessFunctional) { + c.current = this; + try { + e = this._renderValidatedComponentWithoutOwnerOrContext() + } finally { + c.current = null + } + } else { + e = this._renderValidatedComponentWithoutOwnerOrContext(); + } + return null === e || !1 === e || u.isValidElement(e) || a("109", + this.getName() || "ReactCompositeComponent"), e + }, attachRef: function (e, t) { + var n = this.getPublicInstance(); + null == n && a("110"); + var r = t.getPublicInstance(); + (n.refs === m ? n.refs = {} : n.refs)[e] = r + }, detachRef: function (e) { + delete this.getPublicInstance().refs[e] + }, getName: function () { + var e = this._currentElement.type, t = this._instance && this._instance.constructor; + return e.displayName || t && t.displayName || e.name || t && t.name || null + }, getPublicInstance: function () { + var e = this._instance; + return this._compositeType === y.StatelessFunctional ? null : e + }, _instantiateReactComponent: null + }; + t.exports = C + }, { + 112: 112, + 116: 116, + 119: 119, + 120: 120, + 130: 130, + 137: 137, + 141: 141, + 142: 142, + 143: 143, + 28: 28, + 50: 50, + 57: 57, + 58: 58, + 62: 62, + 66: 66 + }], + 30: [function (e, t, n) { + "use strict"; + var r = e(33), o = e(47), i = e(60), a = e(66), s = e(71), u = e(72), l = e(96), + c = e(103), p = e(113); + e(142); + o.inject(); + var d = { + findDOMNode: l, + render: i.render, + unmountComponentAtNode: i.unmountComponentAtNode, + version: u, + unstable_batchedUpdates: s.batchedUpdates, + unstable_renderSubtreeIntoContainer: p + }; + "undefined" != typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && "function" + == typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject && __REACT_DEVTOOLS_GLOBAL_HOOK__.inject({ + ComponentTree: { + getClosestInstanceFromNode: r.getClosestInstanceFromNode, + getNodeFromInstance: function (e) { + return e._renderedComponent && (e = c(e)), e ? r.getNodeFromInstance(e) : null + } + }, Mount: i, Reconciler: a + }); + t.exports = d + }, {103: 103, 113: 113, 142: 142, 33: 33, 47: 47, 60: 60, 66: 66, 71: 71, 72: 72, 96: 96}], + 31: [function (e, t, n) { + "use strict"; + + function r(e) { + if (e) { + var t = e._currentElement._owner || null; + if (t) { + var n = t.getName(); + if (n) { + return " This DOM node was rendered by `" + n + "`." + } + } + } + return "" + } + + function o(e, t) { + t && (Y[e._tag] && (null != t.children || null != t.dangerouslySetInnerHTML) && m("137", + e._tag, e._currentElement._owner ? " Check the render method of " + + e._currentElement._owner.getName() + "." : ""), null != t.dangerouslySetInnerHTML + && (null != t.children && m("60"), "object" == typeof t.dangerouslySetInnerHTML && B + in t.dangerouslySetInnerHTML || m("61")), null != t.style && "object" != typeof t.style + && m("62", r(e))) + } + + function i(e, t, n, r) { + if (!(r instanceof R)) { + var o = e._hostContainerInfo, i = o._node && o._node.nodeType === H, + s = i ? o._node : o._ownerDocument; + F(t, s), r.getReactMountReady().enqueue(a, + {inst: e, registrationName: t, listener: n}) + } + } + + function a() { + var e = this; + x.putListener(e.inst, e.registrationName, e.listener) + } + + function s() { + var e = this; + S.postMountWrapper(e) + } + + function u() { + var e = this; + I.postMountWrapper(e) + } + + function l() { + var e = this; + N.postMountWrapper(e) + } + + function c() { + var e = this; + e._rootNodeID || m("63"); + var t = U(e); + switch (t || m("64"), e._tag) { + case"iframe": + case"object": + e._wrapperState.listeners = [T.trapBubbledEvent("topLoad", "load", t)]; + break; + case"video": + case"audio": + e._wrapperState.listeners = []; + for (var n in q) { + q.hasOwnProperty(n) && e._wrapperState.listeners.push( + T.trapBubbledEvent(n, q[n], t)); + } + break; + case"source": + e._wrapperState.listeners = [T.trapBubbledEvent("topError", "error", t)]; + break; + case"img": + e._wrapperState.listeners = [T.trapBubbledEvent("topError", "error", t), + T.trapBubbledEvent("topLoad", "load", t)]; + break; + case"form": + e._wrapperState.listeners = [T.trapBubbledEvent("topReset", "reset", t), + T.trapBubbledEvent("topSubmit", "submit", t)]; + break; + case"input": + case"select": + case"textarea": + e._wrapperState.listeners = [T.trapBubbledEvent("topInvalid", "invalid", t)] + } + } + + function p() { + M.postUpdateWrapper(this) + } + + function d(e) { + G.call(Q, e) || (X.test(e) || m("65", e), Q[e] = !0) + } + + function f(e, t) { + return e.indexOf("-") >= 0 || null != t.is + } + + function h(e) { + var t = e.type; + d(t), this._currentElement = e, this._tag = t.toLowerCase(), this._namespaceURI = null, this._renderedChildren = null, this._previousStyle = null, this._previousStyleCopy = null, this._hostNode = null, this._hostParent = null, this._rootNodeID = 0, this._domID = 0, this._hostContainerInfo = null, this._wrapperState = null, this._topLevelWrapper = null, this._flags = 0 + } + + var m = e(112), v = e(143), g = e(2), y = e(5), _ = e(9), C = e(10), b = e(11), E = e(12), + x = e(16), w = e(17), T = e(25), k = e(32), P = e(33), S = e(38), N = e(39), M = e(40), + I = e(43), O = (e(58), e(61)), R = e(68), A = (e(129), e(95)), + D = (e(137), e(109), e(141), e(118), e(142), k), L = x.deleteListener, + U = P.getNodeFromInstance, F = T.listenTo, j = w.registrationNameModules, + V = {string: !0, number: !0}, B = "__html", W = { + children: null, + dangerouslySetInnerHTML: null, + suppressContentEditableWarning: null + }, H = 11, q = { + topAbort: "abort", + topCanPlay: "canplay", + topCanPlayThrough: "canplaythrough", + topDurationChange: "durationchange", + topEmptied: "emptied", + topEncrypted: "encrypted", + topEnded: "ended", + topError: "error", + topLoadedData: "loadeddata", + topLoadedMetadata: "loadedmetadata", + topLoadStart: "loadstart", + topPause: "pause", + topPlay: "play", + topPlaying: "playing", + topProgress: "progress", + topRateChange: "ratechange", + topSeeked: "seeked", + topSeeking: "seeking", + topStalled: "stalled", + topSuspend: "suspend", + topTimeUpdate: "timeupdate", + topVolumeChange: "volumechange", + topWaiting: "waiting" + }, K = { + area: !0, + base: !0, + br: !0, + col: !0, + embed: !0, + hr: !0, + img: !0, + input: !0, + keygen: !0, + link: !0, + meta: !0, + param: !0, + source: !0, + track: !0, + wbr: !0 + }, z = {listing: !0, pre: !0, textarea: !0}, Y = v({menuitem: !0}, K), + X = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, Q = {}, G = {}.hasOwnProperty, $ = 1; + h.displayName = "ReactDOMComponent", h.Mixin = { + mountComponent: function (e, t, n, r) { + this._rootNodeID = $++, this._domID = n._idCounter++, this._hostParent = t, this._hostContainerInfo = n; + var i = this._currentElement.props; + switch (this._tag) { + case"audio": + case"form": + case"iframe": + case"img": + case"link": + case"object": + case"source": + case"video": + this._wrapperState = {listeners: null}, e.getReactMountReady().enqueue(c, this); + break; + case"input": + S.mountWrapper(this, i, t), i = S.getHostProps(this, + i), e.getReactMountReady().enqueue(c, this); + break; + case"option": + N.mountWrapper(this, i, t), i = N.getHostProps(this, i); + break; + case"select": + M.mountWrapper(this, i, t), i = M.getHostProps(this, + i), e.getReactMountReady().enqueue(c, this); + break; + case"textarea": + I.mountWrapper(this, i, t), i = I.getHostProps(this, + i), e.getReactMountReady().enqueue(c, this) + } + o(this, i); + var a, p; + null != t ? (a = t._namespaceURI, p = t._tag) : n._tag + && (a = n._namespaceURI, p = n._tag), (null == a || a === C.svg && "foreignobject" + === p) && (a = C.html), a === C.html && ("svg" === this._tag ? a = C.svg : "math" + === this._tag && (a = C.mathml)), this._namespaceURI = a; + var d; + if (e.useCreateElement) { + var f, h = n._ownerDocument; + if (a === C.html) { + if ("script" === this._tag) { + var m = h.createElement("div"), v = this._currentElement.type; + m.innerHTML = "<" + v + ">", f = m.removeChild(m.firstChild) + } else { + f = i.is ? h.createElement(this._currentElement.type, i.is) + : h.createElement(this._currentElement.type); + } + } else { + f = h.createElementNS(a, + this._currentElement.type); + } + P.precacheNode(this, f), this._flags |= D.hasCachedChildNodes, this._hostParent + || E.setAttributeForRoot(f), this._updateDOMProperties(null, i, e); + var y = _(f); + this._createInitialChildren(e, i, r, y), d = y + } else { + var b = this._createOpenTagMarkupAndPutListeners(e, i), + x = this._createContentMarkup(e, i, r); + d = !x && K[this._tag] ? b + "/>" : b + ">" + x + "" + } + switch (this._tag) { + case"input": + e.getReactMountReady().enqueue(s, this), i.autoFocus + && e.getReactMountReady().enqueue(g.focusDOMComponent, this); + break; + case"textarea": + e.getReactMountReady().enqueue(u, this), i.autoFocus + && e.getReactMountReady().enqueue(g.focusDOMComponent, this); + break; + case"select": + case"button": + i.autoFocus && e.getReactMountReady().enqueue(g.focusDOMComponent, this); + break; + case"option": + e.getReactMountReady().enqueue(l, this) + } + return d + }, _createOpenTagMarkupAndPutListeners: function (e, t) { + var n = "<" + this._currentElement.type; + for (var r in t) { + if (t.hasOwnProperty(r)) { + var o = t[r]; + if (null != o) { + if (j.hasOwnProperty(r)) { + o && i(this, r, o, e); + } else { + "style" === r && (o && (o = this._previousStyleCopy = v({}, + t.style)), o = y.createMarkupForStyles(o, this)); + var a = null; + null != this._tag && f(this._tag, t) ? W.hasOwnProperty(r) + || (a = E.createMarkupForCustomAttribute(r, o)) + : a = E.createMarkupForProperty( + r, o), a && (n += " " + a) + } + } + } + } + return e.renderToStaticMarkup ? n : (this._hostParent || (n += " " + + E.createMarkupForRoot()), n += " " + E.createMarkupForID(this._domID)) + }, _createContentMarkup: function (e, t, n) { + var r = "", o = t.dangerouslySetInnerHTML; + if (null != o) { + null != o.__html && (r = o.__html); + } else { + var i = V[typeof t.children] ? t.children : null, a = null != i ? null : t.children; + if (null != i) { + r = A(i); + } else if (null != a) { + var s = this.mountChildren(a, e, n); + r = s.join("") + } + } + return z[this._tag] && "\n" === r.charAt(0) ? "\n" + r : r + }, _createInitialChildren: function (e, t, n, r) { + var o = t.dangerouslySetInnerHTML; + if (null != o) { + null != o.__html && _.queueHTML(r, o.__html); + } else { + var i = V[typeof t.children] ? t.children : null, a = null != i ? null : t.children; + if (null != i) { + "" !== i && _.queueText(r, i); + } else if (null + != a) { + for (var s = this.mountChildren(a, e, n), u = 0; u < s.length; + u++) { + _.queueChild(r, s[u]) + } + } + } + }, receiveComponent: function (e, t, n) { + var r = this._currentElement; + this._currentElement = e, this.updateComponent(t, r, e, n) + }, updateComponent: function (e, t, n, r) { + var i = t.props, a = this._currentElement.props; + switch (this._tag) { + case"input": + i = S.getHostProps(this, i), a = S.getHostProps(this, a); + break; + case"option": + i = N.getHostProps(this, i), a = N.getHostProps(this, a); + break; + case"select": + i = M.getHostProps(this, i), a = M.getHostProps(this, a); + break; + case"textarea": + i = I.getHostProps(this, i), a = I.getHostProps(this, a) + } + switch (o(this, a), this._updateDOMProperties(i, a, e), this._updateDOMChildren(i, a, + e, r), this._tag) { + case"input": + S.updateWrapper(this); + break; + case"textarea": + I.updateWrapper(this); + break; + case"select": + e.getReactMountReady().enqueue(p, this) + } + }, _updateDOMProperties: function (e, t, n) { + var r, o, a; + for (r in e) { + if (!t.hasOwnProperty(r) && e.hasOwnProperty(r) && null + != e[r]) { + if ("style" === r) { + var s = this._previousStyleCopy; + for (o in s) { + s.hasOwnProperty(o) && (a = a || {}, a[o] = ""); + } + this._previousStyleCopy = null + } else { + j.hasOwnProperty(r) ? e[r] && L(this, r) : f(this._tag, e) ? W.hasOwnProperty( + r) || E.deleteValueForAttribute(U(this), r) : (b.properties[r] + || b.isCustomAttribute(r)) && E.deleteValueForProperty(U(this), r); + } + } + } + for (r in t) { + var u = t[r], + l = "style" === r ? this._previousStyleCopy : null != e ? e[r] : void 0; + if (t.hasOwnProperty(r) && u !== l && (null != u || null != l)) { + if ("style" + === r) { + if (u ? u = this._previousStyleCopy = v({}, u) + : this._previousStyleCopy = null, l) { + for (o in l) { + !l.hasOwnProperty(o) || u && u.hasOwnProperty(o) || (a = a + || {}, a[o] = ""); + } + for (o in u) { + u.hasOwnProperty(o) && l[o] !== u[o] && (a = a || {}, a[o] = u[o]) + } + } else { + a = u; + } + } else if (j.hasOwnProperty(r)) { + u ? i(this, r, u, n) : l && L(this, + r); + } else if (f(this._tag, t)) { + W.hasOwnProperty(r) || E.setValueForAttribute( + U(this), r, u); + } else if (b.properties[r] || b.isCustomAttribute(r)) { + var c = U(this); + null != u ? E.setValueForProperty(c, r, u) : E.deleteValueForProperty(c, r) + } + } + } + a && y.setValueForStyles(U(this), a, this) + }, _updateDOMChildren: function (e, t, n, r) { + var o = V[typeof e.children] ? e.children : null, + i = V[typeof t.children] ? t.children : null, + a = e.dangerouslySetInnerHTML && e.dangerouslySetInnerHTML.__html, + s = t.dangerouslySetInnerHTML && t.dangerouslySetInnerHTML.__html, + u = null != o ? null : e.children, l = null != i ? null : t.children, + c = null != o || null != a, p = null != i || null != s; + null != u && null == l ? this.updateChildren(null, n, r) : c && !p + && this.updateTextContent(""), null != i ? o !== i && this.updateTextContent("" + i) + : null != s ? a !== s && this.updateMarkup("" + s) : null != l + && this.updateChildren(l, n, r) + }, getHostNode: function () { + return U(this) + }, unmountComponent: function (e) { + switch (this._tag) { + case"audio": + case"form": + case"iframe": + case"img": + case"link": + case"object": + case"source": + case"video": + var t = this._wrapperState.listeners; + if (t) { + for (var n = 0; n < t.length; n++) { + t[n].remove(); + } + } + break; + case"html": + case"head": + case"body": + m("66", this._tag) + } + this.unmountChildren(e), P.uncacheNode(this), x.deleteAllListeners( + this), this._rootNodeID = 0, this._domID = 0, this._wrapperState = null + }, getPublicInstance: function () { + return U(this) + } + }, v(h.prototype, h.Mixin, O.Mixin), t.exports = h + }, { + 10: 10, + 109: 109, + 11: 11, + 112: 112, + 118: 118, + 12: 12, + 129: 129, + 137: 137, + 141: 141, + 142: 142, + 143: 143, + 16: 16, + 17: 17, + 2: 2, + 25: 25, + 32: 32, + 33: 33, + 38: 38, + 39: 39, + 40: 40, + 43: 43, + 5: 5, + 58: 58, + 61: 61, + 68: 68, + 9: 9, + 95: 95 + }], + 32: [function (e, t, n) { + "use strict"; + var r = {hasCachedChildNodes: 1}; + t.exports = r + }, {}], + 33: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return 1 === e.nodeType && e.getAttribute(h) === String(t) || 8 === e.nodeType + && e.nodeValue === " react-text: " + t + " " || 8 === e.nodeType && e.nodeValue + === " react-empty: " + t + " " + } + + function o(e) { + for (var t; t = e._renderedComponent;) { + e = t; + } + return e + } + + function i(e, t) { + var n = o(e); + n._hostNode = t, t[v] = n + } + + function a(e) { + var t = e._hostNode; + t && (delete t[v], e._hostNode = null) + } + + function s(e, t) { + if (!(e._flags & m.hasCachedChildNodes)) { + var n = e._renderedChildren, a = t.firstChild; + e:for (var s in n) { + if (n.hasOwnProperty(s)) { + var u = n[s], l = o(u)._domID; + if (0 !== l) { + for (; null !== a; a = a.nextSibling) { + if (r(a, l)) { + i(u, a); + continue e + } + } + p("32", l) + } + } + } + e._flags |= m.hasCachedChildNodes + } + } + + function u(e) { + if (e[v]) { + return e[v]; + } + for (var t = []; !e[v];) { + if (t.push(e), !e.parentNode) { + return null; + } + e = e.parentNode + } + for (var n, r; e && (r = e[v]); e = t.pop()) { + n = r, t.length && s(r, e); + } + return n + } + + function l(e) { + var t = u(e); + return null != t && t._hostNode === e ? t : null + } + + function c(e) { + if (void 0 === e._hostNode && p("33"), e._hostNode) { + return e._hostNode; + } + for (var t = []; !e._hostNode;) { + t.push(e), e._hostParent || p("34"), e = e._hostParent; + } + for (; t.length; e = t.pop()) { + s(e, e._hostNode); + } + return e._hostNode + } + + var p = e(112), d = e(11), f = e(32), h = (e(137), d.ID_ATTRIBUTE_NAME), m = f, + v = "__reactInternalInstance$" + Math.random().toString(36).slice(2), g = { + getClosestInstanceFromNode: u, + getInstanceFromNode: l, + getNodeFromInstance: c, + precacheChildNodes: s, + precacheNode: i, + uncacheNode: a + }; + t.exports = g + }, {11: 11, 112: 112, 137: 137, 32: 32}], + 34: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return { + _topLevelWrapper: e, + _idCounter: 1, + _ownerDocument: t ? t.nodeType === o ? t : t.ownerDocument : null, + _node: t, + _tag: t ? t.nodeName.toLowerCase() : null, + _namespaceURI: t ? t.namespaceURI : null + } + } + + var o = (e(118), 9); + t.exports = r + }, {118: 118}], + 35: [function (e, t, n) { + "use strict"; + var r = e(143), o = e(9), i = e(33), a = function (e) { + this._currentElement = null, this._hostNode = null, this._hostParent = null, this._hostContainerInfo = null, this._domID = 0 + }; + r(a.prototype, { + mountComponent: function (e, t, n, r) { + var a = n._idCounter++; + this._domID = a, this._hostParent = t, this._hostContainerInfo = n; + var s = " react-empty: " + this._domID + " "; + if (e.useCreateElement) { + var u = n._ownerDocument, l = u.createComment(s); + return i.precacheNode(this, l), o(l) + } + return e.renderToStaticMarkup ? "" : "" + }, receiveComponent: function () { + }, getHostNode: function () { + return i.getNodeFromInstance(this) + }, unmountComponent: function () { + i.uncacheNode(this) + } + }), t.exports = a + }, {143: 143, 33: 33, 9: 9}], + 36: [function (e, t, n) { + "use strict"; + var r = {useCreateElement: !0, useFiber: !1}; + t.exports = r + }, {}], + 37: [function (e, t, n) { + "use strict"; + var r = e(8), o = e(33), i = { + dangerouslyProcessChildrenUpdates: function (e, t) { + var n = o.getNodeFromInstance(e); + r.processUpdates(n, t) + } + }; + t.exports = i + }, {33: 33, 8: 8}], + 38: [function (e, t, n) { + "use strict"; + + function r() { + this._rootNodeID && d.updateWrapper(this) + } + + function o(e) { + return "checkbox" === e.type || "radio" === e.type ? null != e.checked : null != e.value + } + + function i(e) { + var t = this._currentElement.props, n = l.executeOnChange(t, e); + p.asap(r, this); + var o = t.name; + if ("radio" === t.type && null != o) { + for (var i = c.getNodeFromInstance(this), s = i; s.parentNode;) { + s = s.parentNode; + } + for (var u = s.querySelectorAll( + "input[name=" + JSON.stringify("" + o) + '][type="radio"]'), d = 0; d < u.length; + d++) { + var f = u[d]; + if (f !== i && f.form === i.form) { + var h = c.getInstanceFromNode(f); + h || a("90"), p.asap(r, h) + } + } + } + return n + } + + var a = e(112), s = e(143), u = e(12), l = e(23), c = e(33), p = e(71), + d = (e(137), e(142), { + getHostProps: function (e, t) { + var n = l.getValue(t), r = l.getChecked(t); + return s({type: void 0, step: void 0, min: void 0, max: void 0}, t, { + defaultChecked: void 0, + defaultValue: void 0, + value: null != n ? n : e._wrapperState.initialValue, + checked: null != r ? r : e._wrapperState.initialChecked, + onChange: e._wrapperState.onChange + }) + }, mountWrapper: function (e, t) { + var n = t.defaultValue; + e._wrapperState = { + initialChecked: null != t.checked ? t.checked : t.defaultChecked, + initialValue: null != t.value ? t.value : n, + listeners: null, + onChange: i.bind(e), + controlled: o(t) + } + }, updateWrapper: function (e) { + var t = e._currentElement.props, n = t.checked; + null != n && u.setValueForProperty(c.getNodeFromInstance(e), "checked", n || !1); + var r = c.getNodeFromInstance(e), o = l.getValue(t); + if (null != o) { + if (0 === o && "" === r.value) { + r.value = "0"; + } else if ("number" + === t.type) { + var i = parseFloat(r.value, 10) || 0; + o != i && (r.value = "" + o) + } else { + o != r.value && (r.value = "" + o); + } + } else { + null == t.value && null + != t.defaultValue && r.defaultValue !== "" + t.defaultValue + && (r.defaultValue = "" + + t.defaultValue), null == t.checked && null != t.defaultChecked + && (r.defaultChecked = !!t.defaultChecked) + } + }, postMountWrapper: function (e) { + var t = e._currentElement.props, n = c.getNodeFromInstance(e); + switch (t.type) { + case"submit": + case"reset": + break; + case"color": + case"date": + case"datetime": + case"datetime-local": + case"month": + case"time": + case"week": + n.value = "", n.value = n.defaultValue; + break; + default: + n.value = n.value + } + var r = n.name; + "" !== r + && (n.name = ""), n.defaultChecked = !n.defaultChecked, n.defaultChecked = !n.defaultChecked, "" + !== r && (n.name = r) + } + }); + t.exports = d + }, {112: 112, 12: 12, 137: 137, 142: 142, 143: 143, 23: 23, 33: 33, 71: 71}], + 39: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = ""; + return i.Children.forEach(e, function (e) { + null != e && ("string" == typeof e || "number" == typeof e ? t += e : u || (u = !0)) + }), t + } + + var o = e(143), i = e(120), a = e(33), s = e(40), u = (e(142), !1), l = { + mountWrapper: function (e, t, n) { + var o = null; + if (null != n) { + var i = n; + "optgroup" === i._tag && (i = i._hostParent), null != i && "select" === i._tag + && (o = s.getSelectValueContext(i)) + } + var a = null; + if (null != o) { + var u; + if (u = null != t.value ? t.value + "" : r(t.children), a = !1, Array.isArray(o)) { + for (var l = 0; l < o.length; l++) { + if ("" + o[l] === u) { + a = !0; + break + } + } + } else { + a = "" + o === u + } + } + e._wrapperState = {selected: a} + }, postMountWrapper: function (e) { + var t = e._currentElement.props; + null != t.value && a.getNodeFromInstance(e).setAttribute("value", t.value) + }, getHostProps: function (e, t) { + var n = o({selected: void 0, children: void 0}, t); + null != e._wrapperState.selected && (n.selected = e._wrapperState.selected); + var i = r(t.children); + return i && (n.children = i), n + } + }; + t.exports = l + }, {120: 120, 142: 142, 143: 143, 33: 33, 40: 40}], + 40: [function (e, t, n) { + "use strict"; + + function r() { + if (this._rootNodeID && this._wrapperState.pendingUpdate) { + this._wrapperState.pendingUpdate = !1; + var e = this._currentElement.props, t = s.getValue(e); + null != t && o(this, Boolean(e.multiple), t) + } + } + + function o(e, t, n) { + var r, o, i = u.getNodeFromInstance(e).options; + if (t) { + for (r = {}, o = 0; o < n.length; o++) { + r["" + n[o]] = !0; + } + for (o = 0; o < i.length; o++) { + var a = r.hasOwnProperty(i[o].value); + i[o].selected !== a && (i[o].selected = a) + } + } else { + for (r = "" + n, o = 0; o < i.length; o++) { + if (i[o].value + === r) { + return void (i[o].selected = !0); + } + } + i.length && (i[0].selected = !0) + } + } + + function i(e) { + var t = this._currentElement.props, n = s.executeOnChange(t, e); + return this._rootNodeID && (this._wrapperState.pendingUpdate = !0), l.asap(r, this), n + } + + var a = e(143), s = e(23), u = e(33), l = e(71), c = (e(142), !1), p = { + getHostProps: function (e, t) { + return a({}, t, {onChange: e._wrapperState.onChange, value: void 0}) + }, mountWrapper: function (e, t) { + var n = s.getValue(t); + e._wrapperState = { + pendingUpdate: !1, + initialValue: null != n ? n : t.defaultValue, + listeners: null, + onChange: i.bind(e), + wasMultiple: Boolean(t.multiple) + }, void 0 === t.value || void 0 === t.defaultValue || c || (c = !0) + }, getSelectValueContext: function (e) { + return e._wrapperState.initialValue + }, postUpdateWrapper: function (e) { + var t = e._currentElement.props; + e._wrapperState.initialValue = void 0; + var n = e._wrapperState.wasMultiple; + e._wrapperState.wasMultiple = Boolean(t.multiple); + var r = s.getValue(t); + null != r ? (e._wrapperState.pendingUpdate = !1, o(e, Boolean(t.multiple), r)) : n + !== Boolean(t.multiple) && (null != t.defaultValue ? o(e, Boolean(t.multiple), + t.defaultValue) : o(e, Boolean(t.multiple), t.multiple ? [] : "")) + } + }; + t.exports = p + }, {142: 142, 143: 143, 23: 23, 33: 33, 71: 71}], + 41: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return e === n && t === r + } + + function o(e) { + var t = document.selection, n = t.createRange(), r = n.text.length, o = n.duplicate(); + o.moveToElementText(e), o.setEndPoint("EndToStart", n); + var i = o.text.length; + return {start: i, end: i + r} + } + + function i(e) { + var t = window.getSelection && window.getSelection(); + if (!t || 0 === t.rangeCount) { + return null; + } + var n = t.anchorNode, o = t.anchorOffset, i = t.focusNode, a = t.focusOffset, + s = t.getRangeAt(0); + try { + s.startContainer.nodeType, s.endContainer.nodeType + } catch (e) { + return null + } + var u = r(t.anchorNode, t.anchorOffset, t.focusNode, t.focusOffset), + l = u ? 0 : s.toString().length, c = s.cloneRange(); + c.selectNodeContents(e), c.setEnd(s.startContainer, s.startOffset); + var p = r(c.startContainer, c.startOffset, c.endContainer, c.endOffset), + d = p ? 0 : c.toString().length, f = d + l, h = document.createRange(); + h.setStart(n, o), h.setEnd(i, a); + var m = h.collapsed; + return {start: m ? f : d, end: m ? d : f} + } + + function a(e, t) { + var n, r, o = document.selection.createRange().duplicate(); + void 0 === t.end ? (n = t.start, r = n) : t.start > t.end ? (n = t.end, r = t.start) + : (n = t.start, r = t.end), o.moveToElementText(e), o.moveStart("character", + n), o.setEndPoint("EndToStart", o), o.moveEnd("character", r - n), o.select() + } + + function s(e, t) { + if (window.getSelection) { + var n = window.getSelection(), r = e[c()].length, o = Math.min(t.start, r), + i = void 0 === t.end ? o : Math.min(t.end, r); + if (!n.extend && o > i) { + var a = i; + i = o, o = a + } + var s = l(e, o), u = l(e, i); + if (s && u) { + var p = document.createRange(); + p.setStart(s.node, s.offset), n.removeAllRanges(), o > i ? (n.addRange(p), n.extend( + u.node, u.offset)) : (p.setEnd(u.node, u.offset), n.addRange(p)) + } + } + } + + var u = e(123), l = e(105), c = e(106), + p = u.canUseDOM && "selection" in document && !("getSelection" in window), + d = {getOffsets: p ? o : i, setOffsets: p ? a : s}; + t.exports = d + }, {105: 105, 106: 106, 123: 123}], + 42: [function (e, t, n) { + "use strict"; + var r = e(112), o = e(143), i = e(8), a = e(9), s = e(33), u = e(95), + l = (e(137), e(118), function (e) { + this._currentElement = e, this._stringText = "" + e, + this._hostNode = null, this._hostParent = null, this._domID = 0, this._mountIndex = 0, this._closingComment = null, this._commentNodes = null + }); + o(l.prototype, { + mountComponent: function (e, t, n, r) { + var o = n._idCounter++, i = " react-text: " + o + " "; + if (this._domID = o, this._hostParent = t, e.useCreateElement) { + var l = n._ownerDocument, c = l.createComment(i), + p = l.createComment(" /react-text "), d = a(l.createDocumentFragment()); + return a.queueChild(d, a(c)), this._stringText && a.queueChild(d, + a(l.createTextNode(this._stringText))), a.queueChild(d, a(p)), s.precacheNode( + this, c), this._closingComment = p, d + } + var f = u(this._stringText); + return e.renderToStaticMarkup ? f : "" + f + "" + }, receiveComponent: function (e, t) { + if (e !== this._currentElement) { + this._currentElement = e; + var n = "" + e; + if (n !== this._stringText) { + this._stringText = n; + var r = this.getHostNode(); + i.replaceDelimitedText(r[0], r[1], n) + } + } + }, getHostNode: function () { + var e = this._commentNodes; + if (e) { + return e; + } + if (!this._closingComment) { + for (var t = s.getNodeFromInstance(this), + n = t.nextSibling; ;) { + if (null == n && r("67", this._domID), 8 === n.nodeType && " /react-text " + === n.nodeValue) { + this._closingComment = n; + break + } + n = n.nextSibling + } + } + return e = [this._hostNode, this._closingComment], this._commentNodes = e, e + }, unmountComponent: function () { + this._closingComment = null, this._commentNodes = null, s.uncacheNode(this) + } + }), t.exports = l + }, {112: 112, 118: 118, 137: 137, 143: 143, 33: 33, 8: 8, 9: 9, 95: 95}], + 43: [function (e, t, n) { + "use strict"; + + function r() { + this._rootNodeID && c.updateWrapper(this) + } + + function o(e) { + var t = this._currentElement.props, n = s.executeOnChange(t, e); + return l.asap(r, this), n + } + + var i = e(112), a = e(143), s = e(23), u = e(33), l = e(71), c = (e(137), e(142), { + getHostProps: function (e, t) { + return null != t.dangerouslySetInnerHTML && i("91"), a({}, t, { + value: void 0, + defaultValue: void 0, + children: "" + e._wrapperState.initialValue, + onChange: e._wrapperState.onChange + }) + }, mountWrapper: function (e, t) { + var n = s.getValue(t), r = n; + if (null == n) { + var a = t.defaultValue, u = t.children; + null != u && (null != a && i("92"), Array.isArray(u) && (u.length <= 1 || i( + "93"), u = u[0]), a = "" + u), null == a && (a = ""), r = a + } + e._wrapperState = {initialValue: "" + r, listeners: null, onChange: o.bind(e)} + }, updateWrapper: function (e) { + var t = e._currentElement.props, n = u.getNodeFromInstance(e), r = s.getValue(t); + if (null != r) { + var o = "" + r; + o !== n.value && (n.value = o), null == t.defaultValue && (n.defaultValue = o) + } + null != t.defaultValue && (n.defaultValue = t.defaultValue) + }, postMountWrapper: function (e) { + var t = u.getNodeFromInstance(e), n = t.textContent; + n === e._wrapperState.initialValue && (t.value = n) + } + }); + t.exports = c + }, {112: 112, 137: 137, 142: 142, 143: 143, 23: 23, 33: 33, 71: 71}], + 44: [function (e, t, n) { + "use strict"; + + function r(e, t) { + "_hostNode" in e || u("33"), "_hostNode" in t || u("33"); + for (var n = 0, r = e; r; r = r._hostParent) { + n++; + } + for (var o = 0, i = t; i; i = i._hostParent) { + o++; + } + for (; n - o > 0;) { + e = e._hostParent, n--; + } + for (; o - n > 0;) { + t = t._hostParent, o--; + } + for (var a = n; a--;) { + if (e === t) { + return e; + } + e = e._hostParent, t = t._hostParent + } + return null + } + + function o(e, t) { + "_hostNode" in e || u("35"), "_hostNode" in t || u("35"); + for (; t;) { + if (t === e) { + return !0; + } + t = t._hostParent + } + return !1 + } + + function i(e) { + return "_hostNode" in e || u("36"), e._hostParent + } + + function a(e, t, n) { + for (var r = []; e;) { + r.push(e), e = e._hostParent; + } + var o; + for (o = r.length; o-- > 0;) { + t(r[o], "captured", n); + } + for (o = 0; o < r.length; o++) { + t(r[o], "bubbled", n) + } + } + + function s(e, t, n, o, i) { + for (var a = e && t ? r(e, t) : null, s = []; e && e !== a;) { + s.push( + e), e = e._hostParent; + } + for (var u = []; t && t !== a;) { + u.push(t), t = t._hostParent; + } + var l; + for (l = 0; l < s.length; l++) { + n(s[l], "bubbled", o); + } + for (l = u.length; l-- > 0;) { + n(u[l], "captured", i) + } + } + + var u = e(112); + e(137); + t.exports = { + isAncestor: o, + getLowestCommonAncestor: r, + getParentInstance: i, + traverseTwoPhase: a, + traverseEnterLeave: s + } + }, {112: 112, 137: 137}], + 45: [function (e, t, n) { + "use strict"; + var r = e(120), o = e(30), i = o; + r.addons + && (r.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = i), t.exports = i + }, {120: 120, 30: 30}], + 46: [function (e, t, n) { + "use strict"; + + function r() { + this.reinitializeTransaction() + } + + var o = e(143), i = e(71), a = e(89), s = e(129), u = { + initialize: s, close: function () { + d.isBatchingUpdates = !1 + } + }, l = {initialize: s, close: i.flushBatchedUpdates.bind(i)}, c = [l, u]; + o(r.prototype, a, { + getTransactionWrappers: function () { + return c + } + }); + var p = new r, d = { + isBatchingUpdates: !1, batchedUpdates: function (e, t, n, r, o, i) { + var a = d.isBatchingUpdates; + return d.isBatchingUpdates = !0, a ? e(t, n, r, o, i) : p.perform(e, null, t, n, r, o, + i) + } + }; + t.exports = d + }, {129: 129, 143: 143, 71: 71, 89: 89}], + 47: [function (e, t, n) { + "use strict"; + + function r() { + x || (x = !0, y.EventEmitter.injectReactEventListener( + g), y.EventPluginHub.injectEventPluginOrder( + s), y.EventPluginUtils.injectComponentTree(d), y.EventPluginUtils.injectTreeTraversal( + h), y.EventPluginHub.injectEventPluginsByName({ + SimpleEventPlugin: E, + EnterLeaveEventPlugin: u, + ChangeEventPlugin: a, + SelectEventPlugin: b, + BeforeInputEventPlugin: i + }), y.HostComponent.injectGenericComponentClass( + p), y.HostComponent.injectTextComponentClass( + m), y.DOMProperty.injectDOMPropertyConfig(o), y.DOMProperty.injectDOMPropertyConfig( + l), y.DOMProperty.injectDOMPropertyConfig( + C), y.EmptyComponent.injectEmptyComponentFactory(function (e) { + return new f(e) + }), y.Updates.injectReconcileTransaction(_), y.Updates.injectBatchingStrategy( + v), y.Component.injectEnvironment(c)) + } + + var o = e(1), i = e(3), a = e(7), s = e(14), u = e(15), l = e(21), c = e(27), p = e(31), + d = e(33), f = e(35), h = e(44), m = e(42), v = e(46), g = e(52), y = e(55), _ = e(65), + C = e(73), b = e(74), E = e(75), x = !1; + t.exports = {inject: r} + }, { + 1: 1, + 14: 14, + 15: 15, + 21: 21, + 27: 27, + 3: 3, + 31: 31, + 33: 33, + 35: 35, + 42: 42, + 44: 44, + 46: 46, + 52: 52, + 55: 55, + 65: 65, + 7: 7, + 73: 73, + 74: 74, + 75: 75 + }], + 48: [function (e, t, n) { + "use strict"; + var r = "function" == typeof Symbol && Symbol.for && Symbol.for("react.element") || 60103; + t.exports = r + }, {}], + 49: [function (e, t, n) { + "use strict"; + var r, o = { + injectEmptyComponentFactory: function (e) { + r = e + } + }, i = { + create: function (e) { + return r(e) + } + }; + i.injection = o, t.exports = i + }, {}], + 50: [function (e, t, n) { + "use strict"; + + function r(e, t, n) { + try { + t(n) + } catch (e) { + null === o && (o = e) + } + } + + var o = null, i = { + invokeGuardedCallback: r, + invokeGuardedCallbackWithCatch: r, + rethrowCaughtError: function () { + if (o) { + var e = o; + throw o = null, e + } + } + }; + t.exports = i + }, {}], + 51: [function (e, t, n) { + "use strict"; + + function r(e) { + o.enqueueEvents(e), o.processEventQueue(!1) + } + + var o = e(16), i = { + handleTopLevel: function (e, t, n, i) { + r(o.extractEvents(e, t, n, i)) + } + }; + t.exports = i + }, {16: 16}], + 52: [function (e, t, n) { + "use strict"; + + function r(e) { + for (; e._hostParent;) { + e = e._hostParent; + } + var t = p.getNodeFromInstance(e), n = t.parentNode; + return p.getClosestInstanceFromNode(n) + } + + function o(e, t) { + this.topLevelType = e, this.nativeEvent = t, this.ancestors = [] + } + + function i(e) { + var t = f(e.nativeEvent), n = p.getClosestInstanceFromNode(t), o = n; + do { + e.ancestors.push(o), o = o && r(o) + } while (o); + for (var i = 0; i < e.ancestors.length; i++) { + n = e.ancestors[i], m._handleTopLevel( + e.topLevelType, n, e.nativeEvent, f(e.nativeEvent)) + } + } + + function a(e) { + e(h(window)) + } + + var s = e(143), u = e(122), l = e(123), c = e(24), p = e(33), d = e(71), f = e(102), + h = e(134); + s(o.prototype, { + destructor: function () { + this.topLevelType = null, this.nativeEvent = null, this.ancestors.length = 0 + } + }), c.addPoolingTo(o, c.twoArgumentPooler); + var m = { + _enabled: !0, + _handleTopLevel: null, + WINDOW_HANDLE: l.canUseDOM ? window : null, + setHandleTopLevel: function (e) { + m._handleTopLevel = e + }, + setEnabled: function (e) { + m._enabled = !!e + }, + isEnabled: function () { + return m._enabled + }, + trapBubbledEvent: function (e, t, n) { + return n ? u.listen(n, t, m.dispatchEvent.bind(null, e)) : null + }, + trapCapturedEvent: function (e, t, n) { + return n ? u.capture(n, t, m.dispatchEvent.bind(null, e)) : null + }, + monitorScrollValue: function (e) { + var t = a.bind(null, e); + u.listen(window, "scroll", t) + }, + dispatchEvent: function (e, t) { + if (m._enabled) { + var n = o.getPooled(e, t); + try { + d.batchedUpdates(i, n) + } finally { + o.release(n) + } + } + } + }; + t.exports = m + }, {102: 102, 122: 122, 123: 123, 134: 134, 143: 143, 24: 24, 33: 33, 71: 71}], + 53: [function (e, t, n) { + "use strict"; + var r = {logTopLevelRenders: !1}; + t.exports = r + }, {}], + 54: [function (e, t, n) { + "use strict"; + + function r(e) { + return s || a("111", e.type), new s(e) + } + + function o(e) { + return new u(e) + } + + function i(e) { + return e instanceof u + } + + var a = e(112), s = (e(137), null), u = null, l = { + injectGenericComponentClass: function (e) { + s = e + }, injectTextComponentClass: function (e) { + u = e + } + }, c = { + createInternalComponent: r, + createInstanceForText: o, + isTextComponent: i, + injection: l + }; + t.exports = c + }, {112: 112, 137: 137}], + 55: [function (e, t, n) { + "use strict"; + var r = e(11), o = e(16), i = e(18), a = e(28), s = e(49), u = e(25), l = e(54), + c = e(71), p = { + Component: a.injection, + DOMProperty: r.injection, + EmptyComponent: s.injection, + EventPluginHub: o.injection, + EventPluginUtils: i.injection, + EventEmitter: u.injection, + HostComponent: l.injection, + Updates: c.injection + }; + t.exports = p + }, {11: 11, 16: 16, 18: 18, 25: 25, 28: 28, 49: 49, 54: 54, 71: 71}], + 56: [function (e, t, n) { + "use strict"; + + function r(e) { + return i(document.documentElement, e) + } + + var o = e(41), i = e(126), a = e(131), s = e(132), u = { + hasSelectionCapabilities: function (e) { + var t = e && e.nodeName && e.nodeName.toLowerCase(); + return t && ("input" === t && "text" === e.type || "textarea" === t || "true" + === e.contentEditable) + }, getSelectionInformation: function () { + var e = s(); + return { + focusedElem: e, + selectionRange: u.hasSelectionCapabilities(e) ? u.getSelection(e) : null + } + }, restoreSelection: function (e) { + var t = s(), n = e.focusedElem, o = e.selectionRange; + t !== n && r(n) && (u.hasSelectionCapabilities(n) && u.setSelection(n, o), a(n)) + }, getSelection: function (e) { + var t; + if ("selectionStart" in e) { + t = { + start: e.selectionStart, + end: e.selectionEnd + }; + } else if (document.selection && e.nodeName && "input" + === e.nodeName.toLowerCase()) { + var n = document.selection.createRange(); + n.parentElement() === e && (t = { + start: -n.moveStart("character", -e.value.length), + end: -n.moveEnd("character", -e.value.length) + }) + } else { + t = o.getOffsets(e); + } + return t || {start: 0, end: 0} + }, setSelection: function (e, t) { + var n = t.start, r = t.end; + if (void 0 === r && (r = n), "selectionStart" + in e) { + e.selectionStart = n, e.selectionEnd = Math.min(r, + e.value.length); + } else if (document.selection && e.nodeName && "input" + === e.nodeName.toLowerCase()) { + var i = e.createTextRange(); + i.collapse(!0), i.moveStart("character", n), i.moveEnd("character", + r - n), i.select() + } else { + o.setOffsets(e, t) + } + } + }; + t.exports = u + }, {126: 126, 131: 131, 132: 132, 41: 41}], + 57: [function (e, t, n) { + "use strict"; + var r = { + remove: function (e) { + e._reactInternalInstance = void 0 + }, get: function (e) { + return e._reactInternalInstance + }, has: function (e) { + return void 0 !== e._reactInternalInstance + }, set: function (e, t) { + e._reactInternalInstance = t + } + }; + t.exports = r + }, {}], + 58: [function (e, t, n) { + "use strict"; + t.exports = {debugTool: null} + }, {}], + 59: [function (e, t, n) { + "use strict"; + var r = e(92), o = /^<\!\-\-/, i = { + CHECKSUM_ATTR_NAME: "data-react-checksum", addChecksumToMarkup: function (e) { + var t = r(e); + return o.test(e) ? e : e.replace(/\/?>/, + " " + i.CHECKSUM_ATTR_NAME + '="' + t + '"$&') + }, canReuseMarkup: function (e, t) { + var n = t.getAttribute(i.CHECKSUM_ATTR_NAME); + return n = n && parseInt(n, 10), r(e) === n + } + }; + t.exports = i + }, {92: 92}], + 60: [function (e, t, n) { + "use strict"; + + function r(e, t) { + for (var n = Math.min(e.length, t.length), r = 0; r < n; r++) { + if (e.charAt(r) + !== t.charAt(r)) { + return r; + } + } + return e.length === t.length ? -1 : n + } + + function o(e) { + return e ? e.nodeType === A ? e.documentElement : e.firstChild : null + } + + function i(e) { + return e.getAttribute && e.getAttribute(I) || "" + } + + function a(e, t, n, r, o) { + var i; + if (b.logTopLevelRenders) { + var a = e._currentElement.props.child, s = a.type; + i = "React mount: " + ("string" == typeof s ? s : s.displayName + || s.name), console.time(i) + } + var u = w.mountComponent(e, n, null, _(e, t), o, 0); + i && console.timeEnd( + i), e._renderedComponent._topLevelWrapper = e, j._mountImageIntoNode(u, t, e, r, n) + } + + function s(e, t, n, r) { + var o = k.ReactReconcileTransaction.getPooled(!n && C.useCreateElement); + o.perform(a, null, e, t, o, n, r), k.ReactReconcileTransaction.release(o) + } + + function u(e, t, n) { + for (w.unmountComponent(e, n), t.nodeType === A && (t = t.documentElement); + t.lastChild;) { + t.removeChild(t.lastChild) + } + } + + function l(e) { + var t = o(e); + if (t) { + var n = y.getInstanceFromNode(t); + return !(!n || !n._hostParent) + } + } + + function c(e) { + return !(!e || e.nodeType !== R && e.nodeType !== A && e.nodeType !== D) + } + + function p(e) { + var t = o(e), n = t && y.getInstanceFromNode(t); + return n && !n._hostParent ? n : null + } + + function d(e) { + var t = p(e); + return t ? t._hostContainerInfo._topLevelWrapper : null + } + + var f = e(112), h = e(9), m = e(11), v = e(120), g = e(25), y = (e(119), e(33)), + _ = e(34), C = e(36), b = e(53), E = e(57), x = (e(58), e(59)), w = e(66), T = e(70), + k = e(71), P = e(130), S = e(108), N = (e(137), e(114)), M = e(116), + I = (e(142), m.ID_ATTRIBUTE_NAME), O = m.ROOT_ATTRIBUTE_NAME, R = 1, A = 9, D = 11, + L = {}, U = 1, F = function () { + this.rootID = U++ + }; + F.prototype.isReactComponent = {}, F.prototype.render = function () { + return this.props.child + }, F.isReactTopLevelWrapper = !0; + var j = { + TopLevelWrapper: F, _instancesByReactRootID: L, scrollMonitor: function (e, t) { + t() + }, _updateRootComponent: function (e, t, n, r, o) { + return j.scrollMonitor(r, function () { + T.enqueueElementInternal(e, t, n), o && T.enqueueCallbackInternal(e, o) + }), e + }, _renderNewRootComponent: function (e, t, n, r) { + c(t) || f("37"), g.ensureScrollValueMonitoring(); + var o = S(e, !1); + k.batchedUpdates(s, o, t, n, r); + var i = o._instance.rootID; + return L[i] = o, o + }, renderSubtreeIntoContainer: function (e, t, n, r) { + return null != e && E.has(e) || f("38"), j._renderSubtreeIntoContainer(e, t, n, r) + }, _renderSubtreeIntoContainer: function (e, t, n, r) { + T.validateCallback(r, "ReactDOM.render"), v.isValidElement(t) || f("39", + "string" == typeof t + ? " Instead of passing a string like 'div', pass React.createElement('div') or
." + : "function" == typeof t + ? " Instead of passing a class like Foo, pass React.createElement(Foo) or ." + : null != t && void 0 !== t.props + ? " This may be caused by unintentionally loading two independent copies of React." + : ""); + var a, s = v.createElement(F, {child: t}); + if (e) { + var u = E.get(e); + a = u._processChildContext(u._context) + } else { + a = P; + } + var c = d(n); + if (c) { + var p = c._currentElement, h = p.props.child; + if (M(h, t)) { + var m = c._renderedComponent.getPublicInstance(), g = r && function () { + r.call(m) + }; + return j._updateRootComponent(c, s, a, n, g), m + } + j.unmountComponentAtNode(n) + } + var y = o(n), _ = y && !!i(y), C = l(n), b = _ && !c && !C, + x = j._renderNewRootComponent(s, n, b, a)._renderedComponent.getPublicInstance(); + return r && r.call(x), x + }, render: function (e, t, n) { + return j._renderSubtreeIntoContainer(null, e, t, n) + }, unmountComponentAtNode: function (e) { + c(e) || f("40"); + var t = d(e); + return t ? (delete L[t._instance.rootID], k.batchedUpdates(u, t, e, !1), !0) : (l( + e), 1 === e.nodeType && e.hasAttribute(O), !1) + }, _mountImageIntoNode: function (e, t, n, i, a) { + if (c(t) || f("41"), i) { + var s = o(t); + if (x.canReuseMarkup(e, s)) { + return void y.precacheNode(n, s); + } + var u = s.getAttribute(x.CHECKSUM_ATTR_NAME); + s.removeAttribute(x.CHECKSUM_ATTR_NAME); + var l = s.outerHTML; + s.setAttribute(x.CHECKSUM_ATTR_NAME, u); + var p = e, d = r(p, l), + m = " (client) " + p.substring(d - 20, d + 20) + "\n (server) " + l.substring( + d - 20, d + 20); + t.nodeType === A && f("42", m) + } + if (t.nodeType === A && f("43"), a.useCreateElement) { + for (; t.lastChild;) { + t.removeChild(t.lastChild); + } + h.insertTreeBefore(t, e, null) + } else { + N(t, e), y.precacheNode(n, t.firstChild) + } + } + }; + t.exports = j + }, { + 108: 108, + 11: 11, + 112: 112, + 114: 114, + 116: 116, + 119: 119, + 120: 120, + 130: 130, + 137: 137, + 142: 142, + 25: 25, + 33: 33, + 34: 34, + 36: 36, + 53: 53, + 57: 57, + 58: 58, + 59: 59, + 66: 66, + 70: 70, + 71: 71, + 9: 9 + }], + 61: [function (e, t, n) { + "use strict"; + + function r(e, t, n) { + return { + type: "INSERT_MARKUP", + content: e, + fromIndex: null, + fromNode: null, + toIndex: n, + afterNode: t + } + } + + function o(e, t, n) { + return { + type: "MOVE_EXISTING", + content: null, + fromIndex: e._mountIndex, + fromNode: d.getHostNode(e), + toIndex: n, + afterNode: t + } + } + + function i(e, t) { + return { + type: "REMOVE_NODE", + content: null, + fromIndex: e._mountIndex, + fromNode: t, + toIndex: null, + afterNode: null + } + } + + function a(e) { + return { + type: "SET_MARKUP", + content: e, + fromIndex: null, + fromNode: null, + toIndex: null, + afterNode: null + } + } + + function s(e) { + return { + type: "TEXT_CONTENT", + content: e, + fromIndex: null, + fromNode: null, + toIndex: null, + afterNode: null + } + } + + function u(e, t) { + return t && (e = e || [], e.push(t)), e + } + + function l(e, t) { + p.processChildrenUpdates(e, t) + } + + var c = e(112), p = e(28), d = (e(57), e(58), e(119), e(66)), f = e(26), + h = (e(129), e(97)), m = (e(137), { + Mixin: { + _reconcilerInstantiateChildren: function (e, t, n) { + return f.instantiateChildren(e, t, n) + }, _reconcilerUpdateChildren: function (e, t, n, r, o, i) { + var a; + return a = h(t, 0), f.updateChildren(e, a, n, r, o, this, this._hostContainerInfo, + i, 0), a + }, mountChildren: function (e, t, n) { + var r = this._reconcilerInstantiateChildren(e, t, n); + this._renderedChildren = r; + var o = [], i = 0; + for (var a in r) { + if (r.hasOwnProperty(a)) { + var s = r[a], u = d.mountComponent(s, t, this, this._hostContainerInfo, n, 0); + s._mountIndex = i++, o.push(u) + } + } + return o + }, updateTextContent: function (e) { + var t = this._renderedChildren; + f.unmountChildren(t, !1); + for (var n in t) { + t.hasOwnProperty(n) && c("118"); + } + l(this, [s(e)]) + }, updateMarkup: function (e) { + var t = this._renderedChildren; + f.unmountChildren(t, !1); + for (var n in t) { + t.hasOwnProperty(n) && c("118"); + } + l(this, [a(e)]) + }, updateChildren: function (e, t, n) { + this._updateChildren(e, t, n) + }, _updateChildren: function (e, t, n) { + var r = this._renderedChildren, o = {}, i = [], + a = this._reconcilerUpdateChildren(r, e, i, o, t, n); + if (a || r) { + var s, c = null, p = 0, f = 0, h = 0, m = null; + for (s in a) { + if (a.hasOwnProperty(s)) { + var v = r && r[s], g = a[s]; + v === g ? (c = u(c, this.moveChild(v, m, p, f)), f = Math.max(v._mountIndex, + f), v._mountIndex = p) : (v && (f = Math.max(v._mountIndex, f)), c = u(c, + this._mountChildAtIndex(g, i[h], m, p, t, n)), h++), p++, m = d.getHostNode( + g) + } + } + for (s in o) { + o.hasOwnProperty(s) && (c = u(c, this._unmountChild(r[s], o[s]))); + } + c && l(this, c), this._renderedChildren = a + } + }, unmountChildren: function (e) { + var t = this._renderedChildren; + f.unmountChildren(t, e), this._renderedChildren = null + }, moveChild: function (e, t, n, r) { + if (e._mountIndex < r) { + return o(e, t, n) + } + }, createChild: function (e, t, n) { + return r(n, t, e._mountIndex) + }, removeChild: function (e, t) { + return i(e, t) + }, _mountChildAtIndex: function (e, t, n, r, o, i) { + return e._mountIndex = r, this.createChild(e, n, t) + }, _unmountChild: function (e, t) { + var n = this.removeChild(e, t); + return e._mountIndex = null, n + } + } + }); + t.exports = m + }, + {112: 112, 119: 119, 129: 129, 137: 137, 26: 26, 28: 28, 57: 57, 58: 58, 66: 66, 97: 97}], + 62: [function (e, t, n) { + "use strict"; + var r = e(112), o = e(120), i = (e(137), { + HOST: 0, COMPOSITE: 1, EMPTY: 2, getType: function (e) { + return null === e || !1 === e ? i.EMPTY : o.isValidElement(e) ? "function" + == typeof e.type ? i.COMPOSITE : i.HOST : void r("26", e) + } + }); + t.exports = i + }, {112: 112, 120: 120, 137: 137}], + 63: [function (e, t, n) { + "use strict"; + + function r(e) { + return !(!e || "function" != typeof e.attachRef || "function" != typeof e.detachRef) + } + + var o = e(112), i = (e(137), { + addComponentAsRefTo: function (e, t, n) { + r(n) || o("119"), n.attachRef(t, e) + }, removeComponentAsRefFrom: function (e, t, n) { + r(n) || o("120"); + var i = n.getPublicInstance(); + i && i.refs[t] === e.getPublicInstance() && n.detachRef(t) + } + }); + t.exports = i + }, {112: 112, 137: 137}], + 64: [function (e, t, n) { + "use strict"; + t.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED" + }, {}], + 65: [function (e, t, n) { + "use strict"; + + function r(e) { + this.reinitializeTransaction(), this.renderToStaticMarkup = !1, this.reactMountReady = i.getPooled( + null), this.useCreateElement = e + } + + var o = e(143), i = e(6), a = e(24), s = e(25), u = e(56), l = (e(58), e(89)), c = e(70), + p = {initialize: u.getSelectionInformation, close: u.restoreSelection}, d = { + initialize: function () { + var e = s.isEnabled(); + return s.setEnabled(!1), e + }, close: function (e) { + s.setEnabled(e) + } + }, f = { + initialize: function () { + this.reactMountReady.reset() + }, close: function () { + this.reactMountReady.notifyAll() + } + }, h = [p, d, f], m = { + getTransactionWrappers: function () { + return h + }, getReactMountReady: function () { + return this.reactMountReady + }, getUpdateQueue: function () { + return c + }, checkpoint: function () { + return this.reactMountReady.checkpoint() + }, rollback: function (e) { + this.reactMountReady.rollback(e) + }, destructor: function () { + i.release(this.reactMountReady), this.reactMountReady = null + } + }; + o(r.prototype, l, m), a.addPoolingTo(r), t.exports = r + }, {143: 143, 24: 24, 25: 25, 56: 56, 58: 58, 6: 6, 70: 70, 89: 89}], + 66: [function (e, t, n) { + "use strict"; + + function r() { + o.attachRefs(this, this._currentElement) + } + + var o = e(67), i = (e(58), e(142), { + mountComponent: function (e, t, n, o, i, a) { + var s = e.mountComponent(t, n, o, i, a); + return e._currentElement && null != e._currentElement.ref + && t.getReactMountReady().enqueue(r, e), s + }, getHostNode: function (e) { + return e.getHostNode() + }, unmountComponent: function (e, t) { + o.detachRefs(e, e._currentElement), e.unmountComponent(t) + }, receiveComponent: function (e, t, n, i) { + var a = e._currentElement; + if (t !== a || i !== e._context) { + var s = o.shouldUpdateRefs(a, t); + s && o.detachRefs(e, a), e.receiveComponent(t, n, i), s && e._currentElement && null + != e._currentElement.ref && n.getReactMountReady().enqueue(r, e) + } + }, performUpdateIfNecessary: function (e, t, n) { + e._updateBatchNumber === n && e.performUpdateIfNecessary(t) + } + }); + t.exports = i + }, {142: 142, 58: 58, 67: 67}], + 67: [function (e, t, n) { + "use strict"; + + function r(e, t, n) { + "function" == typeof e ? e(t.getPublicInstance()) : i.addComponentAsRefTo(t, e, n) + } + + function o(e, t, n) { + "function" == typeof e ? e(null) : i.removeComponentAsRefFrom(t, e, n) + } + + var i = e(63), a = {}; + a.attachRefs = function (e, t) { + if (null !== t && "object" == typeof t) { + var n = t.ref; + null != n && r(n, e, t._owner) + } + }, a.shouldUpdateRefs = function (e, t) { + var n = null, r = null; + null !== e && "object" == typeof e && (n = e.ref, r = e._owner); + var o = null, i = null; + return null !== t && "object" == typeof t && (o = t.ref, i = t._owner), n !== o + || "string" == typeof o && i !== r + }, a.detachRefs = function (e, t) { + if (null !== t && "object" == typeof t) { + var n = t.ref; + null != n && o(n, e, t._owner) + } + }, t.exports = a + }, {63: 63}], + 68: [function (e, t, n) { + "use strict"; + + function r(e) { + this.reinitializeTransaction(), this.renderToStaticMarkup = e, this.useCreateElement = !1, this.updateQueue = new s( + this) + } + + var o = e(143), i = e(24), a = e(89), s = (e(58), e(69)), u = [], l = { + enqueue: function () { + } + }, c = { + getTransactionWrappers: function () { + return u + }, getReactMountReady: function () { + return l + }, getUpdateQueue: function () { + return this.updateQueue + }, destructor: function () { + }, checkpoint: function () { + }, rollback: function () { + } + }; + o(r.prototype, a, c), i.addPoolingTo(r), t.exports = r + }, {143: 143, 24: 24, 58: 58, 69: 69, 89: 89}], + 69: [function (e, t, n) { + "use strict"; + + function r(e, t) { + if (!(e instanceof t)) { + throw new TypeError("Cannot call a class as a function") + } + } + + var o = e(70), i = (e(142), function () { + function e(t) { + r(this, e), this.transaction = t + } + + return e.prototype.isMounted = function (e) { + return !1 + }, e.prototype.enqueueCallback = function (e, t, n) { + this.transaction.isInTransaction() && o.enqueueCallback(e, t, n) + }, e.prototype.enqueueForceUpdate = function (e) { + this.transaction.isInTransaction() && o.enqueueForceUpdate(e) + }, e.prototype.enqueueReplaceState = function (e, t) { + this.transaction.isInTransaction() && o.enqueueReplaceState(e, t) + }, e.prototype.enqueueSetState = function (e, t) { + this.transaction.isInTransaction() && o.enqueueSetState(e, t) + }, e + }()); + t.exports = i + }, {142: 142, 70: 70}], + 70: [function (e, t, n) { + "use strict"; + + function r(e) { + u.enqueueUpdate(e) + } + + function o(e) { + var t = typeof e; + if ("object" !== t) { + return t; + } + var n = e.constructor && e.constructor.name || t, r = Object.keys(e); + return r.length > 0 && r.length < 20 ? n + " (keys: " + r.join(", ") + ")" : n + } + + function i(e, t) { + var n = s.get(e); + return n || null + } + + var a = e(112), s = (e(119), e(57)), u = (e(58), e(71)), l = (e(137), e(142), { + isMounted: function (e) { + var t = s.get(e); + return !!t && !!t._renderedComponent + }, enqueueCallback: function (e, t, n) { + l.validateCallback(t, n); + var o = i(e); + if (!o) { + return null; + } + o._pendingCallbacks ? o._pendingCallbacks.push(t) : o._pendingCallbacks = [t], r(o) + }, enqueueCallbackInternal: function (e, t) { + e._pendingCallbacks ? e._pendingCallbacks.push(t) : e._pendingCallbacks = [t], r(e) + }, enqueueForceUpdate: function (e) { + var t = i(e, "forceUpdate"); + t && (t._pendingForceUpdate = !0, r(t)) + }, enqueueReplaceState: function (e, t, n) { + var o = i(e, "replaceState"); + o && (o._pendingStateQueue = [t], o._pendingReplaceState = !0, void 0 !== n && null + !== n && (l.validateCallback(n, "replaceState"), o._pendingCallbacks + ? o._pendingCallbacks.push(n) : o._pendingCallbacks = [n]), r(o)) + }, enqueueSetState: function (e, t) { + var n = i(e, "setState"); + n && ((n._pendingStateQueue || (n._pendingStateQueue = [])).push(t), r(n)) + }, enqueueElementInternal: function (e, t, n) { + e._pendingElement = t, e._context = n, r(e) + }, validateCallback: function (e, t) { + e && "function" != typeof e && a("122", t, o(e)) + } + }); + t.exports = l + }, {112: 112, 119: 119, 137: 137, 142: 142, 57: 57, 58: 58, 71: 71}], + 71: [function (e, t, n) { + "use strict"; + + function r() { + P.ReactReconcileTransaction && b || c("123") + } + + function o() { + this.reinitializeTransaction(), this.dirtyComponentsLength = null, this.callbackQueue = d.getPooled(), this.reconcileTransaction = P.ReactReconcileTransaction.getPooled( + !0) + } + + function i(e, t, n, o, i, a) { + return r(), b.batchedUpdates(e, t, n, o, i, a) + } + + function a(e, t) { + return e._mountOrder - t._mountOrder + } + + function s(e) { + var t = e.dirtyComponentsLength; + t !== g.length && c("124", t, g.length), g.sort(a), y++; + for (var n = 0; n < t; n++) { + var r = g[n], o = r._pendingCallbacks; + r._pendingCallbacks = null; + var i; + if (h.logTopLevelRenders) { + var s = r; + r._currentElement.type.isReactTopLevelWrapper + && (s = r._renderedComponent), i = "React update: " + s.getName(), console.time(i) + } + if (m.performUpdateIfNecessary(r, e.reconcileTransaction, y), i && console.timeEnd( + i), o) { + for (var u = 0; u < o.length; u++) { + e.callbackQueue.enqueue(o[u], + r.getPublicInstance()) + } + } + } + } + + function u(e) { + if (r(), !b.isBatchingUpdates) { + return void b.batchedUpdates(u, e); + } + g.push(e), null == e._updateBatchNumber && (e._updateBatchNumber = y + 1) + } + + function l(e, t) { + b.isBatchingUpdates || c("125"), _.enqueue(e, t), C = !0 + } + + var c = e(112), p = e(143), d = e(6), f = e(24), h = e(53), m = e(66), v = e(89), + g = (e(137), []), y = 0, _ = d.getPooled(), C = !1, b = null, E = { + initialize: function () { + this.dirtyComponentsLength = g.length + }, close: function () { + this.dirtyComponentsLength !== g.length ? (g.splice(0, + this.dirtyComponentsLength), T()) : g.length = 0 + } + }, x = { + initialize: function () { + this.callbackQueue.reset() + }, close: function () { + this.callbackQueue.notifyAll() + } + }, w = [E, x]; + p(o.prototype, v, { + getTransactionWrappers: function () { + return w + }, destructor: function () { + this.dirtyComponentsLength = null, d.release( + this.callbackQueue), this.callbackQueue = null, P.ReactReconcileTransaction.release( + this.reconcileTransaction), this.reconcileTransaction = null + }, perform: function (e, t, n) { + return v.perform.call(this, this.reconcileTransaction.perform, + this.reconcileTransaction, e, t, n) + } + }), f.addPoolingTo(o); + var T = function () { + for (; g.length || C;) { + if (g.length) { + var e = o.getPooled(); + e.perform(s, null, e), o.release(e) + } + if (C) { + C = !1; + var t = _; + _ = d.getPooled(), t.notifyAll(), d.release(t) + } + } + }, k = { + injectReconcileTransaction: function (e) { + e || c("126"), P.ReactReconcileTransaction = e + }, injectBatchingStrategy: function (e) { + e || c("127"), "function" != typeof e.batchedUpdates && c("128"), "boolean" + != typeof e.isBatchingUpdates && c("129"), b = e + } + }, P = { + ReactReconcileTransaction: null, + batchedUpdates: i, + enqueueUpdate: u, + flushBatchedUpdates: T, + injection: k, + asap: l + }; + t.exports = P + }, {112: 112, 137: 137, 143: 143, 24: 24, 53: 53, 6: 6, 66: 66, 89: 89}], + 72: [function (e, t, n) { + "use strict"; + t.exports = "15.5.4" + }, {}], + 73: [function (e, t, n) { + "use strict"; + var r = { + xlink: "http://www.w3.org/1999/xlink", + xml: "http://www.w3.org/XML/1998/namespace" + }, o = { + accentHeight: "accent-height", + accumulate: 0, + additive: 0, + alignmentBaseline: "alignment-baseline", + allowReorder: "allowReorder", + alphabetic: 0, + amplitude: 0, + arabicForm: "arabic-form", + ascent: 0, + attributeName: "attributeName", + attributeType: "attributeType", + autoReverse: "autoReverse", + azimuth: 0, + baseFrequency: "baseFrequency", + baseProfile: "baseProfile", + baselineShift: "baseline-shift", + bbox: 0, + begin: 0, + bias: 0, + by: 0, + calcMode: "calcMode", + capHeight: "cap-height", + clip: 0, + clipPath: "clip-path", + clipRule: "clip-rule", + clipPathUnits: "clipPathUnits", + colorInterpolation: "color-interpolation", + colorInterpolationFilters: "color-interpolation-filters", + colorProfile: "color-profile", + colorRendering: "color-rendering", + contentScriptType: "contentScriptType", + contentStyleType: "contentStyleType", + cursor: 0, + cx: 0, + cy: 0, + d: 0, + decelerate: 0, + descent: 0, + diffuseConstant: "diffuseConstant", + direction: 0, + display: 0, + divisor: 0, + dominantBaseline: "dominant-baseline", + dur: 0, + dx: 0, + dy: 0, + edgeMode: "edgeMode", + elevation: 0, + enableBackground: "enable-background", + end: 0, + exponent: 0, + externalResourcesRequired: "externalResourcesRequired", + fill: 0, + fillOpacity: "fill-opacity", + fillRule: "fill-rule", + filter: 0, + filterRes: "filterRes", + filterUnits: "filterUnits", + floodColor: "flood-color", + floodOpacity: "flood-opacity", + focusable: 0, + fontFamily: "font-family", + fontSize: "font-size", + fontSizeAdjust: "font-size-adjust", + fontStretch: "font-stretch", + fontStyle: "font-style", + fontVariant: "font-variant", + fontWeight: "font-weight", + format: 0, + from: 0, + fx: 0, + fy: 0, + g1: 0, + g2: 0, + glyphName: "glyph-name", + glyphOrientationHorizontal: "glyph-orientation-horizontal", + glyphOrientationVertical: "glyph-orientation-vertical", + glyphRef: "glyphRef", + gradientTransform: "gradientTransform", + gradientUnits: "gradientUnits", + hanging: 0, + horizAdvX: "horiz-adv-x", + horizOriginX: "horiz-origin-x", + ideographic: 0, + imageRendering: "image-rendering", + in: 0, + in2: 0, + intercept: 0, + k: 0, + k1: 0, + k2: 0, + k3: 0, + k4: 0, + kernelMatrix: "kernelMatrix", + kernelUnitLength: "kernelUnitLength", + kerning: 0, + keyPoints: "keyPoints", + keySplines: "keySplines", + keyTimes: "keyTimes", + lengthAdjust: "lengthAdjust", + letterSpacing: "letter-spacing", + lightingColor: "lighting-color", + limitingConeAngle: "limitingConeAngle", + local: 0, + markerEnd: "marker-end", + markerMid: "marker-mid", + markerStart: "marker-start", + markerHeight: "markerHeight", + markerUnits: "markerUnits", + markerWidth: "markerWidth", + mask: 0, + maskContentUnits: "maskContentUnits", + maskUnits: "maskUnits", + mathematical: 0, + mode: 0, + numOctaves: "numOctaves", + offset: 0, + opacity: 0, + operator: 0, + order: 0, + orient: 0, + orientation: 0, + origin: 0, + overflow: 0, + overlinePosition: "overline-position", + overlineThickness: "overline-thickness", + paintOrder: "paint-order", + panose1: "panose-1", + pathLength: "pathLength", + patternContentUnits: "patternContentUnits", + patternTransform: "patternTransform", + patternUnits: "patternUnits", + pointerEvents: "pointer-events", + points: 0, + pointsAtX: "pointsAtX", + pointsAtY: "pointsAtY", + pointsAtZ: "pointsAtZ", + preserveAlpha: "preserveAlpha", + preserveAspectRatio: "preserveAspectRatio", + primitiveUnits: "primitiveUnits", + r: 0, + radius: 0, + refX: "refX", + refY: "refY", + renderingIntent: "rendering-intent", + repeatCount: "repeatCount", + repeatDur: "repeatDur", + requiredExtensions: "requiredExtensions", + requiredFeatures: "requiredFeatures", + restart: 0, + result: 0, + rotate: 0, + rx: 0, + ry: 0, + scale: 0, + seed: 0, + shapeRendering: "shape-rendering", + slope: 0, + spacing: 0, + specularConstant: "specularConstant", + specularExponent: "specularExponent", + speed: 0, + spreadMethod: "spreadMethod", + startOffset: "startOffset", + stdDeviation: "stdDeviation", + stemh: 0, + stemv: 0, + stitchTiles: "stitchTiles", + stopColor: "stop-color", + stopOpacity: "stop-opacity", + strikethroughPosition: "strikethrough-position", + strikethroughThickness: "strikethrough-thickness", + string: 0, + stroke: 0, + strokeDasharray: "stroke-dasharray", + strokeDashoffset: "stroke-dashoffset", + strokeLinecap: "stroke-linecap", + strokeLinejoin: "stroke-linejoin", + strokeMiterlimit: "stroke-miterlimit", + strokeOpacity: "stroke-opacity", + strokeWidth: "stroke-width", + surfaceScale: "surfaceScale", + systemLanguage: "systemLanguage", + tableValues: "tableValues", + targetX: "targetX", + targetY: "targetY", + textAnchor: "text-anchor", + textDecoration: "text-decoration", + textRendering: "text-rendering", + textLength: "textLength", + to: 0, + transform: 0, + u1: 0, + u2: 0, + underlinePosition: "underline-position", + underlineThickness: "underline-thickness", + unicode: 0, + unicodeBidi: "unicode-bidi", + unicodeRange: "unicode-range", + unitsPerEm: "units-per-em", + vAlphabetic: "v-alphabetic", + vHanging: "v-hanging", + vIdeographic: "v-ideographic", + vMathematical: "v-mathematical", + values: 0, + vectorEffect: "vector-effect", + version: 0, + vertAdvY: "vert-adv-y", + vertOriginX: "vert-origin-x", + vertOriginY: "vert-origin-y", + viewBox: "viewBox", + viewTarget: "viewTarget", + visibility: 0, + widths: 0, + wordSpacing: "word-spacing", + writingMode: "writing-mode", + x: 0, + xHeight: "x-height", + x1: 0, + x2: 0, + xChannelSelector: "xChannelSelector", + xlinkActuate: "xlink:actuate", + xlinkArcrole: "xlink:arcrole", + xlinkHref: "xlink:href", + xlinkRole: "xlink:role", + xlinkShow: "xlink:show", + xlinkTitle: "xlink:title", + xlinkType: "xlink:type", + xmlBase: "xml:base", + xmlns: 0, + xmlnsXlink: "xmlns:xlink", + xmlLang: "xml:lang", + xmlSpace: "xml:space", + y: 0, + y1: 0, + y2: 0, + yChannelSelector: "yChannelSelector", + z: 0, + zoomAndPan: "zoomAndPan" + }, i = { + Properties: {}, + DOMAttributeNamespaces: { + xlinkActuate: r.xlink, + xlinkArcrole: r.xlink, + xlinkHref: r.xlink, + xlinkRole: r.xlink, + xlinkShow: r.xlink, + xlinkTitle: r.xlink, + xlinkType: r.xlink, + xmlBase: r.xml, + xmlLang: r.xml, + xmlSpace: r.xml + }, + DOMAttributeNames: {} + }; + Object.keys(o).forEach(function (e) { + i.Properties[e] = 0, o[e] && (i.DOMAttributeNames[e] = o[e]) + }), t.exports = i + }, {}], + 74: [function (e, t, n) { + "use strict"; + + function r(e) { + if ("selectionStart" in e && u.hasSelectionCapabilities( + e)) { + return {start: e.selectionStart, end: e.selectionEnd}; + } + if (window.getSelection) { + var t = window.getSelection(); + return { + anchorNode: t.anchorNode, + anchorOffset: t.anchorOffset, + focusNode: t.focusNode, + focusOffset: t.focusOffset + } + } + if (document.selection) { + var n = document.selection.createRange(); + return { + parentElement: n.parentElement(), + text: n.text, + top: n.boundingTop, + left: n.boundingLeft + } + } + } + + function o(e, t) { + if (y || null == m || m !== c()) { + return null; + } + var n = r(m); + if (!g || !d(g, n)) { + g = n; + var o = l.getPooled(h.select, v, e, t); + return o.type = "select", o.target = m, i.accumulateTwoPhaseDispatches(o), o + } + return null + } + + var i = e(19), a = e(123), s = e(33), u = e(56), l = e(80), c = e(132), p = e(110), + d = e(141), + f = a.canUseDOM && "documentMode" in document && document.documentMode <= 11, h = { + select: { + phasedRegistrationNames: { + bubbled: "onSelect", + captured: "onSelectCapture" + }, + dependencies: ["topBlur", "topContextMenu", "topFocus", "topKeyDown", "topKeyUp", + "topMouseDown", "topMouseUp", "topSelectionChange"] + } + }, m = null, v = null, g = null, y = !1, _ = !1, C = { + eventTypes: h, extractEvents: function (e, t, n, r) { + if (!_) { + return null; + } + var i = t ? s.getNodeFromInstance(t) : window; + switch (e) { + case"topFocus": + (p(i) || "true" === i.contentEditable) && (m = i, v = t, g = null); + break + ; + case"topBlur": + m = null, v = null, g = null; + break; + case"topMouseDown": + y = !0; + break; + case"topContextMenu": + case"topMouseUp": + return y = !1, o(n, r); + case"topSelectionChange": + if (f) { + break; + } + case"topKeyDown": + case"topKeyUp": + return o(n, r) + } + return null + }, didPutListener: function (e, t, n) { + "onSelect" === t && (_ = !0) + } + }; + t.exports = C + }, {110: 110, 123: 123, 132: 132, 141: 141, 19: 19, 33: 33, 56: 56, 80: 80}], + 75: [function (e, t, n) { + "use strict"; + + function r(e) { + return "." + e._rootNodeID + } + + function o(e) { + return "button" === e || "input" === e || "select" === e || "textarea" === e + } + + var i = e(112), a = e(122), s = e(19), u = e(33), l = e(76), c = e(77), p = e(80), + d = e(81), f = e(83), h = e(84), m = e(79), v = e(85), g = e(86), y = e(87), _ = e(88), + C = e(129), b = e(99), E = (e(137), {}), x = {}; + ["abort", "animationEnd", "animationIteration", "animationStart", "blur", "canPlay", + "canPlayThrough", "click", "contextMenu", "copy", "cut", "doubleClick", "drag", + "dragEnd", "dragEnter", "dragExit", "dragLeave", "dragOver", "dragStart", "drop", + "durationChange", "emptied", "encrypted", "ended", "error", "focus", "input", "invalid", + "keyDown", "keyPress", "keyUp", "load", "loadedData", "loadedMetadata", "loadStart", + "mouseDown", "mouseMove", "mouseOut", "mouseOver", "mouseUp", "paste", "pause", "play", + "playing", "progress", "rateChange", "reset", "scroll", "seeked", "seeking", "stalled", + "submit", "suspend", "timeUpdate", "touchCancel", "touchEnd", "touchMove", "touchStart", + "transitionEnd", "volumeChange", "waiting", "wheel"].forEach(function (e) { + var t = e[0].toUpperCase() + e.slice(1), n = "on" + t, r = "top" + t, o = { + phasedRegistrationNames: {bubbled: n, captured: n + "Capture"}, + dependencies: [r] + }; + E[e] = o, x[r] = o + }); + var w = {}, T = { + eventTypes: E, extractEvents: function (e, t, n, r) { + var o = x[e]; + if (!o) { + return null; + } + var a; + switch (e) { + case"topAbort": + case"topCanPlay": + case"topCanPlayThrough": + case"topDurationChange": + case"topEmptied": + case"topEncrypted": + case"topEnded": + case"topError": + case"topInput": + case"topInvalid": + case"topLoad": + case"topLoadedData": + case"topLoadedMetadata": + case"topLoadStart": + case"topPause": + case"topPlay": + case"topPlaying": + case"topProgress": + case"topRateChange": + case"topReset": + case"topSeeked": + case"topSeeking": + case"topStalled": + case"topSubmit": + case"topSuspend": + case"topTimeUpdate": + case"topVolumeChange": + case"topWaiting": + a = p; + break; + case"topKeyPress": + if (0 === b(n)) { + return null; + } + case"topKeyDown": + case"topKeyUp": + a = f; + break; + case"topBlur": + case"topFocus": + a = d; + break; + case"topClick": + if (2 === n.button) { + return null; + } + case"topDoubleClick": + case"topMouseDown": + case"topMouseMove": + case"topMouseUp": + case"topMouseOut": + case"topMouseOver": + case"topContextMenu": + a = h; + break; + case"topDrag": + case"topDragEnd": + case"topDragEnter": + case"topDragExit": + case"topDragLeave": + case"topDragOver": + case"topDragStart": + case"topDrop": + a = m; + break; + case"topTouchCancel": + case"topTouchEnd": + case"topTouchMove": + case"topTouchStart": + a = v; + break; + case"topAnimationEnd": + case"topAnimationIteration": + case"topAnimationStart": + a = l; + break; + case"topTransitionEnd": + a = g; + break; + case"topScroll": + a = y; + break; + case"topWheel": + a = _; + break; + case"topCopy": + case"topCut": + case"topPaste": + a = c + } + a || i("86", e); + var u = a.getPooled(o, t, n, r); + return s.accumulateTwoPhaseDispatches(u), u + }, didPutListener: function (e, t, n) { + if ("onClick" === t && !o(e._tag)) { + var i = r(e), s = u.getNodeFromInstance(e); + w[i] || (w[i] = a.listen(s, "click", C)) + } + }, willDeleteListener: function (e, t) { + if ("onClick" === t && !o(e._tag)) { + var n = r(e); + w[n].remove(), delete w[n] + } + } + }; + t.exports = T + }, { + 112: 112, + 122: 122, + 129: 129, + 137: 137, + 19: 19, + 33: 33, + 76: 76, + 77: 77, + 79: 79, + 80: 80, + 81: 81, + 83: 83, + 84: 84, + 85: 85, + 86: 86, + 87: 87, + 88: 88, + 99: 99 + }], + 76: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(80), i = {animationName: null, elapsedTime: null, pseudoElement: null}; + o.augmentClass(r, i), t.exports = r + }, {80: 80}], + 77: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(80), i = { + clipboardData: function (e) { + return "clipboardData" in e ? e.clipboardData : window.clipboardData + } + }; + o.augmentClass(r, i), t.exports = r + }, {80: 80}], + 78: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(80), i = {data: null}; + o.augmentClass(r, i), t.exports = r + }, {80: 80}], + 79: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(84), i = {dataTransfer: null}; + o.augmentClass(r, i), t.exports = r + }, {84: 84}], + 80: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + this.dispatchConfig = e, this._targetInst = t, this.nativeEvent = n; + var o = this.constructor.Interface; + for (var i in o) { + if (o.hasOwnProperty(i)) { + var s = o[i]; + s ? this[i] = s(n) : "target" === i ? this.target = r : this[i] = n[i] + } + } + var u = null != n.defaultPrevented ? n.defaultPrevented : !1 === n.returnValue; + return this.isDefaultPrevented = u ? a.thatReturnsTrue + : a.thatReturnsFalse, this.isPropagationStopped = a.thatReturnsFalse, this + } + + var o = e(143), i = e(24), a = e(129), + s = (e(142), ["dispatchConfig", "_targetInst", "nativeEvent", "isDefaultPrevented", + "isPropagationStopped", "_dispatchListeners", "_dispatchInstances"]), u = { + type: null, + target: null, + currentTarget: a.thatReturnsNull, + eventPhase: null, + bubbles: null, + cancelable: null, + timeStamp: function (e) { + return e.timeStamp || Date.now() + }, + defaultPrevented: null, + isTrusted: null + }; + o(r.prototype, { + preventDefault: function () { + this.defaultPrevented = !0; + var e = this.nativeEvent; + e && (e.preventDefault ? e.preventDefault() : "unknown" != typeof e.returnValue + && (e.returnValue = !1), this.isDefaultPrevented = a.thatReturnsTrue) + }, stopPropagation: function () { + var e = this.nativeEvent; + e && (e.stopPropagation ? e.stopPropagation() : "unknown" != typeof e.cancelBubble + && (e.cancelBubble = !0), this.isPropagationStopped = a.thatReturnsTrue) + }, persist: function () { + this.isPersistent = a.thatReturnsTrue + }, isPersistent: a.thatReturnsFalse, destructor: function () { + var e = this.constructor.Interface; + for (var t in e) { + this[t] = null; + } + for (var n = 0; n < s.length; n++) { + this[s[n]] = null + } + } + }), r.Interface = u, r.augmentClass = function (e, t) { + var n = this, r = function () { + }; + r.prototype = n.prototype; + var a = new r; + o(a, e.prototype), e.prototype = a, e.prototype.constructor = e, e.Interface = o({}, + n.Interface, t), e.augmentClass = n.augmentClass, i.addPoolingTo(e, + i.fourArgumentPooler) + }, i.addPoolingTo(r, i.fourArgumentPooler), t.exports = r + }, {129: 129, 142: 142, 143: 143, 24: 24}], + 81: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(87), i = {relatedTarget: null}; + o.augmentClass(r, i), t.exports = r + }, {87: 87}], + 82: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(80), i = {data: null}; + o.augmentClass(r, i), t.exports = r + }, {80: 80}], + 83: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(87), i = e(99), a = e(100), s = e(101), u = { + key: a, + location: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + repeat: null, + locale: null, + getModifierState: s, + charCode: function (e) { + return "keypress" === e.type ? i(e) : 0 + }, + keyCode: function (e) { + return "keydown" === e.type || "keyup" === e.type ? e.keyCode : 0 + }, + which: function (e) { + return "keypress" === e.type ? i(e) : "keydown" === e.type || "keyup" === e.type + ? e.keyCode : 0 + } + }; + o.augmentClass(r, u), t.exports = r + }, {100: 100, 101: 101, 87: 87, 99: 99}], + 84: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(87), i = e(90), a = e(101), s = { + screenX: null, + screenY: null, + clientX: null, + clientY: null, + ctrlKey: null, + shiftKey: null, + altKey: null, + metaKey: null, + getModifierState: a, + button: function (e) { + var t = e.button; + return "which" in e ? t : 2 === t ? 2 : 4 === t ? 1 : 0 + }, + buttons: null, + relatedTarget: function (e) { + return e.relatedTarget || (e.fromElement === e.srcElement ? e.toElement + : e.fromElement) + }, + pageX: function (e) { + return "pageX" in e ? e.pageX : e.clientX + i.currentScrollLeft + }, + pageY: function (e) { + return "pageY" in e ? e.pageY : e.clientY + i.currentScrollTop + } + }; + o.augmentClass(r, s), t.exports = r + }, {101: 101, 87: 87, 90: 90}], + 85: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(87), i = e(101), a = { + touches: null, + targetTouches: null, + changedTouches: null, + altKey: null, + metaKey: null, + ctrlKey: null, + shiftKey: null, + getModifierState: i + }; + o.augmentClass(r, a), t.exports = r + }, {101: 101, 87: 87}], + 86: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(80), i = {propertyName: null, elapsedTime: null, pseudoElement: null}; + o.augmentClass(r, i), t.exports = r + }, {80: 80}], + 87: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(80), i = e(102), a = { + view: function (e) { + if (e.view) { + return e.view; + } + var t = i(e); + if (t.window === t) { + return t; + } + var n = t.ownerDocument; + return n ? n.defaultView || n.parentWindow : window + }, detail: function (e) { + return e.detail || 0 + } + }; + o.augmentClass(r, a), t.exports = r + }, {102: 102, 80: 80}], + 88: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r) { + return o.call(this, e, t, n, r) + } + + var o = e(84), i = { + deltaX: function (e) { + return "deltaX" in e ? e.deltaX : "wheelDeltaX" in e ? -e.wheelDeltaX : 0 + }, deltaY: function (e) { + return "deltaY" in e ? e.deltaY : "wheelDeltaY" in e ? -e.wheelDeltaY : "wheelDelta" + in e ? -e.wheelDelta : 0 + }, deltaZ: null, deltaMode: null + }; + o.augmentClass(r, i), t.exports = r + }, {84: 84}], + 89: [function (e, t, n) { + "use strict"; + var r = e(112), o = (e(137), {}), i = { + reinitializeTransaction: function () { + this.transactionWrappers = this.getTransactionWrappers(), this.wrapperInitData + ? this.wrapperInitData.length = 0 + : this.wrapperInitData = [], this._isInTransaction = !1 + }, _isInTransaction: !1, getTransactionWrappers: null, isInTransaction: function () { + return !!this._isInTransaction + }, perform: function (e, t, n, o, i, a, s, u) { + this.isInTransaction() && r("27"); + var l, c; + try { + this._isInTransaction = !0, l = !0, this.initializeAll(0), c = e.call(t, n, o, i, a, + s, u), l = !1 + } finally { + try { + if (l) { + try { + this.closeAll(0) + } catch (e) { + } + } else { + this.closeAll(0) + } + } finally { + this._isInTransaction = !1 + } + } + return c + }, initializeAll: function (e) { + for (var t = this.transactionWrappers, n = e; n < t.length; n++) { + var r = t[n]; + try { + this.wrapperInitData[n] = o, this.wrapperInitData[n] = r.initialize + ? r.initialize.call(this) : null + } finally { + if (this.wrapperInitData[n] === o) { + try { + this.initializeAll(n + 1) + } catch (e) { + } + } + } + } + }, closeAll: function (e) { + this.isInTransaction() || r("28"); + for (var t = this.transactionWrappers, n = e; n < t.length; n++) { + var i, a = t[n], s = this.wrapperInitData[n]; + try { + i = !0, s !== o && a.close && a.close.call(this, s), i = !1 + } finally { + if (i) { + try { + this.closeAll(n + 1) + } catch (e) { + } + } + } + } + this.wrapperInitData.length = 0 + } + }; + t.exports = i + }, {112: 112, 137: 137}], + 90: [function (e, t, n) { + "use strict"; + var r = { + currentScrollLeft: 0, currentScrollTop: 0, refreshScrollValues: function (e) { + r.currentScrollLeft = e.x, r.currentScrollTop = e.y + } + }; + t.exports = r + }, {}], + 91: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return null == t && o("30"), null == e ? t : Array.isArray(e) ? Array.isArray(t) + ? (e.push.apply(e, t), e) : (e.push(t), e) : Array.isArray(t) ? [e].concat(t) : [e, t] + } + + var o = e(112); + e(137); + t.exports = r + }, {112: 112, 137: 137}], + 92: [function (e, t, n) { + "use strict"; + + function r(e) { + for (var t = 1, n = 0, r = 0, i = e.length, a = -4 & i; r < a;) { + for (var s = Math.min(r + 4096, a); r < s; r += 4) { + n += (t += e.charCodeAt(r)) + + (t += e.charCodeAt(r + 1)) + (t += e.charCodeAt(r + 2)) + (t += e.charCodeAt( + r + 3)); + } + t %= o, n %= o + } + for (; r < i; r++) { + n += t += e.charCodeAt(r); + } + return t %= o, n %= o, t | n << 16 + } + + var o = 65521; + t.exports = r + }, {}], + 93: [function (e, t, n) { + "use strict"; + var r = function (e) { + return "undefined" != typeof MSApp && MSApp.execUnsafeLocalFunction ? function (t, n, r, + o) { + MSApp.execUnsafeLocalFunction(function () { + return e(t, n, r, o) + }) + } : e + }; + t.exports = r + }, {}], + 94: [function (e, t, n) { + "use strict"; + + function r(e, t, n) { + return null == t || "boolean" == typeof t || "" === t ? "" : isNaN(t) || 0 === t + || i.hasOwnProperty(e) && i[e] ? "" + t : ("string" == typeof t && (t = t.trim()), t + + "px") + } + + var o = e(4), i = (e(142), o.isUnitlessNumber); + t.exports = r + }, {142: 142, 4: 4}], + 95: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = "" + e, n = i.exec(t); + if (!n) { + return t; + } + var r, o = "", a = 0, s = 0; + for (a = n.index; a < t.length; a++) { + switch (t.charCodeAt(a)) { + case 34: + r = """; + break; + case 38: + r = "&"; + break; + case 39: + r = "'"; + break; + case 60: + r = "<"; + break; + case 62: + r = ">"; + break; + default: + continue + } + s !== a && (o += t.substring(s, a)), s = a + 1, o += r + } + return s !== a ? o + t.substring(s, a) : o + } + + function o(e) { + return "boolean" == typeof e || "number" == typeof e ? "" + e : r(e) + } + + var i = /["'&<>]/; + t.exports = o + }, {}], + 96: [function (e, t, n) { + "use strict"; + + function r(e) { + if (null == e) { + return null; + } + if (1 === e.nodeType) { + return e; + } + var t = a.get(e); + if (t) { + return t = s(t), t ? i.getNodeFromInstance(t) : null; + } + "function" == typeof e.render ? o("44") : o("45", Object.keys(e)) + } + + var o = e(112), i = (e(119), e(33)), a = e(57), s = e(103); + e(137), e(142); + t.exports = r + }, {103: 103, 112: 112, 119: 119, 137: 137, 142: 142, 33: 33, 57: 57}], + 97: [function (e, t, n) { + (function (n) { + "use strict"; + + function r(e, t, n, r) { + if (e && "object" == typeof e) { + var o = e; + void 0 === o[n] && null != t && (o[n] = t) + } + } + + function o(e, t) { + if (null == e) { + return e; + } + var n = {}; + return i(e, r, n), n + } + + var i = (e(22), e(117)); + e(142); + void 0 !== n && n.env, t.exports = o + }).call(this, void 0) + }, {117: 117, 142: 142, 22: 22}], + 98: [function (e, t, n) { + "use strict"; + + function r(e, t, n) { + Array.isArray(e) ? e.forEach(t, n) : e && t.call(n, e) + } + + t.exports = r + }, {}], + 99: [function (e, t, n) { + "use strict"; + + function r(e) { + var t, n = e.keyCode; + return "charCode" in e ? 0 === (t = e.charCode) && 13 === n && (t = 13) : t = n, t >= 32 + || 13 === t ? t : 0 + } + + t.exports = r + }, {}], + 100: [function (e, t, n) { + "use strict"; + + function r(e) { + if (e.key) { + var t = i[e.key] || e.key; + if ("Unidentified" !== t) { + return t + } + } + if ("keypress" === e.type) { + var n = o(e); + return 13 === n ? "Enter" : String.fromCharCode(n) + } + return "keydown" === e.type || "keyup" === e.type ? a[e.keyCode] || "Unidentified" : "" + } + + var o = e(99), i = { + Esc: "Escape", + Spacebar: " ", + Left: "ArrowLeft", + Up: "ArrowUp", + Right: "ArrowRight", + Down: "ArrowDown", + Del: "Delete", + Win: "OS", + Menu: "ContextMenu", + Apps: "ContextMenu", + Scroll: "ScrollLock", + MozPrintableKey: "Unidentified" + }, a = { + 8: "Backspace", + 9: "Tab", + 12: "Clear", + 13: "Enter", + 16: "Shift", + 17: "Control", + 18: "Alt", + 19: "Pause", + 20: "CapsLock", + 27: "Escape", + 32: " ", + 33: "PageUp", + 34: "PageDown", + 35: "End", + 36: "Home", + 37: "ArrowLeft", + 38: "ArrowUp", + 39: "ArrowRight", + 40: "ArrowDown", + 45: "Insert", + 46: "Delete", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "NumLock", + 145: "ScrollLock", + 224: "Meta" + }; + t.exports = r + }, {99: 99}], + 101: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = this, n = t.nativeEvent; + if (n.getModifierState) { + return n.getModifierState(e); + } + var r = i[e]; + return !!r && !!n[r] + } + + function o(e) { + return r + } + + var i = {Alt: "altKey", Control: "ctrlKey", Meta: "metaKey", Shift: "shiftKey"}; + t.exports = o + }, {}], + 102: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e.target || e.srcElement || window; + return t.correspondingUseElement && (t = t.correspondingUseElement), 3 === t.nodeType + ? t.parentNode : t + } + + t.exports = r + }, {}], + 103: [function (e, t, n) { + "use strict"; + + function r(e) { + for (var t; (t = e._renderedNodeType) === o.COMPOSITE;) { + e = e._renderedComponent; + } + return t === o.HOST ? e._renderedComponent : t === o.EMPTY ? null : void 0 + } + + var o = e(62); + t.exports = r + }, {62: 62}], + 104: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e && (o && e[o] || e[i]); + if ("function" == typeof t) { + return t + } + } + + var o = "function" == typeof Symbol && Symbol.iterator, i = "@@iterator"; + t.exports = r + }, {}], + 105: [function (e, t, n) { + "use strict"; + + function r(e) { + for (; e && e.firstChild;) { + e = e.firstChild; + } + return e + } + + function o(e) { + for (; e;) { + if (e.nextSibling) { + return e.nextSibling; + } + e = e.parentNode + } + } + + function i(e, t) { + for (var n = r(e), i = 0, a = 0; n;) { + if (3 === n.nodeType) { + if (a = i + n.textContent.length, i <= t && a >= t) { + return {node: n, offset: t - i}; + } + i = a + } + n = r(o(n)) + } + } + + t.exports = i + }, {}], + 106: [function (e, t, n) { + "use strict"; + + function r() { + return !i && o.canUseDOM && (i = "textContent" in document.documentElement + ? "textContent" : "innerText"), i + } + + var o = e(123), i = null; + t.exports = r + }, {123: 123}], + 107: [function (e, t, n) { + "use strict"; + + function r(e, t) { + var n = {}; + return n[e.toLowerCase()] = t.toLowerCase(), n["Webkit" + e] = "webkit" + t, n["Moz" + + e] = "moz" + t, n["ms" + e] = "MS" + t, n["O" + e] = "o" + t.toLowerCase(), n + } + + function o(e) { + if (s[e]) { + return s[e]; + } + if (!a[e]) { + return e; + } + var t = a[e]; + for (var n in t) { + if (t.hasOwnProperty(n) && n in u) { + return s[e] = t[n]; + } + } + return "" + } + + var i = e(123), a = { + animationend: r("Animation", "AnimationEnd"), + animationiteration: r("Animation", "AnimationIteration"), + animationstart: r("Animation", "AnimationStart"), + transitionend: r("Transition", "TransitionEnd") + }, s = {}, u = {}; + i.canUseDOM && (u = document.createElement("div").style, "AnimationEvent" in window + || (delete a.animationend.animation, delete a.animationiteration.animation, delete a.animationstart.animation), "TransitionEvent" + in window || delete a.transitionend.transition), t.exports = o + }, {123: 123}], + 108: [function (e, t, n) { + "use strict"; + + function r(e) { + if (e) { + var t = e.getName(); + if (t) { + return " Check the render method of `" + t + "`." + } + } + return "" + } + + function o(e) { + return "function" == typeof e && void 0 !== e.prototype && "function" + == typeof e.prototype.mountComponent && "function" + == typeof e.prototype.receiveComponent + } + + function i(e, t) { + var n; + if (null === e || !1 === e) { + n = l.create(i); + } else if ("object" == typeof e) { + var s = e, u = s.type; + if ("function" != typeof u && "string" != typeof u) { + var d = ""; + d += r(s._owner), a("130", null == u ? u : typeof u, d) + } + "string" == typeof s.type ? n = c.createInternalComponent(s) : o(s.type) + ? (n = new s.type(s), n.getHostNode || (n.getHostNode = n.getNativeNode)) + : n = new p(s) + } else { + "string" == typeof e || "number" == typeof e ? n = c.createInstanceForText(e) + : a("131", typeof e); + } + return n._mountIndex = 0, n._mountImage = null, n + } + + var a = e(112), s = e(143), u = e(29), l = e(49), c = e(54), + p = (e(121), e(137), e(142), function (e) { + this.construct(e) + }); + s(p.prototype, u, {_instantiateReactComponent: i}), t.exports = i + }, {112: 112, 121: 121, 137: 137, 142: 142, 143: 143, 29: 29, 49: 49, 54: 54}], + 109: [function (e, t, n) { + "use strict"; + + function r(e, t) { + if (!i.canUseDOM || t && !("addEventListener" in document)) { + return !1; + } + var n = "on" + e, r = n in document; + if (!r) { + var a = document.createElement("div"); + a.setAttribute(n, "return;"), r = "function" == typeof a[n] + } + return !r && o && "wheel" === e && (r = document.implementation.hasFeature( + "Events.wheel", "3.0")), r + } + + var o, i = e(123); + i.canUseDOM && (o = document.implementation && document.implementation.hasFeature && !0 + !== document.implementation.hasFeature("", "")), t.exports = r + }, {123: 123}], + 110: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e && e.nodeName && e.nodeName.toLowerCase(); + return "input" === t ? !!o[e.type] : "textarea" === t + } + + var o = { + color: !0, + date: !0, + datetime: !0, + "datetime-local": !0, + email: !0, + month: !0, + number: !0, + password: !0, + range: !0, + search: !0, + tel: !0, + text: !0, + time: !0, + url: !0, + week: !0 + }; + t.exports = r + }, {}], + 111: [function (e, t, n) { + "use strict"; + + function r(e) { + return '"' + o(e) + '"' + } + + var o = e(95); + t.exports = r + }, {95: 95}], + 112: [function (e, t, n) { + "use strict"; + + function r(e) { + for (var t = arguments.length - 1, n = "Minified React error #" + e + + "; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=" + e, + r = 0; r < t; r++) { + n += "&args[]=" + encodeURIComponent(arguments[r + 1]); + } + n += " for the full message or use the non-minified dev environment for full errors and additional helpful warnings."; + var o = new Error(n); + throw o.name = "Invariant Violation", o.framesToPop = 1, o + } + + t.exports = r + }, {}], + 113: [function (e, t, n) { + "use strict"; + var r = e(60); + t.exports = r.renderSubtreeIntoContainer + }, {60: 60}], + 114: [function (e, t, n) { + "use strict"; + var r, o = e(123), i = e(10), a = /^[ \r\n\t\f]/, + s = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/, u = e(93), + l = u(function (e, t) { + if (e.namespaceURI !== i.svg || "innerHTML" in e) { + e.innerHTML = t; + } else { + r = r || document.createElement("div"), r.innerHTML = "" + t + ""; + for (var n = r.firstChild; n.firstChild;) { + e.appendChild(n.firstChild) + } + } + }); + if (o.canUseDOM) { + var c = document.createElement("div"); + c.innerHTML = " ", "" === c.innerHTML && (l = function (e, t) { + if (e.parentNode && e.parentNode.replaceChild(e, e), a.test(t) || "<" === t[0] + && s.test(t)) { + e.innerHTML = String.fromCharCode(65279) + t; + var n = e.firstChild; + 1 === n.data.length ? e.removeChild(n) : n.deleteData(0, 1) + } else { + e.innerHTML = t + } + }), c = null + } + t.exports = l + }, {10: 10, 123: 123, 93: 93}], + 115: [function (e, t, n) { + "use strict"; + var r = e(123), o = e(95), i = e(114), a = function (e, t) { + if (t) { + var n = e.firstChild; + if (n && n === e.lastChild && 3 === n.nodeType) { + return void (n.nodeValue = t) + } + } + e.textContent = t + }; + r.canUseDOM && ("textContent" in document.documentElement || (a = function (e, t) { + if (3 === e.nodeType) { + return void (e.nodeValue = t); + } + i(e, o(t)) + })), t.exports = a + }, {114: 114, 123: 123, 95: 95}], + 116: [function (e, t, n) { + "use strict"; + + function r(e, t) { + var n = null === e || !1 === e, r = null === t || !1 === t; + if (n || r) { + return n === r; + } + var o = typeof e, i = typeof t; + return "string" === o || "number" === o ? "string" === i || "number" === i : "object" + === i && e.type === t.type && e.key === t.key + } + + t.exports = r + }, {}], + 117: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return e && "object" == typeof e && null != e.key ? l.escape(e.key) : t.toString(36) + } + + function o(e, t, n, i) { + var d = typeof e; + if ("undefined" !== d && "boolean" !== d || (e = null), null === e || "string" === d + || "number" === d || "object" === d && e.$$typeof === s) { + return n(i, e, + "" === t ? c + r(e, 0) : t), 1; + } + var f, h, m = 0, v = "" === t ? c : t + p; + if (Array.isArray(e)) { + for (var g = 0; g < e.length; g++) { + f = e[g], h = v + r(f, + g), m += o(f, h, n, i); + } + } else { + var y = u(e); + if (y) { + var _, C = y.call(e); + if (y !== e.entries) { + for (var b = 0; !(_ = C.next()).done;) { + f = _.value, h = v + r( + f, b++), m += o(f, h, n, i); + } + } else { + for (; !(_ = C.next()).done;) { + var E = _.value; + E && (f = E[1], h = v + l.escape(E[0]) + p + r(f, 0), m += o(f, h, n, i)) + } + } + } else if ("object" === d) { + var x = String(e); + a("31", + "[object Object]" === x ? "object with keys {" + Object.keys(e).join(", ") + "}" + : x, "") + } + } + return m + } + + function i(e, t, n) { + return null == e ? 0 : o(e, "", t, n) + } + + var a = e(112), s = (e(119), e(48)), u = e(104), l = (e(137), e(22)), c = (e(142), "."), + p = ":"; + t.exports = i + }, {104: 104, 112: 112, 119: 119, 137: 137, 142: 142, 22: 22, 48: 48}], + 118: [function (e, t, n) { + "use strict"; + var r = (e(143), e(129)), o = (e(142), r); + t.exports = o + }, {129: 129, 142: 142, 143: 143}], + 119: [function (t, n, r) { + "use strict"; + var o = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + n.exports = o.ReactCurrentOwner + }, {}], + 120: [function (t, n, r) { + "use strict"; + n.exports = e + }, {}], + 121: [function (t, n, r) { + "use strict"; + var o = e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED; + n.exports = o.getNextDebugID + }, {}], + 122: [function (e, t, n) { + "use strict"; + var r = e(129), o = { + listen: function (e, t, n) { + return e.addEventListener ? (e.addEventListener(t, n, !1), { + remove: function () { + e.removeEventListener(t, n, !1) + } + }) : e.attachEvent ? (e.attachEvent("on" + t, n), { + remove: function () { + e.detachEvent("on" + t, n) + } + }) : void 0 + }, capture: function (e, t, n) { + return e.addEventListener ? (e.addEventListener(t, n, !0), { + remove: function () { + e.removeEventListener(t, n, !0) + } + }) : {remove: r} + }, registerDefault: function () { + } + }; + t.exports = o + }, {129: 129}], + 123: [function (e, t, n) { + "use strict"; + var r = !("undefined" == typeof window || !window.document + || !window.document.createElement), o = { + canUseDOM: r, + canUseWorkers: "undefined" != typeof Worker, + canUseEventListeners: r && !(!window.addEventListener && !window.attachEvent), + canUseViewport: r && !!window.screen, + isInWorker: !r + }; + t.exports = o + }, {}], + 124: [function (e, t, n) { + "use strict"; + + function r(e) { + return e.replace(o, function (e, t) { + return t.toUpperCase() + }) + } + + var o = /-(.)/g; + t.exports = r + }, {}], + 125: [function (e, t, n) { + "use strict"; + + function r(e) { + return o(e.replace(i, "ms-")) + } + + var o = e(124), i = /^-ms-/; + t.exports = r + }, {124: 124}], + 126: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return !(!e || !t) && (e === t || !o(e) && (o(t) ? r(e, t.parentNode) : "contains" in e + ? e.contains(t) : !!e.compareDocumentPosition && !!(16 & e.compareDocumentPosition( + t)))) + } + + var o = e(139); + t.exports = r + }, {139: 139}], + 127: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e.length; + if ((Array.isArray(e) || "object" != typeof e && "function" != typeof e) && a( + !1), "number" != typeof t && a(!1), 0 === t || t - 1 in e || a(!1), "function" + == typeof e.callee && a(!1), e.hasOwnProperty) { + try { + return Array.prototype.slice.call(e) + } catch (e) { + } + } + for (var n = Array(t), r = 0; r < t; r++) { + n[r] = e[r]; + } + return n + } + + function o(e) { + return !!e && ("object" == typeof e || "function" == typeof e) && "length" in e + && !("setInterval" in e) && "number" != typeof e.nodeType && (Array.isArray(e) + || "callee" in e || "item" in e) + } + + function i(e) { + return o(e) ? Array.isArray(e) ? e.slice() : r(e) : [e] + } + + var a = e(137); + t.exports = i + }, {137: 137}], + 128: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e.match(c); + return t && t[1].toLowerCase() + } + + function o(e, t) { + var n = l; + l || u(!1); + var o = r(e), i = o && s(o); + if (i) { + n.innerHTML = i[1] + e + i[2]; + for (var c = i[0]; c--;) { + n = n.lastChild + } + } else { + n.innerHTML = e; + } + var p = n.getElementsByTagName("script"); + p.length && (t || u(!1), a(p).forEach(t)); + for (var d = Array.from(n.childNodes); n.lastChild;) { + n.removeChild(n.lastChild); + } + return d + } + + var i = e(123), a = e(127), s = e(133), u = e(137), + l = i.canUseDOM ? document.createElement("div") : null, c = /^\s*<(\w+)/; + t.exports = o + }, {123: 123, 127: 127, 133: 133, 137: 137}], + 129: [function (e, t, n) { + "use strict"; + + function r(e) { + return function () { + return e + } + } + + var o = function () { + }; + o.thatReturns = r, o.thatReturnsFalse = r(!1), o.thatReturnsTrue = r( + !0), o.thatReturnsNull = r(null), o.thatReturnsThis = function () { + return this + }, o.thatReturnsArgument = function (e) { + return e + }, t.exports = o + }, {}], + 130: [function (e, t, n) { + "use strict"; + var r = {}; + t.exports = r + }, {}], + 131: [function (e, t, n) { + "use strict"; + + function r(e) { + try { + e.focus() + } catch (e) { + } + } + + t.exports = r + }, {}], + 132: [function (e, t, n) { + "use strict"; + + function r(e) { + if (void 0 === (e = e || ("undefined" != typeof document ? document + : void 0))) { + return null; + } + try { + return e.activeElement || e.body + } catch (t) { + return e.body + } + } + + t.exports = r + }, {}], + 133: [function (e, t, n) { + "use strict"; + + function r(e) { + return a || i(!1), d.hasOwnProperty(e) || (e = "*"), s.hasOwnProperty(e) + || (a.innerHTML = "*" === e ? "" : "<" + e + ">", s[e] = !a.firstChild), s[e] ? d[e] : null + } + + var o = e(123), i = e(137), a = o.canUseDOM ? document.createElement("div") : null, + s = {}, u = [1, '"], + l = [1, "", "
"], c = [3, "", "
"], + p = [1, '', ""], d = { + "*": [1, "?
", "
"], + area: [1, "", ""], + col: [2, "", "
"], + legend: [1, "
", "
"], + param: [1, "", ""], + tr: [2, "", "
"], + optgroup: u, + option: u, + caption: l, + colgroup: l, + tbody: l, + tfoot: l, + thead: l, + td: c, + th: c + }; + ["circle", "clipPath", "defs", "ellipse", "g", "image", "line", "linearGradient", "mask", + "path", "pattern", "polygon", "polyline", "radialGradient", "rect", "stop", "text", + "tspan"].forEach(function (e) { + d[e] = p, s[e] = !0 + }), t.exports = r + }, {123: 123, 137: 137}], + 134: [function (e, t, n) { + "use strict"; + + function r(e) { + return e.Window && e instanceof e.Window ? { + x: e.pageXOffset || e.document.documentElement.scrollLeft, + y: e.pageYOffset || e.document.documentElement.scrollTop + } : {x: e.scrollLeft, y: e.scrollTop} + } + + t.exports = r + }, {}], + 135: [function (e, t, n) { + "use strict"; + + function r(e) { + return e.replace(o, "-$1").toLowerCase() + } + + var o = /([A-Z])/g; + t.exports = r + }, {}], + 136: [function (e, t, n) { + "use strict"; + + function r(e) { + return o(e).replace(i, "-ms-") + } + + var o = e(135), i = /^ms-/; + t.exports = r + }, {135: 135}], + 137: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r, i, a, s, u) { + if (o(t), !e) { + var l; + if (void 0 === t) { + l = new Error( + "Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings."); + } else { + var c = [n, r, i, a, s, u], p = 0; + l = new Error(t.replace(/%s/g, function () { + return c[p++] + })), l.name = "Invariant Violation" + } + throw l.framesToPop = 1, l + } + } + + var o = function (e) { + }; + t.exports = r + }, {}], + 138: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = e ? e.ownerDocument || e : document, n = t.defaultView || window; + return !(!e || !("function" == typeof n.Node ? e instanceof n.Node : "object" + == typeof e && "number" == typeof e.nodeType && "string" == typeof e.nodeName)) + } + + t.exports = r + }, {}], + 139: [function (e, t, n) { + "use strict"; + + function r(e) { + return o(e) && 3 == e.nodeType + } + + var o = e(138); + t.exports = r + }, {138: 138}], + 140: [function (e, t, n) { + "use strict"; + + function r(e) { + var t = {}; + return function (n) { + return t.hasOwnProperty(n) || (t[n] = e.call(this, n)), t[n] + } + } + + t.exports = r + }, {}], + 141: [function (e, t, n) { + "use strict"; + + function r(e, t) { + return e === t ? 0 !== e || 0 !== t || 1 / e == 1 / t : e !== e && t !== t + } + + function o(e, t) { + if (r(e, t)) { + return !0; + } + if ("object" != typeof e || null === e || "object" != typeof t || null === t) { + return !1; + } + var n = Object.keys(e), o = Object.keys(t); + if (n.length !== o.length) { + return !1; + } + for (var a = 0; a < n.length; a++) { + if (!i.call(t, n[a]) || !r(e[n[a]], + t[n[a]])) { + return !1; + } + } + return !0 + } + + var i = Object.prototype.hasOwnProperty; + t.exports = o + }, {}], + 142: [function (e, t, n) { + "use strict"; + var r = e(129), o = r; + t.exports = o + }, {129: 129}], + 143: [function (e, t, n) { + "use strict"; + + function r(e) { + if (null === e || void 0 === e) { + throw new TypeError( + "Object.assign cannot be called with null or undefined"); + } + return Object(e) + } + + var o = Object.getOwnPropertySymbols, i = Object.prototype.hasOwnProperty, + a = Object.prototype.propertyIsEnumerable; + t.exports = function () { + try { + if (!Object.assign) { + return !1; + } + var e = new String("abc"); + if (e[5] = "de", "5" === Object.getOwnPropertyNames(e)[0]) { + return !1; + } + for (var t = {}, n = 0; n < 10; n++) { + t["_" + String.fromCharCode(n)] = n; + } + if ("0123456789" !== Object.getOwnPropertyNames(t).map(function (e) { + return t[e] + }).join("")) { + return !1; + } + var r = {}; + return "abcdefghijklmnopqrst".split("").forEach(function (e) { + r[e] = e + }), "abcdefghijklmnopqrst" === Object.keys(Object.assign({}, r)).join("") + } catch (e) { + return !1 + } + }() ? Object.assign : function (e, t) { + for (var n, s, u = r(e), l = 1; l < arguments.length; l++) { + n = Object(arguments[l]); + for (var c in n) { + i.call(n, c) && (u[c] = n[c]); + } + if (o) { + s = o(n); + for (var p = 0; p < s.length; p++) { + a.call(n, s[p]) && (u[s[p]] = n[s[p]]) + } + } + } + return u + } + }, {}], + 144: [function (e, t, n) { + "use strict"; + + function r(e, t, n, r, o) { + } + + t.exports = r + }, {137: 137, 142: 142, 147: 147}], + 145: [function (e, t, n) { + "use strict"; + var r = e(146); + t.exports = function (e) { + return r(e, !1) + } + }, {146: 146}], + 146: [function (e, t, n) { + "use strict"; + var r = e(129), o = e(137), i = (e(142), e(147)), a = e(144); + t.exports = function (e, t) { + function n(e) { + var t = e && (E && e[E] || e[x]); + if ("function" == typeof t) { + return t + } + } + + function s(e, t) { + return e === t ? 0 !== e || 1 / e == 1 / t : e !== e && t !== t + } + + function u(e) { + this.message = e, this.stack = "" + } + + function l(e) { + function n(n, r, a, s, l, c, p) { + if (s = s || w, c = c || a, p !== i) { + if (t) { + o(!1, + "Calling PropTypes validators directly is not supported by the `prop-types` package. Use `PropTypes.checkPropTypes()` to call them. Read more at http://fb.me/use-check-prop-types"); + } else { + ; + } + } + return null == r[a] ? n ? new u( + null === r[a] ? "The " + l + " `" + c + "` is marked as required in `" + s + + "`, but its value is `null`." : "The " + l + " `" + c + + "` is marked as required in `" + s + "`, but its value is `undefined`.") + : null : e(r, a, s, l, c) + } + + var r = n.bind(null, !1); + return r.isRequired = n.bind(null, !0), r + } + + function c(e) { + function t(t, n, r, o, i, a) { + var s = t[n]; + if (_(s) !== e) { + return new u( + "Invalid " + o + " `" + i + "` of type `" + C(s) + "` supplied to `" + r + + "`, expected `" + e + "`."); + } + return null + } + + return l(t) + } + + function p(e) { + function t(t, n, r, o, a) { + if ("function" != typeof e) { + return new u("Property `" + a + "` of component `" + r + + "` has invalid PropType notation inside arrayOf."); + } + var s = t[n]; + if (!Array.isArray(s)) { + return new u( + "Invalid " + o + " `" + a + "` of type `" + _(s) + "` supplied to `" + r + + "`, expected an array.") + } + for (var l = 0; l < s.length; l++) { + var c = e(s, l, r, o, a + "[" + l + "]", i); + if (c instanceof Error) { + return c + } + } + return null + } + + return l(t) + } + + function d(e) { + function t(t, n, r, o, i) { + if (!(t[n] instanceof e)) { + var a = e.name || w; + return new u( + "Invalid " + o + " `" + i + "` of type `" + b(t[n]) + "` supplied to `" + r + + "`, expected instance of `" + a + "`.") + } + return null + } + + return l(t) + } + + function f(e) { + function t(t, n, r, o, i) { + for (var a = t[n], l = 0; l < e.length; l++) { + if (s(a, e[l])) { + return null; + } + } + return new u("Invalid " + o + " `" + i + "` of value `" + a + "` supplied to `" + r + + "`, expected one of " + JSON.stringify(e) + ".") + } + + return Array.isArray(e) ? l(t) : r.thatReturnsNull + } + + function h(e) { + function t(t, n, r, o, a) { + if ("function" != typeof e) { + return new u("Property `" + a + "` of component `" + r + + "` has invalid PropType notation inside objectOf."); + } + var s = t[n], l = _(s); + if ("object" !== l) { + return new u( + "Invalid " + o + " `" + a + "` of type `" + l + "` supplied to `" + r + + "`, expected an object."); + } + for (var c in s) { + if (s.hasOwnProperty(c)) { + var p = e(s, c, r, o, a + "." + c, i); + if (p instanceof Error) { + return p + } + } + } + return null + } + + return l(t) + } + + function m(e) { + function t(t, n, r, o, a) { + for (var s = 0; s < e.length; s++) { + if (null == (0, e[s])(t, n, r, o, a, i)) { + return null + } + } + return new u("Invalid " + o + " `" + a + "` supplied to `" + r + "`.") + } + + return Array.isArray(e) ? l(t) : r.thatReturnsNull + } + + function v(e) { + function t(t, n, r, o, a) { + var s = t[n], l = _(s); + if ("object" !== l) { + return new u( + "Invalid " + o + " `" + a + "` of type `" + l + "` supplied to `" + r + + "`, expected `object`."); + } + for (var c in e) { + var p = e[c]; + if (p) { + var d = p(s, c, r, o, a + "." + c, i); + if (d) { + return d + } + } + } + return null + } + + return l(t) + } + + function g(t) { + switch (typeof t) { + case"number": + case"string": + case"undefined": + return !0; + case"boolean": + return !t; + case"object": + if (Array.isArray(t)) { + return t.every(g); + } + if (null === t || e(t)) { + return !0; + } + var r = n(t); + if (!r) { + return !1; + } + var o, i = r.call(t); + if (r !== t.entries) { + for (; !(o = i.next()).done;) { + if (!g(o.value)) { + return !1 + } + } + } else { + for (; !(o = i.next()).done;) { + var a = o.value; + if (a && !g(a[1])) { + return !1 + } + } + } + return !0; + default: + return !1 + } + } + + function y(e, t) { + return "symbol" === e || ("Symbol" === t["@@toStringTag"] || "function" + == typeof Symbol && t instanceof Symbol) + } + + function _(e) { + var t = typeof e; + return Array.isArray(e) ? "array" : e instanceof RegExp ? "object" : y(t, e) + ? "symbol" : t + } + + function C(e) { + var t = _(e); + if ("object" === t) { + if (e instanceof Date) { + return "date"; + } + if (e instanceof RegExp) { + return "regexp" + } + } + return t + } + + function b(e) { + return e.constructor && e.constructor.name ? e.constructor.name : w + } + + var E = "function" == typeof Symbol && Symbol.iterator, x = "@@iterator", + w = "<>", T = { + array: c("array"), + bool: c("boolean"), + func: c("function"), + number: c("number"), + object: c("object"), + string: c("string"), + symbol: c("symbol"), + any: function () { + return l(r.thatReturnsNull) + }(), + arrayOf: p, + element: function () { + function t(t, n, r, o, i) { + var a = t[n]; + if (!e(a)) { + return new u( + "Invalid " + o + " `" + i + "` of type `" + _(a) + "` supplied to `" + r + + "`, expected a single ReactElement.") + } + return null + } + + return l(t) + }(), + instanceOf: d, + node: function () { + function e(e, t, n, r, o) { + return g(e[t]) ? null : new u( + "Invalid " + r + " `" + o + "` supplied to `" + n + "`, expected a ReactNode.") + } + + return l(e) + }(), + objectOf: h, + oneOf: f, + oneOfType: m, + shape: v + } + ; + return u.prototype = Error.prototype, T.checkPropTypes = a, T.PropTypes = T, T + } + }, {129: 129, 137: 137, 142: 142, 144: 144, 147: 147}], + 147: [function (e, t, n) { + "use strict"; + t.exports = "SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED" + }, {}] + }, {}, [45])(45) + }() + }() +}); +/*! http://mths.be/fromcodepoint v0.1.0 by @mathias */ +if (!String.fromCodePoint) { + (function () { + var defineProperty = (function () { + // IE 8 only supports `Object.defineProperty` on DOM elements + try { + var object = {}; + var $defineProperty = Object.defineProperty; + var result = $defineProperty(object, object, object) && $defineProperty; + } catch (error) { + } + return result; + }()); + var stringFromCharCode = String.fromCharCode; + var floor = Math.floor; + var fromCodePoint = function () { + var MAX_SIZE = 0x4000; + var codeUnits = []; + var highSurrogate; + var lowSurrogate; + var index = -1; + var length = arguments.length; + if (!length) { + return ''; + } + var result = ''; + while (++index < length) { + var codePoint = Number(arguments[index]); + if ( + !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity` + codePoint < 0 || // not a valid Unicode code point + codePoint > 0x10FFFF || // not a valid Unicode code point + floor(codePoint) != codePoint // not an integer + ) { + throw RangeError('Invalid code point: ' + codePoint); + } + if (codePoint <= 0xFFFF) { // BMP code point + codeUnits.push(codePoint); + } else { // Astral code point; split in surrogate halves + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + codePoint -= 0x10000; + highSurrogate = (codePoint >> 10) + 0xD800; + lowSurrogate = (codePoint % 0x400) + 0xDC00; + codeUnits.push(highSurrogate, lowSurrogate); + } + if (index + 1 == length || codeUnits.length > MAX_SIZE) { + result += stringFromCharCode.apply(null, codeUnits); + codeUnits.length = 0; + } + } + return result; + }; + if (defineProperty) { + defineProperty(String, 'fromCodePoint', { + 'value': fromCodePoint, + 'configurable': true, + 'writable': true + }); + } else { + String.fromCodePoint = fromCodePoint; + } + }()); +} + +/*! http://mths.be/codepointat v0.1.0 by @mathias */ +if (!String.prototype.codePointAt) { + (function () { + 'use strict'; // needed to support `apply`/`call` with `undefined`/`null` + var codePointAt = function (position) { + if (this == null) { + throw TypeError(); + } + var string = String(this); + var size = string.length; + // `ToInteger` + var index = position ? Number(position) : 0; + if (index != index) { // better `isNaN` + index = 0; + } + // Account for out-of-bounds indices: + if (index < 0 || index >= size) { + return undefined; + } + // Get the first code unit + var first = string.charCodeAt(index); + var second; + if ( // check if itโ€™s the start of a surrogate pair + first >= 0xD800 && first <= 0xDBFF && // high surrogate + size > index + 1 // there is a next code unit + ) { + second = string.charCodeAt(index + 1); + if (second >= 0xDC00 && second <= 0xDFFF) { // low surrogate + // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae + return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; + } + } + return first; + }; + if (Object.defineProperty) { + Object.defineProperty(String.prototype, 'codePointAt', { + 'value': codePointAt, + 'configurable': true, + 'writable': true + }); + } else { + String.prototype.codePointAt = codePointAt; + } + }()); +} + +function registerAsciinemaPlayerElement() { + var AsciinemaPlayerProto = Object.create(HTMLElement.prototype); + + function merge() { + var merged = {}; + for (var i = 0; i < arguments.length; i++) { + var obj = arguments[i]; + for (var attrname in obj) { + merged[attrname] = obj[attrname]; + } + } + return merged; + } + + function attribute(element, attrName, optName, defaultValue, coerceFn) { + var obj = {}; + var value = element.getAttribute(attrName); + if (value !== null) { + if (value === '' && defaultValue !== undefined) { + value = defaultValue; + } else if (coerceFn) { + value = coerceFn(value); + } + obj[optName] = value; + } + return obj; + }; + + function fixEscapeCodes(text) { + if (text) { + var f = function (match, p1, offset, string) { + return String.fromCodePoint(parseInt(p1, 16)); + }; + + return text.replace(/\\u([a-z0-9]{4})/gi, f).replace(/\\x([a-z0-9]{2})/gi, f).replace(/\\e/g, + "\x1b"); + } else { + return text; + } + } + + AsciinemaPlayerProto.createdCallback = function () { + var self = this; + + var opts = merge( + attribute(this, 'cols', 'width', 0, parseInt), + attribute(this, 'rows', 'height', 0, parseInt), + attribute(this, 'autoplay', 'autoPlay', true, Boolean), + attribute(this, 'preload', 'preload', true, Boolean), + attribute(this, 'loop', 'loop', true, Boolean), + attribute(this, 'start-at', 'startAt', 0, parseInt), + attribute(this, 'speed', 'speed', 1, parseFloat), + attribute(this, 'idle-time-limit', 'idleTimeLimit', null, parseFloat), + attribute(this, 'poster', 'poster', null, fixEscapeCodes), + attribute(this, 'font-size', 'fontSize'), + attribute(this, 'theme', 'theme'), + attribute(this, 'title', 'title'), + attribute(this, 'author', 'author'), + attribute(this, 'author-url', 'authorURL'), + attribute(this, 'author-img-url', 'authorImgURL'), + { + onCanPlay: function () { + self.dispatchEvent(new CustomEvent("loadedmetadata")); + self.dispatchEvent(new CustomEvent("loadeddata")); + self.dispatchEvent(new CustomEvent("canplay")); + self.dispatchEvent(new CustomEvent("canplaythrough")); + }, + + onPlay: function () { + self.dispatchEvent(new CustomEvent("play")); + }, + + onPause: function () { + self.dispatchEvent(new CustomEvent("pause")); + } + } + ); + + this.player = asciinema.player.js.CreatePlayer(this, this.getAttribute('src'), opts); + }; + + AsciinemaPlayerProto.attachedCallback = function () { + var self = this; + setTimeout(function () { + self.dispatchEvent(new CustomEvent("attached")); + }, 0); + }; + + AsciinemaPlayerProto.detachedCallback = function () { + asciinema.player.js.UnmountPlayer(this); + this.player = undefined; + }; + + AsciinemaPlayerProto.play = function () { + this.player.play(); + }; + + AsciinemaPlayerProto.pause = function () { + this.player.pause(); + }; + + Object.defineProperty(AsciinemaPlayerProto, "duration", { + get: function () { + return this.player.getDuration() || 0; + }, + + set: function (value) { + } + }); + + Object.defineProperty(AsciinemaPlayerProto, "currentTime", { + get: function () { + return this.player.getCurrentTime(); + }, + + set: function (value) { + this.player.setCurrentTime(value); + } + }); + + document.registerElement('asciinema-player', {prototype: AsciinemaPlayerProto}); +}; + +;(function () { + var g, aa = aa || {}, ba = this; + + function ca(a) { + return "string" == typeof a + } + + function da(a, b) { + var c = a.split("."), d = ba; + c[0] in d || !d.execScript || d.execScript("var " + c[0]); + for (var e; c.length && (e = c.shift());) { + c.length || void 0 === b ? d = d[e] && d[e] + !== Object.prototype[e] ? d[e] : d[e] = {} : d[e] = b + } + } + + function ea() { + } + + function n(a) { + var b = typeof a; + if ("object" == b) { + if (a) { + if (a instanceof Array) { + return "array"; + } + if (a instanceof Object) { + return b; + } + var c = Object.prototype.toString.call(a); + if ("[object Window]" == c) { + return "object"; + } + if ("[object Array]" == c || "number" == typeof a.length && "undefined" != typeof a.splice + && "undefined" != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable( + "splice")) { + return "array"; + } + if ("[object Function]" == c || "undefined" != typeof a.call && "undefined" + != typeof a.propertyIsEnumerable && !a.propertyIsEnumerable("call")) { + return "function" + } + } else { + return "null"; + } + } else if ("function" == b && "undefined" == typeof a.call) { + return "object"; + } + return b + } + + function fa(a) { + var b = n(a); + return "array" == b || "object" == b && "number" == typeof a.length + } + + function ha(a) { + return "function" == n(a) + } + + function ia(a) { + var b = typeof a; + return "object" == b && null != a || "function" == b + } + + function ja(a) { + return a[la] || (a[la] = ++ma) + } + + var la = "closure_uid_" + (1E9 * Math.random() >>> 0), ma = 0; + + function na(a, b, c) { + return a.call.apply(a.bind, arguments) + } + + function oa(a, b, c) { + if (!a) { + throw Error(); + } + if (2 < arguments.length) { + var d = Array.prototype.slice.call(arguments, 2); + return function () { + var c = Array.prototype.slice.call(arguments); + Array.prototype.unshift.apply(c, d); + return a.apply(b, c) + } + } + return function () { + return a.apply(b, arguments) + } + } + + function pa(a, b, c) { + pa = Function.prototype.bind && -1 != Function.prototype.bind.toString().indexOf("native code") + ? na : oa; + return pa.apply(null, arguments) + } + + function qa(a, b) { + function c() { + } + + c.prototype = b.prototype; + a.Zd = b.prototype; + a.prototype = new c; + a.prototype.constructor = a; + a.base = function (a, c, f) { + for (var d = Array(arguments.length - 2), e = 2; e < arguments.length; e++) { + d[e + - 2] = arguments[e]; + } + return b.prototype[c].apply(a, d) + } + };var ra = String.prototype.trim ? function (a) { + return a.trim() + } : function (a) { + return a.replace(/^[\s\xa0]+|[\s\xa0]+$/g, "") + }, sa = String.prototype.repeat ? function (a, b) { + return a.repeat(b) + } : function (a, b) { + return Array(b + 1).join(a) + }; + + function ta(a, b) { + return a < b ? -1 : a > b ? 1 : 0 + };var ua = Array.prototype.indexOf ? function (a, b, c) { + return Array.prototype.indexOf.call(a, b, c) + } : function (a, b, c) { + c = null == c ? 0 : 0 > c ? Math.max(0, a.length + c) : c; + if (ca(a)) { + return ca(b) && 1 == b.length ? a.indexOf(b, c) : -1; + } + for (; c < a.length; c++) { + if (c in a && a[c] === b) { + return c; + } + } + return -1 + }, va = Array.prototype.forEach ? function (a, b, c) { + Array.prototype.forEach.call(a, b, c) + } : function (a, b, c) { + for (var d = a.length, e = ca(a) ? a.split("") : a, f = 0; f < d; f++) { + f in e && b.call(c, e[f], + f, a) + } + }; + + function wa(a) { + a:{ + var b = xa; + for (var c = a.length, d = ca(a) ? a.split("") : a, e = 0; e < c; e++) { + if (e in d && b.call( + void 0, d[e], e, a)) { + b = e; + break a + } + } + b = -1 + } + return 0 > b ? null : ca(a) ? a.charAt(b) : a[b] + } + + function ya(a, b) { + var c = ua(a, b), d; + (d = 0 <= c) && Array.prototype.splice.call(a, c, 1); + return d + } + + function za(a, b) { + a.sort(b || Aa) + } + + function Ca(a, b) { + for (var c = Array(a.length), d = 0; d < a.length; d++) { + c[d] = {index: d, value: a[d]}; + } + var e = b || Aa; + za(c, function (a, b) { + return e(a.value, b.value) || a.index - b.index + }); + for (d = 0; d < a.length; d++) { + a[d] = c[d].value + } + } + + function Aa(a, b) { + return a > b ? 1 : a < b ? -1 : 0 + }; + + function Da(a) { + var b = [], c = 0, d; + for (d in a) { + b[c++] = a[d]; + } + return b + } + + function Ea(a) { + var b = [], c = 0, d; + for (d in a) { + b[c++] = d; + } + return b + } + + var Fa = "constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split( + " "); + + function Ia(a, b) { + for (var c, d, e = 1; e < arguments.length; e++) { + d = arguments[e]; + for (c in d) { + a[c] = d[c]; + } + for (var f = 0; f < Fa.length; f++) { + c = Fa[f], Object.prototype.hasOwnProperty.call(d, c) + && (a[c] = d[c]) + } + } + }; + + function Ka(a) { + if (a.Yc && "function" == typeof a.Yc) { + return a.Yc(); + } + if (ca(a)) { + return a.split(""); + } + if (fa(a)) { + for (var b = [], c = a.length, d = 0; d < c; d++) { + b.push(a[d]); + } + return b + } + return Da(a) + } + + function La(a, b) { + if (a.forEach && "function" == typeof a.forEach) { + a.forEach(b, void 0); + } else if (fa(a) || ca( + a)) { + va(a, b, void 0); + } else { + if (a.Xc && "function" == typeof a.Xc) { + var c = a.Xc(); + } else if (a.Yc && "function" + == typeof a.Yc) { + c = void 0; + } else if (fa(a) || ca(a)) { + c = []; + for (var d = a.length, e = 0; e < d; e++) { + c.push(e) + } + } else { + c = Ea(a); + } + d = Ka(a); + e = d.length; + for (var f = 0; f < e; f++) { + b.call(void 0, d[f], c && c[f], a) + } + } + }; + + function Ma(a, b) { + this.ic = {}; + this.ib = []; + this.Fc = 0; + var c = arguments.length; + if (1 < c) { + if (c % 2) { + throw Error("Uneven number of arguments"); + } + for (var d = 0; d < c; d += 2) { + this.set(arguments[d], arguments[d + 1]) + } + } else { + a && this.addAll(a) + } + } + + g = Ma.prototype; + g.Yc = function () { + Na(this); + for (var a = [], b = 0; b < this.ib.length; b++) { + a.push(this.ic[this.ib[b]]); + } + return a + }; + g.Xc = function () { + Na(this); + return this.ib.concat() + }; + g.Td = function () { + return 0 == this.Fc + }; + g.clear = function () { + this.ic = {}; + this.Fc = this.ib.length = 0 + }; + g.remove = function (a) { + return Object.prototype.hasOwnProperty.call(this.ic, a) + ? (delete this.ic[a], this.Fc--, this.ib.length > 2 * this.Fc && Na(this), !0) : !1 + }; + + function Na(a) { + if (a.Fc != a.ib.length) { + for (var b = 0, c = 0; b < a.ib.length;) { + var d = a.ib[b]; + Object.prototype.hasOwnProperty.call(a.ic, d) && (a.ib[c++] = d); + b++ + } + a.ib.length = c + } + if (a.Fc != a.ib.length) { + var e = {}; + for (c = b = 0; b < a.ib.length;) { + d = a.ib[b], Object.prototype.hasOwnProperty.call(e, d) + || (a.ib[c++] = d, e[d] = 1), b++; + } + a.ib.length = c + } + } + + g.get = function (a, b) { + return Object.prototype.hasOwnProperty.call(this.ic, a) ? this.ic[a] : b + }; + g.set = function (a, b) { + Object.prototype.hasOwnProperty.call(this.ic, a) || (this.Fc++, this.ib.push(a)); + this.ic[a] = b + }; + g.addAll = function (a) { + if (a instanceof Ma) { + var b = a.Xc(); + a = a.Yc() + } else { + b = Ea(a), a = Da(a); + } + for (var c = 0; c < b.length; c++) { + this.set(b[c], a[c]) + } + }; + g.forEach = function (a, b) { + for (var c = this.Xc(), d = 0; d < c.length; d++) { + var e = c[d], f = this.get(e); + a.call(b, f, e, this) + } + }; + g.clone = function () { + return new Ma(this) + }; + var Pa = /^(?:([^:/?#.]+):)?(?:\/\/(?:([^/?#]*)@)?([^/#?]*?)(?::([0-9]+))?(?=[/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#([\s\S]*))?$/; + + function Qa(a, b) { + this.Ma = []; + this.Lc = b; + for (var c = !0, d = a.length - 1; 0 <= d; d--) { + var e = a[d] | 0; + c && e == b || (this.Ma[d] = e, c = !1) + } + } + + var Ra = {}; + + function Sa(a) { + if (-128 <= a && 128 > a) { + var b = Ra[a]; + if (b) { + return b + } + } + b = new Qa([a | 0], 0 > a ? -1 : 0); + -128 <= a && 128 > a && (Ra[a] = b); + return b + } + + function Ta(a) { + if (isNaN(a) || !isFinite(a)) { + return Ua; + } + if (0 > a) { + return Ta(-a).kb(); + } + for (var b = [], c = 1, d = 0; a >= c; d++) { + b[d] = a / c | 0, c *= Va; + } + return new Qa(b, 0) + } + + var Va = 4294967296, Ua = Sa(0), Wa = Sa(1), Xa = Sa(16777216); + g = Qa.prototype; + g.Of = function () { + return 0 < this.Ma.length ? this.Ma[0] : this.Lc + }; + g.vd = function () { + if (this.Eb()) { + return -this.kb().vd(); + } + for (var a = 0, b = 1, c = 0; c < this.Ma.length; c++) { + var d = Ya(this, c); + a += (0 <= d ? d : Va + d) * b; + b *= Va + } + return a + }; + g.toString = function (a) { + a = a || 10; + if (2 > a || 36 < a) { + throw Error("radix out of range: " + a); + } + if (this.hc()) { + return "0"; + } + if (this.Eb()) { + return "-" + this.kb().toString(a); + } + for (var b = Ta(Math.pow(a, 6)), c = this, d = ""; ;) { + var e = Za(c, b), f = (c.ze(e.multiply(b)).Of() >>> 0).toString(a); + c = e; + if (c.hc()) { + return f + d; + } + for (; 6 > f.length;) { + f = "0" + f; + } + d = "" + f + d + } + }; + + function Ya(a, b) { + return 0 > b ? 0 : b < a.Ma.length ? a.Ma[b] : a.Lc + } + + g.hc = function () { + if (0 != this.Lc) { + return !1; + } + for (var a = 0; a < this.Ma.length; a++) { + if (0 != this.Ma[a]) { + return !1; + } + } + return !0 + }; + g.Eb = function () { + return -1 == this.Lc + }; + g.xf = function (a) { + return 0 < this.compare(a) + }; + g.yf = function (a) { + return 0 <= this.compare(a) + }; + g.Ue = function () { + return 0 > this.compare(Xa) + }; + g.Ve = function (a) { + return 0 >= this.compare(a) + }; + g.compare = function (a) { + a = this.ze(a); + return a.Eb() ? -1 : a.hc() ? 0 : 1 + }; + g.kb = function () { + return this.Hf().add(Wa) + }; + g.add = function (a) { + for (var b = Math.max(this.Ma.length, a.Ma.length), c = [], d = 0, e = 0; e <= b; e++) { + var f = d + (Ya(this, e) & 65535) + (Ya(a, e) & 65535), + h = (f >>> 16) + (Ya(this, e) >>> 16) + (Ya(a, e) >>> 16); + d = h >>> 16; + f &= 65535; + h &= 65535; + c[e] = h << 16 | f + } + return new Qa(c, c[c.length - 1] & -2147483648 ? -1 : 0) + }; + g.ze = function (a) { + return this.add(a.kb()) + }; + g.multiply = function (a) { + if (this.hc() || a.hc()) { + return Ua; + } + if (this.Eb()) { + return a.Eb() ? this.kb().multiply(a.kb()) : this.kb().multiply(a).kb(); + } + if (a.Eb()) { + return this.multiply(a.kb()).kb(); + } + if (this.Ue() && a.Ue()) { + return Ta(this.vd() * a.vd()); + } + for (var b = this.Ma.length + a.Ma.length, c = [], d = 0; d < 2 * b; d++) { + c[d] = 0; + } + for (d = 0; d < this.Ma.length; d++) { + for (var e = 0; e < a.Ma.length; e++) { + var f = Ya(this, d) >>> 16, h = Ya(this, d) & 65535, k = Ya(a, e) >>> 16, + l = Ya(a, e) & 65535; + c[2 * d + 2 * e] += h * l; + ab(c, 2 * d + 2 * e); + c[2 * d + 2 * e + 1] += f * l; + ab(c, 2 * d + 2 * e + 1); + c[2 * d + 2 * e + 1] += + h * k; + ab(c, 2 * d + 2 * e + 1); + c[2 * d + 2 * e + 2] += f * k; + ab(c, 2 * d + 2 * e + 2) + } + } + for (d = 0; d < b; d++) { + c[d] = c[2 * d + 1] << 16 | c[2 * d]; + } + for (d = b; d < 2 * b; d++) { + c[d] = 0; + } + return new Qa(c, 0) + }; + + function ab(a, b) { + for (; (a[b] & 65535) != a[b];) { + a[b + 1] += a[b] >>> 16, a[b] &= 65535, b++ + } + } + + function Za(a, b) { + if (b.hc()) { + throw Error("division by zero"); + } + if (a.hc()) { + return Ua; + } + if (a.Eb()) { + return b.Eb() ? Za(a.kb(), b.kb()) : Za(a.kb(), b).kb(); + } + if (b.Eb()) { + return Za(a, b.kb()).kb(); + } + if (30 < a.Ma.length) { + if (a.Eb() || b.Eb()) { + throw Error("slowDivide_ only works with positive integers."); + } + for (var c = Wa, d = b; d.Ve(a);) { + c = c.shiftLeft(1), d = d.shiftLeft(1); + } + var e = c.ad(1), f = d.ad(1); + d = d.ad(2); + for (c = c.ad(2); !d.hc();) { + var h = f.add(d); + h.Ve(a) && (e = e.add(c), f = h); + d = d.ad(1); + c = c.ad(1) + } + return e + } + c = Ua; + for (d = a; d.yf(b);) { + e = Math.max(1, Math.floor(d.vd() / + b.vd())); + f = Math.ceil(Math.log(e) / Math.LN2); + f = 48 >= f ? 1 : Math.pow(2, f - 48); + h = Ta(e); + for (var k = h.multiply(b); k.Eb() || k.xf(d);) { + e -= f, h = Ta(e), k = h.multiply(b); + } + h.hc() && (h = Wa); + c = c.add(h); + d = d.ze(k) + } + return c + } + + g.Hf = function () { + for (var a = this.Ma.length, b = [], c = 0; c < a; c++) { + b[c] = ~this.Ma[c]; + } + return new Qa(b, ~this.Lc) + }; + g.shiftLeft = function (a) { + var b = a >> 5; + a %= 32; + for (var c = this.Ma.length + b + (0 < a ? 1 : 0), d = [], e = 0; e < c; e++) { + d[e] = 0 < a ? Ya( + this, e - b) << a | Ya(this, e - b - 1) >>> 32 - a : Ya(this, e - b); + } + return new Qa(d, this.Lc) + }; + g.ad = function (a) { + var b = a >> 5; + a %= 32; + for (var c = this.Ma.length - b, d = [], e = 0; e < c; e++) { + d[e] = 0 < a ? Ya(this, e + b) >>> a + | Ya(this, e + b + 1) << 32 - a : Ya(this, e + b); + } + return new Qa(d, this.Lc) + }; + + function cb(a, b) { + null != a && this.append.apply(this, arguments) + } + + g = cb.prototype; + g.xc = ""; + g.set = function (a) { + this.xc = "" + a + }; + g.append = function (a, b, c) { + this.xc += String(a); + if (null != b) { + for (var d = 1; d < arguments.length; d++) { + this.xc += arguments[d]; + } + } + return this + }; + g.clear = function () { + this.xc = "" + }; + g.toString = function () { + return this.xc + }; + + function eb(a) { + eb[" "](a); + return a + } + + eb[" "] = ea; + + function fb(a, b) { + var c = gb; + return Object.prototype.hasOwnProperty.call(c, a) ? c[a] : c[a] = b(a) + };var hb; + if ("undefined" === typeof q) { + var q = {}; + } + if ("undefined" === typeof ib) { + var ib = null; + } + if ("undefined" === typeof kb) { + var kb = null; + } + var lb = null; + if ("undefined" === typeof mb) { + var mb = null; + } + + function ob() { + return new r(null, 5, [pb, !0, qb, !0, rb, !1, sb, !1, tb, null], null) + } + + function t(a) { + return null != a && !1 !== a + } + + function ub(a) { + return null == a + } + + function vb(a) { + return a instanceof Array + } + + function wb(a) { + return null == a ? !0 : !1 === a ? !0 : !1 + } + + function yb(a) { + return ca(a) + } + + function Ab(a, b) { + return a[n(null == b ? null : b)] ? !0 : a._ ? !0 : !1 + } + + function Bb(a) { + return null == a ? null : a.constructor + } + + function Cb(a, b) { + var c = Bb(b); + c = t(t(c) ? c.qc : c) ? c.Tb : n(b); + return Error(["No protocol method ", a, " defined for type ", c, ": ", b].join("")) + } + + function Db(a) { + var b = a.Tb; + return t(b) ? b : "" + v.h(a) + } + + var Fb = "undefined" !== typeof Symbol && "function" === n(Symbol) ? Symbol.iterator + : "@@iterator"; + + function Gb(a) { + for (var b = a.length, c = Array(b), d = 0; ;) { + if (d < b) { + c[d] = a[d], d += 1; + } else { + break; + } + } + return c + } + + var Hb = function Hb(a) { + switch (arguments.length) { + case 2: + return Hb.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Hb.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + Hb.c = function (a, b) { + return a[b] + }; + Hb.A = function (a, b, c) { + return Kb(Hb, a[b], c) + }; + Hb.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return Hb.A(b, a, c) + }; + Hb.L = 2; + + function Lb(a) { + return Mb(function (a, c) { + a.push(c); + return a + }, [], a) + } + + function Nb() { + } + + function Ob() { + } + + function Pb() { + } + + var Qb = function Qb(a) { + if (null != a && null != a.W) { + return a.W(a); + } + var c = Qb[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Qb._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("ICounted.-count", a); + }, Rb = function Rb(a) { + if (null != a && null != a.oa) { + return a.oa(a); + } + var c = Rb[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Rb._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IEmptyableCollection.-empty", a); + }; + + function Sb() { + } + + var Tb = function Tb(a, b) { + if (null != a && null != a.X) { + return a.X(a, b); + } + var d = Tb[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Tb._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("ICollection.-conj", a); + }; + + function Ub() { + } + + var A = function A(a) { + switch (arguments.length) { + case 2: + return A.c(arguments[0], arguments[1]); + case 3: + return A.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + A.c = function (a, b) { + if (null != a && null != a.$) { + return a.$(a, b); + } + var c = A[n(null == a ? null : a)]; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + c = A._; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + throw Cb("IIndexed.-nth", a); + }; + A.l = function (a, b, c) { + if (null != a && null != a.ka) { + return a.ka(a, b, c); + } + var d = A[n(null == a ? null : a)]; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + d = A._; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + throw Cb("IIndexed.-nth", a); + }; + A.L = 3; + + function Vb() { + } + + var Wb = function Wb(a) { + if (null != a && null != a.Ia) { + return a.Ia(a); + } + var c = Wb[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Wb._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("ISeq.-first", a); + }, Yb = function Yb(a) { + if (null != a && null != a.bb) { + return a.bb(a); + } + var c = Yb[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Yb._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("ISeq.-rest", a); + }; + + function Zb() { + } + + function $b() { + } + + var cc = function cc(a) { + switch (arguments.length) { + case 2: + return cc.c(arguments[0], arguments[1]); + case 3: + return cc.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + cc.c = function (a, b) { + if (null != a && null != a.V) { + return a.V(a, b); + } + var c = cc[n(null == a ? null : a)]; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + c = cc._; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + throw Cb("ILookup.-lookup", a); + }; + cc.l = function (a, b, c) { + if (null != a && null != a.I) { + return a.I(a, b, c); + } + var d = cc[n(null == a ? null : a)]; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + d = cc._; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + throw Cb("ILookup.-lookup", a); + }; + cc.L = 3; + var dc = function dc(a, b) { + if (null != a && null != a.yc) { + return a.yc(a, b); + } + var d = dc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = dc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IAssociative.-contains-key?", a); + }, ec = function ec(a, b, c) { + if (null != a && null != a.O) { + return a.O(a, b, c); + } + var e = ec[n(null == a ? null : a)]; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = ec._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("IAssociative.-assoc", a); + }; + + function fc() { + } + + var gc = function gc(a, b) { + if (null != a && null != a.ga) { + return a.ga(a, b); + } + var d = gc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = gc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IMap.-dissoc", a); + }; + + function hc() { + } + + var jc = function jc(a) { + if (null != a && null != a.fd) { + return a.fd(a); + } + var c = jc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = jc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IMapEntry.-key", a); + }, kc = function kc(a) { + if (null != a && null != a.gd) { + return a.gd(a); + } + var c = kc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = kc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IMapEntry.-val", a); + }; + + function lc() { + } + + var mc = function mc(a, b) { + if (null != a && null != a.ie) { + return a.ie(a, b); + } + var d = mc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = mc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("ISet.-disjoin", a); + }, nc = function nc(a) { + if (null != a && null != a.Ac) { + return a.Ac(a); + } + var c = nc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = nc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IStack.-peek", a); + }, oc = function oc(a) { + if (null != a && null != a.Bc) { + return a.Bc(a); + } + var c = oc[n(null == + a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = oc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IStack.-pop", a); + }; + + function pc() { + } + + var qc = function qc(a, b, c) { + if (null != a && null != a.dc) { + return a.dc(a, b, c); + } + var e = qc[n(null == a ? null : a)]; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = qc._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("IVector.-assoc-n", a); + }, B = function B(a) { + if (null != a && null != a.pc) { + return a.pc(a); + } + var c = B[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = B._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IDeref.-deref", a); + }; + + function rc() { + } + + var sc = function sc(a) { + if (null != a && null != a.P) { + return a.P(a); + } + var c = sc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = sc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IMeta.-meta", a); + }, tc = function tc(a, b) { + if (null != a && null != a.T) { + return a.T(a, b); + } + var d = tc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = tc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IWithMeta.-with-meta", a); + }; + + function uc() { + } + + var vc = function vc(a) { + switch (arguments.length) { + case 2: + return vc.c(arguments[0], arguments[1]); + case 3: + return vc.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + vc.c = function (a, b) { + if (null != a && null != a.Fa) { + return a.Fa(a, b); + } + var c = vc[n(null == a ? null : a)]; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + c = vc._; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + throw Cb("IReduce.-reduce", a); + }; + vc.l = function (a, b, c) { + if (null != a && null != a.Ga) { + return a.Ga(a, b, c); + } + var d = vc[n(null == a ? null : a)]; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + d = vc._; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + throw Cb("IReduce.-reduce", a); + }; + vc.L = 3; + + function wc() { + } + + var yc = function yc(a, b, c) { + if (null != a && null != a.Qc) { + return a.Qc(a, b, c); + } + var e = yc[n(null == a ? null : a)]; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = yc._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("IKVReduce.-kv-reduce", a); + }, zc = function zc(a, b) { + if (null != a && null != a.K) { + return a.K(a, b); + } + var d = zc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = zc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IEquiv.-equiv", a); + }, Ac = function Ac(a) { + if (null != a && null != a.U) { + return a.U(a); + } + var c = Ac[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Ac._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IHash.-hash", a); + }; + + function Bc() { + } + + var Cc = function Cc(a) { + if (null != a && null != a.S) { + return a.S(a); + } + var c = Cc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Cc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("ISeqable.-seq", a); + }; + + function Ec() { + } + + function Fc() { + } + + function Gc() { + } + + function Hc() { + } + + var Ic = function Ic(a) { + if (null != a && null != a.Rc) { + return a.Rc(a); + } + var c = Ic[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Ic._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IReversible.-rseq", a); + }, Jc = function Jc(a, b) { + if (null != a && null != a.Re) { + return a.Re(0, b); + } + var d = Jc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Jc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IWriter.-write", a); + }; + + function Kc() { + } + + var Lc = function Lc(a, b, c) { + if (null != a && null != a.Kd) { + return a.Kd(a, b, c); + } + var e = Lc[n(null == a ? null : a)]; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = Lc._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("IWatchable.-notify-watches", a); + }, Mc = function Mc(a, b, c) { + if (null != a && null != a.Jd) { + return a.Jd(a, b, c); + } + var e = Mc[n(null == a ? null : a)]; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = Mc._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("IWatchable.-add-watch", a); + }, Nc = function Nc(a, + b) { + if (null != a && null != a.Ld) { + return a.Ld(a, b); + } + var d = Nc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Nc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IWatchable.-remove-watch", a); + }, Oc = function Oc(a) { + if (null != a && null != a.Pc) { + return a.Pc(a); + } + var c = Oc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Oc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IEditableCollection.-as-transient", a); + }, Pc = function Pc(a, b) { + if (null != a && null != a.Dc) { + return a.Dc(a, + b); + } + var d = Pc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Pc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("ITransientCollection.-conj!", a); + }, Qc = function Qc(a) { + if (null != a && null != a.kd) { + return a.kd(a); + } + var c = Qc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Qc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("ITransientCollection.-persistent!", a); + }, Rc = function Rc(a, b, c) { + if (null != a && null != a.Cc) { + return a.Cc(a, b, c); + } + var e = Rc[n(null == a ? null : a)]; + if (null != + e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = Rc._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("ITransientAssociative.-assoc!", a); + }; + + function Tc() { + } + + var Uc = function Uc(a, b) { + if (null != a && null != a.cc) { + return a.cc(a, b); + } + var d = Uc[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Uc._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IComparable.-compare", a); + }, Vc = function Vc(a) { + if (null != a && null != a.Le) { + return a.Le(); + } + var c = Vc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Vc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IChunk.-drop-first", a); + }, Wc = function Wc(a) { + if (null != a && null != a.ge) { + return a.ge(a); + } + var c = Wc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Wc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IChunkedSeq.-chunked-first", a); + }, Xc = function Xc(a) { + if (null != a && null != a.Hd) { + return a.Hd(a); + } + var c = Xc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Xc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IChunkedSeq.-chunked-rest", a); + }, Yc = function Yc(a) { + if (null != a && null != a.hd) { + return a.hd(a); + } + var c = Yc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, + a); + } + c = Yc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("INamed.-name", a); + }, Zc = function Zc(a) { + if (null != a && null != a.jd) { + return a.jd(a); + } + var c = Zc[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Zc._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("INamed.-namespace", a); + }, $c = function $c(a, b) { + if (null != a && null != a.Gb) { + return a.Gb(a, b); + } + var d = $c[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = $c._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IReset.-reset!", + a); + }, ad = function ad(a) { + switch (arguments.length) { + case 2: + return ad.c(arguments[0], arguments[1]); + case 3: + return ad.l(arguments[0], arguments[1], arguments[2]); + case 4: + return ad.M(arguments[0], arguments[1], arguments[2], arguments[3]); + case 5: + return ad.Z(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + ad.c = function (a, b) { + if (null != a && null != a.je) { + return a.je(a, b); + } + var c = ad[n(null == a ? null : a)]; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + c = ad._; + if (null != c) { + return c.c ? c.c(a, b) : c.call(null, a, b); + } + throw Cb("ISwap.-swap!", a); + }; + ad.l = function (a, b, c) { + if (null != a && null != a.ke) { + return a.ke(a, b, c); + } + var d = ad[n(null == a ? null : a)]; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + d = ad._; + if (null != d) { + return d.l ? d.l(a, b, c) : d.call(null, a, b, c); + } + throw Cb("ISwap.-swap!", a); + }; + ad.M = function (a, b, c, d) { + if (null != a && null != a.le) { + return a.le(a, b, c, d); + } + var e = ad[n(null == a ? null : a)]; + if (null != e) { + return e.M ? e.M(a, b, c, d) : e.call(null, a, b, c, d); + } + e = ad._; + if (null != e) { + return e.M ? e.M(a, b, c, d) : e.call(null, a, b, c, d); + } + throw Cb("ISwap.-swap!", a); + }; + ad.Z = function (a, b, c, d, e) { + if (null != a && null != a.me) { + return a.me(a, b, c, d, e); + } + var f = ad[n(null == a ? null : a)]; + if (null != f) { + return f.Z ? f.Z(a, b, c, d, e) : f.call(null, a, b, c, d, e); + } + f = ad._; + if (null != f) { + return f.Z ? f.Z(a, b, c, d, e) : f.call(null, a, b, c, d, e); + } + throw Cb("ISwap.-swap!", a); + }; + ad.L = 5; + var bd = function bd(a, b) { + if (null != a && null != a.Qe) { + return a.Qe(0, b); + } + var d = bd[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = bd._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IVolatile.-vreset!", a); + }; + + function cd() { + } + + var dd = function dd(a) { + if (null != a && null != a.ba) { + return a.ba(a); + } + var c = dd[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = dd._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IIterable.-iterator", a); + }; + + function ed(a) { + this.Nf = a; + this.m = 1073741824; + this.J = 0 + } + + ed.prototype.Re = function (a, b) { + return this.Nf.append(b) + }; + + function fd(a) { + var b = new cb; + a.R(null, new ed(b), ob()); + return "" + v.h(b) + } + + var gd = "undefined" !== typeof Math.imul && 0 !== Math.imul(4294967295, 5) ? function (a, b) { + return Math.imul(a, b) + } : function (a, b) { + var c = a & 65535, d = b & 65535; + return c * d + ((a >>> 16 & 65535) * d + c * (b >>> 16 & 65535) << 16 >>> 0) | 0 + }; + + function hd(a) { + a = gd(a | 0, -862048943); + return gd(a << 15 | a >>> -15, 461845907) + } + + function id(a, b) { + var c = (a | 0) ^ (b | 0); + return gd(c << 13 | c >>> -13, 5) + -430675100 | 0 + } + + function jd(a, b) { + var c = (a | 0) ^ b; + c = gd(c ^ c >>> 16, -2048144789); + c = gd(c ^ c >>> 13, -1028477387); + return c ^ c >>> 16 + } + + function kd(a) { + a:{ + var b = 1; + for (var c = 0; ;) { + if (b < a.length) { + var d = b + 2; + c = id(c, hd(a.charCodeAt(b - 1) | a.charCodeAt(b) << 16)); + b = d + } else { + b = c; + break a + } + } + } + b = 1 === (a.length & 1) ? b ^ hd(a.charCodeAt(a.length - 1)) : b; + return jd(b, gd(2, a.length)) + } + + var ld = {}, md = 0; + + function nd(a) { + 255 < md && (ld = {}, md = 0); + if (null == a) { + return 0; + } + var b = ld[a]; + if ("number" !== typeof b) { + a:if (null != a) { + if (b = a.length, 0 < b) { + for (var c = 0, d = 0; ;) { + if (c < b) { + var e = c + 1; + d = gd(31, d) + a.charCodeAt(c); + c = e + } else { + b = d; + break a + } + } + } else { + b = 0; + } + } else { + b = 0; + } + ld[a] = b; + md += 1 + } + return a = b + } + + function od(a) { + if (null != a && (a.m & 4194304 || q === a.Sf)) { + return a.U(null) ^ 0; + } + if ("number" === typeof a) { + if (t(isFinite(a))) { + return Math.floor(a) % 2147483647; + } + switch (a) { + case Infinity: + return 2146435072; + case -Infinity: + return -1048576; + default: + return 2146959360 + } + } else { + return !0 === a ? a = 1231 : !1 === a ? a = 1237 : "string" === typeof a ? (a = nd(a), 0 + !== a && (a = hd(a), a = id(0, a), a = jd(a, 4))) : a = a instanceof Date ? a.valueOf() ^ 0 + : null == a ? 0 : Ac(a) ^ 0, a + } + } + + function pd(a, b) { + return a ^ b + 2654435769 + (a << 6) + (a >> 2) + } + + function qd(a) { + return a instanceof rd + } + + function sd(a, b) { + if (a.Zb === b.Zb) { + return 0; + } + var c = wb(a.fb); + if (t(c ? b.fb : c)) { + return -1; + } + if (t(a.fb)) { + if (wb(b.fb)) { + return 1; + } + c = Aa(a.fb, b.fb); + return 0 === c ? Aa(a.name, b.name) : c + } + return Aa(a.name, b.name) + } + + function rd(a, b, c, d, e) { + this.fb = a; + this.name = b; + this.Zb = c; + this.Oc = d; + this.hb = e; + this.m = 2154168321; + this.J = 4096 + } + + g = rd.prototype; + g.toString = function () { + return this.Zb + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.K = function (a, b) { + return b instanceof rd ? this.Zb === b.Zb : !1 + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return D.c(c, this); + case 3: + return D.l(c, this, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return D.c(c, this) + }; + a.l = function (a, c, d) { + return D.l(c, this, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return D.c(a, this) + }; + g.c = function (a, b) { + return D.l(a, this, b) + }; + g.P = function () { + return this.hb + }; + g.T = function (a, b) { + return new rd(this.fb, this.name, this.Zb, this.Oc, b) + }; + g.U = function () { + var a = this.Oc; + return null != a ? a : this.Oc = a = pd(kd(this.name), nd(this.fb)) + }; + g.hd = function () { + return this.name + }; + g.jd = function () { + return this.fb + }; + g.R = function (a, b) { + return Jc(b, this.Zb) + }; + var td = function td(a) { + switch (arguments.length) { + case 1: + return td.h(arguments[0]); + case 2: + return td.c(arguments[0], arguments[1]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + td.h = function (a) { + if (a instanceof rd) { + return a; + } + var b = a.indexOf("/"); + return 1 > b ? td.c(null, a) : td.c(a.substring(0, b), a.substring(b + 1, a.length)) + }; + td.c = function (a, b) { + var c = null != a ? [v.h(a), "/", v.h(b)].join("") : b; + return new rd(a, b, c, null, null) + }; + td.L = 2; + + function ud(a) { + return null != a ? a.J & 131072 || q === a.Tf ? !0 : a.J ? !1 : Ab(cd, a) : Ab(cd, a) + } + + function E(a) { + if (null == a) { + return null; + } + if (null != a && (a.m & 8388608 || q === a.Pe)) { + return a.S(null); + } + if (vb(a) || "string" === typeof a) { + return 0 === a.length ? null : new Jb(a, 0, null); + } + if (Ab(Bc, a)) { + return Cc(a); + } + throw Error([v.h(a), " is not ISeqable"].join("")); + } + + function y(a) { + if (null == a) { + return null; + } + if (null != a && (a.m & 64 || q === a.G)) { + return a.Ia(null); + } + a = E(a); + return null == a ? null : Wb(a) + } + + function vd(a) { + return null != a ? null != a && (a.m & 64 || q === a.G) ? a.bb(null) : (a = E(a)) ? Yb(a) : wd + : wd + } + + function z(a) { + return null == a ? null : null != a && (a.m & 128 || q === a.Id) ? a.Ka(null) : E(vd(a)) + } + + var G = function G(a) { + switch (arguments.length) { + case 1: + return G.h(arguments[0]); + case 2: + return G.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return G.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + G.h = function () { + return !0 + }; + G.c = function (a, b) { + return null == a ? null == b : a === b || zc(a, b) + }; + G.A = function (a, b, c) { + for (; ;) { + if (G.c(a, b)) { + if (z(c)) { + a = b, b = y(c), c = z(c); + } else { + return G.c(b, + y(c)); + } + } else { + return !1 + } + } + }; + G.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return G.A(b, a, c) + }; + G.L = 2; + + function xd(a) { + this.s = a + } + + xd.prototype.next = function () { + if (null != this.s) { + var a = y(this.s); + this.s = z(this.s); + return {value: a, done: !1} + } + return {value: null, done: !0} + }; + + function yd(a) { + return new xd(E(a)) + } + + function zd(a, b) { + var c = hd(a); + c = id(0, c); + return jd(c, b) + } + + function Ad(a) { + var b = 0, c = 1; + for (a = E(a); ;) { + if (null != a) { + b += 1, c = gd(31, c) + od(y(a)) | 0, a = z(a); + } else { + return zd( + c, b) + } + } + } + + var Cd = zd(1, 0); + + function Dd(a) { + var b = 0, c = 0; + for (a = E(a); ;) { + if (null != a) { + b += 1, c = c + od(y(a)) | 0, a = z(a); + } else { + return zd(c, b) + } + } + } + + var Ed = zd(0, 0); + Pb["null"] = !0; + Qb["null"] = function () { + return 0 + }; + Date.prototype.K = function (a, b) { + return b instanceof Date && this.valueOf() === b.valueOf() + }; + Date.prototype.zc = q; + Date.prototype.cc = function (a, b) { + if (b instanceof Date) { + return Aa(this.valueOf(), b.valueOf()); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + zc.number = function (a, b) { + return a === b + }; + Nb["function"] = !0; + rc["function"] = !0; + sc["function"] = function () { + return null + }; + Ac._ = function (a) { + return ja(a) + }; + + function Fd(a) { + return a + 1 + } + + function Gd(a) { + this.H = a; + this.m = 32768; + this.J = 0 + } + + Gd.prototype.pc = function () { + return this.H + }; + + function Hd(a) { + return a instanceof Gd + } + + function Id(a) { + return Hd(a) ? a : new Gd(a) + } + + function Jd(a) { + return Hd(a) ? B(a) : a + } + + function Kd(a, b) { + var c = Qb(a); + if (0 === c) { + return b.B ? b.B() : b.call(null); + } + for (var d = A.c(a, 0), e = 1; ;) { + if (e < c) { + var f = A.c(a, e); + d = b.c ? b.c(d, f) : b.call(null, d, f); + if (Hd(d)) { + return B(d); + } + e += 1 + } else { + return d + } + } + } + + function Ld(a, b, c) { + var d = Qb(a), e = c; + for (c = 0; ;) { + if (c < d) { + var f = A.c(a, c); + e = b.c ? b.c(e, f) : b.call(null, e, f); + if (Hd(e)) { + return B(e); + } + c += 1 + } else { + return e + } + } + } + + function Md(a, b) { + var c = a.length; + if (0 === a.length) { + return b.B ? b.B() : b.call(null); + } + for (var d = a[0], e = 1; ;) { + if (e < c) { + var f = a[e]; + d = b.c ? b.c(d, f) : b.call(null, d, f); + if (Hd(d)) { + return B(d); + } + e += 1 + } else { + return d + } + } + } + + function Nd(a, b, c) { + var d = a.length, e = c; + for (c = 0; ;) { + if (c < d) { + var f = a[c]; + e = b.c ? b.c(e, f) : b.call(null, e, f); + if (Hd(e)) { + return B(e); + } + c += 1 + } else { + return e + } + } + } + + function Od(a, b, c, d) { + for (var e = a.length; ;) { + if (d < e) { + var f = a[d]; + c = b.c ? b.c(c, f) : b.call(null, c, f); + if (Hd(c)) { + return B(c); + } + d += 1 + } else { + return c + } + } + } + + function Pd(a) { + return null != a ? a.m & 2 || q === a.jf ? !0 : a.m ? !1 : Ab(Pb, a) : Ab(Pb, a) + } + + function Qd(a) { + return null != a ? a.m & 16 || q === a.Ne ? !0 : a.m ? !1 : Ab(Ub, a) : Ab(Ub, a) + } + + function Ud(a, b, c) { + var d = H(a); + if (c >= d) { + return -1; + } + !(0 < c) && 0 > c && (c += d, c = 0 > c ? 0 : c); + for (; ;) { + if (c < d) { + if (G.c(Vd(a, c), b)) { + return c; + } + c += 1 + } else { + return -1 + } + } + } + + function Xd(a, b, c) { + var d = H(a); + if (0 === d) { + return -1; + } + 0 < c ? (--d, c = d < c ? d : c) : c = 0 > c ? d + c : c; + for (; ;) { + if (0 <= c) { + if (G.c(Vd(a, c), b)) { + return c; + } + --c + } else { + return -1 + } + } + } + + function Yd(a, b) { + this.o = a; + this.i = b + } + + Yd.prototype.ja = function () { + return this.i < this.o.length + }; + Yd.prototype.next = function () { + var a = this.o[this.i]; + this.i += 1; + return a + }; + + function Jb(a, b, c) { + this.o = a; + this.i = b; + this.meta = c; + this.m = 166592766; + this.J = 139264 + } + + g = Jb.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.$ = function (a, b) { + var c = b + this.i; + if (0 <= c && c < this.o.length) { + return this.o[c]; + } + throw Error("Index out of bounds"); + }; + g.ka = function (a, b, c) { + a = b + this.i; + return 0 <= a && a < this.o.length ? this.o[a] : c + }; + g.ba = function () { + return new Yd(this.o, this.i) + }; + g.P = function () { + return this.meta + }; + g.Ka = function () { + return this.i + 1 < this.o.length ? new Jb(this.o, this.i + 1, null) : null + }; + g.W = function () { + var a = this.o.length - this.i; + return 0 > a ? 0 : a + }; + g.Rc = function () { + var a = this.W(null); + return 0 < a ? new Zd(this, a - 1, null) : null + }; + g.U = function () { + return Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return wd + }; + g.Fa = function (a, b) { + return Od(this.o, b, this.o[this.i], this.i + 1) + }; + g.Ga = function (a, b, c) { + return Od(this.o, b, c, this.i) + }; + g.Ia = function () { + return this.o[this.i] + }; + g.bb = function () { + return this.i + 1 < this.o.length ? new Jb(this.o, this.i + 1, null) : wd + }; + g.S = function () { + return this.i < this.o.length ? this : null + }; + g.T = function (a, b) { + return new Jb(this.o, this.i, b) + }; + g.X = function (a, b) { + return ae(b, this) + }; + Jb.prototype[Fb] = function () { + return yd(this) + }; + + function be(a) { + return 0 < a.length ? new Jb(a, 0, null) : null + } + + function Zd(a, b, c) { + this.Gd = a; + this.i = b; + this.meta = c; + this.m = 32374990; + this.J = 8192 + } + + g = Zd.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + return 0 < this.i ? new Zd(this.Gd, this.i - 1, null) : null + }; + g.W = function () { + return this.i + 1 + }; + g.U = function () { + return Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return A.c(this.Gd, this.i) + }; + g.bb = function () { + return 0 < this.i ? new Zd(this.Gd, this.i - 1, null) : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new Zd(this.Gd, this.i, b) + }; + g.X = function (a, b) { + return ae(b, this) + }; + Zd.prototype[Fb] = function () { + return yd(this) + }; + + function ee(a) { + return y(z(a)) + } + + function fe(a) { + for (; ;) { + var b = z(a); + if (null != b) { + a = b; + } else { + return y(a) + } + } + } + + zc._ = function (a, b) { + return a === b + }; + var ge = function ge(a) { + switch (arguments.length) { + case 0: + return ge.B(); + case 1: + return ge.h(arguments[0]); + case 2: + return ge.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return ge.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + ge.B = function () { + return he + }; + ge.h = function (a) { + return a + }; + ge.c = function (a, b) { + return null != a ? Tb(a, b) : Tb(wd, b) + }; + ge.A = function (a, b, c) { + for (; ;) { + if (t(c)) { + a = ge.c(a, b), b = y(c), c = z(c); + } else { + return ge.c(a, b) + } + } + }; + ge.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return ge.A(b, a, c) + }; + ge.L = 2; + + function ie(a) { + return null == a ? null : Rb(a) + } + + function H(a) { + if (null != a) { + if (null != a && (a.m & 2 || q === a.jf)) { + a = a.W(null); + } else if (vb( + a)) { + a = a.length; + } else if ("string" === typeof a) { + a = a.length; + } else if (null != a && (a.m + & 8388608 || q === a.Pe)) { + a:{ + a = E(a); + for (var b = 0; ;) { + if (Pd(a)) { + a = b + Qb(a); + break a + } + a = z(a); + b += 1 + } + } + } else { + a = Qb(a); + } + } else { + a = 0; + } + return a + } + + function je(a, b, c) { + for (; ;) { + if (null == a) { + return c; + } + if (0 === b) { + return E(a) ? y(a) : c; + } + if (Qd(a)) { + return A.l(a, b, c); + } + if (E(a)) { + a = z(a), --b; + } else { + return c + } + } + } + + function Vd(a, b) { + if ("number" !== typeof b) { + throw Error("Index argument to nth must be a number"); + } + if (null == a) { + return a; + } + if (null != a && (a.m & 16 || q === a.Ne)) { + return a.$(null, b); + } + if (vb(a)) { + if (0 <= b && b < a.length) { + return a[b]; + } + throw Error("Index out of bounds"); + } + if ("string" === typeof a) { + if (0 <= b && b < a.length) { + return a.charAt(b); + } + throw Error("Index out of bounds"); + } + if (null != a && (a.m & 64 || q === a.G)) { + a:{ + var c = a; + for (var d = b; ;) { + if (null == c) { + throw Error("Index out of bounds"); + } + if (0 === d) { + if (E(c)) { + c = y(c); + break a + } + throw Error("Index out of bounds"); + } + if (Qd(c)) { + c = A.c(c, d); + break a + } + if (E(c)) { + c = z(c), --d; + } else { + throw Error("Index out of bounds"); + } + } + } + return c + } + if (Ab(Ub, a)) { + return A.c(a, b); + } + throw Error(["nth not supported on this type ", v.h(Db(Bb(a)))].join("")); + } + + function J(a, b, c) { + if ("number" !== typeof b) { + throw Error("Index argument to nth must be a number."); + } + if (null == a) { + return c; + } + if (null != a && (a.m & 16 || q === a.Ne)) { + return a.ka(null, b, c); + } + if (vb(a)) { + return 0 <= b && b < a.length ? a[b] : c; + } + if ("string" === typeof a) { + return 0 <= b && b < a.length ? a.charAt(b) : c; + } + if (null != a && (a.m & 64 || q === a.G)) { + return je(a, b, c); + } + if (Ab(Ub, a)) { + return A.l(a, b, c); + } + throw Error(["nth not supported on this type ", v.h(Db(Bb(a)))].join("")); + } + + var D = function D(a) { + switch (arguments.length) { + case 2: + return D.c(arguments[0], arguments[1]); + case 3: + return D.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + D.c = function (a, b) { + return null == a ? null : null != a && (a.m & 256 || q === a.rf) ? a.V(null, b) : vb(a) ? null + != b && b < a.length ? a[b | 0] : null : "string" === typeof a ? null != b && b < a.length + ? a.charAt(b | 0) : null : Ab($b, a) ? cc.c(a, b) : null + }; + D.l = function (a, b, c) { + return null != a ? null != a && (a.m & 256 || q === a.rf) ? a.I(null, b, c) : vb(a) ? null != b + && 0 <= b && b < a.length ? a[b | 0] : c : "string" === typeof a ? null != b && 0 <= b && b + < a.length ? a.charAt(b | 0) : c : Ab($b, a) ? cc.l(a, b, c) : c : c + }; + D.L = 3; + var K = function K(a) { + switch (arguments.length) { + case 3: + return K.l(arguments[0], arguments[1], arguments[2]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return K.A(arguments[0], arguments[1], arguments[2], new Jb(c.slice(3), 0, null)) + } + }; + K.l = function (a, b, c) { + return null != a ? ec(a, b, c) : ke([b, c]) + }; + K.A = function (a, b, c, d) { + for (; ;) { + if (a = K.l(a, b, c), t(d)) { + b = y(d), c = ee(d), d = z(z(d)); + } else { + return a + } + } + }; + K.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + d = z(d); + return K.A(b, a, c, d) + }; + K.L = 3; + var le = function le(a) { + switch (arguments.length) { + case 1: + return le.h(arguments[0]); + case 2: + return le.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return le.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + le.h = function (a) { + return a + }; + le.c = function (a, b) { + return null == a ? null : gc(a, b) + }; + le.A = function (a, b, c) { + for (; ;) { + if (null == a) { + return null; + } + a = le.c(a, b); + if (t(c)) { + b = y(c), c = z(c); + } else { + return a + } + } + }; + le.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return le.A(b, a, c) + }; + le.L = 2; + + function me(a) { + var b = ha(a); + return b ? b : null != a ? q === a.hf ? !0 : a.Tc ? !1 : Ab(Nb, a) : Ab(Nb, a) + } + + function ne(a, b) { + this.C = a; + this.meta = b; + this.m = 393217; + this.J = 0 + } + + g = ne.prototype; + g.P = function () { + return this.meta + }; + g.T = function (a, b) { + return new ne(this.C, b) + }; + g.hf = q; + g.call = function () { + function a(a, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X, Q, Ga) { + return oe(this.C, b, c, d, e, be([f, h, k, m, l, p, u, w, x, C, F, I, M, S, X, Q, Ga])) + } + + function b(a, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X, Q) { + a = this; + return a.C.Xa ? a.C.Xa(b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X, Q) : a.C.call( + null, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X, Q) + } + + function c(a, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X) { + a = this; + return a.C.Wa ? a.C.Wa(b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X) : a.C.call( + null, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S, X) + } + + function d(a, + b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S) { + a = this; + return a.C.Va ? a.C.Va(b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S) : a.C.call(null, + b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M, S) + } + + function e(a, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M) { + a = this; + return a.C.Ua ? a.C.Ua(b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M) : a.C.call(null, b, + c, d, e, f, h, k, m, l, p, u, w, x, C, F, I, M) + } + + function f(a, b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I) { + a = this; + return a.C.Ta ? a.C.Ta(b, c, d, e, f, h, k, m, l, p, u, w, x, C, F, I) : a.C.call(null, b, c, + d, e, f, h, k, m, l, p, u, w, x, C, F, I) + } + + function h(a, b, c, d, e, f, h, k, m, l, p, u, + w, x, C, F) { + a = this; + return a.C.Sa ? a.C.Sa(b, c, d, e, f, h, k, m, l, p, u, w, x, C, F) : a.C.call(null, b, c, d, + e, f, h, k, m, l, p, u, w, x, C, F) + } + + function k(a, b, c, d, e, f, h, k, m, l, p, u, w, x, C) { + a = this; + return a.C.Ra ? a.C.Ra(b, c, d, e, f, h, k, m, l, p, u, w, x, C) : a.C.call(null, b, c, d, e, + f, h, k, m, l, p, u, w, x, C) + } + + function l(a, b, c, d, e, f, h, k, m, l, p, u, w, x) { + a = this; + return a.C.Qa ? a.C.Qa(b, c, d, e, f, h, k, m, l, p, u, w, x) : a.C.call(null, b, c, d, e, f, + h, k, m, l, p, u, w, x) + } + + function p(a, b, c, d, e, f, h, k, m, l, p, u, w) { + a = this; + return a.C.Pa ? a.C.Pa(b, c, d, e, f, h, k, m, l, p, u, w) : a.C.call(null, b, c, d, + e, f, h, k, m, l, p, u, w) + } + + function m(a, b, c, d, e, f, h, k, m, l, p, u) { + a = this; + return a.C.Oa ? a.C.Oa(b, c, d, e, f, h, k, m, l, p, u) : a.C.call(null, b, c, d, e, f, h, k, + m, l, p, u) + } + + function u(a, b, c, d, e, f, h, k, m, l, p) { + a = this; + return a.C.Na ? a.C.Na(b, c, d, e, f, h, k, m, l, p) : a.C.call(null, b, c, d, e, f, h, k, m, + l, p) + } + + function w(a, b, c, d, e, f, h, k, m, l) { + a = this; + return a.C.Za ? a.C.Za(b, c, d, e, f, h, k, m, l) : a.C.call(null, b, c, d, e, f, h, k, m, l) + } + + function x(a, b, c, d, e, f, h, k, m) { + a = this; + return a.C.Ha ? a.C.Ha(b, c, d, e, f, h, k, m) : a.C.call(null, b, c, d, e, f, h, k, m) + } + + function C(a, b, c, d, e, f, + h, k) { + a = this; + return a.C.Ya ? a.C.Ya(b, c, d, e, f, h, k) : a.C.call(null, b, c, d, e, f, h, k) + } + + function F(a, b, c, d, e, f, h) { + a = this; + return a.C.Ca ? a.C.Ca(b, c, d, e, f, h) : a.C.call(null, b, c, d, e, f, h) + } + + function I(a, b, c, d, e, f) { + a = this; + return a.C.Z ? a.C.Z(b, c, d, e, f) : a.C.call(null, b, c, d, e, f) + } + + function M(a, b, c, d, e) { + a = this; + return a.C.M ? a.C.M(b, c, d, e) : a.C.call(null, b, c, d, e) + } + + function S(a, b, c, d) { + a = this; + return a.C.l ? a.C.l(b, c, d) : a.C.call(null, b, c, d) + } + + function X(a, b, c) { + a = this; + return a.C.c ? a.C.c(b, c) : a.C.call(null, b, c) + } + + function Ga(a, b) { + a = this; + return a.C.h ? a.C.h(b) : a.C.call(null, b) + } + + function db(a) { + a = this; + return a.C.B ? a.C.B() : a.C.call(null) + } + + var Q = null; + Q = function (xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc, Sc, Bd, se, Lf, Ih, + kl) { + switch (arguments.length) { + case 1: + return db.call(this, xb); + case 2: + return Ga.call(this, xb, Ha); + case 3: + return X.call(this, xb, Ha, Ja); + case 4: + return S.call(this, xb, Ha, Ja, Oa); + case 5: + return M.call(this, xb, Ha, Ja, Oa, Ba); + case 6: + return I.call(this, xb, Ha, Ja, Oa, Ba, W); + case 7: + return F.call(this, xb, Ha, Ja, Oa, Ba, W, $a); + case 8: + return C.call(this, + xb, Ha, Ja, Oa, Ba, W, $a, ka); + case 9: + return x.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb); + case 10: + return w.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb); + case 11: + return u.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb); + case 12: + return m.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib); + case 13: + return p.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q); + case 14: + return l.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb); + case 15: + return k.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic); + case 16: + return h.call(this, xb, Ha, Ja, Oa, Ba, + W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc); + case 17: + return f.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc, Sc); + case 18: + return e.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc, Sc, Bd); + case 19: + return d.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc, Sc, Bd, + se); + case 20: + return c.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc, Sc, Bd, + se, Lf); + case 21: + return b.call(this, xb, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Q, Xb, ic, xc, Sc, Bd, + se, Lf, Ih); + case 22: + return a.call(this, 0, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, + zb, Ib, Q, Xb, ic, xc, Sc, Bd, se, Lf, Ih, kl) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + Q.h = db; + Q.c = Ga; + Q.l = X; + Q.M = S; + Q.Z = M; + Q.Ca = I; + Q.Ya = F; + Q.Ha = C; + Q.Za = x; + Q.Na = w; + Q.Oa = u; + Q.Pa = m; + Q.Qa = p; + Q.Ra = l; + Q.Sa = k; + Q.Ta = h; + Q.Ua = f; + Q.Va = e; + Q.Wa = d; + Q.Xa = c; + Q.he = b; + Q.qf = a; + return Q + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.B = function () { + return this.C.B ? this.C.B() : this.C.call(null) + }; + g.h = function (a) { + return this.C.h ? this.C.h(a) : this.C.call(null, a) + }; + g.c = function (a, b) { + return this.C.c ? this.C.c(a, b) : this.C.call(null, a, b) + }; + g.l = function (a, b, c) { + return this.C.l ? this.C.l(a, b, c) : this.C.call(null, a, b, c) + }; + g.M = function (a, b, c, d) { + return this.C.M ? this.C.M(a, b, c, d) : this.C.call(null, a, b, c, d) + }; + g.Z = function (a, b, c, d, e) { + return this.C.Z ? this.C.Z(a, b, c, d, e) : this.C.call(null, a, b, c, d, e) + }; + g.Ca = function (a, b, c, d, e, f) { + return this.C.Ca ? this.C.Ca(a, b, c, d, e, f) : this.C.call(null, a, b, c, d, e, f) + }; + g.Ya = function (a, b, c, d, e, f, h) { + return this.C.Ya ? this.C.Ya(a, b, c, d, e, f, h) : this.C.call(null, a, b, c, d, e, f, h) + }; + g.Ha = function (a, b, c, d, e, f, h, k) { + return this.C.Ha ? this.C.Ha(a, b, c, d, e, f, h, k) : this.C.call(null, a, b, c, d, e, f, h, k) + }; + g.Za = function (a, b, c, d, e, f, h, k, l) { + return this.C.Za ? this.C.Za(a, b, c, d, e, f, h, k, l) : this.C.call(null, a, b, c, d, e, f, h, + k, l) + }; + g.Na = function (a, b, c, d, e, f, h, k, l, p) { + return this.C.Na ? this.C.Na(a, b, c, d, e, f, h, k, l, p) : this.C.call(null, a, b, c, d, e, f, + h, k, l, p) + }; + g.Oa = function (a, b, c, d, e, f, h, k, l, p, m) { + return this.C.Oa ? this.C.Oa(a, b, c, d, e, f, h, k, l, p, m) : this.C.call(null, a, b, c, d, e, + f, h, k, l, p, m) + }; + g.Pa = function (a, b, c, d, e, f, h, k, l, p, m, u) { + return this.C.Pa ? this.C.Pa(a, b, c, d, e, f, h, k, l, p, m, u) : this.C.call(null, a, b, c, d, + e, f, h, k, l, p, m, u) + }; + g.Qa = function (a, b, c, d, e, f, h, k, l, p, m, u, w) { + return this.C.Qa ? this.C.Qa(a, b, c, d, e, f, h, k, l, p, m, u, w) : this.C.call(null, a, b, c, + d, e, f, h, k, l, p, m, u, w) + }; + g.Ra = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x) { + return this.C.Ra ? this.C.Ra(a, b, c, d, e, f, h, k, l, p, m, u, w, x) : this.C.call(null, a, b, + c, d, e, f, h, k, l, p, m, u, w, x) + }; + g.Sa = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C) { + return this.C.Sa ? this.C.Sa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C) : this.C.call(null, a, + b, c, d, e, f, h, k, l, p, m, u, w, x, C) + }; + g.Ta = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F) { + return this.C.Ta ? this.C.Ta(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F) : this.C.call(null, + a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F) + }; + g.Ua = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) { + return this.C.Ua ? this.C.Ua(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) : this.C.call( + null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) + }; + g.Va = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) { + return this.C.Va ? this.C.Va(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) + : this.C.call(null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) + }; + g.Wa = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) { + return this.C.Wa ? this.C.Wa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) + : this.C.call(null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) + }; + g.Xa = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) { + return this.C.Xa ? this.C.Xa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) + : this.C.call(null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) + }; + g.he = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga) { + return oe(this.C, a, b, c, d, be([e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga])) + }; + + function pe(a, b) { + return ha(a) ? new ne(a, b) : null == a ? null : tc(a, b) + } + + function qe(a) { + var b = null != a; + return (b ? null != a ? a.m & 131072 || q === a.tf || (a.m ? 0 : Ab(rc, a)) : Ab(rc, a) : b) + ? sc(a) : null + } + + var re = function re(a) { + switch (arguments.length) { + case 1: + return re.h(arguments[0]); + case 2: + return re.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return re.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + re.h = function (a) { + return a + }; + re.c = function (a, b) { + return null == a ? null : mc(a, b) + }; + re.A = function (a, b, c) { + for (; ;) { + if (null == a) { + return null; + } + a = re.c(a, b); + if (t(c)) { + b = y(c), c = z(c); + } else { + return a + } + } + }; + re.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return re.A(b, a, c) + }; + re.L = 2; + + function te(a) { + return null == a || wb(E(a)) + } + + function ue(a) { + return null == a ? !1 : null != a ? a.m & 8 || q === a.Qf ? !0 : a.m ? !1 : Ab(Sb, a) : Ab(Sb, + a) + } + + function ve(a) { + return null == a ? !1 : null != a ? a.m & 4096 || q === a.$f ? !0 : a.m ? !1 : Ab(lc, a) : Ab( + lc, a) + } + + function we(a) { + return null != a ? a.m & 16777216 || q === a.Zf ? !0 : a.m ? !1 : Ab(Ec, a) : Ab(Ec, a) + } + + function xe(a) { + return null == a ? !1 : null != a ? a.m & 1024 || q === a.Wf ? !0 : a.m ? !1 : Ab(fc, a) : Ab( + fc, a) + } + + function ye(a) { + return null != a ? a.m & 67108864 || q === a.Xf ? !0 : a.m ? !1 : Ab(Gc, a) : Ab(Gc, a) + } + + function ze(a) { + return null != a ? a.m & 16384 || q === a.ag ? !0 : a.m ? !1 : Ab(pc, a) : Ab(pc, a) + } + + function Ae(a) { + return null != a ? a.J & 512 || q === a.Pf ? !0 : !1 : !1 + } + + function Be(a, b, c, d, e) { + for (; 0 !== e;) { + c[d] = a[b], d += 1, --e, b += 1 + } + } + + var Ce = {}; + + function De(a) { + return null == a ? !1 : null != a ? a.m & 64 || q === a.G ? !0 : a.m ? !1 : Ab(Vb, a) : Ab(Vb, + a) + } + + function Ee(a) { + return null == a ? !1 : !1 === a ? !1 : !0 + } + + function Fe(a) { + var b = me(a); + return b ? b : null != a ? a.m & 1 || q === a.Rf ? !0 : a.m ? !1 : Ab(Ob, a) : Ab(Ob, a) + } + + function Ge(a) { + return "number" === typeof a && !isNaN(a) && Infinity !== a && parseFloat(a) === parseInt(a, 10) + } + + function He(a, b) { + return D.l(a, b, Ce) === Ce ? !1 : !0 + } + + var Ie = function Ie(a) { + switch (arguments.length) { + case 1: + return Ie.h(arguments[0]); + case 2: + return Ie.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Ie.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + Ie.h = function () { + return !0 + }; + Ie.c = function (a, b) { + return !G.c(a, b) + }; + Ie.A = function (a, b, c) { + if (G.c(a, b)) { + return !1; + } + a = Je([a, b]); + for (b = c; ;) { + var d = y(b); + c = z(b); + if (t(b)) { + if (He(a, d)) { + return !1; + } + a = ge.c(a, d); + b = c + } else { + return !0 + } + } + }; + Ie.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return Ie.A(b, a, c) + }; + Ie.L = 2; + + function Ke(a, b) { + if (a === b) { + return 0; + } + if (null == a) { + return -1; + } + if (null == b) { + return 1; + } + if ("number" === typeof a) { + if ("number" === typeof b) { + return Aa(a, b); + } + throw Error(["Cannot compare ", v.h(a), " to ", v.h(b)].join("")); + } + if (null != a ? a.J & 2048 || q === a.zc || (a.J ? 0 : Ab(Tc, a)) : Ab(Tc, a)) { + return Uc(a, b); + } + if ("string" !== typeof a && !vb(a) && !0 !== a && !1 !== a || Bb(a) !== Bb(b)) { + throw Error( + ["Cannot compare ", v.h(a), " to ", v.h(b)].join("")); + } + return Aa(a, b) + } + + function Le(a, b) { + var c = H(a), d = H(b); + if (c < d) { + c = -1; + } else if (c > d) { + c = 1; + } else if (0 === c) { + c = 0; + } else { + a:for (d = 0; ;) { + var e = Ke(Vd(a, d), Vd(b, d)); + if (0 === e && d + 1 < c) { + d += 1; + } else { + c = e; + break a + } + } + } + return c + } + + function Me(a) { + return G.c(a, Ke) ? Ke : function (b, c) { + var d = a.c ? a.c(b, c) : a.call(null, b, c); + return "number" === typeof d ? d : t(d) ? -1 : t(a.c ? a.c(c, b) : a.call(null, c, b)) ? 1 : 0 + } + } + + function Ne(a, b) { + if (E(b)) { + a:{ + var c = []; + for (var d = E(b); ;) { + if (null != d) { + c.push(y(d)), d = z(d); + } else { + break a + } + } + } + d = Me(a); + Ca(c, d); + return E(c) + } + return wd + } + + function Oe(a) { + var b = Pe("@!\"#%\x26'*+-/:[{\x3c\\|\x3d]}\x3e^~?".split(""), + "_CIRCA_ _BANG_ _DOUBLEQUOTE_ _SHARP_ _PERCENT_ _AMPERSAND_ _SINGLEQUOTE_ _STAR_ _PLUS_ _ _SLASH_ _COLON_ _LBRACK_ _LBRACE_ _LT_ _BSLASH_ _BAR_ _EQ_ _RBRACK_ _RBRACE_ _GT_ _CARET_ _TILDE_ _QMARK_".split( + " ")); + return Qe(a, b) + } + + function Qe(a, b) { + return Ne(function (b, d) { + var c = a.h ? a.h(b) : a.call(null, b), f = a.h ? a.h(d) : a.call(null, d), h = Me(Ke); + return h.c ? h.c(c, f) : h.call(null, c, f) + }, b) + } + + function ce(a, b) { + var c = E(b); + return c ? Mb(a, y(c), z(c)) : a.B ? a.B() : a.call(null) + } + + function de(a, b, c) { + for (c = E(c); ;) { + if (c) { + var d = y(c); + b = a.c ? a.c(b, d) : a.call(null, b, d); + if (Hd(b)) { + return B(b); + } + c = z(c) + } else { + return b + } + } + } + + function Re(a, b) { + var c = dd(a); + if (t(c.ja())) { + for (var d = c.next(); ;) { + if (c.ja()) { + var e = c.next(); + d = b.c ? b.c(d, e) : b.call(null, d, e); + if (Hd(d)) { + return B(d) + } + } else { + return d; + } + } + } else { + return b.B ? b.B() : b.call(null) + } + } + + function Se(a, b, c) { + for (a = dd(a); ;) { + if (a.ja()) { + var d = a.next(); + c = b.c ? b.c(c, d) : b.call(null, c, d); + if (Hd(c)) { + return B(c) + } + } else { + return c + } + } + } + + function Te(a, b) { + return null != b && (b.m & 524288 || q === b.uf) ? b.Fa(null, a) : vb(b) ? Md(b, a) : "string" + === typeof b ? Md(b, a) : Ab(uc, b) ? vc.c(b, a) : ud(b) ? Re(b, a) : ce(a, b) + } + + function Mb(a, b, c) { + return null != c && (c.m & 524288 || q === c.uf) ? c.Ga(null, a, b) : vb(c) ? Nd(c, a, b) + : "string" === typeof c ? Nd(c, a, b) : Ab(uc, c) ? vc.l(c, a, b) : ud(c) ? Se(c, a, b) : de( + a, b, c) + } + + function Ue(a, b, c) { + return null != c ? yc(c, a, b) : b + } + + function Ve(a) { + return a + } + + function We(a, b, c, d) { + a = a.h ? a.h(b) : a.call(null, b); + c = Mb(a, c, d); + return a.h ? a.h(c) : a.call(null, c) + } + + var Xe = function Xe(a) { + switch (arguments.length) { + case 0: + return Xe.B(); + case 1: + return Xe.h(arguments[0]); + case 2: + return Xe.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Xe.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + Xe.B = function () { + return 0 + }; + Xe.h = function (a) { + return a + }; + Xe.c = function (a, b) { + return a + b + }; + Xe.A = function (a, b, c) { + return Mb(Xe, a + b, c) + }; + Xe.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return Xe.A(b, a, c) + }; + Xe.L = 2; + var Ye = function Ye(a) { + switch (arguments.length) { + case 0: + return Ye.B(); + case 1: + return Ye.h(arguments[0]); + case 2: + return Ye.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Ye.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + Ye.B = function () { + return 1 + }; + Ye.h = function (a) { + return a + }; + Ye.c = function (a, b) { + return a * b + }; + Ye.A = function (a, b, c) { + return Mb(Ye, a * b, c) + }; + Ye.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return Ye.A(b, a, c) + }; + Ye.L = 2; + + function Ze(a) { + a = (a - a % 2) / 2; + return 0 <= a ? Math.floor(a) : Math.ceil(a) + } + + function $e(a) { + a -= a >> 1 & 1431655765; + a = (a & 858993459) + (a >> 2 & 858993459); + return 16843009 * (a + (a >> 4) & 252645135) >> 24 + } + + var v = function v(a) { + switch (arguments.length) { + case 0: + return v.B(); + case 1: + return v.h(arguments[0]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return v.A(arguments[0], new Jb(c.slice(1), 0, null)) + } + }; + v.B = function () { + return "" + }; + v.h = function (a) { + return null == a ? "" : "" + a + }; + v.A = function (a, b) { + for (var c = new cb("" + v.h(a)), d = b; ;) { + if (t(d)) { + c = c.append("" + v.h(y(d))), d = z( + d); + } else { + return c.toString() + } + } + }; + v.N = function (a) { + var b = y(a); + a = z(a); + return v.A(b, a) + }; + v.L = 1; + + function $d(a, b) { + if (we(b)) { + if (Pd(a) && Pd(b) && H(a) !== H(b)) { + var c = !1; + } else { + a:{ + c = E(a); + for (var d = E(b); ;) { + if (null == c) { + c = null == d; + break a + } + if (null != d && G.c(y(c), y(d))) { + c = z(c), d = z(d); + } else { + c = !1; + break a + } + } + } + } + } else { + c = null; + } + return Ee(c) + } + + function af(a, b, c, d, e) { + this.meta = a; + this.first = b; + this.kc = c; + this.count = d; + this.w = e; + this.m = 65937646; + this.J = 8192 + } + + g = af.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, this.count) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + return 1 === this.count ? null : this.kc + }; + g.W = function () { + return this.count + }; + g.Ac = function () { + return this.first + }; + g.Bc = function () { + return this.bb(null) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return this.first + }; + g.bb = function () { + return 1 === this.count ? wd : this.kc + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new af(b, this.first, this.kc, this.count, this.w) + }; + g.X = function (a, b) { + return new af(this.meta, b, this, this.count + 1, null) + }; + af.prototype[Fb] = function () { + return yd(this) + }; + + function bf(a) { + this.meta = a; + this.m = 65937614; + this.J = 8192 + } + + g = bf.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + return null + }; + g.W = function () { + return 0 + }; + g.Ac = function () { + return null + }; + g.Bc = function () { + throw Error("Can't pop empty list"); + }; + g.U = function () { + return Cd + }; + g.K = function (a, b) { + return (null != b ? b.m & 33554432 || q === b.Vf || (b.m ? 0 : Ab(Fc, b)) : Ab(Fc, b)) || we(b) + ? null == E(b) : !1 + }; + g.oa = function () { + return this + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return null + }; + g.bb = function () { + return wd + }; + g.S = function () { + return null + }; + g.T = function (a, b) { + return new bf(b) + }; + g.X = function (a, b) { + return new af(this.meta, b, null, 1, null) + }; + var wd = new bf(null); + bf.prototype[Fb] = function () { + return yd(this) + }; + + function cf(a) { + return (null != a ? a.m & 134217728 || q === a.Yf || (a.m ? 0 : Ab(Hc, a)) : Ab(Hc, a)) ? Ic(a) + : Mb(ge, wd, a) + } + + var df = function df(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return df.A(0 < c.length ? new Jb(c.slice(0), 0, null) : null) + }; + df.A = function (a) { + if (a instanceof Jb && 0 === a.i) { + var b = a.o; + } else { + a:for (b = []; ;) { + if (null != a) { + b.push( + a.Ia(null)), a = a.Ka(null); + } else { + break a; + } + } + } + a = b.length; + for (var c = wd; ;) { + if (0 < a) { + var d = a - 1; + c = c.X(null, b[a - 1]); + a = d + } else { + return c + } + } + }; + df.L = 0; + df.N = function (a) { + return df.A(E(a)) + }; + + function ef(a, b, c, d) { + this.meta = a; + this.first = b; + this.kc = c; + this.w = d; + this.m = 65929452; + this.J = 8192 + } + + g = ef.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + return null == this.kc ? null : E(this.kc) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return this.first + }; + g.bb = function () { + return null == this.kc ? wd : this.kc + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new ef(b, this.first, this.kc, this.w) + }; + g.X = function (a, b) { + return new ef(null, b, this, null) + }; + ef.prototype[Fb] = function () { + return yd(this) + }; + + function ae(a, b) { + return null == b || null != b && (b.m & 64 || q === b.G) ? new ef(null, a, b, null) : new ef( + null, a, E(b), null) + } + + function ff(a, b) { + if (a.ea === b.ea) { + return 0; + } + var c = wb(a.fb); + if (t(c ? b.fb : c)) { + return -1; + } + if (t(a.fb)) { + if (wb(b.fb)) { + return 1; + } + c = Aa(a.fb, b.fb); + return 0 === c ? Aa(a.name, b.name) : c + } + return Aa(a.name, b.name) + } + + function L(a, b, c, d) { + this.fb = a; + this.name = b; + this.ea = c; + this.Oc = d; + this.m = 2153775105; + this.J = 4096 + } + + g = L.prototype; + g.toString = function () { + return [":", v.h(this.ea)].join("") + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.K = function (a, b) { + return b instanceof L ? this.ea === b.ea : !1 + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return D.c(c, this); + case 3: + return D.l(c, this, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return D.c(c, this) + }; + a.l = function (a, c, d) { + return D.l(c, this, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return D.c(a, this) + }; + g.c = function (a, b) { + return D.l(a, this, b) + }; + g.U = function () { + var a = this.Oc; + return null != a ? a : this.Oc = a = pd(kd(this.name), nd(this.fb)) + 2654435769 | 0 + }; + g.hd = function () { + return this.name + }; + g.jd = function () { + return this.fb + }; + g.R = function (a, b) { + return Jc(b, [":", v.h(this.ea)].join("")) + }; + + function gf(a) { + return a instanceof L + } + + function N(a, b) { + return a === b ? !0 : a instanceof L && b instanceof L ? a.ea === b.ea : !1 + } + + var hf = function hf(a) { + switch (arguments.length) { + case 1: + return hf.h(arguments[0]); + case 2: + return hf.c(arguments[0], arguments[1]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + hf.h = function (a) { + if (a instanceof L) { + return a; + } + if (a instanceof rd) { + if (null != a && (a.J & 4096 || q === a.Oe)) { + var b = a.jd(null); + } else { + throw Error( + ["Doesn't support namespace: ", v.h(a)].join("")); + } + return new L(b, jf(a), a.Zb, null) + } + return "string" === typeof a ? (b = a.split("/"), 2 === b.length ? new L(b[0], b[1], a, null) + : new L(null, b[0], a, null)) : null + }; + hf.c = function (a, b) { + var c = a instanceof L ? jf(a) : a instanceof rd ? jf(a) : a, + d = b instanceof L ? jf(b) : b instanceof rd ? jf(b) : b; + return new L(c, d, [v.h(t(c) ? [v.h(c), "/"].join("") : null), v.h(d)].join(""), null) + }; + hf.L = 2; + + function kf(a, b, c, d) { + this.meta = a; + this.Vc = b; + this.s = c; + this.w = d; + this.m = 32374988; + this.J = 1 + } + + g = kf.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + + function lf(a) { + null != a.Vc && (a.s = a.Vc.B ? a.Vc.B() : a.Vc.call(null), a.Vc = null); + return a.s + } + + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + this.S(null); + return null == this.s ? null : z(this.s) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + this.S(null); + return null == this.s ? null : y(this.s) + }; + g.bb = function () { + this.S(null); + return null != this.s ? vd(this.s) : wd + }; + g.S = function () { + lf(this); + if (null == this.s) { + return null; + } + for (var a = this.s; ;) { + if (a instanceof kf) { + a = lf(a); + } else { + return this.s = a, E(this.s) + } + } + }; + g.T = function (a, b) { + return new kf(b, this.Vc, this.s, this.w) + }; + g.X = function (a, b) { + return ae(b, this) + }; + kf.prototype[Fb] = function () { + return yd(this) + }; + + function mf(a, b) { + this.aa = a; + this.end = b; + this.m = 2; + this.J = 0 + } + + mf.prototype.add = function (a) { + this.aa[this.end] = a; + return this.end += 1 + }; + mf.prototype.Da = function () { + var a = new nf(this.aa, 0, this.end); + this.aa = null; + return a + }; + mf.prototype.W = function () { + return this.end + }; + + function of(a) { + return new mf(Array(a), 0) + } + + function nf(a, b, c) { + this.o = a; + this.ab = b; + this.end = c; + this.m = 524306; + this.J = 0 + } + + g = nf.prototype; + g.W = function () { + return this.end - this.ab + }; + g.$ = function (a, b) { + return this.o[this.ab + b] + }; + g.ka = function (a, b, c) { + return 0 <= b && b < this.end - this.ab ? this.o[this.ab + b] : c + }; + g.Le = function () { + if (this.ab === this.end) { + throw Error("-drop-first of empty chunk"); + } + return new nf(this.o, this.ab + 1, this.end) + }; + g.Fa = function (a, b) { + return Od(this.o, b, this.o[this.ab], this.ab + 1) + }; + g.Ga = function (a, b, c) { + return Od(this.o, b, c, this.ab) + }; + + function pf(a, b, c, d) { + this.Da = a; + this.Wb = b; + this.meta = c; + this.w = d; + this.m = 31850732; + this.J = 1536 + } + + g = pf.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + if (1 < Qb(this.Da)) { + return new pf(Vc(this.Da), this.Wb, this.meta, null); + } + var a = Cc(this.Wb); + return null == a ? null : a + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Ia = function () { + return A.c(this.Da, 0) + }; + g.bb = function () { + return 1 < Qb(this.Da) ? new pf(Vc(this.Da), this.Wb, this.meta, null) : null == this.Wb ? wd + : this.Wb + }; + g.S = function () { + return this + }; + g.ge = function () { + return this.Da + }; + g.Hd = function () { + return null == this.Wb ? wd : this.Wb + }; + g.T = function (a, b) { + return new pf(this.Da, this.Wb, b, this.w) + }; + g.X = function (a, b) { + return ae(b, this) + }; + g.Me = function () { + return null == this.Wb ? null : this.Wb + }; + pf.prototype[Fb] = function () { + return yd(this) + }; + + function qf(a, b) { + return 0 === Qb(a) ? b : new pf(a, b, null, null) + } + + function rf(a, b) { + a.add(b) + } + + function sf(a, b) { + if (Pd(b)) { + return H(b); + } + for (var c = 0, d = E(b); ;) { + if (null != d && c < a) { + c += 1, d = z(d); + } else { + return c + } + } + } + + var tf = function tf(a) { + if (null == a) { + return null; + } + var c = z(a); + return null == c ? E(y(a)) : ae(y(a), tf.h ? tf.h(c) : tf.call(null, c)) + }, O = function O(a) { + switch (arguments.length) { + case 0: + return O.B(); + case 1: + return O.h(arguments[0]); + case 2: + return O.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return O.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + O.B = function () { + return new kf(null, function () { + return null + }, null, null) + }; + O.h = function (a) { + return new kf(null, function () { + return a + }, null, null) + }; + O.c = function (a, b) { + return new kf(null, function () { + var c = E(a); + return c ? Ae(c) ? qf(Wc(c), O.c(Xc(c), b)) : ae(y(c), O.c(vd(c), b)) : b + }, null, null) + }; + O.A = function (a, b, c) { + return function h(a, b) { + return new kf(null, function () { + var c = E(a); + return c ? Ae(c) ? qf(Wc(c), h(Xc(c), b)) : ae(y(c), h(vd(c), b)) : t(b) ? h(y(b), z(b)) + : null + }, null, null) + }(O.c(a, b), c) + }; + O.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return O.A(b, a, c) + }; + O.L = 2; + var uf = function uf(a) { + switch (arguments.length) { + case 0: + return uf.B(); + case 1: + return uf.h(arguments[0]); + case 2: + return uf.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return uf.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + uf.B = function () { + return Oc(he) + }; + uf.h = function (a) { + return a + }; + uf.c = function (a, b) { + return Pc(a, b) + }; + uf.A = function (a, b, c) { + for (; ;) { + if (a = Pc(a, b), t(c)) { + b = y(c), c = z(c); + } else { + return a + } + } + }; + uf.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return uf.A(b, a, c) + }; + uf.L = 2; + + function vf(a, b, c) { + var d = E(c); + if (0 === b) { + return a.B ? a.B() : a.call(null); + } + c = Wb(d); + var e = Yb(d); + if (1 === b) { + return a.h ? a.h(c) : a.call(null, c); + } + d = Wb(e); + var f = Yb(e); + if (2 === b) { + return a.c ? a.c(c, d) : a.call(null, c, d); + } + e = Wb(f); + var h = Yb(f); + if (3 === b) { + return a.l ? a.l(c, d, e) : a.call(null, c, d, e); + } + f = Wb(h); + var k = Yb(h); + if (4 === b) { + return a.M ? a.M(c, d, e, f) : a.call(null, c, d, e, f); + } + h = Wb(k); + var l = Yb(k); + if (5 === b) { + return a.Z ? a.Z(c, d, e, f, h) : a.call(null, c, d, e, f, h); + } + k = Wb(l); + var p = Yb(l); + if (6 === b) { + return a.Ca ? a.Ca(c, d, e, f, h, k) : a.call(null, c, d, e, f, h, k); + } + l = Wb(p); + var m = Yb(p); + if (7 === b) { + return a.Ya ? a.Ya(c, d, e, f, h, k, l) : a.call(null, c, d, e, f, h, k, l); + } + p = Wb(m); + var u = Yb(m); + if (8 === b) { + return a.Ha ? a.Ha(c, d, e, f, h, k, l, p) : a.call(null, c, d, e, f, h, k, l, p); + } + m = Wb(u); + var w = Yb(u); + if (9 === b) { + return a.Za ? a.Za(c, d, e, f, h, k, l, p, m) : a.call(null, c, d, e, f, h, k, l, + p, m); + } + u = Wb(w); + var x = Yb(w); + if (10 === b) { + return a.Na ? a.Na(c, d, e, f, h, k, l, p, m, u) : a.call(null, c, d, e, f, h, k, + l, p, m, u); + } + w = Wb(x); + var C = Yb(x); + if (11 === b) { + return a.Oa ? a.Oa(c, d, e, f, h, k, l, p, m, u, w) : a.call(null, c, d, e, f, h, + k, l, p, m, u, w); + } + x = Wb(C); + var F = Yb(C); + if (12 === b) { + return a.Pa ? a.Pa(c, d, e, f, h, k, l, p, m, u, w, x) : a.call(null, c, d, e, f, + h, k, l, p, m, u, w, x); + } + C = Wb(F); + var I = Yb(F); + if (13 === b) { + return a.Qa ? a.Qa(c, d, e, f, h, k, l, p, m, u, w, x, C) : a.call(null, c, d, e, + f, h, k, l, p, m, u, w, x, C); + } + F = Wb(I); + var M = Yb(I); + if (14 === b) { + return a.Ra ? a.Ra(c, d, e, f, h, k, l, p, m, u, w, x, C, F) : a.call(null, c, d, + e, f, h, k, l, p, m, u, w, x, C, F); + } + I = Wb(M); + var S = Yb(M); + if (15 === b) { + return a.Sa ? a.Sa(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) : a.call(null, c, + d, e, f, h, k, l, p, m, u, w, x, C, F, I); + } + M = Wb(S); + var X = Yb(S); + if (16 === b) { + return a.Ta ? a.Ta(c, d, e, f, h, k, l, + p, m, u, w, x, C, F, I, M) : a.call(null, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M); + } + S = Wb(X); + var Ga = Yb(X); + if (17 === b) { + return a.Ua ? a.Ua(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) : a.call( + null, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S); + } + X = Wb(Ga); + var db = Yb(Ga); + if (18 === b) { + return a.Va ? a.Va(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) : a.call( + null, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X); + } + Ga = Wb(db); + db = Yb(db); + if (19 === b) { + return a.Wa ? a.Wa(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga) + : a.call(null, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga); + } + var Q = Wb(db); + Yb(db); + if (20 === b) { + return a.Xa ? + a.Xa(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga, Q) : a.call(null, c, d, e, f, + h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga, Q); + } + throw Error("Only up to 20 arguments supported on functions"); + } + + function wf(a, b, c) { + return null == c ? a.h ? a.h(b) : a.call(a, b) : xf(a, b, Wb(c), z(c)) + } + + function xf(a, b, c, d) { + return null == d ? a.c ? a.c(b, c) : a.call(a, b, c) : yf(a, b, c, Wb(d), z(d)) + } + + function yf(a, b, c, d, e) { + return null == e ? a.l ? a.l(b, c, d) : a.call(a, b, c, d) : zf(a, b, c, d, Wb(e), z(e)) + } + + function zf(a, b, c, d, e, f) { + if (null == f) { + return a.M ? a.M(b, c, d, e) : a.call(a, b, c, d, e); + } + var h = Wb(f), k = z(f); + if (null == k) { + return a.Z ? a.Z(b, c, d, e, h) : a.call(a, b, c, d, e, h); + } + f = Wb(k); + var l = z(k); + if (null == l) { + return a.Ca ? a.Ca(b, c, d, e, h, f) : a.call(a, b, c, d, e, h, f); + } + k = Wb(l); + var p = z(l); + if (null == p) { + return a.Ya ? a.Ya(b, c, d, e, h, f, k) : a.call(a, b, c, d, e, h, f, k); + } + l = Wb(p); + var m = z(p); + if (null == m) { + return a.Ha ? a.Ha(b, c, d, e, h, f, k, l) : a.call(a, b, c, d, e, h, f, k, l); + } + p = Wb(m); + var u = z(m); + if (null == u) { + return a.Za ? a.Za(b, c, d, e, h, f, k, l, p) : a.call(a, b, c, d, e, h, f, k, + l, p); + } + m = Wb(u); + var w = z(u); + if (null == w) { + return a.Na ? a.Na(b, c, d, e, h, f, k, l, p, m) : a.call(a, b, c, d, e, h, f, k, + l, p, m); + } + u = Wb(w); + var x = z(w); + if (null == x) { + return a.Oa ? a.Oa(b, c, d, e, h, f, k, l, p, m, u) : a.call(a, b, c, d, e, h, f, + k, l, p, m, u); + } + w = Wb(x); + var C = z(x); + if (null == C) { + return a.Pa ? a.Pa(b, c, d, e, h, f, k, l, p, m, u, w) : a.call(a, b, c, d, e, h, + f, k, l, p, m, u, w); + } + x = Wb(C); + var F = z(C); + if (null == F) { + return a.Qa ? a.Qa(b, c, d, e, h, f, k, l, p, m, u, w, x) : a.call(a, b, c, d, e, + h, f, k, l, p, m, u, w, x); + } + C = Wb(F); + var I = z(F); + if (null == I) { + return a.Ra ? a.Ra(b, c, d, e, h, f, k, l, p, m, u, w, x, C) : a.call(a, + b, c, d, e, h, f, k, l, p, m, u, w, x, C); + } + F = Wb(I); + var M = z(I); + if (null == M) { + return a.Sa ? a.Sa(b, c, d, e, h, f, k, l, p, m, u, w, x, C, F) : a.call(a, b, c, + d, e, h, f, k, l, p, m, u, w, x, C, F); + } + I = Wb(M); + var S = z(M); + if (null == S) { + return a.Ta ? a.Ta(b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I) : a.call(a, b, + c, d, e, h, f, k, l, p, m, u, w, x, C, F, I); + } + M = Wb(S); + var X = z(S); + if (null == X) { + return a.Ua ? a.Ua(b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M) : a.call(a, + b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M); + } + S = Wb(X); + var Ga = z(X); + if (null == Ga) { + return a.Va ? a.Va(b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M, S) + : a.call(a, b, c, d, e, h, f, + k, l, p, m, u, w, x, C, F, I, M, S); + } + X = Wb(Ga); + var db = z(Ga); + if (null == db) { + return a.Wa ? a.Wa(b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M, S, X) + : a.call(a, b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M, S, X); + } + Ga = Wb(db); + db = z(db); + if (null == db) { + return a.Xa ? a.Xa(b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga) + : a.call(a, b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga); + } + b = [b, c, d, e, h, f, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga]; + for (c = db; ;) { + if (c) { + b.push(Wb(c)), c = z(c); + } else { + break; + } + } + return a.apply(a, b) + } + + function P(a, b) { + if (a.N) { + var c = a.L, d = sf(c + 1, b); + return d <= c ? vf(a, d, b) : a.N(b) + } + c = E(b); + return null == c ? a.B ? a.B() : a.call(a) : wf(a, Wb(c), z(c)) + } + + function Kb(a, b, c) { + if (a.N) { + b = ae(b, c); + var d = a.L; + c = sf(d, c) + 1; + return c <= d ? vf(a, c, b) : a.N(b) + } + return wf(a, b, E(c)) + } + + function Af(a, b, c, d, e) { + return a.N ? (b = ae(b, ae(c, ae(d, e))), c = a.L, e = 3 + sf(c - 2, e), e <= c ? vf(a, e, b) + : a.N(b)) : yf(a, b, c, d, E(e)) + } + + function oe(a, b, c, d, e, f) { + return a.N ? (f = tf(f), b = ae(b, ae(c, ae(d, ae(e, f)))), c = a.L, f = 4 + sf(c - 3, f), f + <= c ? vf(a, f, b) : a.N(b)) : zf(a, b, c, d, e, tf(f)) + } + + function Bf(a) { + return E(a) ? a : null + } + + function Cf() { + "undefined" === typeof hb && (hb = function (a) { + this.zf = a; + this.m = 393216; + this.J = 0 + }, hb.prototype.T = function (a, b) { + return new hb(b) + }, hb.prototype.P = function () { + return this.zf + }, hb.prototype.ja = function () { + return !1 + }, hb.prototype.next = function () { + return Error("No such element") + }, hb.prototype.remove = function () { + return Error("Unsupported operation") + }, hb.Wc = function () { + return new R(null, 1, 5, T, [Df], null) + }, hb.qc = !0, hb.Tb = "cljs.core/t_cljs$core34616", hb.Ec = function (a, b) { + return Jc(b, "cljs.core/t_cljs$core34616") + }); + return new hb(Ef) + } + + function Ff(a, b) { + this.s = a; + this.i = b + } + + Ff.prototype.ja = function () { + return this.i < this.s.length + }; + Ff.prototype.next = function () { + var a = this.s.charAt(this.i); + this.i += 1; + return a + }; + Ff.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function Gf(a, b) { + this.o = a; + this.i = b + } + + Gf.prototype.ja = function () { + return this.i < this.o.length + }; + Gf.prototype.next = function () { + var a = this.o[this.i]; + this.i += 1; + return a + }; + Gf.prototype.remove = function () { + return Error("Unsupported operation") + }; + var Hf = {}, If = {}; + + function Jf(a, b) { + this.cd = a; + this.ub = b + } + + Jf.prototype.ja = function () { + this.cd === Hf ? (this.cd = If, this.ub = E(this.ub)) : this.cd === this.ub && (this.ub = z( + this.cd)); + return null != this.ub + }; + Jf.prototype.next = function () { + if (this.ja()) { + return this.cd = this.ub, y(this.ub); + } + throw Error("No such element"); + }; + Jf.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function Kf(a) { + if (ud(a)) { + return dd(a); + } + if (null == a) { + return Cf(); + } + if ("string" === typeof a) { + return new Ff(a, 0); + } + if (vb(a)) { + return new Gf(a, 0); + } + if ((null != a ? a.m & 8388608 || q === a.Pe || (a.m ? 0 : Ab(Bc, a)) : Ab(Bc, a)) || vb(a) + || "string" === typeof a) { + return new Jf(Hf, a); + } + throw Error(["Cannot create iterator from ", v.h(a)].join("")); + } + + function Mf(a) { + this.ae = a + } + + Mf.prototype.add = function (a) { + this.ae.push(a); + return this + }; + Mf.prototype.remove = function () { + return this.ae.shift() + }; + Mf.prototype.Td = function () { + return 0 === this.ae.length + }; + Mf.prototype.toString = function () { + return ["Many: ", v.h(this.ae)].join("") + }; + var Nf = {}; + + function Of(a) { + this.H = a + } + + Of.prototype.add = function (a) { + return this.H === Nf ? (this.H = a, this) : new Mf([this.H, a]) + }; + Of.prototype.remove = function () { + if (this.H === Nf) { + throw Error("Removing object from empty buffer"); + } + var a = this.H; + this.H = Nf; + return a + }; + Of.prototype.Td = function () { + return this.H === Nf + }; + Of.prototype.toString = function () { + return ["Single: ", v.h(this.H)].join("") + }; + + function Pf() { + } + + Pf.prototype.add = function (a) { + return new Of(a) + }; + Pf.prototype.remove = function () { + throw Error("Removing object from empty buffer"); + }; + Pf.prototype.Td = function () { + return !0 + }; + Pf.prototype.toString = function () { + return "Empty" + }; + var Qf = new Pf, Rf = function Rf(a) { + return new kf(null, function () { + if (a.ja()) { + for (var c = [], d = 0; ;) { + var e = a.ja(); + if (t(t(e) ? 32 > d : e)) { + c[d] = a.next(), d += 1; + } else { + return qf(new nf(c, 0, d), + Rf.h ? Rf.h(a) : Rf.call(null, a)) + } + } + } else { + return null + } + }, null, null) + }; + + function Sf(a, b, c, d, e, f) { + this.buffer = a; + this.ub = b; + this.pe = c; + this.Rb = d; + this.ye = e; + this.Gf = f + } + + Sf.prototype.step = function () { + if (this.ub !== Nf) { + return !0; + } + for (; ;) { + if (this.ub === Nf) { + if (this.buffer.Td()) { + if (this.pe) { + return !1; + } + if (this.ye.ja()) { + if (this.Gf) { + var a = P(this.Rb, + ae(null, this.ye.next())); + } else { + a = this.ye.next(), a = this.Rb.c ? this.Rb.c(null, a) + : this.Rb.call(null, null, a); + } + Hd(a) && (this.Rb.h ? this.Rb.h(null) : this.Rb.call(null, null), this.pe = !0) + } else { + this.Rb.h ? this.Rb.h(null) : this.Rb.call(null, null), this.pe = !0 + } + } else { + this.ub = this.buffer.remove(); + } + } else { + return !0 + } + } + }; + Sf.prototype.ja = function () { + return this.step() + }; + Sf.prototype.next = function () { + if (this.ja()) { + var a = this.ub; + this.ub = Nf; + return a + } + throw Error("No such element"); + }; + Sf.prototype.remove = function () { + return Error("Unsupported operation") + }; + Sf.prototype[Fb] = function () { + return yd(this) + }; + + function Tf(a, b) { + var c = new Sf(Qf, Nf, !1, null, b, !1); + c.Rb = function () { + var b = function (a) { + return function () { + function b(b, c) { + a.buffer = a.buffer.add(c); + return b + } + + var c = null; + c = function (a, c) { + switch (arguments.length) { + case 0: + return null; + case 1: + return a; + case 2: + return b.call(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + c.B = function () { + return null + }; + c.h = function (a) { + return a + }; + c.c = b; + return c + }() + }(c); + return a.h ? a.h(b) : a.call(null, b) + }(); + return c + } + + function Uf(a, b) { + var c = Kf(b); + c = Tf(a, c); + c = Rf(c); + return t(c) ? c : wd + } + + function Vf(a, b) { + for (; ;) { + if (null == E(b)) { + return !0; + } + var c = y(b); + c = a.h ? a.h(c) : a.call(null, c); + if (t(c)) { + c = a; + var d = z(b); + a = c; + b = d + } else { + return !1 + } + } + } + + function Wf(a, b) { + for (; ;) { + if (E(b)) { + var c = y(b); + c = a.h ? a.h(c) : a.call(null, c); + if (t(c)) { + return c; + } + c = a; + var d = z(b); + a = c; + b = d + } else { + return null + } + } + } + + function Xf(a) { + if (Ge(a)) { + return 0 === (a & 1); + } + throw Error(["Argument must be an integer: ", v.h(a)].join("")); + } + + function Yf(a) { + return function () { + function b(b, c) { + return wb(a.c ? a.c(b, c) : a.call(null, b, c)) + } + + function c(b) { + return wb(a.h ? a.h(b) : a.call(null, b)) + } + + function d() { + return wb(a.B ? a.B() : a.call(null)) + } + + var e = null, f = function () { + function b(a, b, d) { + var e = null; + if (2 < arguments.length) { + e = 0; + for (var f = Array(arguments.length - 2); e < f.length;) { + f[e] = arguments[e + 2], ++e; + } + e = new Jb(f, 0, null) + } + return c.call(this, a, b, e) + } + + function c(b, c, d) { + a.N ? (b = ae(b, ae(c, d)), c = a.L, d = 2 + sf(c - 1, d), d = d <= c ? vf(a, d, b) : a.N( + b)) : d = xf(a, b, c, E(d)); + return wb(d) + } + + b.L = + 2; + b.N = function (a) { + var b = y(a); + a = z(a); + var d = y(a); + a = vd(a); + return c(b, d, a) + }; + b.A = c; + return b + }(); + e = function (a, e, l) { + switch (arguments.length) { + case 0: + return d.call(this); + case 1: + return c.call(this, a); + case 2: + return b.call(this, a, e); + default: + var h = null; + if (2 < arguments.length) { + h = 0; + for (var k = Array(arguments.length - 2); h < k.length;) { + k[h] = arguments[h + 2], ++h; + } + h = new Jb(k, 0, null) + } + return f.A(a, e, h) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + e.L = 2; + e.N = f.N; + e.B = d; + e.h = c; + e.c = b; + e.A = f.A; + return e + }() + } + + function Zf(a) { + return function () { + function b(b) { + if (0 < arguments.length) { + for (var c = 0, e = Array(arguments.length - 0); + c < e.length;) { + e[c] = arguments[c + 0], ++c; + } + } + return a + } + + b.L = 0; + b.N = function (b) { + E(b); + return a + }; + b.A = function () { + return a + }; + return b + }() + } + + var $f = function $f(a) { + switch (arguments.length) { + case 0: + return $f.B(); + case 1: + return $f.h(arguments[0]); + case 2: + return $f.c(arguments[0], arguments[1]); + case 3: + return $f.l(arguments[0], arguments[1], arguments[2]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return $f.A(arguments[0], arguments[1], arguments[2], new Jb(c.slice(3), 0, null)) + } + }; + $f.B = function () { + return Ve + }; + $f.h = function (a) { + return a + }; + $f.c = function (a, b) { + return function () { + function c(c, d, e) { + c = b.l ? b.l(c, d, e) : b.call(null, c, d, e); + return a.h ? a.h(c) : a.call(null, c) + } + + function d(c, d) { + var e = b.c ? b.c(c, d) : b.call(null, c, d); + return a.h ? a.h(e) : a.call(null, e) + } + + function e(c) { + c = b.h ? b.h(c) : b.call(null, c); + return a.h ? a.h(c) : a.call(null, c) + } + + function f() { + var c = b.B ? b.B() : b.call(null); + return a.h ? a.h(c) : a.call(null, c) + } + + var h = null, k = function () { + function c(a, b, c, e) { + var f = null; + if (3 < arguments.length) { + f = 0; + for (var h = Array(arguments.length - 3); f < h.length;) { + h[f] = arguments[f + + 3], ++f; + } + f = new Jb(h, 0, null) + } + return d.call(this, a, b, c, f) + } + + function d(c, d, e, f) { + c = Af(b, c, d, e, f); + return a.h ? a.h(c) : a.call(null, c) + } + + c.L = 3; + c.N = function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = z(a); + var e = y(a); + a = vd(a); + return d(b, c, e, a) + }; + c.A = d; + return c + }(); + h = function (a, b, h, u) { + switch (arguments.length) { + case 0: + return f.call(this); + case 1: + return e.call(this, a); + case 2: + return d.call(this, a, b); + case 3: + return c.call(this, a, b, h); + default: + var m = null; + if (3 < arguments.length) { + m = 0; + for (var p = Array(arguments.length - 3); m < p.length;) { + p[m] = + arguments[m + 3], ++m; + } + m = new Jb(p, 0, null) + } + return k.A(a, b, h, m) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + h.L = 3; + h.N = k.N; + h.B = f; + h.h = e; + h.c = d; + h.l = c; + h.A = k.A; + return h + }() + }; + $f.l = function (a, b, c) { + return function () { + function d(d, e, f) { + d = c.l ? c.l(d, e, f) : c.call(null, d, e, f); + d = b.h ? b.h(d) : b.call(null, d); + return a.h ? a.h(d) : a.call(null, d) + } + + function e(d, e) { + var f = c.c ? c.c(d, e) : c.call(null, d, e); + f = b.h ? b.h(f) : b.call(null, f); + return a.h ? a.h(f) : a.call(null, f) + } + + function f(d) { + d = c.h ? c.h(d) : c.call(null, d); + d = b.h ? b.h(d) : b.call(null, d); + return a.h ? a.h(d) : a.call(null, d) + } + + function h() { + var d = c.B ? c.B() : c.call(null); + d = b.h ? b.h(d) : b.call(null, d); + return a.h ? a.h(d) : a.call(null, d) + } + + var k = null, l = function () { + function d(a, + b, c, d) { + var f = null; + if (3 < arguments.length) { + f = 0; + for (var h = Array(arguments.length - 3); f < h.length;) { + h[f] = arguments[f + 3], ++f; + } + f = new Jb(h, 0, null) + } + return e.call(this, a, b, c, f) + } + + function e(d, e, f, h) { + d = Af(c, d, e, f, h); + d = b.h ? b.h(d) : b.call(null, d); + return a.h ? a.h(d) : a.call(null, d) + } + + d.L = 3; + d.N = function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = z(a); + var d = y(a); + a = vd(a); + return e(b, c, d, a) + }; + d.A = e; + return d + }(); + k = function (a, b, c, k) { + switch (arguments.length) { + case 0: + return h.call(this); + case 1: + return f.call(this, a); + case 2: + return e.call(this, + a, b); + case 3: + return d.call(this, a, b, c); + default: + var m = null; + if (3 < arguments.length) { + m = 0; + for (var p = Array(arguments.length - 3); m < p.length;) { + p[m] = arguments[m + 3], ++m; + } + m = new Jb(p, 0, null) + } + return l.A(a, b, c, m) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + k.L = 3; + k.N = l.N; + k.B = h; + k.h = f; + k.c = e; + k.l = d; + k.A = l.A; + return k + }() + }; + $f.A = function (a, b, c, d) { + return function (a) { + return function () { + function b(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var d = Array(arguments.length - 0); b < d.length;) { + d[b] = arguments[b + 0], ++b; + } + b = new Jb(d, 0, null) + } + return c.call(this, b) + } + + function c(b) { + b = P(y(a), b); + for (var c = z(a); ;) { + if (c) { + var d = y(c); + b = d.h ? d.h(b) : d.call(null, b); + c = z(c) + } else { + return b + } + } + } + + b.L = 0; + b.N = function (a) { + a = E(a); + return c(a) + }; + b.A = c; + return b + }() + }(cf(ae(a, ae(b, ae(c, d))))) + }; + $f.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + d = z(d); + return $f.A(b, a, c, d) + }; + $f.L = 3; + var ag = function ag(a) { + switch (arguments.length) { + case 1: + return ag.h(arguments[0]); + case 2: + return ag.c(arguments[0], arguments[1]); + case 3: + return ag.l(arguments[0], arguments[1], arguments[2]); + case 4: + return ag.M(arguments[0], arguments[1], arguments[2], arguments[3]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return ag.A(arguments[0], arguments[1], arguments[2], arguments[3], + new Jb(c.slice(4), 0, null)) + } + }; + ag.h = function (a) { + return a + }; + ag.c = function (a, b) { + return function () { + function c(c, d, e) { + return a.M ? a.M(b, c, d, e) : a.call(null, b, c, d, e) + } + + function d(c, d) { + return a.l ? a.l(b, c, d) : a.call(null, b, c, d) + } + + function e(c) { + return a.c ? a.c(b, c) : a.call(null, b, c) + } + + function f() { + return a.h ? a.h(b) : a.call(null, b) + } + + var h = null, k = function () { + function c(a, b, c, e) { + var f = null; + if (3 < arguments.length) { + f = 0; + for (var h = Array(arguments.length - 3); f < h.length;) { + h[f] = arguments[f + 3], ++f; + } + f = new Jb(h, 0, null) + } + return d.call(this, a, b, c, f) + } + + function d(c, d, e, f) { + return oe(a, b, c, d, e, be([f])) + } + + c.L = 3; + c.N = function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = z(a); + var e = y(a); + a = vd(a); + return d(b, c, e, a) + }; + c.A = d; + return c + }(); + h = function (a, b, h, u) { + switch (arguments.length) { + case 0: + return f.call(this); + case 1: + return e.call(this, a); + case 2: + return d.call(this, a, b); + case 3: + return c.call(this, a, b, h); + default: + var m = null; + if (3 < arguments.length) { + m = 0; + for (var l = Array(arguments.length - 3); m < l.length;) { + l[m] = arguments[m + 3], ++m; + } + m = new Jb(l, 0, null) + } + return k.A(a, b, h, m) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + h.L = 3; + h.N = k.N; + h.B = f; + h.h = e; + h.c = d; + h.l = c; + h.A = k.A; + return h + }() + }; + ag.l = function (a, b, c) { + return function () { + function d(d, e, f) { + return a.Z ? a.Z(b, c, d, e, f) : a.call(null, b, c, d, e, f) + } + + function e(d, e) { + return a.M ? a.M(b, c, d, e) : a.call(null, b, c, d, e) + } + + function f(d) { + return a.l ? a.l(b, c, d) : a.call(null, b, c, d) + } + + function h() { + return a.c ? a.c(b, c) : a.call(null, b, c) + } + + var k = null, l = function () { + function d(a, b, c, d) { + var f = null; + if (3 < arguments.length) { + f = 0; + for (var h = Array(arguments.length - 3); f < h.length;) { + h[f] = arguments[f + 3], ++f; + } + f = new Jb(h, 0, null) + } + return e.call(this, a, b, c, f) + } + + function e(d, e, f, h) { + return oe(a, + b, c, d, e, be([f, h])) + } + + d.L = 3; + d.N = function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = z(a); + var d = y(a); + a = vd(a); + return e(b, c, d, a) + }; + d.A = e; + return d + }(); + k = function (a, b, c, k) { + switch (arguments.length) { + case 0: + return h.call(this); + case 1: + return f.call(this, a); + case 2: + return e.call(this, a, b); + case 3: + return d.call(this, a, b, c); + default: + var m = null; + if (3 < arguments.length) { + m = 0; + for (var p = Array(arguments.length - 3); m < p.length;) { + p[m] = arguments[m + 3], ++m; + } + m = new Jb(p, 0, null) + } + return l.A(a, b, c, m) + } + throw Error("Invalid arity: " + (arguments.length - + 1)); + }; + k.L = 3; + k.N = l.N; + k.B = h; + k.h = f; + k.c = e; + k.l = d; + k.A = l.A; + return k + }() + }; + ag.M = function (a, b, c, d) { + return function () { + function e(e, f, h) { + return a.Ca ? a.Ca(b, c, d, e, f, h) : a.call(null, b, c, d, e, f, h) + } + + function f(e, f) { + return a.Z ? a.Z(b, c, d, e, f) : a.call(null, b, c, d, e, f) + } + + function h(e) { + return a.M ? a.M(b, c, d, e) : a.call(null, b, c, d, e) + } + + function k() { + return a.l ? a.l(b, c, d) : a.call(null, b, c, d) + } + + var l = null, p = function () { + function e(a, b, c, d) { + var e = null; + if (3 < arguments.length) { + e = 0; + for (var h = Array(arguments.length - 3); e < h.length;) { + h[e] = arguments[e + 3], ++e; + } + e = new Jb(h, 0, null) + } + return f.call(this, a, b, c, e) + } + + function f(e, + f, h, k) { + return oe(a, b, c, d, e, be([f, h, k])) + } + + e.L = 3; + e.N = function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = z(a); + var d = y(a); + a = vd(a); + return f(b, c, d, a) + }; + e.A = f; + return e + }(); + l = function (a, b, c, d) { + switch (arguments.length) { + case 0: + return k.call(this); + case 1: + return h.call(this, a); + case 2: + return f.call(this, a, b); + case 3: + return e.call(this, a, b, c); + default: + var m = null; + if (3 < arguments.length) { + m = 0; + for (var l = Array(arguments.length - 3); m < l.length;) { + l[m] = arguments[m + 3], ++m; + } + m = new Jb(l, 0, null) + } + return p.A(a, b, c, m) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + l.L = 3; + l.N = p.N; + l.B = k; + l.h = h; + l.c = f; + l.l = e; + l.A = p.A; + return l + }() + }; + ag.A = function (a, b, c, d, e) { + return function () { + function f(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var c = Array(arguments.length - 0); b < c.length;) { + c[b] = arguments[b + 0], ++b; + } + b = new Jb(c, 0, null) + } + return h.call(this, b) + } + + function h(f) { + return Af(a, b, c, d, O.c(e, f)) + } + + f.L = 0; + f.N = function (a) { + a = E(a); + return h(a) + }; + f.A = h; + return f + }() + }; + ag.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + var e = z(d); + d = y(e); + e = z(e); + return ag.A(b, a, c, d, e) + }; + ag.L = 4; + + function bg(a, b) { + return function f(b, e) { + return new kf(null, function () { + var d = E(e); + if (d) { + if (Ae(d)) { + for (var k = Wc(d), l = H(k), p = of(l), m = 0; ;) { + if (m < l) { + rf(p, function () { + var d = b + m, e = A.c(k, m); + return a.c ? a.c(d, e) : a.call(null, d, e) + }()), m += 1; + } else { + break; + } + } + return qf(p.Da(), f(b + l, Xc(d))) + } + return ae(function () { + var e = y(d); + return a.c ? a.c(b, e) : a.call(null, b, e) + }(), f(b + 1, vd(d))) + } + return null + }, null, null) + }(0, b) + } + + function cg(a, b, c, d) { + this.state = a; + this.meta = b; + this.df = c; + this.gb = d; + this.J = 16386; + this.m = 6455296 + } + + g = cg.prototype; + g.equiv = function (a) { + return this.K(null, a) + }; + g.K = function (a, b) { + return this === b + }; + g.pc = function () { + return this.state + }; + g.P = function () { + return this.meta + }; + g.Kd = function (a, b, c) { + a = E(this.gb); + for (var d = null, e = 0, f = 0; ;) { + if (f < e) { + var h = d.$(null, f), k = J(h, 0, null); + h = J(h, 1, null); + h.M ? h.M(k, this, b, c) : h.call(null, k, this, b, c); + f += 1 + } else if (a = E(a)) { + Ae(a) ? (d = Wc(a), a = Xc(a), k = d, e = H(d), d = k) : (d = y(a), k = J( + d, 0, null), h = J(d, 1, null), h.M ? h.M(k, this, b, c) : h.call(null, k, this, b, + c), a = z( + a), d = null, e = 0), f = 0; + } else { + return null + } + } + }; + g.Jd = function (a, b, c) { + this.gb = K.l(this.gb, b, c); + return this + }; + g.Ld = function (a, b) { + return this.gb = le.c(this.gb, b) + }; + g.U = function () { + return ja(this) + }; + var dg = function dg(a) { + switch (arguments.length) { + case 1: + return dg.h(arguments[0]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return dg.A(arguments[0], new Jb(c.slice(1), 0, null)) + } + }; + dg.h = function (a) { + return new cg(a, null, null, null) + }; + dg.A = function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, rb); + c = D.c(c, eg); + return new cg(a, d, c, null) + }; + dg.N = function (a) { + var b = y(a); + a = z(a); + return dg.A(b, a) + }; + dg.L = 1; + + function fg(a, b) { + if (a instanceof cg) { + var c = a.df; + if (null != c && !t(c.h ? c.h(b) : c.call(null, b))) { + throw Error( + "Validator rejected reference state"); + } + c = a.state; + a.state = b; + null != a.gb && Lc(a, c, b); + return b + } + return $c(a, b) + } + + var gg = function gg(a) { + switch (arguments.length) { + case 2: + return gg.c(arguments[0], arguments[1]); + case 3: + return gg.l(arguments[0], arguments[1], arguments[2]); + case 4: + return gg.M(arguments[0], arguments[1], arguments[2], arguments[3]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return gg.A(arguments[0], arguments[1], arguments[2], arguments[3], + new Jb(c.slice(4), 0, null)) + } + }; + gg.c = function (a, b) { + if (a instanceof cg) { + var c = a.state; + c = b.h ? b.h(c) : b.call(null, c); + c = fg(a, c) + } else { + c = ad.c(a, b); + } + return c + }; + gg.l = function (a, b, c) { + if (a instanceof cg) { + var d = a.state; + b = b.c ? b.c(d, c) : b.call(null, d, c); + a = fg(a, b) + } else { + a = ad.l(a, b, c); + } + return a + }; + gg.M = function (a, b, c, d) { + if (a instanceof cg) { + var e = a.state; + b = b.l ? b.l(e, c, d) : b.call(null, e, c, d); + a = fg(a, b) + } else { + a = ad.M(a, b, c, d); + } + return a + }; + gg.A = function (a, b, c, d, e) { + return a instanceof cg ? fg(a, Af(b, a.state, c, d, e)) : ad.Z(a, b, c, d, e) + }; + gg.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + var e = z(d); + d = y(e); + e = z(e); + return gg.A(b, a, c, d, e) + }; + gg.L = 4; + + function hg(a) { + this.state = a; + this.m = 32768; + this.J = 0 + } + + hg.prototype.Qe = function (a, b) { + return this.state = b + }; + hg.prototype.pc = function () { + return this.state + }; + var ig = function ig(a) { + switch (arguments.length) { + case 1: + return ig.h(arguments[0]); + case 2: + return ig.c(arguments[0], arguments[1]); + case 3: + return ig.l(arguments[0], arguments[1], arguments[2]); + case 4: + return ig.M(arguments[0], arguments[1], arguments[2], arguments[3]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return ig.A(arguments[0], arguments[1], arguments[2], arguments[3], + new Jb(c.slice(4), 0, null)) + } + }; + ig.h = function (a) { + return function (b) { + return function () { + function c(c, d) { + var e = a.h ? a.h(d) : a.call(null, d); + return b.c ? b.c(c, e) : b.call(null, c, e) + } + + function d(a) { + return b.h ? b.h(a) : b.call(null, a) + } + + function e() { + return b.B ? b.B() : b.call(null) + } + + var f = null, h = function () { + function c(a, b, c) { + var e = null; + if (2 < arguments.length) { + e = 0; + for (var f = Array(arguments.length - 2); e < f.length;) { + f[e] = arguments[e + 2], ++e; + } + e = new Jb(f, 0, null) + } + return d.call(this, a, b, e) + } + + function d(c, d, e) { + d = Kb(a, d, e); + return b.c ? b.c(c, d) : b.call(null, c, d) + } + + c.L = 2; + c.N = + function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = vd(a); + return d(b, c, a) + }; + c.A = d; + return c + }(); + f = function (a, b, f) { + switch (arguments.length) { + case 0: + return e.call(this); + case 1: + return d.call(this, a); + case 2: + return c.call(this, a, b); + default: + var k = null; + if (2 < arguments.length) { + k = 0; + for (var l = Array(arguments.length - 2); k < l.length;) { + l[k] = arguments[k + + 2], ++k; + } + k = new Jb(l, 0, null) + } + return h.A(a, b, k) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + f.L = 2; + f.N = h.N; + f.B = e; + f.h = d; + f.c = c; + f.A = h.A; + return f + }() + } + }; + ig.c = function (a, b) { + return new kf(null, function () { + var c = E(b); + if (c) { + if (Ae(c)) { + for (var d = Wc(c), e = H(d), f = of(e), h = 0; ;) { + if (h < e) { + rf(f, function () { + var b = A.c(d, h); + return a.h ? a.h(b) : a.call(null, b) + }()), h += 1; + } else { + break; + } + } + return qf(f.Da(), ig.c(a, Xc(c))) + } + return ae(function () { + var b = y(c); + return a.h ? a.h(b) : a.call(null, b) + }(), ig.c(a, vd(c))) + } + return null + }, null, null) + }; + ig.l = function (a, b, c) { + return new kf(null, function () { + var d = E(b), e = E(c); + if (d && e) { + var f = ae; + var h = y(d); + var k = y(e); + h = a.c ? a.c(h, k) : a.call(null, h, k); + d = f(h, ig.l(a, vd(d), vd(e))) + } else { + d = null; + } + return d + }, null, null) + }; + ig.M = function (a, b, c, d) { + return new kf(null, function () { + var e = E(b), f = E(c), h = E(d); + if (e && f && h) { + var k = ae; + var l = y(e); + var p = y(f), m = y(h); + l = a.l ? a.l(l, p, m) : a.call(null, l, p, m); + e = k(l, ig.M(a, vd(e), vd(f), vd(h))) + } else { + e = null; + } + return e + }, null, null) + }; + ig.A = function (a, b, c, d, e) { + var f = function l(a) { + return new kf(null, function () { + var b = ig.c(E, a); + return Vf(Ve, b) ? ae(ig.c(y, b), l(ig.c(vd, b))) : null + }, null, null) + }; + return ig.c(function () { + return function (b) { + return P(a, b) + } + }(f), f(ge.A(e, d, be([c, b])))) + }; + ig.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + var e = z(d); + d = y(e); + e = z(e); + return ig.A(b, a, c, d, e) + }; + ig.L = 4; + + function jg(a, b) { + return new kf(null, function () { + if (0 < a) { + var c = E(b); + return c ? ae(y(c), jg(a - 1, vd(c))) : null + } + return null + }, null, null) + } + + function kg(a, b) { + return new kf(null, function (c) { + return function () { + return c(a, b) + } + }(function (a, b) { + for (; ;) { + var c = E(b); + if (0 < a && c) { + var d = a - 1; + c = vd(c); + a = d; + b = c + } else { + return c + } + } + }), null, null) + } + + function lg(a) { + return ig.l(function (a) { + return a + }, a, kg(2, a)) + } + + function mg(a) { + return function (b) { + return function (c) { + return function () { + function d(d, e) { + var f = B(c); + if (t(t(f) ? a.h ? a.h(e) : a.call(null, e) : f)) { + return d; + } + bd(c, null); + return b.c ? b.c(d, e) : b.call(null, d, e) + } + + function e(a) { + return b.h ? b.h(a) : b.call(null, a) + } + + function f() { + return b.B ? b.B() : b.call(null) + } + + var h = null; + h = function (a, b) { + switch (arguments.length) { + case 0: + return f.call(this); + case 1: + return e.call(this, a); + case 2: + return d.call(this, a, b) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + h.B = f; + h.h = e; + h.c = d; + return h + }() + }(new hg(!0)) + } + } + + function ng(a, b) { + return new kf(null, function (c) { + return function () { + return c(a, b) + } + }(function (a, b) { + for (; ;) { + var c = E(b), d; + if (d = c) { + d = y(c), d = a.h ? a.h(d) : a.call(null, d); + } + if (t(d)) { + d = a, c = vd(c), a = d, b = c; + } else { + return c + } + } + }), null, null) + } + + var og = function og(a) { + return new kf(null, function () { + var c = E(a); + return c ? O.c(c, og.h ? og.h(c) : og.call(null, c)) : null + }, null, null) + }; + + function pg(a) { + return new kf(null, function () { + return ae(a, pg(a)) + }, null, null) + } + + function qg(a, b) { + return jg(a, pg(b)) + } + + var rg = function rg(a, b) { + return ae(b, new kf(null, function () { + var d = a.h ? a.h(b) : a.call(null, b); + return rg.c ? rg.c(a, d) : rg.call(null, a, d) + }, null, null)) + }; + + function sg(a, b) { + return P(O, Kb(ig, a, b)) + } + + function tg(a) { + return function (b) { + return function () { + function c(c, d) { + return t(a.h ? a.h(d) : a.call(null, d)) ? b.c ? b.c(c, d) : b.call(null, c, d) : c + } + + function d(a) { + return b.h ? b.h(a) : b.call(null, a) + } + + function e() { + return b.B ? b.B() : b.call(null) + } + + var f = null; + f = function (a, b) { + switch (arguments.length) { + case 0: + return e.call(this); + case 1: + return d.call(this, a); + case 2: + return c.call(this, a, b) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + f.B = e; + f.h = d; + f.c = c; + return f + }() + } + } + + function ug(a, b) { + return new kf(null, function () { + var c = E(b); + if (c) { + if (Ae(c)) { + for (var d = Wc(c), e = H(d), f = of(e), h = 0; ;) { + if (h < e) { + var k = A.c(d, h); + k = a.h ? a.h(k) : a.call(null, k); + t(k) && (k = A.c(d, h), f.add(k)); + h += 1 + } else { + break; + } + } + return qf(f.Da(), ug(a, Xc(c))) + } + d = y(c); + c = vd(c); + return t(a.h ? a.h(d) : a.call(null, d)) ? ae(d, ug(a, c)) : ug(a, c) + } + return null + }, null, null) + } + + function vg(a, b) { + return ug(Yf(a), b) + } + + var wg = function wg(a) { + switch (arguments.length) { + case 0: + return wg.B(); + case 1: + return wg.h(arguments[0]); + case 2: + return wg.c(arguments[0], arguments[1]); + case 3: + return wg.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + wg.B = function () { + return he + }; + wg.h = function (a) { + return a + }; + wg.c = function (a, b) { + return null != a ? null != a && (a.J & 4 || q === a.kf) ? tc(Qc(Mb(Pc, Oc(a), b)), qe(a)) : Mb( + Tb, a, b) : Mb(ge, wd, b) + }; + wg.l = function (a, b, c) { + return null != a && (a.J & 4 || q === a.kf) ? tc(Qc(We(b, uf, Oc(a), c)), qe(a)) : We(b, ge, a, + c) + }; + wg.L = 3; + + function xg(a, b) { + return Qc(Mb(function (b, d) { + return uf.c(b, a.h ? a.h(d) : a.call(null, d)) + }, Oc(he), b)) + } + + function yg(a, b, c) { + return new kf(null, function () { + var d = E(c); + if (d) { + var e = jg(a, d); + return a === H(e) ? ae(e, yg(a, b, kg(b, d))) : null + } + return null + }, null, null) + } + + var zg = function zg(a, b, c) { + b = E(b); + var e = y(b), f = z(b); + return f ? K.l(a, e, function () { + var b = D.c(a, e); + return zg.l ? zg.l(b, f, c) : zg.call(null, b, f, c) + }()) : K.l(a, e, c) + }, Ag = function Ag(a) { + switch (arguments.length) { + case 3: + return Ag.l(arguments[0], arguments[1], arguments[2]); + case 4: + return Ag.M(arguments[0], arguments[1], arguments[2], arguments[3]); + case 5: + return Ag.Z(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]); + case 6: + return Ag.Ca(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], + arguments[5]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Ag.A(arguments[0], arguments[1], arguments[2], arguments[3], arguments[4], + arguments[5], new Jb(c.slice(6), 0, null)) + } + }; + Ag.l = function (a, b, c) { + b = E(b); + var d = y(b); + return (b = z(b)) ? K.l(a, d, Ag.l(D.c(a, d), b, c)) : K.l(a, d, function () { + var b = D.c(a, d); + return c.h ? c.h(b) : c.call(null, b) + }()) + }; + Ag.M = function (a, b, c, d) { + b = E(b); + var e = y(b); + return (b = z(b)) ? K.l(a, e, Ag.M(D.c(a, e), b, c, d)) : K.l(a, e, function () { + var b = D.c(a, e); + return c.c ? c.c(b, d) : c.call(null, b, d) + }()) + }; + Ag.Z = function (a, b, c, d, e) { + b = E(b); + var f = y(b); + return (b = z(b)) ? K.l(a, f, Ag.Z(D.c(a, f), b, c, d, e)) : K.l(a, f, function () { + var b = D.c(a, f); + return c.l ? c.l(b, d, e) : c.call(null, b, d, e) + }()) + }; + Ag.Ca = function (a, b, c, d, e, f) { + b = E(b); + var h = y(b); + return (b = z(b)) ? K.l(a, h, Ag.Ca(D.c(a, h), b, c, d, e, f)) : K.l(a, h, function () { + var b = D.c(a, h); + return c.M ? c.M(b, d, e, f) : c.call(null, b, d, e, f) + }()) + }; + Ag.A = function (a, b, c, d, e, f, h) { + var k = E(b); + b = y(k); + return (k = z(k)) ? K.l(a, b, oe(Ag, D.c(a, b), k, c, d, be([e, f, h]))) : K.l(a, b, + oe(c, D.c(a, b), d, e, f, be([h]))) + }; + Ag.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + var e = z(d); + d = y(e); + var f = z(e); + e = y(f); + var h = z(f); + f = y(h); + h = z(h); + return Ag.A(b, a, c, d, e, f, h) + }; + Ag.L = 6; + + function Bg(a, b, c) { + return K.l(a, b, function () { + var d = D.c(a, b); + return c.h ? c.h(d) : c.call(null, d) + }()) + } + + function Cg(a, b, c, d) { + return K.l(a, b, function () { + var e = D.c(a, b); + return c.c ? c.c(e, d) : c.call(null, e, d) + }()) + } + + function Dg(a, b, c) { + var d = V, e = Eg; + return K.l(a, d, function () { + var f = D.c(a, d); + return e.l ? e.l(f, b, c) : e.call(null, f, b, c) + }()) + } + + function Fg(a, b) { + this.la = a; + this.o = b + } + + function Gg(a) { + return new Fg(a, + [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null]) + } + + function Hg(a) { + return new Fg(a.la, Gb(a.o)) + } + + function Ig(a) { + a = a.F; + return 32 > a ? 0 : a - 1 >>> 5 << 5 + } + + function Jg(a, b, c) { + for (; ;) { + if (0 === b) { + return c; + } + var d = Gg(a); + d.o[0] = c; + c = d; + b -= 5 + } + } + + var Kg = function Kg(a, b, c, d) { + var f = Hg(c), h = a.F - 1 >>> b & 31; + 5 === b ? f.o[h] = d : (c = c.o[h], null != c ? (b -= 5, a = Kg.M ? Kg.M(a, b, c, d) : Kg.call( + null, a, b, c, d)) : a = Jg(null, b - 5, d), f.o[h] = a); + return f + }; + + function Lg(a, b) { + throw Error(["No item ", v.h(a), " in vector of length ", v.h(b)].join("")); + } + + function Mg(a, b) { + if (b >= Ig(a)) { + return a.fa; + } + for (var c = a.root, d = a.shift; ;) { + if (0 < d) { + var e = d - 5; + c = c.o[b >>> d & 31]; + d = e + } else { + return c.o + } + } + } + + var Ng = function Ng(a, b, c, d, e) { + var h = Hg(c); + if (0 === b) { + h.o[d & 31] = e; + } else { + var k = d >>> b & 31; + b -= 5; + c = c.o[k]; + a = Ng.Z ? Ng.Z(a, b, c, d, e) : Ng.call(null, a, b, c, d, e); + h.o[k] = a + } + return h + }, Og = function Og(a, b, c) { + var e = a.F - 2 >>> b & 31; + if (5 < b) { + b -= 5; + var f = c.o[e]; + a = Og.l ? Og.l(a, b, f) : Og.call(null, a, b, f); + if (null == a && 0 === e) { + return null; + } + c = Hg(c); + c.o[e] = a; + return c + } + if (0 === e) { + return null; + } + c = Hg(c); + c.o[e] = null; + return c + }; + + function Pg(a, b, c, d, e, f) { + this.i = a; + this.base = b; + this.o = c; + this.Ja = d; + this.start = e; + this.end = f + } + + Pg.prototype.ja = function () { + return this.i < this.end + }; + Pg.prototype.next = function () { + 32 === this.i - this.base && (this.o = Mg(this.Ja, this.i), this.base += 32); + var a = this.o[this.i & 31]; + this.i += 1; + return a + }; + + function Qg(a, b, c) { + return new Pg(b, b - b % 32, b < H(a) ? Mg(a, b) : null, a, b, c) + } + + function Rg(a, b, c, d) { + return c < d ? Sg(a, b, Vd(a, c), c + 1, d) : b.B ? b.B() : b.call(null) + } + + function Sg(a, b, c, d, e) { + var f = c; + c = d; + for (d = Mg(a, d); ;) { + if (c < e) { + var h = c & 31; + d = 0 === h ? Mg(a, c) : d; + h = d[h]; + f = b.c ? b.c(f, h) : b.call(null, f, h); + if (Hd(f)) { + return B(f); + } + c += 1 + } else { + return f + } + } + } + + function R(a, b, c, d, e, f) { + this.meta = a; + this.F = b; + this.shift = c; + this.root = d; + this.fa = e; + this.w = f; + this.m = 167668511; + this.J = 139268 + } + + g = R.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return "number" === typeof b ? this.ka(null, b, c) : c + }; + g.Qc = function (a, b, c) { + a = 0; + for (var d = c; ;) { + if (a < this.F) { + var e = Mg(this, a); + c = e.length; + a:for (var f = 0; ;) { + if (f < c) { + var h = f + a, k = e[f]; + d = b.l ? b.l(d, h, k) : b.call(null, d, h, k); + if (Hd(d)) { + e = d; + break a + } + f += 1 + } else { + e = d; + break a + } + } + if (Hd(e)) { + return B(e); + } + a += c; + d = e + } else { + return d + } + } + }; + g.fe = q; + g.$ = function (a, b) { + return (0 <= b && b < this.F ? Mg(this, b) : Lg(b, this.F))[b & 31] + }; + g.ka = function (a, b, c) { + return 0 <= b && b < this.F ? Mg(this, b)[b & 31] : c + }; + g.dc = function (a, b, c) { + if (0 <= b && b < this.F) { + return Ig(this) <= b ? (a = Gb(this.fa), a[b & 31] = c, new R( + this.meta, this.F, this.shift, this.root, a, null)) : new R(this.meta, this.F, this.shift, + Ng(this, this.shift, this.root, b, c), this.fa, null); + } + if (b === this.F) { + return this.X(null, c); + } + throw Error(["Index ", v.h(b), " out of bounds [0,", v.h(this.F), "]"].join("")); + }; + g.ba = function () { + return Qg(this, 0, this.F) + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return this.F + }; + g.fd = function () { + return this.$(null, 0) + }; + g.gd = function () { + return this.$(null, 1) + }; + g.Ac = function () { + return 0 < this.F ? this.$(null, this.F - 1) : null + }; + g.Bc = function () { + if (0 === this.F) { + throw Error("Can't pop empty vector"); + } + if (1 === this.F) { + return tc(he, this.meta); + } + if (1 < this.F - Ig(this)) { + return new R(this.meta, this.F - 1, this.shift, this.root, + this.fa.slice(0, -1), null); + } + var a = Mg(this, this.F - 2), b = Og(this, this.shift, this.root); + b = null == b ? T : b; + var c = this.F - 1; + return 5 < this.shift && null == b.o[1] ? new R(this.meta, c, this.shift - 5, b.o[0], a, null) + : new R(this.meta, c, this.shift, b, a, null) + }; + g.Rc = function () { + return 0 < this.F ? new Zd(this, this.F - 1, null) : null + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + if (b instanceof R) { + if (this.F === H(b)) { + for (var c = this.ba(null), d = dd(b); ;) { + if (c.ja()) { + var e = c.next(), f = d.next(); + if (!G.c(e, f)) { + return !1 + } + } else { + return !0; + } + } + } else { + return !1; + } + } else { + return $d(this, b) + } + }; + g.Pc = function () { + var a = this.F, b = this.shift, c = new Fg({}, Gb(this.root.o)), d = this.fa, + e = [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null]; + Be(d, 0, e, 0, d.length); + return new Tg(a, b, c, e) + }; + g.oa = function () { + return tc(he, this.meta) + }; + g.Fa = function (a, b) { + return Rg(this, b, 0, this.F) + }; + g.Ga = function (a, b, c) { + a = 0; + for (var d = c; ;) { + if (a < this.F) { + var e = Mg(this, a); + c = e.length; + a:for (var f = 0; ;) { + if (f < c) { + var h = e[f]; + d = b.c ? b.c(d, h) : b.call(null, d, h); + if (Hd(d)) { + e = d; + break a + } + f += 1 + } else { + e = d; + break a + } + } + if (Hd(e)) { + return B(e); + } + a += c; + d = e + } else { + return d + } + } + }; + g.O = function (a, b, c) { + if ("number" === typeof b) { + return this.dc(null, b, c); + } + throw Error("Vector's key for assoc must be a number."); + }; + g.yc = function (a, b) { + return Ge(b) ? 0 <= b && b < this.F : !1 + }; + g.S = function () { + if (0 === this.F) { + var a = null; + } else if (32 >= this.F) { + a = new Jb(this.fa, 0, null); + } else { + a:{ + a = this.root; + for (var b = this.shift; ;) { + if (0 < b) { + b -= 5, a = a.o[0]; + } else { + a = a.o; + break a + } + } + } + a = new Ug(this, a, 0, 0, null, null) + } + return a + }; + g.T = function (a, b) { + return new R(b, this.F, this.shift, this.root, this.fa, this.w) + }; + g.X = function (a, b) { + if (32 > this.F - Ig(this)) { + for (var c = this.fa.length, d = Array(c + 1), e = 0; ;) { + if (e + < c) { + d[e] = this.fa[e], e += 1; + } else { + break; + } + } + d[c] = b; + return new R(this.meta, this.F + 1, this.shift, this.root, d, null) + } + c = (d = this.F >>> 5 > 1 << this.shift) ? this.shift + 5 : this.shift; + d ? (d = Gg(null), d.o[0] = this.root, e = Jg(null, this.shift, + new Fg(null, this.fa)), d.o[1] = e) : d = Kg(this, this.shift, this.root, + new Fg(null, this.fa)); + return new R(this.meta, this.F + 1, c, d, [b], null) + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.$(null, c); + case 3: + return this.ka(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.$(null, c) + }; + a.l = function (a, c, d) { + return this.ka(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.$(null, a) + }; + g.c = function (a, b) { + return this.ka(null, a, b) + }; + var T = new Fg(null, + [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null]), he = new R(null, 0, 5, T, [], Cd); + + function Vg(a) { + var b = a.length; + if (32 > b) { + return new R(null, b, 5, T, a, null); + } + for (var c = 32, d = (new R(null, 32, 5, T, a.slice(0, 32), null)).Pc(null); ;) { + if (c < b) { + var e = c + 1; + d = uf.c(d, a[c]); + c = e + } else { + return Qc(d) + } + } + } + + R.prototype[Fb] = function () { + return yd(this) + }; + + function Wg(a) { + return vb(a) ? Vg(a) : Qc(Mb(Pc, Oc(he), a)) + } + + var Xg = function Xg(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Xg.A(0 < c.length ? new Jb(c.slice(0), 0, null) : null) + }; + Xg.A = function (a) { + return a instanceof Jb && 0 === a.i ? Vg(a.o) : Wg(a) + }; + Xg.L = 0; + Xg.N = function (a) { + return Xg.A(E(a)) + }; + + function Ug(a, b, c, d, e, f) { + this.zb = a; + this.node = b; + this.i = c; + this.ab = d; + this.meta = e; + this.w = f; + this.m = 32375020; + this.J = 1536 + } + + g = Ug.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + if (this.ab + 1 < this.node.length) { + var a = new Ug(this.zb, this.node, this.i, this.ab + 1, null, null); + return null == a ? null : a + } + return this.Me(null) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(he, this.meta) + }; + g.Fa = function (a, b) { + return Rg(this.zb, b, this.i + this.ab, H(this.zb)) + }; + g.Ga = function (a, b, c) { + return Sg(this.zb, b, c, this.i + this.ab, H(this.zb)) + }; + g.Ia = function () { + return this.node[this.ab] + }; + g.bb = function () { + if (this.ab + 1 < this.node.length) { + var a = new Ug(this.zb, this.node, this.i, this.ab + 1, null, null); + return null == a ? wd : a + } + return this.Hd(null) + }; + g.S = function () { + return this + }; + g.ge = function () { + var a = this.node; + return new nf(a, this.ab, a.length) + }; + g.Hd = function () { + var a = this.i + this.node.length; + return a < Qb(this.zb) ? new Ug(this.zb, Mg(this.zb, a), a, 0, null, null) : wd + }; + g.T = function (a, b) { + return new Ug(this.zb, this.node, this.i, this.ab, b, null) + }; + g.X = function (a, b) { + return ae(b, this) + }; + g.Me = function () { + var a = this.i + this.node.length; + return a < Qb(this.zb) ? new Ug(this.zb, Mg(this.zb, a), a, 0, null, null) : null + }; + Ug.prototype[Fb] = function () { + return yd(this) + }; + + function Yg(a, b, c, d, e) { + this.meta = a; + this.Ja = b; + this.start = c; + this.end = d; + this.w = e; + this.m = 167666463; + this.J = 139264 + } + + g = Yg.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return "number" === typeof b ? this.ka(null, b, c) : c + }; + g.Qc = function (a, b, c) { + a = this.start; + for (var d = 0; ;) { + if (a < this.end) { + var e = d, f = A.c(this.Ja, a); + c = b.l ? b.l(c, e, f) : b.call(null, c, e, f); + if (Hd(c)) { + return B(c); + } + d += 1; + a += 1 + } else { + return c + } + } + }; + g.$ = function (a, b) { + return 0 > b || this.end <= this.start + b ? Lg(b, this.end - this.start) : A.c(this.Ja, + this.start + b) + }; + g.ka = function (a, b, c) { + return 0 > b || this.end <= this.start + b ? c : A.l(this.Ja, this.start + b, c) + }; + g.dc = function (a, b, c) { + a = this.start + b; + if (0 > b || this.end + 1 <= a) { + throw Error( + ["Index ", v.h(b), " out of bounds [0,", v.h(this.W(null)), "]"].join("")); + } + b = this.meta; + c = K.l(this.Ja, a, c); + var d = this.end; + a += 1; + return Zg(b, c, this.start, d > a ? d : a, null) + }; + g.ba = function () { + return null != this.Ja && q === this.Ja.fe ? Qg(this.Ja, this.start, this.end) : new Jf(Hf, + this) + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return this.end - this.start + }; + g.Ac = function () { + return A.c(this.Ja, this.end - 1) + }; + g.Bc = function () { + if (this.start === this.end) { + throw Error("Can't pop empty vector"); + } + return Zg(this.meta, this.Ja, this.start, this.end - 1, null) + }; + g.Rc = function () { + return this.start !== this.end ? new Zd(this, this.end - this.start - 1, null) : null + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(he, this.meta) + }; + g.Fa = function (a, b) { + return null != this.Ja && q === this.Ja.fe ? Rg(this.Ja, b, this.start, this.end) : Kd(this, b) + }; + g.Ga = function (a, b, c) { + return null != this.Ja && q === this.Ja.fe ? Sg(this.Ja, b, c, this.start, this.end) : Ld(this, + b, c) + }; + g.O = function (a, b, c) { + if ("number" === typeof b) { + return this.dc(null, b, c); + } + throw Error("Subvec's key for assoc must be a number."); + }; + g.S = function () { + var a = this; + return function (b) { + return function e(d) { + return d === a.end ? null : ae(A.c(a.Ja, d), new kf(null, function () { + return function () { + return e(d + 1) + } + }(b), null, null)) + } + }(this)(a.start) + }; + g.T = function (a, b) { + return Zg(b, this.Ja, this.start, this.end, this.w) + }; + g.X = function (a, b) { + return Zg(this.meta, qc(this.Ja, this.end, b), this.start, this.end + 1, null) + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.$(null, c); + case 3: + return this.ka(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.$(null, c) + }; + a.l = function (a, c, d) { + return this.ka(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.$(null, a) + }; + g.c = function (a, b) { + return this.ka(null, a, b) + }; + Yg.prototype[Fb] = function () { + return yd(this) + }; + + function Zg(a, b, c, d, e) { + for (; ;) { + if (b instanceof Yg) { + c = b.start + c, d = b.start + d, b = b.Ja; + } else { + if (!ze(b)) { + throw Error("v must satisfy IVector"); + } + var f = H(b); + if (0 > c || 0 > d || c > f || d > f) { + throw Error("Index out of bounds"); + } + return new Yg(a, b, c, d, e) + } + } + } + + function $g(a, b) { + return a === b.la ? b : new Fg(a, Gb(b.o)) + } + + var ah = function ah(a, b, c, d) { + c = $g(a.root.la, c); + var f = a.F - 1 >>> b & 31; + if (5 === b) { + a = d; + } else { + var h = c.o[f]; + null != h ? (b -= 5, a = ah.M ? ah.M(a, b, h, d) : ah.call(null, a, b, h, d)) : a = Jg( + a.root.la, b - 5, d) + } + c.o[f] = a; + return c + }; + + function Tg(a, b, c, d) { + this.F = a; + this.shift = b; + this.root = c; + this.fa = d; + this.J = 88; + this.m = 275 + } + + g = Tg.prototype; + g.Dc = function (a, b) { + if (this.root.la) { + if (32 > this.F - Ig(this)) { + this.fa[this.F & 31] = b; + } else { + var c = new Fg(this.root.la, this.fa), + d = [null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null]; + d[0] = b; + this.fa = d; + if (this.F >>> 5 > 1 << this.shift) { + d = [null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null]; + var e = this.shift + + 5; + d[0] = this.root; + d[1] = Jg(this.root.la, this.shift, c); + this.root = new Fg(this.root.la, d); + this.shift = e + } else { + this.root = ah(this, this.shift, this.root, c) + } + } + this.F += 1; + return this + } + throw Error("conj! after persistent!"); + }; + g.kd = function () { + if (this.root.la) { + this.root.la = null; + var a = this.F - Ig(this), b = Array(a); + Be(this.fa, 0, b, 0, a); + return new R(null, this.F, this.shift, this.root, b, null) + } + throw Error("persistent! called twice"); + }; + g.Cc = function (a, b, c) { + if ("number" === typeof b) { + return bh(this, b, c); + } + throw Error("TransientVector's key for assoc! must be a number."); + }; + + function bh(a, b, c) { + if (a.root.la) { + if (0 <= b && b < a.F) { + if (Ig(a) <= b) { + a.fa[b & 31] = c; + } else { + var d = function () { + return function () { + return function k(d, h) { + var f = $g(a.root.la, h); + if (0 === d) { + f.o[b & 31] = c; + } else { + var p = b >>> d & 31, m = k(d - 5, f.o[p]); + f.o[p] = m + } + return f + } + }(a)(a.shift, a.root) + }(); + a.root = d + } + return a + } + if (b === a.F) { + return a.Dc(null, c); + } + throw Error( + ["Index ", v.h(b), " out of bounds for TransientVector of length", v.h(a.F)].join("")); + } + throw Error("assoc! after persistent!"); + } + + g.W = function () { + if (this.root.la) { + return this.F; + } + throw Error("count after persistent!"); + }; + g.$ = function (a, b) { + if (this.root.la) { + return (0 <= b && b < this.F ? Mg(this, b) : Lg(b, this.F))[b & 31]; + } + throw Error("nth after persistent!"); + }; + g.ka = function (a, b, c) { + return 0 <= b && b < this.F ? this.$(null, b) : c + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return "number" === typeof b ? this.ka(null, b, c) : c + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.V(null, c); + case 3: + return this.I(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.V(null, c) + }; + a.l = function (a, c, d) { + return this.I(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.V(null, a) + }; + g.c = function (a, b) { + return this.I(null, a, b) + }; + + function ch() { + this.m = 2097152; + this.J = 0 + } + + ch.prototype.equiv = function (a) { + return this.K(null, a) + }; + ch.prototype.K = function () { + return !1 + }; + var dh = new ch; + + function eh(a, b) { + return Ee( + xe(b) && !ye(b) ? H(a) === H(b) ? (null != a ? a.m & 1048576 || q === a.Uf || (a.m ? 0 : Ab( + wc, a)) : Ab(wc, a)) ? Ue(function (a, d, e) { + return G.c(D.l(b, d, dh), e) ? !0 : new Gd(!1) + }, !0, a) : Vf(function (a) { + return G.c(D.l(b, y(a), dh), ee(a)) + }, a) : null : null) + } + + function fh(a, b, c, d, e) { + this.i = a; + this.Mf = b; + this.Ie = c; + this.wf = d; + this.Se = e + } + + fh.prototype.ja = function () { + var a = this.i < this.Ie; + return a ? a : this.Se.ja() + }; + fh.prototype.next = function () { + if (this.i < this.Ie) { + var a = Vd(this.wf, this.i); + this.i += 1; + return new R(null, 2, 5, T, [a, cc.c(this.Mf, a)], null) + } + return this.Se.next() + }; + fh.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function gh(a) { + this.s = a + } + + gh.prototype.next = function () { + if (null != this.s) { + var a = y(this.s), b = J(a, 0, null); + a = J(a, 1, null); + this.s = z(this.s); + return {value: [b, a], done: !1} + } + return {value: null, done: !0} + }; + + function hh(a) { + this.s = a + } + + hh.prototype.next = function () { + if (null != this.s) { + var a = y(this.s); + this.s = z(this.s); + return {value: [a, a], done: !1} + } + return {value: null, done: !0} + }; + + function ih(a, b) { + if (b instanceof L) { + a:{ + var c = a.length; + for (var d = b.ea, e = 0; ;) { + if (c <= e) { + c = -1; + break a + } + if (a[e] instanceof L && d === a[e].ea) { + c = e; + break a + } + e += 2 + } + } + } else if (ca(b) || "number" === typeof b) { + a:for (c = a.length, d = 0; ;) { + if (c <= d) { + c = -1; + break a + } + if (b === a[d]) { + c = d; + break a + } + d += 2 + } + } else if (b instanceof rd) { + a:for (c = a.length, d = b.Zb, e = 0; ;) { + if (c <= e) { + c = -1; + break a + } + if (a[e] instanceof rd && d === a[e].Zb) { + c = e; + break a + } + e += 2 + } + } else if (null == b) { + a:for (c = a.length, d = 0; ;) { + if (c <= d) { + c = -1; + break a + } + if (null == a[d]) { + c = d; + break a + } + d += 2 + } + } else { + a:for (c = a.length, + d = 0; ;) { + if (c <= d) { + c = -1; + break a + } + if (G.c(b, a[d])) { + c = d; + break a + } + d += 2 + } + } + return c + } + + function jh(a, b, c) { + this.o = a; + this.i = b; + this.hb = c; + this.m = 32374990; + this.J = 0 + } + + g = jh.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.hb + }; + g.Ka = function () { + return this.i < this.o.length - 2 ? new jh(this.o, this.i + 2, this.hb) : null + }; + g.W = function () { + return (this.o.length - this.i) / 2 + }; + g.U = function () { + return Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.hb) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return new R(null, 2, 5, T, [this.o[this.i], this.o[this.i + 1]], null) + }; + g.bb = function () { + return this.i < this.o.length - 2 ? new jh(this.o, this.i + 2, this.hb) : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new jh(this.o, this.i, b) + }; + g.X = function (a, b) { + return ae(b, this) + }; + jh.prototype[Fb] = function () { + return yd(this) + }; + + function kh(a, b, c) { + this.o = a; + this.i = b; + this.F = c + } + + kh.prototype.ja = function () { + return this.i < this.F + }; + kh.prototype.next = function () { + var a = new R(null, 2, 5, T, [this.o[this.i], this.o[this.i + 1]], null); + this.i += 2; + return a + }; + + function r(a, b, c, d) { + this.meta = a; + this.F = b; + this.o = c; + this.w = d; + this.m = 16647951; + this.J = 139268 + } + + g = r.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.keys = function () { + return yd(lh(this)) + }; + g.entries = function () { + return new gh(E(E(this))) + }; + g.values = function () { + return yd(mh(this)) + }; + g.has = function (a) { + return He(this, a) + }; + g.get = function (a, b) { + return this.I(null, a, b) + }; + g.forEach = function (a) { + for (var b = E(this), c = null, d = 0, e = 0; ;) { + if (e < d) { + var f = c.$(null, e), h = J(f, 0, null); + f = J(f, 1, null); + a.c ? a.c(f, h) : a.call(null, f, h); + e += 1 + } else if (b = E(b)) { + Ae(b) ? (c = Wc(b), b = Xc(b), h = c, d = H(c), c = h) : (c = y(b), h = J( + c, 0, null), f = J(c, 1, null), a.c ? a.c(f, h) : a.call(null, f, h), b = z( + b), c = null, d = 0), e = 0; + } else { + return null + } + } + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + a = ih(this.o, b); + return -1 === a ? c : this.o[a + 1] + }; + g.Qc = function (a, b, c) { + a = this.o.length; + for (var d = 0; ;) { + if (d < a) { + var e = this.o[d], f = this.o[d + 1]; + c = b.l ? b.l(c, e, f) : b.call(null, c, e, f); + if (Hd(c)) { + return B(c); + } + d += 2 + } else { + return c + } + } + }; + g.ba = function () { + return new kh(this.o, 0, 2 * this.F) + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return this.F + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Dd(this) + }; + g.K = function (a, b) { + if (xe(b) && !ye(b)) { + var c = this.o.length; + if (this.F === b.W(null)) { + for (var d = 0; ;) { + if (d < c) { + var e = b.I(null, this.o[d], Ce); + if (e !== Ce) { + if (G.c(this.o[d + 1], e)) { + d += 2; + } else { + return !1; + } + } else { + return !1 + } + } else { + return !0; + } + } + } else { + return !1 + } + } else { + return !1 + } + }; + g.Pc = function () { + return new nh({}, this.o.length, Gb(this.o)) + }; + g.oa = function () { + return tc(Ef, this.meta) + }; + g.Fa = function (a, b) { + return Re(this, b) + }; + g.Ga = function (a, b, c) { + return Se(this, b, c) + }; + g.ga = function (a, b) { + if (0 <= ih(this.o, b)) { + var c = this.o.length, d = c - 2; + if (0 === d) { + return this.oa(null); + } + d = Array(d); + for (var e = 0, f = 0; ;) { + if (e >= c) { + return new r(this.meta, this.F - 1, d, null); + } + G.c(b, this.o[e]) || (d[f] = this.o[e], d[f + 1] = this.o[e + 1], f += 2); + e += 2 + } + } else { + return this + } + }; + g.O = function (a, b, c) { + a = ih(this.o, b); + if (-1 === a) { + if (this.F < oh) { + a = this.o; + for (var d = a.length, e = Array(d + 2), f = 0; ;) { + if (f + < d) { + e[f] = a[f], f += 1; + } else { + break; + } + } + e[d] = b; + e[d + 1] = c; + return new r(this.meta, this.F + 1, e, null) + } + return tc(ec(wg.c(ph, this), b, c), this.meta) + } + if (c === this.o[a + 1]) { + return this; + } + b = Gb(this.o); + b[a + 1] = c; + return new r(this.meta, this.F, b, null) + }; + g.yc = function (a, b) { + return -1 !== ih(this.o, b) + }; + g.S = function () { + var a = this.o; + return 0 <= a.length - 2 ? new jh(a, 0, null) : null + }; + g.T = function (a, b) { + return new r(b, this.F, this.o, this.w) + }; + g.X = function (a, b) { + if (ze(b)) { + return this.O(null, A.c(b, 0), A.c(b, 1)); + } + for (var c = this, d = E(b); ;) { + if (null == d) { + return c; + } + var e = y(d); + if (ze(e)) { + c = c.O(null, A.c(e, 0), A.c(e, 1)), d = z(d); + } else { + throw Error( + "conj on a map takes map entries or seqables of map entries"); + } + } + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.V(null, c); + case 3: + return this.I(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.V(null, c) + }; + a.l = function (a, c, d) { + return this.I(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.V(null, a) + }; + g.c = function (a, b) { + return this.I(null, a, b) + }; + var Ef = new r(null, 0, [], Ed), oh = 8; + + function ke(a) { + for (var b = [], c = 0; ;) { + if (c < a.length) { + var d = a[c], e = a[c + 1], f = ih(b, d); + -1 === f ? (f = b, f.push(d), f.push(e)) : b[f + 1] = e; + c += 2 + } else { + break; + } + } + return new r(null, b.length / 2, b, null) + } + + r.prototype[Fb] = function () { + return yd(this) + }; + + function nh(a, b, c) { + this.Uc = a; + this.Zc = b; + this.o = c; + this.m = 258; + this.J = 56 + } + + g = nh.prototype; + g.W = function () { + if (t(this.Uc)) { + return Ze(this.Zc); + } + throw Error("count after persistent!"); + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + if (t(this.Uc)) { + return a = ih(this.o, b), -1 === a ? c : this.o[a + 1]; + } + throw Error("lookup after persistent!"); + }; + g.Dc = function (a, b) { + if (t(this.Uc)) { + if (null != b ? b.m & 2048 || q === b.sf || (b.m ? 0 : Ab(hc, b)) : Ab(hc, b)) { + return this.Cc( + null, jc(b), kc(b)); + } + for (var c = E(b), d = this; ;) { + var e = y(c); + if (t(e)) { + c = z(c), d = d.Cc(null, jc(e), kc(e)); + } else { + return d + } + } + } else { + throw Error("conj! after persistent!"); + } + }; + g.kd = function () { + if (t(this.Uc)) { + return this.Uc = !1, new r(null, Ze(this.Zc), this.o, null); + } + throw Error("persistent! called twice"); + }; + g.Cc = function (a, b, c) { + if (t(this.Uc)) { + a = ih(this.o, b); + if (-1 === a) { + if (this.Zc + 2 <= 2 * oh) { + return this.Zc += 2, this.o.push(b), this.o.push(c), this; + } + a:{ + a = this.Zc; + var d = this.o; + var e = Oc(ph); + for (var f = 0; ;) { + if (f < a) { + e = Rc(e, d[f], d[f + 1]), f += 2; + } else { + break a + } + } + } + return Rc(e, b, c) + } + c !== this.o[a + 1] && (this.o[a + 1] = c); + return this + } + throw Error("assoc! after persistent!"); + }; + + function qh() { + this.H = !1 + } + + function rh(a, b) { + return a === b ? !0 : N(a, b) ? !0 : G.c(a, b) + } + + function sh(a, b, c) { + a = Gb(a); + a[b] = c; + return a + } + + function th(a, b) { + var c = Array(a.length - 2); + Be(a, 0, c, 0, 2 * b); + Be(a, 2 * (b + 1), c, 2 * b, c.length - 2 * b); + return c + } + + function uh(a, b, c, d) { + a = a.Gc(b); + a.o[c] = d; + return a + } + + function vh(a, b, c) { + for (var d = a.length, e = 0, f = c; ;) { + if (e < d) { + c = a[e]; + if (null != c) { + var h = a[e + 1]; + c = b.l ? b.l(f, c, h) : b.call(null, f, c, h) + } else { + c = a[e + 1], c = null != c ? c.Jc(b, f) : f; + } + if (Hd(c)) { + return c; + } + e += 2; + f = c + } else { + return f + } + } + } + + function wh(a, b, c, d) { + this.o = a; + this.i = b; + this.sd = c; + this.Lb = d + } + + wh.prototype.advance = function () { + for (var a = this.o.length; ;) { + if (this.i < a) { + var b = this.o[this.i], c = this.o[this.i + 1]; + null != b ? b = this.sd = new R(null, 2, 5, T, [b, c], null) : null != c ? (b = dd( + c), b = b.ja() ? this.Lb = b : !1) : b = !1; + this.i += 2; + if (b) { + return !0 + } + } else { + return !1 + } + } + }; + wh.prototype.ja = function () { + var a = null != this.sd; + return a ? a : (a = null != this.Lb) ? a : this.advance() + }; + wh.prototype.next = function () { + if (null != this.sd) { + var a = this.sd; + this.sd = null; + return a + } + if (null != this.Lb) { + return a = this.Lb.next(), this.Lb.ja() || (this.Lb = null), a; + } + if (this.advance()) { + return this.next(); + } + throw Error("No such element"); + }; + wh.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function xh(a, b, c) { + this.la = a; + this.na = b; + this.o = c; + this.J = 131072; + this.m = 0 + } + + g = xh.prototype; + g.Gc = function (a) { + if (a === this.la) { + return this; + } + var b = $e(this.na), c = Array(0 > b ? 4 : 2 * (b + 1)); + Be(this.o, 0, c, 0, 2 * b); + return new xh(a, this.na, c) + }; + g.qd = function () { + return yh(this.o, 0, null) + }; + g.Jc = function (a, b) { + return vh(this.o, a, b) + }; + g.sc = function (a, b, c, d) { + var e = 1 << (b >>> a & 31); + if (0 === (this.na & e)) { + return d; + } + var f = $e(this.na & e - 1); + e = this.o[2 * f]; + f = this.o[2 * f + 1]; + return null == e ? f.sc(a + 5, b, c, d) : rh(c, e) ? f : d + }; + g.Kb = function (a, b, c, d, e, f) { + var h = 1 << (c >>> b & 31), k = $e(this.na & h - 1); + if (0 === (this.na & h)) { + var l = $e(this.na); + if (2 * l < this.o.length) { + a = this.Gc(a); + b = a.o; + f.H = !0; + a:for (c = 2 * (l - k), f = 2 * k + (c - 1), l = 2 * (k + 1) + (c - 1); ;) { + if (0 === c) { + break a; + } + b[l] = b[f]; + --l; + --c; + --f + } + b[2 * k] = d; + b[2 * k + 1] = e; + a.na |= h; + return a + } + if (16 <= l) { + k = [null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null]; + k[c >>> b & 31] = zh.Kb(a, b + 5, c, d, e, f); + for (e = d = 0; ;) { + if (32 > d) { + 0 !== + (this.na >>> d & 1) && (k[d] = null != this.o[e] ? zh.Kb(a, b + 5, od(this.o[e]), + this.o[e], + this.o[e + 1], f) : this.o[e + 1], e += 2), d += 1; + } else { + break; + } + } + return new Ah(a, l + 1, k) + } + b = Array(2 * (l + 4)); + Be(this.o, 0, b, 0, 2 * k); + b[2 * k] = d; + b[2 * k + 1] = e; + Be(this.o, 2 * k, b, 2 * (k + 1), 2 * (l - k)); + f.H = !0; + a = this.Gc(a); + a.o = b; + a.na |= h; + return a + } + l = this.o[2 * k]; + h = this.o[2 * k + 1]; + if (null == l) { + return l = h.Kb(a, b + 5, c, d, e, f), l === h ? this : uh(this, a, 2 * k + 1, + l); + } + if (rh(d, l)) { + return e === h ? this : uh(this, a, 2 * k + 1, e); + } + f.H = !0; + f = b + 5; + b = od(l); + if (b === c) { + e = new Bh(null, b, 2, [l, h, d, e]); + } else { + var p = new qh; + e = zh.Kb(a, f, b, l, h, p).Kb(a, f, c, d, e, p) + } + d = 2 * k; + k = 2 * k + 1; + a = this.Gc(a); + a.o[d] = null; + a.o[k] = e; + return a + }; + g.Jb = function (a, b, c, d, e) { + var f = 1 << (b >>> a & 31), h = $e(this.na & f - 1); + if (0 === (this.na & f)) { + var k = $e(this.na); + if (16 <= k) { + h = [null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null]; + h[b >>> a & 31] = zh.Jb(a + 5, b, c, d, e); + for (d = c = 0; ;) { + if (32 > c) { + 0 !== (this.na >>> c & 1) && (h[c] = null != this.o[d] + ? zh.Jb(a + 5, od(this.o[d]), this.o[d], this.o[d + 1], e) : this.o[d + + 1], d += 2), c += 1; + } else { + break; + } + } + return new Ah(null, k + 1, h) + } + a = Array(2 * (k + 1)); + Be(this.o, + 0, a, 0, 2 * h); + a[2 * h] = c; + a[2 * h + 1] = d; + Be(this.o, 2 * h, a, 2 * (h + 1), 2 * (k - h)); + e.H = !0; + return new xh(null, this.na | f, a) + } + var l = this.o[2 * h]; + f = this.o[2 * h + 1]; + if (null == l) { + return k = f.Jb(a + 5, b, c, d, e), k === f ? this : new xh(null, this.na, + sh(this.o, 2 * h + 1, k)); + } + if (rh(c, l)) { + return d === f ? this : new xh(null, this.na, sh(this.o, 2 * h + 1, d)); + } + e.H = !0; + e = this.na; + k = this.o; + a += 5; + var p = od(l); + if (p === b) { + c = new Bh(null, p, 2, [l, f, c, d]); + } else { + var m = new qh; + c = zh.Jb(a, p, l, f, m).Jb(a, b, c, d, m) + } + a = 2 * h; + h = 2 * h + 1; + d = Gb(k); + d[a] = null; + d[h] = c; + return new xh(null, e, d) + }; + g.rd = function (a, b, c) { + var d = 1 << (b >>> a & 31); + if (0 === (this.na & d)) { + return this; + } + var e = $e(this.na & d - 1), f = this.o[2 * e], h = this.o[2 * e + 1]; + return null == f ? (a = h.rd(a + 5, b, c), a === h ? this : null != a ? new xh(null, this.na, + sh(this.o, 2 * e + 1, a)) : this.na === d ? null : new xh(null, this.na ^ d, th(this.o, e))) + : rh(c, f) ? new xh(null, this.na ^ d, th(this.o, e)) : this + }; + g.ba = function () { + return new wh(this.o, 0, null, null) + }; + var zh = new xh(null, 0, []); + + function Ch(a, b, c) { + this.o = a; + this.i = b; + this.Lb = c + } + + Ch.prototype.ja = function () { + for (var a = this.o.length; ;) { + if (null != this.Lb && this.Lb.ja()) { + return !0; + } + if (this.i < a) { + var b = this.o[this.i]; + this.i += 1; + null != b && (this.Lb = dd(b)) + } else { + return !1 + } + } + }; + Ch.prototype.next = function () { + if (this.ja()) { + return this.Lb.next(); + } + throw Error("No such element"); + }; + Ch.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function Ah(a, b, c) { + this.la = a; + this.F = b; + this.o = c; + this.J = 131072; + this.m = 0 + } + + g = Ah.prototype; + g.Gc = function (a) { + return a === this.la ? this : new Ah(a, this.F, Gb(this.o)) + }; + g.qd = function () { + return Dh(this.o, 0, null) + }; + g.Jc = function (a, b) { + for (var c = this.o.length, d = 0, e = b; ;) { + if (d < c) { + var f = this.o[d]; + if (null != f && (e = f.Jc(a, e), Hd(e))) { + return e; + } + d += 1 + } else { + return e + } + } + }; + g.sc = function (a, b, c, d) { + var e = this.o[b >>> a & 31]; + return null != e ? e.sc(a + 5, b, c, d) : d + }; + g.Kb = function (a, b, c, d, e, f) { + var h = c >>> b & 31, k = this.o[h]; + if (null == k) { + return a = uh(this, a, h, zh.Kb(a, b + 5, c, d, e, f)), a.F += 1, a; + } + b = k.Kb(a, b + 5, c, d, e, f); + return b === k ? this : uh(this, a, h, b) + }; + g.Jb = function (a, b, c, d, e) { + var f = b >>> a & 31, h = this.o[f]; + if (null == h) { + return new Ah(null, this.F + 1, sh(this.o, f, zh.Jb(a + 5, b, c, d, e))); + } + a = h.Jb(a + 5, b, c, d, e); + return a === h ? this : new Ah(null, this.F, sh(this.o, f, a)) + }; + g.rd = function (a, b, c) { + var d = b >>> a & 31, e = this.o[d]; + if (null != e) { + a = e.rd(a + 5, b, c); + if (a === e) { + d = this; + } else if (null == a) { + if (8 >= this.F) { + a:{ + e = this.o; + a = e.length; + b = Array(2 * (this.F - 1)); + c = 0; + for (var f = 1, h = 0; ;) { + if (c < a) { + c !== d && null != e[c] && (b[f] = e[c], f += 2, h |= 1 + << c), c += 1; + } else { + d = new xh(null, h, b); + break a + } + } + } + } else { + d = new Ah(null, this.F - 1, sh(this.o, d, a)); + } + } else { + d = new Ah(null, this.F, + sh(this.o, d, a)); + } + return d + } + return this + }; + g.ba = function () { + return new Ch(this.o, 0, null) + }; + + function Eh(a, b, c) { + b *= 2; + for (var d = 0; ;) { + if (d < b) { + if (rh(c, a[d])) { + return d; + } + d += 2 + } else { + return -1 + } + } + } + + function Bh(a, b, c, d) { + this.la = a; + this.ec = b; + this.F = c; + this.o = d; + this.J = 131072; + this.m = 0 + } + + g = Bh.prototype; + g.Gc = function (a) { + if (a === this.la) { + return this; + } + var b = Array(2 * (this.F + 1)); + Be(this.o, 0, b, 0, 2 * this.F); + return new Bh(a, this.ec, this.F, b) + }; + g.qd = function () { + return yh(this.o, 0, null) + }; + g.Jc = function (a, b) { + return vh(this.o, a, b) + }; + g.sc = function (a, b, c, d) { + a = Eh(this.o, this.F, c); + return 0 > a ? d : rh(c, this.o[a]) ? this.o[a + 1] : d + }; + g.Kb = function (a, b, c, d, e, f) { + if (c === this.ec) { + b = Eh(this.o, this.F, d); + if (-1 === b) { + if (this.o.length > 2 * this.F) { + return b = 2 * this.F, c = 2 * this.F + 1, a = this.Gc( + a), a.o[b] = d, a.o[c] = e, f.H = !0, a.F += 1, a; + } + c = this.o.length; + b = Array(c + 2); + Be(this.o, 0, b, 0, c); + b[c] = d; + b[c + 1] = e; + f.H = !0; + d = this.F + 1; + a === this.la ? (this.o = b, this.F = d, a = this) : a = new Bh(this.la, this.ec, d, b); + return a + } + return this.o[b + 1] === e ? this : uh(this, a, b + 1, e) + } + return (new xh(a, 1 << (this.ec >>> b & 31), [null, this, null, null])).Kb(a, b, c, d, e, f) + }; + g.Jb = function (a, b, c, d, e) { + return b === this.ec ? (a = Eh(this.o, this.F, c), -1 === a ? (a = 2 * this.F, b = Array( + a + 2), Be(this.o, 0, b, 0, a), b[a] = c, b[a + 1] = d, e.H = !0, new Bh(null, this.ec, + this.F + 1, b)) : G.c(this.o[a + 1], d) ? this : new Bh(null, this.ec, this.F, + sh(this.o, a + 1, d))) : (new xh(null, 1 << (this.ec >>> a & 31), [null, this])).Jb(a, b, c, + d, e) + }; + g.rd = function (a, b, c) { + a = Eh(this.o, this.F, c); + return -1 === a ? this : 1 === this.F ? null : new Bh(null, this.ec, this.F - 1, + th(this.o, Ze(a))) + }; + g.ba = function () { + return new wh(this.o, 0, null, null) + }; + + function Fh(a, b, c, d, e) { + this.meta = a; + this.Mb = b; + this.i = c; + this.s = d; + this.w = e; + this.m = 32374988; + this.J = 0 + } + + g = Fh.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + return null == this.s ? yh(this.Mb, this.i + 2, null) : yh(this.Mb, this.i, z(this.s)) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return null == this.s ? new R(null, 2, 5, T, [this.Mb[this.i], this.Mb[this.i + 1]], null) : y( + this.s) + }; + g.bb = function () { + var a = null == this.s ? yh(this.Mb, this.i + 2, null) : yh(this.Mb, this.i, z(this.s)); + return null != a ? a : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new Fh(b, this.Mb, this.i, this.s, this.w) + }; + g.X = function (a, b) { + return ae(b, this) + }; + Fh.prototype[Fb] = function () { + return yd(this) + }; + + function yh(a, b, c) { + if (null == c) { + for (c = a.length; ;) { + if (b < c) { + if (null != a[b]) { + return new Fh(null, a, b, null, null); + } + var d = a[b + 1]; + if (t(d) && (d = d.qd(), t(d))) { + return new Fh(null, a, b + 2, d, null); + } + b += 2 + } else { + return null; + } + } + } else { + return new Fh(null, a, b, c, null) + } + } + + function Gh(a, b, c, d, e) { + this.meta = a; + this.Mb = b; + this.i = c; + this.s = d; + this.w = e; + this.m = 32374988; + this.J = 0 + } + + g = Gh.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + return Dh(this.Mb, this.i, z(this.s)) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return y(this.s) + }; + g.bb = function () { + var a = Dh(this.Mb, this.i, z(this.s)); + return null != a ? a : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new Gh(b, this.Mb, this.i, this.s, this.w) + }; + g.X = function (a, b) { + return ae(b, this) + }; + Gh.prototype[Fb] = function () { + return yd(this) + }; + + function Dh(a, b, c) { + if (null == c) { + for (c = a.length; ;) { + if (b < c) { + var d = a[b]; + if (t(d) && (d = d.qd(), t(d))) { + return new Gh(null, a, b + 1, d, null); + } + b += 1 + } else { + return null; + } + } + } else { + return new Gh(null, a, b, c, null) + } + } + + function Hh(a, b, c) { + this.eb = a; + this.bf = b; + this.xe = c + } + + Hh.prototype.ja = function () { + return !this.xe || this.bf.ja() + }; + Hh.prototype.next = function () { + if (this.xe) { + return this.bf.next(); + } + this.xe = !0; + return new R(null, 2, 5, T, [null, this.eb], null) + }; + Hh.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function Jh(a, b, c, d, e, f) { + this.meta = a; + this.F = b; + this.root = c; + this.cb = d; + this.eb = e; + this.w = f; + this.m = 16123663; + this.J = 139268 + } + + g = Jh.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.keys = function () { + return yd(lh(this)) + }; + g.entries = function () { + return new gh(E(E(this))) + }; + g.values = function () { + return yd(mh(this)) + }; + g.has = function (a) { + return He(this, a) + }; + g.get = function (a, b) { + return this.I(null, a, b) + }; + g.forEach = function (a) { + for (var b = E(this), c = null, d = 0, e = 0; ;) { + if (e < d) { + var f = c.$(null, e), h = J(f, 0, null); + f = J(f, 1, null); + a.c ? a.c(f, h) : a.call(null, f, h); + e += 1 + } else if (b = E(b)) { + Ae(b) ? (c = Wc(b), b = Xc(b), h = c, d = H(c), c = h) : (c = y(b), h = J( + c, 0, null), f = J(c, 1, null), a.c ? a.c(f, h) : a.call(null, f, h), b = z( + b), c = null, d = 0), e = 0; + } else { + return null + } + } + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return null == b ? this.cb ? this.eb : c : null == this.root ? c : this.root.sc(0, od(b), b, c) + }; + g.Qc = function (a, b, c) { + a = this.cb ? b.l ? b.l(c, null, this.eb) : b.call(null, c, null, this.eb) : c; + return Hd(a) ? B(a) : null != this.root ? Jd(this.root.Jc(b, a)) : a + }; + g.ba = function () { + var a = this.root ? dd(this.root) : Cf(); + return this.cb ? new Hh(this.eb, a, !1) : a + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return this.F + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Dd(this) + }; + g.K = function (a, b) { + return eh(this, b) + }; + g.Pc = function () { + return new Kh({}, this.root, this.F, this.cb, this.eb) + }; + g.oa = function () { + return tc(ph, this.meta) + }; + g.ga = function (a, b) { + if (null == b) { + return this.cb ? new Jh(this.meta, this.F - 1, this.root, !1, null, null) : this; + } + if (null == this.root) { + return this; + } + var c = this.root.rd(0, od(b), b); + return c === this.root ? this : new Jh(this.meta, this.F - 1, c, this.cb, this.eb, null) + }; + g.O = function (a, b, c) { + if (null == b) { + return this.cb && c === this.eb ? this : new Jh(this.meta, + this.cb ? this.F : this.F + 1, this.root, !0, c, null); + } + a = new qh; + b = (null == this.root ? zh : this.root).Jb(0, od(b), b, c, a); + return b === this.root ? this : new Jh(this.meta, a.H ? this.F + 1 : this.F, b, this.cb, + this.eb, null) + }; + g.yc = function (a, b) { + return null == b ? this.cb : null == this.root ? !1 : this.root.sc(0, od(b), b, Ce) !== Ce + }; + g.S = function () { + if (0 < this.F) { + var a = null != this.root ? this.root.qd() : null; + return this.cb ? ae(new R(null, 2, 5, T, [null, this.eb], null), a) : a + } + return null + }; + g.T = function (a, b) { + return new Jh(b, this.F, this.root, this.cb, this.eb, this.w) + }; + g.X = function (a, b) { + if (ze(b)) { + return this.O(null, A.c(b, 0), A.c(b, 1)); + } + for (var c = this, d = E(b); ;) { + if (null == d) { + return c; + } + var e = y(d); + if (ze(e)) { + c = c.O(null, A.c(e, 0), A.c(e, 1)), d = z(d); + } else { + throw Error( + "conj on a map takes map entries or seqables of map entries"); + } + } + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.V(null, c); + case 3: + return this.I(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.V(null, c) + }; + a.l = function (a, c, d) { + return this.I(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.V(null, a) + }; + g.c = function (a, b) { + return this.I(null, a, b) + }; + var ph = new Jh(null, 0, null, !1, null, Ed); + + function Pe(a, b) { + for (var c = a.length, d = 0, e = Oc(ph); ;) { + if (d < c) { + var f = d + 1; + e = e.Cc(null, a[d], b[d]); + d = f + } else { + return Qc(e) + } + } + } + + Jh.prototype[Fb] = function () { + return yd(this) + }; + + function Kh(a, b, c, d, e) { + this.la = a; + this.root = b; + this.count = c; + this.cb = d; + this.eb = e; + this.m = 258; + this.J = 56 + } + + function Lh(a, b, c) { + if (a.la) { + if (null == b) { + a.eb !== c && (a.eb = c), a.cb || (a.count += 1, a.cb = !0); + } else { + var d = new qh; + b = (null == a.root ? zh : a.root).Kb(a.la, 0, od(b), b, c, d); + b !== a.root && (a.root = b); + d.H && (a.count += 1) + } + return a + } + throw Error("assoc! after persistent!"); + } + + g = Kh.prototype; + g.W = function () { + if (this.la) { + return this.count; + } + throw Error("count after persistent!"); + }; + g.V = function (a, b) { + return null == b ? this.cb ? this.eb : null : null == this.root ? null : this.root.sc(0, od(b), + b) + }; + g.I = function (a, b, c) { + return null == b ? this.cb ? this.eb : c : null == this.root ? c : this.root.sc(0, od(b), b, c) + }; + g.Dc = function (a, b) { + a:if (this.la) { + if (null != b ? b.m & 2048 || q === b.sf || (b.m ? 0 : Ab(hc, b)) : Ab(hc, + b)) { + var c = Lh(this, jc(b), kc(b)); + } else { + c = E(b); + for (var d = this; ;) { + var e = y(c); + if (t(e)) { + c = z(c), d = Lh(d, jc(e), kc(e)); + } else { + c = d; + break a + } + } + } + } else { + throw Error("conj! after persistent"); + } + return c + }; + g.kd = function () { + if (this.la) { + this.la = null; + var a = new Jh(null, this.count, this.root, this.cb, this.eb, null) + } else { + throw Error("persistent! called twice"); + } + return a + }; + g.Cc = function (a, b, c) { + return Lh(this, b, c) + }; + + function Mh(a, b, c) { + for (var d = b; ;) { + if (null != a) { + b = c ? a.left : a.right, d = ge.c(d, a), a = b; + } else { + return d + } + } + } + + function Nh(a, b, c, d, e) { + this.meta = a; + this.stack = b; + this.vc = c; + this.F = d; + this.w = e; + this.m = 32374990; + this.J = 0 + } + + g = Nh.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.meta + }; + g.Ka = function () { + var a = y(this.stack); + a = Mh(this.vc ? a.right : a.left, z(this.stack), this.vc); + return null == a ? null : new Nh(null, a, this.vc, this.F - 1, null) + }; + g.W = function () { + return 0 > this.F ? H(z(this)) + 1 : this.F + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + var a = this.stack; + return null == a ? null : nc(a) + }; + g.bb = function () { + var a = y(this.stack); + a = Mh(this.vc ? a.right : a.left, z(this.stack), this.vc); + return null != a ? new Nh(null, a, this.vc, this.F - 1, null) : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new Nh(b, this.stack, this.vc, this.F, this.w) + }; + g.X = function (a, b) { + return ae(b, this) + }; + Nh.prototype[Fb] = function () { + return yd(this) + }; + + function Oh(a, b, c) { + return new Nh(null, Mh(a, null, b), b, c, null) + } + + function Ph(a, b, c, d) { + return c instanceof Qh ? c.left instanceof Qh ? new Qh(c.key, c.H, c.left.bc(), + new Rh(a, b, c.right, d, null), null) : c.right instanceof Qh ? new Qh(c.right.key, c.right.H, + new Rh(c.key, c.H, c.left, c.right.left, null), new Rh(a, b, c.right.right, d, null), null) + : new Rh(a, b, c, d, null) : new Rh(a, b, c, d, null) + } + + function Sh(a, b, c, d) { + return d instanceof Qh ? d.right instanceof Qh ? new Qh(d.key, d.H, + new Rh(a, b, c, d.left, null), d.right.bc(), null) : d.left instanceof Qh ? new Qh(d.left.key, + d.left.H, new Rh(a, b, c, d.left.left, null), new Rh(d.key, d.H, d.left.right, d.right, null), + null) : new Rh(a, b, c, d, null) : new Rh(a, b, c, d, null) + } + + function Th(a, b, c, d) { + if (c instanceof Qh) { + return new Qh(a, b, c.bc(), d, null); + } + if (d instanceof Rh) { + return Sh(a, b, c, d.ud()); + } + if (d instanceof Qh && d.left instanceof Rh) { + return new Qh(d.left.key, d.left.H, + new Rh(a, b, c, d.left.left, null), Sh(d.key, d.H, d.left.right, d.right.ud()), null); + } + throw Error("red-black tree invariant violation"); + } + + function Uh(a, b, c, d) { + if (d instanceof Qh) { + return new Qh(a, b, c, d.bc(), null); + } + if (c instanceof Rh) { + return Ph(a, b, c.ud(), d); + } + if (c instanceof Qh && c.right instanceof Rh) { + return new Qh(c.right.key, c.right.H, + Ph(c.key, c.H, c.left.ud(), c.right.left), new Rh(a, b, c.right.right, d, null), null); + } + throw Error("red-black tree invariant violation"); + } + + var Vh = function Vh(a, b, c) { + var e = null != a.left ? function () { + var e = a.left; + return Vh.l ? Vh.l(e, b, c) : Vh.call(null, e, b, c) + }() : c; + if (Hd(e)) { + return e; + } + var f = function () { + var c = a.key, f = a.H; + return b.l ? b.l(e, c, f) : b.call(null, e, c, f) + }(); + if (Hd(f)) { + return f; + } + if (null != a.right) { + var h = a.right; + return Vh.l ? Vh.l(h, b, f) : Vh.call(null, h, b, f) + } + return f + }; + + function Rh(a, b, c, d, e) { + this.key = a; + this.H = b; + this.left = c; + this.right = d; + this.w = e; + this.m = 32402207; + this.J = 0 + } + + g = Rh.prototype; + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.Ee = function (a) { + return a.He(this) + }; + g.ud = function () { + return new Qh(this.key, this.H, this.left, this.right, null) + }; + g.bc = function () { + return this + }; + g.De = function (a) { + return a.Ge(this) + }; + g.replace = function (a, b, c, d) { + return new Rh(a, b, c, d, null) + }; + g.Ge = function (a) { + return new Rh(a.key, a.H, this, a.right, null) + }; + g.He = function (a) { + return new Rh(a.key, a.H, a.left, this, null) + }; + g.Jc = function (a, b) { + return Vh(this, a, b) + }; + g.V = function (a, b) { + return this.ka(null, b, null) + }; + g.I = function (a, b, c) { + return this.ka(null, b, c) + }; + g.$ = function (a, b) { + if (0 === b) { + return this.key; + } + if (1 === b) { + return this.H; + } + throw Error("Index out of bounds"); + }; + g.ka = function (a, b, c) { + return 0 === b ? this.key : 1 === b ? this.H : c + }; + g.dc = function (a, b, c) { + return (new R(null, 2, 5, T, [this.key, this.H], null)).dc(null, b, c) + }; + g.P = function () { + return null + }; + g.W = function () { + return 2 + }; + g.fd = function () { + return this.key + }; + g.gd = function () { + return this.H + }; + g.Ac = function () { + return this.H + }; + g.Bc = function () { + return new R(null, 1, 5, T, [this.key], null) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return he + }; + g.Fa = function (a, b) { + return Kd(this, b) + }; + g.Ga = function (a, b, c) { + return Ld(this, b, c) + }; + g.O = function (a, b, c) { + return K.l(new R(null, 2, 5, T, [this.key, this.H], null), b, c) + }; + g.yc = function (a, b) { + return 0 === b || 1 === b + }; + g.S = function () { + var a = this.key; + return Tb(Tb(wd, this.H), a) + }; + g.T = function (a, b) { + return tc(new R(null, 2, 5, T, [this.key, this.H], null), b) + }; + g.X = function (a, b) { + return new R(null, 3, 5, T, [this.key, this.H, b], null) + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.$(null, c); + case 3: + return this.ka(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.$(null, c) + }; + a.l = function (a, c, d) { + return this.ka(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.$(null, a) + }; + g.c = function (a, b) { + return this.ka(null, a, b) + }; + Rh.prototype[Fb] = function () { + return yd(this) + }; + + function Qh(a, b, c, d, e) { + this.key = a; + this.H = b; + this.left = c; + this.right = d; + this.w = e; + this.m = 32402207; + this.J = 0 + } + + g = Qh.prototype; + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.Ee = function (a) { + return new Qh(this.key, this.H, this.left, a, null) + }; + g.ud = function () { + throw Error("red-black tree invariant violation"); + }; + g.bc = function () { + return new Rh(this.key, this.H, this.left, this.right, null) + }; + g.De = function (a) { + return new Qh(this.key, this.H, a, this.right, null) + }; + g.replace = function (a, b, c, d) { + return new Qh(a, b, c, d, null) + }; + g.Ge = function (a) { + return this.left instanceof Qh ? new Qh(this.key, this.H, this.left.bc(), + new Rh(a.key, a.H, this.right, a.right, null), null) : this.right instanceof Qh ? new Qh( + this.right.key, this.right.H, new Rh(this.key, this.H, this.left, this.right.left, null), + new Rh(a.key, a.H, this.right.right, a.right, null), null) : new Rh(a.key, a.H, this, a.right, + null) + }; + g.He = function (a) { + return this.right instanceof Qh ? new Qh(this.key, this.H, + new Rh(a.key, a.H, a.left, this.left, null), this.right.bc(), null) : this.left instanceof Qh + ? new Qh(this.left.key, this.left.H, new Rh(a.key, a.H, a.left, this.left.left, null), + new Rh(this.key, this.H, this.left.right, this.right, null), null) : new Rh(a.key, a.H, + a.left, this, null) + }; + g.Jc = function (a, b) { + return Vh(this, a, b) + }; + g.V = function (a, b) { + return this.ka(null, b, null) + }; + g.I = function (a, b, c) { + return this.ka(null, b, c) + }; + g.$ = function (a, b) { + if (0 === b) { + return this.key; + } + if (1 === b) { + return this.H; + } + throw Error("Index out of bounds"); + }; + g.ka = function (a, b, c) { + return 0 === b ? this.key : 1 === b ? this.H : c + }; + g.dc = function (a, b, c) { + return (new R(null, 2, 5, T, [this.key, this.H], null)).dc(null, b, c) + }; + g.P = function () { + return null + }; + g.W = function () { + return 2 + }; + g.fd = function () { + return this.key + }; + g.gd = function () { + return this.H + }; + g.Ac = function () { + return this.H + }; + g.Bc = function () { + return new R(null, 1, 5, T, [this.key], null) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return he + }; + g.Fa = function (a, b) { + return Kd(this, b) + }; + g.Ga = function (a, b, c) { + return Ld(this, b, c) + }; + g.O = function (a, b, c) { + return K.l(new R(null, 2, 5, T, [this.key, this.H], null), b, c) + }; + g.yc = function (a, b) { + return 0 === b || 1 === b + }; + g.S = function () { + var a = this.key; + return Tb(Tb(wd, this.H), a) + }; + g.T = function (a, b) { + return tc(new R(null, 2, 5, T, [this.key, this.H], null), b) + }; + g.X = function (a, b) { + return new R(null, 3, 5, T, [this.key, this.H, b], null) + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.$(null, c); + case 3: + return this.ka(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.$(null, c) + }; + a.l = function (a, c, d) { + return this.ka(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.$(null, a) + }; + g.c = function (a, b) { + return this.ka(null, a, b) + }; + Qh.prototype[Fb] = function () { + return yd(this) + }; + var Wh = function Wh(a, b, c, d, e) { + if (null == b) { + return new Qh(c, d, null, null, null); + } + var h = function () { + var d = b.key; + return a.c ? a.c(c, d) : a.call(null, c, d) + }(); + if (0 === h) { + return e[0] = b, null; + } + if (0 > h) { + return h = function () { + var h = b.left; + return Wh.Z ? Wh.Z(a, h, c, d, e) : Wh.call(null, a, h, c, d, e) + }(), null != h ? b.De(h) : null; + } + h = function () { + var h = b.right; + return Wh.Z ? Wh.Z(a, h, c, d, e) : Wh.call(null, a, h, c, d, e) + }(); + return null != h ? b.Ee(h) : null + }, Xh = function Xh(a, b) { + if (null == a) { + return b; + } + if (null == b) { + return a; + } + if (a instanceof Qh) { + if (b instanceof Qh) { + var d = + function () { + var d = a.right, f = b.left; + return Xh.c ? Xh.c(d, f) : Xh.call(null, d, f) + }(); + return d instanceof Qh ? new Qh(d.key, d.H, new Qh(a.key, a.H, a.left, d.left, null), + new Qh(b.key, b.H, d.right, b.right, null), null) : new Qh(a.key, a.H, a.left, + new Qh(b.key, b.H, d, b.right, null), null) + } + return new Qh(a.key, a.H, a.left, function () { + var d = a.right; + return Xh.c ? Xh.c(d, b) : Xh.call(null, d, b) + }(), null) + } + if (b instanceof Qh) { + return new Qh(b.key, b.H, function () { + var d = b.left; + return Xh.c ? Xh.c(a, d) : Xh.call(null, a, d) + }(), b.right, null); + } + d = function () { + var d = + a.right, f = b.left; + return Xh.c ? Xh.c(d, f) : Xh.call(null, d, f) + }(); + return d instanceof Qh ? new Qh(d.key, d.H, new Rh(a.key, a.H, a.left, d.left, null), + new Rh(b.key, b.H, d.right, b.right, null), null) : Th(a.key, a.H, a.left, + new Rh(b.key, b.H, d, b.right, null)) + }, Yh = function Yh(a, b, c, d) { + if (null != b) { + var f = function () { + var d = b.key; + return a.c ? a.c(c, d) : a.call(null, c, d) + }(); + if (0 === f) { + return d[0] = b, Xh(b.left, b.right); + } + if (0 > f) { + return f = function () { + var f = b.left; + return Yh.M ? Yh.M(a, f, c, d) : Yh.call(null, a, f, c, d) + }(), null != f || null != d[0] ? b.left instanceof + Rh ? Th(b.key, b.H, f, b.right) : new Qh(b.key, b.H, f, b.right, null) : null; + } + f = function () { + var f = b.right; + return Yh.M ? Yh.M(a, f, c, d) : Yh.call(null, a, f, c, d) + }(); + return null != f || null != d[0] ? b.right instanceof Rh ? Uh(b.key, b.H, b.left, f) : new Qh( + b.key, b.H, b.left, f, null) : null + } + return null + }, Zh = function Zh(a, b, c, d) { + var f = b.key, h = a.c ? a.c(c, f) : a.call(null, c, f); + return 0 === h ? b.replace(f, d, b.left, b.right) : 0 > h ? b.replace(f, b.H, function () { + var f = b.left; + return Zh.M ? Zh.M(a, f, c, d) : Zh.call(null, a, f, c, d) + }(), b.right) : b.replace(f, b.H, b.left, + function () { + var f = b.right; + return Zh.M ? Zh.M(a, f, c, d) : Zh.call(null, a, f, c, d) + }()) + }; + + function $h(a, b, c, d, e) { + this.Bb = a; + this.mc = b; + this.F = c; + this.meta = d; + this.w = e; + this.m = 418776847; + this.J = 8192 + } + + g = $h.prototype; + g.forEach = function (a) { + for (var b = E(this), c = null, d = 0, e = 0; ;) { + if (e < d) { + var f = c.$(null, e), h = J(f, 0, null); + f = J(f, 1, null); + a.c ? a.c(f, h) : a.call(null, f, h); + e += 1 + } else if (b = E(b)) { + Ae(b) ? (c = Wc(b), b = Xc(b), h = c, d = H(c), c = h) : (c = y(b), h = J( + c, 0, null), f = J(c, 1, null), a.c ? a.c(f, h) : a.call(null, f, h), b = z( + b), c = null, d = 0), e = 0; + } else { + return null + } + } + }; + g.get = function (a, b) { + return this.I(null, a, b) + }; + g.entries = function () { + return new gh(E(E(this))) + }; + g.toString = function () { + return fd(this) + }; + g.keys = function () { + return yd(lh(this)) + }; + g.values = function () { + return yd(mh(this)) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + + function ai(a, b) { + for (var c = a.mc; ;) { + if (null != c) { + var d = c.key; + d = a.Bb.c ? a.Bb.c(b, d) : a.Bb.call(null, b, d); + if (0 === d) { + return c; + } + c = 0 > d ? c.left : c.right + } else { + return null + } + } + } + + g.has = function (a) { + return He(this, a) + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + a = ai(this, b); + return null != a ? a.H : c + }; + g.Qc = function (a, b, c) { + return null != this.mc ? Jd(Vh(this.mc, b, c)) : c + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return this.F + }; + g.Rc = function () { + return 0 < this.F ? Oh(this.mc, !1, this.F) : null + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Dd(this) + }; + g.K = function (a, b) { + return eh(this, b) + }; + g.oa = function () { + return new $h(this.Bb, null, 0, this.meta, 0) + }; + g.ga = function (a, b) { + var c = [null], d = Yh(this.Bb, this.mc, b, c); + return null == d ? null == Vd(c, 0) ? this : new $h(this.Bb, null, 0, this.meta, null) : new $h( + this.Bb, d.bc(), this.F - 1, this.meta, null) + }; + g.O = function (a, b, c) { + a = [null]; + var d = Wh(this.Bb, this.mc, b, c, a); + return null == d ? (a = Vd(a, 0), G.c(c, a.H) ? this : new $h(this.Bb, + Zh(this.Bb, this.mc, b, c), this.F, this.meta, null)) : new $h(this.Bb, d.bc(), this.F + 1, + this.meta, null) + }; + g.yc = function (a, b) { + return null != ai(this, b) + }; + g.S = function () { + return 0 < this.F ? Oh(this.mc, !0, this.F) : null + }; + g.T = function (a, b) { + return new $h(this.Bb, this.mc, this.F, b, this.w) + }; + g.X = function (a, b) { + if (ze(b)) { + return this.O(null, A.c(b, 0), A.c(b, 1)); + } + for (var c = this, d = E(b); ;) { + if (null == d) { + return c; + } + var e = y(d); + if (ze(e)) { + c = c.O(null, A.c(e, 0), A.c(e, 1)), d = z(d); + } else { + throw Error( + "conj on a map takes map entries or seqables of map entries"); + } + } + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.V(null, c); + case 3: + return this.I(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.V(null, c) + }; + a.l = function (a, c, d) { + return this.I(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.V(null, a) + }; + g.c = function (a, b) { + return this.I(null, a, b) + }; + var bi = new $h(Ke, null, 0, null, Ed); + $h.prototype[Fb] = function () { + return yd(this) + }; + var U = function U(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return U.A(0 < c.length ? new Jb(c.slice(0), 0, null) : null) + }; + U.A = function (a) { + for (var b = E(a), c = Oc(ph); ;) { + if (b) { + a = z(z(b)); + var d = y(b); + b = ee(b); + c = Rc(c, d, b); + b = a + } else { + return Qc(c) + } + } + }; + U.L = 0; + U.N = function (a) { + return U.A(E(a)) + }; + var ci = function ci(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return ci.A(0 < c.length ? new Jb(c.slice(0), 0, null) : null) + }; + ci.A = function (a) { + a = a instanceof Jb && 0 === a.i ? a.o : Lb(a); + return ke(a) + }; + ci.L = 0; + ci.N = function (a) { + return ci.A(E(a)) + }; + + function di(a) { + for (var b = [], c = arguments.length, d = 0; ;) { + if (d < c) { + b.push( + arguments[d]), d += 1; + } else { + break; + } + } + a:for (b = E(0 < b.length ? new Jb(b.slice(0), 0, null) : null), d = bi; ;) { + if (b) { + c = z( + z(b)), d = K.l(d, y(b), ee(b)), b = c; + } else { + break a; + } + } + return d + } + + function ei(a, b) { + this.da = a; + this.hb = b; + this.m = 32374988; + this.J = 0 + } + + g = ei.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.hb + }; + g.Ka = function () { + var a = (null != this.da ? this.da.m & 128 || q === this.da.Id || (this.da.m ? 0 : Ab(Zb, + this.da)) : Ab(Zb, this.da)) ? this.da.Ka(null) : z(this.da); + return null == a ? null : new ei(a, this.hb) + }; + g.U = function () { + return Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.hb) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return this.da.Ia(null).fd(null) + }; + g.bb = function () { + var a = (null != this.da ? this.da.m & 128 || q === this.da.Id || (this.da.m ? 0 : Ab(Zb, + this.da)) : Ab(Zb, this.da)) ? this.da.Ka(null) : z(this.da); + return null != a ? new ei(a, this.hb) : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new ei(this.da, b) + }; + g.X = function (a, b) { + return ae(b, this) + }; + ei.prototype[Fb] = function () { + return yd(this) + }; + + function lh(a) { + return (a = E(a)) ? new ei(a, null) : null + } + + function fi(a) { + return jc(a) + } + + function gi(a, b) { + this.da = a; + this.hb = b; + this.m = 32374988; + this.J = 0 + } + + g = gi.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.P = function () { + return this.hb + }; + g.Ka = function () { + var a = (null != this.da ? this.da.m & 128 || q === this.da.Id || (this.da.m ? 0 : Ab(Zb, + this.da)) : Ab(Zb, this.da)) ? this.da.Ka(null) : z(this.da); + return null == a ? null : new gi(a, this.hb) + }; + g.U = function () { + return Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.hb) + }; + g.Fa = function (a, b) { + return ce(b, this) + }; + g.Ga = function (a, b, c) { + return de(b, c, this) + }; + g.Ia = function () { + return this.da.Ia(null).gd(null) + }; + g.bb = function () { + var a = (null != this.da ? this.da.m & 128 || q === this.da.Id || (this.da.m ? 0 : Ab(Zb, + this.da)) : Ab(Zb, this.da)) ? this.da.Ka(null) : z(this.da); + return null != a ? new gi(a, this.hb) : wd + }; + g.S = function () { + return this + }; + g.T = function (a, b) { + return new gi(this.da, b) + }; + g.X = function (a, b) { + return ae(b, this) + }; + gi.prototype[Fb] = function () { + return yd(this) + }; + + function mh(a) { + return (a = E(a)) ? new gi(a, null) : null + } + + var hi = function hi(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return hi.A(0 < c.length ? new Jb(c.slice(0), 0, null) : null) + }; + hi.A = function (a) { + return t(Wf(Ve, a)) ? Te(function (a, c) { + return ge.c(t(a) ? a : Ef, c) + }, a) : null + }; + hi.L = 0; + hi.N = function (a) { + return hi.A(E(a)) + }; + var ii = function ii(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return ii.A(arguments[0], 1 < c.length ? new Jb(c.slice(1), 0, null) : null) + }; + ii.A = function (a, b) { + return t(Wf(Ve, b)) ? Te(function (a) { + return function (b, c) { + return Mb(a, t(b) ? b : Ef, E(c)) + } + }(function (b, d) { + var c = y(d), f = ee(d); + return He(b, c) ? K.l(b, c, function () { + var d = D.c(b, c); + return a.c ? a.c(d, f) : a.call(null, d, f) + }()) : K.l(b, c, f) + }), b) : null + }; + ii.L = 1; + ii.N = function (a) { + var b = y(a); + a = z(a); + return ii.A(b, a) + }; + + function ji(a) { + for (var b = Ef, c = E(new R(null, 7, 5, T, [ki, li, mi, ni, oi, pi, qi], null)); ;) { + if (c) { + var d = y(c), e = D.l(a, d, ri); + b = G.c(e, ri) ? b : K.l(b, d, e); + c = z(c) + } else { + return tc(b, qe(a)) + } + } + } + + function si(a) { + this.te = a + } + + si.prototype.ja = function () { + return this.te.ja() + }; + si.prototype.next = function () { + if (this.te.ja()) { + return this.te.next().fa[0]; + } + throw Error("No such element"); + }; + si.prototype.remove = function () { + return Error("Unsupported operation") + }; + + function ti(a, b, c) { + this.meta = a; + this.gc = b; + this.w = c; + this.m = 15077647; + this.J = 139268 + } + + g = ti.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.keys = function () { + return yd(E(this)) + }; + g.entries = function () { + return new hh(E(E(this))) + }; + g.values = function () { + return yd(E(this)) + }; + g.has = function (a) { + return He(this, a) + }; + g.forEach = function (a) { + for (var b = E(this), c = null, d = 0, e = 0; ;) { + if (e < d) { + var f = c.$(null, e), h = J(f, 0, null); + f = J(f, 1, null); + a.c ? a.c(f, h) : a.call(null, f, h); + e += 1 + } else if (b = E(b)) { + Ae(b) ? (c = Wc(b), b = Xc(b), h = c, d = H(c), c = h) : (c = y(b), h = J( + c, 0, null), f = J(c, 1, null), a.c ? a.c(f, h) : a.call(null, f, h), b = z( + b), c = null, d = 0), e = 0; + } else { + return null + } + } + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return dc(this.gc, b) ? b : c + }; + g.ba = function () { + return new si(dd(this.gc)) + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return Qb(this.gc) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Dd(this) + }; + g.K = function (a, b) { + return ve(b) && H(this) === H(b) && Ue(function () { + return function (a, d) { + var c = He(b, d); + return c ? c : new Gd(!1) + } + }(this), !0, this.gc) + }; + g.Pc = function () { + return new ui(Oc(this.gc)) + }; + g.oa = function () { + return tc(vi, this.meta) + }; + g.ie = function (a, b) { + return new ti(this.meta, gc(this.gc, b), null) + }; + g.S = function () { + return lh(this.gc) + }; + g.T = function (a, b) { + return new ti(b, this.gc, this.w) + }; + g.X = function (a, b) { + return new ti(this.meta, K.l(this.gc, b, null), null) + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.V(null, c); + case 3: + return this.I(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.V(null, c) + }; + a.l = function (a, c, d) { + return this.I(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.V(null, a) + }; + g.c = function (a, b) { + return this.I(null, a, b) + }; + var vi = new ti(null, Ef, Ed); + + function Je(a) { + for (var b = a.length, c = Oc(vi), d = 0; ;) { + if (d < b) { + Pc(c, a[d]), d += 1; + } else { + break; + } + } + return Qc(c) + } + + ti.prototype[Fb] = function () { + return yd(this) + }; + + function ui(a) { + this.lc = a; + this.J = 136; + this.m = 259 + } + + g = ui.prototype; + g.Dc = function (a, b) { + this.lc = Rc(this.lc, b, null); + return this + }; + g.kd = function () { + return new ti(null, Qc(this.lc), null) + }; + g.W = function () { + return H(this.lc) + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return cc.l(this.lc, b, Ce) === Ce ? c : b + }; + g.call = function () { + function a(a, b, c) { + return cc.l(this.lc, b, Ce) === Ce ? c : b + } + + function b(a, b) { + return cc.l(this.lc, b, Ce) === Ce ? null : b + } + + var c = null; + c = function (c, e, f) { + switch (arguments.length) { + case 2: + return b.call(this, 0, e); + case 3: + return a.call(this, 0, e, f) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + c.c = b; + c.l = a; + return c + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return cc.l(this.lc, a, Ce) === Ce ? null : a + }; + g.c = function (a, b) { + return cc.l(this.lc, a, Ce) === Ce ? b : a + }; + + function wi(a, b, c) { + this.meta = a; + this.$b = b; + this.w = c; + this.m = 417730831; + this.J = 8192 + } + + g = wi.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.keys = function () { + return yd(E(this)) + }; + g.entries = function () { + return new hh(E(E(this))) + }; + g.values = function () { + return yd(E(this)) + }; + g.has = function (a) { + return He(this, a) + }; + g.forEach = function (a) { + for (var b = E(this), c = null, d = 0, e = 0; ;) { + if (e < d) { + var f = c.$(null, e), h = J(f, 0, null); + f = J(f, 1, null); + a.c ? a.c(f, h) : a.call(null, f, h); + e += 1 + } else if (b = E(b)) { + Ae(b) ? (c = Wc(b), b = Xc(b), h = c, d = H(c), c = h) : (c = y(b), h = J( + c, 0, null), f = J(c, 1, null), a.c ? a.c(f, h) : a.call(null, f, h), b = z( + b), c = null, d = 0), e = 0; + } else { + return null + } + } + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + a = ai(this.$b, b); + return null != a ? a.key : c + }; + g.P = function () { + return this.meta + }; + g.W = function () { + return H(this.$b) + }; + g.Rc = function () { + return 0 < H(this.$b) ? ig.c(fi, Ic(this.$b)) : null + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Dd(this) + }; + g.K = function (a, b) { + return ve(b) && H(this) === H(b) && Ue(function () { + return function (a, d) { + var c = He(b, d); + return c ? c : new Gd(!1) + } + }(this), !0, this.$b) + }; + g.oa = function () { + return new wi(this.meta, Rb(this.$b), 0) + }; + g.ie = function (a, b) { + return new wi(this.meta, le.c(this.$b, b), null) + }; + g.S = function () { + return lh(this.$b) + }; + g.T = function (a, b) { + return new wi(b, this.$b, this.w) + }; + g.X = function (a, b) { + return new wi(this.meta, K.l(this.$b, b, null), null) + }; + g.call = function () { + var a = null; + a = function (a, c, d) { + switch (arguments.length) { + case 2: + return this.V(null, c); + case 3: + return this.I(null, c, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.c = function (a, c) { + return this.V(null, c) + }; + a.l = function (a, c, d) { + return this.I(null, c, d) + }; + return a + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.h = function (a) { + return this.V(null, a) + }; + g.c = function (a, b) { + return this.I(null, a, b) + }; + var xi = new wi(null, bi, Ed); + wi.prototype[Fb] = function () { + return yd(this) + }; + + function yi(a) { + a = E(a); + if (null == a) { + return vi; + } + if (a instanceof Jb && 0 === a.i) { + return Je(a.o); + } + for (var b = Oc(vi); ;) { + if (null != a) { + var c = z(a); + b = b.Dc(null, a.Ia(null)); + a = c + } else { + return Qc(b) + } + } + } + + var zi = function zi(a) { + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return zi.A(0 < c.length ? new Jb(c.slice(0), 0, null) : null) + }; + zi.A = function (a) { + return Mb(Tb, xi, a) + }; + zi.L = 0; + zi.N = function (a) { + return zi.A(E(a)) + }; + + function jf(a) { + if (null != a && (a.J & 4096 || q === a.Oe)) { + return a.hd(null); + } + if ("string" === typeof a) { + return a; + } + throw Error(["Doesn't support name: ", v.h(a)].join("")); + } + + var Ai = function Ai(a) { + switch (arguments.length) { + case 2: + return Ai.c(arguments[0], arguments[1]); + case 3: + return Ai.l(arguments[0], arguments[1], arguments[2]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return Ai.A(arguments[0], arguments[1], arguments[2], new Jb(c.slice(3), 0, null)) + } + }; + Ai.c = function (a, b) { + return b + }; + Ai.l = function (a, b, c) { + return (a.h ? a.h(b) : a.call(null, b)) > (a.h ? a.h(c) : a.call(null, c)) ? b : c + }; + Ai.A = function (a, b, c, d) { + return Mb(function (b, c) { + return Ai.l(a, b, c) + }, Ai.l(a, b, c), d) + }; + Ai.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + var d = z(c); + c = y(d); + d = z(d); + return Ai.A(b, a, c, d) + }; + Ai.L = 3; + + function Bi(a, b) { + return new kf(null, function () { + var c = E(b); + if (c) { + var d = y(c); + d = a.h ? a.h(d) : a.call(null, d); + c = t(d) ? ae(y(c), Bi(a, vd(c))) : null + } else { + c = null; + } + return c + }, null, null) + } + + function Di(a, b, c) { + this.i = a; + this.end = b; + this.step = c + } + + Di.prototype.ja = function () { + return 0 < this.step ? this.i < this.end : this.i > this.end + }; + Di.prototype.next = function () { + var a = this.i; + this.i += this.step; + return a + }; + + function Ei(a, b, c, d, e) { + this.meta = a; + this.start = b; + this.end = c; + this.step = d; + this.w = e; + this.m = 32375006; + this.J = 139264 + } + + g = Ei.prototype; + g.toString = function () { + return fd(this) + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.indexOf = function () { + var a = null; + a = function (a, c) { + switch (arguments.length) { + case 1: + return Ud(this, a, 0); + case 2: + return Ud(this, a, c) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + a.h = function (a) { + return Ud(this, a, 0) + }; + a.c = function (a, c) { + return Ud(this, a, c) + }; + return a + }(); + g.lastIndexOf = function () { + function a(a) { + return Xd(this, a, H(this)) + } + + var b = null; + b = function (b, d) { + switch (arguments.length) { + case 1: + return a.call(this, b); + case 2: + return Xd(this, b, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + b.h = a; + b.c = function (a, b) { + return Xd(this, a, b) + }; + return b + }(); + g.$ = function (a, b) { + if (0 <= b && b < this.W(null)) { + return this.start + b * this.step; + } + if (0 <= b && this.start > this.end && 0 === this.step) { + return this.start; + } + throw Error("Index out of bounds"); + }; + g.ka = function (a, b, c) { + return 0 <= b && b < this.W(null) ? this.start + b * this.step : 0 <= b && this.start > this.end + && 0 === this.step ? this.start : c + }; + g.ba = function () { + return new Di(this.start, this.end, this.step) + }; + g.P = function () { + return this.meta + }; + g.Ka = function () { + return 0 < this.step ? this.start + this.step < this.end ? new Ei(this.meta, + this.start + this.step, this.end, this.step, null) : null : this.start + this.step > this.end + ? new Ei(this.meta, this.start + this.step, this.end, this.step, null) : null + }; + g.W = function () { + return wb(this.S(null)) ? 0 : Math.ceil((this.end - this.start) / this.step) + }; + g.U = function () { + var a = this.w; + return null != a ? a : this.w = a = Ad(this) + }; + g.K = function (a, b) { + return $d(this, b) + }; + g.oa = function () { + return tc(wd, this.meta) + }; + g.Fa = function (a, b) { + return Kd(this, b) + }; + g.Ga = function (a, b, c) { + for (a = this.start; ;) { + if (0 < this.step ? a < this.end : a > this.end) { + c = b.c ? b.c(c, a) : b.call(null, c, a); + if (Hd(c)) { + return B(c); + } + a += this.step + } else { + return c + } + } + }; + g.Ia = function () { + return null == this.S(null) ? null : this.start + }; + g.bb = function () { + return null != this.S(null) ? new Ei(this.meta, this.start + this.step, this.end, this.step, + null) : wd + }; + g.S = function () { + return 0 < this.step ? this.start < this.end ? this : null : 0 > this.step ? this.start + > this.end ? this : null : this.start === this.end ? null : this + }; + g.T = function (a, b) { + return new Ei(b, this.start, this.end, this.step, this.w) + }; + g.X = function (a, b) { + return ae(b, this) + }; + Ei.prototype[Fb] = function () { + return yd(this) + }; + + function Fi(a, b, c) { + return new Ei(null, a, b, c, null) + } + + function Gi(a, b) { + return new R(null, 2, 5, T, [Bi(a, b), ng(a, b)], null) + } + + function Hi(a) { + var b = y; + return function () { + function c(c, d, e) { + return new R(null, 2, 5, T, + [b.l ? b.l(c, d, e) : b.call(null, c, d, e), a.l ? a.l(c, d, e) : a.call(null, c, d, e)], + null) + } + + function d(c, d) { + return new R(null, 2, 5, T, + [b.c ? b.c(c, d) : b.call(null, c, d), a.c ? a.c(c, d) : a.call(null, c, d)], null) + } + + function e(c) { + return new R(null, 2, 5, T, + [b.h ? b.h(c) : b.call(null, c), a.h ? a.h(c) : a.call(null, c)], null) + } + + function f() { + return new R(null, 2, 5, T, [b.B ? b.B() : b.call(null), a.B ? a.B() : a.call(null)], null) + } + + var h = null, k = function () { + function c(a, b, c, e) { + var f = + null; + if (3 < arguments.length) { + f = 0; + for (var h = Array(arguments.length - 3); f < h.length;) { + h[f] = arguments[f + 3], ++f; + } + f = new Jb(h, 0, null) + } + return d.call(this, a, b, c, f) + } + + function d(c, d, e, f) { + return new R(null, 2, 5, T, [Af(b, c, d, e, f), Af(a, c, d, e, f)], null) + } + + c.L = 3; + c.N = function (a) { + var b = y(a); + a = z(a); + var c = y(a); + a = z(a); + var e = y(a); + a = vd(a); + return d(b, c, e, a) + }; + c.A = d; + return c + }(); + h = function (a, b, h, u) { + switch (arguments.length) { + case 0: + return f.call(this); + case 1: + return e.call(this, a); + case 2: + return d.call(this, a, b); + case 3: + return c.call(this, + a, b, h); + default: + var m = null; + if (3 < arguments.length) { + m = 0; + for (var l = Array(arguments.length - 3); m < l.length;) { + l[m] = arguments[m + 3], ++m; + } + m = new Jb(l, 0, null) + } + return k.A(a, b, h, m) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + h.L = 3; + h.N = k.N; + h.B = f; + h.h = e; + h.c = d; + h.l = c; + h.A = k.A; + return h + }() + } + + function Ii(a) { + a:for (var b = a; ;) { + if (E(b)) { + b = z(b); + } else { + break a; + } + } + return a + } + + function Ji(a, b) { + if ("string" === typeof b) { + var c = a.exec(b); + return G.c(y(c), b) ? 1 === H(c) ? y(c) : Wg(c) : null + } + throw new TypeError("re-matches must match against a string."); + } + + function Y(a, b, c, d, e, f, h) { + var k = lb; + lb = null == lb ? null : lb - 1; + try { + if (null != lb && 0 > lb) { + return Jc(a, "#"); + } + Jc(a, c); + if (0 === tb.h(f)) { + E(h) && Jc(a, function () { + var a = Ki.h(f); + return t(a) ? a : "..." + }()); + } else { + if (E(h)) { + var l = y(h); + b.l ? b.l(l, a, f) : b.call(null, l, a, f) + } + for (var p = z(h), m = tb.h(f) - 1; ;) { + if (!p || null != m && 0 === m) { + E(p) && 0 === m && (Jc(a, d), Jc(a, function () { + var a = Ki.h(f); + return t(a) ? a : "..." + }())); + break + } else { + Jc(a, d); + var u = y(p); + c = a; + h = f; + b.l ? b.l(u, c, h) : b.call(null, u, c, h); + var w = z(p); + c = m - 1; + p = w; + m = c + } + } + } + return Jc(a, e) + } finally { + lb = k + } + } + + function Li(a, b) { + for (var c = E(b), d = null, e = 0, f = 0; ;) { + if (f < e) { + var h = d.$(null, f); + Jc(a, h); + f += 1 + } else if (c = E(c)) { + d = c, Ae(d) ? (c = Wc(d), e = Xc(d), d = c, h = H(c), c = e, e = h) + : (h = y(d), Jc(a, h), c = z(d), d = null, e = 0), f = 0; + } else { + return null + } + } + } + + var Mi = { + '"': '\\"', + "\\": "\\\\", + "\b": "\\b", + "\f": "\\f", + "\n": "\\n", + "\r": "\\r", + "\t": "\\t" + }; + + function Ni(a) { + return [v.h('"'), v.h(a.replace(RegExp('[\\\\"\b\f\n\r\t]', "g"), function (a) { + return Mi[a] + })), v.h('"')].join("") + } + + function Oi(a, b) { + var c = Ee(D.c(a, rb)); + return c ? (c = null != b ? b.m & 131072 || q === b.tf ? !0 : !1 : !1) ? null != qe(b) : c : c + } + + function Pi(a, b, c) { + if (null == a) { + return Jc(b, "nil"); + } + Oi(c, a) && (Jc(b, "^"), Qi(qe(a), b, c), Jc(b, " ")); + if (a.qc) { + return a.Ec(a, b, c); + } + if (null != a && (a.m & 2147483648 || q === a.ma)) { + return a.R(null, b, c); + } + if (!0 === a || !1 === a) { + return Jc(b, "" + v.h(a)); + } + if ("number" === typeof a) { + return Jc(b, + isNaN(a) ? "##NaN" : a === Number.POSITIVE_INFINITY ? "##Inf" : a + === Number.NEGATIVE_INFINITY + ? "##-Inf" : "" + v.h(a)); + } + if (null != a && a.constructor === Object) { + return Jc(b, "#js "), Ri(ig.c(function (b) { + return new R(null, 2, 5, T, [null != Ji(/[A-Za-z_\*\+\?!\-'][\w\*\+\?!\-']*/, + b) ? hf.h(b) : b, a[b]], null) + }, Ea(a)), b, c); + } + if (vb(a)) { + return Y(b, Qi, "#js [", " ", "]", c, a); + } + if (ca(a)) { + return t(qb.h(c)) ? Jc(b, Ni(a)) : Jc(b, a); + } + if (ha(a)) { + var d = a.name; + c = t(function () { + var a = null == d; + return a ? a : /^[\s\xa0]*$/.test(d) + }()) ? "Function" : d; + return Li(b, be(["#object[", c, "", "]"])) + } + if (a instanceof Date) { + return c = function (a, b) { + for (var c = "" + v.h(a); ;) { + if (H(c) < b) { + c = ["0", v.h(c)].join(""); + } else { + return c + } + } + }, Li(b, be(['#inst "', "" + v.h(a.getUTCFullYear()), "-", c(a.getUTCMonth() + 1, 2), "-", + c(a.getUTCDate(), 2), "T", c(a.getUTCHours(), + 2), ":", c(a.getUTCMinutes(), 2), ":", c(a.getUTCSeconds(), 2), ".", + c(a.getUTCMilliseconds(), 3), "-", '00:00"'])); + } + if (a instanceof RegExp) { + return Li(b, be(['#"', a.source, '"'])); + } + if (t(function () { + var b = null == a ? null : a.constructor; + return null == b ? null : b.Tb + }())) { + return Li(b, be(["#object[", a.constructor.Tb.replace(RegExp("/", "g"), "."), "]"])); + } + d = function () { + var b = null == a ? null : a.constructor; + return null == b ? null : b.name + }(); + c = t(function () { + var a = null == d; + return a ? a : /^[\s\xa0]*$/.test(d) + }()) ? "Object" : d; + return null == a.constructor ? + Li(b, be(["#object[", c, "]"])) : Li(b, be(["#object[", c, " ", "" + v.h(a), "]"])) + } + + function Qi(a, b, c) { + var d = Si.h(c); + return t(d) ? (c = K.l(c, Ti, Pi), d.l ? d.l(a, b, c) : d.call(null, a, b, c)) : Pi(a, b, c) + } + + function Ui(a, b) { + var c = new cb; + a:{ + var d = new ed(c); + Qi(y(a), d, b); + for (var e = E(z(a)), f = null, h = 0, k = 0; ;) { + if (k < h) { + var l = f.$(null, k); + Jc(d, " "); + Qi(l, d, b); + k += 1 + } else if (e = E(e)) { + f = e, Ae(f) ? (e = Wc(f), h = Xc(f), f = e, l = H(e), e = h, h = l) + : (l = y(f), Jc(d, " "), Qi(l, d, b), e = z(f), f = null, h = 0), k = 0; + } else { + break a + } + } + } + return c + } + + function Vi(a) { + var b = ob(); + return te(a) ? "" : "" + v.h(Ui(a, b)) + } + + function Wi(a, b, c, d, e) { + return Y(d, function (a, b, d) { + var e = jc(a); + c.l ? c.l(e, b, d) : c.call(null, e, b, d); + Jc(b, " "); + a = kc(a); + return c.l ? c.l(a, b, d) : c.call(null, a, b, d) + }, [v.h(a), "{"].join(""), ", ", "}", e, E(b)) + } + + function Ri(a, b, c) { + var d = Qi, e = (xe(a), null), f = J(e, 0, null); + e = J(e, 1, null); + return t(f) ? Wi(["#:", v.h(f)].join(""), e, d, b, c) : Wi(null, a, d, b, c) + } + + hg.prototype.ma = q; + hg.prototype.R = function (a, b, c) { + Jc(b, "#object [cljs.core.Volatile "); + Qi(new r(null, 1, [Xi, this.state], null), b, c); + return Jc(b, "]") + }; + Jb.prototype.ma = q; + Jb.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + kf.prototype.ma = q; + kf.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Nh.prototype.ma = q; + Nh.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Fh.prototype.ma = q; + Fh.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Rh.prototype.ma = q; + Rh.prototype.R = function (a, b, c) { + return Y(b, Qi, "[", " ", "]", c, this) + }; + jh.prototype.ma = q; + jh.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + wi.prototype.ma = q; + wi.prototype.R = function (a, b, c) { + return Y(b, Qi, "#{", " ", "}", c, this) + }; + Ug.prototype.ma = q; + Ug.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + ef.prototype.ma = q; + ef.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Zd.prototype.ma = q; + Zd.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Jh.prototype.ma = q; + Jh.prototype.R = function (a, b, c) { + return Ri(this, b, c) + }; + Gh.prototype.ma = q; + Gh.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Yg.prototype.ma = q; + Yg.prototype.R = function (a, b, c) { + return Y(b, Qi, "[", " ", "]", c, this) + }; + $h.prototype.ma = q; + $h.prototype.R = function (a, b, c) { + return Ri(this, b, c) + }; + ti.prototype.ma = q; + ti.prototype.R = function (a, b, c) { + return Y(b, Qi, "#{", " ", "}", c, this) + }; + pf.prototype.ma = q; + pf.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + cg.prototype.ma = q; + cg.prototype.R = function (a, b, c) { + Jc(b, "#object [cljs.core.Atom "); + Qi(new r(null, 1, [Xi, this.state], null), b, c); + return Jc(b, "]") + }; + gi.prototype.ma = q; + gi.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Qh.prototype.ma = q; + Qh.prototype.R = function (a, b, c) { + return Y(b, Qi, "[", " ", "]", c, this) + }; + R.prototype.ma = q; + R.prototype.R = function (a, b, c) { + return Y(b, Qi, "[", " ", "]", c, this) + }; + bf.prototype.ma = q; + bf.prototype.R = function (a, b) { + return Jc(b, "()") + }; + r.prototype.ma = q; + r.prototype.R = function (a, b, c) { + return Ri(this, b, c) + }; + Ei.prototype.ma = q; + Ei.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + Sf.prototype.ma = q; + Sf.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + ei.prototype.ma = q; + ei.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + af.prototype.ma = q; + af.prototype.R = function (a, b, c) { + return Y(b, Qi, "(", " ", ")", c, this) + }; + rd.prototype.zc = q; + rd.prototype.cc = function (a, b) { + if (b instanceof rd) { + return sd(this, b); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + L.prototype.zc = q; + L.prototype.cc = function (a, b) { + if (b instanceof L) { + return ff(this, b); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + Yg.prototype.zc = q; + Yg.prototype.cc = function (a, b) { + if (ze(b)) { + return Le(this, b); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + R.prototype.zc = q; + R.prototype.cc = function (a, b) { + if (ze(b)) { + return Le(this, b); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + Rh.prototype.zc = q; + Rh.prototype.cc = function (a, b) { + if (ze(b)) { + return Le(this, b); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + Qh.prototype.zc = q; + Qh.prototype.cc = function (a, b) { + if (ze(b)) { + return Le(this, b); + } + throw Error(["Cannot compare ", v.h(this), " to ", v.h(b)].join("")); + }; + var Yi = null; + + function Zi() { + null == Yi && (Yi = dg.h(0)); + return td.h([v.h("reagent"), v.h(gg.c(Yi, Fd))].join("")) + } + + function $i() { + } + + var aj = function aj(a) { + if (null != a && null != a.pf) { + return a.pf(a); + } + var c = aj[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = aj._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IEncodeJS.-clj-\x3ejs", a); + }; + + function bj(a) { + return (null != a ? q === a.nf || (a.Tc ? 0 : Ab($i, a)) : Ab($i, a)) ? aj(a) : "string" + === typeof a || "number" === typeof a || a instanceof L || a instanceof rd ? cj(a) : Vi(be([a])) + } + + var cj = function cj(a) { + if (null == a) { + return null; + } + if (null != a ? q === a.nf || (a.Tc ? 0 : Ab($i, a)) : Ab($i, a)) { + return aj(a); + } + if (a instanceof L) { + return jf(a); + } + if (a instanceof rd) { + return "" + v.h(a); + } + if (xe(a)) { + var c = {}; + a = E(a); + for (var d = null, e = 0, f = 0; ;) { + if (f < e) { + var h = d.$(null, f), k = J(h, 0, null), l = J(h, 1, null); + h = c; + k = bj(k); + l = cj.h ? cj.h(l) : cj.call(null, l); + h[k] = l; + f += 1 + } else if (a = E(a)) { + Ae(a) ? (e = Wc(a), a = Xc(a), d = e, e = H(e)) : (d = y(a), e = J(d, 0, + null), f = J(d, 1, null), d = c, e = bj(e), f = cj.h ? cj.h(f) : cj.call(null, + f), d[e] = f, a = z(a), d = null, e = 0), f = 0; + } else { + break; + } + } + return c + } + if (ue(a)) { + c = []; + a = E(ig.c(cj, a)); + d = null; + for (f = e = 0; ;) { + if (f < e) { + h = d.$(null, f), c.push(h), f += 1; + } else if (a = E( + a)) { + d = a, Ae(d) ? (a = Wc(d), f = Xc(d), d = a, e = H(a), a = f) : (a = y(d), c.push( + a), a = z(d), d = null, e = 0), f = 0; + } else { + break; + } + } + return c + } + return a + }; + + function dj() { + } + + var ej = function ej(a, b) { + if (null != a && null != a.mf) { + return a.mf(a, b); + } + var d = ej[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = ej._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("IEncodeClojure.-js-\x3eclj", a); + }; + + function fj(a) { + var b = be([gj, !0]), c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, gj); + return function (a, c, d, k) { + return function m(e) { + return (null != e ? q === e.lf || (e.Tc ? 0 : Ab(dj, e)) : Ab(dj, e)) ? ej(e, P(ci, b)) + : De(e) ? Ii(ig.c(m, e)) : ue(e) ? wg.c(ie(e), ig.c(m, e)) : vb(e) ? Wg(ig.c(m, e)) : Bb( + e) === Object ? wg.c(Ef, function () { + return function (a, b, c, d) { + return function M(f) { + return new kf(null, function (a, b, c, d) { + return function () { + for (; ;) { + var a = E(f); + if (a) { + if (Ae(a)) { + var b = Wc(a), c = H(b), h = of(c); + a:for (var k = 0; ;) { + if (k < c) { + var p = A.c(b, k); + p = + new R(null, 2, 5, T, [d.h ? d.h(p) : d.call(null, p), m(e[p])], + null); + h.add(p); + k += 1 + } else { + b = !0; + break a + } + } + return b ? qf(h.Da(), M(Xc(a))) : qf(h.Da(), null) + } + h = y(a); + return ae( + new R(null, 2, 5, T, [d.h ? d.h(h) : d.call(null, h), m(e[h])], null), + M(vd(a))) + } + return null + } + } + }(a, b, c, d), null, null) + } + }(a, c, d, k)(Ea(e)) + }()) : e + } + }(b, c, d, t(d) ? hf : v)(a) + } + + function hj(a) { + return function (b) { + return function () { + function c(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var c = Array(arguments.length - 0); b < c.length;) { + c[b] = arguments[b + 0], ++b; + } + b = new Jb(c, 0, null) + } + return d.call(this, b) + } + + function d(c) { + var d = D.l(B(b), c, Ce); + d === Ce && (d = P(a, c), gg.M(b, K, c, d)); + return d + } + + c.L = 0; + c.N = function (a) { + a = E(a); + return d(a) + }; + c.A = d; + return c + }() + }(dg.h(Ef)) + } + + var ij = null; + + function jj() { + null == ij && (ij = dg.h(new r(null, 3, [kj, Ef, lj, Ef, mj, Ef], null))); + return ij + } + + function nj(a, b, c) { + var d = G.c(b, c); + if (d) { + return d; + } + d = mj.h(a); + d = d.h ? d.h(b) : d.call(null, b); + if (!(d = He(d, c)) && (d = ze(c))) { + if (d = ze(b)) { + if (d = H(c) === H(b)) { + d = !0; + for (var e = 0; ;) { + if (d && e !== H(c)) { + d = nj(a, b.h ? b.h(e) : b.call(null, e), + c.h ? c.h(e) : c.call(null, e)), e += 1; + } else { + return d + } + } + } else { + return d; + } + } else { + return d; + } + } else { + return d + } + } + + function oj(a) { + var b = B(jj()); + return Bf(D.c(kj.h(b), a)) + } + + function pj(a, b, c, d) { + gg.c(a, function () { + return B(b) + }); + gg.c(c, function () { + return B(d) + }) + } + + var qj = function qj(a, b, c) { + var e = function () { + var b = B(c); + return b.h ? b.h(a) : b.call(null, a) + }(); + e = t(t(e) ? e.h ? e.h(b) : e.call(null, b) : e) ? !0 : null; + if (t(e)) { + return e; + } + e = function () { + for (var e = oj(b); ;) { + if (0 < H(e)) { + var h = y(e); + qj.l ? qj.l(a, h, c) : qj.call(null, a, h, c); + e = vd(e) + } else { + return null + } + } + }(); + if (t(e)) { + return e; + } + e = function () { + for (var e = oj(a); ;) { + if (0 < H(e)) { + var h = y(e); + qj.l ? qj.l(h, b, c) : qj.call(null, h, b, c); + e = vd(e) + } else { + return null + } + } + }(); + return t(e) ? e : !1 + }; + + function rj(a, b, c, d) { + c = qj(a, b, c); + return t(c) ? c : nj(d, a, b) + } + + var sj = function sj(a, b, c, d, e, f, h, k) { + var p = Mb(function (d, f) { + var h = J(f, 0, null); + J(f, 1, null); + if (nj(B(c), b, h)) { + var k = (k = null == d) ? k : rj(h, y(d), e, B(c)); + k = t(k) ? f : d; + if (!t(rj(y(k), h, e, B(c)))) { + throw Error( + ["Multiple methods in multimethod '", v.h(a), "' match dispatch value: ", v.h(b), + " -\x3e ", v.h(h), " and ", v.h(y(k)), ", and neither is preferred"].join("")); + } + return k + } + return d + }, null, B(d)), m = function () { + var a; + if (a = null == p) { + a = B(d), a = a.h ? a.h(k) : a.call(null, k); + } + return t(a) ? new R(null, 2, 5, T, [k, a], null) : p + }(); + if (t(m)) { + if (G.c(B(h), + B(c))) { + return gg.M(f, K, b, ee(m)), ee(m); + } + pj(f, d, h, c); + return sj.Ha ? sj.Ha(a, b, c, d, e, f, h, k) : sj.call(null, a, b, c, d, e, f, h, k) + } + return null + }; + + function tj(a, b) { + throw Error(["No method in multimethod '", v.h(a), "' for dispatch value: ", v.h(b)].join("")); + } + + function uj(a, b, c, d, e, f, h, k) { + this.name = a; + this.D = b; + this.vf = c; + this.Rd = d; + this.Vd = e; + this.Kf = f; + this.Ud = h; + this.Ed = k; + this.m = 4194305; + this.J = 4352 + } + + g = uj.prototype; + g.call = function () { + function a(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q, Ga) { + a = this; + var W = oe(a.D, b, c, d, e, be([f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q, Ga])), + ka = vj(this, W); + t(ka) || tj(a.name, W); + return oe(ka, b, c, d, e, be([f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q, Ga])) + } + + function b(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q) { + a = this; + var W = a.D.Xa ? a.D.Xa(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q) + : a.D.call(null, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q), + ka = vj(this, W); + t(ka) || tj(a.name, W); + return ka.Xa ? ka.Xa(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, + I, M, S, X, Q) : ka.call(null, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X, Q) + } + + function c(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X) { + a = this; + var W = a.D.Wa ? a.D.Wa(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X) : a.D.call( + null, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X), ka = vj(this, W); + t(ka) || tj(a.name, W); + return ka.Wa ? ka.Wa(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X) : ka.call(null, + b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S, X) + } + + function d(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S) { + a = this; + var W = a.D.Va ? a.D.Va(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S) : a.D.call(null, + b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S), ka = vj(this, W); + t(ka) || tj(a.name, W); + return ka.Va ? ka.Va(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S) : ka.call(null, b, + c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M, S) + } + + function e(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M) { + a = this; + var W = a.D.Ua ? a.D.Ua(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M) : a.D.call(null, b, + c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M), ka = vj(this, W); + t(ka) || tj(a.name, W); + return ka.Ua ? ka.Ua(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I, M) : ka.call(null, b, c, + d, e, f, h, k, m, l, p, u, w, x, F, C, I, M) + } + + function f(a, b, c, d, e, f, h, k, m, + l, p, u, w, x, F, C, I) { + a = this; + var W = a.D.Ta ? a.D.Ta(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I) : a.D.call(null, b, c, + d, e, f, h, k, m, l, p, u, w, x, F, C, I), ka = vj(this, W); + t(ka) || tj(a.name, W); + return ka.Ta ? ka.Ta(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C, I) : ka.call(null, b, c, d, + e, f, h, k, m, l, p, u, w, x, F, C, I) + } + + function h(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F, C) { + a = this; + var W = a.D.Sa ? a.D.Sa(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C) : a.D.call(null, b, c, d, + e, f, h, k, m, l, p, u, w, x, F, C), ka = vj(this, W); + t(ka) || tj(a.name, W); + return ka.Sa ? ka.Sa(b, c, d, e, f, h, k, m, l, p, u, w, x, F, C) : ka.call(null, b, + c, d, e, f, h, k, m, l, p, u, w, x, F, C) + } + + function k(a, b, c, d, e, f, h, k, m, l, p, u, w, x, F) { + a = this; + var W = a.D.Ra ? a.D.Ra(b, c, d, e, f, h, k, m, l, p, u, w, x, F) : a.D.call(null, b, c, d, e, + f, h, k, m, l, p, u, w, x, F), C = vj(this, W); + t(C) || tj(a.name, W); + return C.Ra ? C.Ra(b, c, d, e, f, h, k, m, l, p, u, w, x, F) : C.call(null, b, c, d, e, f, h, + k, m, l, p, u, w, x, F) + } + + function l(a, b, c, d, e, f, h, k, m, l, p, u, w, x) { + a = this; + var W = a.D.Qa ? a.D.Qa(b, c, d, e, f, h, k, m, l, p, u, w, x) : a.D.call(null, b, c, d, e, f, + h, k, m, l, p, u, w, x), F = vj(this, W); + t(F) || tj(a.name, W); + return F.Qa ? F.Qa(b, c, d, e, f, h, k, m, l, p, u, w, x) : F.call(null, + b, c, d, e, f, h, k, m, l, p, u, w, x) + } + + function p(a, b, c, d, e, f, h, k, m, l, p, u, w) { + a = this; + var x = a.D.Pa ? a.D.Pa(b, c, d, e, f, h, k, m, l, p, u, w) : a.D.call(null, b, c, d, e, f, h, + k, m, l, p, u, w), W = vj(this, x); + t(W) || tj(a.name, x); + return W.Pa ? W.Pa(b, c, d, e, f, h, k, m, l, p, u, w) : W.call(null, b, c, d, e, f, h, k, m, + l, p, u, w) + } + + function m(a, b, c, d, e, f, h, k, m, l, p, u) { + a = this; + var w = a.D.Oa ? a.D.Oa(b, c, d, e, f, h, k, m, l, p, u) : a.D.call(null, b, c, d, e, f, h, k, + m, l, p, u), x = vj(this, w); + t(x) || tj(a.name, w); + return x.Oa ? x.Oa(b, c, d, e, f, h, k, m, l, p, u) : x.call(null, b, c, d, e, f, h, k, m, l, + p, u) + } + + function u(a, + b, c, d, e, f, h, k, m, l, p) { + a = this; + var u = a.D.Na ? a.D.Na(b, c, d, e, f, h, k, m, l, p) : a.D.call(null, b, c, d, e, f, h, k, m, + l, p), w = vj(this, u); + t(w) || tj(a.name, u); + return w.Na ? w.Na(b, c, d, e, f, h, k, m, l, p) : w.call(null, b, c, d, e, f, h, k, m, l, p) + } + + function w(a, b, c, d, e, f, h, k, m, l) { + a = this; + var p = a.D.Za ? a.D.Za(b, c, d, e, f, h, k, m, l) : a.D.call(null, b, c, d, e, f, h, k, m, + l), u = vj(this, p); + t(u) || tj(a.name, p); + return u.Za ? u.Za(b, c, d, e, f, h, k, m, l) : u.call(null, b, c, d, e, f, h, k, m, l) + } + + function x(a, b, c, d, e, f, h, k, m) { + a = this; + var l = a.D.Ha ? a.D.Ha(b, c, d, e, f, h, k, m) : a.D.call(null, + b, c, d, e, f, h, k, m), p = vj(this, l); + t(p) || tj(a.name, l); + return p.Ha ? p.Ha(b, c, d, e, f, h, k, m) : p.call(null, b, c, d, e, f, h, k, m) + } + + function C(a, b, c, d, e, f, h, k) { + a = this; + var m = a.D.Ya ? a.D.Ya(b, c, d, e, f, h, k) : a.D.call(null, b, c, d, e, f, h, k), + l = vj(this, m); + t(l) || tj(a.name, m); + return l.Ya ? l.Ya(b, c, d, e, f, h, k) : l.call(null, b, c, d, e, f, h, k) + } + + function F(a, b, c, d, e, f, h) { + a = this; + var k = a.D.Ca ? a.D.Ca(b, c, d, e, f, h) : a.D.call(null, b, c, d, e, f, h), m = vj(this, k); + t(m) || tj(a.name, k); + return m.Ca ? m.Ca(b, c, d, e, f, h) : m.call(null, b, c, d, e, f, h) + } + + function I(a, b, c, d, + e, f) { + a = this; + var h = a.D.Z ? a.D.Z(b, c, d, e, f) : a.D.call(null, b, c, d, e, f), k = vj(this, h); + t(k) || tj(a.name, h); + return k.Z ? k.Z(b, c, d, e, f) : k.call(null, b, c, d, e, f) + } + + function M(a, b, c, d, e) { + a = this; + var f = a.D.M ? a.D.M(b, c, d, e) : a.D.call(null, b, c, d, e), h = vj(this, f); + t(h) || tj(a.name, f); + return h.M ? h.M(b, c, d, e) : h.call(null, b, c, d, e) + } + + function S(a, b, c, d) { + a = this; + var e = a.D.l ? a.D.l(b, c, d) : a.D.call(null, b, c, d), f = vj(this, e); + t(f) || tj(a.name, e); + return f.l ? f.l(b, c, d) : f.call(null, b, c, d) + } + + function X(a, b, c) { + a = this; + var d = a.D.c ? a.D.c(b, c) : a.D.call(null, + b, c), e = vj(this, d); + t(e) || tj(a.name, d); + return e.c ? e.c(b, c) : e.call(null, b, c) + } + + function Ga(a, b) { + a = this; + var c = a.D.h ? a.D.h(b) : a.D.call(null, b), d = vj(this, c); + t(d) || tj(a.name, c); + return d.h ? d.h(b) : d.call(null, b) + } + + function db(a) { + a = this; + var b = a.D.B ? a.D.B() : a.D.call(null), c = vj(this, b); + t(c) || tj(a.name, b); + return c.B ? c.B() : c.call(null) + } + + var Q = null; + Q = function (Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc, Bd, se, Lf, Ih, + kl) { + switch (arguments.length) { + case 1: + return db.call(this, Q); + case 2: + return Ga.call(this, Q, Ha); + case 3: + return X.call(this, + Q, Ha, Ja); + case 4: + return S.call(this, Q, Ha, Ja, Oa); + case 5: + return M.call(this, Q, Ha, Ja, Oa, Ba); + case 6: + return I.call(this, Q, Ha, Ja, Oa, Ba, W); + case 7: + return F.call(this, Q, Ha, Ja, Oa, Ba, W, $a); + case 8: + return C.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka); + case 9: + return x.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb); + case 10: + return w.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb); + case 11: + return u.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb); + case 12: + return m.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib); + case 13: + return p.call(this, Q, Ha, Ja, Oa, Ba, W, $a, + ka, jb, nb, zb, Ib, Wd); + case 14: + return l.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb); + case 15: + return k.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic); + case 16: + return h.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc); + case 17: + return f.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc); + case 18: + return e.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc, Bd); + case 19: + return d.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc, Bd, + se); + case 20: + return c.call(this, Q, + Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc, Bd, se, Lf); + case 21: + return b.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc, Bd, + se, Lf, Ih); + case 22: + return a.call(this, Q, Ha, Ja, Oa, Ba, W, $a, ka, jb, nb, zb, Ib, Wd, Xb, ic, xc, Sc, Bd, + se, Lf, Ih, kl) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + Q.h = db; + Q.c = Ga; + Q.l = X; + Q.M = S; + Q.Z = M; + Q.Ca = I; + Q.Ya = F; + Q.Ha = C; + Q.Za = x; + Q.Na = w; + Q.Oa = u; + Q.Pa = m; + Q.Qa = p; + Q.Ra = l; + Q.Sa = k; + Q.Ta = h; + Q.Ua = f; + Q.Va = e; + Q.Wa = d; + Q.Xa = c; + Q.he = b; + Q.qf = a; + return Q + }(); + g.apply = function (a, b) { + return this.call.apply(this, [this].concat(Gb(b))) + }; + g.B = function () { + var a = this.D.B ? this.D.B() : this.D.call(null), b = vj(this, a); + t(b) || tj(this.name, a); + return b.B ? b.B() : b.call(null) + }; + g.h = function (a) { + var b = this.D.h ? this.D.h(a) : this.D.call(null, a), c = vj(this, b); + t(c) || tj(this.name, b); + return c.h ? c.h(a) : c.call(null, a) + }; + g.c = function (a, b) { + var c = this.D.c ? this.D.c(a, b) : this.D.call(null, a, b), d = vj(this, c); + t(d) || tj(this.name, c); + return d.c ? d.c(a, b) : d.call(null, a, b) + }; + g.l = function (a, b, c) { + var d = this.D.l ? this.D.l(a, b, c) : this.D.call(null, a, b, c), e = vj(this, d); + t(e) || tj(this.name, d); + return e.l ? e.l(a, b, c) : e.call(null, a, b, c) + }; + g.M = function (a, b, c, d) { + var e = this.D.M ? this.D.M(a, b, c, d) : this.D.call(null, a, b, c, d), f = vj(this, e); + t(f) || tj(this.name, e); + return f.M ? f.M(a, b, c, d) : f.call(null, a, b, c, d) + }; + g.Z = function (a, b, c, d, e) { + var f = this.D.Z ? this.D.Z(a, b, c, d, e) : this.D.call(null, a, b, c, d, e), h = vj(this, f); + t(h) || tj(this.name, f); + return h.Z ? h.Z(a, b, c, d, e) : h.call(null, a, b, c, d, e) + }; + g.Ca = function (a, b, c, d, e, f) { + var h = this.D.Ca ? this.D.Ca(a, b, c, d, e, f) : this.D.call(null, a, b, c, d, e, f), + k = vj(this, h); + t(k) || tj(this.name, h); + return k.Ca ? k.Ca(a, b, c, d, e, f) : k.call(null, a, b, c, d, e, f) + }; + g.Ya = function (a, b, c, d, e, f, h) { + var k = this.D.Ya ? this.D.Ya(a, b, c, d, e, f, h) : this.D.call(null, a, b, c, d, e, f, h), + l = vj(this, k); + t(l) || tj(this.name, k); + return l.Ya ? l.Ya(a, b, c, d, e, f, h) : l.call(null, a, b, c, d, e, f, h) + }; + g.Ha = function (a, b, c, d, e, f, h, k) { + var l = this.D.Ha ? this.D.Ha(a, b, c, d, e, f, h, k) : this.D.call(null, a, b, c, d, e, f, h, + k), p = vj(this, l); + t(p) || tj(this.name, l); + return p.Ha ? p.Ha(a, b, c, d, e, f, h, k) : p.call(null, a, b, c, d, e, f, h, k) + }; + g.Za = function (a, b, c, d, e, f, h, k, l) { + var p = this.D.Za ? this.D.Za(a, b, c, d, e, f, h, k, l) : this.D.call(null, a, b, c, d, e, f, + h, k, l), m = vj(this, p); + t(m) || tj(this.name, p); + return m.Za ? m.Za(a, b, c, d, e, f, h, k, l) : m.call(null, a, b, c, d, e, f, h, k, l) + }; + g.Na = function (a, b, c, d, e, f, h, k, l, p) { + var m = this.D.Na ? this.D.Na(a, b, c, d, e, f, h, k, l, p) : this.D.call(null, a, b, c, d, e, + f, h, k, l, p), u = vj(this, m); + t(u) || tj(this.name, m); + return u.Na ? u.Na(a, b, c, d, e, f, h, k, l, p) : u.call(null, a, b, c, d, e, f, h, k, l, p) + }; + g.Oa = function (a, b, c, d, e, f, h, k, l, p, m) { + var u = this.D.Oa ? this.D.Oa(a, b, c, d, e, f, h, k, l, p, m) : this.D.call(null, a, b, c, d, + e, f, h, k, l, p, m), w = vj(this, u); + t(w) || tj(this.name, u); + return w.Oa ? w.Oa(a, b, c, d, e, f, h, k, l, p, m) : w.call(null, a, b, c, d, e, f, h, k, l, p, + m) + }; + g.Pa = function (a, b, c, d, e, f, h, k, l, p, m, u) { + var w = this.D.Pa ? this.D.Pa(a, b, c, d, e, f, h, k, l, p, m, u) : this.D.call(null, a, b, c, + d, e, f, h, k, l, p, m, u), x = vj(this, w); + t(x) || tj(this.name, w); + return x.Pa ? x.Pa(a, b, c, d, e, f, h, k, l, p, m, u) : x.call(null, a, b, c, d, e, f, h, k, l, + p, m, u) + }; + g.Qa = function (a, b, c, d, e, f, h, k, l, p, m, u, w) { + var x = this.D.Qa ? this.D.Qa(a, b, c, d, e, f, h, k, l, p, m, u, w) : this.D.call(null, a, b, + c, d, e, f, h, k, l, p, m, u, w), C = vj(this, x); + t(C) || tj(this.name, x); + return C.Qa ? C.Qa(a, b, c, d, e, f, h, k, l, p, m, u, w) : C.call(null, a, b, c, d, e, f, h, k, + l, p, m, u, w) + }; + g.Ra = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x) { + var C = this.D.Ra ? this.D.Ra(a, b, c, d, e, f, h, k, l, p, m, u, w, x) : this.D.call(null, a, + b, c, d, e, f, h, k, l, p, m, u, w, x), F = vj(this, C); + t(F) || tj(this.name, C); + return F.Ra ? F.Ra(a, b, c, d, e, f, h, k, l, p, m, u, w, x) : F.call(null, a, b, c, d, e, f, h, + k, l, p, m, u, w, x) + }; + g.Sa = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C) { + var F = this.D.Sa ? this.D.Sa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C) : this.D.call(null, + a, b, c, d, e, f, h, k, l, p, m, u, w, x, C), I = vj(this, F); + t(I) || tj(this.name, F); + return I.Sa ? I.Sa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C) : I.call(null, a, b, c, d, e, f, + h, k, l, p, m, u, w, x, C) + }; + g.Ta = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F) { + var I = this.D.Ta ? this.D.Ta(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F) : this.D.call( + null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F), M = vj(this, I); + t(M) || tj(this.name, I); + return M.Ta ? M.Ta(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F) : M.call(null, a, b, c, d, e, + f, h, k, l, p, m, u, w, x, C, F) + }; + g.Ua = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) { + var M = this.D.Ua ? this.D.Ua(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) : this.D.call( + null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I), S = vj(this, M); + t(S) || tj(this.name, M); + return S.Ua ? S.Ua(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I) : S.call(null, a, b, c, d, + e, f, h, k, l, p, m, u, w, x, C, F, I) + }; + g.Va = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) { + var S = this.D.Va ? this.D.Va(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) + : this.D.call(null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M), X = vj(this, S); + t(X) || tj(this.name, S); + return X.Va ? X.Va(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) : X.call(null, a, b, c, + d, e, f, h, k, l, p, m, u, w, x, C, F, I, M) + }; + g.Wa = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) { + var X = this.D.Wa ? this.D.Wa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) + : this.D.call(null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S), + Ga = vj(this, X); + t(Ga) || tj(this.name, X); + return Ga.Wa ? Ga.Wa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) : Ga.call(null, a, + b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S) + }; + g.Xa = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) { + var Ga = this.D.Xa ? this.D.Xa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) + : this.D.call(null, a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X), + db = vj(this, Ga); + t(db) || tj(this.name, Ga); + return db.Xa ? db.Xa(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) : db.call(null, + a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X) + }; + g.he = function (a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga) { + var db = oe(this.D, a, b, c, d, be([e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga])), + Q = vj(this, db); + t(Q) || tj(this.name, db); + return oe(Q, a, b, c, d, be([e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga])) + }; + + function wj(a, b) { + var c = xj; + gg.M(c.Vd, K, a, b); + pj(c.Ud, c.Vd, c.Ed, c.Rd) + } + + function vj(a, b) { + G.c(B(a.Ed), B(a.Rd)) || pj(a.Ud, a.Vd, a.Ed, a.Rd); + var c = B(a.Ud); + c = c.h ? c.h(b) : c.call(null, b); + return t(c) ? c : sj(a.name, b, a.Rd, a.Vd, a.Kf, a.Ud, a.Ed, a.vf) + } + + g.hd = function () { + return Yc(this.name) + }; + g.jd = function () { + return Zc(this.name) + }; + g.U = function () { + return ja(this) + }; + + function yj(a, b) { + this.Mc = a; + this.w = b; + this.m = 2153775104; + this.J = 2048 + } + + g = yj.prototype; + g.toString = function () { + return this.Mc + }; + g.equiv = function (a) { + return this.K(null, a) + }; + g.K = function (a, b) { + return b instanceof yj && this.Mc === b.Mc + }; + g.R = function (a, b) { + return Jc(b, ['#uuid "', v.h(this.Mc), '"'].join("")) + }; + g.U = function () { + null == this.w && (this.w = od(this.Mc)); + return this.w + }; + g.cc = function (a, b) { + return Aa(this.Mc, b.Mc) + }; + var zj = new L(null, "hook", "hook", 750265408), Aj = new L(null, "y", "y", -1757859776), + Bj = new L(null, "setCurrentTime", "setCurrentTime", -623552), + Cj = new L(null, "span.gutter", "span.gutter", -700214016), + Dj = new rd(null, "\x26", "\x26", -2144855648, null), + Ej = new L(null, "dcs-param", "dcs-param", -971011648), + Fj = new L(null, "path", "path", -188191168), Gj = new L(null, "escape", "escape", -991601952), + Df = new rd(null, "meta34617", "meta34617", -1789836320, null), + Hj = new L(null, "force-load-ch", "force-load-ch", -1689229247), Ij = new rd("schema.core", + "Any", "schema.core/Any", -1891898271, null), + Jj = new L(null, "tab-index", "tab-index", 895755393), + Kj = new L(null, "bold", "bold", -116809535), + Lj = new L(null, "authorImgURL", "authorImgURL", -1171541759), + Mj = new L(null, "schema", "schema", -1582001791), + Nj = new rd(null, "optional-key", "optional-key", 988406145, null), + Oj = new L(null, "char-attrs", "char-attrs", -1444091455), + Pj = new L(null, "esc-dispatch", "esc-dispatch", 17832481), + Qj = new L(null, "idle_time_limit", "idle_time_limit", -1837919647), + Rj = new L(null, "auto-wrap-mode", "auto-wrap-mode", + -2049555583), Sj = new L(null, "preload?", "preload?", 445442977), + Tj = new L(null, "on-set", "on-set", -140953470), + Uj = new L(null, "current-time", "current-time", -1609407134), + Vj = new L(null, "span.progressbar", "span.progressbar", 766750210), + Wj = new L(null, "osc-end", "osc-end", 1762953954), + Xj = new L("internal", "rewind", "internal/rewind", -31749342), + Yj = new L(null, "bottom-margin", "bottom-margin", -701300733), + Zj = new L(null, "on-key-press", "on-key-press", -399563677), + ak = new L(null, "osc-put", "osc-put", -1827844733), bk = new L(null, + "cljsLegacyRender", "cljsLegacyRender", -1527295613), + ck = new L(null, "klass", "klass", -1386752349), dk = new L(null, "blink", "blink", -271985917), + ek = new rd(null, "meta43127", "meta43127", 166183907, null), + fk = new L(null, "primary", "primary", 817773892), + gk = new rd(null, "meta43105", "meta43105", -531987068, null), + rb = new L(null, "meta", "meta", 1499536964), V = new L(null, "screen", "screen", 1990059748), + hk = new rd(null, "Symbol", "Symbol", 716452869, null), + ik = new L(null, "color", "color", 1011675173), jk = new rd(null, "blockable", "blockable", + -28395259, null), sb = new L(null, "dup", "dup", 556298533), + kk = new L(null, "parser-params", "parser-params", 36457893), + lk = new rd(null, "height", "height", -1629257147, null), + mk = new L(null, "key", "key", -1516042587), + nk = new rd(null, "CellLine", "CellLine", -317574363, null), + ok = new L(null, "asciicast", "asciicast", 509526949), + pk = new rd(null, "conditional", "conditional", -1212542970, null), + qk = new L(null, "exit", "exit", 351849638), + rk = new L(null, "parser-intermediates", "parser-intermediates", -169100058), + sk = new L(null, "else", "else", + -1508377146), tk = new L(null, "tabs", "tabs", -779855354), + uk = new L(null, "ground", "ground", 1193572934), + vk = new L(null, "next-print-wraps", "next-print-wraps", -1664999738), + wk = new L(null, "font-size", "font-size", -1847940346), + xk = new rd(null, "Bool", "Bool", 195910502, null), + yk = new L(null, "transition", "transition", 765692007), + zk = new rd(null, "one", "one", -1719427865, null), + Ak = new L(null, "speed", "speed", 1257663751), + Bk = new L(null, "displayName", "displayName", -809144601), + Ck = new L(null, "_", "_", 1453416199), eg = new L(null, "validator", + "validator", -1966190681), Dk = new rd(null, "char-attrs", "char-attrs", 196440072, null), + Ek = new L(null, "div.loading", "div.loading", -155515768), + Fk = new L(null, "dcs-passthrough", "dcs-passthrough", -671044440), + Gk = new L(null, "show-hud", "show-hud", 1983299752), + Hk = new L(null, "start-at", "start-at", -103334680), + Ik = new L(null, "default", "default", -1987822328), + Jk = new L(null, "csi-param", "csi-param", -1120111192), + Kk = new L(null, "div.control-bar", "div.control-bar", -1316808248), + Lk = new L(null, "finally-block", "finally-block", + 832982472), Mk = new rd(null, "cb", "cb", -2064487928, null), + Nk = new L(null, "inverse", "inverse", -1623859672), Ok = new L(null, "fg", "fg", -101797208), + Pk = new L(null, "warn", "warn", -436710552), + Qk = new L(null, "dcs-intermediate", "dcs-intermediate", 480808872), + Rk = new L(null, "osc-string", "osc-string", -486531128), + Sk = new L(null, "on-enter", "on-enter", -928988216), + Tk = new L(null, "name", "name", 1843675177), Uk = new L(null, "frames", "frames", 1765687497), + Vk = new L(null, "extra-validator-fn", "extra-validator-fn", 1562905865), Wk = new L(null, + "output-schema", "output-schema", 272504137), + Xk = new L(null, "div.play-button", "div.play-button", 1020321513), + Yk = new L(null, "span.time-elapsed", "span.time-elapsed", -1782475638), + Zk = new L(null, "time", "time", 1385887882), + $k = new L(null, "component-did-mount", "component-did-mount", -1126910518), + al = new L(null, "background-color", "background-color", 570434026), + bl = new L(null, "recording-ch-fn", "recording-ch-fn", -902533462), + cl = new L(null, "span.playback-button", "span.playback-button", -1136389398), + dl = new L(null, "span.title-bar", + "span.title-bar", -1165872085), el = new L(null, "loaded", "loaded", -1246482293), + fl = new L(null, "width", "width", -384071477), gl = new L(null, "start", "start", -355208981), + hl = new rd(null, "meta43130", "meta43130", 1056327947, null), + il = new L(null, "lines", "lines", -700165781), + jl = new L(null, "input-schemas", "input-schemas", -982154805), + ll = new L(null, "sos-pm-apc-string", "sos-pm-apc-string", 398998091), + ml = new L(null, "cursor-on", "cursor-on", 302555051), + nl = new L(null, "component-did-update", "component-did-update", -1468549173), + ol = new L(null, "div.start-prompt", "div.start-prompt", -41424788), + Xi = new L(null, "val", "val", 128701612), pl = new L(null, "cursor", "cursor", 1011937484), + ql = new L(null, "dcs-entry", "dcs-entry", 216833388), + Z = new L(null, "recur", "recur", -437573268), rl = new L(null, "type", "type", 1174270348), + sl = new rd(null, "Num", "Num", -2044934708, null), + tl = new L(null, "alternate", "alternate", -931038644), + ul = new L(null, "catch-block", "catch-block", 1175212748), + vl = new L(null, "onPlay", "onPlay", 150417132), wl = new L(null, "duration", "duration", + 1444101068), xl = new L(null, "execute", "execute", -129499188), + yl = new rd(null, "pred", "pred", -727012372, null), + zl = new L(null, "src", "src", -1651076051), Al = new rd(null, "Any", "Any", 1277492269, null), + Bl = new L(null, "span.bar", "span.bar", -1986926323), + Cl = new rd(null, "Regex", "Regex", 205914413, null), + Dl = new L(null, "msg-ch", "msg-ch", -1840176755), + El = new L(null, "on-exit", "on-exit", 1821961613), + Ti = new L(null, "fallback-impl", "fallback-impl", -1501286995), + Fl = new L(null, "view-box", "view-box", -1792199155), Gl = new L(null, "source", + "source", -433931539), Hl = new L(null, "csi-entry", "csi-entry", -1787942099), + pb = new L(null, "flush-on-newline", "flush-on-newline", -151457939), + Il = new L(null, "preds-and-schemas", "preds-and-schemas", -1306766355), + Jl = new L(null, "command-ch", "command-ch", 508874766), + Kl = new L(null, "componentWillUnmount", "componentWillUnmount", 1573788814), + Ll = new rd(null, "Inst", "Inst", 292408622, null), + Ml = new L(null, "span.timer", "span.timer", 2111534382), + Nl = new L(null, "toggle", "toggle", 1291842030), + Ol = new L(null, "cursor-blink-ch", "cursor-blink-ch", + 1063651214), Pl = new L(null, "print", "print", 1299562414), + Ql = new L(null, "on-mouse-down", "on-mouse-down", 1147755470), + Rl = new L(null, "csi-dispatch", "csi-dispatch", -126857169), + Sl = new L(null, "on-click", "on-click", 1632826543), + Tl = new L(null, "parser-state", "parser-state", 594493647), + Ul = new L(null, "ignore", "ignore", -1631542033), + lj = new L(null, "descendants", "descendants", 1824886031), + Vl = new L(null, "underline", "underline", 2018066703), + Wl = new rd(null, "Str", "Str", 907970895, null), + Xl = new L(null, "param", "param", 2013631823), + Yl = new L(null, "k", "k", -2146297393), ki = new L(null, "title", "title", 636505583), + Zl = new L(null, "stop-ch", "stop-ch", -219113969), + $l = new L(null, "insert-mode", "insert-mode", 894811791), + am = new rd(null, "maybe", "maybe", 1326133967, null), + bm = new L(null, "toggle-fullscreen", "toggle-fullscreen", -1647254833), + cm = new L(null, "loop", "loop", -395552849), + ni = new L(null, "author-img-url", "author-img-url", 2016975920), + dm = new L(null, "shouldComponentUpdate", "shouldComponentUpdate", 1795750960), + mj = new L(null, "ancestors", "ancestors", + -776045424), em = new rd(null, "flag", "flag", -1565787888, null), + fm = new L(null, "style", "style", -496642736), gm = new L(null, "theme", "theme", -1247880880), + hm = new L(null, "stream", "stream", 1534941648), + im = new L(null, "charset-fn", "charset-fn", 1374523920), + li = new L(null, "author", "author", 2111686192), + jm = new L(null, "escape-intermediate", "escape-intermediate", 1036490448), + km = new L(null, "div", "div", 1057191632), + qb = new L(null, "readably", "readably", 1129599760), + lm = new L(null, "change-speed", "change-speed", 2125740976), Ki = new L(null, + "more-marker", "more-marker", -14717935), + mm = new L(null, "new-line-mode", "new-line-mode", 1467504785), + nm = new L(null, "optional?", "optional?", 1184638129), + om = new L(null, "csi-intermediate", "csi-intermediate", -410048175), + pm = new L(null, "reagentRender", "reagentRender", -358306383), + qm = new L(null, "idle-time-limit", "idle-time-limit", -928369231), + rm = new L(null, "started?", "started?", -1301062863), + sm = new L(null, "other-buffer-saved", "other-buffer-saved", -2048065486), + tm = new L(null, "snapshot", "snapshot", -1274785710), um = + new L(null, "osc-start", "osc-start", -1717437326), + vm = new L(null, "preload", "preload", 1646824722), + wm = new L(null, "stop", "stop", -2140911342), + xm = new L(null, "no-cache", "no-cache", 1588056370), + ym = new rd(null, "Uuid", "Uuid", -1866694318, null), + zm = new L(null, "render", "render", -1408033454), + Am = new rd(null, "width", "width", 1256460050, null), + Bm = new L(null, "poster", "poster", -1616913550), + Cm = new L(null, "csi-ignore", "csi-ignore", -764437550), + Dm = new L(null, "reagent-render", "reagent-render", -985383853), Em = new L(null, "auto-play", + "auto-play", -645319501), Fm = new L(null, "collect", "collect", -284321549), + Gm = new L(null, "pre.asciinema-terminal", "pre.asciinema-terminal", 832737619), + Hm = new L(null, "loading", "loading", -737050189), + Im = new L(null, "priority", "priority", 1431093715), + Jm = new L(null, "auto-play?", "auto-play?", 385278451), + Km = new rd(null, "val", "val", 1769233139, null), + Lm = new L(null, "span.line", "span.line", -1541583788), + tb = new L(null, "print-length", "print-length", 1931866356), + Mm = new L(null, "poster-time", "poster-time", 1478579796), Nm = new L(null, + "saved", "saved", 288760660), Om = new L(null, "error-symbol", "error-symbol", -823480428), + oi = new L(null, "on-can-play", "on-can-play", 1481578549), + Pm = new L(null, "catch-exception", "catch-exception", -1997306795), + Qm = new L(null, "constructor", "constructor", -1953928811), + Rm = new L(null, "auto-run", "auto-run", 1958400437), + Sm = new L(null, "div.asciinema-player", "div.asciinema-player", -1293079051), + kj = new L(null, "parents", "parents", -2027538891), + mi = new L(null, "author-url", "author-url", 1091920533), Tm = new L(null, "pred-name", + "pred-name", -3677451), Um = new rd(null, "meta42957", "meta42957", -1080714315, null), + Vm = new L(null, "on-mouse-move", "on-mouse-move", -1386320874), + Wm = new L(null, "component-will-unmount", "component-will-unmount", -2058314698), + Xm = new L(null, "prev", "prev", -1597069226), Ym = new L(null, "svg", "svg", 856789142), + Zm = new L(null, "getDuration", "getDuration", -995932010), + $m = new L(null, "url", "url", 276297046), + an = new L(null, "authorURL", "authorURL", 549221782), + bn = new rd(null, "meta38850", "meta38850", 1963771318, null), cn = new L(null, + "continue-block", "continue-block", -1852047850), dn = new L(null, "loop?", "loop?", 457687798), + en = new rd(null, "ch", "ch", 1085813622, null), + fn = new rd(null, "CodePoint", "CodePoint", -132710345, null), + gn = new L(null, "autoPlay", "autoPlay", -561263241), + hn = new rd(null, "\x3d\x3e", "\x3d\x3e", -813269641, null), + jn = new L(null, "playing", "playing", 70013335), + kn = new rd(null, "Keyword", "Keyword", -850065993, null), + ln = new L(null, "display-name", "display-name", 694513143), + mn = new L(null, "random", "random", -557811113), nn = new L(null, "position", + "position", -2011731912), on = new L(null, "on-dispose", "on-dispose", 2105306360), + pn = new L(null, "d", "d", 1972142424), qn = new L(null, "action", "action", -811238024), + rn = new L(null, "stdout-ch", "stdout-ch", 825692568), + sn = new L(null, "pause", "pause", -2095325672), tn = new L(null, "error", "error", -978969032), + un = new L(null, "span.fullscreen-button", "span.fullscreen-button", -1476136392), + vn = new L(null, "class-name", "class-name", 945142584), + wn = new L(null, "componentFunction", "componentFunction", 825866104), + xn = new L(null, "div.loader", + "div.loader", -1644603528), yn = new L(null, "origin-mode", "origin-mode", -1430095912), + zn = new L(null, "x", "x", 2099068185), An = new L(null, "__html", "__html", 674048345), + Bn = new L(null, "fontSize", "fontSize", 919623033), + Cn = new L(null, "div.asciinema-player-wrapper", "div.asciinema-player-wrapper", 2009764409), + Dn = new L(null, "startAt", "startAt", 849336089), + En = new L(null, "getCurrentTime", "getCurrentTime", 697283642), + Fn = new L(null, "put", "put", 1299772570), + Gn = new rd(null, "CharAttrs", "CharAttrs", 1533586778, null), Hn = new L(null, + "top-margin", "top-margin", 655579514), In = new L(null, "unhook", "unhook", 1440586234), + Jn = new L(null, "play", "play", -580418022), Kn = new L(null, "seek", "seek", 758996602), + Ln = new rd(null, "chars", "chars", 545901210, null), + Mn = new L(null, "version", "version", 425292698), + Nn = new rd(null, "line", "line", 1852876762, null), + qi = new L(null, "on-pause", "on-pause", 1839279163), + On = new L(null, "visible", "visible", -1024216805), + Pn = new L(null, "autobind", "autobind", -570650245), + Qn = new L(null, "hierarchy", "hierarchy", -1053470341), Rn = new L(null, + "on-key-down", "on-key-down", -1374733765), pi = new L(null, "on-play", "on-play", -188934501), + Sn = new rd(null, "\x3d\x3e*", "\x3d\x3e*", 1909690043, null), + Si = new L(null, "alt-impl", "alt-impl", 670969595), Tn = new L(null, "bg", "bg", -206688421), + Un = new L(null, "p?", "p?", -1172161701), + Vn = new L(null, "onCanPlay", "onCanPlay", 197552027), + Wn = new L(null, "other-buffer-lines", "other-buffer-lines", -1562366021), + Xn = new rd(null, "record", "record", 861424668, null), + Yn = new L(null, "italic", "italic", 32599196), Zn = new rd(null, "required-key", + "required-key", 1624616412, null), $n = new L(null, "dcs-ignore", "dcs-ignore", 198619612), + ao = new rd(null, "optional", "optional", -600484260, null), + gj = new L(null, "keywordize-keys", "keywordize-keys", 1310784252), + bo = new rd(null, "Int", "Int", -2116888740, null), + co = new L(null, "span.time-remaining", "span.time-remaining", 706865437), + eo = new L(null, "componentWillMount", "componentWillMount", -285327619), + fo = new L(null, "idleTimeLimit", "idleTimeLimit", -867712227), + go = new L("internal", "seek", "internal/seek", -1958914115), ho = new L(null, + "href", "href", -793805698), io = new L(null, "buffer", "buffer", 617295198), + jo = new L(null, "img", "img", 1442687358), ko = new L(null, "stdout", "stdout", -531490018), + lo = new L(null, "a", "a", -2123407586), + mo = new L(null, "dangerouslySetInnerHTML", "dangerouslySetInnerHTML", -554971138), + no = new L(null, "height", "height", 1025178622), + oo = new rd("s", "Num", "s/Num", -2044935073, null), + po = new L(null, "clear", "clear", 1877104959), + ri = new L("cljs.core", "not-found", "cljs.core/not-found", -1572889185), + qo = new rd(null, "meta36583", "meta36583", + -346463841, null), ro = new L(null, "span", "span", 1394872991), + so = new L(null, "show", "show", -576705889), to = new rd(null, "f", "f", 43394975, null), + uo = new L(null, "onPause", "onPause", -470027297); + + function vo(a, b) { + var c = Kb(Ai, a, b); + return ae(c, vg(function (a) { + return function (b) { + return a === b + } + }(c), b)) + } + + var wo = function wo(a) { + switch (arguments.length) { + case 0: + return wo.B(); + case 1: + return wo.h(arguments[0]); + case 2: + return wo.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return wo.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + wo.B = function () { + return vi + }; + wo.h = function (a) { + return a + }; + wo.c = function (a, b) { + return H(a) < H(b) ? Mb(ge, b, a) : Mb(ge, a, b) + }; + wo.A = function (a, b, c) { + a = vo(H, ge.A(c, b, be([a]))); + return Mb(wg, y(a), vd(a)) + }; + wo.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return wo.A(b, a, c) + }; + wo.L = 2; + var xo = function xo(a) { + switch (arguments.length) { + case 1: + return xo.h(arguments[0]); + case 2: + return xo.c(arguments[0], arguments[1]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return xo.A(arguments[0], arguments[1], new Jb(c.slice(2), 0, null)) + } + }; + xo.h = function (a) { + return a + }; + xo.c = function (a, b) { + return H(a) < H(b) ? Mb(function (a, d) { + return He(b, d) ? re.c(a, d) : a + }, a, a) : Mb(re, a, b) + }; + xo.A = function (a, b, c) { + return Mb(xo, a, ge.c(c, b)) + }; + xo.N = function (a) { + var b = y(a), c = z(a); + a = y(c); + c = z(c); + return xo.A(b, a, c) + }; + xo.L = 2; + + function yo(a) { + var b = Pe([Lj, vl, tm, an, gn, Bn, Dn, Vn, fo, uo], [ni, pi, Bm, mi, Em, wk, Hk, oi, qm, qi]); + return Mb(function (b, d) { + var c = J(d, 0, null), f = J(d, 1, null); + return He(a, c) ? K.l(b, f, D.c(a, c)) : b + }, Kb(le, a, lh(b)), b) + }; + if ("undefined" === typeof zo) { + var zo = dg.h(null); + } + if ("undefined" === typeof Ao) { + var Ao = function () { + var a = {}; + a.warn = function () { + return function () { + function a(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var d = Array(arguments.length - 0); b < d.length;) { + d[b] = arguments[b + 0], ++b; + } + b = new Jb(d, 0, null) + } + return c.call(this, b) + } + + function c(a) { + return gg.A(zo, Ag, new R(null, 1, 5, T, [Pk], null), ge, be([P(v, a)])) + } + + a.L = 0; + a.N = function (a) { + a = E(a); + return c(a) + }; + a.A = c; + return a + }() + }(a); + a.error = function () { + return function () { + function a(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var d = Array(arguments.length - + 0); b < d.length;) { + d[b] = arguments[b + 0], ++b; + } + b = new Jb(d, 0, null) + } + return c.call(this, b) + } + + function c(a) { + return gg.A(zo, Ag, new R(null, 1, 5, T, [tn], null), ge, be([P(v, a)])) + } + + a.L = 0; + a.N = function (a) { + a = E(a); + return c(a) + }; + a.A = c; + return a + }() + }(a); + return a + }(); + } + + function Bo(a, b, c) { + var d = RegExp, e = b.source, f = t(b.ignoreCase) ? [v.h("g"), "i"].join("") : "g"; + f = t(b.multiline) ? [v.h(f), "m"].join("") : f; + b = t(b.cg) ? [v.h(f), "u"].join("") : f; + d = new d(e, b); + return a.replace(d, c) + } + + function Co(a) { + return function () { + function b(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var d = Array(arguments.length - 0); b < d.length;) { + d[b] = arguments[b + 0], ++b; + } + b = new Jb(d, 0, null) + } + return c.call(this, b) + } + + function c(b) { + b = lg(b); + if (G.c(H(b), 1)) { + return b = y(b), a.h ? a.h(b) : a.call(null, b); + } + b = Wg(b); + return a.h ? a.h(b) : a.call(null, b) + } + + b.L = 0; + b.N = function (a) { + a = E(a); + return c(a) + }; + b.A = c; + return b + }() + } + + function Do(a, b, c) { + if ("string" === typeof b) { + return a.replace(new RegExp( + String(b).replace(/([-()\[\]{}+?*.$\^|,:# H(a) ? a.toUpperCase() : [v.h(a.substring(0, 1).toUpperCase()), + v.h(a.substring(1))].join("") + } + + function Qo(a) { + if ("string" === typeof a) { + return a; + } + a = jf(a); + var b = Fo(a, /-/), c = E(b); + b = y(c); + c = z(c); + return t(Oo.h ? Oo.h(b) : Oo.call(null, b)) ? a : Kb(v, b, ig.c(Po, c)) + } + + function Ro(a) { + var b = function () { + var b = function () { + var b = me(a); + return b ? (b = a.displayName, t(b) ? b : a.name) : b + }(); + if (t(b)) { + return b; + } + b = function () { + var b = null != a ? a.J & 4096 || q === a.Oe ? !0 : !1 : !1; + return b ? jf(a) : b + }(); + if (t(b)) { + return b; + } + b = qe(a); + return xe(b) ? Tk.h(b) : null + }(); + return Do("" + v.h(b), "$", ".") + } + + var So = !1; + if ("undefined" === typeof To) { + var To = 0; + } + + function Uo(a) { + return setTimeout(a, 16) + } + + var Vo = "undefined" === typeof window || null == window.document ? Uo : function () { + var a = window, b = a.requestAnimationFrame; + if (t(b)) { + return b; + } + b = a.webkitRequestAnimationFrame; + if (t(b)) { + return b; + } + b = a.mozRequestAnimationFrame; + if (t(b)) { + return b; + } + a = a.msRequestAnimationFrame; + return t(a) ? a : Uo + }(); + + function Wo(a, b) { + return a.cljsMountOrder - b.cljsMountOrder + } + + if ("undefined" === typeof Xo) { + var Xo = function () { + return null + }; + } + + function Yo(a) { + this.Yd = a + } + + function Zo(a, b) { + var c = a[b]; + if (null == c) { + return null; + } + a[b] = null; + for (var d = c.length, e = 0; ;) { + if (e < d) { + var f = c[e]; + f.B ? f.B() : f.call(null); + e += 1 + } else { + return null + } + } + } + + function $o(a) { + if (a.Yd) { + return null; + } + a.Yd = !0; + a = function (a) { + return function () { + a.Yd = !1; + return ap(a) + } + }(a); + return Vo.h ? Vo.h(a) : Vo.call(null, a) + } + + function ap(a) { + Zo(a, "beforeFlush"); + Xo(); + var b = a.componentQueue; + if (null != b) { + a:{ + a.componentQueue = null, b.sort(Wo); + for (var c = b.length, d = 0; ;) { + if (d < c) { + var e = b[d]; + !0 === e.cljsIsDirty && e.forceUpdate(); + d += 1 + } else { + break a + } + } + } + } + return Zo(a, "afterRender") + } + + Yo.prototype.enqueue = function (a, b) { + null == this[a] && (this[a] = []); + this[a].push(b); + return $o(this) + }; + if ("undefined" === typeof bp) { + var bp = new Yo(!1); + } + + function cp(a) { + if (t(a.cljsIsDirty)) { + return null; + } + a.cljsIsDirty = !0; + return bp.enqueue("componentQueue", a) + };var dp; + if ("undefined" === typeof ep) { + var ep = !1; + } + if ("undefined" === typeof fp) { + var fp = 0; + } + if ("undefined" === typeof gp) { + var gp = dg.h(0); + } + + function hp(a, b) { + b.captured = null; + a:{ + var c = dp; + dp = b; + try { + var d = a.B ? a.B() : a.call(null); + break a + } finally { + dp = c + } + d = void 0 + } + var e = b.captured; + b.rc = !1; + a:{ + c = b.Nc; + var f = null == e ? 0 : e.length, h = f === (null == c ? 0 : c.length); + if (h) { + for (h = 0; ;) { + var k = h === f; + if (k) { + c = k; + break a + } + if (e[h] === c[h]) { + h += 1; + } else { + c = !1; + break a + } + } + } else { + c = h + } + } + if (!c) { + a:{ + c = yi(e); + f = yi(b.Nc); + b.Nc = e; + e = E(xo.c(c, f)); + h = null; + for (var l = k = 0; ;) { + if (l < k) { + var p = h.$(null, l); + Mc(p, b, ip); + l += 1 + } else if (e = E(e)) { + h = e, Ae(h) ? (e = Wc(h), l = Xc(h), h = e, k = H(e), e = l) : (e = y( + h), Mc(e, b, ip), e = z(h), h = null, k = + 0), l = 0; + } else { + break; + } + } + c = E(xo.c(f, c)); + f = null; + for (k = h = 0; ;) { + if (k < h) { + e = f.$(null, k), Nc(e, b), k += 1; + } else if (c = E( + c)) { + f = c, Ae(f) ? (c = Wc(f), h = Xc(f), f = c, e = H(c), c = h, h = e) : (e = y(f), Nc(e, + b), c = z(f), f = null, h = 0), k = 0; + } else { + break a + } + } + } + } + return d + } + + function jp(a) { + var b = dp; + if (null != b) { + var c = b.captured; + null == c ? b.captured = [a] : c.push(a) + } + } + + function kp(a, b) { + ep && gg.l(gp, Xe, H(b) - H(a)); + return b + } + + function lp(a, b, c) { + var d = a.gb; + a.gb = kp(d, K.l(d, b, c)); + return a.Ce = null + } + + function mp(a, b) { + var c = a.gb; + a.gb = kp(c, le.c(c, b)); + return a.Ce = null + } + + function np(a, b, c) { + var d = a.Ce; + d = null == d ? a.Ce = Ue(function () { + return function (a, b, c) { + a.push(b); + a.push(c); + return a + } + }(d), [], a.gb) : d; + for (var e = d.length, f = 0; ;) { + if (f < e) { + var h = d[f], k = d[f + 1]; + k.M ? k.M(h, a, b, c) : k.call(null, h, a, b, c); + f = 2 + f + } else { + return null + } + } + } + + function op(a, b, c, d) { + Jc(b, ["#\x3c", v.h(d), " "].join("")); + a:{ + d = dp; + dp = null; + try { + var e = B(a); + break a + } finally { + dp = d + } + e = void 0 + } + Qi(e, b, c); + return Jc(b, "\x3e") + } + + if ("undefined" === typeof pp) { + var pp = null; + } + + function qp() { + for (; ;) { + var a = pp; + if (null == a) { + return null; + } + pp = null; + for (var b = a.length, c = 0; ;) { + if (c < b) { + var d = a[c]; + d.rc && null != d.Nc && rp(d, !0); + c += 1 + } else { + break + } + } + } + } + + Xo = qp; + + function sp(a, b, c, d) { + this.state = a; + this.meta = b; + this.df = c; + this.gb = d; + this.m = 2153938944; + this.J = 114690 + } + + g = sp.prototype; + g.R = function (a, b, c) { + return op(this, b, c, "Atom:") + }; + g.P = function () { + return this.meta + }; + g.U = function () { + return ja(this) + }; + g.K = function (a, b) { + return this === b + }; + g.Gb = function (a, b) { + var c = this.state; + this.state = b; + null != this.gb && np(this, c, b); + return b + }; + g.je = function (a, b) { + return this.Gb(null, b.h ? b.h(this.state) : b.call(null, this.state)) + }; + g.ke = function (a, b, c) { + return this.Gb(null, b.c ? b.c(this.state, c) : b.call(null, this.state, c)) + }; + g.le = function (a, b, c, d) { + return this.Gb(null, b.l ? b.l(this.state, c, d) : b.call(null, this.state, c, d)) + }; + g.me = function (a, b, c, d, e) { + return this.Gb(null, Af(b, this.state, c, d, e)) + }; + g.Kd = function (a, b, c) { + return np(this, b, c) + }; + g.Jd = function (a, b, c) { + return lp(this, b, c) + }; + g.Ld = function (a, b) { + return mp(this, b) + }; + g.pc = function () { + jp(this); + return this.state + }; + var tp = function tp(a) { + switch (arguments.length) { + case 1: + return tp.h(arguments[0]); + default: + for (var c = [], d = arguments.length, e = 0; ;) { + if (e < d) { + c.push( + arguments[e]), e += 1; + } else { + break; + } + } + return tp.A(arguments[0], new Jb(c.slice(1), 0, null)) + } + }; + tp.h = function (a) { + return new sp(a, null, null, null) + }; + tp.A = function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, rb); + c = D.c(c, eg); + return new sp(a, d, c, null) + }; + tp.N = function (a) { + var b = y(a); + a = z(a); + return tp.A(b, a) + }; + tp.L = 1; + var up = function up(a) { + if (null != a && null != a.we) { + return a.we(); + } + var c = up[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = up._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("IDisposable.dispose!", a); + }; + + function ip(a, b, c, d) { + c === d || a.rc ? a = null : null == a.Sb ? (a.rc = !0, null == pp && (pp = [], !1 === bp.Yd + && $o(bp)), a = pp.push(a)) : a = !0 === a.Sb ? rp(a, !1) : a.Sb.h ? a.Sb.h(a) : a.Sb.call(null, + a); + return a + } + + function vp(a, b, c, d, e, f, h, k) { + this.Cb = a; + this.state = b; + this.rc = c; + this.We = d; + this.Nc = e; + this.gb = f; + this.Sb = h; + this.ee = k; + this.m = 2153807872; + this.J = 114690 + } + + function wp(a) { + var b = dp; + dp = null; + try { + return a.pc(null) + } finally { + dp = b + } + } + + function rp(a, b) { + var c = a.state; + if (t(b)) { + var d = a.Cb; + try { + a.ee = null; + var e = hp(d, a) + } catch (f) { + e = f, a.state = e, a.ee = e, e = a.rc = !1 + } + } else { + e = hp(a.Cb, a); + } + a.We || (a.state = e, null == a.gb || G.c(c, e) || np(a, c, e)); + return e + } + + function xp(a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, Rm), e = D.c(c, Tj), + f = D.c(c, on); + c = D.c(c, xm); + null != d && (a.Sb = d); + null != e && (a.Jf = e); + null != f && (a.Ze = f); + null != c && (a.We = c) + } + + g = vp.prototype; + g.R = function (a, b, c) { + return op(this, b, c, ["Reaction ", v.h(od(this)), ":"].join("")) + }; + g.U = function () { + return ja(this) + }; + g.K = function (a, b) { + return this === b + }; + g.we = function () { + var a = this.state, b = this.Nc; + this.Sb = this.state = this.Nc = null; + this.rc = !0; + b = E(yi(b)); + for (var c = null, d = 0, e = 0; ;) { + if (e < d) { + var f = c.$(null, e); + Nc(f, this); + e += 1 + } else if (b = E(b)) { + c = b, Ae(c) ? (b = Wc(c), e = Xc(c), c = b, d = H(b), b = e) : (b = y( + c), Nc(b, this), b = z(c), c = null, d = 0), e = 0; + } else { + break; + } + } + null != this.Ze && this.Ze(a); + a = this.bg; + if (null == a) { + return null; + } + b = a.length; + for (c = 0; ;) { + if (c < b) { + d = a[c], d.h ? d.h(this) : d.call(null, + this), c += 1; + } else { + return null + } + } + }; + g.Gb = function (a, b) { + var c = this.state; + this.state = b; + this.Jf(c, b); + np(this, c, b); + return b + }; + g.je = function (a, b) { + var c = this; + return c.Gb(null, function () { + var a = wp(c); + return b.h ? b.h(a) : b.call(null, a) + }()) + }; + g.ke = function (a, b, c) { + var d = this; + return d.Gb(null, function () { + var a = wp(d); + return b.c ? b.c(a, c) : b.call(null, a, c) + }()) + }; + g.le = function (a, b, c, d) { + var e = this; + return e.Gb(null, function () { + var a = wp(e); + return b.l ? b.l(a, c, d) : b.call(null, a, c, d) + }()) + }; + g.me = function (a, b, c, d, e) { + return this.Gb(null, Af(b, wp(this), c, d, e)) + }; + g.Kd = function (a, b, c) { + return np(this, b, c) + }; + g.Jd = function (a, b, c) { + return lp(this, b, c) + }; + g.Ld = function (a, b) { + var c = te(this.gb); + mp(this, b); + return !c && te(this.gb) && null == this.Sb ? this.we() : null + }; + g.pc = function () { + var a = this.ee; + if (null != a) { + throw a; + } + (a = null == dp) && qp(); + a && null == this.Sb ? this.rc && (a = this.state, this.state = this.Cb.B ? this.Cb.B() + : this.Cb.call(null), null == this.gb || G.c(a, this.state) || np(this, a, this.state)) : (jp( + this), this.rc && rp(this, !1)); + return this.state + }; + + function yp(a) { + for (var b = [], c = arguments.length, d = 0; ;) { + if (d < c) { + b.push( + arguments[d]), d += 1; + } else { + break; + } + } + c = arguments[0]; + b = 1 < b.length ? new Jb(b.slice(1), 0, null) : null; + var e = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(e, Rm); + d = D.c(e, Tj); + e = D.c(e, on); + c = new vp(c, null, !0, !1, null, null, null, null); + xp(c, new r(null, 3, [Rm, b, Tj, d, on, e], null)); + return c + } + + var zp = yp(null); + + function Ap(a, b) { + var c = Bp, d = zp, e = hp(a, d); + null != d.Nc && (zp = yp(null), xp(d, c), d.Cb = a, d.Sb = function () { + return function () { + return cp.h ? cp.h(b) : cp.call(null, b) + } + }(d, e), b.cljsRatom = d); + return e + };var Cp; + + function Dp(a, b) { + var c = b.argv; + if (null == c) { + c = T; + var d = a.constructor; + a:for (var e = Ea(b), f = e.length, h = Ef, k = 0; ;) { + if (k < f) { + var l = e[k]; + h = K.l(h, hf.h(l), b[l]); + k += 1 + } else { + break a; + } + } + c = new R(null, 2, 5, c, [d, h], null) + } + return c + } + + function Ep(a) { + var b; + if (b = me(a)) { + a = null == a ? null : a.prototype, b = null != (null == a ? null + : a.reagentRender); + } + return b + } + + if ("undefined" === typeof Fp) { + var Fp = null; + } + + function Gp(a) { + for (; ;) { + var b = a.reagentRender, c = !0 === a.cljsLegacyRender ? b.call(a, a) : function () { + var c = Dp(a, a.props); + switch (H(c)) { + case 1: + return b.call(a); + case 2: + return b.call(a, Vd(c, 1)); + case 3: + return b.call(a, Vd(c, 1), Vd(c, 2)); + case 4: + return b.call(a, Vd(c, 1), Vd(c, 2), Vd(c, 3)); + case 5: + return b.call(a, Vd(c, 1), Vd(c, 2), Vd(c, 3), Vd(c, 4)); + default: + return b.apply(a, Lb(c).slice(1)) + } + }(); + if (ze(c)) { + return Fp.h ? Fp.h(c) : Fp.call(null, c); + } + if (Fe(c)) { + c = Ep(c) ? function (a, b, c, h) { + return function () { + function a(a) { + var c = null; + if (0 < arguments.length) { + c = + 0; + for (var d = Array(arguments.length - 0); c < d.length;) { + d[c] = arguments[c + 0], ++c; + } + c = new Jb(d, 0, null) + } + return b.call(this, c) + } + + function b(a) { + a = Kb(Xg, h, a); + return Fp.h ? Fp.h(a) : Fp.call(null, a) + } + + a.L = 0; + a.N = function (a) { + a = E(a); + return b(a) + }; + a.A = b; + return a + }() + }(a, b, null, c) : c, a.reagentRender = c; + } else { + return c + } + } + } + + var Bp = new r(null, 1, [xm, !0], null), Hp = new r(null, 1, [zm, function () { + var a = this.cljsRatom; + this.cljsIsDirty = !1; + return null == a ? Ap(function (a, c) { + return function () { + a:{ + var a = Cp; + Cp = c; + try { + var b = Gp(c); + break a + } finally { + Cp = a + } + b = void 0 + } + return b + } + }(a, this), this) : rp(a, !1) + }], null); + + function Ip(a, b) { + var c = a instanceof L ? a.ea : null; + switch (c) { + case "getDefaultProps": + throw Error("getDefaultProps not supported"); + case "getInitialState": + return function () { + return function () { + var a = this.cljsState; + a = null != a ? a : this.cljsState = tp.h(null); + return fg(a, b.call(this, this)) + } + }(a, c); + case "componentWillReceiveProps": + return function () { + return function (a) { + return b.call(this, this, Dp(this, a)) + } + }(a, c); + case "shouldComponentUpdate": + return function () { + return function (a) { + var c = So; + if (c) { + return c; + } + c = this.props.argv; + var d = a.argv, h = null == c || null == d; + return null == b ? h || !G.c(c, d) : h ? b.call(this, this, Dp(this, this.props), + Dp(this, a)) : b.call(this, this, c, d) + } + }(a, c); + case "componentWillUpdate": + return function () { + return function (a) { + return b.call(this, this, Dp(this, a)) + } + }(a, c); + case "componentDidUpdate": + return function () { + return function (a) { + return b.call(this, this, Dp(this, a)) + } + }(a, c); + case "componentWillMount": + return function () { + return function () { + this.cljsMountOrder = To += 1; + return null == b ? null : b.call(this, this) + } + }(a, c); + case "componentDidMount": + return function () { + return function () { + return b.call(this, + this) + } + }(a, c); + case "componentWillUnmount": + return function () { + return function () { + var a = this.cljsRatom; + null != a && up(a); + this.cljsIsDirty = !1; + return null == b ? null : b.call(this, this) + } + }(a, c); + default: + return null + } + } + + function Jp(a, b) { + var c = Ip(a, b); + return t(c) ? c : b + } + + var Kp = new r(null, 3, [dm, null, eo, null, Kl, null], null), Lp = function (a) { + return function (b) { + return function (c) { + var d = D.c(B(b), c); + if (null != d) { + return d; + } + d = a.h ? a.h(c) : a.call(null, c); + gg.M(b, K, c, d); + return d + } + }(dg.h(Ef)) + }(Qo); + + function Mp(a) { + return Ue(function (a, c, d) { + return K.l(a, hf.h(Lp.h ? Lp.h(c) : Lp.call(null, c)), d) + }, Ef, a) + } + + function Np(a) { + var b = function () { + var b = pm.h(a); + return t(b) ? b : wn.h(a) + }(), c = null == b, d = t(b) ? b : zm.h(a), e = "" + v.h(function () { + var b = Bk.h(a); + return t(b) ? b : Ro(d) + }()); + a:switch (e) { + case "": + var f = "" + v.h(Zi()); + break a; + default: + f = e + } + b = Ue(function () { + return function (a, b, c) { + return K.l(a, b, Jp(b, c)) + } + }(b, c, d, e, f), Ef, a); + return K.A(b, Bk, f, be([Pn, !1, bk, c, pm, d, zm, zm.h(Hp)])) + } + + function Op(a) { + return Ue(function (a, c, d) { + a[jf(c)] = d; + return a + }, {}, a) + } + + function Pp(a) { + a = Op(Np(hi.A(be([Kp, Mp(a)])))); + return Ko.h ? Ko.h(a) : Ko.call(null, a) + };var Qp = /([^\s\.#]+)(?:#([^\s\.#]+))?(?:\.([^\s#]+))?/; + + function Rp(a) { + return a instanceof L || a instanceof rd + } + + var Sp = {"class": "className", "for": "htmlFor", charset: "charSet"}; + + function Tp(a, b, c) { + if (Rp(b)) { + var d = jf(b); + d = Sp.hasOwnProperty(d) ? Sp[d] : null; + b = null == d ? Sp[jf(b)] = Qo(b) : d + } + a[b] = Up.h ? Up.h(c) : Up.call(null, c); + return a + } + + function Up(a) { + return "object" !== n(a) ? a : Rp(a) ? jf(a) : xe(a) ? Ue(Tp, {}, a) : ue(a) ? cj(a) : Fe(a) + ? function () { + function b(a) { + var b = null; + if (0 < arguments.length) { + b = 0; + for (var d = Array(arguments.length - 0); b < d.length;) { + d[b] = arguments[b + 0], ++b; + } + b = new Jb(d, 0, null) + } + return c.call(this, b) + } + + function c(b) { + return P(a, b) + } + + b.L = 0; + b.N = function (a) { + a = E(a); + return c(a) + }; + b.A = c; + return b + }() : cj(a) + } + + function Vp(a, b, c) { + a = null == a ? {} : a; + a[b] = c; + return a + } + + if ("undefined" === typeof Wp) { + var Wp = null; + } + var Xp = new ti(null, new r(null, 6, + ["url", null, "tel", null, "text", null, "textarea", null, "password", null, "search", null], + null), null), Yp = function Yp(a) { + if (t(a.cljsInputLive)) { + a.cljsInputDirty = !1; + var c = a.cljsRenderedValue, d = a.cljsDOMValue, e = Wp.h ? Wp.h(a) : Wp.call(null, a); + if (!G.c(c, d)) { + if (e === document.activeElement && He(Xp, e.type) && "string" === typeof c && "string" + === typeof d) { + var f = e.value; + if (!G.c(f, d)) { + return bp.enqueue("afterRender", function () { + return function () { + return Yp.h ? Yp.h(a) : Yp.call(null, a) + } + }(f, c, d, e)); + } + d = + H(f) - e.selectionStart; + d = H(c) - d; + a.cljsDOMValue = c; + e.value = c; + e.selectionStart = d; + return e.selectionEnd = d + } + a.cljsDOMValue = c; + return e.value = c + } + } + return null + }; + + function Zp(a, b, c) { + a.cljsDOMValue = c.target.value; + t(a.cljsInputDirty) || (a.cljsInputDirty = !0, bp.enqueue("afterRender", function () { + return Yp(a) + })); + return b.h ? b.h(c) : b.call(null, c) + } + + function $p(a) { + var b = Cp; + if (t(function () { + var b = null != a; + return b ? (b = a.hasOwnProperty("onChange"), t(b) ? a.hasOwnProperty("value") : b) : b + }())) { + var c = a.value, d = null == c ? "" : c, e = a.onChange; + t(b.cljsInputLive) || (b.cljsInputLive = !0, b.cljsDOMValue = d); + b.cljsRenderedValue = d; + delete a.value; + a.defaultValue = d; + a.onChange = function (a, c, d, e) { + return function (a) { + return Zp(b, e, a) + } + }(a, c, d, e) + } + } + + var aq = null, cq = new r(null, 4, [ln, "ReagentInput", nl, Yp, Wm, function (a) { + return a.cljsInputLive = null + }, Dm, function (a, b, c, d) { + $p(c); + return bq.M ? bq.M(a, b, c, d) : bq.call(null, a, b, c, d) + }], null); + + function dq(a) { + if (xe(a)) { + try { + var b = D.c(a, mk) + } catch (c) { + b = null + } + } else { + b = null; + } + return b + } + + var eq = {}; + + function fq(a, b, c) { + var d = a.name, e = J(b, c, null), f = null == e || xe(e); + e = Up(f ? e : null); + var h = a.id; + e = null != h && null == (null == e ? null : e.id) ? Vp(e, "id", h) : e; + a = a.className; + null == a ? a = e : (h = null == e ? null : e.className, a = Vp(e, "className", + null == h ? a : [v.h(a), " ", v.h(h)].join(""))); + c += f ? 1 : 0; + a:switch (d) { + case "input": + case "textarea": + f = !0; + break a; + default: + f = !1 + } + if (f) { + return f = T, null == aq && (aq = Pp(cq)), b = pe( + new R(null, 5, 5, f, [aq, b, d, a, c], null), qe(b)), gq.h ? gq.h(b) : gq.call(null, b); + } + f = dq(qe(b)); + f = null == f ? a : Vp(a, "key", f); + return bq.M ? bq.M(b, + d, f, c) : bq.call(null, b, d, f, c) + } + + function hq(a) { + for (; ;) { + var b = J(a, 0, null); + if (Rp(b) || "string" === typeof b) { + b = jf(b); + var c = b.indexOf("\x3e"); + switch (c) { + case -1: + c = b; + b = eq; + var d = c; + b = b.hasOwnProperty(d) ? b[d] : null; + if (null == b) { + b = c; + var e = z(Ji(Qp, jf(c))); + c = J(e, 0, null); + d = J(e, 1, null); + e = J(e, 2, null); + e = null == e ? null : Do(e, /\./, " "); + b = eq[b] = {name: c, id: d, className: e} + } + return fq(b, a, 1); + case 0: + return b = J(a, 1, null), fq({name: b}, a, 2); + default: + a = new R(null, 2, 5, T, [b.substring(0, c), K.l(a, 0, b.substring(c + 1))], null) + } + } else { + return c = b.cljsReactClass, null == c ? Ep(b) ? + b = b.cljsReactClass = b : (c = qe(b), c = K.l(c, Dm, b), c = Pp( + c), b = b.cljsReactClass = c) : b = c, c = {argv: a}, d = dq(qe(a)), a = null == d ? dq( + J(a, 1, null)) : d, null != a && (c.key = a), Go.createElement(b, c) + } + } + } + + function gq(a) { + return "object" !== n(a) ? a : ze(a) ? hq(a) : De(a) ? iq.h ? iq.h(a) : iq.call(null, a) : Rp(a) + ? jf(a) : (null != a ? a.m & 2147483648 || q === a.ma || (a.m ? 0 : Ab(Kc, a)) : Ab(Kc, a)) + ? Vi(be([a])) : a + } + + Fp = gq; + + function iq(a) { + a = Lb(a); + for (var b = a.length, c = 0; ;) { + if (c < b) { + a[c] = gq(a[c]), c += 1; + } else { + break; + } + } + return a + } + + function bq(a, b, c, d) { + var e = H(a) - d; + switch (e) { + case 0: + return Go.createElement(b, c); + case 1: + return Go.createElement(b, c, gq(J(a, d, null))); + default: + return Go.createElement.apply(null, Ue(function () { + return function (a, b, c) { + b >= d && a.push(gq(c)); + return a + } + }(e), [b, c], a)) + } + }; + if ("undefined" === typeof jq) { + var jq = null; + } + + function kq() { + if (null != jq) { + return jq; + } + if ("undefined" !== typeof ReactDOM) { + return jq = ReactDOM; + } + if ("undefined" !== typeof require) { + var a = jq = require("react-dom"); + if (t(a)) { + return a; + } + throw Error("require('react-dom') failed"); + } + throw Error("js/ReactDOM is missing"); + } + + if ("undefined" === typeof lq) { + var lq = dg.h(Ef); + } + + function mq(a, b, c) { + var d = So; + So = !0; + try { + return kq().render(a.B ? a.B() : a.call(null), b, function () { + return function () { + var d = So; + So = !1; + try { + return gg.M(lq, K, b, new R(null, 2, 5, T, [a, b], null)), Zo(bp, "afterRender"), null + != c ? c.B ? c.B() : c.call(null) : null + } finally { + So = d + } + } + }(d)) + } finally { + So = d + } + } + + function nq(a, b) { + return mq(a, b, null) + } + + function oq(a, b, c) { + qp(); + return mq(function () { + return gq(me(a) ? a.B ? a.B() : a.call(null) : a) + }, b, c) + } + + Wp = function (a) { + return kq().findDOMNode(a) + }; + + function pq(a) { + switch (arguments.length) { + case 2: + return oq(arguments[0], arguments[1], null); + case 3: + return oq(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + } + + function qq(a, b) { + return oq(a, b, null) + } + + da("reagent.core.force_update_all", function () { + qp(); + qp(); + for (var a = E(mh(B(lq))), b = null, c = 0, d = 0; ;) { + if (d < c) { + var e = b.$(null, d); + P(nq, e); + d += 1 + } else if (a = E(a)) { + b = a, Ae(b) ? (a = Wc(b), d = Xc(b), b = a, c = H(a), a = d) : (a = y( + b), P(nq, a), a = z(b), b = null, c = 0), d = 0; + } else { + break; + } + } + return Zo(bp, "afterRender") + }); + var rq = yi( + df(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 25, 28, + 29, 30, 31)), sq = ke([yi( + df(24, 26, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 145, + 146, 147, 148, 149, 150, 151, 153, 154)), new r(null, 2, [qn, xl, yk, uk], null), yi(df(156)), + new r(null, 1, [yk, uk], null), yi(df(27)), new r(null, 1, [yk, Gj], null), + yi(df(152, 158, 159)), new r(null, 1, [yk, ll], null), yi(df(144)), + new r(null, 1, [yk, ql], null), yi(df(157)), new r(null, 1, [yk, Rk], null), yi(df(155)), + new r(null, 1, [yk, Hl], null)]), tq = Pe([Ej, Gj, + uk, Fk, Jk, Qk, Rk, ll, ql, Hl, jm, om, Cm, $n], [ke([rq, new r(null, 1, [qn, Ul], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), + new r(null, 2, [qn, Fm, yk, Qk], null), yi(df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59)), + new r(null, 1, [qn, Xl], null), yi(df(58, 60, 61, 62, 63)), new r(null, 1, [yk, $n], null), yi( + df(64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126)), + new r(null, 1, [yk, Fk], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), Pe( + [Sk, yi(df(88, 94, 95)), rq, yi(df(91)), yi(df(80)), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), yi(df(127)), yi( + df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, + 71, 72, 73, 74, 75, 76, 77, 78, 79, 81, 82, 83, 84, 85, 86, 87, 89, 90, 92, 96, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126)), yi(df(93))], + [po, new r(null, 1, [yk, ll], null), new r(null, 1, [qn, xl], + null), new r(null, 1, [yk, Hl], null), new r(null, 1, [yk, ql], null), + new r(null, 2, [qn, Fm, yk, jm], null), new r(null, 1, [qn, Ul], null), + new r(null, 2, [qn, Pj, yk, uk], null), new r(null, 1, [yk, Rk], null)]), ke( + [rq, new r(null, 1, [qn, xl], null), yi( + df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255)), + new r(null, 1, [qn, Pl], null)]), + ke([Sk, zj, rq, new r(null, 1, [qn, Fn], null), yi(df(32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126)), new r(null, 1, [qn, Fn], null), yi(df(127)), + new r(null, 1, [qn, Ul], null), El, In]), ke( + [rq, new r(null, 1, [qn, xl], null), yi(df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59)), + new r(null, 1, [qn, Xl], null), yi(df(58, 60, 61, 62, + 63)), new r(null, 1, [yk, Cm], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), + new r(null, 2, [qn, Fm, yk, om], null), yi( + df(64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126)), new r(null, 2, [qn, Rl, yk, uk], null), yi(df(127)), + new r(null, 1, [qn, Ul], null)]), ke([rq, new r(null, 1, [qn, Ul], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, + 46, 47)), new r(null, 1, [qn, Fm], null), + yi(df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)), + new r(null, 1, [yk, $n], null), yi( + df(64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126)), new r(null, 1, [yk, Fk], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), + ke([Sk, um, re.c(rq, 7), new r(null, 1, [qn, Ul], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, + 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127)), + new r(null, 1, [qn, ak], null), yi(df(7)), new r(null, 1, [yk, uk], null), El, Wj]), ke( + [rq, new r(null, 1, [qn, Ul], null), yi( + df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, + 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127)), + new r(null, 1, [qn, Ul], null)]), ke([Sk, po, rq, new r(null, 1, [qn, Ul], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), + new r(null, 2, [qn, Fm, yk, Qk], null), yi(df(58)), new r(null, 1, [yk, $n], null), + yi(df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59)), new r(null, 2, [qn, Xl, yk, Ej], null), + yi(df(60, 61, 62, 63)), new r(null, + 2, [qn, Fm, yk, Ej], null), yi( + df(64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126)), new r(null, 1, [yk, Fk], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), + ke([Sk, po, rq, new r(null, 1, [qn, xl], null), yi( + df(64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, + 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, + 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126)), + new r(null, 2, [qn, Rl, yk, uk], null), yi(df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 59)), + new r(null, 2, [qn, Xl, yk, Jk], null), yi(df(60, 61, 62, 63)), + new r(null, 2, [qn, Fm, yk, Jk], null), yi(df(58)), new r(null, 1, [yk, Cm], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), + new r(null, 2, [qn, Fm, yk, om], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), ke( + [rq, new r(null, 1, [qn, xl], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), new r(null, + 1, [qn, Fm], null), yi( + df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, + 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126)), + new r(null, 2, [qn, Pj, yk, uk], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), ke( + [rq, new r(null, 1, [qn, xl], null), + yi(df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47)), + new r(null, 1, [qn, Fm], null), yi(df(64, 65, 66, 67, 68, 69, + 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, + 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126)), + new r(null, 2, [qn, Rl, yk, uk], null), + yi(df(48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)), + new r(null, 1, [yk, Cm], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), ke( + [rq, new r(null, 1, [qn, xl], null), yi( + df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + 54, 55, 56, 57, 58, 59, 60, 61, 62, 63)), new r(null, + 1, [qn, Ul], null), yi( + df(64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, + 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126)), new r(null, 1, [yk, uk], null), yi(df(127)), new r(null, 1, [qn, Ul], null)]), + ke([rq, new r(null, 1, [qn, Ul], null), yi( + df(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, + 78, 79, 80, 81, 82, + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127)), new r(null, 1, [qn, Ul], null)])]); + + function uq(a, b) { + return Wf(function (a) { + var c = J(a, 0, null); + a = J(a, 1, null); + return t(c.h ? c.h(b) : c.call(null, b)) ? a : null + }, a) + } + + function vq(a, b) { + var c = D.c(tq, a), d = uq(sq, b); + var e = t(d) ? d : uq(c, 160 <= b ? 65 : b); + d = qn.h(e); + e = yk.h(e); + if (t(e)) { + var f = D.c(tq, e); + c = El.h(c); + f = Sk.h(f); + d = Wg(vg(ub, new R(null, 3, 5, T, [c, d, f], null))); + return new R(null, 2, 5, T, [e, d], null) + } + return new R(null, 2, 5, T, [a, t(d) ? new R(null, 1, 5, T, [d], null) : he], null) + } + + var xq = P(hi, function wq(a) { + return new kf(null, function () { + for (; ;) { + var c = E(a); + if (c) { + if (Ae(c)) { + var d = Wc(c), e = H(d), f = of(e); + a:for (var h = 0; ;) { + if (h < e) { + var k = A.c(d, h); + k = ke([k, xg(ag.c(vq, k), Fi(0, 160, 1))]); + f.add(k); + h += 1 + } else { + d = !0; + break a + } + } + return d ? qf(f.Da(), wq(Xc(c))) : qf(f.Da(), null) + } + f = y(c); + return ae(ke([f, xg(ag.c(vq, f), Fi(0, 160, 1))]), wq(vd(c))) + } + return null + } + }, null, null) + }(lh(tq))); + + function yq(a, b) { + var c = Array.prototype.slice.call(arguments), d = c.shift(); + if ("undefined" == typeof d) { + throw Error("[goog.string.format] Template required"); + } + return d.replace(/%([0\-\ \+]*)(\d+)?(\.(\d+))?([%sfdiu])/g, function (a, b, d, k, l, p, m, u) { + if ("%" == p) { + return "%"; + } + var e = c.shift(); + if ("undefined" == typeof e) { + throw Error("[goog.string.format] Not enough arguments"); + } + arguments[0] = e; + return yq.fc[p].apply(null, arguments) + }) + } + + yq.fc = {}; + yq.fc.s = function (a, b, c) { + return isNaN(c) || "" == c || a.length >= Number(c) ? a : a = -1 < b.indexOf("-", 0) ? a + sa( + " ", Number(c) - a.length) : sa(" ", Number(c) - a.length) + a + }; + yq.fc.f = function (a, b, c, d, e) { + d = a.toString(); + isNaN(e) || "" == e || (d = parseFloat(a).toFixed(e)); + var f = 0 > Number(a) ? "-" : 0 <= b.indexOf("+") ? "+" : 0 <= b.indexOf(" ") ? " " : ""; + 0 <= Number(a) && (d = f + d); + if (isNaN(c) || d.length >= Number(c)) { + return d; + } + d = isNaN(e) ? Math.abs(Number(a)).toString() : Math.abs(Number(a)).toFixed(e); + a = Number(c) - d.length - f.length; + 0 <= b.indexOf("-", 0) ? d = f + d + sa(" ", a) : (b = 0 <= b.indexOf("0", 0) ? "0" : " ", d = f + + sa(b, a) + d); + return d + }; + yq.fc.d = function (a, b, c, d, e, f, h, k) { + return yq.fc.f(parseInt(a, 10), b, c, d, 0, f, h, k) + }; + yq.fc.i = yq.fc.d; + yq.fc.u = yq.fc.d; + + function zq(a) { + var b = be([Vk, null]); + return wg.c(t(a) ? a : Ef, function () { + return function e(a) { + return new kf(null, function () { + for (var b = a; ;) { + if (b = E(b)) { + if (Ae(b)) { + var d = Wc(b), k = H(d), l = of(k); + a:for (var p = 0; ;) { + if (p < k) { + var m = A.c(d, p), u = J(m, 0, null); + m = J(m, 1, null); + t(m) && l.add(new R(null, 2, 5, T, [u, m], null)); + p += 1 + } else { + d = !0; + break a + } + } + return d ? qf(l.Da(), e(Xc(b))) : qf(l.Da(), null) + } + d = y(b); + l = J(d, 0, null); + d = J(d, 1, null); + if (t(d)) { + return ae(new R(null, 2, 5, T, [l, d], null), e(vd(b))); + } + b = vd(b) + } else { + return null + } + } + }, null, null) + }(yg(2, 2, b)) + }()) + } + + function Aq(a) { + for (var b = [], c = arguments.length, d = 0; ;) { + if (d < c) { + b.push( + arguments[d]), d += 1; + } else { + break; + } + } + return Bq(arguments[0], 1 < b.length ? new Jb(b.slice(1), 0, null) : null) + } + + function Bq(a, b) { + return Kb(yq, a, b) + } + + dg.h(19); + + function Cq(a) { + return Mb(function (a, c) { + var b = J(c, 0, null), e = J(c, 1, null); + return Do(a, e, "" + v.h(b)) + }, a, Oe(function (a) { + return -H(ee(a)) + })) + } + + function Dq(a) { + a = "" + v.h(a); + var b = /function ([^\(]*)\(/; + if ("string" === typeof a) { + a = b.exec(a), a = null == a ? null : 1 === H(a) ? y(a) : Wg( + a); + } else { + throw new TypeError("re-find must match against a string."); + } + a = Bf(ee(a)); + return Cq(t(a) ? a : "function") + } + + function Eq(a, b) { + a.schema$utils$schema = b + } + + dg.h(!1); + var Fq, Gq = function Gq(a) { + if (null != a && null != a.xb) { + return a.xb(a); + } + var c = Gq[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Gq._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Schema.explain", a); + }; + Gq["function"] = function (a) { + var b = a.schema$utils$schema; + return t(b) ? Gq(b) : t(G.c ? G.c(null, a) : G.call(null, null, a)) ? Wl : t( + G.c ? G.c(Boolean, a) : G.call(null, Boolean, a)) ? xk : t( + G.c ? G.c(Number, a) : G.call(null, Number, a)) ? sl : t( + G.c ? G.c(null, a) : G.call(null, null, a)) ? Cl : t( + G.c ? G.c(Date, a) : G.call(null, Date, a)) ? Ll : t(G.c ? G.c(yj, a) : G.call(null, yj, a)) + ? ym : a + }; + + function Hq(a, b, c, d) { + this.nc = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = Hq.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "_": + return this.nc; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.AnythingSchema{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Ck, this.nc], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [Ck], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1432036169 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.nc, b.nc) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [Ck, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new Hq(this.nc, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Ck, b) : N.call(null, Ck, b)) ? new Hq(c, this.v, this.j, null) : new Hq( + this.nc, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Ck, this.nc], null)], null), this.j)) + }; + g.T = function (a, b) { + return new Hq(this.nc, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + g.xb = function () { + return Al + }; + var Iq = new Hq(null, null, null, null); + + function Jq(a, b, c, d, e) { + this.wb = a; + this.Xb = b; + this.v = c; + this.j = d; + this.w = e; + this.m = 2229667594; + this.J = 139264 + } + + g = Jq.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "p?": + return this.wb; + case "pred-name": + return this.Xb; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.Predicate{", ", ", "}", c, O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [Un, this.wb], null), new R(null, 2, 5, T, [Tm, this.Xb], null)], null), + this.j)) + }; + g.ba = function () { + return new fh(0, this, 2, new R(null, 2, 5, T, [Un, Tm], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 2 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 2041221968 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.wb, b.wb) && G.c(this.Xb, + b.Xb) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 2, [Tm, null, Un, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new Jq(this.wb, this.Xb, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Un, b) : N.call(null, Un, b)) ? new Jq(c, this.Xb, this.v, this.j, null) : t( + N.c ? N.c(Tm, b) : N.call(null, Tm, b)) ? new Jq(this.wb, c, this.v, this.j, null) : new Jq( + this.wb, this.Xb, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [Un, this.wb], null), new R(null, 2, 5, T, [Tm, this.Xb], null)], null), + this.j)) + }; + g.T = function (a, b) { + return new Jq(this.wb, this.Xb, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + g.xb = function () { + return G.c(this.wb, Ge) ? bo : G.c(this.wb, gf) ? kn : G.c(this.wb, qd) ? hk : G.c(this.wb, yb) + ? Wl : Tb(Tb(wd, this.Xb), yl) + }; + + function Kq(a) { + var b = td.h(Dq(a)); + if (!Fe(a)) { + throw Error(Bq("Not a function: %s", be([a]))); + } + return new Jq(a, b, null, null, null) + } + + RegExp.prototype.xb = function () { + return td.h(['#"', v.h(("" + v.h(this)).slice(1, -1)), '"'].join("")) + }; + var Lq = Kq(yb), Mq = Boolean, Nq = Number, Oq = Kq(Ge), Pq = Kq(gf); + Kq(qd); + "undefined" === typeof Fq && (Fq = function (a) { + this.Bf = a; + this.m = 393216; + this.J = 0 + }, Fq.prototype.T = function (a, b) { + return new Fq(b) + }, Fq.prototype.P = function () { + return this.Bf + }, Fq.prototype.xb = function () { + return Cl + }, Fq.Wc = function () { + return new R(null, 1, 5, T, [bn], null) + }, Fq.qc = !0, Fq.Tb = "schema.core/t_schema$core38849", Fq.Ec = function (a, b) { + return Jc(b, "schema.core/t_schema$core38849") + }); + + function Qq(a, b, c, d) { + this.ia = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = Qq.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "schema": + return this.ia; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.Maybe{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Mj, this.ia], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [Mj], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -805411239 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.ia, b.ia) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [Mj, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new Qq(this.ia, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Mj, b) : N.call(null, Mj, b)) ? new Qq(c, this.v, this.j, null) : new Qq( + this.ia, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Mj, this.ia], null)], null), this.j)) + }; + g.T = function (a, b) { + return new Qq(this.ia, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + g.xb = function () { + var a = Gq(this.ia); + a = Tb(wd, a); + return Tb(a, am) + }; + + function Rq(a, b, c, d, e) { + this.Yb = a; + this.Hb = b; + this.v = c; + this.j = d; + this.w = e; + this.m = 2229667594; + this.J = 139264 + } + + g = Rq.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "preds-and-schemas": + return this.Yb; + case "error-symbol": + return this.Hb; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.ConditionalSchema{", ", ", "}", c, O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [Il, this.Yb], null), new R(null, 2, 5, T, [Om, this.Hb], null)], null), + this.j)) + }; + g.ba = function () { + return new fh(0, this, 2, new R(null, 2, 5, T, [Il, Om], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 2 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1418435858 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.Yb, b.Yb) && G.c(this.Hb, + b.Hb) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 2, [Il, null, Om, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new Rq(this.Yb, this.Hb, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Il, b) : N.call(null, Il, b)) ? new Rq(c, this.Hb, this.v, this.j, null) : t( + N.c ? N.c(Om, b) : N.call(null, Om, b)) ? new Rq(this.Yb, c, this.v, this.j, null) : new Rq( + this.Yb, this.Hb, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [Il, this.Yb], null), new R(null, 2, 5, T, [Om, this.Hb], null)], null), + this.j)) + }; + g.T = function (a, b) { + return new Rq(this.Yb, this.Hb, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + g.xb = function () { + return ae(pk, O.c(sg(function () { + return function (a) { + var b = J(a, 0, null); + a = J(a, 1, null); + return new R(null, 2, 5, T, [td.h(Dq(b)), Gq(a)], null) + } + }(this), be([this.Yb])), t(this.Hb) ? new R(null, 1, 5, T, [this.Hb], null) : null)) + }; + + function Sq(a) { + return a instanceof L || !1 + } + + function Tq(a, b, c, d) { + this.k = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = Tq.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "k": + return this.k; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.OptionalKey{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Yl, this.k], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [Yl], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1508333161 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.k, b.k) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [Yl, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new Tq(this.k, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Yl, b) : N.call(null, Yl, b)) ? new Tq(c, this.v, this.j, null) : new Tq( + this.k, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Yl, this.k], null)], null), this.j)) + }; + g.T = function (a, b) { + return new Tq(this.k, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function Uq(a) { + return new Tq(a, null, null, null) + } + + function Vq(a) { + var b = Sq(a); + if (t(t(b) ? b : a instanceof Tq)) { + if (a instanceof L) { + return a; + } + b = t(Sq(a)) ? Zn : t(a instanceof Tq) ? Nj : null; + if (!(a instanceof L)) { + if (t(a instanceof Tq)) { + a = a.k; + } else { + throw Error( + Bq("Bad explicit key: %s", be([a]))); + } + } + a = Tb(wd, a); + return Tb(a, b) + } + return Gq(a) + } + + function Wq(a) { + return wg.c(Ef, function () { + return function d(a) { + return new kf(null, function () { + for (; ;) { + var c = E(a); + if (c) { + if (Ae(c)) { + var f = Wc(c), h = H(f), k = of(h); + a:for (var l = 0; ;) { + if (l < h) { + var p = A.c(f, l), m = J(p, 0, null); + p = J(p, 1, null); + m = new R(null, 2, 5, T, [Vq(m), Gq(p)], null); + k.add(m); + l += 1 + } else { + f = !0; + break a + } + } + return f ? qf(k.Da(), d(Xc(c))) : qf(k.Da(), null) + } + f = y(c); + k = J(f, 0, null); + f = J(f, 1, null); + return ae(new R(null, 2, 5, T, [Vq(k), Gq(f)], null), d(vd(c))) + } + return null + } + }, null, null) + }(a) + }()) + } + + r.prototype.xb = function () { + return Wq(this) + }; + Jh.prototype.xb = function () { + return Wq(this) + }; + ti.prototype.xb = function () { + return yi(new R(null, 1, 5, T, [Gq(y(this))], null)) + }; + + function Xq(a, b, c, d, e, f) { + this.ia = a; + this.Fb = b; + this.name = c; + this.v = d; + this.j = e; + this.w = f; + this.m = 2229667594; + this.J = 139264 + } + + g = Xq.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "schema": + return this.ia; + case "optional?": + return this.Fb; + case "name": + return this.name; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.One{", ", ", "}", c, O.c(new R(null, 3, 5, T, + [new R(null, 2, 5, T, [Mj, this.ia], null), new R(null, 2, 5, T, [nm, this.Fb], null), + new R(null, 2, 5, T, [Tk, this.name], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 3, new R(null, 3, 5, T, [Mj, nm, Tk], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 3 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -197981045 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.ia, b.ia) && G.c(this.Fb, + b.Fb) && G.c(this.name, b.name) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 3, [Mj, null, Tk, null, nm, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new Xq(this.ia, this.Fb, this.name, this.v, + Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Mj, b) : N.call(null, Mj, b)) ? new Xq(c, this.Fb, this.name, this.v, this.j, + null) : t(N.c ? N.c(nm, b) : N.call(null, nm, b)) ? new Xq(this.ia, c, this.name, this.v, + this.j, null) : t(N.c ? N.c(Tk, b) : N.call(null, Tk, b)) ? new Xq(this.ia, this.Fb, c, + this.v, this.j, null) : new Xq(this.ia, this.Fb, this.name, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 3, 5, T, + [new R(null, 2, 5, T, [Mj, this.ia], null), new R(null, 2, 5, T, [nm, this.Fb], null), + new R(null, 2, 5, T, [Tk, this.name], null)], null), this.j)) + }; + g.T = function (a, b) { + return new Xq(this.ia, this.Fb, this.name, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function Yq(a, b) { + return new Xq(a, !1, b, null, null, null) + } + + function Zq(a) { + var b = Gi(function (a) { + return a instanceof Xq && wb(nm.h(a)) + }, a), c = J(b, 0, null), d = J(b, 1, null), e = Gi(function () { + return function (a) { + var b = a instanceof Xq; + return b ? nm.h(a) : b + } + }(b, c, d), d), f = J(e, 0, null), h = J(e, 1, null); + if (!(1 >= H(h) && Vf(function () { + return function (a) { + return !(a instanceof Xq) + } + }(b, c, d, e, f, h), h))) { + throw Error(Bq("%s is not a valid sequence schema; %s%s%s", be( + [a, "a valid sequence schema consists of zero or more `one` elements, ", + "followed by zero or more `optional` elements, followed by an optional ", + "schema that will match the remaining elements."]))); + } + return new R(null, 2, 5, T, [O.c(c, f), y(h)], null) + } + + R.prototype.xb = function () { + var a = this, b = Zq(a), c = J(b, 0, null), d = J(b, 1, null); + return Wg(O.c(function () { + return function (a, b, c, d) { + return function m(e) { + return new kf(null, function () { + return function () { + for (; ;) { + var a = E(e); + if (a) { + if (Ae(a)) { + var b = Wc(a), c = H(b), d = of(c); + return function () { + for (var a = 0; ;) { + if (a < c) { + var e = A.c(b, a), f = d; + var h = t(e.Fb) ? ao : zk; + var k = Gq(Mj.h(e)); + e = Tk.h(e); + e = Tb(wd, e); + k = Tb(e, k); + h = Tb(k, h); + f.add(h); + a += 1 + } else { + return !0 + } + } + }() ? qf(d.Da(), m(Xc(a))) : qf(d.Da(), null) + } + var f = y(a); + return ae(function () { + var a = t(f.Fb) ? + ao : zk; + var b = Gq(Mj.h(f)); + var c = Tk.h(f); + c = Tb(wd, c); + b = Tb(c, b); + return Tb(b, a) + }(), m(vd(a))) + } + return null + } + } + }(a, b, c, d), null, null) + } + }(b, c, d, a)(c) + }(), t(d) ? new R(null, 1, 5, T, [Gq(d)], null) : null)) + }; + + function $q(a, b, c, d, e) { + this.Vb = a; + this.ia = b; + this.v = c; + this.j = d; + this.w = e; + this.m = 2229667594; + this.J = 139264 + } + + g = $q.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "klass": + return this.Vb; + case "schema": + return this.ia; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.Record{", ", ", "}", c, O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [ck, this.Vb], null), new R(null, 2, 5, T, [Mj, this.ia], null)], null), + this.j)) + }; + g.ba = function () { + return new fh(0, this, 2, new R(null, 2, 5, T, [ck, Mj], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 2 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1486476872 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.Vb, b.Vb) && G.c(this.ia, + b.ia) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 2, [Mj, null, ck, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new $q(this.Vb, this.ia, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(ck, b) : N.call(null, ck, b)) ? new $q(c, this.ia, this.v, this.j, null) : t( + N.c ? N.c(Mj, b) : N.call(null, Mj, b)) ? new $q(this.Vb, c, this.v, this.j, null) : new $q( + this.Vb, this.ia, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [ck, this.Vb], null), new R(null, 2, 5, T, [Mj, this.ia], null)], null), + this.j)) + }; + g.T = function (a, b) { + return new $q(this.Vb, this.ia, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + g.xb = function () { + var a = td.h(Vi(be([this.Vb]))); + var b = Gq(this.ia); + b = Tb(wd, b); + a = Tb(b, a); + return Tb(a, Xn) + }; + + function ar(a, b, c) { + if (!xe(b)) { + throw Error(Bq("Expected map, got %s", be([typeof b]))); + } + return pe(new $q(a, b, null, null, null), new r(null, 1, [Qm, c], null)) + } + + function br(a) { + a = Gi(function (a) { + return a instanceof Xq + }, a); + var b = J(a, 0, null), c = J(a, 1, null); + return O.c(ig.c(function () { + return function (a) { + return Gq(a.ia) + } + }(a, b, c), b), E(c) ? new R(null, 2, 5, T, [Dj, xg(Gq, c)], null) : null) + } + + function cr(a, b, c, d, e) { + this.Nb = a; + this.Db = b; + this.v = c; + this.j = d; + this.w = e; + this.m = 2229667594; + this.J = 139264 + } + + g = cr.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "output-schema": + return this.Nb; + case "input-schemas": + return this.Db; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#schema.core.FnSchema{", ", ", "}", c, O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [Wk, this.Nb], null), new R(null, 2, 5, T, [jl, this.Db], null)], null), + this.j)) + }; + g.ba = function () { + return new fh(0, this, 2, new R(null, 2, 5, T, [Wk, jl], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 2 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -2054647546 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.Nb, b.Nb) && G.c(this.Db, + b.Db) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 2, [Wk, null, jl, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new cr(this.Nb, this.Db, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Wk, b) : N.call(null, Wk, b)) ? new cr(c, this.Db, this.v, this.j, null) : t( + N.c ? N.c(jl, b) : N.call(null, jl, b)) ? new cr(this.Nb, c, this.v, this.j, null) : new cr( + this.Nb, this.Db, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [Wk, this.Nb], null), new R(null, 2, 5, T, [jl, this.Db], null)], null), + this.j)) + }; + g.T = function (a, b) { + return new cr(this.Nb, this.Db, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + g.xb = function () { + if (1 < H(this.Db)) { + var a = Gq(this.Nb); + var b = ig.c(br, this.Db); + a = ae(Sn, ae(a, b)) + } else { + a = Gq(this.Nb), b = br(y(this.Db)), a = ae(hn, ae(a, b)); + } + return a + }; + + function dr(a, b) { + return new cr(a, b, null, null, null) + } + + function er(a) { + return E(a) ? fe(a) instanceof Xq ? H(a) : Number.MAX_VALUE : 0 + } + + function fr(a, b) { + if (!E(b)) { + throw Error(Aq("Function must have at least one input schema")); + } + if (!Vf(ze, b)) { + throw Error(Aq("Each arity must be a vector.")); + } + if (!t(P(Ie, ig.c(er, b)))) { + throw Error(Aq("Arities must be distinct")); + } + return new cr(a, Qe(er, b), null, null, null) + };var gr, hr, ir = Kq(Fe), jr = new r(null, 3, [zn, Nq, Aj, Nq, On, Mq], null), kr; + kr = function (a) { + if (!E(a) || !(Xf(H(a)) || fe(a) instanceof rd)) { + throw Error( + Bq("Expected even, nonzero number of args (with optional trailing symbol); got %s", + be([H(a)]))); + } + return new Rq(Wg(function () { + return function d(a) { + return new kf(null, function () { + for (; ;) { + var c = E(a); + if (c) { + if (Ae(c)) { + var f = Wc(c), h = H(f), k = of(h); + a:for (var l = 0; ;) { + if (l < h) { + var p = A.c(f, l), m = J(p, 0, null), u = J(p, 1, null); + p = k; + if (!Fe(m)) { + throw Error( + Aq(["Conditional predicate ", v.h(m), " must be a function"].join(""))); + } + m = new R(null, 2, 5, T, [G.c(m, sk) ? Zf(!0) : + m, u], null); + p.add(m); + l += 1 + } else { + f = !0; + break a + } + } + return f ? qf(k.Da(), d(Xc(c))) : qf(k.Da(), null) + } + f = y(c); + k = J(f, 0, null); + h = J(f, 1, null); + f = ae; + if (!Fe(k)) { + throw Error( + Aq(["Conditional predicate ", v.h(k), " must be a function"].join(""))); + } + k = new R(null, 2, 5, T, [G.c(k, sk) ? Zf(!0) : k, h], null); + return f(k, d(vd(c))) + } + return null + } + }, null, null) + }(yg(2, 2, a)) + }()), Xf(H(a)) ? null : fe(a), null, null, null) + }(be([ze, new R(null, 3, 5, T, [Yq(Nq, "r"), Yq(Nq, "g"), Yq(Nq, "b")], null), Zf(!0), Nq])); + var lr = ke([Uq(Ok), kr, Uq(Tn), kr, Uq(Kj), Mq, Uq(Yn), Mq, Uq(Vl), Mq, Uq(dk), Mq, Uq(Nk), Mq]), + mr = new r(null, 4, [pl, new r(null, 2, [zn, Nq, Aj, Nq], null), Oj, lr, yn, Mq, Rj, Mq], null), + nr = new R(null, 2, 5, T, [Yq(Nq, "unicode codepoint"), Yq(lr, "text attributes")], null), + or = new R(null, 1, 5, T, [nr], null), pr = E(ug(function (a) { + return Sq(a) + }, lh(null))); + if (!wb(pr)) { + throw Error(Bq("extra-key-schema? can not contain required keys: %s", be([Wg(pr)]))); + } + + function qr(a, b, c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga) { + this.width = a; + this.height = b; + this.Ba = c; + this.qa = d; + this.Aa = e; + this.cursor = f; + this.ra = h; + this.sa = k; + this.ta = l; + this.pa = p; + this.ua = m; + this.va = u; + this.wa = w; + this.buffer = x; + this.lines = C; + this.za = F; + this.xa = I; + this.ya = M; + this.v = S; + this.j = X; + this.w = Ga; + this.m = 2229667594; + this.J = 139264 + } + + g = qr.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "width": + return this.width; + case "height": + return this.height; + case "top-margin": + return this.Ba; + case "bottom-margin": + return this.qa; + case "tabs": + return this.Aa; + case "cursor": + return this.cursor; + case "char-attrs": + return this.ra; + case "charset-fn": + return this.sa; + case "insert-mode": + return this.ta; + case "auto-wrap-mode": + return this.pa; + case "new-line-mode": + return this.ua; + case "next-print-wraps": + return this.va; + case "origin-mode": + return this.wa; + case "buffer": + return this.buffer; + case "lines": + return this.lines; + case "saved": + return this.za; + case "other-buffer-lines": + return this.xa; + case "other-buffer-saved": + return this.ya; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.vt.screen.Screen{", ", ", "}", c, O.c(new R(null, 18, 5, T, + [new R(null, 2, 5, T, [fl, this.width], null), new R(null, 2, 5, T, [no, this.height], null), + new R(null, 2, 5, T, [Hn, this.Ba], null), new R(null, 2, 5, T, [Yj, this.qa], null), + new R(null, 2, 5, T, [tk, this.Aa], null), new R(null, 2, 5, T, [pl, this.cursor], null), + new R(null, 2, 5, T, [Oj, this.ra], null), new R(null, 2, 5, T, [im, this.sa], null), + new R(null, 2, 5, T, [$l, this.ta], null), new R(null, + 2, 5, T, [Rj, this.pa], null), new R(null, 2, 5, T, [mm, this.ua], null), + new R(null, 2, 5, T, [vk, this.va], null), new R(null, 2, 5, T, [yn, this.wa], null), + new R(null, 2, 5, T, [io, this.buffer], null), new R(null, 2, 5, T, [il, this.lines], null), + new R(null, 2, 5, T, [Nm, this.za], null), new R(null, 2, 5, T, [Wn, this.xa], null), + new R(null, 2, 5, T, [sm, this.ya], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 18, new R(null, 18, 5, T, + [fl, no, Hn, Yj, tk, pl, Oj, im, $l, Rj, mm, vk, yn, io, il, Nm, Wn, sm], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 18 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1452363486 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.width, b.width) && G.c( + this.height, b.height) && G.c(this.Ba, b.Ba) && G.c(this.qa, b.qa) && G.c(this.Aa, b.Aa) + && G.c(this.cursor, b.cursor) && G.c(this.ra, b.ra) && G.c(this.sa, b.sa) && G.c(this.ta, + b.ta) && G.c(this.pa, b.pa) && G.c(this.ua, b.ua) && G.c(this.va, b.va) && G.c(this.wa, + b.wa) && G.c(this.buffer, b.buffer) && G.c(this.lines, b.lines) && G.c(this.za, b.za) + && G.c(this.xa, b.xa) && G.c(this.ya, b.ya) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 18, + [Oj, null, Rj, null, Yj, null, tk, null, vk, null, fl, null, il, null, pl, null, $l, null, im, + null, mm, null, sm, null, Nm, null, yn, null, Hn, null, Wn, null, io, null, no, null], + null), null), b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new qr(this.width, this.height, + this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, this.va, + this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(fl, b) : N.call(null, fl, b)) ? new qr(c, this.height, this.Ba, this.qa, + this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, this.va, this.wa, + this.buffer, this.lines, this.za, this.xa, this.ya, this.v, this.j, null) : t( + N.c ? N.c(no, b) : N.call(null, no, b)) ? new qr(this.width, c, this.Ba, this.qa, this.Aa, + this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, this.va, this.wa, this.buffer, + this.lines, this.za, this.xa, this.ya, this.v, this.j, null) : t( + N.c ? N.c(Hn, b) : N.call(null, Hn, b)) ? new qr(this.width, + this.height, c, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, + this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, this.j, null) + : t(N.c ? N.c(Yj, b) : N.call(null, Yj, b)) ? new qr(this.width, this.height, this.Ba, c, + this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, this.va, this.wa, + this.buffer, this.lines, this.za, this.xa, this.ya, this.v, this.j, null) : t( + N.c ? N.c(tk, b) : N.call(null, tk, b)) ? new qr(this.width, this.height, this.Ba, this.qa, + c, this.cursor, this.ra, this.sa, this.ta, + this.pa, this.ua, this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, + this.v, this.j, null) : t(N.c ? N.c(pl, b) : N.call(null, pl, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, c, this.ra, this.sa, this.ta, this.pa, this.ua, + this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, this.j, null) + : t(N.c ? N.c(Oj, b) : N.call(null, Oj, b)) ? new qr(this.width, this.height, this.Ba, + this.qa, this.Aa, this.cursor, c, this.sa, this.ta, this.pa, this.ua, this.va, this.wa, + this.buffer, this.lines, this.za, this.xa, + this.ya, this.v, this.j, null) : t(N.c ? N.c(im, b) : N.call(null, im, b)) ? new qr( + this.width, this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, c, this.ta, + this.pa, this.ua, this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, + this.v, this.j, null) : t(N.c ? N.c($l, b) : N.call(null, $l, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, c, this.pa, + this.ua, this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, + this.j, null) : t(N.c ? N.c(Rj, b) : N.call(null, Rj, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, c, + this.ua, this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, + this.j, null) : t(N.c ? N.c(mm, b) : N.call(null, mm, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, + c, this.va, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, this.j, + null) : t(N.c ? N.c(vk, b) : N.call(null, vk, b)) ? new qr(this.width, this.height, + this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, + this.pa, this.ua, c, this.wa, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, + this.j, null) : t(N.c ? N.c(yn, b) : N.call(null, yn, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, + this.ua, this.va, c, this.buffer, this.lines, this.za, this.xa, this.ya, this.v, this.j, + null) : t(N.c ? N.c(io, b) : N.call(null, io, b)) ? new qr(this.width, this.height, + this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, + this.va, this.wa, c, this.lines, this.za, this.xa, this.ya, + this.v, this.j, null) : t(N.c ? N.c(il, b) : N.call(null, il, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, + this.ua, this.va, this.wa, this.buffer, c, this.za, this.xa, this.ya, this.v, this.j, + null) : t(N.c ? N.c(Nm, b) : N.call(null, Nm, b)) ? new qr(this.width, this.height, + this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, + this.va, this.wa, this.buffer, this.lines, c, this.xa, this.ya, this.v, this.j, null) : t( + N.c ? N.c(Wn, b) : N.call(null, Wn, b)) ? new qr(this.width, + this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, + this.ua, this.va, this.wa, this.buffer, this.lines, this.za, c, this.ya, this.v, this.j, + null) : t(N.c ? N.c(sm, b) : N.call(null, sm, b)) ? new qr(this.width, this.height, + this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, this.ta, this.pa, this.ua, + this.va, this.wa, this.buffer, this.lines, this.za, this.xa, c, this.v, this.j, null) + : new qr(this.width, this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, + this.sa, this.ta, this.pa, this.ua, this.va, this.wa, + this.buffer, this.lines, this.za, this.xa, this.ya, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 18, 5, T, + [new R(null, 2, 5, T, [fl, this.width], null), new R(null, 2, 5, T, [no, this.height], null), + new R(null, 2, 5, T, [Hn, this.Ba], null), new R(null, 2, 5, T, [Yj, this.qa], null), + new R(null, 2, 5, T, [tk, this.Aa], null), new R(null, 2, 5, T, [pl, this.cursor], null), + new R(null, 2, 5, T, [Oj, this.ra], null), new R(null, 2, 5, T, [im, this.sa], null), + new R(null, 2, 5, T, [$l, this.ta], null), new R(null, 2, 5, T, [Rj, this.pa], null), + new R(null, 2, 5, T, [mm, this.ua], null), new R(null, 2, 5, T, [vk, this.va], null), + new R(null, + 2, 5, T, [yn, this.wa], null), new R(null, 2, 5, T, [io, this.buffer], null), + new R(null, 2, 5, T, [il, this.lines], null), new R(null, 2, 5, T, [Nm, this.za], null), + new R(null, 2, 5, T, [Wn, this.xa], null), new R(null, 2, 5, T, [sm, this.ya], null)], + null), this.j)) + }; + g.T = function (a, b) { + return new qr(this.width, this.height, this.Ba, this.qa, this.Aa, this.cursor, this.ra, this.sa, + this.ta, this.pa, this.ua, this.va, this.wa, this.buffer, this.lines, this.za, this.xa, + this.ya, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function rr(a) { + return new qr(fl.h(a), no.h(a), Hn.h(a), Yj.h(a), tk.h(a), pl.h(a), Oj.h(a), im.h(a), $l.h(a), + Rj.h(a), mm.h(a), vk.h(a), yn.h(a), io.h(a), il.h(a), Nm.h(a), Wn.h(a), sm.h(a), null, + Bf(le.A(a, fl, be([no, Hn, Yj, tk, pl, Oj, im, $l, Rj, mm, vk, yn, io, il, Nm, Wn, sm]))), + null) + } + + Eq(qr, zq(ar(qr, hi.A(be( + [Pe([Oj, Rj, Yj, tk, vk, fl, il, pl, $l, im, mm, sm, Nm, yn, Hn, Wn, io, no], + [lr, Mq, Nq, wi, Mq, Nq, new R(null, 1, 5, T, [or], null), jr, Mq, ir, Mq, mr, mr, Mq, Nq, + new Qq(new R(null, 1, 5, T, [or], null), null, null, null), Pq, Nq]), null])), + function (a) { + return rr(wg.c(Ef, a)) + }))); + var sr = new R(null, 2, 5, T, [Yq(Nq, pe(en, new r(null, 1, [Mj, fn], null))), + Yq(lr, pe(Dk, new r(null, 1, [Mj, Gn], null)))], null), tr; + tr = function (a, b) { + return new R(null, 2, 5, T, [a, b], null) + }; + Eq(tr, dr(nr, new R(null, 1, 5, T, [sr], null))); + var ur = new R(null, 1, 5, T, [Yq(Iq, pe(Dk, new r(null, 1, [Mj, Ij], null)))], null), vr; + vr = function (a) { + return tr(32, a) + }; + Eq(vr, dr(nr, new R(null, 1, 5, T, [ur], null))); + var wr = new R(null, 1, 5, T, [Yq(Iq, pe(Am, new r(null, 1, [Mj, Ij], null)))], null), + xr = new R(null, 2, 5, T, [Yq(Iq, pe(Am, new r(null, 1, [Mj, Ij], null))), + Yq(Iq, pe(Dk, new r(null, 1, [Mj, Ij], null)))], null); + gr = function yr(a) { + switch (arguments.length) { + case 1: + return yr.h(arguments[0]); + case 2: + return yr.c(arguments[0], arguments[1]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + gr.h = function (a) { + return gr.c(a, Ef) + }; + gr.c = function (a, b) { + return Wg(qg(a, vr(b))) + }; + gr.L = 2; + Eq(gr, fr(or, new R(null, 2, 5, T, [wr, xr], null))); + var zr = new R(null, 1, 5, T, [or], null), Ar = new R(null, 2, 5, T, + [Yq(Iq, pe(Am, new r(null, 1, [Mj, Ij], null))), + Yq(Iq, pe(lk, new r(null, 1, [Mj, Ij], null)))], null), Br = new R(null, 3, 5, T, + [Yq(Iq, pe(Am, new r(null, 1, [Mj, Ij], null))), Yq(Iq, pe(lk, new r(null, 1, [Mj, Ij], null))), + Yq(Iq, pe(Dk, new r(null, 1, [Mj, Ij], null)))], null); + hr = function Cr(a) { + switch (arguments.length) { + case 2: + return Cr.c(arguments[0], arguments[1]); + case 3: + return Cr.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + hr.c = function (a, b) { + return hr.l(a, b, Ef) + }; + hr.l = function (a, b, c) { + a = gr.c(a, c); + return Wg(qg(b, a)) + }; + hr.L = 3; + Eq(hr, fr(zr, new R(null, 2, 5, T, [Ar, Br], null))); + var Dr = new R(null, 1, 5, T, [Yq(Iq, pe(Am, new r(null, 1, [Mj, Ij], null)))], null), Er; + Er = function (a) { + return P(zi, Fi(8, a, 8)) + }; + Eq(Er, dr(wi, new R(null, 1, 5, T, [Dr], null))); + var Fr = new r(null, 3, [zn, 0, Aj, 0, On, !0], null), + Gr = new r(null, 4, [pl, new r(null, 2, [zn, 0, Aj, 0], null), Oj, Ef, yn, !1, Rj, !0], null), + Hr = Pe( + [121, 110, 101, 102, 106, 119, 104, 116, 99, 113, 117, 108, 109, 118, 100, 122, 111, 103, 125, + 107, 97, 115, 112, 123, 120, 126, 98, 124, 96, 105, 114], + [8804, 9532, 9226, 176, 9496, 9516, 9252, 9500, 9228, 9472, 9508, 9484, 9492, 9524, 9229, + 8805, 9146, 177, 163, 9488, 9618, 9149, 9147, 960, 9474, 8901, 9225, 8800, 9830, 9227, + 9148]), Ir = new R(null, 2, 5, T, [Yq(Nq, pe(Am, new r(null, 1, [Mj, oo], null))), + Yq(Nq, pe(lk, new r(null, 1, [Mj, oo], null)))], + null), Jr; + Jr = function (a, b) { + return rr(Pe([Oj, Rj, Yj, tk, vk, fl, il, pl, $l, im, mm, sm, Nm, yn, Hn, Wn, io, no], + [Ef, !0, b - 1, Er(a), !1, a, hr.c(a, b), Fr, !1, Ve, !1, Gr, Gr, !1, 0, null, fk, b])) + }; + Eq(Jr, dr(qr, new R(null, 1, 5, T, [Ir], null))); + + function Kr(a) { + return K.l(a, $l, !0) + } + + function Lr(a) { + return K.l(a, $l, !1) + } + + function Mr(a) { + return K.l(a, mm, !0) + } + + function Nr(a) { + return K.l(a, mm, !1) + } + + function Or(a) { + return K.l(a, Rj, !0) + } + + function Pr(a) { + return K.l(a, Rj, !1) + } + + function Qr(a, b, c) { + return zg(a, new R(null, 2, 5, T, [Oj, b], null), c) + } + + function Rr(a, b) { + return Cg(a, Oj, le, b) + } + + function Sr(a, b, c) { + var d = H(a); + b = b < d ? b : d; + return O.c(kg(b, a), qg(b, c)) + } + + var Tr = function Tr(a) { + switch (arguments.length) { + case 1: + return Tr.h(arguments[0]); + case 2: + return Tr.c(arguments[0], arguments[1]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + Tr.h = function (a) { + return Tr.c(a, 1) + }; + Tr.c = function (a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, fl), e = D.c(c, Hn), + f = D.c(c, Yj), h = D.c(c, Oj), k = gr.c(d, h); + return Bg(c, il, function (a, c, d, e, f, h, k) { + return function (c) { + return Wg(O.A(jg(h, c), Sr(Zg(null, c, h, k + 1, null), b, a), be([kg(k + 1, c)]))) + } + }(k, a, c, c, d, e, f, h)) + }; + Tr.L = 2; + + function Ur(a, b, c) { + var d = H(a); + b = b < d ? b : d; + return O.c(qg(b, c), jg(d - b, a)) + } + + var Vr = function Vr(a) { + switch (arguments.length) { + case 1: + return Vr.h(arguments[0]); + case 2: + return Vr.c(arguments[0], arguments[1]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + Vr.h = function (a) { + return Vr.c(a, 1) + }; + Vr.c = function (a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, fl), e = D.c(c, Hn), + f = D.c(c, Yj), h = D.c(c, Oj), k = gr.c(d, h); + return Bg(c, il, function (a, c, d, e, f, h, k) { + return function (c) { + return Wg(O.A(jg(h, c), Ur(Zg(null, c, h, k + 1, null), b, a), be([kg(k + 1, c)]))) + } + }(k, a, c, c, d, e, f, h)) + }; + Vr.L = 2; + + function Wr(a) { + return zg(a, new R(null, 2, 5, T, [pl, On], null), !0) + } + + function Xr(a) { + return zg(a, new R(null, 2, 5, T, [pl, On], null), !1) + } + + function Yr(a, b) { + return K.l(zg(a, new R(null, 2, 5, T, [pl, zn], null), b), vk, !1) + } + + function Zr(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, fl), e = 0 < b ? b : 0; + --d; + return Yr(c, e < d ? e : d) + } + + function $r(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl); + d = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + d = D.c(d, zn); + var e = D.c(c, fl) - 1; + return K.l(zg(zg(c, new R(null, 2, 5, T, [pl, zn], null), d < e ? d : e), + new R(null, 2, 5, T, [pl, Aj], null), b), vk, !1) + } + + function as(a) { + var b = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + a = D.c(b, yn); + b = D.c(b, Hn); + return t(a) ? b : 0 + } + + function bs(a, b) { + var c = as(a), d = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var e = D.c(d, yn); + var f = D.c(d, Yj); + d = D.c(d, no); + e = t(e) ? f : d - 1; + f = c + b; + c = f > c ? f : c; + return $r(a, e < c ? e : c) + } + + function cs(a) { + return $r(Yr(a, 0), as(a)) + } + + function Eg(a, b, c) { + return bs(Zr(a, b), c) + } + + function ds(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(b, Aj); + var c = D.c(a, Yj), d = D.c(a, no) - 1; + return G.c(b, c) ? Tr.h(a) : b < d ? $r(a, b + 1) : a + } + + function es(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(b, zn); + return Zr(a, b - 1) + } + + function fs(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl); + d = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + var e = D.c(d, Aj), f = D.c(c, Hn); + return $r(c, e < f ? function () { + var a = e - b; + return 0 > a ? 0 : a + }() : function () { + var a = e - b; + return f > a ? f : a + }()) + } + + function gs(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl); + d = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + var e = D.c(d, Aj), f = D.c(c, Yj), h = D.c(c, no); + return $r(c, e > f ? function () { + var a = h - 1, c = e + b; + return a < c ? a : c + }() : function () { + var a = e + b; + return f < a ? f : a + }()) + } + + function hs(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl); + d = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + d = D.c(d, zn); + return Zr(c, d + b) + } + + function is(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl); + d = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + d = D.c(d, zn); + return Zr(c, d - b) + } + + function js(a) { + var b = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + a = D.c(b, mm); + b = ds(b); + return t(a) ? Yr(b, 0) : b + } + + function ks(a) { + return Yr(ds(a), 0) + } + + function ls(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(b, Aj); + var c = D.c(a, Hn); + return G.c(b, c) ? Vr.h(a) : 0 < b ? $r(a, b - 1) : a + } + + function ms(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl), c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(c, zn); + c = D.c(c, Aj); + var d = D.c(a, Oj), e = D.c(a, yn), f = D.c(a, Rj); + return K.l(a, Nm, + new r(null, 4, [pl, new r(null, 2, [zn, b, Aj, c], null), Oj, d, yn, e, Rj, f], null)) + } + + function ns(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, Nm), c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(c, pl); + var d = D.c(c, Oj), e = D.c(c, yn); + c = D.c(c, Rj); + return Cg(K.A(a, Oj, d, be([vk, !1, yn, e, Rj, c])), pl, hi, b) + } + + function os(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, io), c = D.c(a, fl), d = D.c(a, no), e = D.c(a, Oj); + return G.c(b, fk) ? K.A(a, io, tl, + be([Wn, il.h(a), sm, Nm.h(a), il, hr.l(c, d, e), Nm, sm.h(a)])) : a + } + + function dt(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, io); + return G.c(b, tl) ? K.A(a, io, fk, be([Wn, null, sm, Nm.h(a), il, Wn.h(a), Nm, sm.h(a)])) : a + } + + function et(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(b, zn); + var c = D.c(a, fl); + return 0 < b && b < c ? Cg(a, tk, ge, b) : a + } + + function ft(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(b, zn); + return Cg(a, tk, re, b) + } + + function gt(a) { + return Bg(a, tk, ie) + } + + function ht(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, zn), h = D.c(c, tk), + k = D.c(c, fl), l = b - 1, p = k - 1; + d = J(ng(function (a, b, c, d, e, f, h, k) { + return function (a) { + return k >= a + } + }(l, p, a, c, c, d, e, f, h, k), h), l, p); + return Zr(c, d) + } + + function it(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, zn), h = D.c(c, tk), + k = D.c(c, fl), l = b - 1; + d = J(cf(Bi(function (a, b, c, d, e, f, h) { + return function (a) { + return h > a + } + }(l, a, c, c, d, e, f, h, k), h)), l, 0); + return Zr(c, d) + } + + function jt(a) { + return K.l(a, im, Ve) + } + + function kt(a) { + return K.l(a, im, Hr) + } + + function lt(a, b, c) { + return K.l(a, b, c) + } + + function mt(a, b, c) { + return Wg(O.A(jg(b, a), new R(null, 1, 5, T, [c], null), be([jg(H(a) - b - 1, kg(b, a))]))) + } + + function nt(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + d = D.c(e, zn); + e = D.c(e, Aj); + var f = D.c(c, fl); + D.c(c, no); + var h = D.c(c, Oj), k = D.c(c, Rj), l = D.c(c, $l), p = D.c(c, im); + p = 95 < b && 127 > b ? p.h ? p.h(b) : p.call(null, b) : b; + h = tr(p, h); + return G.c(f, d + 1) ? t(k) ? K.l(Yr(zg(c, new R(null, 3, 5, T, [il, e, d], null), h), d + 1), + vk, !0) : zg(c, new R(null, 3, 5, T, [il, e, d], null), h) : Yr( + Ag.Z(c, new R(null, 2, 5, T, [il, e], null), t(l) ? mt : lt, d, h), d + 1) + } + + function ot(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, Rj), e = D.c(c, vk); + t(t(d) ? e : d) && (c = null != c && (c.m & 64 || q === c.G) ? P(U, c) : c, d = D.c(c, + pl), d = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, d = D.c(d, Aj), e = D.c(c, + no), c = Yr(c, 0), c = G.c(e, d + 1) ? Tr.h(c) : $r(c, d + 1)); + return c = nt(c, b) + } + + function pt(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, fl), c = D.c(a, no); + return K.l(a, il, Wg(qg(c, Wg(qg(b, new R(null, 2, 5, T, [69, Ef], null)))))) + } + + function qt(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(b, Aj); + var c = D.c(a, fl), d = D.c(a, Oj); + return zg(a, new R(null, 2, 5, T, [il, b], null), gr.c(c, d)) + } + + function rt(a, b, c) { + return Wg(O.c(jg(b, a), qg(H(a) - b, vr(c)))) + } + + function st(a, b, c) { + return Wg(O.c(qg(b + 1, vr(c)), kg(b + 1, a))) + } + + function tt(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl), c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(c, zn); + c = D.c(c, Aj); + var d = D.c(a, fl), e = D.c(a, Oj); + --d; + return Ag.Z(a, new R(null, 2, 5, T, [il, c], null), rt, b < d ? b : d, e) + } + + function ut(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, pl), c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + b = D.c(c, zn); + c = D.c(c, Aj); + var d = D.c(a, fl), e = D.c(a, Oj); + --d; + return Ag.Z(a, new R(null, 2, 5, T, [il, c], null), st, b < d ? b : d, e) + } + + function vt(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, fl), c = D.c(a, no), d = D.c(a, Oj); + return K.l(a, il, hr.l(b, c, d)) + } + + function wt(a) { + var b = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, c = D.c(b, pl), + d = null != c && (c.m & 64 || q === c.G) ? P(U, c) : c, e = D.c(d, zn), f = D.c(d, Aj), + h = D.c(b, fl), k = D.c(b, no), l = D.c(b, Oj); + return Bg(b, il, function (a, b, c, d, e, f, h, k, l, S) { + return function (a) { + var b = jg(h, a); + a = rt(Vd(a, h), f, S); + var c = qg(l - h - 1, gr.c(k, S)); + return Wg(O.A(b, new R(null, 1, 5, T, [a], null), be([c]))) + } + }(a, b, b, c, d, e, f, h, k, l)) + } + + function xt(a) { + var b = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, c = D.c(b, pl), + d = null != c && (c.m & 64 || q === c.G) ? P(U, c) : c, e = D.c(d, zn), f = D.c(d, Aj), + h = D.c(b, fl), k = D.c(b, no), l = D.c(b, Oj); + return Bg(b, il, function (a, b, c, d, e, f, h, k, l, S, X) { + return function (b) { + var c = qg(k, gr.c(l, X)), d = st(Vd(b, k), a, X); + return Wg(O.A(c, new R(null, 1, 5, T, [d], null), be([kg(k + 1, b)]))) + } + }(function () { + var a = h - 1; + return e < a ? e : a + }(), a, b, b, c, d, e, f, h, k, l)) + } + + function yt(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, zn), h = D.c(e, Aj), + k = D.c(c, fl), l = D.c(c, Oj); + return Ag.l(c, new R(null, 2, 5, T, [il, h], null), function (a, b, c, d, e, f, h, k, l, S) { + return function (b) { + return Wg(O.A(jg(h, b), qg(a, vr(S)), be([kg(h + a, b)]))) + } + }(function () { + var a = k - f; + return b < a ? b : a + }(), a, c, c, d, e, f, h, k, l)) + } + + function zt(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, zn), h = D.c(e, Aj), + k = D.c(c, fl), l = D.c(c, Oj); + return Ag.l(c, new R(null, 2, 5, T, [il, h], null), function (a, c, d, e, f, h, k, l, M) { + return function (a) { + return Wg(jg(l, O.A(jg(h, a), qg(b, new R(null, 2, 5, T, [32, M], null)), be([kg(h, a)])))) + } + }(a, c, c, d, e, f, h, k, l)) + } + + function At(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, Aj), h = D.c(c, Yj), + k = D.c(c, fl), l = D.c(c, no), p = D.c(c, Oj), m = gr.c(k, p); + return Bg(c, il, function (a, c, d, e, f, h, k, m) { + return function (c) { + return Wg( + k <= m ? O.A(jg(k, c), Ur(Zg(null, c, k, m + 1, null), b, a), be([kg(m + 1, c)])) : O.c( + jg(k, c), Ur(kg(k, c), b, a))) + } + }(m, a, c, c, d, e, f, h, k, l, p)) + } + + function Bt(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, Aj), h = D.c(c, Yj), + k = D.c(c, fl), l = D.c(c, no), p = D.c(c, Oj), m = gr.c(k, p); + return Bg(c, il, function (a, c, d, e, f, h, k, m) { + return function (c) { + return Wg( + k <= m ? O.A(jg(k, c), Sr(Zg(null, c, k, m + 1, null), b, a), be([kg(m + 1, c)])) : O.c( + jg(k, c), Sr(kg(k, c), b, a))) + } + }(m, a, c, c, d, e, f, h, k, l, p)) + } + + function Ct(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, pl), + e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d, f = D.c(e, zn), h = D.c(e, Aj), + k = D.c(c, fl), l = D.c(c, Oj), p = f >= k ? Zr(c, k - 1) : c, + m = Mb(D, p, new R(null, 2, 5, T, [pl, zn], null)); + return Ag.l(p, new R(null, 2, 5, T, [il, h], null), + function (a, b, c, d, e, f, h, k, m, l, p, Q) { + return function (a) { + return Wg(O.A(jg(b, a), kg(b + c, a), be([qg(c, vr(Q))]))) + } + }(p, m, function () { + var a = k - m; + return b < a ? b : a + }(), a, c, c, d, e, f, h, k, l)) + } + + var Dt = new R(null, 1, 5, T, [Yq(new R(null, 1, 5, T, [Nq], null), + pe(Ln, new r(null, 1, [Mj, new R(null, 1, 5, T, [fn], null)], null)))], null), Et; + Et = function (a) { + return P(String.fromCodePoint, a) + }; + Eq(Et, dr(Lq, new R(null, 1, 5, T, [Dt], null))); + var Ft = new R(null, 1, 5, T, + [new R(null, 2, 5, T, [Yq(Lq, "text"), Yq(lr, "text attributes")], null)], null), + Gt = new R(null, 1, 5, T, [Yq(or, pe(Nn, new r(null, 1, [Mj, nk], null)))], null), Ht; + Ht = function (a) { + a = E(a); + var b = y(a), c = z(a); + a = he; + var d = new R(null, 1, 5, T, [y(b)], null), e = fe(b); + for (b = c; ;) { + if (c = y(b), t(c)) { + var f = c; + c = J(f, 0, null); + f = J(f, 1, null); + G.c(f, e) ? d = ge.c(d, c) : (a = ge.c(a, + new R(null, 2, 5, T, [Et(d), e], null)), d = new R( + null, 1, 5, T, [c], null), e = f); + b = vd(b) + } else { + return ge.c(a, new R(null, 2, 5, T, [Et(d), e], null)) + } + } + }; + Eq(Ht, dr(Ft, new R(null, 1, 5, T, [Gt], null))); + + function It(a) { + a = Wr(a); + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, no); + a = K.A(a, Hn, 0, be([Yj, b - 1])); + return K.l(K.l(K.l(Lr(a), yn, !1), Oj, Ef), Nm, Gr) + };var Jt = Error(); + var Kt = E(ug(function (a) { + return Sq(a) + }, lh(null))); + if (!wb(Kt)) { + throw Error(Bq("extra-key-schema? can not contain required keys: %s", be([Wg(Kt)]))); + } + + function Lt(a, b, c, d, e, f, h) { + this.Qb = a; + this.Pb = b; + this.Ob = c; + this.screen = d; + this.v = e; + this.j = f; + this.w = h; + this.m = 2229667594; + this.J = 139264 + } + + g = Lt.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "parser-state": + return this.Qb; + case "parser-params": + return this.Pb; + case "parser-intermediates": + return this.Ob; + case "screen": + return this.screen; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.vt.VT{", ", ", "}", c, O.c(new R(null, 4, 5, T, + [new R(null, 2, 5, T, [Tl, this.Qb], null), new R(null, 2, 5, T, [kk, this.Pb], null), + new R(null, 2, 5, T, [rk, this.Ob], null), new R(null, 2, 5, T, [V, this.screen], null)], + null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 4, new R(null, 4, 5, T, [Tl, kk, rk, V], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 4 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -156373259 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.Qb, b.Qb) && G.c(this.Pb, + b.Pb) && G.c(this.Ob, b.Ob) && G.c(this.screen, b.screen) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 4, [V, null, kk, null, rk, null, Tl, null], null), null), b) + ? le.c(tc(wg.c(Ef, this), this.v), b) : new Lt(this.Qb, this.Pb, this.Ob, this.screen, this.v, + Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Tl, b) : N.call(null, Tl, b)) ? new Lt(c, this.Pb, this.Ob, this.screen, + this.v, this.j, null) : t(N.c ? N.c(kk, b) : N.call(null, kk, b)) ? new Lt(this.Qb, c, + this.Ob, this.screen, this.v, this.j, null) : t(N.c ? N.c(rk, b) : N.call(null, rk, b)) + ? new Lt(this.Qb, this.Pb, c, this.screen, this.v, this.j, null) : t( + N.c ? N.c(V, b) : N.call(null, V, b)) ? new Lt(this.Qb, this.Pb, this.Ob, c, this.v, this.j, + null) : new Lt(this.Qb, this.Pb, this.Ob, this.screen, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 4, 5, T, + [new R(null, 2, 5, T, [Tl, this.Qb], null), new R(null, 2, 5, T, [kk, this.Pb], null), + new R(null, 2, 5, T, [rk, this.Ob], null), new R(null, 2, 5, T, [V, this.screen], null)], + null), this.j)) + }; + g.T = function (a, b) { + return new Lt(this.Qb, this.Pb, this.Ob, this.screen, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function Mt(a) { + return new Lt(Tl.h(a), kk.h(a), rk.h(a), V.h(a), null, Bf(le.A(a, Tl, be([kk, rk, V]))), null) + } + + Eq(Lt, zq(ar(Lt, hi.A(be([new r(null, 4, + [Tl, Pq, kk, new R(null, 1, 5, T, [Oq], null), rk, new R(null, 1, 5, T, [Oq], null), V, qr], + null), null])), function (a) { + return Mt(wg.c(Ef, a)) + }))); + var Nt = new R(null, 2, 5, T, [Yq(Nq, pe(Am, new r(null, 1, [Mj, oo], null))), + Yq(Nq, pe(lk, new r(null, 1, [Mj, oo], null)))], null), Ot; + Ot = function (a, b) { + return Mt(new r(null, 4, [Tl, uk, kk, he, rk, he, V, Jr(a, b)], null)) + }; + Eq(Ot, dr(Lt, new R(null, 1, 5, T, [Nt], null))); + + function Pt(a, b, c) { + try { + if (null === b) { + try { + if (4 === c) { + return Bg(a, V, Kr); + } + throw Jt; + } catch (p) { + if (p instanceof Error) { + var d = p; + if (d === Jt) { + try { + if (20 === c) { + return Bg(a, V, Mr); + } + throw Jt; + } catch (m) { + if (m instanceof Error) { + var e = m; + if (e === Jt) { + throw Jt; + } + throw e; + } + throw m; + } + } else { + throw d; + } + } else { + throw p; + } + } + } else { + throw Jt; + } + } catch (p) { + if (p instanceof Error) { + if (d = p, d === Jt) { + try { + if (63 === b) { + try { + if (6 === c) { + return Bg(a, V, function () { + return function (a) { + return cs(K.l(a, yn, !0)) + } + }(d)); + } + throw Jt; + } catch (m) { + if (m instanceof Error) { + if (e = m, e === Jt) { + try { + if (7 === c) { + return Bg(a, + V, Or); + } + throw Jt; + } catch (u) { + if (u instanceof Error) { + if (b = u, b === Jt) { + try { + if (25 === c) { + return Bg(a, V, Wr); + } + throw Jt; + } catch (w) { + if (w instanceof Error) { + var f = w; + if (f === Jt) { + try { + if (47 === c) { + return Bg(a, V, os); + } + throw Jt; + } catch (x) { + if (x instanceof Error) { + var h = x; + if (h === Jt) { + try { + if (1047 === c) { + return Bg(a, V, os); + } + throw Jt; + } catch (C) { + if (C instanceof Error) { + var k = C; + if (k === Jt) { + try { + if (1048 === c) { + return Bg(a, V, ms); + } + throw Jt; + } catch (F) { + if (F instanceof Error) { + var l = F; + if (l === Jt) { + try { + if (1049 === c) { + return Bg(a, V, function () { + return function (a) { + return os(ms(a)) + } + }(l, + k, h, f, b, e, d)); + } + throw Jt; + } catch (I) { + if (I instanceof Error) { + c = I; + if (c === Jt) { + throw Jt; + } + throw c; + } + throw I; + } + } else { + throw l; + } + } else { + throw F; + } + } + } else { + throw k; + } + } else { + throw C; + } + } + } else { + throw h; + } + } else { + throw x; + } + } + } else { + throw f; + } + } else { + throw w; + } + } + } else { + throw b; + } + } else { + throw u; + } + } + } else { + throw e; + } + } else { + throw m; + } + } + } else { + throw Jt; + } + } catch (m) { + if (m instanceof Error) { + e = m; + if (e === Jt) { + return a; + } + throw e; + } + throw m; + } + } else { + throw d; + } + } else { + throw p; + } + } + } + + function Qt(a, b, c) { + try { + if (null === b) { + try { + if (4 === c) { + return Bg(a, V, Lr); + } + throw Jt; + } catch (p) { + if (p instanceof Error) { + var d = p; + if (d === Jt) { + try { + if (20 === c) { + return Bg(a, V, Nr); + } + throw Jt; + } catch (m) { + if (m instanceof Error) { + var e = m; + if (e === Jt) { + throw Jt; + } + throw e; + } + throw m; + } + } else { + throw d; + } + } else { + throw p; + } + } + } else { + throw Jt; + } + } catch (p) { + if (p instanceof Error) { + if (d = p, d === Jt) { + try { + if (63 === b) { + try { + if (6 === c) { + return Bg(a, V, function () { + return function (a) { + return cs(K.l(a, yn, !1)) + } + }(d)); + } + throw Jt; + } catch (m) { + if (m instanceof Error) { + if (e = m, e === Jt) { + try { + if (7 === c) { + return Bg(a, + V, Pr); + } + throw Jt; + } catch (u) { + if (u instanceof Error) { + if (b = u, b === Jt) { + try { + if (25 === c) { + return Bg(a, V, Xr); + } + throw Jt; + } catch (w) { + if (w instanceof Error) { + var f = w; + if (f === Jt) { + try { + if (47 === c) { + return Bg(a, V, dt); + } + throw Jt; + } catch (x) { + if (x instanceof Error) { + var h = x; + if (h === Jt) { + try { + if (1047 === c) { + return Bg(a, V, dt); + } + throw Jt; + } catch (C) { + if (C instanceof Error) { + var k = C; + if (k === Jt) { + try { + if (1048 === c) { + return Bg(a, V, ns); + } + throw Jt; + } catch (F) { + if (F instanceof Error) { + var l = F; + if (l === Jt) { + try { + if (1049 === c) { + return Bg(a, V, function () { + return function (a) { + return ns(dt(a)) + } + }(l, + k, h, f, b, e, d)); + } + throw Jt; + } catch (I) { + if (I instanceof Error) { + c = I; + if (c === Jt) { + throw Jt; + } + throw c; + } + throw I; + } + } else { + throw l; + } + } else { + throw F; + } + } + } else { + throw k; + } + } else { + throw C; + } + } + } else { + throw h; + } + } else { + throw x; + } + } + } else { + throw f; + } + } else { + throw w; + } + } + } else { + throw b; + } + } else { + throw u; + } + } + } else { + throw e; + } + } else { + throw m; + } + } + } else { + throw Jt; + } + } catch (m) { + if (m instanceof Error) { + e = m; + if (e === Jt) { + return a; + } + throw e; + } + throw m; + } + } else { + throw d; + } + } else { + throw p; + } + } + } + + function Rt(a) { + a = ig.c(function (a) { + return a - 48 + }, a); + a = ig.l(Ye, cf(a), rg(function () { + return function (a) { + return 10 * a + } + }(a), 1)); + return Mb(Xe, 0, a) + } + + var St = hj(function (a) { + a:for (var b = he, c = he; ;) { + var d = y(a); + if (t(d)) { + G.c(d, 59) ? (a = vd(a), b = ge.c(b, c), c = he) : (a = vd(a), c = ge.c(c, + d)); + } else { + a = E(c) ? ge.c(b, c) : b; + break a + } + } + return ig.c(Rt, a) + }); + + function Tt(a) { + a = kk.h(a); + return St.h ? St.h(a) : St.call(null, a) + } + + function Ut(a, b, c) { + a = J(Tt(a), b, 0); + return 0 === a ? c : a + } + + function Vt(a) { + return Bg(a, V, es) + } + + function Wt(a) { + return Cg(a, V, ht, 1) + } + + function Xt(a) { + return Cg(a, V, Yr, 0) + } + + function Yt(a) { + return Bg(a, V, js) + } + + function Zt(a) { + return Bg(a, V, kt) + } + + function $t(a) { + return Bg(a, V, jt) + } + + function au(a) { + return Bg(a, V, ks) + } + + function bu(a) { + return Bg(a, V, et) + } + + function cu(a) { + return Bg(a, V, ls) + } + + function du(a) { + return Ot(fl.h(V.h(a)), no.h(V.h(a))) + } + + function eu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, zt, b) + } + + function fu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, fs, b) + } + + function gu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, gs, b) + } + + function hu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, hs, b) + } + + function iu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, is, b) + } + + function ju(a) { + var b = Ut(a, 0, 1); + return Bg(a, V, function (a) { + return function (b) { + return Yr(gs(b, a), 0) + } + }(b)) + } + + function ku(a) { + var b = Ut(a, 0, 1); + return Bg(a, V, function (a) { + return function (b) { + return Yr(fs(b, a), 0) + } + }(b)) + } + + function lu(a) { + var b = Ut(a, 0, 1) - 1; + return Cg(a, V, Zr, b) + } + + function mu(a) { + var b = Ut(a, 0, 1) - 1, c = Ut(a, 1, 1) - 1; + return Dg(a, c, b) + } + + function nu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, ht, b) + } + + function ou(a) { + var b = Ut(a, 0, 0); + return Bg(a, V, function () { + switch (b) { + case 0: + return wt; + case 1: + return xt; + case 2: + return vt; + default: + return Ve + } + }()) + } + + function pu(a) { + var b = Ut(a, 0, 0); + return Bg(a, V, function () { + switch (b) { + case 0: + return tt; + case 1: + return ut; + case 2: + return qt; + default: + return Ve + } + }()) + } + + function qu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, Tr, b) + } + + function ru(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, Vr, b) + } + + function su(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, At, b) + } + + function tu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, Bt, b) + } + + function uu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, Ct, b) + } + + function vu(a) { + switch (Ut(a, 0, 0)) { + case 0: + return Bg(a, V, et); + case 2: + return Bg(a, V, ft); + case 5: + return Bg(a, V, gt); + default: + return a + } + } + + function wu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, yt, b) + } + + function xu(a) { + var b = Ut(a, 0, 1); + return Cg(a, V, it, b) + } + + function yu(a) { + switch (Ut(a, 0, 0)) { + case 0: + return Bg(a, V, ft); + case 3: + return Bg(a, V, gt); + default: + return a + } + } + + function zu(a) { + var b = D.c(rk.h(a), 0); + return Mb(function (a) { + return function (b, c) { + return Pt(b, a, c) + } + }(b), a, Tt(a)) + } + + function Au(a) { + var b = D.c(rk.h(a), 0); + return Mb(function (a) { + return function (b, c) { + return Qt(b, a, c) + } + }(b), a, Tt(a)) + } + + function Bu(a, b) { + for (var c = a, d = b; ;) { + if (E(d)) { + var e = y(d); + switch (e) { + case 0: + c = K.l(c, Oj, Ef); + d = vd(d); + continue; + case 1: + c = Qr(c, Kj, !0); + d = vd(d); + continue; + case 3: + c = Qr(c, Yn, !0); + d = vd(d); + continue; + case 4: + c = Qr(c, Vl, !0); + d = vd(d); + continue; + case 5: + c = Qr(c, dk, !0); + d = vd(d); + continue; + case 7: + c = Qr(c, Nk, !0); + d = vd(d); + continue; + case 21: + c = Rr(c, Kj); + d = vd(d); + continue; + case 22: + c = Rr(c, Kj); + d = vd(d); + continue; + case 23: + c = Rr(c, Yn); + d = vd(d); + continue; + case 24: + c = Rr(c, Vl); + d = vd(d); + continue; + case 25: + c = Rr(c, dk); + d = vd(d); + continue; + case 27: + c = Rr(c, Nk); + d = vd(d); + continue; + case 30: + case 31: + case 32: + case 33: + case 34: + case 35: + case 36: + case 37: + c = Qr(c, Ok, e - 30); + d = vd(d); + continue; + case 38: + switch (ee(d)) { + case 2: + var f = jg(3, kg(2, d)); + e = J(f, 0, null); + var h = J(f, 1, null); + f = J(f, 2, null); + t(f) ? (c = Qr(c, Ok, new R(null, 3, 5, T, [e, h, f], null)), d = kg(5, d)) + : d = kg( + 2, d); + continue; + case 5: + e = y(kg(2, d)); + t(e) ? (c = Qr(c, Ok, e), d = kg(3, d)) : d = kg(2, d); + continue; + default: + d = vd(d); + continue + } + case 39: + c = Rr(c, Ok); + d = vd(d); + continue; + case 40: + case 41: + case 42: + case 43: + case 44: + case 45: + case 46: + case 47: + c = Qr(c, Tn, e - 40); + d = vd(d); + continue; + case 48: + switch (ee(d)) { + case 2: + f = jg(3, kg(2, d)); + e = J(f, 0, null); + h = J(f, 1, null); + f = J(f, 2, null); + t(f) ? (c = Qr(c, Tn, new R(null, 3, 5, T, [e, h, f], null)), d = kg(5, d)) + : d = kg( + 2, d); + continue; + case 5: + e = y(kg(2, d)); + t(e) ? (c = Qr(c, Tn, e), d = kg(3, d)) : d = kg(2, d); + continue; + default: + d = vd(d); + continue + } + case 49: + c = Rr(c, Tn); + d = vd(d); + continue; + case 90: + case 91: + case 92: + case 93: + case 94: + case 95: + case 96: + case 97: + c = Qr(c, Ok, e - 82); + d = vd(d); + continue; + case 100: + case 101: + case 102: + case 103: + case 104: + case 105: + case 106: + case 107: + c = Qr(c, Tn, e - 92); + d = vd(d); + continue; + default: + d = + vd(d) + } + } else { + return c + } + } + } + + function Cu(a) { + var b = E(Tt(a)); + return Cg(a, V, Bu, b ? b : new R(null, 1, 5, T, [0], null)) + } + + function Du(a) { + var b = Ut(a, 0, 1) - 1; + return Cg(a, V, bs, b) + } + + function Eu(a) { + return G.c(D.c(rk.h(a), 0), 33) ? Bg(a, V, It) : a + } + + function Fu(a) { + var b = Ut(a, 0, 1) - 1, c = function () { + var b = null == a ? null : Ut(a, 1, null); + return null == b ? null : b - 1 + }(); + return Bg(a, V, function (a, b) { + return function (c) { + c = null != c && (c.m & 64 || q === c.G) ? P(U, c) : c; + var d = D.c(c, no), e = t(b) ? b : d - 1; + c = -1 < a && a < e && e < d ? K.A(c, Hn, a, be([Yj, e])) : c; + return cs(c) + } + }(b, c)) + } + + function Gu(a, b) { + var c = function () { + switch (b) { + case 8: + return Vt; + case 9: + return Wt; + case 10: + return Yt; + case 11: + return Yt; + case 12: + return Yt; + case 13: + return Xt; + case 14: + return Zt; + case 15: + return $t; + case 132: + return Yt; + case 133: + return au; + case 136: + return bu; + case 141: + return cu; + default: + return null + } + }(); + return t(c) ? c.h ? c.h(a) : c.call(null, a) : a + } + + var Hu = Pe([zj, Pj, Wj, ak, xl, Pl, Rl, Ul, Xl, um, Fm, Fn, In, po], [function (a) { + return a + }, function (a, b) { + var c = D.c(rk.h(a), 0); + try { + if (null === c) { + try { + if (t(function () { + return function () { + return function (a) { + return 64 <= a && 95 >= a + } + }(c, b)(b) + }())) { + return Gu(a, b + 64); + } + throw Jt; + } catch (h) { + if (h instanceof Error) { + var d = h; + if (d === Jt) { + try { + if (55 === b) { + return Bg(a, V, ms); + } + throw Jt; + } catch (k) { + if (k instanceof Error) { + var e = k; + if (e === Jt) { + try { + if (56 === b) { + return Bg(a, V, ns); + } + throw Jt; + } catch (l) { + if (l instanceof Error) { + var f = l; + if (f === Jt) { + try { + if (99 === b) { + return du(a); + } + throw Jt; + } catch (p) { + if (p instanceof Error) { + d = p; + if (d === Jt) { + throw Jt; + } + throw d; + } + throw p; + } + } else { + throw f; + } + } else { + throw l; + } + } + } else { + throw e; + } + } else { + throw k; + } + } + } else { + throw d; + } + } else { + throw h; + } + } + } else { + throw Jt; + } + } catch (h) { + if (h instanceof Error) { + if (d = h, d === Jt) { + try { + if (35 === c) { + try { + if (56 === b) { + return Bg(a, V, pt); + } + throw Jt; + } catch (k) { + if (k instanceof Error) { + e = k; + if (e === Jt) { + throw Jt; + } + throw e; + } + throw k; + } + } else { + throw Jt; + } + } catch (k) { + if (k instanceof Error) { + if (e = k, e === Jt) { + try { + if (40 === c) { + try { + if (48 === b) { + return Zt(a); + } + throw Jt; + } catch (l) { + if (l instanceof Error) { + f = + l; + if (f === Jt) { + return $t(a); + } + throw f; + } + throw l; + } + } else { + throw Jt; + } + } catch (l) { + if (l instanceof Error) { + f = l; + if (f === Jt) { + return a; + } + throw f; + } + throw l; + } + } else { + throw e; + } + } else { + throw k; + } + } + } else { + throw d; + } + } else { + throw h; + } + } + }, function (a) { + return a + }, function (a) { + return a + }, Gu, function (a, b) { + return Cg(a, V, ot, b) + }, function (a, b) { + var c = function () { + switch (b) { + case 64: + return eu; + case 65: + return fu; + case 66: + return gu; + case 67: + return hu; + case 68: + return iu; + case 69: + return ju; + case 70: + return ku; + case 71: + return lu; + case 72: + return mu; + case 73: + return nu; + case 74: + return ou; + case 75: + return pu; + case 76: + return su; + case 77: + return tu; + case 80: + return uu; + case 83: + return qu; + case 84: + return ru; + case 87: + return vu; + case 88: + return wu; + case 90: + return xu; + case 96: + return lu; + case 97: + return hu; + case 100: + return Du; + case 101: + return fu; + case 102: + return mu; + case 103: + return yu; + case 104: + return zu; + case 108: + return Au; + case 109: + return Cu; + case 112: + return Eu; + case 114: + return Fu; + default: + return null + } + }(); + return t(c) ? c.h ? c.h(a) : c.call(null, a) : a + }, function (a) { + return a + }, function (a, b) { + return K.l(a, kk, ge.c(kk.h(a), b)) + }, + function (a) { + return a + }, function (a, b) { + return K.l(a, rk, ge.c(rk.h(a), b)) + }, function (a) { + return a + }, function (a) { + return a + }, function (a) { + return K.A(a, rk, he, be([kk, he])) + }]); + + function Iu(a, b) { + for (var c = a, d = Tl.h(c), e = b; ;) { + var f = y(e); + if (t(f)) { + var h = 160 <= f ? 65 : f; + h = D.c(d.h ? d.h(xq) : d.call(null, xq), h); + d = J(h, 0, null); + h = J(h, 1, null); + a:for (; ;) { + if (E(h)) { + var k = y(h); + k = Hu.h ? Hu.h(k) : Hu.call(null, k); + c = k.c ? k.c(c, f) : k.call(null, c, f); + h = z(h) + } else { + break a; + } + } + e = vd(e) + } else { + return K.l(c, Tl, d) + } + } + } + + function Ju(a, b) { + var c = xg(function (a) { + return a.codePointAt(0) + }, b); + return Iu(a, c) + } + + function Ku(a, b) { + try { + if (ze(b) && 3 === H(b)) { + var c = Vd(b, 0), d = Vd(b, 1), e = Vd(b, 2); + return [v.h(a + 8), ";2;", v.h(c), ";", v.h(d), ";", v.h(e)].join("") + } + throw Jt; + } catch (k) { + if (k instanceof Error) { + var f = k; + if (f === Jt) { + try { + if (t(function () { + return function () { + return function (a) { + return 8 > a + } + }(f)(b) + }())) { + return "" + v.h(a + b); + } + throw Jt; + } catch (l) { + if (l instanceof Error) { + var h = l; + if (h === Jt) { + try { + if (t(function () { + return function () { + return function (a) { + return 16 > a + } + }(h, f)(b) + }())) { + return "" + v.h(a + 52 + b); + } + throw Jt; + } catch (p) { + if (p instanceof Error) { + c = + p; + if (c === Jt) { + return [v.h(a + 8), ";5;", v.h(b)].join(""); + } + throw c; + } + throw p; + } + } else { + throw h; + } + } else { + throw l; + } + } + } else { + throw f; + } + } else { + throw k; + } + } + } + + ag.c(Ku, 30); + ag.c(Ku, 40); + var Lu = function Lu(a) { + if (null != a && null != a.yd) { + return a.yd(a); + } + var c = Lu[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Lu._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Screen.lines", a); + }, Mu = function Mu(a) { + if (null != a && null != a.xd) { + return a.xd(a); + } + var c = Mu[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Mu._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Screen.cursor", a); + }; + + function Nu(a, b) { + var c = 0 < a ? a : 0; + return b < c ? b : c + } + + function Ou(a) { + return function (b) { + return function () { + return ((new Date).getTime() - b.getTime()) / 1E3 * a + } + }(new Date) + } + + function Pu(a) { + return document[a] + } + + function Qu(a) { + return function (b) { + var c = new hg(null); + bd(c, c); + return function (c) { + return function () { + function d(d, e) { + if (B(c) === c) { + var f = bd(c, e); + return b.c ? b.c(d, f) : b.call(null, d, f) + } + var h = bd(c, function () { + var b = B(c); + return a.c ? a.c(b, e) : a.call(null, b, e) + }()); + return Hd(h) ? Id(function () { + var a = B(h); + return b.c ? b.c(d, a) : b.call(null, d, a) + }()) : b.c ? b.c(d, h) : b.call(null, d, h) + } + + function f(a) { + return B(c) === c ? a : b.h ? b.h(a) : b.call(null, a) + } + + function h() { + return b.B ? b.B() : b.call(null) + } + + var k = null; + k = function (a, b) { + switch (arguments.length) { + case 0: + return h.call(this); + case 1: + return f.call(this, a); + case 2: + return d.call(this, a, b) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + k.B = h; + k.h = f; + k.c = d; + return k + }() + }(c) + } + } + + function Ru(a, b) { + return function (c) { + var d = new hg(null); + bd(d, d); + return function (d) { + return function () { + function e(e, f) { + for (; ;) { + if (B(d) === d) { + var h = function () { + var a = e, f = bd(d, b); + return c.c ? c.c(a, f) : c.call(null, a, f) + }(); + if (Hd(h)) { + return h; + } + var k = f; + e = h; + f = k + } else { + var m = bd(d, function () { + var b = B(d), c = f; + return a.c ? a.c(b, c) : a.call(null, b, c) + }()); + return Hd(m) ? Id(function () { + var a = e, b = B(m); + return c.c ? c.c(a, b) : c.call(null, a, b) + }()) : c.c ? c.c(e, m) : c.call(null, e, m) + } + } + } + + function h(a) { + B(d) === d && (a = Jd(c.c ? c.c(a, b) : c.call(null, a, b))); + return c.h ? c.h(a) : c.call(null, a) + } + + function k() { + return c.B ? c.B() : c.call(null) + } + + var l = null; + l = function (a, b) { + switch (arguments.length) { + case 0: + return k.call(this); + case 1: + return h.call(this, a); + case 2: + return e.call(this, a, b) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + l.B = k; + l.h = h; + l.c = e; + return l + }() + }(d) + } + }; + + function Su(a, b) { + return ig.c(function (b) { + var c = J(b, 0, null); + b = J(b, 1, null); + return new R(null, 2, 5, T, [c, a.h ? a.h(b) : a.call(null, b)], null) + }, b) + } + + var Tu = function Tu(a, b) { + return new kf(null, function () { + if (E(a)) { + if (E(b)) { + var d = y(a), e = J(d, 0, null); + J(d, 1, null); + var f = y(b), h = J(f, 0, null); + J(f, 1, null); + return e < h ? ae(d, function () { + var d = vd(a); + return Tu.c ? Tu.c(d, b) : Tu.call(null, d, b) + }()) : ae(f, function () { + var d = vd(b); + return Tu.c ? Tu.c(a, d) : Tu.call(null, a, d) + }()) + } + return a + } + return null + }, null, null) + }; + + function Uu(a, b) { + var c = J(b, 0, null), d = J(b, 1, null); + return new R(null, 2, 5, T, [c + a, d], null) + } + + function Vu(a, b) { + var c = J(b, 0, null), d = J(b, 1, null); + return new R(null, 2, 5, T, [c / a, d], null) + } + + function Wu(a) { + return ig.h(function (b) { + var c = J(b, 0, null), d = J(b, 1, null); + return t(a) ? new R(null, 2, 5, T, [c < a ? c : a, d], null) : b + }) + } + + function Xu(a, b) { + return y(b) < a + } + + function Yu(a, b, c) { + return Uf($f.l(mg(ag.c(Xu, a)), ig.h(ag.c(Uu, -a)), ig.h(ag.c(Vu, b))), c) + } + + function Zu(a, b) { + return y(b) <= a + } + + function $u(a, b) { + return fe(Bi(ag.c(Zu, a), b)) + } + + function av(a, b) { + return Ru(function (b, d) { + J(b, 0, null); + var c = J(b, 1, null), f = J(d, 0, null), h = J(d, 1, null); + return new R(null, 2, 5, T, [f, a.c ? a.c(c, h) : a.call(null, c, h)], null) + }, new R(null, 2, 5, T, [0, b], null)) + } + + function bv() { + return Qu(function (a, b) { + var c = J(a, 0, null); + J(a, 1, null); + var d = J(b, 0, null), e = J(b, 1, null); + return new R(null, 2, 5, T, [c + d, e], null) + }) + } + + function cv() { + return function (a) { + return function (b) { + return function () { + function c(c, d) { + var e = J(d, 0, null), f = J(d, 1, null), h = e - B(b); + bd(b, e); + e = new R(null, 2, 5, T, [h, f], null); + return a.c ? a.c(c, e) : a.call(null, c, e) + } + + function d(b) { + return a.h ? a.h(b) : a.call(null, b) + } + + function e() { + return a.B ? a.B() : a.call(null) + } + + var f = null; + f = function (a, b) { + switch (arguments.length) { + case 0: + return e.call(this); + case 1: + return d.call(this, a); + case 2: + return c.call(this, a, b) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + f.B = e; + f.h = d; + f.c = + c; + return f + }() + }(new hg(0)) + } + }; + + function dv(a, b, c, d) { + return Uf($f.A(tg(function (a) { + return G.c(ee(a), "o") + }), ig.h(Hi(function (a) { + return Vd(a, 2) + })), cv(), be([Wu(d), bv(), av(Ju, Ot(b, c))])), a) + }; + + function ev(a) { + var b = be([gj, !0]); + if (null != a ? q === a.lf || (a.Tc ? 0 : Ab(dj, a)) : Ab(dj, a)) { + return ej(a, P(ci, b)); + } + if (E(b)) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, gj); + return function (a, b, c, d) { + return function m(e) { + return De(e) ? Ii(ig.c(m, e)) : ue(e) ? wg.l(ie(e), ig.h(m), e) : vb(e) ? Qc( + Mb(function () { + return function (a, b) { + return uf.c(a, m(b)) + } + }(a, b, c, d), Oc(he), e)) : Bb(e) === Object ? Qc(Mb(function (a, b, c, d) { + return function (a, b) { + var c = d.h ? d.h(b) : d.call(null, b), f = m(e[b]); + return Rc(a, c, f) + } + }(a, b, c, d), Oc(Ef), Ea(e))) : e + } + }(b, + c, d, t(d) ? hf : v)(a) + } + return null + }; + + function fv(a, b, c, d, e) { + this.cursor = a; + this.lines = b; + this.v = c; + this.j = d; + this.w = e; + this.m = 2229667594; + this.J = 139264 + } + + g = fv.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "cursor": + return this.cursor; + case "lines": + return this.lines; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.asciicast.v0.LegacyScreen{", ", ", "}", c, O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [pl, this.cursor], null), new R(null, 2, 5, T, [il, this.lines], null)], + null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 2, new R(null, 2, 5, T, [pl, il], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 2 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1528554851 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.cursor, b.cursor) && G.c( + this.lines, b.lines) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 2, [il, null, pl, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new fv(this.cursor, this.lines, this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(pl, b) : N.call(null, pl, b)) ? new fv(c, this.lines, this.v, this.j, null) + : t(N.c ? N.c(il, b) : N.call(null, il, b)) ? new fv(this.cursor, c, this.v, this.j, null) + : new fv(this.cursor, this.lines, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 2, 5, T, + [new R(null, 2, 5, T, [pl, this.cursor], null), new R(null, 2, 5, T, [il, this.lines], null)], + null), this.j)) + }; + g.T = function (a, b) { + return new fv(this.cursor, this.lines, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function gv(a, b) { + return y(fe(Uf($f.c(Wu(b), bv()), a))) + } + + function hv(a) { + return wg.c(Ef, ig.c(function (a) { + var b = J(a, 0, null); + a = J(a, 1, null); + var d = T; + b = jf(b); + return new R(null, 2, 5, d, [parseInt(b, 10), a], null) + }, a)) + } + + function iv(a, b) { + var c = Bg(b, il, hv); + return ii.A(hi, be([a, c])) + } + + function jv(a, b) { + var c = new r(null, 2, [il, di(), pl, new r(null, 3, [zn, 0, Aj, 0, On, !0], null)], null); + c = new fv(pl.h(c), il.h(c), null, Bf(le.A(c, pl, be([il]))), null); + return Uf($f.l(Wu(b), bv(), av(iv, c)), a) + } + + function kv(a, b) { + var c = il.h(fe(y(a))), d = Te(Xe, ig.c(function () { + return function (a) { + return H(y(a)) + } + }(c), y(mh(c)))); + c = H(c); + return new r(null, 5, [Mn, 0, fl, d, no, c, wl, gv(a, b), Uk, jv(a, b)], null) + } + + g.yd = function () { + return Wg(mh(il.h(this))) + }; + g.xd = function () { + return pl.h(this) + }; + + function lv(a) { + return ev(JSON.parse(a)) + } + + function mv(a, b, c, d) { + if (G.c(Mn.h(a), 1)) { + b = t(b) ? b : fl.h(a); + c = t(c) ? c : no.h(a); + var e = ko.h(a); + a = y(fe(Uf($f.c(Wu(d), bv()), e))); + d = Uf($f.l(Wu(d), bv(), av(Ju, Ot(b, c))), e); + d = new r(null, 5, [Mn, 1, fl, b, no, c, wl, a, Uk, d], null) + } else { + d = null; + } + return d + } + + function nv(a, b, c, d) { + var e = y(a); + G.c(Mn.h(e), 2) ? (e = y(a), a = vd(a), b = t(b) ? b : fl.h(e), c = t(c) ? c : no.h(e), d = t(d) + ? d : Qj.h(e), e = y(fe(Uf($f.l(cv(), Wu(d), bv()), a))), d = new r(null, 5, + [Mn, 2, fl, b, no, c, wl, e, Uk, dv(a, b, c, d)], null)) : d = t(il.h(ee(e))) ? kv(a, d) + : null; + return d + } + + function ov(a, b, c, d) { + try { + var e = lv(a); + return we(e) ? nv(e, b, c, d) : xe(e) ? mv(e, b, c, d) : null + } catch (k) { + try { + var f = Fo(ra(a), "\n"); + var h = ig.c(lv, f); + return nv(h, b, c, d) + } catch (l) { + return null + } + } + } + + function pv(a, b, c, d) { + var e = "string" === typeof a ? ov : we(a) ? nv : xe(a) ? mv : null; + a = t(e) ? e.M ? e.M(a, b, c, d) : e.call(null, a, b, c, d) : null; + if (t(a)) { + return a; + } + throw"only asciicast v1 and v2 formats can be opened"; + } + + Lt.prototype.yd = function () { + return xg(Ht, il.h(V.h(this))) + }; + Lt.prototype.xd = function () { + return pl.h(V.h(this)) + }; + var qv; + a:{ + var rv = ba.navigator; + if (rv) { + var sv = rv.userAgent; + if (sv) { + qv = sv; + break a + } + } + qv = "" + } + + function tv(a) { + return -1 != qv.indexOf(a) + };var uv; + + function vv() { + var a = ba.MessageChannel; + "undefined" === typeof a && "undefined" !== typeof window && window.postMessage + && window.addEventListener && !tv("Presto") && (a = function () { + var a = document.createElement("IFRAME"); + a.style.display = "none"; + a.src = ""; + document.documentElement.appendChild(a); + var b = a.contentWindow; + a = b.document; + a.open(); + a.write(""); + a.close(); + var c = "callImmediate" + Math.random(), + d = "file:" == b.location.protocol ? "*" : b.location.protocol + "//" + b.location.host; + a = pa(function (a) { + if (("*" == d || a.origin == d) && a.data == + c) { + this.port1.onmessage() + } + }, this); + b.addEventListener("message", a, !1); + this.port1 = {}; + this.port2 = { + postMessage: function () { + b.postMessage(c, d) + } + } + }); + if ("undefined" !== typeof a && !tv("Trident") && !tv("MSIE")) { + var b = new a, c = {}, d = c; + b.port1.onmessage = function () { + if (void 0 !== c.next) { + c = c.next; + var a = c.ed; + c.ed = null; + a() + } + }; + return function (a) { + d.next = {ed: a}; + d = d.next; + b.port2.postMessage(0) + } + } + return "undefined" !== typeof document && "onreadystatechange" in document.createElement( + "SCRIPT") ? function (a) { + var b = document.createElement("SCRIPT"); + b.onreadystatechange = function () { + b.onreadystatechange = null; + b.parentNode.removeChild(b); + b = null; + a(); + a = null + }; + document.documentElement.appendChild(b) + } : function (a) { + ba.setTimeout(a, 0) + } + }; + + function wv() { + 0 != xv && (yv[ja(this)] = this); + this.od = this.od; + this.Wd = this.Wd + } + + var xv = 0, yv = {}; + wv.prototype.od = !1; + wv.prototype.nd = function () { + if (this.Wd) { + for (; this.Wd.length;) { + this.Wd.shift()() + } + } + }; + + function zv() { + return tv("iPhone") && !tv("iPod") && !tv("iPad") + };var Av = tv("Opera"), Bv = tv("Trident") || tv("MSIE"), Cv = tv("Edge"), + Dv = tv("Gecko") && !(-1 != qv.toLowerCase().indexOf("webkit") && !tv("Edge")) && !(tv( + "Trident") || tv("MSIE")) && !tv("Edge"), + Ev = -1 != qv.toLowerCase().indexOf("webkit") && !tv("Edge"); + Ev && tv("Mobile"); + tv("Macintosh"); + tv("Windows"); + tv("Linux") || tv("CrOS"); + var Fv = ba.navigator || null; + Fv && (Fv.appVersion || "").indexOf("X11"); + tv("Android"); + zv(); + tv("iPad"); + tv("iPod"); + zv() || tv("iPad") || tv("iPod"); + + function Gv() { + var a = ba.document; + return a ? a.documentMode : void 0 + } + + var Hv; + a:{ + var Iv = "", Jv = function () { + var a = qv; + if (Dv) { + return /rv\:([^\);]+)(\)|;)/.exec(a); + } + if (Cv) { + return /Edge\/([\d\.]+)/.exec(a); + } + if (Bv) { + return /\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a); + } + if (Ev) { + return /WebKit\/(\S+)/.exec(a); + } + if (Av) { + return /(?:Version)[ \/]?(\S+)/.exec(a) + } + }(); + Jv && (Iv = Jv ? Jv[1] : ""); + if (Bv) { + var Kv = Gv(); + if (null != Kv && Kv > parseFloat(Iv)) { + Hv = String(Kv); + break a + } + } + Hv = Iv + } + var gb = {}; + + function Lv(a) { + return fb(a, function () { + for (var b = 0, c = ra(String(Hv)).split("."), d = ra(String(a)).split("."), + e = Math.max(c.length, d.length), f = 0; 0 == b && f < e; f++) { + var h = c[f] || "", k = d[f] || ""; + do { + h = /(\d*)(\D*)(.*)/.exec(h) || ["", "", "", ""]; + k = /(\d*)(\D*)(.*)/.exec(k) || ["", "", "", ""]; + if (0 == h[0].length && 0 == k[0].length) { + break; + } + b = ta(0 == h[1].length ? 0 : parseInt(h[1], 10), + 0 == k[1].length ? 0 : parseInt(k[1], 10)) || ta(0 == h[2].length, 0 == k[2].length) + || ta(h[2], k[2]); + h = h[3]; + k = k[3] + } while (0 == b) + } + return 0 <= b + }) + } + + var Mv; + var Nv = ba.document; + Mv = Nv && Bv ? Gv() || ("CSS1Compat" == Nv.compatMode ? parseInt(Hv, 10) : 5) : void 0; + var Ov; + (Ov = !Bv) || (Ov = 9 <= Number(Mv)); + var Pv = Ov, Qv = Bv && !Lv("9"); + !Ev || Lv("528"); + Dv && Lv("1.9b") || Bv && Lv("8") || Av && Lv("9.5") || Ev && Lv("528"); + Dv && !Lv("8") || Bv && Lv("9"); + var Rv = function () { + if (!ba.addEventListener || !Object.defineProperty) { + return !1; + } + var a = !1, b = Object.defineProperty({}, "passive", { + get: function () { + a = !0 + } + }); + ba.addEventListener("test", ea, b); + ba.removeEventListener("test", ea, b); + return a + }(); + + function Sv(a, b) { + this.type = a; + this.currentTarget = this.target = b; + this.defaultPrevented = this.Kc = !1; + this.af = !0 + } + + Sv.prototype.stopPropagation = function () { + this.Kc = !0 + }; + Sv.prototype.preventDefault = function () { + this.defaultPrevented = !0; + this.af = !1 + }; + + function Tv(a, b) { + Sv.call(this, a ? a.type : ""); + this.relatedTarget = this.currentTarget = this.target = null; + this.button = this.screenY = this.screenX = this.clientY = this.clientX = this.offsetY = this.offsetX = 0; + this.key = ""; + this.charCode = this.keyCode = 0; + this.metaKey = this.shiftKey = this.altKey = this.ctrlKey = !1; + this.pd = this.state = null; + if (a) { + var c = this.type = a.type, d = a.changedTouches ? a.changedTouches[0] : null; + this.target = a.target || a.srcElement; + this.currentTarget = b; + var e = a.relatedTarget; + if (e) { + if (Dv) { + a:{ + try { + eb(e.nodeName); + var f = + !0; + break a + } catch (h) { + } + f = !1 + } + f || (e = null) + } + } else { + "mouseover" == c ? e = a.fromElement : "mouseout" == c && (e = a.toElement); + } + this.relatedTarget = e; + null === d ? (this.offsetX = Ev || void 0 !== a.offsetX ? a.offsetX + : a.layerX, this.offsetY = Ev || void 0 !== a.offsetY ? a.offsetY + : a.layerY, this.clientX = void 0 !== a.clientX ? a.clientX : a.pageX, this.clientY = void 0 + !== a.clientY ? a.clientY : a.pageY, this.screenX = a.screenX || 0, this.screenY = a.screenY + || 0) : (this.clientX = void 0 !== d.clientX ? d.clientX : d.pageX, this.clientY = void 0 + !== d.clientY ? d.clientY : d.pageY, this.screenX = + d.screenX || 0, this.screenY = d.screenY || 0); + this.button = a.button; + this.keyCode = a.keyCode || 0; + this.key = a.key || ""; + this.charCode = a.charCode || ("keypress" == c ? a.keyCode : 0); + this.ctrlKey = a.ctrlKey; + this.altKey = a.altKey; + this.shiftKey = a.shiftKey; + this.metaKey = a.metaKey; + this.state = a.state; + this.pd = a; + a.defaultPrevented && this.preventDefault() + } + } + + qa(Tv, Sv); + Tv.prototype.stopPropagation = function () { + Tv.Zd.stopPropagation.call(this); + this.pd.stopPropagation ? this.pd.stopPropagation() : this.pd.cancelBubble = !0 + }; + Tv.prototype.preventDefault = function () { + Tv.Zd.preventDefault.call(this); + var a = this.pd; + if (a.preventDefault) { + a.preventDefault(); + } else if (a.returnValue = !1, Qv) { + try { + if (a.ctrlKey || 112 <= a.keyCode && 123 >= a.keyCode) { + a.keyCode = -1 + } + } catch (b) { + } + } + }; + var Uv = "closure_listenable_" + (1E6 * Math.random() | 0), Vv = 0; + + function Wv(a, b, c, d, e) { + this.listener = a; + this.Xd = null; + this.src = b; + this.type = c; + this.capture = !!d; + this.Ub = e; + this.key = ++Vv; + this.$c = this.Fd = !1 + } + + function Xv(a) { + a.$c = !0; + a.listener = null; + a.Xd = null; + a.src = null; + a.Ub = null + }; + + function Yv(a) { + this.src = a; + this.rb = {}; + this.wd = 0 + } + + Yv.prototype.add = function (a, b, c, d, e) { + var f = a.toString(); + a = this.rb[f]; + a || (a = this.rb[f] = [], this.wd++); + var h = Zv(a, b, d, e); + -1 < h ? (b = a[h], c || (b.Fd = !1)) : (b = new Wv(b, this.src, f, !!d, e), b.Fd = c, a.push( + b)); + return b + }; + Yv.prototype.remove = function (a, b, c, d) { + a = a.toString(); + if (!(a in this.rb)) { + return !1; + } + var e = this.rb[a]; + b = Zv(e, b, c, d); + return -1 < b ? (Xv(e[b]), Array.prototype.splice.call(e, b, 1), 0 == e.length + && (delete this.rb[a], this.wd--), !0) : !1 + }; + + function $v(a, b) { + var c = b.type; + c in a.rb && ya(a.rb[c], b) && (Xv(b), 0 == a.rb[c].length && (delete a.rb[c], a.wd--)) + } + + Yv.prototype.re = function (a, b, c, d) { + a = this.rb[a.toString()]; + var e = -1; + a && (e = Zv(a, b, c, d)); + return -1 < e ? a[e] : null + }; + + function Zv(a, b, c, d) { + for (var e = 0; e < a.length; ++e) { + var f = a[e]; + if (!f.$c && f.listener == b && f.capture == !!c && f.Ub == d) { + return e + } + } + return -1 + };var aw = "closure_lm_" + (1E6 * Math.random() | 0), bw = {}, cw = 0; + + function dw(a, b, c, d, e) { + if (d && d.once) { + ew(a, b, c, d, e); + } else if ("array" == n(b)) { + for (var f = 0; f < b.length; + f++) { + dw(a, b[f], c, d, e); + } + } else { + c = fw(c), a && a[Uv] ? a.Ib.add(String(b), c, !1, + ia(d) ? !!d.capture : !!d, e) : gw(a, b, c, !1, d, e) + } + } + + function gw(a, b, c, d, e, f) { + if (!b) { + throw Error("Invalid event type"); + } + var h = ia(e) ? !!e.capture : !!e, k = hw(a); + k || (a[aw] = k = new Yv(a)); + c = k.add(b, c, d, h, f); + if (!c.Xd) { + d = iw(); + c.Xd = d; + d.src = a; + d.listener = c; + if (a.addEventListener) { + Rv || (e = h), void 0 === e && (e = !1), a.addEventListener( + b.toString(), d, e); + } else if (a.attachEvent) { + a.attachEvent(jw(b.toString()), + d); + } else { + throw Error("addEventListener and attachEvent are unavailable."); + } + cw++ + } + } + + function iw() { + var a = kw, b = Pv ? function (c) { + return a.call(b.src, b.listener, c) + } : function (c) { + c = a.call(b.src, b.listener, c); + if (!c) { + return c + } + }; + return b + } + + function ew(a, b, c, d, e) { + if ("array" == n(b)) { + for (var f = 0; f < b.length; f++) { + ew(a, b[f], c, d, e); + } + } else { + c = fw(c), a + && a[Uv] ? a.Ib.add(String(b), c, !0, ia(d) ? !!d.capture : !!d, e) : gw(a, b, c, !0, d, e) + } + } + + function lw(a, b, c, d, e) { + if ("array" == n(b)) { + for (var f = 0; f < b.length; f++) { + lw(a, b[f], c, d, e); + } + } else { + d = ia(d) + ? !!d.capture : !!d, c = fw(c), a && a[Uv] ? a.Ib.remove(String(b), c, d, e) : a && (a = hw( + a)) && (b = a.re(b, c, d, e)) && mw(b) + } + } + + function mw(a) { + if ("number" != typeof a && a && !a.$c) { + var b = a.src; + if (b && b[Uv]) { + $v(b.Ib, a); + } else { + var c = a.type, d = a.Xd; + b.removeEventListener ? b.removeEventListener(c, d, a.capture) : b.detachEvent + && b.detachEvent(jw(c), d); + cw--; + (c = hw(b)) ? ($v(c, a), 0 == c.wd && (c.src = null, b[aw] = null)) : Xv(a) + } + } + } + + function jw(a) { + return a in bw ? bw[a] : bw[a] = "on" + a + } + + function nw(a, b, c, d) { + var e = !0; + if (a = hw(a)) { + if (b = a.rb[b.toString()]) { + for (b = b.concat(), a = 0; a < b.length; a++) { + var f = b[a]; + f && f.capture == c && !f.$c && (f = ow(f, d), e = e && !1 !== f) + } + } + } + return e + } + + function ow(a, b) { + var c = a.listener, d = a.Ub || a.src; + a.Fd && mw(a); + return c.call(d, b) + } + + function kw(a, b) { + if (a.$c) { + return !0; + } + if (!Pv) { + var c; + if (!(c = b)) { + a:{ + c = ["window", "event"]; + for (var d = ba, e; e = c.shift();) { + if (null != d[e]) { + d = d[e]; + } else { + c = null; + break a + } + } + c = d + } + } + e = c; + c = new Tv(e, this); + d = !0; + if (!(0 > e.keyCode || void 0 != e.returnValue)) { + a:{ + var f = !1; + if (0 == e.keyCode) { + try { + e.keyCode = -1; + break a + } catch (l) { + f = !0 + } + } + if (f || void 0 == e.returnValue) { + e.returnValue = !0 + } + } + e = []; + for (f = c.currentTarget; f; f = f.parentNode) { + e.push(f); + } + f = a.type; + for (var h = e.length - 1; !c.Kc && 0 <= h; h--) { + c.currentTarget = e[h]; + var k = nw(e[h], f, !0, c); + d = d && k + } + for (h = 0; !c.Kc && + h < e.length; h++) { + c.currentTarget = e[h], k = nw(e[h], f, !1, c), d = d && k + } + } + return d + } + return ow(a, new Tv(b, this)) + } + + function hw(a) { + a = a[aw]; + return a instanceof Yv ? a : null + } + + var pw = "__closure_events_fn_" + (1E9 * Math.random() >>> 0); + + function fw(a) { + if (ha(a)) { + return a; + } + a[pw] || (a[pw] = function (b) { + return a.handleEvent(b) + }); + return a[pw] + }; + + function qw() { + wv.call(this); + this.Ib = new Yv(this); + this.ff = this; + this.ve = null + } + + qa(qw, wv); + qw.prototype[Uv] = !0; + g = qw.prototype; + g.addEventListener = function (a, b, c, d) { + dw(this, a, b, c, d) + }; + g.removeEventListener = function (a, b, c, d) { + lw(this, a, b, c, d) + }; + g.dispatchEvent = function (a) { + var b, c = this.ve; + if (c) { + for (b = []; c; c = c.ve) { + b.push(c); + } + } + c = this.ff; + var d = a.type || a; + if (ca(a)) { + a = new Sv(a, c); + } else if (a instanceof Sv) { + a.target = a.target || c; + } else { + var e = a; + a = new Sv(d, c); + Ia(a, e) + } + e = !0; + if (b) { + for (var f = b.length - 1; !a.Kc && 0 <= f; f--) { + var h = a.currentTarget = b[f]; + e = rw(h, d, !0, a) && e + } + } + a.Kc || (h = a.currentTarget = c, e = rw(h, d, !0, a) && e, a.Kc || (e = rw(h, d, !1, a) && e)); + if (b) { + for (f = 0; !a.Kc && f < b.length; f++) { + h = a.currentTarget = b[f], e = rw(h, d, !1, a) + && e; + } + } + return e + }; + g.nd = function () { + qw.Zd.nd.call(this); + if (this.Ib) { + var a = this.Ib, b = 0, c; + for (c in a.rb) { + for (var d = a.rb[c], e = 0; e < d.length; e++) { + ++b, Xv(d[e]); + } + delete a.rb[c]; + a.wd-- + } + } + this.ve = null + }; + + function rw(a, b, c, d) { + b = a.Ib.rb[String(b)]; + if (!b) { + return !0; + } + b = b.concat(); + for (var e = !0, f = 0; f < b.length; ++f) { + var h = b[f]; + if (h && !h.$c && h.capture == c) { + var k = h.listener, l = h.Ub || h.src; + h.Fd && $v(a.Ib, h); + e = !1 !== k.call(l, d) && e + } + } + return e && 0 != d.af + } + + g.re = function (a, b, c, d) { + return this.Ib.re(String(a), b, c, d) + }; + + function sw(a, b, c) { + if (ha(a)) { + c && (a = pa(a, c)); + } else if (a && "function" == typeof a.handleEvent) { + a = pa( + a.handleEvent, a); + } else { + throw Error("Invalid listener argument"); + } + return 2147483647 < Number(b) ? -1 : ba.setTimeout(a, b || 0) + }; + + function tw() { + } + + tw.prototype.Ke = null; + + function uw(a) { + var b; + (b = a.Ke) || (b = {}, vw(a) && (b[0] = !0, b[1] = !0), b = a.Ke = b); + return b + };var ww; + + function xw() { + } + + qa(xw, tw); + + function yw(a) { + return (a = vw(a)) ? new ActiveXObject(a) : new XMLHttpRequest + } + + function vw(a) { + if (!a.Te && "undefined" == typeof XMLHttpRequest && "undefined" != typeof ActiveXObject) { + for (var b = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", + "Microsoft.XMLHTTP"], c = 0; c < b.length; c++) { + var d = b[c]; + try { + return new ActiveXObject(d), a.Te = d + } catch (e) { + } + } + throw Error( + "Could not create ActiveXObject. ActiveX might be disabled, or MSXML might not be installed"); + } + return a.Te + } + + ww = new xw; + + function zw(a) { + qw.call(this); + this.headers = new Ma; + this.ce = a || null; + this.oc = !1; + this.be = this.ca = null; + this.ue = ""; + this.Ic = this.se = this.Sd = this.qe = !1; + this.Ae = 0; + this.$d = null; + this.$e = Aw; + this.Be = this.Lf = this.ef = !1 + } + + qa(zw, qw); + var Aw = "", Bw = /^https?$/i, Cw = ["POST", "PUT"], Dw = []; + + function Ew(a, b) { + var c = new zw; + Dw.push(c); + b && c.Ib.add("complete", b, !1, void 0, void 0); + c.Ib.add("ready", c.gf, !0, void 0, void 0); + c.send(a, void 0, void 0, void 0); + return c + } + + g = zw.prototype; + g.gf = function () { + if (!this.od && (this.od = !0, this.nd(), 0 != xv)) { + var a = ja(this); + delete yv[a] + } + ya(Dw, this) + }; + g.send = function (a, b, c, d) { + if (this.ca) { + throw Error( + "[goog.net.XhrIo] Object is active with another request\x3d" + this.ue + "; newUri\x3d" + + a); + } + b = b ? b.toUpperCase() : "GET"; + this.ue = a; + this.qe = !1; + this.oc = !0; + this.ca = this.ce ? yw(this.ce) : yw(ww); + this.be = this.ce ? uw(this.ce) : uw(ww); + this.ca.onreadystatechange = pa(this.Ye, this); + this.Lf && "onprogress" in this.ca && (this.ca.onprogress = pa(function (a) { + this.Xe(a, !0) + }, this), this.ca.upload && (this.ca.upload.onprogress = pa(this.Xe, this))); + try { + this.se = !0, this.ca.open(b, String(a), !0), + this.se = !1 + } catch (f) { + Fw(this); + return + } + a = c || ""; + var e = this.headers.clone(); + d && La(d, function (a, b) { + e.set(b, a) + }); + d = wa(e.Xc()); + c = ba.FormData && a instanceof ba.FormData; + !(0 <= ua(Cw, b)) || d || c || e.set("Content-Type", + "application/x-www-form-urlencoded;charset\x3dutf-8"); + e.forEach(function (a, b) { + this.ca.setRequestHeader(b, a) + }, this); + this.$e && (this.ca.responseType = this.$e); + "withCredentials" in this.ca && this.ca.withCredentials !== this.ef + && (this.ca.withCredentials = this.ef); + try { + Gw(this), 0 < this.Ae && ((this.Be = Hw(this.ca)) ? + (this.ca.timeout = this.Ae, this.ca.ontimeout = pa(this.cf, this)) : this.$d = sw(this.cf, + this.Ae, this)), this.Sd = !0, this.ca.send(a), this.Sd = !1 + } catch (f) { + Fw(this) + } + }; + + function Hw(a) { + return Bv && Lv(9) && "number" == typeof a.timeout && void 0 !== a.ontimeout + } + + function xa(a) { + return "content-type" == a.toLowerCase() + } + + g.cf = function () { + "undefined" != typeof aa && this.ca && (this.dispatchEvent("timeout"), this.abort(8)) + }; + + function Fw(a) { + a.oc = !1; + a.ca && (a.Ic = !0, a.ca.abort(), a.Ic = !1); + Iw(a); + Jw(a) + } + + function Iw(a) { + a.qe || (a.qe = !0, a.dispatchEvent("complete"), a.dispatchEvent("error")) + } + + g.abort = function () { + this.ca && this.oc + && (this.oc = !1, this.Ic = !0, this.ca.abort(), this.Ic = !1, this.dispatchEvent( + "complete"), this.dispatchEvent("abort"), Jw(this)) + }; + g.nd = function () { + this.ca && (this.oc && (this.oc = !1, this.Ic = !0, this.ca.abort(), this.Ic = !1), Jw(this, + !0)); + zw.Zd.nd.call(this) + }; + g.Ye = function () { + this.od || (this.se || this.Sd || this.Ic ? Kw(this) : this.If()) + }; + g.If = function () { + Kw(this) + }; + + function Kw(a) { + if (a.oc && "undefined" != typeof aa && (!a.be[1] || 4 != Lw(a) || 2 != Mw(a))) { + if (a.Sd && 4 + == Lw(a)) { + sw(a.Ye, 0, a); + } else if (a.dispatchEvent("readystatechange"), 4 == Lw(a)) { + a.oc = !1; + try { + var b = Mw(a); + a:switch (b) { + case 200: + case 201: + case 202: + case 204: + case 206: + case 304: + case 1223: + var c = !0; + break a; + default: + c = !1 + } + var d; + if (!(d = c)) { + var e; + if (e = 0 === b) { + var f = String(a.ue).match(Pa)[1] || null; + if (!f && ba.self && ba.self.location) { + var h = ba.self.location.protocol; + f = h.substr(0, h.length - 1) + } + e = !Bw.test(f ? f.toLowerCase() : "") + } + d = e + } + d ? (a.dispatchEvent("complete"), + a.dispatchEvent("success")) : Iw(a) + } finally { + Jw(a) + } + } + } + } + + g.Xe = function (a, b) { + this.dispatchEvent(Nw(a, "progress")); + this.dispatchEvent(Nw(a, b ? "downloadprogress" : "uploadprogress")) + }; + + function Nw(a, b) { + return {type: b, lengthComputable: a.lengthComputable, loaded: a.loaded, total: a.total} + } + + function Jw(a, b) { + if (a.ca) { + Gw(a); + var c = a.ca, d = a.be[0] ? ea : null; + a.ca = null; + a.be = null; + b || a.dispatchEvent("ready"); + try { + c.onreadystatechange = d + } catch (e) { + } + } + } + + function Gw(a) { + a.ca && a.Be && (a.ca.ontimeout = null); + "number" == typeof a.$d && (ba.clearTimeout(a.$d), a.$d = null) + } + + function Lw(a) { + return a.ca ? a.ca.readyState : 0 + } + + function Mw(a) { + try { + return 2 < Lw(a) ? a.ca.status : -1 + } catch (b) { + return -1 + } + } + + g.getResponseHeader = function (a) { + if (this.ca && 4 == Lw(this)) { + return a = this.ca.getResponseHeader(a), null === a ? void 0 : a + } + }; + g.getAllResponseHeaders = function () { + return this.ca && 4 == Lw(this) ? this.ca.getAllResponseHeaders() : "" + }; + var Ow, Pw, Qw, Rw = function Rw(a, b) { + if (null != a && null != a.oe) { + return a.oe(0, b); + } + var d = Rw[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Rw._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("ReadPort.take!", a); + }, Sw = function Sw(a, b, c) { + if (null != a && null != a.Od) { + return a.Od(0, b, c); + } + var e = Sw[n(null == a ? null : a)]; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + e = Sw._; + if (null != e) { + return e.l ? e.l(a, b, c) : e.call(null, a, b, c); + } + throw Cb("WritePort.put!", a); + }, Tw = function Tw(a) { + if (null != a && null != + a.ld) { + return a.ld(); + } + var c = Tw[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Tw._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Channel.close!", a); + }, Uw = function Uw(a) { + if (null != a && null != a.vb) { + return a.vb(a); + } + var c = Uw[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = Uw._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Handler.active?", a); + }, Vw = function Vw(a) { + if (null != a && null != a.tb) { + return a.tb(a); + } + var c = Vw[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, + a); + } + c = Vw._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Handler.commit", a); + }, Ww = function Ww(a, b) { + if (null != a && null != a.Md) { + return a.Md(a, b); + } + var d = Ww[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Ww._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("Buffer.add!*", a); + }, Xw = function Xw(a) { + switch (arguments.length) { + case 1: + return Xw.h(arguments[0]); + case 2: + return Xw.c(arguments[0], arguments[1]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + Xw.h = function (a) { + return a + }; + Xw.c = function (a, b) { + return Ww(a, b) + }; + Xw.L = 2; + + function Yw(a, b, c, d, e) { + for (var f = 0; ;) { + if (f < e) { + c[d + f] = a[b + f], f += 1; + } else { + break + } + } + } + + function Zw(a, b, c, d) { + this.head = a; + this.fa = b; + this.length = c; + this.o = d + } + + Zw.prototype.pop = function () { + if (0 === this.length) { + return null; + } + var a = this.o[this.fa]; + this.o[this.fa] = null; + this.fa = (this.fa + 1) % this.o.length; + --this.length; + return a + }; + Zw.prototype.unshift = function (a) { + this.o[this.head] = a; + this.head = (this.head + 1) % this.o.length; + this.length += 1; + return null + }; + + function $w(a, b) { + a.length + 1 === a.o.length && a.resize(); + a.unshift(b) + } + + Zw.prototype.resize = function () { + var a = Array(2 * this.o.length); + return this.fa < this.head ? (Yw(this.o, this.fa, a, 0, + this.length), this.fa = 0, this.head = this.length, this.o = a) : this.fa > this.head ? (Yw( + this.o, this.fa, a, 0, this.o.length - this.fa), Yw(this.o, 0, a, this.o.length - this.fa, + this.head), this.fa = 0, this.head = this.length, this.o = a) : this.fa === this.head + ? (this.head = this.fa = 0, this.o = a) : null + }; + + function ax(a, b) { + for (var c = a.length, d = 0; ;) { + if (d < c) { + var e = a.pop(); + (b.h ? b.h(e) : b.call(null, e)) && a.unshift(e); + d += 1 + } else { + break + } + } + } + + function bx(a) { + return new Zw(0, 0, 0, Array(a)) + } + + function cx(a, b) { + this.aa = a; + this.n = b; + this.m = 2; + this.J = 0 + } + + g = cx.prototype; + g.Nd = function () { + return this.aa.length === this.n + }; + g.Sc = function () { + return this.aa.pop() + }; + g.Md = function (a, b) { + $w(this.aa, b); + return this + }; + g.ne = function () { + return null + }; + g.W = function () { + return this.aa.length + }; + + function dx(a, b) { + this.aa = a; + this.n = b; + this.m = 2; + this.J = 0 + } + + g = dx.prototype; + g.Nd = function () { + return !1 + }; + g.Sc = function () { + return this.aa.pop() + }; + g.Md = function (a, b) { + this.aa.length !== this.n && this.aa.unshift(b); + return this + }; + g.ne = function () { + return null + }; + g.W = function () { + return this.aa.length + }; + if ("undefined" === typeof ex) { + var ex = {}; + } + + function fx(a) { + this.H = a; + this.m = 2; + this.J = 0 + } + + g = fx.prototype; + g.Nd = function () { + return !1 + }; + g.Sc = function () { + return this.H + }; + g.Md = function (a, b) { + t(ex === this.H) && (this.H = b); + return this + }; + g.ne = function () { + return t(ex === this.H) ? this.H = null : null + }; + g.W = function () { + return t(ex === this.H) ? 0 : 1 + }; + var gx = bx(32), hx = !1, ix = !1; + + function jx() { + hx = !0; + ix = !1; + for (var a = 0; ;) { + var b = gx.pop(); + if (null != b && (b.B ? b.B() : b.call(null), 1024 > a)) { + a += 1; + continue + } + break + } + hx = !1; + return 0 < gx.length ? kx.B ? kx.B() : kx.call(null) : null + } + + function kx() { + if (ix && hx) { + return null; + } + ix = !0; + !ha(ba.setImmediate) || ba.Window && ba.Window.prototype && !tv("Edge") + && ba.Window.prototype.setImmediate == ba.setImmediate ? (uv || (uv = vv()), uv(jx)) + : ba.setImmediate(jx) + } + + function lx(a) { + $w(gx, a); + kx() + } + + function mx(a, b) { + setTimeout(a, b) + };var nx; + + function ox(a) { + "undefined" === typeof nx && (nx = function (a, c) { + this.H = a; + this.Af = c; + this.m = 425984; + this.J = 0 + }, nx.prototype.T = function (a, c) { + return new nx(this.H, c) + }, nx.prototype.P = function () { + return this.Af + }, nx.prototype.pc = function () { + return this.H + }, nx.Wc = function () { + return new R(null, 2, 5, T, [Km, qo], null) + }, nx.qc = !0, nx.Tb = "cljs.core.async.impl.channels/t_cljs$core$async$impl$channels36582", nx.Ec = function (a, + c) { + return Jc(c, "cljs.core.async.impl.channels/t_cljs$core$async$impl$channels36582") + }); + return new nx(a, Ef) + } + + function px(a, b) { + this.Ub = a; + this.H = b + } + + function qx(a) { + return Uw(a.Ub) + } + + function rx(a, b, c, d, e, f, h) { + this.bd = a; + this.Qd = b; + this.jc = c; + this.Pd = d; + this.aa = e; + this.closed = f; + this.Ab = h + } + + function sx(a) { + for (; ;) { + var b = a.jc.pop(); + if (null != b) { + var c = b.Ub, d = b.H; + if (c.vb(null)) { + var e = c.tb(null); + lx(function (a) { + return function () { + return a.h ? a.h(!0) : a.call(null, !0) + } + }(e, c, d, b, a)) + } else { + continue + } + } + break + } + ax(a.jc, Zf(!1)); + a.ld() + } + + rx.prototype.Od = function (a, b, c) { + var d = this, e = this, f = d.closed; + if (f || !c.vb(null)) { + return ox(!f); + } + if (t(function () { + var a = d.aa; + return t(a) ? wb(d.aa.Nd(null)) : a + }())) { + c.tb(null); + var h = Hd(d.Ab.c ? d.Ab.c(d.aa, b) : d.Ab.call(null, d.aa, b)); + c = function () { + for (var a = he; ;) { + if (0 < d.bd.length && 0 < H(d.aa)) { + var b = d.bd.pop(); + if (b.vb(null)) { + var c = b.tb(null), k = d.aa.Sc(null); + a = ge.c(a, function (a, b, c) { + return function () { + return b.h ? b.h(c) : b.call(null, c) + } + }(a, c, k, b, h, f, e)) + } + } else { + return a + } + } + }(); + h && sx(e); + if (E(c)) { + c = E(c); + a = null; + for (var k = 0, + l = 0; ;) { + if (l < k) { + var p = a.$(null, l); + lx(p); + l += 1 + } else if (c = E(c)) { + a = c, Ae(a) ? (c = Wc(a), l = Xc(a), a = c, k = H(c), c = l) : (c = y( + a), lx(c), c = z(a), a = null, k = 0), l = 0; + } else { + break + } + } + } + return ox(!0) + } + a = function () { + for (; ;) { + var a = d.bd.pop(); + if (t(a)) { + if (t(a.vb(null))) { + return a + } + } else { + return null + } + } + }(); + if (t(a)) { + return k = Vw(a), c.tb(null), lx(function (a) { + return function () { + return a.h ? a.h(b) : a.call(null, b) + } + }(k, a, f, e)), ox(!0); + } + 64 < d.Pd ? (d.Pd = 0, ax(d.jc, qx)) : d.Pd += 1; + t(c.md(null)) && $w(d.jc, new px(c, b)); + return null + }; + rx.prototype.oe = function (a, b) { + var c = this; + if (b.vb(null)) { + if (null != c.aa && 0 < H(c.aa)) { + var d = b.tb(null); + if (t(d)) { + var e = c.aa.Sc(null), f = 0 < c.jc.length ? function () { + for (var a = he; ;) { + var b = c.jc.pop(), d = b.Ub; + b = b.H; + var e = d.vb(null); + d = e ? d.tb(null) : e; + a = t(d) ? ge.c(a, d) : a; + b = t(d) ? Hd(c.Ab.c ? c.Ab.c(c.aa, b) : c.Ab.call(null, c.aa, b)) : null; + if (!(wb(b) && wb(c.aa.Nd(null)) && 0 < c.jc.length)) { + return new R(null, 2, 5, T, + [b, a], null) + } + } + }() : null, h = J(f, 0, null), k = J(f, 1, null); + t(h) && sx(this); + for (var l = E(k), p = null, m = 0, u = 0; ;) { + if (u < m) { + var w = p.$(null, + u); + lx(function (a, b, c, d, e) { + return function () { + return e.h ? e.h(!0) : e.call(null, !0) + } + }(l, p, m, u, w, e, f, h, k, d, d, this)); + u += 1 + } else { + var x = E(l); + if (x) { + w = x; + if (Ae(w)) { + l = Wc(w), u = Xc(w), p = l, m = H(l), l = u; + } else { + var C = y(w); + lx(function (a, b, c, d, e) { + return function () { + return e.h ? e.h(!0) : e.call(null, !0) + } + }(l, p, m, u, C, w, x, e, f, h, k, d, d, this)); + l = z(w); + p = null; + m = 0 + } + u = 0 + } else { + break + } + } + } + return ox(e) + } + return null + } + d = function () { + for (; ;) { + var a = c.jc.pop(); + if (t(a)) { + if (Uw(a.Ub)) { + return a + } + } else { + return null + } + } + }(); + if (t(d)) { + return e = Vw(d.Ub), b.tb(null), lx(function (a) { + return function () { + return a.h ? + a.h(!0) : a.call(null, !0) + } + }(e, d, this)), ox(d.H); + } + if (t(c.closed)) { + return t(c.aa) && (c.Ab.h ? c.Ab.h(c.aa) : c.Ab.call(null, c.aa)), t( + function () { + var a = b.vb(null); + return t(a) ? b.tb(null) : a + }()) ? (d = function () { + var a = c.aa; + return t(a) ? 0 < H(c.aa) : a + }(), e = t(d) ? c.aa.Sc(null) : null, ox(e)) : null; + } + 64 < c.Qd ? (c.Qd = 0, ax(c.bd, Uw)) : c.Qd += 1; + t(b.md(null)) && $w(c.bd, b) + } + return null + }; + rx.prototype.ld = function () { + var a = this; + if (!a.closed) { + a.closed = !0; + for (t(function () { + var b = a.aa; + return t(b) ? 0 === a.jc.length : b + }()) && (a.Ab.h ? a.Ab.h(a.aa) : a.Ab.call(null, a.aa)); ;) { + var b = a.bd.pop(); + if (null != b) { + if (b.vb(null)) { + var c = b.tb(null), d = t(function () { + var b = a.aa; + return t(b) ? 0 < H(a.aa) : b + }()) ? a.aa.Sc(null) : null; + lx(function (a, b) { + return function () { + return a.h ? a.h(b) : a.call(null, b) + } + }(c, d, b, this)) + } + } else { + break + } + } + t(a.aa) && a.aa.ne(null) + } + return null + }; + + function tx(a) { + console.log(a); + return null + } + + function ux(a, b) { + var c = t(null) ? null : tx; + c = c.h ? c.h(b) : c.call(null, b); + return null == c ? a : Xw.c(a, c) + } + + function vx(a, b) { + return new rx(bx(32), 0, bx(32), 0, a, !1, function () { + return function (a) { + return function () { + function b(b, c) { + try { + return a.c ? a.c(b, c) : a.call(null, b, c) + } catch (l) { + return ux(b, l) + } + } + + function c(b) { + try { + return a.h ? a.h(b) : a.call(null, b) + } catch (k) { + return ux(b, k) + } + } + + var f = null; + f = function (a, d) { + switch (arguments.length) { + case 1: + return c.call(this, a); + case 2: + return b.call(this, a, d) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + f.h = c; + f.c = b; + return f + }() + }(t(b) ? b.h ? b.h(Xw) : b.call(null, Xw) : Xw) + }()) + };var wx; + + function xx(a) { + "undefined" === typeof wx && (wx = function (a, c) { + this.Cb = a; + this.Cf = c; + this.m = 393216; + this.J = 0 + }, wx.prototype.T = function (a, c) { + return new wx(this.Cb, c) + }, wx.prototype.P = function () { + return this.Cf + }, wx.prototype.vb = function () { + return !0 + }, wx.prototype.md = function () { + return !0 + }, wx.prototype.tb = function () { + return this.Cb + }, wx.Wc = function () { + return new R(null, 2, 5, T, [to, Um], null) + }, wx.qc = !0, wx.Tb = "cljs.core.async.impl.ioc-helpers/t_cljs$core$async$impl$ioc_helpers42956", wx.Ec = function (a, + c) { + return Jc(c, "cljs.core.async.impl.ioc-helpers/t_cljs$core$async$impl$ioc_helpers42956") + }); + return new wx(a, Ef) + } + + function yx(a) { + try { + var b = a[0]; + return b.h ? b.h(a) : b.call(null, a) + } catch (c) { + if (c instanceof Object) { + throw b = c, a[6].ld(), b; + } + throw c; + } + } + + function zx(a, b, c) { + c = c.oe(0, xx(function (c) { + a[2] = c; + a[1] = b; + return yx(a) + })); + return t(c) ? (a[2] = B(c), a[1] = b, Z) : null + } + + function Ax(a, b, c, d) { + c = c.Od(0, d, xx(function (c) { + a[2] = c; + a[1] = b; + return yx(a) + })); + return t(c) ? (a[2] = B(c), a[1] = b, Z) : null + } + + function Bx(a, b) { + var c = a[6]; + null != b && c.Od(0, b, xx(function () { + return function () { + return null + } + }(c))); + c.ld(); + return c + } + + function Cx(a) { + for (; ;) { + var b = a[4], c = ul.h(b), d = Pm.h(b), e = a[5]; + if (t(function () { + var a = e; + return t(a) ? wb(b) : a + }())) { + throw e; + } + if (t(function () { + var a = e; + return t(a) ? (a = c, t(a) ? G.c(Ik, d) || e instanceof d : a) : a + }())) { + a[1] = c; + a[2] = e; + a[5] = null; + a[4] = K.A(b, ul, null, be([Pm, null])); + break + } + if (t(function () { + var a = e; + return t(a) ? wb(c) && wb(Lk.h(b)) : a + }())) { + a[4] = Xm.h(b); + } else { + if (t(function () { + var a = e; + return t(a) ? (a = wb(c)) ? Lk.h(b) : a : a + }())) { + a[1] = Lk.h(b); + a[4] = K.l(b, Lk, null); + break + } + if (t(function () { + var a = wb(e); + return a ? Lk.h(b) : a + }())) { + a[1] = + Lk.h(b); + a[4] = K.l(b, Lk, null); + break + } + if (wb(e) && wb(Lk.h(b))) { + a[1] = cn.h(b); + a[4] = Xm.h(b); + break + } + throw Error("No matching clause"); + } + } + }; + + function Dx(a, b, c) { + this.key = a; + this.H = b; + this.forward = c; + this.m = 2155872256; + this.J = 0 + } + + Dx.prototype.S = function () { + var a = this.key; + return Tb(Tb(wd, this.H), a) + }; + Dx.prototype.R = function (a, b, c) { + return Y(b, Qi, "[", " ", "]", c, this) + }; + + function Ex(a, b, c) { + c = Array(c + 1); + for (var d = 0; ;) { + if (d < c.length) { + c[d] = null, d += 1; + } else { + break; + } + } + return new Dx(a, b, c) + } + + function Fx(a, b, c, d) { + for (; ;) { + if (0 > c) { + return a; + } + a:for (; ;) { + var e = c < a.forward.length ? a.forward[c] : null; + if (t(e)) { + if (e.key < b) { + a = e; + } else { + break a; + } + } else { + break a + } + } + null != d && (d[c] = a); + --c + } + } + + function Gx(a, b) { + this.header = a; + this.level = b; + this.m = 2155872256; + this.J = 0 + } + + Gx.prototype.put = function (a, b) { + var c = Array(15), d = Fx(this.header, a, this.level, c).forward[0]; + if (null != d && d.key === a) { + return d.H = b; + } + a:for (d = 0; ;) { + if (.5 > Math.random() && 15 > d) { + d += 1; + } else { + break a; + } + } + if (d > this.level) { + for (var e = this.level + 1; ;) { + if (e <= d + 1) { + c[e] = this.header, e += 1; + } else { + break; + } + } + this.level = d + } + for (d = Ex(a, b, Array(d)); ;) { + return 0 <= this.level + ? (c = c[0].forward, d.forward[0] = c[0], c[0] = d) : null + } + }; + Gx.prototype.remove = function (a) { + var b = Array(15), c = Fx(this.header, a, this.level, b); + c = 0 === c.forward.length ? null : c.forward[0]; + if (null != c && c.key === a) { + for (a = 0; ;) { + if (a <= this.level) { + var d = b[a].forward; + c === (a < d.length ? d[a] : null) && (d[a] = c.forward[a]); + a += 1 + } else { + break; + } + } + for (; ;) { + if (0 < this.level && this.level < this.header.forward.length && null + == this.header.forward[this.level]) { + --this.level; + } else { + return null + } + } + } else { + return null + } + }; + + function Hx(a) { + for (var b = Ix, c = b.header, d = b.level; ;) { + if (0 > d) { + return c === b.header ? null : c; + } + var e; + a:for (e = c; ;) { + e = d < e.forward.length ? e.forward[d] : null; + if (null == e) { + e = null; + break a + } + if (e.key >= a) { + break a + } + } + null != e ? (--d, c = e) : --d + } + } + + Gx.prototype.S = function () { + return function (a) { + return function d(c) { + return new kf(null, function () { + return function () { + return null == c ? null : ae(new R(null, 2, 5, T, [c.key, c.H], null), d(c.forward[0])) + } + }(a), null, null) + } + }(this)(this.header.forward[0]) + }; + Gx.prototype.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "{", ", ", "}", c, this) + }; + var Ix = new Gx(Ex(null, null, 0), 0); + + function Jx(a) { + var b = (new Date).valueOf() + a, c = Hx(b), d = t(t(c) ? c.key < b + 10 : c) ? c.H : null; + if (t(d)) { + return d; + } + var e = vx(null, null); + Ix.put(b, e); + mx(function (a, b, c) { + return function () { + Ix.remove(c); + return Tw(a) + } + }(e, d, b, c), a); + return e + }; + + function Kx(a) { + return Lx(a, null) + } + + function Mx(a, b) { + return Lx(a, b) + } + + function Lx(a, b) { + var c = G.c(a, 0) ? null : a; + return vx("number" === typeof c ? new cx(bx(c), c) : c, b) + } + + var Nx = function (a) { + "undefined" === typeof Ow && (Ow = function (a, c, d) { + this.Cb = a; + this.Je = c; + this.Df = d; + this.m = 393216; + this.J = 0 + }, Ow.prototype.T = function (a, c) { + return new Ow(this.Cb, this.Je, c) + }, Ow.prototype.P = function () { + return this.Df + }, Ow.prototype.vb = function () { + return !0 + }, Ow.prototype.md = function () { + return this.Je + }, Ow.prototype.tb = function () { + return this.Cb + }, Ow.Wc = function () { + return new R(null, 3, 5, T, [to, jk, gk], null) + }, Ow.qc = !0, Ow.Tb = "cljs.core.async/t_cljs$core$async43104", Ow.Ec = function (a, c) { + return Jc(c, "cljs.core.async/t_cljs$core$async43104") + }); + return new Ow(a, !0, Ef) + }(function () { + return null + }); + + function Ox(a, b) { + var c = Sw(a, b, Nx); + return t(c) ? B(c) : !0 + } + + function Px(a) { + for (var b = Array(a), c = 0; ;) { + if (c < a) { + b[c] = 0, c += 1; + } else { + break; + } + } + for (c = 1; ;) { + if (G.c(c, a)) { + return b; + } + var d = Math.floor(Math.random() * c); + b[c] = b[d]; + b[d] = c; + c += 1 + } + } + + function Qx() { + var a = dg.h(!0); + "undefined" === typeof Pw && (Pw = function (a, c) { + this.Hc = a; + this.Ef = c; + this.m = 393216; + this.J = 0 + }, Pw.prototype.T = function () { + return function (a, c) { + return new Pw(this.Hc, c) + } + }(a), Pw.prototype.P = function () { + return function () { + return this.Ef + } + }(a), Pw.prototype.vb = function () { + return function () { + return B(this.Hc) + } + }(a), Pw.prototype.md = function () { + return function () { + return !0 + } + }(a), Pw.prototype.tb = function () { + return function () { + fg(this.Hc, null); + return !0 + } + }(a), Pw.Wc = function () { + return function () { + return new R(null, + 2, 5, T, [em, ek], null) + } + }(a), Pw.qc = !0, Pw.Tb = "cljs.core.async/t_cljs$core$async43126", Pw.Ec = function () { + return function (a, c) { + return Jc(c, "cljs.core.async/t_cljs$core$async43126") + } + }(a)); + return new Pw(a, Ef) + } + + function Rx(a, b) { + "undefined" === typeof Qw && (Qw = function (a, b, e) { + this.Hc = a; + this.ed = b; + this.Ff = e; + this.m = 393216; + this.J = 0 + }, Qw.prototype.T = function (a, b) { + return new Qw(this.Hc, this.ed, b) + }, Qw.prototype.P = function () { + return this.Ff + }, Qw.prototype.vb = function () { + return Uw(this.Hc) + }, Qw.prototype.md = function () { + return !0 + }, Qw.prototype.tb = function () { + Vw(this.Hc); + return this.ed + }, Qw.Wc = function () { + return new R(null, 3, 5, T, [em, Mk, hl], null) + }, Qw.qc = !0, Qw.Tb = "cljs.core.async/t_cljs$core$async43129", Qw.Ec = function (a, b) { + return Jc(b, + "cljs.core.async/t_cljs$core$async43129") + }); + return new Qw(a, b, Ef) + } + + function Sx(a, b, c) { + var d = Qx(), e = H(b), f = Px(e), h = Im.h(c), k = function () { + for (var c = 0; ;) { + if (c < e) { + var k = t(h) ? c : f[c], m = Vd(b, k), u = ze(m) ? m.h ? m.h(0) : m.call(null, 0) : null, + w = t(u) ? function () { + var b = m.h ? m.h(1) : m.call(null, 1); + return Sw(u, b, Rx(d, function (b, c, d, e, f) { + return function (b) { + b = new R(null, 2, 5, T, [b, f], null); + return a.h ? a.h(b) : a.call(null, b) + } + }(c, b, k, m, u, d, e, f, h))) + }() : Rw(m, Rx(d, function (b, c, d) { + return function (b) { + b = new R(null, 2, 5, T, [b, d], null); + return a.h ? a.h(b) : a.call(null, b) + } + }(c, k, m, u, d, e, f, h))); + if (t(w)) { + return ox(new R(null, + 2, 5, T, [B(w), function () { + var a = u; + return t(a) ? a : m + }()], null)); + } + c += 1 + } else { + return null + } + } + }(); + return t(k) ? k : He(c, Ik) && (k = function () { + var a = Uw(d); + return t(a) ? Vw(d) : a + }(), t(k)) ? ox(new R(null, 2, 5, T, [Ik.h(c), Ik], null)) : null + } + + function Tx(a, b) { + var c = Kx(1); + lx(function (c) { + return function () { + var d = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (x) { + if (x instanceof Object) { + b[5] = x, Cx(b), d = Z; + } else { + throw x; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + (arguments.length - + 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function () { + return function (c) { + var d = c[1]; + return 7 === d ? (c[2] = c[2], c[1] = 3, Z) : 1 === d ? (c[2] = null, c[1] = 2, Z) : 4 + === d ? (d = c[2], c[7] = d, c[1] = t(null == d) ? 5 : 6, Z) : 13 === d + ? (c[2] = null, c[1] = 14, Z) : 6 === d ? (d = c[7], Ax(c, 11, b, d)) : 3 === d + ? Bx(c, c[2]) : 12 === d ? (c[2] = null, c[1] = 2, Z) : 2 === d ? zx(c, 4, a) : 11 + === d ? (c[1] = t(c[2]) ? 12 : 13, Z) : 9 === d ? (c[2] = null, c[1] = 10, Z) : 5 + === d ? (c[1] = t(!0) ? 8 : 9, Z) : 14 === d || 10 === d + ? (c[2] = c[2], c[1] = 7, Z) : 8 === d ? (d = Tw(b), c[2] = d, c[1] = 10, Z) + : null + } + }(c), c) + }(), f = function () { + var a = d.B ? d.B() : d.call(null); + a[6] = c; + return a + }(); + return yx(f) + } + }(c)) + } + + function Ux(a) { + for (var b = [], c = arguments.length, d = 0; ;) { + if (d < c) { + b.push( + arguments[d]), d += 1; + } else { + break; + } + } + return Vx(arguments[0], arguments[1], arguments[2], + 3 < b.length ? new Jb(b.slice(3), 0, null) : null) + } + + function Vx(a, b, c, d) { + var e = null != d && (d.m & 64 || q === d.G) ? P(U, d) : d; + a[1] = b; + b = Sx(function () { + return function (b) { + a[2] = b; + return yx(a) + } + }(d, e, e), c, e); + return t(b) ? (a[2] = B(b), Z) : null + }; + + function Wx() { + } + + var Xx = function Xx(a, b) { + if (null != a && null != a.qb) { + return a.qb(a, b); + } + var d = Xx[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Xx._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("Update.update-player", a); + }; + + function Yx() { + } + + var Zx = function Zx(a, b) { + if (null != a && null != a.de) { + return a.de(a, b); + } + var d = Zx[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = Zx._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("ChannelSource.get-channels", a); + }; + + function $x(a, b, c) { + this.v = a; + this.j = b; + this.w = c; + this.m = 2229667594; + this.J = 139264 + } + + g = $x.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return D.l(this.j, b, c) + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.FastForward{", ", ", "}", c, O.c(he, this.j)) + }; + g.ba = function () { + return new fh(0, this, 0, he, t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 0 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1082393681 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(vi, b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new $x(this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return new $x(this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(he, this.j)) + }; + g.T = function (a, b) { + return new $x(b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function ay(a, b, c) { + this.v = a; + this.j = b; + this.w = c; + this.m = 2229667594; + this.J = 139264 + } + + g = ay.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return D.l(this.j, b, c) + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.Rewind{", ", ", "}", c, O.c(he, this.j)) + }; + g.ba = function () { + return new fh(0, this, 0, he, t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 0 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1020675721 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(vi, b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new ay(this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return new ay(this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(he, this.j)) + }; + g.T = function (a, b) { + return new ay(b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function by(a, b, c, d) { + this.position = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = by.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "position": + return this.position; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.Seek{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [nn, this.position], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [nn], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -2136325183 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.position, b.position) && G.c( + this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [nn, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new by(this.position, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(nn, b) : N.call(null, nn, b)) ? new by(c, this.v, this.j, null) : new by( + this.position, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E( + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [nn, this.position], null)], null), this.j)) + }; + g.T = function (a, b) { + return new by(this.position, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function cy(a) { + return new by(a, null, null, null) + } + + function dy(a, b, c) { + this.v = a; + this.j = b; + this.w = c; + this.m = 2229667594; + this.J = 139264 + } + + g = dy.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return D.l(this.j, b, c) + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.SpeedDown{", ", ", "}", c, O.c(he, this.j)) + }; + g.ba = function () { + return new fh(0, this, 0, he, t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 0 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1945704126 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(vi, b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new dy(this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return new dy(this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(he, this.j)) + }; + g.T = function (a, b) { + return new dy(b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function ey(a, b, c) { + this.v = a; + this.j = b; + this.w = c; + this.m = 2229667594; + this.J = 139264 + } + + g = ey.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return D.l(this.j, b, c) + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.SpeedUp{", ", ", "}", c, O.c(he, this.j)) + }; + g.ba = function () { + return new fh(0, this, 0, he, t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 0 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 2001377313 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(vi, b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new ey(this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return new ey(this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(he, this.j)) + }; + g.T = function (a, b) { + return new ey(b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function fy(a, b, c) { + this.v = a; + this.j = b; + this.w = c; + this.m = 2229667594; + this.J = 139264 + } + + g = fy.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return D.l(this.j, b, c) + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.TogglePlay{", ", ", "}", c, O.c(he, this.j)) + }; + g.ba = function () { + return new fh(0, this, 0, he, t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 0 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1662385780 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(vi, b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new fy(this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return new fy(this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(he, this.j)) + }; + g.T = function (a, b) { + return new fy(b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function gy(a, b, c, d) { + this.show = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = gy.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "show": + return this.show; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.ShowCursor{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [so, this.show], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [so], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1380979759 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.show, b.show) && G.c(this.j, + b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [so, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new gy(this.show, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(so, b) : N.call(null, so, b)) ? new gy(c, this.v, this.j, null) : new gy( + this.show, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [so, this.show], null)], null), this.j)) + }; + g.T = function (a, b) { + return new gy(this.show, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function hy(a, b, c, d) { + this.show = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = hy.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "show": + return this.show; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.ShowHud{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [so, this.show], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [so], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1875838466 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.show, b.show) && G.c(this.j, + b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [so, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new hy(this.show, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(so, b) : N.call(null, so, b)) ? new hy(c, this.v, this.j, null) : new hy( + this.show, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [so, this.show], null)], null), this.j)) + }; + g.T = function (a, b) { + return new hy(this.show, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function iy(a) { + return new hy(a, null, null, null) + } + + function jy(a, b, c, d, e, f) { + this.width = a; + this.height = b; + this.duration = c; + this.v = d; + this.j = e; + this.w = f; + this.m = 2229667594; + this.J = 139264 + } + + g = jy.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "width": + return this.width; + case "height": + return this.height; + case "duration": + return this.duration; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.SetMetadata{", ", ", "}", c, O.c(new R(null, 3, 5, T, + [new R(null, 2, 5, T, [fl, this.width], null), new R(null, 2, 5, T, [no, this.height], null), + new R(null, 2, 5, T, [wl, this.duration], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 3, new R(null, 3, 5, T, [fl, no, wl], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 3 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 2110730596 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.width, b.width) && G.c( + this.height, b.height) && G.c(this.duration, b.duration) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 3, [fl, null, wl, null, no, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new jy(this.width, this.height, this.duration, this.v, + Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(fl, b) : N.call(null, fl, b)) ? new jy(c, this.height, this.duration, this.v, + this.j, null) : t(N.c ? N.c(no, b) : N.call(null, no, b)) ? new jy(this.width, c, + this.duration, this.v, this.j, null) : t(N.c ? N.c(wl, b) : N.call(null, wl, b)) ? new jy( + this.width, this.height, c, this.v, this.j, null) : new jy(this.width, this.height, + this.duration, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 3, 5, T, + [new R(null, 2, 5, T, [fl, this.width], null), new R(null, 2, 5, T, [no, this.height], null), + new R(null, 2, 5, T, [wl, this.duration], null)], null), this.j)) + }; + g.T = function (a, b) { + return new jy(this.width, this.height, this.duration, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function ky(a, b, c, d) { + this.tc = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = ky.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "loading": + return this.tc; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.SetLoading{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Hm, this.tc], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [Hm], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1609009220 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.tc, b.tc) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [Hm, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new ky(this.tc, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Hm, b) : N.call(null, Hm, b)) ? new ky(c, this.v, this.j, null) : new ky( + this.tc, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Hm, this.tc], null)], null), this.j)) + }; + g.T = function (a, b) { + return new ky(this.tc, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function ly(a) { + return new ky(a, null, null, null) + } + + function my(a, b, c, d) { + this.uc = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = my.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "playing": + return this.uc; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.SetPlaying{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [jn, this.uc], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [jn], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -2119286176 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.uc, b.uc) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [jn, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new my(this.uc, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(jn, b) : N.call(null, jn, b)) ? new my(c, this.v, this.j, null) : new my( + this.uc, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [jn, this.uc], null)], null), this.j)) + }; + g.T = function (a, b) { + return new my(this.uc, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function ny(a) { + return new my(a, null, null, null) + } + + function oy(a, b, c) { + this.v = a; + this.j = b; + this.w = c; + this.m = 2229667594; + this.J = 139264 + } + + g = oy.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + return D.l(this.j, b, c) + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.TriggerCanPlay{", ", ", "}", c, O.c(he, this.j)) + }; + g.ba = function () { + return new fh(0, this, 0, he, t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 0 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1080034109 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(vi, b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new oy(this.v, Bf(le.c(this.j, b)), + null) + }; + g.O = function (a, b, c) { + return new oy(this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(he, this.j)) + }; + g.T = function (a, b) { + return new oy(b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function py(a, b, c, d) { + this.screen = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = py.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "screen": + return this.screen; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.UpdateScreen{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [V, this.screen], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [V], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return -1861248332 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.screen, b.screen) && G.c( + this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [V, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new py(this.screen, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(V, b) : N.call(null, V, b)) ? new py(c, this.v, this.j, null) : new py( + this.screen, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E( + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [V, this.screen], null)], null), this.j)) + }; + g.T = function (a, b) { + return new py(this.screen, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function qy(a) { + return new py(a, null, null, null) + } + + function ry(a, b, c, d) { + this.time = a; + this.v = b; + this.j = c; + this.w = d; + this.m = 2229667594; + this.J = 139264 + } + + g = ry.prototype; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "time": + return this.time; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.messages.UpdateTime{", ", ", "}", c, + O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Zk, this.time], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 1, new R(null, 1, 5, T, [Zk], null), t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 1 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 463038319 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.time, b.time) && G.c(this.j, + b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 1, [Zk, null], null), null), b) ? le.c( + tc(wg.c(Ef, this), this.v), b) : new ry(this.time, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Zk, b) : N.call(null, Zk, b)) ? new ry(c, this.v, this.j, null) : new ry( + this.time, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 1, 5, T, [new R(null, 2, 5, T, [Zk, this.time], null)], null), this.j)) + }; + g.T = function (a, b) { + return new ry(this.time, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + + function sy(a) { + return new ry(a, null, null, null) + };var ty = function ty(a) { + if (null != a && null != a.Bd) { + return a.Bd(a); + } + var c = ty[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = ty._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Source.init", a); + }, uy = function uy(a) { + if (null != a && null != a.Ad) { + return a.Ad(a); + } + var c = uy[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = uy._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Source.close", a); + }, vy = function vy(a) { + if (null != a && null != a.ac) { + return a.ac(a); + } + var c = vy[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = vy._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Source.start", a); + }, wy = function wy(a) { + if (null != a && null != a.wc) { + return a.wc(a); + } + var c = wy[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = wy._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + throw Cb("Source.stop", a); + }, xy = function xy(a) { + if (null != a && null != a.Dd) { + return a.Dd(a); + } + var c = xy[n(null == a ? null : a)]; + if (null != c) { + return c.h ? c.h(a) : c.call(null, a); + } + c = xy._; + if (null != c) { + return c.h ? c.h(a) : c.call(null, + a); + } + throw Cb("Source.toggle", a); + }, yy = function yy(a, b) { + if (null != a && null != a.Cd) { + return a.Cd(a, b); + } + var d = yy[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = yy._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("Source.seek", a); + }, zy = function zy(a, b) { + if (null != a && null != a.zd) { + return a.zd(a, b); + } + var d = zy[n(null == a ? null : a)]; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + d = zy._; + if (null != d) { + return d.c ? d.c(a, b) : d.call(null, a, b); + } + throw Cb("Source.change-speed", a); + }; + if ("undefined" === typeof xj) { + var xj = function () { + var a = dg.h(Ef), b = dg.h(Ef), c = dg.h(Ef), d = dg.h(Ef), e = D.l(Ef, Qn, jj()); + return new uj(td.c("asciinema.player.source", "make-source"), function () { + return function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + c = D.c(c, rl); + return t(c) ? c : ok + } + }(a, b, c, d, e), Ik, e, a, b, c, d) + }(); + } + + function Ay() { + return ig.c(function (a) { + return function (b) { + b *= a; + return new R(null, 2, 5, T, [b, b], null) + } + }(1 / 3), Fi(0, Number.MAX_VALUE, 1)) + } + + function By(a) { + var b = Kx(null), c = Lx(new fx(ex), null), d = Kx(1); + lx(function (b, c, d) { + return function () { + var e = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (I) { + if (I instanceof Object) { + b[5] = I, Cx(b), d = Z; + } else { + throw I; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function (b, c, d) { + return function (e) { + var f = e[1]; + if (1 === f) { + return zx(e, 2, c); + } + if (2 === f) { + var h = e[2], k = function () { + return function (a, b, c, d, e) { + return function (a) { + return Ox(e, a) + } + }(h, f, b, c, d) + }(); + k = a.h ? a.h(k) : a.call(null, k); + e[7] = h; + return Bx(e, k) + } + return null + } + }(b, c, d), b, c, d) + }(), f = function () { + var a = e.B ? e.B() : e.call(null); + a[6] = b; + return a + }(); + return yx(f) + } + }(d, b, c)); + return function (a, b) { + return function (c) { + t(c) && Tw(a); + return b + } + }(b, c) + } + + function Cy(a, b, c, d) { + return By(function (e) { + if ("string" === typeof a) { + return Ew(a, function () { + return function (a) { + a = a.target; + try { + var f = a.ca ? a.ca.responseText : "" + } catch (l) { + f = "" + } + f = pv(f, b, c, d); + return e.h ? e.h(f) : e.call(null, f) + } + }(a)); + } + var f = pv(a, b, c, d); + return e.h ? e.h(f) : e.call(null, f) + }) + } + + function Dy(a) { + var b = Kx(null), c = Kx(1); + lx(function (b, c) { + return function () { + var d = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (C) { + if (C instanceof Object) { + b[5] = C, Cx(b), d = Z; + } else { + throw C; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, + a) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function (b, c) { + return function (b) { + var d = b[1]; + if (7 === d) { + return d = Jx(1E3 * b[7]), zx(b, 10, d); + } + if (1 === d) { + d = Ou(1); + var e = d.B ? d.B() : d.call(null), f = a; + b[8] = d; + b[9] = e; + b[10] = f; + b[2] = null; + b[1] = 2; + return Z + } + return 4 === d ? (e = b[11], d = b[9], f = J(e, 0, null), e = J(e, 1, null), d = f + - d, b[12] = e, b[7] = d, b[1] = t(0 < d) ? 7 : 8, Z) : 15 === d ? (b[1] = t(b[2]) + ? 16 : 17, Z) : 13 === d ? (b[2] = null, b[1] = 14, Z) : 6 === d + ? (b[2] = b[2], b[1] = 3, Z) : 17 === d ? (b[2] = null, b[1] = 18, Z) : 3 === d + ? Bx(b, b[2]) : 12 === + d ? (d = b[8], f = b[10], f = vd(f), d = d.B ? d.B() : d.call( + null), b[9] = d, b[10] = f, b[2] = null, b[1] = 2, Z) : 2 === d + ? (f = b[10], d = y(f), b[11] = d, b[1] = t(d) ? 4 : 5, Z) : 11 === d + ? (b[1] = t(b[2]) ? 12 : 13, Z) : 9 === d ? (b[2] = b[2], b[1] = 6, Z) : 5 + === d ? (d = Tw(c), b[2] = d, b[1] = 6, Z) : 14 === d + ? (b[2] = b[2], b[1] = 9, Z) : 16 === d ? (d = b[9], f = b[10], f = vd( + f), b[9] = d, b[10] = f, b[2] = null, b[1] = 2, Z) : 10 === d + ? (e = b[12], b[13] = b[2], Ax(b, 11, c, e)) : 18 === d + ? (b[2] = b[2], b[1] = 9, Z) : 8 === d ? (e = b[12], Ax(b, 15, c, e)) + : null + } + }(b, c), b, c) + }(), e = function () { + var a = d.B ? d.B() : d.call(null); + a[6] = b; + return a + }(); + return yx(e) + } + }(c, + b)); + return b + } + + function Ey(a, b, c, d, e, f) { + var h = Kx(1); + lx(function (h) { + return function () { + var k = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (M) { + if (M instanceof Object) { + b[5] = M, Cx(b), d = Z; + } else { + throw M; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function () { + return function (h) { + var k = h[1]; + if (7 === k) { + return h[2] = h[2], h[1] = 3, Z; + } + if (1 === k) { + k = Yu(c, d, b); + var l = Dy(k); + k = c; + var m = Ou(d); + h[7] = l; + h[8] = m; + h[9] = k; + h[2] = null; + h[1] = 2; + return Z + } + if (4 === k) { + return l = h[7], m = h[2], k = J(m, 0, null), m = J(m, 1, null), l = G.c( + l, m), h[11] = k, h[10] = m, h[1] = l ? 5 : 6, Z; + } + if (15 === k) { + return l = h[7], m = h[8], k = h[9], l = Tw(l), m = m.B ? m.B() + : m.call(null), h[12] = l, h[2] = k + m, h[1] = 17, Z; + } + if (13 === k) { + return h[2] = null, h[1] = 14, Z; + } + if (6 === k) { + return k = h[10], k = G.c(f, k), h[1] = k ? 15 : 16, + Z; + } + if (17 === k) { + return h[2] = h[2], h[1] = 7, Z; + } + if (3 === k) { + return Bx(h, h[2]); + } + if (12 === k) { + return k = Yu(0, d, b), k = Dy(k), l = Ou( + d), h[7] = k, h[8] = l, h[9] = 0, h[2] = null, h[1] = 2, Z; + } + if (2 === k) { + return l = h[7], Ux(h, 4, new R(null, 2, 5, T, [l, f], null)); + } + if (11 + === k) { + return l = h[7], m = h[8], k = h[9], h[13] = h[2], h[7] = l, h[8] = m, h[9] = k, h[2] = null, h[1] = 2, Z; + } + if (9 === k) { + return h[1] = t(e) ? 12 : 13, Z; + } + if (5 === k) { + return k = h[11], h[1] = t(k) ? 8 : 9, Z; + } + if (14 === k) { + return h[2] = h[2], h[1] = 10, Z; + } + if (16 === k) { + throw k = h[10], h = ["No matching clause: ", v.h(k)].join(""), Error( + h); + } + return 10 === k ? (h[2] = + h[2], h[1] = 7, Z) : 8 === k ? (k = h[11], Ax(h, 11, a, k)) : null + } + }(h), h) + }(), p = function () { + var a = k.B ? k.B() : k.call(null); + a[6] = h; + return a + }(); + return yx(p) + } + }(h)); + return h + } + + function Fy(a, b, c, d, e, f, h) { + var k = Kx(1); + lx(function (k) { + return function () { + var l = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (S) { + if (S instanceof Object) { + b[5] = S, Cx(b), d = Z; + } else { + throw S; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function () { + return function (k) { + var l = k[1]; + if (7 === l) { + return l = k[7], k[2] = l, k[1] = 9, Z; + } + if (1 === l) { + return Ax(k, 2, a, ny(!0)); + } + if (4 === l) { + l = k[2]; + var m = Su(qy, b), p = Ay(); + p = Su(sy, p); + m = Ey(a, Tu(m, p), d, e, f, h); + k[8] = l; + return zx(k, 5, m) + } + return 6 === l ? (l = ny(!1), k[9] = k[2], Ax(k, 10, a, l)) : 3 === l + ? (l = k[2], m = fe($u(d, b)), m = qy(m), k[10] = l, Ax(k, 4, a, m)) : 2 === l + ? (l = sy(d), k[11] = k[2], Ax(k, 3, a, l)) : 9 === l ? Ax(k, 6, a, sy(k[2])) : 5 + === l ? (l = k[2], k[7] = l, k[1] = t(l) ? 7 : 8, Z) : 10 === l + ? (l = k[7], k[12] = k[2], Bx(k, l)) : + 8 === l ? (k[2] = c, k[1] = 9, Z) : null + } + }(k), k) + }(), m = function () { + var a = l.B ? l.B() : l.call(null); + a[6] = k; + return a + }(); + return yx(m) + } + }(k)); + return k + } + + function Gy(a, b, c) { + var d = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, e = D.c(d, Hk), f = D.c(d, Ak), + h = D.c(d, dn), k = D.c(d, Jl), l = Kx(10), p = Kx(1); + lx(function (a, d, e, f, h, k, l, p) { + return function () { + var m = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (Ba) { + if (Ba instanceof Object) { + b[5] = Ba, Cx(b), d = Z; + } else { + throw Ba; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null, null, + null, null, null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function (a, d, e, f, h, k, l, m) { + return function (a) { + var e = a[1]; + if (65 === e) { + var f = a, p = f; + p[2] = a[2]; + p[1] = 62; + return Z + } + if (70 === e) { + var u = f = a; + u[2] = !1; + u[1] = 71; + return Z + } + if (62 === e) { + var w = a[2], x = f = a; + x[2] = w; + x[1] = 59; + return Z + } + if (74 === e) { + var C = a[7], F = a[8], I = a[2], M = D.c(I, Uk), S = D.c(I, + wl), Q = Nu(F, S), X = sy(Q); + a[7] = Q; + a[9] = M; + f = a; + return Ax(f, 75, b, X) + } + if (7 === e) { + var W = a[10], Ha = a[2], Ba = J(Ha, 0, null); + F = J(Ha, 1, null); + var Ga = G.c(gl, Ba); + a[8] = F; + a[10] = Ba; + f = a; + f[1] = Ga ? 8 : 9; + return Z + } + if (59 === e) { + var Oa = a[2], Ja = f = a; + Ja[2] = Oa; + Ja[1] = 51; + return Z + } + if (20 === e) { + var db = P(U, c), xb = f = a; + xb[2] = db; + xb[1] = 22; + return Z + } + if (72 === e) { + var az = P(U, c), ps = f = a; + ps[2] = az; + ps[1] = 74; + return Z + } + if (58 === e) { + W = a[10]; + var bz = G.c(Xj, W); + f = a; + f[1] = bz ? 60 : 61; + return Z + } + if (60 === e) { + var ac = a[11], bc = 0, Dc = ac, Eb = null, bb = null; + a[11] = Dc; + a[12] = bb; + a[13] = bc; + a[14] = + Eb; + var qs = f = a; + qs[2] = null; + qs[1] = 2; + return Z + } + if (27 === e) { + ac = a[11]; + bb = a[12]; + bc = a[13]; + Eb = a[14]; + var cz = bb, dz = Eb, Rd = bc; + Dc = ac; + var Sd = dz, Td = cz; + a[11] = Dc; + a[12] = Td; + a[13] = Rd; + a[14] = Sd; + var rs = f = a; + rs[2] = null; + rs[1] = 2; + return Z + } + if (1 === e) { + bc = h; + ac = k; + bb = Eb = null; + a[11] = ac; + a[12] = bb; + a[13] = bc; + a[14] = Eb; + var ss = f = a; + ss[2] = null; + ss[1] = 2; + return Z + } + if (69 === e) { + var ts = f = a; + ts[2] = !0; + ts[1] = 71; + return Z + } + if (24 === e) { + W = a[10]; + var ez = G.c(Nl, W); + f = a; + f[1] = ez ? 30 : 31; + return Z + } + if (55 === e) { + var fz = new R(null, 1, 5, T, [gl], null); + a[15] = a[2]; + f = a; + return Ax(f, 56, + d, fz) + } + if (39 === e) { + var gz = a[2], us = f = a; + us[2] = gz; + us[1] = 32; + return Z + } + if (46 === e) { + var vs = f = a; + vs[2] = null; + vs[1] = 47; + return Z + } + if (4 === e) { + Eb = a[14]; + var ws = a[2], Ci = J(ws, 0, null), hz = J(ws, 1, null), iz = G.c(hz, Eb); + a[16] = Ci; + f = a; + f[1] = iz ? 5 : 6; + return Z + } + if (54 === e) { + F = a[8]; + bb = a[12]; + bc = a[13]; + Eb = a[14]; + var jz = a[2], kz = bb, lz = Eb; + Rd = bc; + ac = F; + Sd = lz; + Td = kz; + a[11] = ac; + a[17] = jz; + a[12] = Td; + a[13] = Rd; + a[14] = Sd; + var xs = f = a; + xs[2] = null; + xs[1] = 2; + return Z + } + if (15 === e) { + var ys = f = a; + ys[2] = !1; + ys[1] = 16; + return Z + } + if (48 === e) { + var mz = a[2], zs = f = a; + zs[2] = mz; + zs[1] = 47; + return Z + } + if (50 === + e) { + W = a[10]; + var nz = G.c(qk, W); + f = a; + f[1] = nz ? 57 : 58; + return Z + } + if (75 === e) { + C = a[7]; + M = a[9]; + var oz = a[2], pz = fe($u(C, M)), qz = qy(pz); + a[18] = oz; + f = a; + return Ax(f, 76, b, qz) + } + if (21 === e) { + var As = f = a; + As[2] = c; + As[1] = 22; + return Z + } + if (31 === e) { + W = a[10]; + var rz = G.c(Kn, W); + f = a; + f[1] = rz ? 37 : 38; + return Z + } + if (32 === e) { + var sz = a[2], Bs = f = a; + Bs[2] = sz; + Bs[1] = 25; + return Z + } + if (40 === e) { + var tz = new R(null, 1, 5, T, [wm], null); + f = a; + return Ax(f, 43, d, tz) + } + if (56 === e) { + var uz = a[2], Cs = f = a; + Cs[2] = uz; + Cs[1] = 54; + return Z + } + if (33 === e) { + var Ds = f = a; + Ds[2] = wm; + Ds[1] = 35; + return Z + } + if (13 === + e) { + var vz = a[2], Es = f = a; + Es[2] = vz; + Es[1] = 10; + return Z + } + if (22 === e) { + ac = a[11]; + bc = a[13]; + var Fs = a[2], wz = D.c(Fs, Uk), xz = D.c(Fs, wl), Gs = Kx(null), + yz = Fy(b, wz, xz, bc, ac, l, Gs), zz = ac; + Rd = null; + Dc = zz; + Eb = yz; + bb = Gs; + a[11] = Dc; + a[12] = bb; + a[13] = Rd; + a[14] = Eb; + var Hs = f = a; + Hs[2] = null; + Hs[1] = 2; + return Z + } + if (36 === e) { + ac = a[11]; + bb = a[12]; + bc = a[13]; + Eb = a[14]; + var Az = a[2], Bz = ac, Cz = bb, Dz = Eb; + Rd = bc; + Dc = Bz; + Sd = Dz; + Td = Cz; + a[11] = Dc; + a[19] = Az; + a[12] = Td; + a[13] = Rd; + a[14] = Sd; + var Is = f = a; + Is[2] = null; + Is[1] = 2; + return Z + } + if (41 === e) { + var Js = f = a; + Js[2] = null; + Js[1] = 42; + return Z + } + if (43 === + e) { + var Ez = a[2], Ks = f = a; + Ks[2] = Ez; + Ks[1] = 42; + return Z + } + if (61 === e) { + W = a[10]; + var Fz = G.c(go, W); + f = a; + f[1] = Fz ? 63 : 64; + return Z + } + if (29 === e) { + var Gz = ac = a[11]; + bc = a[2]; + Dc = Gz; + bb = Eb = null; + a[11] = Dc; + a[12] = bb; + a[13] = bc; + a[14] = Eb; + var Ls = f = a; + Ls[2] = null; + Ls[1] = 2; + return Z + } + if (44 === e) { + return bb = a[12], a[20] = a[2], f = a, f[1] = t(bb) ? 45 : 46, Z; + } + if (6 === e) { + Ci = a[16]; + var Ms = f = a; + Ms[2] = Ci; + Ms[1] = 7; + return Z + } + if (28 === e) { + var Hz = a[2], Ns = f = a; + Ns[2] = Hz; + Ns[1] = 25; + return Z + } + if (64 === e) { + W = a[10]; + var Iz = ["No matching clause: ", v.h(W)].join(""); + throw Error(Iz); + } + if (51 === + e) { + var Jz = a[2], Os = f = a; + Os[2] = Jz; + Os[1] = 39; + return Z + } + if (25 === e) { + var Kz = a[2], Ps = f = a; + Ps[2] = Kz; + Ps[1] = 10; + return Z + } + if (34 === e) { + var Qs = f = a; + Qs[2] = gl; + Qs[1] = 35; + return Z + } + if (17 === e) { + var Rs = f = a; + Rs[2] = !0; + Rs[1] = 19; + return Z + } + if (3 === e) { + var Lz = a[2]; + f = a; + return Bx(f, Lz) + } + if (12 === e) { + var Mz = wb(null == c); + f = a; + f[1] = Mz ? 14 : 15; + return Z + } + if (2 === e) { + Eb = a[14]; + var Nz = vg(ub, new R(null, 3, 5, T, [d, m, Eb], null)); + f = a; + return Vx(f, 4, Nz, be([Im, !0])) + } + if (66 === e) { + var Oz = q === c.G, Pz = c.m & 64 || Oz; + f = a; + f[1] = t(Pz) ? 69 : 70; + return Z + } + if (23 === e) { + return bb = a[12], f = a, + f[1] = t(bb) ? 26 : 27, Z; + } + if (47 === e) { + ac = a[11]; + bb = a[12]; + bc = a[13]; + Eb = a[14]; + var Qz = a[2], Rz = ac, Sz = bb, Tz = Eb; + Rd = bc; + Dc = Rz; + Sd = Tz; + Td = Sz; + a[11] = Dc; + a[21] = Qz; + a[12] = Td; + a[13] = Rd; + a[14] = Sd; + var Ss = f = a; + Ss[2] = null; + Ss[1] = 2; + return Z + } + if (35 === e) { + var Uz = new R(null, 1, 5, T, [a[2]], null); + f = a; + return Ax(f, 36, d, Uz) + } + if (76 === e) { + ac = a[11]; + C = a[7]; + bb = a[12]; + Eb = a[14]; + var Vz = a[2], Wz = ac, Xz = bb, Yz = Eb; + bc = C; + Dc = Wz; + Sd = Yz; + Td = Xz; + a[11] = Dc; + a[22] = Vz; + a[12] = Td; + a[13] = bc; + a[14] = Sd; + var Ts = f = a; + Ts[2] = null; + Ts[1] = 2; + return Z + } + if (19 === e) { + var Zz = a[2], Us = f = a; + Us[2] = Zz; + Us[1] = + 16; + return Z + } + if (57 === e) { + var Vs = f = a; + Vs[2] = null; + Vs[1] = 59; + return Z + } + if (68 === e) { + var $z = a[2]; + f = a; + f[1] = t($z) ? 72 : 73; + return Z + } + if (11 === e) { + ac = a[11]; + bb = a[12]; + bc = a[13]; + Eb = a[14]; + var aA = ac, bA = bb, cA = Eb; + Rd = bc; + Dc = aA; + Sd = cA; + Td = bA; + a[11] = Dc; + a[12] = Td; + a[13] = Rd; + a[14] = Sd; + var Ws = f = a; + Ws[2] = null; + Ws[1] = 2; + return Z + } + if (9 === e) { + W = a[10]; + var dA = G.c(wm, W); + f = a; + f[1] = dA ? 23 : 24; + return Z + } + if (5 === e) { + Ci = a[16]; + var eA = new R(null, 2, 5, T, [Xj, Ci], null), Xs = f = a; + Xs[2] = eA; + Xs[1] = 7; + return Z + } + if (14 === e) { + var fA = q === c.G, gA = c.m & 64 || fA; + f = a; + f[1] = t(gA) ? 17 : 18; + return Z + } + if (45 === + e) { + var hA = new R(null, 1, 5, T, [gl], null); + f = a; + return Ax(f, 48, d, hA) + } + if (53 === e) { + var Ys = f = a; + Ys[2] = null; + Ys[1] = 54; + return Z + } + if (26 === e) { + bb = a[12]; + Eb = a[14]; + var iA = Tw(bb); + a[23] = iA; + f = a; + return zx(f, 29, Eb) + } + if (16 === e) { + var jA = a[2]; + f = a; + f[1] = t(jA) ? 20 : 21; + return Z + } + if (38 === e) { + W = a[10]; + var kA = G.c(lm, W); + f = a; + f[1] = kA ? 49 : 50; + return Z + } + if (30 === e) { + return bb = a[12], f = a, f[1] = t(bb) ? 33 : 34, Z; + } + if (73 === e) { + var Zs = f = a; + Zs[2] = c; + Zs[1] = 74; + return Z + } + if (10 === e) { + var lA = a[2], $s = f = a; + $s[2] = lA; + $s[1] = 3; + return Z + } + if (18 === e) { + var at = f = a; + at[2] = !1; + at[1] = 19; + return Z + } + if (52 === + e) { + var mA = new R(null, 1, 5, T, [wm], null); + f = a; + return Ax(f, 55, d, mA) + } + if (67 === e) { + var bt = f = a; + bt[2] = !1; + bt[1] = 68; + return Z + } + if (71 === e) { + var nA = a[2], ct = f = a; + ct[2] = nA; + ct[1] = 68; + return Z + } + if (42 === e) { + F = a[8]; + var oA = new R(null, 2, 5, T, [go, F], null); + a[24] = a[2]; + f = a; + return Ax(f, 44, d, oA) + } + if (37 === e) { + return bb = a[12], f = a, f[1] = t(bb) ? 40 : 41, Z; + } + if (63 === e) { + var pA = wb(null == c); + f = a; + f[1] = pA ? 66 : 67; + return Z + } + return 8 === e ? (bb = a[12], f = a, f[1] = t(bb) ? 11 : 12, Z) : 49 === e + ? (bb = a[12], f = a, f[1] = t(bb) ? 52 : 53, Z) : null + } + }(a, d, e, f, h, k, l, p), a, d, e, f, h, k, l, p) + }(), u = function () { + var b = + m.B ? m.B() : m.call(null); + b[6] = a; + return b + }(); + return yx(u) + } + }(p, l, a, d, e, f, h, k)); + return p + } + + function Hy(a) { + var b = window.requestIdleCallback; + return t(b) ? (a = function (a, b) { + return function h(c) { + return function (a) { + return function () { + if (E(c)) { + var b = h(vd(c)); + return a.h ? a.h(b) : a.call(null, b) + } + return null + } + }(a, b) + } + }(b, b)(a), b.h ? b.h(a) : b.call(null, a)) : null + } + + function Iy(a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, d = D.c(c, bl), e = D.c(c, Jl), + f = D.c(c, Hj), h = D.c(c, Sj), k = D.c(c, Mm), l = Kx(1); + lx(function (a, c, d, e, f, h, k, l, M) { + return function () { + var m = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (Ba) { + if (Ba instanceof Object) { + b[5] = Ba, Cx(b), d = Z; + } else { + throw Ba; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function (a, c, d, e, f, h, k, l, m) { + return function (a) { + var c = a[1]; + if (7 === c) { + return c = a[7], c = G.c(k, c), a[1] = c ? 9 : 10, Z; + } + if (1 === c) { + return a[1] = t(l) ? 2 : 3, Z; + } + if (4 === c) { + c = a[2]; + c = f.h ? f.h(c) : f.call(null, c); + var d = new R(null, 2, 5, T, [c, k], null); + a[8] = c; + return Ux(a, 5, d) + } + if (15 === c) { + return c = d = a[9], c = null != c && (c.m & 64 || q === c.G) ? + P(U, c) : c, c = D.c(c, Uk), c = Ox(b, qy(fe($u(m, c)))), a[2] = c, a[1] = 17, Z; + } + if (13 === c) { + return c = a[2], d = ly(!1), a[10] = c, Ax(a, 14, b, d); + } + if (6 === c) { + return c = a[11], a[2] = c, a[1] = 8, Z; + } + if (17 === c) { + d = a[9]; + c = a[2]; + var h = d; + var p = null != h && (h.m & 64 || q === h.G) ? P(U, h) : h; + h = D.c(p, fl); + var u = D.c(p, no); + p = D.c(p, wl); + Ox(b, new jy(h, u, p, null, null, null)); + h = Ox(b, new oy(null, null, null)); + u = Gy(e, b, d); + d = Uk.h(d); + d = Hy(d); + a[12] = c; + a[13] = u; + a[14] = h; + return Bx(a, d) + } + if (3 === c) { + return a[2] = m, a[1] = 4, Z; + } + if (12 === c) { + return c = a[2], d = f.h ? f.h(!0) : f.call(null, !0), a[15] = c, zx(a, + 13, d); + } + if (2 === c) { + return a[2] = l, a[1] = 4, Z; + } + if (11 === c) { + return a[2] = a[2], a[1] = 8, Z; + } + if (9 === c) { + return Ax(a, 12, b, ly(!0)); + } + if (5 === c) { + return d = a[8], h = a[2], c = J(h, 0, null), h = J(h, 1, null), d = G.c( + d, h), a[7] = h, a[11] = c, a[1] = d ? 6 : 7, Z; + } + if (14 === c) { + return c = a[10], a[16] = a[2], a[2] = c, a[1] = 11, Z; + } + if (16 === c) { + return a[2] = null, a[1] = 17, Z; + } + if (10 === c) { + throw c = a[7], a = ["No matching clause: ", v.h(c)].join(""), Error(a); + } + return 8 === c ? (d = a[2], a[9] = d, a[1] = t(m) ? 15 : 16, Z) : null + } + }(a, c, d, e, f, h, k, l, M), a, c, d, e, f, h, k, l, M) + }(), p = function () { + var b = m.B ? m.B() : m.call(null); + b[6] = a; + return b + }(); + return yx(p) + } + }(l, a, c, c, d, e, f, h, k)) + } + + function Jy(a, b, c, d, e, f, h, k, l, p, m, u) { + this.nb = a; + this.Ea = b; + this.$a = c; + this.ob = d; + this.speed = e; + this.Y = f; + this.jb = h; + this.mb = k; + this.lb = l; + this.v = p; + this.j = m; + this.w = u; + this.m = 2229667594; + this.J = 139264 + } + + g = Jy.prototype; + g.Bd = function () { + var a = Kx(null); + Iy(this, a); + t(this.Y) && this.ac(null); + return a + }; + g.Ad = function () { + Ox(this.Ea, new R(null, 1, 5, T, [wm], null)); + return Ox(this.Ea, new R(null, 1, 5, T, [qk], null)) + }; + g.ac = function () { + Tw(this.$a); + return Ox(this.Ea, new R(null, 1, 5, T, [gl], null)) + }; + g.wc = function () { + return Ox(this.Ea, new R(null, 1, 5, T, [wm], null)) + }; + g.Dd = function () { + Tw(this.$a); + return Ox(this.Ea, new R(null, 1, 5, T, [Nl], null)) + }; + g.Cd = function (a, b) { + Tw(this.$a); + return Ox(this.Ea, new R(null, 2, 5, T, [Kn, b], null)) + }; + g.zd = function (a, b) { + return Ox(this.Ea, new R(null, 2, 5, T, [lm, b], null)) + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "recording-ch-fn": + return this.nb; + case "command-ch": + return this.Ea; + case "force-load-ch": + return this.$a; + case "start-at": + return this.ob; + case "speed": + return this.speed; + case "auto-play?": + return this.Y; + case "loop?": + return this.jb; + case "preload?": + return this.mb; + case "poster-time": + return this.lb; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.source.Recording{", ", ", "}", c, O.c(new R(null, 9, 5, T, + [new R(null, 2, 5, T, [bl, this.nb], null), new R(null, 2, 5, T, [Jl, this.Ea], null), + new R(null, 2, 5, T, [Hj, this.$a], null), new R(null, 2, 5, T, [Hk, this.ob], null), + new R(null, 2, 5, T, [Ak, this.speed], null), new R(null, 2, 5, T, [Jm, this.Y], null), + new R(null, 2, 5, T, [dn, this.jb], null), new R(null, 2, 5, T, [Sj, this.mb], null), + new R(null, 2, 5, T, [Mm, this.lb], null)], null), + this.j)) + }; + g.ba = function () { + return new fh(0, this, 9, new R(null, 9, 5, T, [bl, Jl, Hj, Hk, Ak, Jm, dn, Sj, Mm], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 9 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1201370539 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.nb, b.nb) && G.c(this.Ea, + b.Ea) && G.c(this.$a, b.$a) && G.c(this.ob, b.ob) && G.c(this.speed, b.speed) && G.c(this.Y, + b.Y) && G.c(this.jb, b.jb) && G.c(this.mb, b.mb) && G.c(this.lb, b.lb) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 9, + [Hj, null, Sj, null, Ak, null, Hk, null, bl, null, Jl, null, Jm, null, Mm, null, dn, null], + null), null), b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new Jy(this.nb, this.Ea, this.$a, + this.ob, this.speed, this.Y, this.jb, this.mb, this.lb, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(bl, b) : N.call(null, bl, b)) ? new Jy(c, this.Ea, this.$a, this.ob, + this.speed, this.Y, this.jb, this.mb, this.lb, this.v, this.j, null) : t( + N.c ? N.c(Jl, b) : N.call(null, Jl, b)) ? new Jy(this.nb, c, this.$a, this.ob, this.speed, + this.Y, this.jb, this.mb, this.lb, this.v, this.j, null) : t( + N.c ? N.c(Hj, b) : N.call(null, Hj, b)) ? new Jy(this.nb, this.Ea, c, this.ob, this.speed, + this.Y, this.jb, this.mb, this.lb, this.v, this.j, null) : t( + N.c ? N.c(Hk, b) : N.call(null, Hk, b)) ? new Jy(this.nb, this.Ea, this.$a, c, this.speed, + this.Y, + this.jb, this.mb, this.lb, this.v, this.j, null) : t(N.c ? N.c(Ak, b) : N.call(null, Ak, b)) + ? new Jy(this.nb, this.Ea, this.$a, this.ob, c, this.Y, this.jb, this.mb, this.lb, this.v, + this.j, null) : t(N.c ? N.c(Jm, b) : N.call(null, Jm, b)) ? new Jy(this.nb, this.Ea, + this.$a, this.ob, this.speed, c, this.jb, this.mb, this.lb, this.v, this.j, null) : t( + N.c ? N.c(dn, b) : N.call(null, dn, b)) ? new Jy(this.nb, this.Ea, this.$a, this.ob, + this.speed, this.Y, c, this.mb, this.lb, this.v, this.j, null) : t( + N.c ? N.c(Sj, b) : N.call(null, Sj, b)) ? new Jy(this.nb, this.Ea, this.$a, this.ob, + this.speed, this.Y, this.jb, c, this.lb, this.v, this.j, null) : t( + N.c ? N.c(Mm, b) : N.call(null, Mm, b)) ? new Jy(this.nb, this.Ea, this.$a, this.ob, + this.speed, this.Y, this.jb, this.mb, c, this.v, this.j, null) : new Jy(this.nb, this.Ea, + this.$a, this.ob, this.speed, this.Y, this.jb, this.mb, this.lb, this.v, K.l(this.j, b, c), + null) + }; + g.S = function () { + return E(O.c(new R(null, 9, 5, T, + [new R(null, 2, 5, T, [bl, this.nb], null), new R(null, 2, 5, T, [Jl, this.Ea], null), + new R(null, 2, 5, T, [Hj, this.$a], null), new R(null, 2, 5, T, [Hk, this.ob], null), + new R(null, 2, 5, T, [Ak, this.speed], null), new R(null, 2, 5, T, [Jm, this.Y], null), + new R(null, 2, 5, T, [dn, this.jb], null), new R(null, 2, 5, T, [Sj, this.mb], null), + new R(null, 2, 5, T, [Mm, this.lb], null)], null), this.j)) + }; + g.T = function (a, b) { + return new Jy(this.nb, this.Ea, this.$a, this.ob, this.speed, this.Y, this.jb, this.mb, this.lb, + b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + wj(ok, function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, fl), e = D.c(c, no), + f = D.c(c, Hk), h = D.c(c, Ak), k = D.c(c, qm), l = D.c(c, Em), p = D.c(c, cm), + m = D.c(c, vm); + c = D.c(c, Mm); + d = Cy(a, d, e, k); + e = Kx(10); + k = Kx(null); + return new Jy(d, e, k, f, h, l, p, m, c, null, null, null) + }); + + function Ky(a, b, c) { + var d = Kx(null), e = Kx(1); + lx(function (d, e) { + return function () { + var f = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (I) { + if (I instanceof Object) { + b[5] = I, Cx(b), d = Z; + } else { + throw I; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function (d, e) { + return function (d) { + var f = d[1]; + if (1 === f) { + return f = Ot(a, b), d[7] = f, d[2] = null, d[1] = 2, Z; + } + if (2 === f) { + return zx(d, 4, e); + } + if (3 === f) { + return Bx(d, d[2]); + } + if (4 === f) { + return f = d[2], d[8] = f, d[1] = t(f) ? 5 : 6, Z; + } + if (5 === f) { + var h = d[8]; + f = d[7]; + f = Ju(f, h); + h = qy(f); + d[9] = f; + return Ax(d, 8, c, h) + } + return 6 === f ? (d[2] = null, d[1] = 7, Z) : 7 === f ? (d[2] = d[2], d[1] = 3, Z) : 8 + === f ? (f = d[9], h = d[2], d[10] = h, d[7] = f, d[2] = null, d[1] = 2, Z) : null + } + }(d, e), d, e) + }(), h = function () { + var a = f.B ? f.B() : f.call(null); + a[6] = d; + return a + }(); + return yx(h) + } + }(e, d)); + return d + } + + function Ly(a, b, c, d) { + var e = Kx(1); + lx(function (e) { + return function () { + var f = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (F) { + if (F instanceof Object) { + b[5] = F, Cx(b), d = Z; + } else { + throw F; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function () { + return function (e) { + var f = e[1]; + if (7 === f) { + return Ax(e, 9, b, String.fromCharCode(Math.floor(160 * Math.random()))); + } + if (1 === f) { + return Ax(e, 2, a, ny(!0)); + } + if (4 === f) { + return f = ny(!1), e[7] = e[2], Ax(e, 10, a, f); + } + if (6 === f) { + return e[2] = null, e[1] = 8, Z; + } + if (3 === f) { + return f = Jx(100 * Math.random() / c), Ux(e, 5, + new R(null, 2, 5, T, [d, f], null)); + } + if (2 === f) { + return e[8] = e[2], e[2] = null, e[1] = 3, Z; + } + if (9 === f) { + return e[9] = e[2], e[2] = null, e[1] = 3, Z; + } + if (5 === f) { + var h = e[2]; + f = J(h, 0, null); + h = J(h, 1, null); + h = G.c(h, d); + e[10] = f; + e[1] = h ? 6 : 7; + return Z + } + return 10 === f ? Bx(e, e[2]) : 8 === f ? (e[2] = e[2], e[1] = 4, Z) : null + } + }(e), e) + }(), k = function () { + var a = f.B ? f.B() : f.call(null); + a[6] = e; + return a + }(); + return yx(k) + } + }(e)); + return e + } + + function My(a, b, c, d, e, f, h, k, l, p) { + this.speed = a; + this.Y = b; + this.width = c; + this.height = d; + this.ha = e; + this.pb = f; + this.La = h; + this.v = k; + this.j = l; + this.w = p; + this.m = 2229667594; + this.J = 139264 + } + + g = My.prototype; + g.Bd = function () { + fg(this.ha, Kx(null)); + fg(this.pb, Ky(this.width, this.height, B(this.ha))); + t(this.Y) && this.ac(null); + return B(this.ha) + }; + g.Ad = function () { + return this.wc(null) + }; + g.ac = function () { + if (t(B(this.La))) { + return null; + } + var a = Kx(null); + fg(this.La, a); + return Ly(B(this.ha), B(this.pb), this.speed, a) + }; + g.wc = function () { + return t(B(this.La)) ? (Tw(B(this.La)), fg(this.La, null)) : null + }; + g.Dd = function () { + return t(B(this.La)) ? this.wc(null) : this.ac(null) + }; + g.Cd = function () { + return null + }; + g.zd = function () { + return null + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "speed": + return this.speed; + case "auto-play?": + return this.Y; + case "width": + return this.width; + case "height": + return this.height; + case "msg-ch": + return this.ha; + case "stdout-ch": + return this.pb; + case "stop-ch": + return this.La; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.source.JunkPrinter{", ", ", "}", c, O.c(new R(null, 7, 5, T, + [new R(null, 2, 5, T, [Ak, this.speed], null), new R(null, 2, 5, T, [Jm, this.Y], null), + new R(null, 2, 5, T, [fl, this.width], null), new R(null, 2, 5, T, [no, this.height], null), + new R(null, 2, 5, T, [Dl, this.ha], null), new R(null, 2, 5, T, [rn, this.pb], null), + new R(null, 2, 5, T, [Zl, this.La], null)], null), this.j)) + }; + g.ba = function () { + return new fh(0, this, 7, new R(null, 7, 5, T, [Ak, Jm, fl, no, Dl, rn, Zl], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 7 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 1937333797 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.speed, b.speed) && G.c( + this.Y, b.Y) && G.c(this.width, b.width) && G.c(this.height, b.height) && G.c(this.ha, b.ha) + && G.c(this.pb, b.pb) && G.c(this.La, b.La) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, + new r(null, 7, [Ak, null, fl, null, Dl, null, Zl, null, Jm, null, rn, null, no, null], null), + null), b) ? le.c(tc(wg.c(Ef, this), this.v), b) : new My(this.speed, this.Y, this.width, + this.height, this.ha, this.pb, this.La, this.v, Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Ak, b) : N.call(null, Ak, b)) ? new My(c, this.Y, this.width, this.height, + this.ha, this.pb, this.La, this.v, this.j, null) : t(N.c ? N.c(Jm, b) : N.call(null, Jm, b)) + ? new My(this.speed, c, this.width, this.height, this.ha, this.pb, this.La, this.v, this.j, + null) : t(N.c ? N.c(fl, b) : N.call(null, fl, b)) ? new My(this.speed, this.Y, c, + this.height, this.ha, this.pb, this.La, this.v, this.j, null) : t( + N.c ? N.c(no, b) : N.call(null, no, b)) ? new My(this.speed, this.Y, this.width, c, this.ha, + this.pb, this.La, this.v, this.j, null) : + t(N.c ? N.c(Dl, b) : N.call(null, Dl, b)) ? new My(this.speed, this.Y, this.width, + this.height, c, this.pb, this.La, this.v, this.j, null) : t( + N.c ? N.c(rn, b) : N.call(null, rn, b)) ? new My(this.speed, this.Y, this.width, + this.height, this.ha, c, this.La, this.v, this.j, null) : t( + N.c ? N.c(Zl, b) : N.call(null, Zl, b)) ? new My(this.speed, this.Y, this.width, + this.height, this.ha, this.pb, c, this.v, this.j, null) : new My(this.speed, this.Y, + this.width, this.height, this.ha, this.pb, this.La, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 7, 5, T, + [new R(null, 2, 5, T, [Ak, this.speed], null), new R(null, 2, 5, T, [Jm, this.Y], null), + new R(null, 2, 5, T, [fl, this.width], null), new R(null, 2, 5, T, [no, this.height], null), + new R(null, 2, 5, T, [Dl, this.ha], null), new R(null, 2, 5, T, [rn, this.pb], null), + new R(null, 2, 5, T, [Zl, this.La], null)], null), this.j)) + }; + g.T = function (a, b) { + return new My(this.speed, this.Y, this.width, this.height, this.ha, this.pb, this.La, b, this.j, + this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + wj(mn, function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + D.c(c, $m); + var d = D.c(c, fl), e = D.c(c, no), f = D.c(c, Ak); + c = D.c(c, Em); + var h = dg.h(null), k = dg.h(null), l = dg.h(null); + return new My(f, c, d, e, h, k, l, null, null, null) + }); + + function Ny(a) { + return ev(JSON.parse(a)) + } + + function Oy(a, b) { + var c = Kx(1); + lx(function (c) { + return function () { + var d = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (x) { + if (x instanceof Object) { + b[5] = x, Cx(b), d = Z; + } else { + throw x; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function () { + return function (c) { + var d = c[1]; + if (7 === d) { + return c[2] = !1, c[1] = 8, Z; + } + if (20 === d) { + return c[2] = !1, c[1] = 21, Z; + } + if (27 === d) { + d = c[7]; + var e = D.c(c[2], ko); + return Ax(c, 28, d, e) + } + if (1 === d) { + return zx(c, 2, a); + } + if (24 === d) { + return c[2] = c[2], c[1] = 21, Z; + } + if (4 === d) { + return c[2] = !1, c[1] = 5, Z; + } + if (15 === d) { + return d = c[2], c[8] = d, c[1] = t(d) ? 16 : 17, Z; + } + if (21 === d) { + return c[1] = t(c[2]) ? 25 : 26, Z; + } + if (13 === d) { + return zx(c, 15, a); + } + if (22 === d) { + return c[2] = !0, c[1] = 24, Z; + } + if (6 === d) { + return c[2] = !0, c[1] = 8, Z; + } + if (28 === + d) { + return c[9] = c[2], c[2] = null, c[1] = 13, Z; + } + if (25 === d) { + return d = c[8], d = P(U, d), c[2] = d, c[1] = 27, Z; + } + if (17 === d) { + return c[2] = null, c[1] = 18, Z; + } + if (3 === d) { + return d = c[10], e = q === d.G, c[1] = t(d.m & 64 || e) ? 6 : 7, Z; + } + if (12 === d) { + return c[11] = c[2], c[2] = null, c[1] = 13, Z; + } + if (2 === d) { + return d = c[2], e = wb(null == d), c[10] = d, c[1] = e ? 3 : 4, Z; + } + if (23 === d) { + return c[2] = !1, c[1] = 24, Z; + } + if (19 === d) { + return d = c[8], e = q === d.G, c[1] = t(d.m & 64 || e) ? 22 : 23, Z; + } + if (11 === d) { + var f = c[2]; + d = D.c(f, Zk); + e = D.c(f, fl); + var h = D.c(f, no); + f = D.c(f, ko); + e = Ky(e, h, b); + c[7] = e; + c[12] = d; + return Ax(c, 12, + e, f) + } + return 9 === d ? (d = c[10], d = P(U, d), c[2] = d, c[1] = 11, Z) : 5 === d + ? (c[1] = t(c[2]) ? 9 : 10, Z) : 14 === d ? Bx(c, c[2]) : 26 === d + ? (d = c[8], c[2] = d, c[1] = 27, Z) : 16 === d ? (d = c[8], c[1] = wb(null == d) + ? 19 : 20, Z) : 10 === d ? (d = c[10], c[2] = d, c[1] = 11, Z) : 18 === d + ? (c[2] = c[2], c[1] = 14, Z) : 8 === d ? (c[2] = c[2], c[1] = 5, Z) : null + } + }(c), c) + }(), f = function () { + var a = d.B ? d.B() : d.call(null); + a[6] = c; + return a + }(); + return yx(f) + } + }(c)) + } + + function Py(a, b) { + var c = new EventSource(a), d = dg.h(null); + Ox(b, ly(!0)); + c.onopen = function (a, c) { + return function () { + var a = Mx(1E4, ig.h(Ny)); + fg(c, a); + Oy(a, b); + Ox(b, ny(!0)); + return Ox(b, ly(!1)) + } + }(c, d); + c.onerror = function (a, c) { + return function () { + Tw(B(c)); + fg(c, null); + return Ox(b, ly(!0)) + } + }(c, d); + return c.onmessage = function (a, b) { + return function (a) { + var c = B(b); + return t(c) ? Ox(c, a.data) : null + } + }(c, d) + } + + function Qy(a, b, c, d, e, f, h) { + this.ha = a; + this.url = b; + this.Y = c; + this.yb = d; + this.v = e; + this.j = f; + this.w = h; + this.m = 2229667594; + this.J = 139264 + } + + g = Qy.prototype; + g.Bd = function () { + fg(this.ha, Kx(null)); + return t(this.Y) ? this.ac(null) : null + }; + g.Ad = function () { + return this.wc(null) + }; + g.ac = function () { + if (t(B(this.yb))) { + return null; + } + fg(this.yb, !0); + return Py(this.url, B(this.ha)) + }; + g.wc = function () { + return null + }; + g.Dd = function () { + return this.ac(null) + }; + g.Cd = function () { + return null + }; + g.zd = function () { + return null + }; + g.V = function (a, b) { + return this.I(null, b, null) + }; + g.I = function (a, b, c) { + switch (b instanceof L ? b.ea : null) { + case "msg-ch": + return this.ha; + case "url": + return this.url; + case "auto-play?": + return this.Y; + case "started?": + return this.yb; + default: + return D.l(this.j, b, c) + } + }; + g.R = function (a, b, c) { + return Y(b, function () { + return function (a) { + return Y(b, Qi, "", " ", "", c, a) + } + }(this), "#asciinema.player.source.Stream{", ", ", "}", c, O.c(new R(null, 4, 5, T, + [new R(null, 2, 5, T, [Dl, this.ha], null), new R(null, 2, 5, T, [$m, this.url], null), + new R(null, 2, 5, T, [Jm, this.Y], null), new R(null, 2, 5, T, [rm, this.yb], null)], null), + this.j)) + }; + g.ba = function () { + return new fh(0, this, 4, new R(null, 4, 5, T, [Dl, $m, Jm, rm], null), + t(this.j) ? dd(this.j) : Cf()) + }; + g.P = function () { + return this.v + }; + g.W = function () { + return 4 + H(this.j) + }; + g.U = function () { + var a = this, b = this.w; + if (null != b) { + return b; + } + var c = function () { + return function () { + return function (a) { + return 187678783 ^ Dd(a) + } + }(b, a)(a) + }(); + return this.w = c + }; + g.K = function (a, b) { + return null != b && this.constructor === b.constructor && G.c(this.ha, b.ha) && G.c(this.url, + b.url) && G.c(this.Y, b.Y) && G.c(this.yb, b.yb) && G.c(this.j, b.j) + }; + g.ga = function (a, b) { + return He(new ti(null, new r(null, 4, [Dl, null, rm, null, Jm, null, $m, null], null), null), b) + ? le.c(tc(wg.c(Ef, this), this.v), b) : new Qy(this.ha, this.url, this.Y, this.yb, this.v, + Bf(le.c(this.j, b)), null) + }; + g.O = function (a, b, c) { + return t(N.c ? N.c(Dl, b) : N.call(null, Dl, b)) ? new Qy(c, this.url, this.Y, this.yb, this.v, + this.j, null) : t(N.c ? N.c($m, b) : N.call(null, $m, b)) ? new Qy(this.ha, c, this.Y, + this.yb, this.v, this.j, null) : t(N.c ? N.c(Jm, b) : N.call(null, Jm, b)) ? new Qy(this.ha, + this.url, c, this.yb, this.v, this.j, null) : t(N.c ? N.c(rm, b) : N.call(null, rm, b)) + ? new Qy(this.ha, this.url, this.Y, c, this.v, this.j, null) : new Qy(this.ha, this.url, + this.Y, this.yb, this.v, K.l(this.j, b, c), null) + }; + g.S = function () { + return E(O.c(new R(null, 4, 5, T, + [new R(null, 2, 5, T, [Dl, this.ha], null), new R(null, 2, 5, T, [$m, this.url], null), + new R(null, 2, 5, T, [Jm, this.Y], null), new R(null, 2, 5, T, [rm, this.yb], null)], null), + this.j)) + }; + g.T = function (a, b) { + return new Qy(this.ha, this.url, this.Y, this.yb, b, this.j, this.w) + }; + g.X = function (a, b) { + return ze(b) ? this.O(null, A.c(b, 0), A.c(b, 1)) : Mb(Tb, this, b) + }; + wj(hm, function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + c = D.c(c, Em); + var d = dg.h(null), e = dg.h(!1); + return new Qy(d, a, c, e, null, null, null) + }); + + function Ry(a) { + var b = new R(null, 5, 5, T, + ["fullscreenElement", "mozFullScreenElement", "webkitFullscreenElement", + "webkitCurrentFullScreenElement", "msFullscreenElement"], null); + b = Wf($f.c(Ee, Pu), b); + t(b) ? (a = Wf(Pu, new R(null, 5, 5, T, + ["exitFullscreen", "webkitExitFullscreen", "webkitCancelFullScreen", "mozCancelFullScreen", + "msExitFullscreen"], null)), a = t(a) ? a.call(document) : null) : (b = new R(null, 5, 5, T, + ["requestFullscreen", "webkitRequestFullscreen", "webkitRequestFullScreen", + "mozRequestFullScreen", "msRequestFullscreen"], + null), b = Wf(ag.c(Hb, a), b), a = t(b) ? b.call(a) : null); + return a + };r.prototype.yd = function () { + return il.h(this) + }; + r.prototype.xd = function () { + return pl.h(this) + }; + + function Sy(a, b) { + return function (c) { + var d = b.h ? b.h(c) : b.call(null, c); + return t(d) ? (Ox(a, d), c.stopPropagation()) : null + } + } + + function Ty(a, b) { + return Sy(a, function () { + return b + }) + } + + function Uy(a, b, c) { + var d = "number" === typeof a || G.c(a, "fg") || G.c(a, "bg"); + return t(d) ? (a = t(t(b) ? 8 > a : b) ? a + 8 : a, [v.h(c), v.h(a)].join("")) : null + } + + function Vy(a) { + var b = J(a, 0, null), c = J(a, 1, null); + a = J(a, 2, null); + return ["rgb(", v.h(b), ",", v.h(c), ",", v.h(a), ")"].join("") + } + + var Wy = hj(function (a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, Nk), c = D.c(a, pl); + a = K.l(a, Nk, t(c) ? wb(b) : b); + var d = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a, e = D.c(d, Ok), f = D.c(d, Tn); + b = D.c(d, Kj); + var h = D.c(d, dk); + c = D.c(d, Vl); + var k = D.c(d, Nk), l = D.c(d, Yn); + d = D.c(d, pl); + var p = t(k) ? t(e) ? e : "fg" : f; + e = Uy(t(k) ? t(f) ? f : "bg" : e, b, "fg-"); + h = Uy(p, h, "bg-"); + c = vg(ub, new R(null, 6, 5, T, + [e, h, t(b) ? "bright" : null, t(l) ? "italic" : null, t(c) ? "underline" : null, + t(d) ? "cursor" : null], null)); + if (E(c)) { + a:for (b = new cb, c = E(c); ;) { + if (null != c) { + b.append("" + + v.h(y(c))), c = z(c), null != c && b.append(" "); + } else { + b = b.toString(); + break a + } + } + } else { + b = null; + } + l = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + a = D.c(l, Ok); + c = D.c(l, Tn); + h = D.c(l, Nk); + l = t(h) ? c : a; + a = t(h) ? a : c; + a = hi.A(be([t(ze.h ? ze.h(l) : ze.call(null, l)) ? new r(null, 1, [ik, Vy(l)], null) : null, + t(ze.h ? ze.h(a) : ze.call(null, a)) ? new r(null, 1, [al, Vy(a)], null) : null])); + return hi.A(be( + [t(b) ? new r(null, 1, [vn, b], null) : null, t(a) ? new r(null, 1, [fm, a], null) : null])) + }); + + function Xy(a, b) { + var c = J(a, 0, null), d = J(a, 1, null); + d = Bg(d, pl, function () { + return function (a) { + return t(a) ? B(b) : a + } + }(a, c, d)); + return new R(null, 3, 5, T, [ro, Wy.h ? Wy.h(d) : Wy.call(null, d), c], null) + } + + function Yy(a, b) { + var c = J(a, 0, null), d = J(a, 1, null), e = jg(b, c); + e = E(e) ? new R(null, 2, 5, T, [Eo(e), d], null) : null; + var f = K.l(d, pl, !0); + f = new R(null, 2, 5, T, [Vd(c, b), f], null); + c = kg(b + 1, c); + d = E(c) ? new R(null, 2, 5, T, [Eo(c), d], null) : null; + return vg(ub, new R(null, 3, 5, T, [e, f, d], null)) + } + + function Zy(a, b) { + for (var c = he, d = a, e = b; ;) { + if (E(d)) { + var f = y(d), h = J(f, 0, null); + J(f, 1, null); + h = H(h); + if (h <= e) { + c = ge.c(c, f), d = vd(d), e -= h; + } else { + return O.A(c, Yy(f, e), be([vd(d)])) + } + } else { + return c + } + } + } + + function $y(a, b, c) { + a = t(B(b)) ? Zy(B(a), B(b)) : B(a); + return new R(null, 2, 5, T, [Lm, Ii(bg(function () { + return function (a, b) { + return pe(new R(null, 3, 5, T, [Xy, b, c], null), new r(null, 1, [mk, a], null)) + } + }(a), a))], null) + } + + var qA = new ti(null, new r(null, 3, ["small", null, "medium", null, "big", null], null), null); + + function rA(a, b, c, d, e) { + var f = yp(function () { + var a = B(c); + return t(qA.h ? qA.h(a) : qA.call(null, a)) ? ["font-", v.h(a)].join("") : null + }), h = yp(function () { + return function () { + var d = B(a), e = B(b), f = B(c); + f = t(qA.h ? qA.h(f) : qA.call(null, f)) ? null : new r(null, 1, [wk, f], null); + return hi.A(be( + [new r(null, 2, [fl, [v.h(d), "ch"].join(""), no, [v.h(1.3333333333 * e), "em"].join("")], + null), f])) + } + }(f)), k = yp(function () { + return function () { + return Lu(B(d)) + } + }(f, h)), l = yp(function (a, c, d) { + return function () { + return xg(function (a, b, c) { + return function (d) { + return yp(function (a, + b, c) { + return function () { + return D.c(B(c), d) + } + }(a, b, c)) + } + }(a, c, d), Fi(0, B(b), 1)) + } + }(f, h, k)), p = yp(function () { + return function () { + return Mu(B(d)) + } + }(f, h, k, l)), m = yp(function (a, b, c, d, e) { + return function () { + return zn.h(B(e)) + } + }(f, h, k, l, p)), u = yp(function (a, b, c, d, e) { + return function () { + return Aj.h(B(e)) + } + }(f, h, k, l, p, m)), w = yp(function (a, b, c, d, e) { + return function () { + return On.h(B(e)) + } + }(f, h, k, l, p, m, u)); + return function (a, b, c, d, f, h, k, l) { + return function () { + return new R(null, 3, 5, T, [Gm, new r(null, 2, [vn, B(a), fm, B(b)], null), bg(function (a, + b, c, d, f, h, k, l) { + return function (m, p) { + var u = yp(function (a, b, c, d, e, f, h, k) { + return function () { + var a = B(k); + return t(a) ? (a = G.c(m, B(h))) ? B(f) : a : a + } + }(a, b, c, d, f, h, k, l)); + return pe(new R(null, 4, 5, T, [$y, p, u, e], null), new r(null, 1, [mk, m], null)) + } + }(a, b, c, d, f, h, k, l), B(d))], null) + } + }(f, h, k, l, p, m, u, w) + } + + function sA() { + return new R(null, 2, 5, T, [Ym, new r(null, 4, + [Mn, "1.1", Fl, "0 0 866.0254037844387 866.0254037844387", vn, "icon", mo, new r(null, 1, [An, + '\x3cdefs\x3e \x3cmask id\x3d"small-triangle-mask"\x3e \x3crect width\x3d"100%" height\x3d"100%" fill\x3d"white"/\x3e \x3cpolygon points\x3d"508.01270189221935 433.01270189221935, 208.0127018922194 259.8076211353316, 208.01270189221927 606.217782649107" fill\x3d"black"\x3e\x3c/polygon\x3e \x3c/mask\x3e \x3c/defs\x3e \x3cpolygon points\x3d"808.0127018922194 433.01270189221935, 58.01270189221947 -1.1368683772161603e-13, 58.01270189221913 866.0254037844386" mask\x3d"url(#small-triangle-mask)" fill\x3d"white"\x3e\x3c/polygon\x3e \x3cpolyline points\x3d"481.2177826491071 333.0127018922194, 134.80762113533166 533.0127018922194" stroke\x3d"white" stroke-width\x3d"90"\x3e\x3c/polyline\x3e'], + null)], + null)], null) + } + + function tA() { + return new R(null, 3, 5, T, [Ym, new r(null, 3, [Mn, "1.1", Fl, "0 0 12 12", vn, "icon"], null), + new R(null, 2, 5, T, [Fj, new r(null, 1, [pn, "M1,0 L11,6 L1,12 Z"], null)], null)], null) + } + + function uA() { + return new R(null, 4, 5, T, [Ym, new r(null, 3, [Mn, "1.1", Fl, "0 0 12 12", vn, "icon"], null), + new R(null, 2, 5, T, [Fj, new r(null, 1, [pn, "M1,0 L4,0 L4,12 L1,12 Z"], null)], null), + new R(null, 2, 5, T, [Fj, new r(null, 1, [pn, "M8,0 L11,0 L11,12 L8,12 Z"], null)], null)], + null) + } + + function vA() { + return new R(null, 4, 5, T, [Ym, new r(null, 3, [Mn, "1.1", Fl, "0 0 12 12", vn, "icon"], null), + new R(null, 2, 5, T, + [Fj, new r(null, 1, [pn, "M12,0 L7,0 L9,2 L7,4 L8,5 L10,3 L12,5 Z"], null)], null), + new R(null, 2, 5, T, + [Fj, new r(null, 1, [pn, "M0,12 L0,7 L2,9 L4,7 L5,8 L3,10 L5,12 Z"], null)], null)], null) + } + + function wA() { + return new R(null, 4, 5, T, [Ym, new r(null, 3, [Mn, "1.1", Fl, "0 0 12 12", vn, "icon"], null), + new R(null, 2, 5, T, + [Fj, new r(null, 1, [pn, "M7,5 L7,0 L9,2 L11,0 L12,1 L10,3 L12,5 Z"], null)], null), + new R(null, 2, 5, T, + [Fj, new r(null, 1, [pn, "M5,7 L0,7 L2,9 L0,11 L1,12 L3,10 L5,12 Z"], null)], null)], null) + } + + function xA(a, b) { + return function (b) { + return function () { + return new R(null, 3, 5, T, + [cl, new r(null, 1, [Sl, b], null), new R(null, 1, 5, T, [t(B(a)) ? uA : tA], null)], + null) + } + }(Ty(b, new fy(null, null, null))) + } + + function yA(a) { + return 10 > a ? ["0", v.h(a)].join("") : a + } + + function zA(a) { + var b = Math.floor((a % 60 + 60) % 60); + return [v.h(yA(Math.floor(a / 60))), ":", v.h(yA(b))].join("") + } + + function AA(a, b) { + var c = T, d = new R(null, 2, 5, T, [Yk, zA(B(a))], null), e = T; + var f = B(a); + var h = B(b); + f = ["-", v.h(zA(h - f))].join(""); + return new R(null, 3, 5, c, [Ml, d, new R(null, 2, 5, e, [co, f], null)], null) + } + + function BA() { + function a(a) { + a.preventDefault(); + return Ry(a.currentTarget.parentNode.parentNode.parentNode) + } + + return function () { + return new R(null, 4, 5, T, + [un, new r(null, 1, [Sl, a], null), new R(null, 1, 5, T, [vA], null), + new R(null, 1, 5, T, [wA], null)], null) + } + } + + function CA(a, b) { + var c = Sy(b, function (a) { + var b = a.currentTarget.offsetWidth, c = a.currentTarget.getBoundingClientRect(); + return cy(Nu(a.clientX - c.left, b) / b) + }), d = yp(function () { + return function () { + return [v.h(100 * B(a)), "%"].join("") + } + }(c)); + return function (a, b) { + return function () { + return new R(null, 2, 5, T, [Vj, new R(null, 3, 5, T, [Bl, new r(null, 1, [Ql, a], null), + new R(null, 2, 5, T, [Cj, + new R(null, 2, 5, T, [ro, new r(null, 1, [fm, new r(null, 1, [fl, B(b)], null)], null)], + null)], null)], null)], null) + } + }(c, d) + } + + function DA(a, b, c, d) { + return function (e) { + return function () { + return new R(null, 5, 5, T, + [Kk, new R(null, 3, 5, T, [xA, a, d], null), new R(null, 3, 5, T, [AA, b, c], null), + new R(null, 1, 5, T, [BA], null), new R(null, 3, 5, T, [CA, e, d], null)], null) + } + }(yp(function () { + return B(b) / B(c) + })) + } + + function EA(a) { + return function (a) { + return function () { + return new R(null, 3, 5, T, [ol, new r(null, 1, [Sl, a], null), new R(null, 2, 5, T, [Xk, + new R(null, 2, 5, T, + [km, new R(null, 2, 5, T, [ro, new R(null, 1, 5, T, [sA], null)], null)], null)], + null)], null) + } + }(Ty(a, new fy(null, null, null))) + } + + function FA() { + return new R(null, 2, 5, T, [Ek, new R(null, 1, 5, T, [xn], null)], null) + } + + function GA(a) { + return Wf(function (b) { + return a[b] + }, new R(null, 4, 5, T, ["altKey", "shiftKey", "metaKey", "ctrlKey"], null)) + } + + function HA(a) { + var b = t(GA(a)) ? null : function () { + switch (a.key) { + case " ": + return new fy(null, null, null); + case "f": + return bm; + case "0": + return cy(0); + case "1": + return cy(.1); + case "2": + return cy(.2); + case "3": + return cy(.3); + case "4": + return cy(.4); + case "5": + return cy(.5); + case "6": + return cy(.6); + case "7": + return cy(.7); + case "8": + return cy(.8); + case "9": + return cy(.9); + default: + return null + } + }(); + if (t(b)) { + return b; + } + switch (a.key) { + case "\x3e": + return new ey(null, null, null); + case "\x3c": + return new dy(null, null, null); + default: + return null + } + } + + function IA(a) { + if (t(GA(a))) { + return null; + } + switch (a.which) { + case 37: + return new ay(null, null, null); + case 39: + return new $x(null, null, null); + default: + return null + } + } + + function JA(a) { + var b = HA(a); + return t(b) ? (a.preventDefault(), G.c(b, bm) ? (Ry(a.currentTarget), null) : b) : null + } + + function KA(a) { + var b = IA(a); + return t(b) ? (a.preventDefault(), b) : null + } + + function LA(a, b, c, d) { + a = t(a) ? ['"', v.h(a), '"'].join("") : "untitled"; + return new R(null, 4, 5, T, + [dl, t(d) ? new R(null, 2, 5, T, [jo, new r(null, 1, [zl, d], null)], null) : null, a, + t(b) ? new R(null, 3, 5, T, [ro, " by ", + t(c) ? new R(null, 3, 5, T, [lo, new r(null, 1, [ho, c], null), b], null) : b], null) + : null], null) + } + + function MA(a) { + var b = Mx(1, ig.h(iy)), c = Kx(1); + lx(function (c) { + return function () { + var d = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (x) { + if (x instanceof Object) { + b[5] = x, Cx(b), d = Z; + } else { + throw x; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, a) + } + throw Error("Invalid arity: " + + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function () { + return function (c) { + var d = c[1]; + if (7 === d) { + return c[7] = c[2], Ax(c, 12, b, !1); + } + if (1 === d) { + return c[2] = null, c[1] = 2, Z; + } + if (4 === d) { + return c[8] = c[2], Ax(c, 5, b, !0); + } + if (6 === d) { + return d = Jx(3E3), Ux(c, 8, new R(null, 2, 5, T, [a, d], null)); + } + if (3 === d) { + return Bx(c, c[2]); + } + if (12 === d) { + return c[9] = c[2], c[2] = null, c[1] = 2, Z; + } + if (2 === d) { + return zx(c, 4, a); + } + if (11 === d) { + return c[2] = c[2], c[1] = 7, Z; + } + if (9 === d) { + return c[2] = null, c[1] = 6, Z; + } + if (5 === d) { + return c[10] = c[2], c[2] = null, c[1] = 6, Z; + } + if (10 === d) { + return c[2] = + null, c[1] = 11, Z; + } + if (8 === d) { + var e = c[2]; + d = J(e, 0, null); + e = J(e, 1, null); + e = G.c(e, a); + c[11] = d; + c[1] = e ? 9 : 10; + return Z + } + return null + } + }(c), c) + }(), f = function () { + var a = d.B ? d.B() : d.call(null); + a[6] = c; + return a + }(); + return yx(f) + } + }(c)); + return b + } + + function NA(a, b) { + var c = dg.h(b), d = Kx(1); + lx(function (b, c) { + return function () { + var d = function () { + return function (a) { + return function () { + function b(b) { + for (; ;) { + a:try { + for (; ;) { + var c = a(b); + if (!N(c, Z)) { + var d = c; + break a + } + } + } catch (F) { + if (F instanceof Object) { + b[5] = F, Cx(b), d = Z; + } else { + throw F; + } + } + if (!N(d, Z)) { + return d + } + } + } + + function c() { + var a = [null, null, null, null, null, null, null, null, null, null, null, null, + null]; + a[0] = d; + a[1] = 1; + return a + } + + var d = null; + d = function (a) { + switch (arguments.length) { + case 0: + return c.call(this); + case 1: + return b.call(this, + a) + } + throw Error("Invalid arity: " + (arguments.length - 1)); + }; + d.B = c; + d.h = b; + return d + }() + }(function (b, c) { + return function (d) { + var e = d[1]; + if (7 === e) { + var f = d[7], h = wb(null == f); + d[8] = d[2]; + d[1] = h ? 8 : 9; + return Z + } + if (20 === e) { + return f = d[7], d[1] = t(q === f.Fe) ? 23 : 24, Z; + } + if (27 === e) { + return d[2] = !1, d[1] = 28, Z; + } + if (1 === e) { + return d[2] = null, d[1] = 2, Z; + } + if (24 === e) { + return f = d[7], d[1] = t(!f.Tc) ? 26 : 27, Z; + } + if (4 === e) { + f = d[7]; + var k = d[9]; + h = d[2]; + var l = J(h, 0, null), m = J(h, 1, null); + d[10] = m; + d[7] = l; + d[9] = h; + d[1] = t(null == l) ? 5 : 6; + return Z + } + return 15 === e ? (d[2] = !1, d[1] = + 16, Z) : 21 === e ? (f = d[7], h = Ab(Yx, f), d[2] = h, d[1] = 22, Z) : 31 === e + ? (d[11] = d[2], d[2] = null, d[1] = 2, Z) : 13 === e ? (d[2] = d[2], d[1] = 10, Z) + : 22 === e ? (d[1] = t(d[2]) ? 29 : 30, Z) : 29 === e ? (f = d[7], h = B( + a), h = Zx(f, h), h = gg.l(c, wo, h), d[2] = h, d[1] = 31, Z) : 6 === e + ? (d[2] = null, d[1] = 7, Z) : 28 === e ? (d[2] = d[2], d[1] = 25, Z) : 25 === e + ? (d[2] = d[2], d[1] = 22, Z) : 17 === e + ? (m = d[10], f = d[7], k = d[9], h = gg.c(a, function () { + return function (a, b) { + return function (a) { + return Xx(b, a) + } + }(k, f, m, m, f, k, e, b, c) + }()), d[2] = h, d[1] = 19, Z) : 3 === e ? Bx(d, d[2]) : 12 === e + ? (f = d[7], d[1] = t(!f.Tc) ? 14 : 15, Z) : + 2 === e ? (h = B(c), h = E(h), Ux(d, 4, h)) : 23 === e + ? (d[2] = !0, d[1] = 25, Z) : 19 === e ? (f = d[7], h = wb( + null == f), d[12] = d[2], d[1] = h ? 20 : 21, Z) : 11 === e + ? (d[2] = !0, d[1] = 13, Z) : 9 === e ? (f = d[7], h = Ab(Wx, + f), d[2] = h, d[1] = 10, Z) : 5 === e ? (m = d[10], h = gg.l(c, re, + m), d[2] = h, d[1] = 7, Z) : 14 === e ? (f = d[7], h = Ab(Wx, + f), d[2] = h, d[1] = 16, Z) : 26 === e ? (f = d[7], h = Ab(Yx, + f), d[2] = h, d[1] = 28, Z) : 16 === e ? (d[2] = d[2], d[1] = 13, Z) + : 30 === e ? (d[2] = null, d[1] = 31, Z) : 10 === e ? (d[1] = t( + d[2]) ? 17 : 18, Z) : 18 === e ? (d[2] = null, d[1] = 19, Z) : 8 + === e ? (f = d[7], d[1] = t(q === f.sb) ? 11 : 12, Z) : null + } + }(b, c), b, c) + }(), e = function () { + var a = + d.B ? d.B() : d.call(null); + a[6] = b; + return a + }(); + return yx(e) + } + }(d, c)); + return d + } + + function OA(a, b, c) { + c = Ty(c, !0); + var d = Sy(b, JA), e = Sy(b, KA), f = yp(function () { + return function () { + return Hm.h(B(a)) + } + }(c, d, e)), h = yp(function () { + return function () { + return el.h(B(a)) + } + }(c, d, e, f)), k = yp(function (a, b, c, d, e) { + return function () { + var a = B(d); + return t(a) ? a : B(e) + } + }(c, d, e, f, h)), l = yp(function (b, c, d, e, f, h) { + return function () { + var b = Gk.h(B(a)); + b = t(b) ? b : wb(B(h)); + return t(b) ? "hud" : null + } + }(c, d, e, f, h, k)), p = yp(function () { + return function () { + return ["asciinema-theme-", v.h(gm.h(B(a)))].join("") + } + }(c, d, e, f, h, k, l)), m = yp(function () { + return function () { + var b = + fl.h(B(a)); + return t(b) ? b : 80 + } + }(c, d, e, f, h, k, l, p)), u = yp(function () { + return function () { + var b = no.h(B(a)); + return t(b) ? b : 24 + } + }(c, d, e, f, h, k, l, p, m)), w = yp(function () { + return function () { + return wk.h(B(a)) + } + }(c, d, e, f, h, k, l, p, m, u)), x = yp(function () { + return function () { + return V.h(B(a)) + } + }(c, d, e, f, h, k, l, p, m, u, w)), C = yp(function () { + return function () { + return ml.h(B(a)) + } + }(c, d, e, f, h, k, l, p, m, u, w, x)), F = yp(function () { + return function () { + return jn.h(B(a)) + } + }(c, d, e, f, h, k, l, p, m, u, w, x, C)), I = yp(function () { + return function () { + return Uj.h(B(a)) + } + }(c, + d, e, f, h, k, l, p, m, u, w, x, C, F)), M = yp(function () { + return function () { + return wl.h(B(a)) + } + }(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I)), S = B(a), + X = null != S && (S.m & 64 || q === S.G) ? P(U, S) : S, Ga = D.c(X, ki), db = D.c(X, li), + Q = D.c(X, mi), xb = D.c(X, ni); + return function (a, c, d, e, f, h, k, l, m, p, u, w, x, C, F, I, M, S, Q, X, Ga, db) { + return function () { + return new R(null, 3, 5, T, + [Cn, new r(null, 5, [Jj, -1, Zj, c, Rn, d, Vm, a, vn, B(k)], null), new R(null, 7, 5, T, + [Sm, new r(null, 1, [vn, B(l)], null), new R(null, 6, 5, T, [rA, m, p, u, w, x], null), + new R(null, 5, 5, T, [DA, C, F, I, b], null), t(t(Q) ? Q : + X) ? new R(null, 5, 5, T, [LA, Q, X, Ga, db], null) : null, + t(B(h)) ? null : new R(null, 2, 5, T, [EA, b], null), + t(B(e)) ? new R(null, 1, 5, T, [FA], null) : null], null)], null) + } + }(c, d, e, f, h, k, l, p, m, u, w, x, C, F, I, M, S, X, Ga, db, Q, xb) + } + + function PA(a) { + var b = Kx(null), c = Kx(new dx(bx(1), 1)); + return function (b, c) { + return function () { + return Pp(new r(null, 4, [ln, "asciinema-player", Dm, function (b, c) { + return function () { + return OA(a, b, c) + } + }(b, c), $k, function (b, c) { + return function () { + var d = ty(Gl.h(B(a))), e = MA(c); + Tx(e, b); + return NA(a, Je([b, d])) + } + }(b, c), Wm, function () { + return function () { + return uy(Gl.h(B(a))) + } + }(b, c)], null)) + } + }(b, c) + }; + + function QA(a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, Ak), e = D.c(c, Gl); + d = a.h ? a.h(d) : a.call(null, d); + zy(e, d); + return K.l(c, Ak, d) + } + + $x.prototype.sb = q; + $x.prototype.qb = function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, Uj), e = D.c(c, wl), + f = D.c(c, Gl); + t(e) && yy(f, Nu(d + 5, e)); + return c + }; + ay.prototype.sb = q; + ay.prototype.qb = function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, Uj), e = D.c(c, wl), + f = D.c(c, Gl); + t(e) && yy(f, Nu(d + -5, e)); + return c + }; + by.prototype.sb = q; + by.prototype.qb = function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, wl), e = D.c(c, Gl); + t(d) && (d *= nn.h(this), yy(e, d)); + return c + }; + dy.prototype.sb = q; + dy.prototype.qb = function (a, b) { + return QA(function () { + return function (a) { + return a / 2 + } + }(this), b) + }; + ey.prototype.sb = q; + ey.prototype.qb = function (a, b) { + return QA(function () { + return function (a) { + return 2 * a + } + }(this), b) + }; + fy.prototype.sb = q; + fy.prototype.qb = function (a, b) { + xy(Gl.h(b)); + return b + }; + gy.prototype.sb = q; + gy.prototype.qb = function (a, b) { + return K.l(b, ml, so.h(this)) + }; + hy.prototype.sb = q; + hy.prototype.qb = function (a, b) { + return K.l(b, Gk, so.h(this)) + }; + jy.prototype.sb = q; + jy.prototype.qb = function (a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + D.c(c, fl); + D.c(c, no); + D.c(c, wl); + c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + var d = D.c(c, fl), e = D.c(c, no), + f = null != this && (this.m & 64 || q === this.G) ? P(U, this) : this, h = D.c(f, fl), + k = D.c(f, no); + f = D.c(f, wl); + return K.A(c, fl, t(d) ? d : h, be([no, t(e) ? e : k, wl, f])) + }; + ky.prototype.sb = q; + ky.prototype.qb = function (a, b) { + return K.l(b, Hm, Hm.h(this)) + }; + oy.prototype.sb = q; + oy.prototype.qb = function (a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, oi); + t(d) && (ap(bp), d.B ? d.B() : d.call(null)); + return c + }; + ry.prototype.sb = q; + ry.prototype.qb = function (a, b) { + return K.l(b, Uj, Zk.h(this)) + }; + + function RA() { + return ig.l(function (a, b) { + return new R(null, 2, 5, T, [a, new gy(b, null, null, null)], null) + }, rg(function (a) { + return a + .5 + }, .5), og(new R(null, 2, 5, T, [!1, !0], null))) + } + + function SA(a) { + var b = Dy(RA()); + return K.l(K.l(a, ml, !0), Ol, b) + } + + function TA(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + var b = D.c(a, Ol); + Tw(b); + return K.l(K.l(a, ml, !0), Ol, null) + } + + function UA(a) { + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + a = D.c(a, Ol); + return t(a) ? Je([a]) : vi + } + + my.prototype.sb = q; + my.prototype.qb = function (a, b) { + var c = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + D.c(c, jn); + var d = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, e = D.c(d, jn); + c = D.c(d, pi); + var f = D.c(d, qi), h = null != this && (this.m & 64 || q === this.G) ? P(U, this) : this; + h = D.c(h, jn); + if (G.c(e, h)) { + return d; + } + d = K.A(d, jn, h, be([el, !0])); + if (t(h)) { + return t(c) && (c.B ? c.B() : c.call(null)), SA(d); + } + t(f) && (f.B ? f.B() : f.call(null)); + return TA(d) + }; + my.prototype.Fe = q; + my.prototype.de = function (a, b) { + return UA(b) + }; + py.prototype.sb = q; + py.prototype.qb = function (a, b) { + var c = K.l(b, V, V.h(this)); + c = null != c && (c.m & 64 || q === c.G) ? P(U, c) : c; + var d = D.c(c, Ol); + return t(d) ? SA(TA(c)) : c + }; + py.prototype.Fe = q; + py.prototype.de = function (a, b) { + return UA(b) + }; + + function VA(a) { + return t(a) ? (a = ig.c(parseFloat, Fo("" + v.h(a), /:/)), a = ig.l(Ye, cf(a), rg(function () { + return function (a) { + return 60 * a + } + }(a), 1)), P(Xe, a)) : null + } + + function WA(a, b, c) { + t(a) ? "string" === typeof a ? t(0 === a.indexOf("data:application/json;base64,")) + ? (b = a.substring(29).replace(RegExp("\\s", "g"), ""), b = JSON.parse(atob(b)), b = fj( + b), b = new r(null, 1, [V, new r(null, 1, [il, b], null)], null)) : t( + 0 === a.indexOf("data:text/plain,")) ? (a = a.substring(16), b = Ju( + Ot(t(b) ? b : 80, t(c) ? c : 24), a), b = new r(null, 1, [V, b], null)) : b = t( + 0 === a.indexOf("npt:")) ? new r(null, 1, [Zk, VA(a.substring(4))], null) : null + : b = new r(null, 1, [V, new r(null, 1, [il, a], null)], null) : b = null; + return b + } + + var XA = new r(null, 2, [pl, new r(null, 1, [On, !1], null), il, he], null); + + function YA(a, b) { + var c = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b, d = D.c(c, no), + e = D.l(c, wk, "small"), f = D.l(c, Ak, 1), h = D.c(c, Hk), k = D.c(c, fl), l = D.c(c, rl), + p = D.l(c, cm, !1), m = D.l(c, gm, "asciinema"), u = D.c(c, qm), w = D.c(c, Bm), + x = D.l(c, vm, !1), C = D.l(c, Em, !1), F = function () { + var a = VA(h); + return t(a) ? a : 0 + }(); + w = WA(w, k, d); + var I = null != w && (w.m & 64 || q === w.G) ? P(U, w) : w; + w = D.c(I, V); + I = D.c(I, Zk); + var M = t(I) ? I : wb(w) && 0 < F ? F : null; + I = function () { + var b = Pe([Ak, Hk, fl, rl, cm, qm, vm, Em, Mm, no], [f, F, k, l, p, u, x, C, M, d]); + return xj.c ? xj.c(a, b) : xj.call(null, a, b) + }(); + return hi.A(be([Pe([Uj, V, wk, Ak, Gk, el, fl, wl, Gl, Ol, gm, Hm, jn, no], + [F, t(w) ? w : XA, e, f, !1, !1, k, null, I, null, m, !1, !1, d]), ji(c)])) + } + + function ZA(a, b, c) { + a = "string" === typeof a ? document.getElementById(a) : a; + b = tp.h(P(YA, be([b, c]))); + c = new R(null, 2, 5, T, [PA, b], null); + qq ? oq(c, a, null) : pq.call(null, c, a); + return b + } + + ib = function () { + function a(a) { + var c = null; + if (0 < arguments.length) { + c = 0; + for (var e = Array(arguments.length - 0); c < e.length;) { + e[c] = arguments[c + 0], ++c; + } + c = new Jb(e, 0, null) + } + return b.call(this, c) + } + + function b(a) { + return console.log.apply(console, Lb(a)) + } + + a.L = 0; + a.N = function (a) { + a = E(a); + return b(a) + }; + a.A = b; + return a + }(); + kb = function () { + function a(a) { + var c = null; + if (0 < arguments.length) { + c = 0; + for (var e = Array(arguments.length - 0); c < e.length;) { + e[c] = arguments[c + 0], ++c; + } + c = new Jb(e, 0, null) + } + return b.call(this, c) + } + + function b(a) { + return console.error.apply(console, Lb(a)) + } + + a.L = 0; + a.N = function (a) { + a = E(a); + return b(a) + }; + a.A = b; + return a + }(); + var $A = function $A(a) { + switch (arguments.length) { + case 2: + return $A.c(arguments[0], arguments[1]); + case 3: + return $A.l(arguments[0], arguments[1], arguments[2]); + default: + throw Error(["Invalid arity: ", v.h(arguments.length)].join("")); + } + }; + da("asciinema.player.js.CreatePlayer", $A); + $A.c = function (a, b) { + return $A.l(a, b, Ef) + }; + $A.l = function (a, b, c) { + b = fj(b); + c = yo(fj(c)); + a = ZA(a, b, c); + return cj(new r(null, 5, [En, function (a, b, c) { + return function () { + return Uj.h(B(c)) + } + }(b, c, a), Bj, function (a, b, c) { + return function (a) { + var b = B(c); + b = null != b && (b.m & 64 || q === b.G) ? P(U, b) : b; + D.c(b, wl); + b = D.c(b, Gl); + return yy(b, a) + } + }(b, c, a), Zm, function (a, b, c) { + return function () { + return wl.h(B(c)) + } + }(b, c, a), Jn, function (a, b, c) { + return function () { + var a = B(c); + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + a = D.c(a, Gl); + return vy(a) + } + }(b, c, a), sn, function (a, b, c) { + return function () { + var a = + B(c); + a = null != a && (a.m & 64 || q === a.G) ? P(U, a) : a; + a = D.c(a, Gl); + return wy(a) + } + }(b, c, a)], null)) + }; + $A.L = 3; + da("asciinema.player.js.UnmountPlayer", function (a) { + a = "string" === typeof a ? document.getElementById(a) : a; + gg.l(lq, le, a); + return kq().unmountComponentAtNode(a) + }); + registerAsciinemaPlayerElement(); +})(); + +//# sourceMappingURL=asciinema-player.js.map diff --git a/docs/contributing/README.md b/docs/contributing/README.md index 8ba1f31cb1..854139a319 100644 --- a/docs/contributing/README.md +++ b/docs/contributing/README.md @@ -1,2 +1 @@ # Contributing - diff --git a/docs/contributing/info.md b/docs/contributing/info.md index 3f4cc12f16..b6b784226b 100644 --- a/docs/contributing/info.md +++ b/docs/contributing/info.md @@ -2,181 +2,180 @@ Thanks for contributing to ObjectMappers! -This is a set of guidelines for contributing to IceCore Hashids. Please take a moment to review this document in order to make the contribution process easy and effective for everyone involved. +This is a set of guidelines for contributing to IceCore Hashids. Please take a moment to review this document to make the contribution process easy and effective for everyone involved. Following these guidelines helps to communicate that you respect the time of the developers managing and developing this open source project. In return, they should reciprocate that respect in addressing your issue, assessing changes, and helping you finalize your pull requests. As for everything else in the project, the contributions to IceCore Hashids are governed by our [Code of Conduct](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/CODE_OF_CONDUCT.md). By participating, you are expected to uphold this code. Please report unacceptable behavior via [email](mailto:development@nullables.io). -## _Getting Started_ +## *Getting Started* ObjectMappers is an open source project and we love to receive contributions from the community! There are many ways to contribute, from [writing- and improving documentation and tutorials](info.md), [reporting bugs](info.md#bug-reports), [submitting enhancement suggestions](info.md#enhancement-suggestions) which can be incorporated into IceCore Hashids itself by [submitting a pull request](info.md#pull-requests). The project development workflow and process uses [GitHub Issues](https://github.com/AlexRogalskiy/object-mappers-playground/issues)- and [Pull Requests](https://github.com/AlexRogalskiy/object-mappers-playground/pulls) management to track issues and pull requests. -Before you continue with this contribution guideslines we highly recommend to read the awesome GitHub [Open Source Guide](https://opensource.guide) on how to [making open source contributions](https://opensource.guide/how-to-contribute). +Before you continue with this contribution guideslines we highly recommend to read the awesome GitHub [Open source Guide](https://opensource.guide) on how to [making open source contributions](https://opensource.guide/how-to-contribute). -### _Bug Reports_ +### *Bug Reports* -A bug is a _demonstrable problem_ that is caused by the code in the repository. This section guides you through submitting a bug report for IceCore Hashids. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior and find related reports. +A bug is a *demonstrable problem* that is caused by the code in the repository. This section guides you through submitting a bug report for IceCore Hashids. Following these guidelines helps maintainers and the community understand your report, reproduce the behavior and find related reports. **Do NOT report security vulnerabilities in public issues!** Please contact the core team members and the project owner in a responsible manner by [email](mailto:development@nullables.io) only. We will assess the issue as soon as possible on a best-effort basis and will give you an estimate for when we have a fix and release available for an eventual public disclosure. -* **Use the** [**GitHub Issues search**](https://github.com/AlexRogalskiy/object-mappers-playground/issues) โ€” check if the issue has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one. If you find a closed issue that seems like it is the same thing that you are experiencing, open a new issue and include a link to the original issue in the body of your new one. -* **Check if the issue has been fixed** โ€” try to reproduce it using the [latest version](https://github.com/AlexRogalskiy/object-mappers-playground/releases/latest) and [`develop`](https://github.com/AlexRogalskiy/object-mappers-playground/tree/develop) branch in the repository. -* **Isolate the problem** โ€” ideally create a [MCVE](info.md#mcve). +- **Use the** [**GitHub Issues search**](https://github.com/AlexRogalskiy/object-mappers-playground/issues) โ€” check if the issue has already been reported. If it has **and the issue is still open**, add a comment to the existing issue instead of opening a new one. If you find a closed issue that seems like it is the same thing that you are experiencing, open a new issue and include a link to the original issue in the body of your new one. +- **Check if the issue has been fixed** โ€” try to reproduce it using the [latest version](https://github.com/AlexRogalskiy/object-mappers-playground/releases/latest) and [`develop`](https://github.com/AlexRogalskiy/object-mappers-playground/tree/develop) branch in the repository. +- **Isolate the problem** โ€” ideally create a [MCVE](info.md#mcve). When you are creating a bug report, please provide as much detail and context as possible. Fill out [the required template](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/.github/ISSUE_TEMPLATE.md), the information it asks for helps maintainers to reproduce the problem and resolve issues faster. -* **Use a clear and descriptive title** for the issue to identify the problem. -* **Describe the exact steps which reproduce the problem** in as many details as possible. -* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. -* **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets. If you are providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/basic-writing-and-formatting-syntax) or [attach files to the issue](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests). +- **Use a clear and descriptive title** for the issue to identify the problem. +- **Describe the exact steps which reproduce the problem** in as many details as possible. +- **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the problem. +- **Provide specific examples to demonstrate the steps**. Include links to files or GitHub projects, or copy/pasteable snippets. If you are providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/basic-writing-and-formatting-syntax) or [attach files to the issue](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests). If possible please provide more context by answering these questions: -* **Did the problem start happening recently** \(e.g. after updating to a new version of IceCore Hashids\) or was this always a problem? If the problem started happening recently, **can you reproduce the problem in an older version of IceCore Hashids**? What is the most recent version in which the problem does not happen? -* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. +- **Did the problem start happening recently** (for example after updating to a new version of IceCore Hashids) or was this always a problem? If the problem started happening recently, **can you reproduce the problem in an older version of IceCore Hashids**? What is the most recent version in which the problem does not happen? +- **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens. Please include details about your configuration and environment: -* What is the version of IceCore Hashids you are using? -* What is the name and the version of the OS you're using? - * Have you tried to reproduce it on different OS environments and if yes is the behavior the same for all? -* Which Java JDK/JRE distribution and version are you using? \(_Oracle_, _OpenJDK_, ...\) -* Are you running the project with your IDE or Maven? - * Are you using any additional CLI arguments for Java or Maven? - * What is the name and the version of the IDE you're using? +- What is the version of IceCore Hashids you are using? +- What is the name and the version of the OS you're using? + - Have you tried to reproduce it on different OS environments and if yes is the behavior the same for all? +- Which Java JDK/JRE distribution and version are you using? (*Oracle*, *OpenJDK*, ...) +- Are you running the project with your IDE or Maven? + - Are you using any additional CLI arguments for Java or Maven? + - What is the name and the version of the IDE you're using? -### _Enhancement Suggestions_ +### *Enhancement Suggestions* This section guides you through submitting an enhancement suggestion, including completely new features and minor improvements to existing functionality. Following these guidelines helps maintainers and the community understand your suggestion and find related suggestions. -* **Use the** [**GitHub Issues search**](https://github.com/AlexRogalskiy/object-mappers-playground/issues) โ€” check if this enhancement has already been suggested. If it has **and the issue is still open**, add your additions as comment to the existing issue instead of opening a new one. -* **Check if the enhancement has already been implemented** โ€” use the [latest version](https://github.com/AlexRogalskiy/object-mappers-playground/releases/latest) and [`develop`](https://github.com/AlexRogalskiy/object-mappers-playground/tree/develop) branch to ensure that the feature or improvement has not already been added. -* **Provide a reduced show case** โ€” ideally create a [MCVE](info.md#mcve). +- **Use the** [**GitHub Issues search**](https://github.com/AlexRogalskiy/object-mappers-playground/issues) โ€” check if this enhancement has already been suggested. If it has **and the issue is still open**, add your additions as comment to the existing issue instead of opening a new one. +- **Check if the enhancement has already been implemented** โ€” use the [latest version](https://github.com/AlexRogalskiy/object-mappers-playground/releases/latest) and [`develop`](https://github.com/AlexRogalskiy/object-mappers-playground/tree/develop) branch to ensure that the feature or improvement has not already been added. +- **Provide a reduced show case** โ€” ideally create a [MCVE](info.md#mcve). Before creating enhancement suggestions, please check if your idea fits with the scope and provide as much detail and context as possible using a structured layout like the [the issue template](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/.github/ISSUE_TEMPLATE.md). -* **Use a clear and descriptive title** for the issue to identify the suggestion. -* **Provide a step-by-step description of the suggested enhancement** in as many details as possible and provide use-cases. -* **Provide examples to demonstrate the need of an enhancement**. Include copy/pasteable snippets which you use in those examples, use [Markdown code blocks](https://help.github.com/articles/basic-writing-and-formatting-syntax) or [attach files to the issue](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests). -* **Describe the current behavior** and **explain which behavior you expected to see instead** and why. -* **Explain why this enhancement would be useful** to most IceCore Hashids users. -* **List some other libraries where this enhancement exists.** +- **Use a clear and descriptive title** for the issue to identify the suggestion. +- **Provide a step-by-step description of the suggested enhancement** in as many details as possible and provide use-cases. +- **Provide examples to demonstrate the need of an enhancement**. Include copy/pasteable snippets which you use in those examples, use [Markdown code blocks](https://help.github.com/articles/basic-writing-and-formatting-syntax) or [attach files to the issue](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests). +- **Describe the current behavior** and **explain which behavior you expected to see instead** and why. +- **Explain why this enhancement would be useful** to most IceCore Hashids users. +- **List some other libraries where this enhancement exists.** -### _Pull Requests_ +### *Pull Requests* This section guides you through submitting an pull request. Following these guidelines helps maintainers and the community to better understand your code. -**Please** [**suggest an enhancement**](info.md#enhancement-suggestions) **or** [**report a bug**](info.md#bug-reports) **first before embarking on any significant pull request** \(e.g. implementing features, refactoring code, fixing a bug\), otherwise you risk spending a lot of time working on something that the core team members and project owner might not want to merge into the project. +**Please** [**suggest an enhancement**](info.md#enhancement-suggestions) **or** [**report a bug**](info.md#bug-reports) **first before embarking on any significant pull request** (for example implementing features, refactoring code, fixing a bug), otherwise you risk spending a lot of time working on something that the core team members and project owner might not want to merge into the project. When you are submitting an pull request, please provide as much detail and context as possible. Fill out [the required template](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/.github/PULL_REQUEST_TEMPLATE.md) to help maintainers to understand your submitted code. -* **Use a clear and descriptive title for the pull request** -* **Do not include issue numbers in the pull request title** but fill in the metadata section at the top of the [required pull request template](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/.github/PULL_REQUEST_TEMPLATE.md) making use of the [GitHub issue keywords](https://help.github.com/articles/closing-issues-using-keywords) to link to specific [enhancement suggestions](info.md#enhancement-suggestions) or [bug reports](info.md#bug-reports). -* **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the change. -* **Make sure to follow the** [**Java**](info.md#java-code-style) **and** [**Git commit message**](info.md#git-commit-messages) **style guides**. -* **Remain focused in scope and avoid to include unrelated commits**. -* **Features and improvements should always be accompanied with tests and documentation**. If the pull request improves the performance consider to include a benchmark test, optimally including a chart. -* **Lint and test before submitting the pull request**. -* **Make sure to create the pull request from a** [**topic branch**](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows). +- **Use a clear and descriptive title for the pull request** +- **Do not include issue numbers in the pull request title** but fill in the metadata section at the top of the [required pull request template](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/.github/PULL_REQUEST_TEMPLATE.md) making use of the [GitHub issue keywords](https://help.github.com/articles/closing-issues-using-keywords) to link to specific [enhancement suggestions](info.md#enhancement-suggestions) or [bug reports](info.md#bug-reports). +- **Include screenshots and animated GIFs** which show you following the described steps and clearly demonstrate the change. +- **Make sure to follow the** [**Java**](info.md#java-code-style) **and** [**Git commit message**](info.md#git-commit-messages) **style guides**. +- **Remain focused in scope and avoid to include unrelated commits**. +- **Features and improvements should always be accompanied with tests and documentation**. If the pull request improves the performance consider to include a benchmark test, optimally including a chart. +- **Lint and test before submitting the pull request**. +- **Make sure to create the pull request from a** [**topic branch**](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows). **All pull requests must be send against the `develop` branch** - Please read the [branch organization](info.md#branch-organization) section below for details about the branching model. -### _Documentations_ +### *Documentations* IceCore Hashids has two main sets of documentation: the docs and guides, which helps users to learn about the project, and the API, which serves as a reference. You can help improve the docs and guides by making them more coherent, consistent or readable, adding missing information, correcting factual errors, fixing typos, bringing them up to date when there are differences to the latest version. This can be done by submitting a [enhancement suggestion](info.md#enhancement-suggestions) and then opening a [pull request](info.md#pull-requests) for it. -## _Branch Organization_ +## *Branch Organization* The IceCore Hashids uses the [gitflow](http://nvie.com/posts/a-successful-git-branching-model) branching model. The repository consists of two core branches with an infinite development lifecycle: -* `master` - The source code of `HEAD` always reflects a tagged release version. -* `develop` - The default branch where the source code of `HEAD` always reflects a state with the latest development state. +- `master` - The source code of `HEAD` always reflects a tagged release version. +- `develop` - The default branch where the source code of `HEAD` always reflects a state with the latest development state. -**All** [**pull requests**](info.md#pull-requests) **for the limited development lifecycle** _**story**_**/**_**topic**_ **branches must be send against the `develop` branch**. +**All** [**pull requests**](info.md#pull-requests) **for the limited development lifecycle** ***story***\*\*/\*\****topic*** **branches must be send against the `develop` branch**. -## _How else can I help?_ +## *How else can I help?* -### _Improve Issues_ +### *Improve Issues* Some issues are created with missing information, not reproducible, or plain invalid. You can help to make it easier for maintainer to understand and resolve them faster. since handling issues takes a lot of time that could rather spend on writing code. -### _Give Feedback On Issues and Pull Requests_ +### *Give Feedback On Issues and Pull Requests* We're always looking for more opinions on discussions in issues and pull request reviews which is a good opportunity to influence the future direction of IceCore Hashids. The [question](https://github.com/AlexRogalskiy/object-mappers-playground/labels/question) issue label is a good place to find ongoing discussions and questions. -## _Styleguides_ +## *StyleguIDes* Every major open source project has its own style guide, a set of standards and conventions for the writing and design of code, documentations and Git commit messages. It is much easier to understand a large codebase when all the code in it is in a consistent style. A style guide establishes and enforces style to improve the intelligibility and communication within the project community. It ensures consistency and enforces best practice in usage and language composition. -### _Java Code Style_ +### *Java Code Style* -IceCore Hasids adheres to the \[Nullables Studio Java Style Guide\]\[styleguide-java-github\]. +IceCore Hasids adheres to the \[Nullables Studio Java Style Guide]\[styleguide-java-github]. -\[!\[\]\[styleguide-java-badge\]\]\[styleguide-java-github\] +\[!\[]\[styleguide-java-badge]]\[styleguide-java-github] -### _Git Commit Messages_ +### *Git Commit Messages* -A well-crafted Git commit message is the best way to communicate _context_ about a change to the maintainers. The code will tell what changed, but only the commit message can properly tell why. Re-establishing the context of a piece of code is wasteful. We can't avoid it completely, so our efforts should go to reducing it as much as possible. +A well-crafted Git commit message is the best way to communicate *context* about a change to the maintainers. The code will tell what changed, but only the commit message can properly tell why. Re-establishing the context of a piece of code is wasteful. We can't avoid it completely, so our efforts should go to reducing it as much as possible. -IceCore Hasids adheres to the \[Nullables Studio Git Style Guide\]\[styleguide-git-github\]. +IceCore Hasids adheres to the \[Nullables Studio Git Style Guide]\[styleguide-git-github]. -\[!\[\]\[styleguide-git-badge\]\]\[styleguide-git-github\] +\[!\[]\[styleguide-git-badge]]\[styleguide-git-github] The style guide assumes that you are familiar with the [gitflow](http://nvie.com/posts/a-successful-git-branching-model) branching model. -## _MCVE_ +## *MCVE* A Minimal, Complete, and Verifiable Example. When [reporting a bug](info.md#bug-reports), sometimes even when [suggestig a enhancement](info.md#enhancement-suggestions), the issue can be processed faster if you provide code for reproduction. That code should beโ€ฆ -* โ€ฆMinimal โ€“ Use as little code as possible that still produces the same behavior -* โ€ฆComplete โ€“ Provide all parts needed to reproduce the behavior -* โ€ฆVerifiable โ€“ Test the code you're about to provide to make sure it reproduces the behavior +- โ€ฆMinimal โ€“ Use as little code as possible that still produces the same behavior +- โ€ฆComplete โ€“ Provide all parts needed to reproduce the behavior +- โ€ฆVerifiable โ€“ Test the code you're about to provide to make sure it reproduces the behavior -A MCVE is a common practice like on [Stack Overflow](https://stackoverflow.com/help/mcve) and sometimes it is also called [SSCCE](http://sscce.org), a _Short, Self Contained, Correct \(Compilable\), Example_. +A MCVE is a common practice like on [Stack Overflow](https://stackoverflow.com/help/mcve) and sometimes it is also called [SSCCE](http://sscce.org), a *Short, Self Contained, Correct (Compilable), Example*. The recommended way for GitHub based projects is to create it as [Gist](https://gist.github.com) or new repository, but of course you can [attach it to issues and pull requests as files](https://help.github.com/articles/file-attachments-on-issues-and-pull-requests), use any free code paste- or file hosting service or paste the code in [Markdown code blocks](https://help.github.com/articles/basic-writing-and-formatting-syntax) into the issue. -### _Minimal_ +### *Minimal* The more code there is to go through, the less likely developers can understand your enhancement or find the bug. Streamline your example in one of two ways: -* **Restart from scratch**. Create new code, adding in only what is needed to demonstrate the behavior and is also useful if you can't post the original code publicly for legal or ethical reasons. -* **Divide and conquer**. When you have a small amount of code, but the source of the bug is entirely unclear, start removing code a bit at a time until the problem disappears โ€“ then add the last part back and document this behavior to help developers to trace- and debug faster. +- **Restart from scratch**. Create new code, adding in only what is needed to demonstrate the behavior and is also useful if you can't post the original code publicly for legal or ethical reasons. +- **Divide and conquer**. When you have a small amount of code, but the source of the bug is entirely unclear, start removing code a bit at a time until the problem disappears โ€“ then add the last part back and document this behavior to help developers to trace- and debug faster. -#### _Minimal and readable_ +#### *Minimal and readable* -Minimal does not mean terse โ€“ don't sacrifice communication to brevity. Use consistent naming and indentation following the [styleguide](info.md#styleguides), and include comments if needed to explain portions of the code. +Minimal does not mean terse โ€“ don't sacrifice communication to brevity. Use consistent naming and indentation following the [styleguIDe](info.md#styleguides), and include comments if needed to explain portions of the code. -### _Complete_ +### *Complete* Make sure all resources and code necessary to reproduce the behavior is included. The problem might not be in the part you suspect it is, but another part entirely. -### _Verifiable_ +### *Verifiable* -To entirely understand your enhancement or bug report, developers will need to verify that it _exists_: +To entirely understand your enhancement or bug report, developers will need to verify that it *exists*: -* **Follow the contribution guidelines regarding the description and details**. Without information developers won't be able to understand and reproduce the behavior. -* **Eliminate any issues that aren't relevant**. Ensure that there are no compile-time errors. -* **Make sure that the example actually reproduces the problem**. Sometimes the bug gets fixed inadvertently or unconsciously while composing the example or does not occur when running on fresh machine environment. +- **Follow the contribution guidelines regarding the description and details**. Without information developers won't be able to understand and reproduce the behavior. +- **Eliminate any issues that aren't relevant**. Ensure that there are no compile-time errors. +- **Make sure that the example actually reproduces the problem**. Sometimes the bug gets fixed inadvertently or unconsciously while composing the example or does not occur when running on fresh machine environment. -## _Versioning_ +## *Versioning* -IceCore Hashids follows the \[Arctic Versioning Specification\]\[arcver\] \(ArcVer\) which is a lightweight and fully compatible derivative of [Semantic Versioning](http://semver.org) \(SemVer\). We release patch versions for bugfixes, minor versions for enhancements like new features and improvements, and major versions for any backwards incompatible changes. Deprecation warnings are introduced for breaking changes in a minor version so that users learn about the upcoming changes and migrate their code in advance. +IceCore Hashids follows the \[Arctic Versioning Specification]\[arcver] (ArcVer) which is a lightweight and fully compatible derivative of [Semantic Versioning](http://semver.org) (SemVer). We release patch versions for bugfixes, minor versions for enhancements like new features and improvements, and major versions for any backwards incompatible changes. Deprecation warnings are introduced for breaking changes in a minor version so that users learn about the upcoming changes and migrate their code in advance. Every significant change is documented in the [changelog](https://github.com/AlexRogalskiy/object-mappers-playground/blob/develop/CHANGELOG.md). -## _Credits_ - -Thanks for the inspirations and attributions to GitHub's [Open Source Guides](https://opensource.guide) and various contribution guides of large open source projects like [Atom](https://github.com/atom/atom/blob/master/CONTRIBUTING.md), [React](https://facebook.github.io/react/contributing/how-to-contribute.html) and [Ruby on Rails](http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html). +## *Credits* +Thanks for the inspirations and attributions to GitHub's [Open source Guides](https://opensource.guide) and various contribution guides of large open source projects like [Atom](https://github.com/atom/atom/blob/master/CONTRIBUTING.md), [React](https://facebook.github.io/react/contributing/how-to-contribute.html) and [Ruby on Rails](http://guides.rubyonrails.org/contributing_to_ruby_on_rails.html). diff --git a/docs/links/README.md b/docs/links/README.md index 708c5acb59..17622ae080 100644 --- a/docs/links/README.md +++ b/docs/links/README.md @@ -1,2 +1 @@ # Links - diff --git a/docs/links/info.md b/docs/links/info.md index 70ee4f3d75..92995f17cf 100644 --- a/docs/links/info.md +++ b/docs/links/info.md @@ -1,6 +1,5 @@ # Resources -## _Useful Links and Materials_ - -* [**Java Bean Mappers**](https://www.frank-rahn.de/java-bean-mapper/) +## *Useful Links and Materials* +- [**Java Bean Mappers**](https://www.frank-rahn.de/java-bean-mapper/) diff --git a/docs/requirements.txt b/docs/requirements.txt new file mode 100644 index 0000000000..47aa6e56bd --- /dev/null +++ b/docs/requirements.txt @@ -0,0 +1,19 @@ +click-man>=0.4.1 +mkdocs>=1.2 +pygments>=2.4 +mkdocs-material>=7.1.2 +markdown>=3.2 +markdown-checklist>=0.4.1 +fontawesome-markdown>=0.2.6 +markdown-include>=0.6.0 +pymdown-extensions>=8.2 +python-markdown-math>=0.6 +mkdocs-material-extensions>=1.0 +mkdocs-git-revision-date-localized-plugin>=0.9.2 +mkdocs-awesome-pages-plugin>=2.5.0 +mdx-truly-sane-lists>=1.2 +mkdocs-include-markdown-plugin>=3.2.1 +mkdocs-redirects>=1.0.3 +smarty>=0.3.3 +dumb-init>=1.2.5 +cookiecutter>=1.7.3 diff --git a/docs/units/README.md b/docs/units/README.md index 876cfb5f40..a6405361b6 100644 --- a/docs/units/README.md +++ b/docs/units/README.md @@ -1,2 +1 @@ # Units - diff --git a/docs/units/design-patterns.md b/docs/units/design-patterns.md index bd69e2669d..c8fdb56e27 100644 --- a/docs/units/design-patterns.md +++ b/docs/units/design-patterns.md @@ -15,9 +15,10 @@ Super-powers are granted randomly so please submit an issue if you're not happy Once you're strong enough, save the world: {% code title="hello.sh" %} + ```bash # Ain't no code for that yet, sorry echo 'You got to trust me on this, I saved the world' ``` -{% endcode %} +{% endcode %} diff --git a/docs/units/scenarios.md b/docs/units/scenarios.md index 6fdf455bf3..13063eb25d 100644 --- a/docs/units/scenarios.md +++ b/docs/units/scenarios.md @@ -15,9 +15,10 @@ Super-powers are granted randomly so please submit an issue if you're not happy Once you're strong enough, save the world: {% code title="hello.sh" %} + ```bash # Ain't no code for that yet, sorry echo 'You got to trust me on this, I saved the world' ``` -{% endcode %} +{% endcode %} diff --git a/docs/units/use-cases.md b/docs/units/use-cases.md index 2239a6eb39..9379e1bb00 100644 --- a/docs/units/use-cases.md +++ b/docs/units/use-cases.md @@ -15,9 +15,10 @@ Super-powers are granted randomly so please submit an issue if you're not happy Once you're strong enough, save the world: {% code title="hello.sh" %} + ```bash # Ain't no code for that yet, sorry echo 'You got to trust me on this, I saved the world' ``` -{% endcode %} +{% endcode %} diff --git a/docs/user-guide/README.md b/docs/user-guide/README.md index ba623ff35b..cd3d452278 100644 --- a/docs/user-guide/README.md +++ b/docs/user-guide/README.md @@ -1,2 +1 @@ # User Guide - diff --git a/docs/user-guide/changelog.md b/docs/user-guide/changelog.md index a9e526c8f1..aa46d47119 100644 --- a/docs/user-guide/changelog.md +++ b/docs/user-guide/changelog.md @@ -1,18 +1,17 @@ # Changelog -## _15.0.0 - 2042-12-03_ +## *15.0.0 - 2042-12-03* -### _Fixed_ +### *Fixed* -* Removed humans, they weren't doing fine with animals. +- Removed humans, they weren't doing fine with animals. -### _Changed_ +### *Changed* -* Animals are now super cute, all of them. +- Animals are now super cute, all of them. -## _14.0.0 - 2042-10-06_ +## *14.0.0 - 2042-10-06* -### _Added_ - -* Introduced animals into the world, we believe they're going to be a neat addition. +### *Added* +- Introduced animals into the world, we believe they're going to be a neat addition. diff --git a/docs/user-guide/code_of_conduct.md b/docs/user-guide/code_of_conduct.md index f21703c653..39131ca9e1 100644 --- a/docs/user-guide/code_of_conduct.md +++ b/docs/user-guide/code_of_conduct.md @@ -4,42 +4,42 @@ All members, committers and volunteers in this project are required to act accor If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact us via [email](mailto:development@nullables.io). Your reports will be taken seriously and not dismissed or argued with. -## _What we believe in and how we act_ +## *What we believe in and how we act* -* In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. We welcome people regardless of these or other attributes. -* Our community is based on mutual respect, tolerance, and encouragement. -* We believe that a diverse community where people treat each other with respect is stronger, more vibrant and has more potential contributors and more sources for ideas. We aim for more diversity. -* We are kind, welcoming and courteous to everyone. -* We are respectful of others, their positions, their skills, their commitments and their efforts. -* We are attentive in our communications, whether in person or online, and we are tactful and respectful when approaching differing views and experiences. -* We are aware that language shapes reality. Thus, we use inclusive, gender-neutral language in the documents we provide and when we talk to people. When referring to a group of people, we aim to use gender-neutral terms like "team", "folks" or "everyone". [1](https://modelviewculture.com/pieces/gendered-language-feature-or-bug-in-software-documentation) -* We respect that people have differences of opinion and criticize constructively. +- In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation. We welcome people regardless of these or other attributes. +- Our community is based on mutual respect, tolerance, and encouragement. +- We believe that a diverse community where people treat each other with respect is stronger, more vibrant and has more potential contributors and more sources for ideas. We aim for more diversity. +- We are kind, welcoming and courteous to everyone. +- We are respectful of others, their positions, their skills, their commitments and their efforts. +- We are attentive in our communications, whether in person or online, and we are tactful and respectful when approaching differing views and experiences. +- We are aware that language shapes reality. Thus, we use inclusive, gender-neutral language in the documents we provide and when we talk to people. When referring to a group of people, we aim to use gender-neutral terms like "team", "folks" or "everyone". [1](https://modelviewculture.com/pieces/gendered-language-feature-or-bug-in-software-documentation) +- We respect that people have differences of opinion and criticize constructively. If you are being harassed, notice that someone else is being harassed, or have any other concerns, please contact us via [email](mailto:development@nullables.io). Your reports will be taken seriously and not dismissed or argued with. -## _Unacceptable Behavior_ +## *Unacceptable Behavior* -* Do not be mean or rude. -* Do not discriminate against anyone. -* Sexism and racism of any kind \(including sexist and racist "jokes"\), demeaning or insulting behaviour and harassment are seen as direct violations to this Code of Conduct. Harassment includes offensive verbal comments related to age, body size, culture, ethnicity, gender expression, gender identity, level of experience, nationality, personal ability or disability, physical appearance, physical or mental difference, race, religion, set of skills, sexual orientation, socio-economic status, and subculture. Harassment also includes sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, inappropriate physical contact, and unwelcome sexual attention. -* Respect that some individuals and cultures consider the casual use of profanity offensive and off-putting. -* Derailing, tone arguments and otherwise playing on people's desires to be nice are not welcome, especially in discussions about violations to this Code of Conduct. -* Please avoid unstructured critique. -* Likewise any spamming, trolling, flaming, baiting or other attention-stealing behaviour is not welcome. -* Publishing others' private information, such as a physical or electronic address, without explicit permission -* Other conduct which could reasonably be considered inappropriate in a professional setting +- Do not be mean or rude. +- Do not discriminate against anyone. +- Sexism and racism of any kind (including sexist and racist "jokes"), demeaning or insulting behaviour and harassment are seen as direct violations to this Code of Conduct. Harassment includes offensive verbal comments related to age, body size, culture, ethnicity, gender expression, gender identity, level of experience, nationality, personal ability or disability, physical appearance, physical or mental difference, race, religion, set of skills, sexual orientation, socio-economic status, and subculture. Harassment also includes sexual images in public spaces, deliberate intimidation, stalking, following, harassing photography or recording, inappropriate physical contact, and unwelcome sexual attention. +- Respect that some individuals and cultures consider the casual use of profanity offensive and off-putting. +- Derailing, tone arguments and otherwise playing on people's desires to be nice are not welcome, especially in discussions about violations to this Code of Conduct. +- Please avoid unstructured critique. +- Likewise any spamming, trolling, flaming, baiting or other attention-stealing behaviour is not welcome. +- Publishing others' private information, such as a physical or electronic address, without explicit permission +- Other conduct which could reasonably be considered inappropriate in a professional setting -## _Responsibilities_ +## *Responsibilities* Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior. -## _Enforcement_ +## *Enforcement* Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project core team members or owner via [email](mailto:development@nullables.io). The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately. Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership. -## _Consequences for Violations_ +## *Consequences for Violations* If a participant engages in any behaviour violating this Code of Conduct, the core team members and project owner of this project may take any action they deem appropriate, including warning the offender or expulsion from the project, exclusion from any interaction and loss of all rights in this project. @@ -47,9 +47,8 @@ Project maintainers have the right and responsibility to remove, edit, or reject Decisions about consequences of violations of this Code of Conduct are made by this projects core team members and project owner as named above and will not be discussed with the person responsible for the violation. -## _Scope_ +## *Scope* -This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. - -Thanks for the inspirations and attributions to GitHub's [Open Source Guides](https://opensource.guide), [Hoodie's Code of Conduct](http://hood.ie/code-of-conduct) and the [Contributor Covenant Version 1.4](http://contributor-covenant.org/version/1/4/). +This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers. +Thanks for the inspirations and attributions to GitHub's [Open source Guides](https://opensource.guide), [Hoodie's Code of Conduct](http://hood.ie/code-of-conduct) and the [Contributor Covenant Version 1.4](http://contributor-covenant.org/version/1/4/). diff --git a/docs/user-guide/code_owners.md b/docs/user-guide/code_owners.md index 4bd304fca0..11f74d37b5 100644 --- a/docs/user-guide/code_owners.md +++ b/docs/user-guide/code_owners.md @@ -2,12 +2,11 @@ > **Configuration for the GitHub feature to automatically request reviews from the code owners when a pull request changes any owned files.** -## _References_ +## *References* -* [https://github.com/blog/2392-introducing-code-owners](https://github.com/blog/2392-introducing-code-owners) -* [https://help.github.com/articles/about-codeowners](https://help.github.com/articles/about-codeowners) +- +- -## _Ownership_ - -* [https://github.com/AlexRogalskiy/](https://github.com/AlexRogalskiy/) +## *Ownership* +- diff --git a/docs/user-guide/dependency.md b/docs/user-guide/dependency.md index a6c0d1a574..17950479ab 100644 --- a/docs/user-guide/dependency.md +++ b/docs/user-guide/dependency.md @@ -1,6 +1,6 @@ # Dependency Management -## _Maven_ +## *Maven* ObjectMappers playground dependency can be simply acquired by adding the following code snippet to your `pom.xml`: @@ -10,9 +10,8 @@ ObjectMappers playground dependency can be simply acquired by adding the followi 0.1.0-SNAPSHOT ``` -## _Gradle_ +## *Gradle* ```groovy compile 'io.nullables.api.playground:objectmappers-all:0.1.0-SNAPSHOT' ``` - diff --git a/docs/user-guide/faq.md b/docs/user-guide/faq.md index 35c594fbff..cc383e57b1 100644 --- a/docs/user-guide/faq.md +++ b/docs/user-guide/faq.md @@ -1,10 +1,9 @@ # FAQ -## _Can I become who I want to be?_ +## *Can I become who I want to be?* That's a tough question but thankfully, our team is on it. Please bear with us while we're investigating. -## _Have you had a chance to answer the previous question?_ +## *Have you had a chance to answer the previous question?* Yes, after a few months we finally found the answer. Sadly, Mike is on vacations right now so I'm afraid we are not able to provide the answer at this point. - diff --git a/docs/user-guide/getting-started.md b/docs/user-guide/getting-started.md index b9102206a0..59a435c010 100644 --- a/docs/user-guide/getting-started.md +++ b/docs/user-guide/getting-started.md @@ -1,6 +1,5 @@ # Getting Started -## _Basic Usage_ +## *Basic Usage* Please see [./index.md](https://github.com/AlexRogalskiy/object-mappers-playground/blob/master/docs/index.md) - diff --git a/docs/user-guide/troubleshooting.md b/docs/user-guide/troubleshooting.md index b24d649c61..8b7b33e450 100644 --- a/docs/user-guide/troubleshooting.md +++ b/docs/user-guide/troubleshooting.md @@ -1,6 +1,6 @@ # Troubleshooting -## _Filing Bugs & Troubleshooting_ +## *Filing Bugs & Troubleshooting* These are required prerequisites before filing an issue on GitHub @@ -14,33 +14,33 @@ See the [Upgrading guide](https://github.com/AlexRogalsky/object-mappers-playgro ### Step 2: Search Relevant Places For Similar Issues -* [ ] Search issues on the [repo](https://github.com/AlexRogalsky/object-mappers-playground/) for a similar problems? -* [ ] Read the [README](https://github.com/AlexRogalsky/object-mappers-playground/blob/master/README.md) carefully +- \[ ] Search issues on the [repository](https://github.com/AlexRogalsky/object-mappers-playground/) for a similar problems? +- \[ ] Read the [README](https://github.com/AlexRogalsky/object-mappers-playground/blob/master/README.md) carefully ### Step 3: Observe Build Logs When Developing Locally -* [ ] Run the [fastpages blog server locally](https://github.com/AlexRogalskiy/object-mappers-playground/tree/411b3cc78f62a724d9d5eab4c09535e4ed36ceb3/docs/user-guide/DEVELOPMENT.md) - * Pay attention to the emitted logs when you save your notebooks or files. Often, you will see errors here that will give you important clues. -* [ ] When developing locally, you will notice that Jupyter notebooks are converted to corresponding markdown files in the `_posts` folder. Take a look at the problematic blog posts and see if you can spot the offending HTML or markdown in that code. -* Use your browser's developer tools to see if there are any errors. Common errors are \(1\) not able to find images because they have not been saved into the right folder, \(2\) javascript or other errors. -* If you receive a Jekyll build error or a Liquid error, search for this error on Stack Overflow to provide more insight on the problem. +- \[ ] Run the [fastpages blog server locally](https://github.com/AlexRogalskiy/object-mappers-playground/tree/411b3cc78f62a724d9d5eab4c09535e4ed36ceb3/docs/user-guide/DEVELOPMENT.md) + - Pay attention to the emitted logs when you save your notebooks or files. Often, you will see errors here that will give you important clues. +- \[ ] When developing locally, you will notice that Jupyter notebooks are converted to corresponding Markdown files in the `_posts` folder. Take a look at the problematic blog posts and see if you can spot the offending HTML or Markdown in that code. +- Use your browser's developer tools to see if there are any errors. Common errors are (1) not able to find images because they have not been saved into the right folder, (2) JavaScript or other errors. +- If you receive a Jekyll build error or a Liquid error, search for this error on Stack Overflow to provide more insight on the problem. ### Step 4: See if there are errors in the build process of GitHub Actions. -* [ ] In your GitHub repository, you will have a tab called **Actions**. To find build errors, click on the `Event` dropdown list and select `push`. Browse through the logs to see if you can find an error. If you receive an error, read the error message and try to debug. +- \[ ] In your GitHub repository, you will have a tab called **Actions**. To find build errors, click on the `Event` dropdown list and select `push`. Browse through the logs to see if you can find an error. If you receive an error, read the error message and try to debug. ### Step 5: Once you have performed all the above steps, post your issue in the fastai forums or a GitHub Issue. -* [ ] If you cannot find a similar issue create a new thread instead of commenting on an unrelated one. -* When reporting a bug, provide this information: +- \[ ] If you cannot find a similar issue create a new thread instead of commenting on an unrelated one. +- When reporting a bug, provide this information: 1. Steps to reproduce the problem - 2. **A link to the notebook or markdown file** where the error is occurring - 3. If the error is happening in GitHub Actions, a link to the specific error along with how you are able to reproduce this error. You must provide this **in addition to the link to the notebook or markdown file**. - 4. A screenshot / dump of relevant logs or error messages you are receiving from your local development environment. the local development server as indicated in the [development guide](https://github.com/fastai/fastpages/blob/master/_fastpages_docs/DEVELOPMENT.md). + 2. **A link to the notebook or Markdown file** where the error is occurring + 3. If the error is happening in GitHub Actions, a link to the specific error along with how you are able to reproduce this error. You must provide this **in addition to the link to the notebook or Markdown file**. + 4. A screenshot / dump of relevant logs or error messages you are receiving from your local development environment. the local development server as indicated in the [development guide](https://github.com/fastai/fastpages/blob/master/\_fastpages_docs/DEVELOPMENT.md). **You must provide ALL of the above information**. -## _Frequent Errors_ +## *Frequent Errors* 1. Malformed front matter. Note that anything defined in front matter must be valid YAML. **Failure to provide valid YAML could result in your page not rendering** in your blog. For example, if you want a colon in your title you must escape it with double quotes like this: @@ -61,4 +61,3 @@ See the [Upgrading guide](https://github.com/AlexRogalsky/object-mappers-playgro 2. Can you customize the styling or theme? **A**: See [Customizing](https://github.com/AlexRogalskiy/object-mappers-playground#customizing-fastpages) See the [FAQ](https://github.com/AlexRogalskiy/object-mappers-playground#faq) for frequently asked questions. - diff --git a/docs/user-guide/upgrade.md b/docs/user-guide/upgrade.md index 8e10a9287c..952c6fbbd6 100644 --- a/docs/user-guide/upgrade.md +++ b/docs/user-guide/upgrade.md @@ -1,54 +1,52 @@ # Upgrading -* [Automated Upgrade](upgrade.md#automated-upgrade) - * [Step 1: Open An Issue With The Upgrade Template.](upgrade.md#step-1-open-an-issue-with-the-upgrade-template) - * [Step 2: Click `Submit new issue`](upgrade.md#step-2-click-submit-new-issue) - * [Step 3: A Link to Pull Request Will Appear](upgrade.md#step-3-a-link-to-pull-request-will-appear) - * [Step 4: Review & Merge PR](upgrade.md#step-4-review-merge-pr) -* [Manual Upgrade](upgrade.md#manual-upgrade) - * [Easy Way \(Recommended\)](upgrade.md#easy-way-recommended) - * [Advanced](upgrade.md#advanced) -* [Additional Resources](upgrade.md#additional-resources) +- [Automated Upgrade](upgrade.md#automated-upgrade) + - [Step 1: Open An Issue With The Upgrade Template.](upgrade.md#step-1-open-an-issue-with-the-upgrade-template) + - [Step 2: Click `Submit new issue`](upgrade.md#step-2-click-submit-new-issue) + - [Step 3: A Link to Pull Request Will Appear](upgrade.md#step-3-a-link-to-pull-request-will-appear) + - [Step 4: Review & Merge PR](upgrade.md#step-4-review-and-merge-pr) +- [Manual Upgrade](upgrade.md#manual-upgrade) + - [Easy Way (Recommended)](upgrade.md#easy-way-recommended) + - [Advanced](upgrade.md#advanced) There are two ways to upgrade. One is an automated way that assumes you have made no changes to the HTML of your site. Alternatively, you may [upgrade manually](upgrade.md#manual-upgrade) and determine which changes to accept or reject. For most people we recommend upgrading fastpages automatically. -## _Automated Upgrade_ +## *Automated Upgrade* -* This method is appropriate for those who have not customized the HTML of their site. -* **If you are unsure, try the Automated approach and review which files are changed in the automated PR** to see if this appropriate for you. +- This method is appropriate for those who have not customized the HTML of their site. +- **If you are unsure, try the Automated approach and review which files are changed in the automated PR** to see if this appropriate for you. ### Step 1: Open An Issue With The Upgrade Template. -* Open a new issue in your repository, and push the "Get Started" button for the `[ObjectMappers] Automated Upgrade` Issue template, which looks like this: - * **IF YOU DON'T SEE THIS**: you have an older version of fastpages and you **must** [**manually upgrade**](upgrade.md#manual-upgrade) **once** to get this new functionality. +- Open a new issue in your repository, and push the "Get Started" button for the `[ObjectMappers] Automated Upgrade` Issue template, which looks like this: + - **IF YOU DON'T SEE THIS**: you have an older version of fastpages and you **must** [**manually upgrade**](upgrade.md#manual-upgrade) **once** to get this new functionality. ### Step 2: Click `Submit new issue` -* Be careful not to change anything before clicking the button. +- Be careful not to change anything before clicking the button. ### Step 3: A Link to Pull Request Will Appear -* This issue will trigger GitHub to open a PR making changes to your repository for the upgrade to take place. A comment with the link to the PR will be made in the issue, and will look like this: +- This issue will trigger GitHub to open a PR making changes to your repository for the upgrade to take place. A comment with the link to the PR will be made in the issue, and will look like this: It is possible that you might receive an error message instead of this command. You can follow the instructions in the comment to troubleshoot the issue. Common reasons for receiving an error are: - * You are up to date, therefore no upgrade is possible. You will see an error that there is "nothing to commit". - * You already have a PR from a previous upgrade open that you never merged. + - You are up to date, therefore no upgrade is possible. You will see an error that there is "nothing to commit". + - You already have a PR from a previous upgrade open that you never merged. -### Step 4: Review & Merge PR +### Step 4: Review and Merge PR -* Ensure that you read the instructions in the PR carefully. Furthermore, carefully review which files will be changed to determine if this interferes with any customizations you have mades to your site. When ready, select `Merge pull request`. -* If the PR is making undesired changes to files you can use the manual upgrade approach instead. +- Ensure that you read the instructions in the PR carefully. Furthermore, carefully review which files will be changed to determine if this interferes with any customizations you have mades to your site. When ready, select `Merge pull request`. +- If the PR is making undesired changes to files you can use the manual upgrade approach instead. -## _Manual Upgrade_ +## *Manual Upgrade* -### Easy Way \(Recommended\) +### Easy Way (Recommended) -Create a new repo with the current project by following the [setup instructions](https://github.com/AlexRogalskiy/object-mappers-playground#setup-instructions) in the README. +Create a new repository with the current project by following the [setup instructions](https://github.com/AlexRogalskiy/object-mappers-playground#setup-instructions) in the README. ### Advanced -* This method is appropriate for those who made customizations to the HTML. -* You must proceed with caution, as new versions may not be compatible with your customizations. -* Be careful to not duplicate files, as files have been reorganized several times. - +- This method is appropriate for those who made customizations to the HTML. +- You must proceed with caution, as new versions may not be compatible with your customizations. +- Be careful to not duplicate files, as files have been reorganized several times. diff --git a/images/awesome.svg b/images/awesome.svg new file mode 100644 index 0000000000..8bc8ddc22c --- /dev/null +++ b/images/awesome.svg @@ -0,0 +1 @@ + diff --git a/images/opengraph-card.png b/images/opengraph-card.png new file mode 100644 index 0000000000..99796b230f Binary files /dev/null and b/images/opengraph-card.png differ diff --git a/k8s/README.md b/k8s/README.md new file mode 100644 index 0000000000..3c534d4dbe --- /dev/null +++ b/k8s/README.md @@ -0,0 +1,42 @@ +# Deploy `android-patterns` + +`android-patterns` k8s manifests: + +- [common](common) +- [backend](backend) + +Deploy `android-patterns` in the `webapp` namespace: + +```bash +$ kubectl apply -f ./common +$ kubectl apply -f ./backend +``` + +Deploy `android-patterns` in the `dev` namespace: + +```bash +$ kustomize build ./overlays/dev | kubectl apply -f- +``` + +Deploy `android-patterns` in the `staging` namespace: + +```bash +$ kustomize build ./overlays/staging | kubectl apply -f- +``` + +Deploy `android-patterns` in the `prod` namespace: + +```bash +$ kustomize build ./overlays/prod | kubectl apply -f- +``` + +## Testing Locally Using Kind + +> NOTE: You can install [kind from here](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) + +The following will create a new cluster called "android-patterns" and configure host ports on 8000 and 8443. You can access the endpoints on localhost. The example also +deploys cert-manager within the cluster along with a self-signed cluster issuer used to generate the certificate to validate the secure port. + +```bash +$ ./kind.sh +``` diff --git a/k8s/backend/deployment.yaml b/k8s/backend/deployment.yaml new file mode 100644 index 0000000000..f519d2f00d --- /dev/null +++ b/k8s/backend/deployment.yaml @@ -0,0 +1,133 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: backend-android-patterns-configmap + namespace: webapp + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: serverless + app.kubernetes.io/managed-by: tilt +data: + SERVER_PORT: '8000' + APP_NAME: styled-android-patterns +--- +apiVersion: v1 +kind: Service +metadata: + name: backend-android-patterns + namespace: webapp + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: serverless + app.kubernetes.io/managed-by: tilt +spec: + type: ClusterIP + clusterIP: None + sessionAffinity: None + ports: + - name: http + protocol: TCP + port: 8000 + targetPort: http + selector: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/version: v1 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-android-patterns-v1 + namespace: webapp + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt +spec: + replicas: 1 + minReadySeconds: 60 + revisionHistoryLimit: 5 + progressDeadlineSeconds: 120 + strategy: + rollingUpdate: + maxSurge: 10% + maxUnavailable: 0 + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/version: v1 + template: + metadata: + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/version: v1 + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' + spec: + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + terminationGracePeriodSeconds: 30 +# tolerations: +# - key: "node-priority" +# operator: "Equal" +# value: "infra" +# effect: "NoExecute" +# nodeSelector: +# node-priority: infra + containers: + - name: backend-android-patterns + image: styled-android-patterns + imagePullPolicy: IfNotPresent + terminationMessagePath: /etc/logs/termination.log + terminationMessagePolicy: File + ports: + - name: http + containerPort: 8000 + protocol: TCP + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: USER_AGENT + value: "k8s-agent $(WATCH_NAMESPACE)/$(POD_NAME)" + - name: LOG_DIR + value: "/tmp/logs" + volumeMounts: + - name: data + mountPath: "/data" + - name: data-tmp + mountPath: "/tmp" + resources: + requests: + cpu: 1 + memory: "2G" + ephemeral-storage: "2G" + limits: + cpu: 2 + memory: "3G" + ephemeral-storage: "3G" + securityContext: + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: false + runAsNonRoot: false + volumes: + - name: data + emptyDir: {} + - name: data-tmp + emptyDir: {} diff --git a/k8s/backend/hpa.yaml b/k8s/backend/hpa.yaml new file mode 100644 index 0000000000..87a28beb5e --- /dev/null +++ b/k8s/backend/hpa.yaml @@ -0,0 +1,29 @@ +apiVersion: autoscaling/v2beta2 +kind: HorizontalPodAutoscaler +metadata: + name: backend + namespace: webapp + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: backend + minReplicas: 1 + maxReplicas: 2 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + # scale up if usage is above + # 99% of the requested CPU (100m) + averageUtilization: 99 diff --git a/k8s/backend/job.yaml b/k8s/backend/job.yaml new file mode 100644 index 0000000000..4ffbb35d0a --- /dev/null +++ b/k8s/backend/job.yaml @@ -0,0 +1,25 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: backend-test + namespace: webapp + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + backoffLimit: 1 + template: + metadata: + labels: + app: backend + spec: + containers: + - name: backend-test + image: curlimages/curl + command: ['curl', '-fsSL', 'http://backend:8000/android-patterns'] + restartPolicy: Never diff --git a/k8s/backend/kustomization.yaml b/k8s/backend/kustomization.yaml new file mode 100644 index 0000000000..cdcb8f5ed6 --- /dev/null +++ b/k8s/backend/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - service.yaml + - deployment.yaml + - hpa.yaml diff --git a/k8s/backend/service.yaml b/k8s/backend/service.yaml new file mode 100644 index 0000000000..48c34068b0 --- /dev/null +++ b/k8s/backend/service.yaml @@ -0,0 +1,22 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend + namespace: webapp + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + type: ClusterIP + selector: + app: backend + ports: + - name: http + port: 8000 + protocol: TCP + targetPort: http diff --git a/k8s/common/namespace.yaml b/k8s/common/namespace.yaml new file mode 100644 index 0000000000..11ec570cbc --- /dev/null +++ b/k8s/common/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: webapp diff --git a/k8s/common/reconciler-rbac.yaml b/k8s/common/reconciler-rbac.yaml new file mode 100644 index 0000000000..3bc05a729b --- /dev/null +++ b/k8s/common/reconciler-rbac.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: reconciler + namespace: webapp +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: reconciler + namespace: webapp +rules: + - apiGroups: ['*'] + resources: ['*'] + verbs: ['*'] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: reconciler + namespace: webapp +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: reconciler +subjects: + - kind: ServiceAccount + name: reconciler + namespace: webapp diff --git a/k8s/common/service-account.yaml b/k8s/common/service-account.yaml new file mode 100644 index 0000000000..12d9d86d30 --- /dev/null +++ b/k8s/common/service-account.yaml @@ -0,0 +1,5 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: webapp + namespace: webapp diff --git a/k8s/kind.sh b/k8s/kind.sh new file mode 100644 index 0000000000..fbd59d50e6 --- /dev/null +++ b/k8s/kind.sh @@ -0,0 +1,47 @@ +#! /usr/bin/env sh + +mkdir -p bin +cat >./bin/kind.yaml <>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" +echo "http endpoint:" +echo "curl http://localhost:8000/" +echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" +curl http://localhost:8000/ + +echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" +echo "https (secure) endpoint:" +echo "curl --insecure https://localhost:8443/" +echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" +curl --insecure https://localhost:8443/ diff --git a/k8s/overlays/dev/kustomization.yaml b/k8s/overlays/dev/kustomization.yaml new file mode 100644 index 0000000000..cc0fe588c7 --- /dev/null +++ b/k8s/overlays/dev/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../backend + - namespace.yaml +transformers: + - labels.yaml diff --git a/k8s/overlays/dev/labels.yaml b/k8s/overlays/dev/labels.yaml new file mode 100644 index 0000000000..c8bbb19f5c --- /dev/null +++ b/k8s/overlays/dev/labels.yaml @@ -0,0 +1,10 @@ +apiVersion: builtin +kind: LabelTransformer +metadata: + name: labels +labels: + env: dev + instance: webapp +fieldSpecs: + - path: metadata/labels + create: true diff --git a/k8s/overlays/dev/namespace.yaml b/k8s/overlays/dev/namespace.yaml new file mode 100644 index 0000000000..8cab297810 --- /dev/null +++ b/k8s/overlays/dev/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: dev diff --git a/k8s/overlays/prod/kustomization.yaml b/k8s/overlays/prod/kustomization.yaml new file mode 100644 index 0000000000..cc0fe588c7 --- /dev/null +++ b/k8s/overlays/prod/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../backend + - namespace.yaml +transformers: + - labels.yaml diff --git a/k8s/overlays/prod/labels.yaml b/k8s/overlays/prod/labels.yaml new file mode 100644 index 0000000000..8ae1e75df9 --- /dev/null +++ b/k8s/overlays/prod/labels.yaml @@ -0,0 +1,10 @@ +apiVersion: builtin +kind: LabelTransformer +metadata: + name: labels +labels: + env: prod + instance: webapp +fieldSpecs: + - path: metadata/labels + create: true diff --git a/k8s/overlays/prod/namespace.yaml b/k8s/overlays/prod/namespace.yaml new file mode 100644 index 0000000000..5f325a9a52 --- /dev/null +++ b/k8s/overlays/prod/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: prod diff --git a/k8s/overlays/staging/kustomization.yaml b/k8s/overlays/staging/kustomization.yaml new file mode 100644 index 0000000000..cc0fe588c7 --- /dev/null +++ b/k8s/overlays/staging/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ../../backend + - namespace.yaml +transformers: + - labels.yaml diff --git a/k8s/overlays/staging/labels.yaml b/k8s/overlays/staging/labels.yaml new file mode 100644 index 0000000000..d910cd9fec --- /dev/null +++ b/k8s/overlays/staging/labels.yaml @@ -0,0 +1,10 @@ +apiVersion: builtin +kind: LabelTransformer +metadata: + name: labels +labels: + env: staging + instance: webapp +fieldSpecs: + - path: metadata/labels + create: true diff --git a/k8s/overlays/staging/namespace.yaml b/k8s/overlays/staging/namespace.yaml new file mode 100644 index 0000000000..ee38adfbde --- /dev/null +++ b/k8s/overlays/staging/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: staging diff --git a/k8s/secure/backend/certificate.yaml b/k8s/secure/backend/certificate.yaml new file mode 100644 index 0000000000..05a95034fb --- /dev/null +++ b/k8s/secure/backend/certificate.yaml @@ -0,0 +1,20 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: backend + namespace: secure + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + dnsNames: + - localhost + secretName: backend-tls + issuerRef: + name: self-signed + kind: ClusterIssuer diff --git a/k8s/secure/backend/deployment.yaml b/k8s/secure/backend/deployment.yaml new file mode 100644 index 0000000000..c0535e0e39 --- /dev/null +++ b/k8s/secure/backend/deployment.yaml @@ -0,0 +1,80 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend + namespace: secure + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + replicas: 1 + minReadySeconds: 60 + revisionHistoryLimit: 5 + progressDeadlineSeconds: 120 + strategy: + rollingUpdate: + maxSurge: 10% + maxUnavailable: 0 + type: RollingUpdate + selector: + matchLabels: + app: backend + template: + metadata: + labels: + app: backend + spec: + serviceAccountName: webapp + containers: + - name: backend + image: android-patterns + imagePullPolicy: IfNotPresent + securityContext: + capabilities: + drop: + - ALL + add: + - NET_BIND_SERVICE + allowPrivilegeEscalation: true + ports: + - name: http + containerPort: 8000 + protocol: TCP + hostPort: 8000 + - name: https + containerPort: 443 + protocol: TCP + hostPort: 8443 + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + resources: + limits: + cpu: 2000m + memory: 512Mi + requests: + cpu: 100m + memory: 32Mi + volumeMounts: + - name: data + mountPath: /data + - name: tls + mountPath: /data/cert + readOnly: true + volumes: + - name: data + emptyDir: {} + - name: tls + secret: + secretName: backend-tls diff --git a/k8s/secure/backend/hpa.yaml b/k8s/secure/backend/hpa.yaml new file mode 100644 index 0000000000..4bf157d9fa --- /dev/null +++ b/k8s/secure/backend/hpa.yaml @@ -0,0 +1,29 @@ +apiVersion: autoscaling/v2beta2 +kind: HorizontalPodAutoscaler +metadata: + name: backend + namespace: secure + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + scaleTargetRef: + apiVersion: apps/v1 + kind: Deployment + name: backend + minReplicas: 1 + maxReplicas: 2 + metrics: + - type: Resource + resource: + name: cpu + target: + type: Utilization + # scale up if usage is above + # 99% of the requested CPU (100m) + averageUtilization: 99 diff --git a/k8s/secure/backend/service.yaml b/k8s/secure/backend/service.yaml new file mode 100644 index 0000000000..efc775e11a --- /dev/null +++ b/k8s/secure/backend/service.yaml @@ -0,0 +1,26 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend + namespace: secure + labels: + app.kubernetes.io/name: backend + app.kubernetes.io/instance: android-patterns + app.kubernetes.io/version: '0.0.0' + app.kubernetes.io/component: backend + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: tilt + +spec: + type: ClusterIP + selector: + app: backend + ports: + - name: http + port: 8000 + protocol: TCP + targetPort: http + - name: https + port: 443 + protocol: TCP + targetPort: https diff --git a/k8s/secure/common/cluster-issuer.yaml b/k8s/secure/common/cluster-issuer.yaml new file mode 100644 index 0000000000..e41b9ffd6d --- /dev/null +++ b/k8s/secure/common/cluster-issuer.yaml @@ -0,0 +1,6 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: self-signed +spec: + selfSigned: {} diff --git a/k8s/secure/common/config-map.yaml b/k8s/secure/common/config-map.yaml new file mode 100644 index 0000000000..04ada5c944 --- /dev/null +++ b/k8s/secure/common/config-map.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: secure + namespace: secure + labels: + addonmanager.kubernetes.io/mode: EnsureExists diff --git a/k8s/secure/common/namespace.yaml b/k8s/secure/common/namespace.yaml new file mode 100644 index 0000000000..28165dd783 --- /dev/null +++ b/k8s/secure/common/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: secure diff --git a/k8s/secure/common/reconciler-rbac.yaml b/k8s/secure/common/reconciler-rbac.yaml new file mode 100644 index 0000000000..07087e7d8a --- /dev/null +++ b/k8s/secure/common/reconciler-rbac.yaml @@ -0,0 +1,29 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: reconciler + namespace: secure +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: reconciler + namespace: secure +rules: + - apiGroups: ['*'] + resources: ['*'] + verbs: ['*'] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: reconciler + namespace: secure +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: reconciler +subjects: + - kind: ServiceAccount + name: reconciler + namespace: secure diff --git a/k8s/secure/common/service-account.yaml b/k8s/secure/common/service-account.yaml new file mode 100644 index 0000000000..9736014635 --- /dev/null +++ b/k8s/secure/common/service-account.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ServiceAccount +metadata: + name: secure + namespace: secure + labels: + kubernetes.io/cluster-service: 'true' + addonmanager.kubernetes.io/mode: Reconcile diff --git a/lgtm.yml b/lgtm.yml new file mode 100644 index 0000000000..634eb7238b --- /dev/null +++ b/lgtm.yml @@ -0,0 +1,15 @@ +extraction: + javascript: + index: + exclude: + - .dependabot + - .github + - .husky + - config + - docs + - images + - node_modules + - reports + - scripts + filters: + - exclude: '**/*.bundle.js' diff --git a/mkdocs.yml b/mkdocs.yml index 3c33c8d6ba..e4c98eb0b7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,8 +1,8 @@ site_name: Android Patterns site_description: > - android design patterns and architectural concepts + android code patterns and basic architecture designing concepts site_author: Alexander Rogalskiy -site_url: https://alexander-rogalsky.gitbook.io/android-patterns-docs/ +site_url: https://alexander-rogalsky.gitbook.io/android-patterns/ repo_name: AlexRogalskiy/android-patterns repo_url: https://gitlab.com/AlexRogalskiy/android-patterns @@ -11,68 +11,115 @@ edit_uri: https://gitlab.com/AlexRogalskiy/android-patterns/master/docs/ #Copyright (shown at the footer) copyright: 'Copyright © 2021 Nullables.io' +# Extra Files +extra_javascript: + - assets/js/asciinema-player.js + +extra_css: + - assets/css/asciinema-player.css + - assets/css/extra.css + +# Theme theme: name: material + language: en + highlightjs: true font: text: Roboto code: Roboto Mono - palette: - scheme: preference - primary: deep-orange - accent: deep-orange features: - - navigation.tabs + - tabs + - navigation.top + - navigation.tabs.sticky + - navigation.tracking + - navigation.sections + - navigation.expand + - navigation.indexes - search.suggest - search.highlight - header.autohide - highlightjs: true - language: 'en' + - toc.integrate + - content.tabs.link + palette: + - media: '(prefers-color-scheme: light)' + scheme: default + primary: 'black' + accent: 'grey' + toggle: + icon: material/toggle-switch-off-outline + name: Switch to dark mode + - media: '(prefers-color-scheme: dark)' + scheme: slate + primary: light blue + toggle: + icon: material/toggle-switch + name: Switch to light mode + logo: assets/images/logos/logo.svg + favicon: assets/images/favicons/favicon.ico + icon: + repo: fontawesome/brands/github +# Plugins plugins: - search + - git-revision-date-localized: # https://squidfunk.github.io/mkdocs-material/plugins/revision-date/ + fallback_to_build_date: true + type: date + - awesome-pages # https://squidfunk.github.io/mkdocs-material/plugins/awesome-pages/ + - include-markdown # https://github.com/mondeja/mkdocs-include-markdown-plugin # - minify: # minify_html: true +# Extra extra: + generator: false social: - icon: fontawesome/brands/github-alt link: 'https://github.com/AlexRogalskiy/android-patterns' + version: + provider: mike +# Extensions markdown_extensions: - - markdown.extensions.admonition - - markdown.extensions.codehilite: + - toc: + permalink: true + toc_depth: 3 + - def_list: {} + - footnotes: {} + - tables: {} + - meta: {} + - admonition: {} # https://squidfunk.github.io/mkdocs-material/extensions/admonition/ + - codehilite: # https://squidfunk.github.io/mkdocs-material/extensions/codehilite/ linenums: true use_pygments: false - - markdown.extensions.def_list - - markdown.extensions.footnotes - - markdown.extensions.meta - - markdown.extensions.toc: - permalink: true + guess_lang: false + - pymdownx.highlight: {} + - pymdownx.tasklist: + custom_checkbox: true + - pymdownx.extra: {} + - pymdownx.tilde: {} + - pymdownx.magiclink: {} + - pymdownx.caret: {} + - pymdownx.smartsymbols: {} + - pymdownx.progressbar: {} + - pymdownx.arithmatex: {} + - pymdownx.mark: {} + - pymdownx.critic: {} + - pymdownx.inlinehilite: {} # https://squidfunk.github.io/mkdocs-material/extensions/pymdown/#inlinehilite + - pymdownx.superfences: # https://squidfunk.github.io/mkdocs-material/extensions/pymdown/#superfences + custom_fences: + - name: mermaid + class: mermaid + format: !!python/name:pymdownx.superfences.fence_div_format + - pymdownx.tabbed: {} # https://squidfunk.github.io/mkdocs-material/extensions/pymdown/#tabbed + - pymdownx.details: {} # https://squidfunk.github.io/mkdocs-material/extensions/pymdown/#details + - pymdownx.emoji: # https://squidfunk.github.io/mkdocs-material/reference/icons-emojis/#configuration + emoji_index: !!python/name:materialx.emoji.twemoji + emoji_generator: !!python/name:materialx.emoji.to_svg + - smarty: {} # https://python-markdown.github.io/extensions/smarty/ + - nl2br: {} # https://python-markdown.github.io/extensions/smarty/ + - mdx_truly_sane_lists: {} # https://github.com/radude/mdx_truly_sane_lists -> proper indentation of md list items + - markdown.extensions.attr_list: {} -pages: - - Introduction: README.md - - Table of contents: SUMMARY.md - - User Guide: - - Changelog: user-guide/changelog.md - - Dependency: user-guide/dependency.md - - FAQ: user-guide/faq.md - - Getting Started: user-guide/getting-started.md - - Code of Conduct: user-guide/code_of_conduct.md - - Code Owners: user-guide/code_owners.md - - Troubleshooting: user-guide/troubleshooting.md - - Upgrade: user-guide/upgrade.md - - Units: - - Design patterns: units/design-patterns.md - - Scenarios: units/scenarios.md - - Use cases: units/use-cases.md - - Contributing: - - Information: contributing/info.md - - Reporting: - - Information: reporting/info.md - - Bug Report: reporting/bug_report.md - - Custom Report: reporting/custom_report.md - - Issue Report: reporting/issue_template.md - - Feature Request: reporting/feature_request_template.md - - Pull Request: reporting/pull_request_template.md - - Links: - - Information: links/info.md +# Other Settings +strict: false # halt processing when a warning is raised diff --git a/okteto-pipeline.yml b/okteto-pipeline.yml new file mode 100644 index 0000000000..de81edba5e --- /dev/null +++ b/okteto-pipeline.yml @@ -0,0 +1,10 @@ +icon: https://okteto.com/icons/icon-384x384.png +deploy: + - okteto build -t okteto.dev/styled-android-patterns . +# - kubectl create clusterrolebinding kube-system-cluster-admin --clusterrole=cluster-admin --serviceaccount=kube-system:default +# - kubectl create role access-secrets --verb=get,list,watch,update,create --resource=secrets +# - kubectl create rolebinding --role=access-secrets default-to-secrets --serviceaccount=kube-system:default +# - helm upgrade --install backend-android-patterns -f charts/values.yaml --create-namespace --namespace webapp charts --set tag=${OKTETO_GIT_COMMIT} + - kubectl apply -f okteto/deployment.yaml +devs: + - okteto.yml diff --git a/okteto.yml b/okteto.yml new file mode 100644 index 0000000000..1d60227670 --- /dev/null +++ b/okteto.yml @@ -0,0 +1,33 @@ +name: backend-android-patterns-v1 +image: okteto/styled-android-patterns +labels: + app.kubernetes.io/part-of: devops + app.kubernetes.io/component: documentation +environment: + - ENVIRONMENT=Development +# command: [ "/usr/bin/python3.8", "-m", "mkdocs", "serve", "--verbose", "--dirtyreload", "--dev-addr=0.0.0.0:8000" ] +sync: + - .:/docs +workdir: . +remote: 2222 +resources: + requests: + memory: "64Mi" + cpu: "250m" + limits: + memory: "128Mi" + cpu: "500m" +forward: + - 8000:8000 +persistentVolume: + enabled: false +lifecycle: + postStart: false + postStop: true +securityContext: + runAsUser: 1000 + runAsGroup: 2000 + fsGroup: 3000 + capabilities: + add: + - SYS_PTRACE diff --git a/okteto/deployment.yaml b/okteto/deployment.yaml new file mode 100644 index 0000000000..0ddf5a8ba5 --- /dev/null +++ b/okteto/deployment.yaml @@ -0,0 +1,148 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: backend-android-patterns-configmap + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: serverless + app.kubernetes.io/managed-by: okteto +data: + SERVER_PORT: '8000' + APP_NAME: styled-android-patterns +--- +apiVersion: v1 +kind: Service +metadata: + name: backend-android-patterns + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: serverless + app.kubernetes.io/managed-by: okteto +spec: + type: ClusterIP + clusterIP: None + sessionAffinity: None + ports: + - name: http + protocol: TCP + port: 8000 + targetPort: http + selector: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/version: v1 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: backend-android-patterns-ingress + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: serverless + app.kubernetes.io/managed-by: okteto + annotations: + dev.okteto.com/generate-host: "true" +spec: + rules: + - http: + paths: + - path: /android-patterns + pathType: Prefix + backend: + service: + name: backend-android-patterns + port: + number: 8000 +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-android-patterns-v1 + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/instance: styled-android-patterns + app.kubernetes.io/version: v1 + app.kubernetes.io/component: function + app.kubernetes.io/part-of: documentation + app.kubernetes.io/managed-by: okteto +spec: + replicas: 1 + minReadySeconds: 60 + revisionHistoryLimit: 5 + progressDeadlineSeconds: 120 + strategy: + rollingUpdate: + maxSurge: 10% + maxUnavailable: 0 + type: RollingUpdate + selector: + matchLabels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/version: v1 + template: + metadata: + labels: + app.kubernetes.io/name: backend-android-patterns + app.kubernetes.io/version: v1 + annotations: + scheduler.alpha.kubernetes.io/critical-pod: '' + spec: + dnsPolicy: ClusterFirst + restartPolicy: Always + schedulerName: default-scheduler + terminationGracePeriodSeconds: 30 + containers: + - name: backend-android-patterns + image: okteto.dev/styled-android-patterns + imagePullPolicy: IfNotPresent + terminationMessagePath: /etc/logs/termination.log + terminationMessagePolicy: File + ports: + - name: http + containerPort: 8000 + protocol: TCP + env: + - name: WATCH_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + - name: POD_NAME + valueFrom: + fieldRef: + fieldPath: metadata.name + - name: USER_AGENT + value: "k8s-agent $(WATCH_NAMESPACE)/$(POD_NAME)" + - name: LOG_DIR + value: "/tmp/logs" + volumeMounts: + - name: data + mountPath: "/data" + - name: data-tmp + mountPath: "/tmp" + resources: + requests: + cpu: 1 + memory: "2G" + ephemeral-storage: "2G" + limits: + cpu: 1 + memory: "3G" + ephemeral-storage: "3G" + securityContext: + allowPrivilegeEscalation: false + privileged: false + readOnlyRootFilesystem: false + runAsNonRoot: false + volumes: + - name: data + emptyDir: {} + - name: data-tmp + emptyDir: {} diff --git a/package.json b/package.json new file mode 100644 index 0000000000..f183d54e4c --- /dev/null +++ b/package.json @@ -0,0 +1,131 @@ +{ + "name": "android-patterns", + "version": "0.0.0", + "description": "Android Design Patterns Documentation", + "license": "GPL-3.0", + "scripts": { + "start-docker": "docker stack deploy -c docker-compose.yml dev", + "stop-docker": "docker stack rm dev", + "husky:install": "husky install", + "postinstall": "npm run husky:install", + "remark": "remark -q -f .", + "commit": "git-cz", + "release": "release-it", + "name": "node ./scripts/rootAppName.js", + "format": "prettier --single-quote --write **/*.{json,yaml,yml}", + "format:md": "remark-preset-davidtheclark --format", + "format:check": "prettier --check **/*.{json,yaml,yml}", + "format:doc": "alex", + "lint:text": "textlint docs", + "lint:md": "remark-preset-davidtheclark", + "lint:yaml": "yamllint --strict -c .yaml-lint.yml --ignore=okteto/deployment.yaml **/*.{yaml,yml}", + "lint:markdown": "markdownlint --config .markdownlint.yml docs/*.md", + "lint:json": "jsonlint ./package.json --quiet", + "lint:style": "stylelint --color --disable-default-ignores --allow-empty-input verbose **/*.{css,scss,sass}", + "lint:docker": "dockerfile_lint -r default_rules.yaml", + "lint:staged": "lint-staged --no-stash --allow-empty", + "validate:commit": "validate-commit-msg", + "pretty": "pretty-quick --staged --pattern '!test/tests/lint/**'", + "license": "license-checker --json > licenses.json", + "changelog": "conventional-changelog -p angular -i CHANGELOG.md -s -r 0", + "markdown": "markdown-link-check ./README.md ./SECURITY.md", + "git:diff": "git --no-pager diff --exit-code --stat HEAD", + "git:log": "git log -1 --format='format:%H' HEAD", + "git:clean": "git stash && git clean -fdX", + "git:ls": "git cat-file -p HEAD && git ls-tree -r HEAD", + "link-check": "repo-link-check -c config/config.yml -s filesystem -u", + "link-check-diff": "repo-link-check -c config/config.yml", + "link-check-dev-server": "repo-link-check -c config/config.yml -r http://localhost:3000", + "link-check-exclude": "repo-link-check -c config/config.yml -s filesystem -u only", + "docker:build": "docker build -f Dockerfile -t android-patterns .", + "docker:run": "docker run -ti --rm -v ${PWD}:/usr/src/app -e CI=1 android-patterns build --strict", + "postversion": "git push --follow-tags && npm publish --access public", + "bump:patch": "npm version patch --no-git-tag-version", + "bump:minor": "npm version minor --no-git-tag-version", + "bump:major": "npm version major --no-git-tag-version", + "release-patch": "git checkout master && npm run all && npm run bump:patch && git commit -a -m 'Build project codebase with patch version' && git push origin master --tags", + "release-minor": "git checkout master && npm run all && npm run bump:minor && git commit -a -m 'Build project codebase with minor version' && git push origin master --tags", + "release-major": "git checkout master && npm run all && npm run bump:major && git commit -a -m 'Build project codebase with major version' && git push origin master --tags", + "test:license": "license-checker --production --summary --unknown --onlyAllow=\"Apache-2.0;BSD;ISC;MIT;GPL-3.0;CC-BY-3.0;CC0-1.0;\"", + "format:all": "npm run format && npm run format:md", + "lint:all": "npm run lint:json && npm run lint:style && npm run lint:yaml && npm run lint:markdown && npm run lint:docker", + "check:all": "npm run pretty && npm run format:check", + "test:all": "npm run test:license", + "all": "npm run format:all && npm run lint:all && npm run check:all && npm run test:all" + }, + "devDependencies": { + "alex": "^9.1.0", + "conventional-changelog-cli": "^2.1.1", + "dockerfile_lint": "^0.3.4", + "husky": "^7.0.1", + "git-cz": "^4.7.6", + "jsonlint": "^1.6.3", + "license-checker": "^25.0.1", + "lint-staged": "^11.0.1", + "markdown-link-check": "^3.8.7", + "markdownlint-cli": "^0.27.1", + "stylelint": "~13.13.1", + "stylelint-config-standard": "^22.0.0", + "stylelint-order": "^4.1.0", + "stylelint-scss": "^3.20.1", + "prettier": "^2.3.2", + "pretty-quick": "^3.1.1", + "release-it": "^14.10.0", + "remark-cli": "^9.0.0", + "remark-lint-code-block-style": "^2.0.1", + "remark-lint-ordered-list-marker-value": "^2.0.1", + "remark-preset-davidtheclark": "^0.12.0", + "remark-validate-links": "^10.0.4", + "repo-link-check": "^0.7.1", + "textlint": "^12.0.2", + "textlint-rule-alex": "^3.0.0", + "textlint-rule-common-misspellings": "^1.0.1", + "textlint-rule-en-capitalization": "^2.0.2", + "textlint-rule-stop-words": "^2.0.9", + "textlint-rule-terminology": "^2.1.5", + "textlint-rule-write-good": "^2.0.0", + "validate-commit-msg": "^2.14.0", + "yaml-lint": "^1.2.4" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/AlexRogalskiy/android-patterns.git" + }, + "publishConfig": { + "registry": "https://registry.npmjs.org/", + "tag": "latest", + "access": "public" + }, + "engines": { + "node": ">= 12.x" + }, + "keywords": ["android design patterns"], + "maintainers": [ + { + "name": "Alexander Rogalskiy", + "email": "hi@nullables.io" + } + ], + "contributors": [ + { + "name": "Alexander Rogalskiy", + "email": "hi@nullables.io" + } + ], + "husky": { + "hooks": { + "pre-push": "npm run check:all", + "prepare-commit-msg": "git cz --hook --non-interactive --type=feat --subject=\"added new features\" || true", + "pre-commit": "npm run lint:staged && npm run all" + } + }, + "bugs": { + "url": "https://github.com/AlexRogalskiy/android-patterns/issues" + }, + "homepage": "https://github.com/AlexRogalskiy/android-patterns/", + "author": { + "name": "Alexander Rogalskiy", + "url": "https://github.com/AlexRogalskiy" + }, + "funding": "https://github.com/sponsors/AlexRogalskiy" +} diff --git a/policy/deny.rego b/policy/deny.rego new file mode 100644 index 0000000000..48e205b0a6 --- /dev/null +++ b/policy/deny.rego @@ -0,0 +1,39 @@ +package main + +import data.kubernetes + +name = input.metadata.name + +#deny[msg] { +# input.kind == "Deployment" +# not input.spec.template.spec.securityContext.runAsNonRoot +# +# msg := "Containers must not run as root" +#} + +deny[msg] { + input.kind == "Deployment" + not input.spec.selector.matchLabels.app.kubernetes.io/name + # not input.spec.selector.matchLabels.app + + msg := "Containers must provide name/version label for pod selectors" +} + +#deny[msg] { +# kubernetes.is_deployment +# not input.spec.template.spec.securityContext.runAsNonRoot +# +# msg = sprintf("Containers must not run as root in Deployment %s", [name]) +#} + +required_deployment_selectors { + input.spec.selector.matchLabels.app + input.spec.selector.matchLabels.release +} + +#deny[msg] { +# kubernetes.is_deployment +# not required_deployment_selectors +# +# msg = sprintf("Deployment %s must provide app/release labels for pod selectors", [name]) +#} diff --git a/policy/kubernetes.rego b/policy/kubernetes.rego new file mode 100644 index 0000000000..37c4afd264 --- /dev/null +++ b/policy/kubernetes.rego @@ -0,0 +1,49 @@ +package kubernetes + +name = input.metadata.name + +is_service { + input.kind = "Service" +} + +is_deployment { + input.kind = "Deployment" +} + +is_pod { + input.kind = "Pod" +} + +split_image(image) = [image, "latest"] { + not contains(image, ":") +} + +split_image(image) = [image_name, tag] { + [image_name, tag] = split(image, ":") +} + +pod_containers(pod) = all_containers { + keys = {"containers", "initContainers"} + all_containers = [c | keys[k]; c = pod.spec[k][_]] +} + +containers[container] { + pods[pod] + all_containers = pod_containers(pod) + container = all_containers[_] +} + +containers[container] { + all_containers = pod_containers(input) + container = all_containers[_] +} + +pods[pod] { + is_deployment + pod = input.spec.template +} + +pods[pod] { + is_pod + pod = input +} diff --git a/policy/labels.rego b/policy/labels.rego new file mode 100644 index 0000000000..eb61790b9b --- /dev/null +++ b/policy/labels.rego @@ -0,0 +1,20 @@ +package main + +import data.kubernetes + +name = input.metadata.name + +required_deployment_labels { + input.metadata.labels["app.kubernetes.io/name"] + input.metadata.labels["app.kubernetes.io/instance"] + input.metadata.labels["app.kubernetes.io/version"] + input.metadata.labels["app.kubernetes.io/component"] + input.metadata.labels["app.kubernetes.io/part-of"] + input.metadata.labels["app.kubernetes.io/managed-by"] +} + +deny[msg] { + kubernetes.is_deployment + not required_deployment_labels + msg = sprintf("%s must include Kubernetes recommended labels: https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/#labels", [name]) +} diff --git a/policy/rules.rego b/policy/rules.rego new file mode 100644 index 0000000000..bccab67950 --- /dev/null +++ b/policy/rules.rego @@ -0,0 +1,43 @@ +package rules + +import data.kubernetes + +name = input.metadata.name + +# Deny containers with latest image tag +deny[msg] { + kubernetes.containers[container] + [image_name, "latest"] = kubernetes.split_image(container.image) + msg = sprintf("%s in the %s %s has an image %s, using the latest tag", [container.name, kubernetes.kind, kubernetes.name, image_name]) +} + +# Deny services without app label selector +service_labels { + input.spec.selector["app"] +} +deny[msg] { + kubernetes.is_service + not service_labels + msg = sprintf("Service %s should set app label selector", [name]) +} + +# Deny deployments without app label selector +match_labels { + input.spec.selector.matchLabels["app"] +} +deny[msg] { + kubernetes.is_deployment + not match_labels + msg = sprintf("Service %s should set app label selector", [name]) +} + +# Warn if deployments have no prometheus pod annotations +annotations { + input.spec.template.metadata.annotations["prometheus.io/scrape"] + input.spec.template.metadata.annotations["prometheus.io/port"] +} +warn[msg] { + kubernetes.is_deployment + not annotations + msg = sprintf("Deployment %s should set prometheus.io/scrape and prometheus.io/port pod annotations", [name]) +} diff --git a/policy/violation.rego b/policy/violation.rego new file mode 100644 index 0000000000..ce4a1850dd --- /dev/null +++ b/policy/violation.rego @@ -0,0 +1,10 @@ +package main2 + +import data.kubernetes + +name = input.metadata.name + +violation[{"msg": msg, "details": {}}] { + kubernetes.is_deployment + msg = sprintf("Found deployment %s but deployments are not allowed", [name]) +} diff --git a/policy/warn.rego b/policy/warn.rego new file mode 100644 index 0000000000..b7ff3f63b7 --- /dev/null +++ b/policy/warn.rego @@ -0,0 +1,10 @@ +package main2 + +import data.kubernetes + +name = input.metadata.name + +warn[msg] { + kubernetes.is_service + msg = sprintf("Found service %s but services are not allowed", [name]) +} diff --git a/pr-lint.config.js b/pr-lint.config.js new file mode 100644 index 0000000000..bd9c29fd6d --- /dev/null +++ b/pr-lint.config.js @@ -0,0 +1,13 @@ +module.exports = { + validLabels: ['bug', 'skip-changelog', 'enhancement', 'feature'], + mandatorySections: [ + { + beginsWith: 'Changelog', + endsWith: 'End of changelog', + message: 'Changelog section is mandatory', + validate: section => { + return true + }, + }, + ], +} diff --git a/record-start-time.py b/record-start-time.py new file mode 100644 index 0000000000..02dbdcf392 --- /dev/null +++ b/record-start-time.py @@ -0,0 +1,20 @@ +import re +import time + +filename = "build.txt" +f = open(filename, "r") +contents = f.read() +f.close() + +timestamp_sec = int(time.time()) +timestamp_nano = (float(time.time()) - timestamp_sec) * 1000 * 1000 * 1000 +contents = re.sub(r'startTimeSecs = .*;', + "startTimeSecs = %d;" % timestamp_sec, + contents) +contents = re.sub(r'startTimeNanos = .*;', + "startTimeNanos = %d;" % timestamp_nano, + contents) + +f = open(filename, "w") +f.write(contents) +f.close() diff --git a/record-start-time.sh b/record-start-time.sh new file mode 100644 index 0000000000..6e59c00763 --- /dev/null +++ b/record-start-time.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +tmpfile=$(mktemp /tmp/tilt-example-android.XXXXXX) + +cat build.txt | + sed -e "s/startTimeSecs = .*;/startTimeSecs = $(date +%-s);/" | + sed -e "s/startTimeNanos = .*;/startTimeNanos = $(date +%-N);/" >$tmpfile + +mv $tmpfile build.txt diff --git a/renovate.json b/renovate.json index e8c513704f..3e50ce947a 100644 --- a/renovate.json +++ b/renovate.json @@ -1,50 +1,42 @@ { - "extends": [ - "config:base", - ":maintainLockFilesWeekly", - ":prHourlyLimitNone", - ":prConcurrentLimitNone", - ":gitSignOff", - "group:monorepos", - "group:recommended" - ], - "ignoreUnstable": false, - "schedule": [ - "after 10pm every weekday", - "before 5am every weekday", - "every weekend" - ], - "lockFileMaintenance": { - "enabled": true, - "schedule": [ - "before 5am on monday" - ] - }, - "automerge": true, - "statusCheckVerify": true, - "updateNotScheduled": true, - "branchPrefix": "renovate/", - "automergeType": "branch", - "major": { - "automerge": false - }, - "masterIssue": true, - "masterIssueApproval": false, - "masterIssueAutoclose": true, - "prConcurrentLimit": 5, - "prCreation": "immediate", - "timezone": "Europe/Moscow", - "rangeStrategy": "bump", - "prHourlyLimit": 2, - "semanticCommits": "enabled", - "semanticCommitType": "chore", - "semanticCommitScope": "null", - "separateMajorMinor": true, - "separateMinorPatch": false, - "commitMessageAction": "Updates", - "commitMessageTopic": "{{depName}}", - "commitMessagePrefix": ":arrow_up:", - "labels": [ - "javascript dependencies" - ] + "extends": [ + "config:base", + ":maintainLockFilesWeekly", + ":prHourlyLimitNone", + ":prConcurrentLimitNone", + ":gitSignOff", + "group:monorepos", + "group:recommended" + ], + "ignoreUnstable": false, + "schedule": ["after 10pm every weekday", "before 5am every weekday", "every weekend"], + "lockFileMaintenance": { + "enabled": true, + "schedule": ["before 5am on monday"] + }, + "automerge": true, + "statusCheckVerify": true, + "updateNotScheduled": true, + "branchPrefix": "renovate/", + "automergeType": "branch", + "major": { + "automerge": false + }, + "masterIssue": true, + "masterIssueApproval": false, + "masterIssueAutoclose": true, + "prConcurrentLimit": 5, + "prCreation": "immediate", + "timezone": "Europe/Moscow", + "rangeStrategy": "bump", + "prHourlyLimit": 2, + "semanticCommits": "enabled", + "semanticCommitType": "chore", + "semanticCommitScope": "null", + "separateMajorMinor": true, + "separateMinorPatch": false, + "commitMessageAction": "Updates", + "commitMessageTopic": "{{depName}}", + "commitMessagePrefix": ":arrow_up:", + "labels": ["javascript dependencies"] } diff --git a/reports/pagespeedresult.svg b/reports/pagespeedresult.svg index d6c050d57a..0fd59596ae 100644 --- a/reports/pagespeedresult.svg +++ b/reports/pagespeedresult.svg @@ -1,231 +1,26 @@ - - - - - - - 60 - Performance - - - - - 64 - Accessibility - - - - - 79 - Best Practices - - - - - 83 - SEO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Progressive - Web App - - - - - - - - - - - - - - - 0-49 - 50-89 - 90-100 - - - \ No newline at end of file + + + + + + No such app + + + + + + diff --git a/reports/pagespeedresultmobile.svg b/reports/pagespeedresultmobile.svg index b13b221254..0fd59596ae 100644 --- a/reports/pagespeedresultmobile.svg +++ b/reports/pagespeedresultmobile.svg @@ -1,231 +1,26 @@ - - - - - - - 28 - Performance - - - - - 65 - Accessibility - - - - - 79 - Best Practices - - - - - 83 - SEO - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Progressive - Web App - - - - - - - - - - - - - - - 0-49 - 50-89 - 90-100 - - - \ No newline at end of file + + + + + + No such app + + + + + + diff --git a/scripts/build-docs.sh b/scripts/build-docs.sh new file mode 100644 index 0000000000..8062d77701 --- /dev/null +++ b/scripts/build-docs.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env bash + +umask 0077 + +TRUE_REG='^([tT][rR][uU][eE]|[yY]|[yY][eE][sS]|1)$' +FALSE_REG='^([fF][aA][lL][sS][eE]|[nN]|[nN][oO]|0)$' + +DEBUG_SCRIPT=${DEBUG_SCRIPT:-false} +if [[ $DEBUG_SCRIPT =~ $TRUE_REG ]]; then + set -o xtrace +fi + +STRICT_SCRIPT=${STRICT_SCRIPT:-false} +if [[ $STRICT_SCRIPT =~ $TRUE_REG ]]; then + set -o errexit + set -o nounset + set -o pipefail +fi + +## Change working directory +cd "$(dirname "$0")" || exit 1 + +## Install pip module +wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py -O $TMPDIR/get-pip.py +python3 $TMPDIR/get-pip.py + +## Install project dependencies +python3 -m pip install -r ./docs/requirements.txt + +## Start server locally +python3 -m mkdocs serve --verbose --dirtyreload diff --git a/scripts/create-changelog.sh b/scripts/create-changelog.sh new file mode 100644 index 0000000000..010d751006 --- /dev/null +++ b/scripts/create-changelog.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -u -e -o pipefail + +cd "$(dirname "$0")" || exit 1 + +VERSION=$(grep 'version:' package.json | sed -E "s/.*'([^']*)'/\1/") +RELEASE_DATE=$(date "+%Y-%m-%d") + +# compile a list of already reported PRs +reported="$(mktemp)" +grep -E "#[0-9]{4}" -o CHANGELOG.md | sort >"$reported" + +echo "[$VERSION] - $RELEASE_DATE" +echo "--------------------" +echo '##### Enhancements' +git log stable..master --first-parent --format='%s %b' | + sed -E 's/.*#([0-9]+).*\[ENH\] *(.*)/\* \2 ([#\1](\.\.\/\.\.\/pull\/\1))/' | + grep -E '^\*' | grep -v -F -f "$reported" +echo +echo "##### Bugfixes" +git log stable..master --first-parent --format='%s %b' | + sed -E 's/.*#([0-9]+).*\[FIX\] *(.*)/\* \2 ([#\1](\.\.\/\.\.\/pull\/\1))/' | + grep -E '^\*' | grep -v -F -f "$reported" diff --git a/scripts/docker-build.sh b/scripts/docker-build.sh new file mode 100644 index 0000000000..006fd94c89 --- /dev/null +++ b/scripts/docker-build.sh @@ -0,0 +1,12 @@ +#!/bin/sh + +set -e + +cd "$(dirname "$0")" || exit 1 + +# Docker image params +GIT_SHA=$(git rev-parse HEAD) +IMAGE_TAG="styled-android-patterns" + +# Build docker image +docker build -f Dockerfile -t "${IMAGE_TAG}" -t "${IMAGE_TAG}:${GIT_SHA}" . diff --git a/scripts/docker-compose-start.sh b/scripts/docker-compose-start.sh new file mode 100644 index 0000000000..a21bfccd33 --- /dev/null +++ b/scripts/docker-compose-start.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +cd "$(dirname "$0")" || exit 1 + +docker-compose -f docker-compose.yml build +docker-compose -f docker-compose.yml up -d diff --git a/scripts/docker-compose-stop.sh b/scripts/docker-compose-stop.sh new file mode 100644 index 0000000000..bcfb59d390 --- /dev/null +++ b/scripts/docker-compose-stop.sh @@ -0,0 +1,7 @@ +#!/bin/sh + +set -e + +cd "$(dirname "$0")" || exit 1 + +docker-compose -f docker-compose.yml down -v --remove-orphans diff --git a/scripts/generate-authors.sh b/scripts/generate-authors.sh new file mode 100755 index 0000000000..54404c2f97 --- /dev/null +++ b/scripts/generate-authors.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +## setup base directory +BASE_DIR=$(dirname "$0") + +## common functions setup +cd "$BASE_DIR/.." || exit 1 + +{ + cat <<-'EOH' + # This file lists all individuals having contributed content to the repository. + # For how it is generated, see `scripts/generate-authors.sh`. + EOH + echo + git log --format='%aN <%aE>' | LC_ALL=C.UTF-8 sort -uf +} > AUTHORS diff --git a/scripts/generate-contributors.sh b/scripts/generate-contributors.sh new file mode 100755 index 0000000000..c4459c91a7 --- /dev/null +++ b/scripts/generate-contributors.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +## setup base directory +BASE_DIR=$(dirname "$0") + +## common functions setup +cd "$BASE_DIR/.." || exit 1 + +{ + cat <<-'EOH' + # This file lists all contributors having contributed to pouch. + # For how it is generated, see `scripts/generate-contributors.sh`. + EOH + echo + git log --format='%aN <%aE>' | LC_ALL=C.UTF-8 sort -uf +} > CONTRIBUTORS diff --git a/scripts/installHusky.js b/scripts/installHusky.js new file mode 100644 index 0000000000..5e306824ff --- /dev/null +++ b/scripts/installHusky.js @@ -0,0 +1,6 @@ +const {exec} = require('child_process'); + +exec(`husky install `, (err, stdout, stderr) => { + console.log(`stdout: ${stdout}`); + console.log(`stderr: ${stderr}`); +}); diff --git a/scripts/rootAppName.js b/scripts/rootAppName.js new file mode 100644 index 0000000000..334aced0e4 --- /dev/null +++ b/scripts/rootAppName.js @@ -0,0 +1,12 @@ +const packageJson = require('../package.json'); + +const moduleName = `${/[^/]*$/.exec(packageJson.name)[0]}_${packageJson.version.replace(/\./g, '_')}`; +const packageName = process.env.npm_package_name; + +console.log(`>>> Module name: ${moduleName}`); +console.log(`>>> Package name: ${packageName}`) + +module.exports = { + moduleName, + packageName +}; diff --git a/tilt_modules/conftest/README.md b/tilt_modules/conftest/README.md new file mode 100644 index 0000000000..9f5011ab8d --- /dev/null +++ b/tilt_modules/conftest/README.md @@ -0,0 +1,44 @@ +# Use Conftest to test your configuration files + +Author: [Gareth Rushgrove](https://github.com/garethr) + +[Conftest](https://conftest.dev) is a utility to help you write tests against structured configuration data, including write tests for your Kubernetes configurations. This Tilt eextension makes it easy to run Conftest as part of your development environment. + +## Usage + +The `conftest` extension can be run like so: + +```python +load('ext://conftest', 'conftest') + +conftest('kubernetes.yaml') +k8s_yaml('kubernetes.yaml') +k8s_resource('example', + port_forwards=8000, + resource_deps=['conftest'], +) +``` + +Note that you'll need a `policy` directory with your Rego code. See the [Conftest](https://www.conftest.dev/) +documentation for basic setup and usage instructions. + +The function takes a number of arguments, which map to the `conftest` CLI arguments. + +- `path`: path to file to test +- `name`: a name for the resource, defaults to conftest. Useful if you want multiple invocations +- `all_namespaces`: use rules from all namespaces +- `combine`: combine all files passed in into one structure +- `data`: a list of paths to load additional data from +- `fail_on_warn`: fail even if only warnings are found +- `input`: input type if different from that autodetected from the file extension +- `namespace`: the namespace to use for rules, defauls to main +- `output`: the output format, can be stdout, json, tap or table +- `trace`: whether or not to show the full policy trace, useful for debugging +- `update`: download policies based on local configuration or from exlicit repositories +- `policy`: where to find the policy files, defaults to a directory called policy\` + +You can also pass any other arguments supported by [`local_resource`](https://docs.tilt.dev/api.html#api.local_resource). + +## Requirements + +- The `conftest` binary must be on your path diff --git a/tilt_modules/conftest/Tiltfile b/tilt_modules/conftest/Tiltfile new file mode 100644 index 0000000000..e816c41288 --- /dev/null +++ b/tilt_modules/conftest/Tiltfile @@ -0,0 +1,54 @@ +# -*- mode: Python -*- + +CONFTEST_ARGS = [ + 'all_namespaces', + 'combine', + 'data', + 'fail_on_warn', + 'input', + 'namespace', + 'output', + 'trace', + 'update', + 'policy', +] + +def conftest(path, name='conftest', policy='policy', **kwargs): + """ + Test configuration files against Open Policy Agent policies using Conftest + + Args: + path: path to file to test + name: a name for the resource, defaults to conftest. Useful if you want multiple invocations + all_namespaces: use rules from all namespaces + combine: combine all files passed in into one structure + data: a list of paths to load additional data from + fail_on_warn: fail even if only warnings are found + input: input type if different from that autodetected from the file extension + namespace: the namespace to use for rules, defauls to main + output: the output format, can be stdout, json, tap or table + trace: whether or not to show the full policy trace, useful for debugging + update: download policies based on local configuration or from explicit repositories + policy: where to find the policy files, defaults to a directory called policy + """ + + # we want to support being able to pass arguments through to the local_resource function + # but first we need to split any kwargs explicitly intennded for conftest out + conftest_kwargs = {k.replace("_", "-"): v for k, v in kwargs.items() if k in CONFTEST_ARGS} + local_resource_kwargs = {k: v for k, v in kwargs.items() if k not in CONFTEST_ARGS} + + + # we build a string of the conftest arguments + args = "" + for key,value in conftest_kwargs.items(): + if key in ['all-namespaces', 'fail-on-warn', 'combine', 'trace']: + if type(value) != 'bool': + fail('%s takes a boolean value, instead is is set to "%s"' % (key, value)) + args += "--%s=%s " % (key, value) + + local_resource( + name, + deps=[path, policy], + cmd='conftest test %s %s' % (args, path), + **local_resource_kwargs + ) diff --git a/tilt_modules/extensions.json b/tilt_modules/extensions.json new file mode 100644 index 0000000000..159e0f8993 --- /dev/null +++ b/tilt_modules/extensions.json @@ -0,0 +1,44 @@ +{ + "Extensions": [ + { + "Name": "restart_process", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-21T23:51:31.73649+03:00" + }, + { + "Name": "conftest", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-31T19:00:56.518226+03:00" + }, + { + "Name": "list_port_forwards", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-31T19:01:05.4623128+03:00" + }, + { + "Name": "uibutton", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-31T19:01:17.1423703+03:00" + }, + { + "Name": "print_tiltfile_dir", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-31T19:01:26.3106616+03:00" + }, + { + "Name": "min_tilt_version", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-31T19:01:37.6678026+03:00" + }, + { + "Name": "tilt_inspector", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-07-31T19:01:43.045349+03:00" + }, + { + "Name": "namespace", + "ExtensionRegistry": "https://github.com/tilt-dev/tilt-extensions", + "TimeFetched": "2021-08-09T12:53:55.8735512+03:00" + } + ] +} \ No newline at end of file diff --git a/tilt_modules/list_port_forwards/README.md b/tilt_modules/list_port_forwards/README.md new file mode 100644 index 0000000000..f0a664d476 --- /dev/null +++ b/tilt_modules/list_port_forwards/README.md @@ -0,0 +1,6 @@ +## Display Port Forwards + +A simple bash-based extension that displays port forwards currently being used by Tilt resources, +via a UI button on the (Tiltfile) resource. + +Note that this extension depends on the [`jq`](https://stedolan.github.io/jq/) utility. diff --git a/tilt_modules/list_port_forwards/Tiltfile b/tilt_modules/list_port_forwards/Tiltfile new file mode 100644 index 0000000000..c9452b5d00 --- /dev/null +++ b/tilt_modules/list_port_forwards/Tiltfile @@ -0,0 +1,12 @@ +load('ext://uibutton', 'cmd_button') + +display_pf_script_path = os.path.join(os.getcwd(), "display_port_forwards.sh") + +def display_port_forwards(): + cmd_button( + name = 'which_ports', + resource = '(Tiltfile)', + argv = [display_pf_script_path], + text='List port forwards', + icon_name='travel_explore', + ) diff --git a/tilt_modules/list_port_forwards/display_port_forwards.sh b/tilt_modules/list_port_forwards/display_port_forwards.sh new file mode 100644 index 0000000000..5117cff44f --- /dev/null +++ b/tilt_modules/list_port_forwards/display_port_forwards.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +set -euo pipefail + +command -v jq >/dev/null || (echo "jq not installed :(" && exit 1) # ensure jq is installed + +echo "__(.)= __(.)= =(.)__ =(.)__" +echo "\\___) \\___) (___/ (___/" + +echo "---- Port forwards in use ----" + +jqquery='.items[] | { name:.metadata.annotations."tilt.dev/resource", p:.spec.forwards[] } | "\(.name):\(.p.containerPort) -> \(.p.host):\(.p.localPort)"' + +tilt get portforwards -o json | jq -r "$jqquery" + +echo "------------------------------" diff --git a/tilt_modules/min_tilt_version/README.md b/tilt_modules/min_tilt_version/README.md new file mode 100644 index 0000000000..06f8482728 --- /dev/null +++ b/tilt_modules/min_tilt_version/README.md @@ -0,0 +1,29 @@ +# Min Tilt Version + +Author: [David Rubin](https://github.com/drubin) + +Specify a minimum Tilt version to run this TiltFile + +If the minimum version is not met, Tilt will stop executing using the `fail` api + +## Usage + +It's advisable to include this as close to the top of the Tiltfile as possible. + +Include patch version + +```py +load('ext://min_tilt_version', 'min_tilt_version') +min_tilt_version('0.13.0') +``` + +Only care about minor + +```py +load('ext://min_tilt_version', 'min_tilt_version') +min_tilt_version('0.13') +``` + +## Requirements + +- `tilt` binary must be in your path diff --git a/tilt_modules/min_tilt_version/Tiltfile b/tilt_modules/min_tilt_version/Tiltfile new file mode 100644 index 0000000000..f55742e450 --- /dev/null +++ b/tilt_modules/min_tilt_version/Tiltfile @@ -0,0 +1,27 @@ +def min_tilt_version(min_version): + # this assumes that the tit version command always returns + # v0.13.0, built 2020-04-01 + # Also supports dev versions + # v0.13.0-dev, built 2020-04-03 + tilt_bin = os.environ.get('TILT_BIN', 'tilt') + ver_string = str(local('%s version' % tilt_bin, quiet=True)) + # Clean out the version file so its in the format 0.13.0 + versions = ver_string.split(', ') + # pull first string and remove the `v` and `-dev` + version = versions[0].replace('-dev', '').replace('v', '') + + # Python allows you to compare two tuples + # (0, 12, 0) < (0, 12, 1) + tup_version = _version_tuple(version) + tup_min_version = _version_tuple(min_version) + + if tup_version < tup_min_version: + print('+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+') + print('| Tilt Version is out of date! |') + print('| Please upgrade https://docs.tilt.dev/upgrade.html |') + print('+--+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+') + fail('Tilt version is out of date minimum required version is [%s]' % min_version) + +# Private methods +def _version_tuple(v): + return [int(str_num) for str_num in v.split(".")] diff --git a/tilt_modules/namespace/README.md b/tilt_modules/namespace/README.md new file mode 100644 index 0000000000..949ea5de89 --- /dev/null +++ b/tilt_modules/namespace/README.md @@ -0,0 +1,52 @@ +# Namespace + +Author: [Nick Santos](https://github.com/nicks) + +Helper functions for creating Kubernetes namespaces and manipulating +namespaces on Kubernetes objects. + +## Functions + +### `namespace_yaml(name: str): Blob` + +Returns YAML for a Kubernetes namespace. + +### `namespace_create(name: str, allow_duplicates: boolean = False)` + +Deploys a namespace to the cluster. Equivalent to + +``` +load('ext://namespace', 'namespace_yaml') +k8s_yaml(namespace_yaml('name'), allow_duplicates=False) +``` + +### `namespace_inject(objects: Union[str, Blob], namespace: str): Blob` + +Given YAML for Kubernetes objects, return new YAML with a different namespace. + +## Example Usage + +### For a fixed namespace: + +``` +load('ext://namespace', 'namespace_create', 'namespace_inject') +namespace_create('my-namespace') +k8s_yaml(namespace_inject(read_file('deployment.yaml'), 'my-namespace')) +``` + +### For a user-specific namespace: + +``` +load('ext://namespace', 'namespace_create', 'namespace_inject') +ns = 'user-%s' % os.environ.get('USER', 'anonymous') +namespace_create(ns) +k8s_yaml(namespace_inject(read_file('deployment.yaml'), ns)) +``` + +## Caveats + +- `namespace_inject` assumes all resources are namespaced-scoped. + The behavior is undefined for cluster-scoped resources. + +- This extension doesn't do any validation to confirm that namespace names are valid. + The behavior is undefined on invalid namespaces. diff --git a/tilt_modules/namespace/Tiltfile b/tilt_modules/namespace/Tiltfile new file mode 100644 index 0000000000..186d81edb4 --- /dev/null +++ b/tilt_modules/namespace/Tiltfile @@ -0,0 +1,78 @@ +# -*- mode: Python -*- + +def namespace_yaml(name): + """Returns YAML for a namespace + + Args: + name: The namespace name. Currently not validated. + + Returns: + The namespace YAML as a blob + """ + + return blob("""apiVersion: v1 +kind: Namespace +metadata: + name: %s +""" % name) + +def namespace_create(name, allow_duplicates=False): + """Creates a namespace in the current Kubernetes cluster. + + Args: + name: The namespace name. Currently not validated. + allow_duplicates: Whether or not k8s should be allowed to have two + instances of the same resource. Useful if you have more than one + Tiltfile trying to create the same namespace. + """ + k8s_yaml(namespace_yaml(name), allow_duplicates=allow_duplicates) + +def namespace_inject(x, ns): + """Takes K8s yaml, sets its namespace to `ns`, and returns it as a blob. + + This modifies the yaml in two ways: + 1. Sets .metadata.namespace to `ns` + 2. Sets ..template.metadata.namespace to `ns` + This ensures the namespace in, e.g., Deployment Pod Template Specs is + set, but might have false positives if you have a CRD with some other + element named 'template'. + + Args: + x: K8s yaml. Either a filename (string) or the yaml itself (Blob) + ns: The namespace to set the K8s objects to. + + Returns: + Blob containing the K8s objects as yaml, with namespaces set to `ns`. + """ + return _mutate_yaml(x, lambda o: _set_k8s_yaml_namespace(o, ns)) + + +def _mutate_yaml(x, f): + if type(x) == 'string': + objects = read_yaml_stream(x) + elif type(x) == 'blob': + objects = decode_yaml_stream(x) + else: + fail('only takes string or blob, got: %s' % type(x)) + + return encode_yaml_stream([f(o) for o in objects]) + +def _set_k8s_yaml_namespace(o, ns): + if type(o) == 'dict' and type(o.get('metadata', None)) == 'dict': + o['metadata']['namespace'] = ns + else: + fail('Cannot inject namespace. Object does not have an object field named metadata:\n%s' % encode_yaml(o)) + + _set_template_namespace(o, ns) + return o + +def _set_template_namespace(o, ns): + if type(o) == 'dict': + for k, v in o.items(): + if k == 'template' and type(v) == 'dict' and type(v.get('metadata', None)) == 'dict': + v['metadata']['namespace'] = ns + if type(v) == 'dict' or type(v) == 'list': + _set_template_namespace(v, ns) + elif type(o) == 'list': + for v in o: + _set_template_namespace(v, ns) diff --git a/tilt_modules/namespace/test/Tiltfile b/tilt_modules/namespace/test/Tiltfile new file mode 100644 index 0000000000..03781ffc39 --- /dev/null +++ b/tilt_modules/namespace/test/Tiltfile @@ -0,0 +1,12 @@ +load('../Tiltfile', 'namespace_create', 'namespace_inject') + +# Disable parallelism until this issue is fixed: +# https://github.com/tilt-dev/tilt/issues/3421 +update_settings(max_parallel_updates=1) + +namespace_create('namespace-test') +k8s_yaml(namespace_inject('deployment.yaml', 'namespace-test')) +k8s_yaml('job.yaml') +k8s_yaml(namespace_inject('job-default-namespace.yaml', 'namespace-test')) +k8s_resource('namespace-test-verify', resource_deps=['namespace-test-busybox']) +k8s_resource('namespace-test-verify2', resource_deps=['namespace-test-busybox']) diff --git a/tilt_modules/namespace/test/deployment.yaml b/tilt_modules/namespace/test/deployment.yaml new file mode 100644 index 0000000000..615bd02159 --- /dev/null +++ b/tilt_modules/namespace/test/deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: namespace-test-busybox +spec: + selector: + matchLabels: + app: namespace-test-busybox + template: + metadata: + labels: + app: namespace-test-busybox + spec: + containers: + - name: busybox + image: busybox + ports: + - containerPort: 8000 + command: ["sh", "-c", "echo 'hello world' > index.html; busybox httpd -f -p 8000"] + readinessProbe: + tcpSocket: + port: 8000 + periodSeconds: 1 +--- +apiVersion: v1 +kind: Service +metadata: + name: namespace-test-busybox +spec: + selector: + app: namespace-test-busybox + ports: + - protocol: TCP + port: 8000 + targetPort: 8000 diff --git a/tilt_modules/namespace/test/job-default-namespace.yaml b/tilt_modules/namespace/test/job-default-namespace.yaml new file mode 100644 index 0000000000..45d587a192 --- /dev/null +++ b/tilt_modules/namespace/test/job-default-namespace.yaml @@ -0,0 +1,13 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: namespace-test-verify2 +spec: + backoffLimit: 1 + template: + spec: + containers: + - name: namespace-test-verify + image: curlimages/curl + command: ["curl", "-fsSL", "http://namespace-test-busybox:8000/"] + restartPolicy: Never \ No newline at end of file diff --git a/tilt_modules/namespace/test/job.yaml b/tilt_modules/namespace/test/job.yaml new file mode 100644 index 0000000000..0495814c54 --- /dev/null +++ b/tilt_modules/namespace/test/job.yaml @@ -0,0 +1,14 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: namespace-test-verify + namespace: namespace-test +spec: + backoffLimit: 1 + template: + spec: + containers: + - name: namespace-test-verify + image: curlimages/curl + command: ["curl", "-fsSL", "http://namespace-test-busybox:8000/"] + restartPolicy: Never \ No newline at end of file diff --git a/tilt_modules/namespace/test/test.sh b/tilt_modules/namespace/test/test.sh new file mode 100644 index 0000000000..9aaf15c4b9 --- /dev/null +++ b/tilt_modules/namespace/test/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +set -ex +tilt ci +tilt down --delete-namespaces diff --git a/tilt_modules/print_tiltfile_dir/Tiltfile b/tilt_modules/print_tiltfile_dir/Tiltfile new file mode 100644 index 0000000000..451d66fcb8 --- /dev/null +++ b/tilt_modules/print_tiltfile_dir/Tiltfile @@ -0,0 +1,8 @@ +# Print all files in the Tiltfile directory. If recursive is set to True, also prints files in all recursive subdirectories. + +def print_tiltfile_dir(recursive=False): + cwd = os.getcwd() + files = listdir(cwd, recursive=recursive) + print('Directory where Tiltfile is located: ', cwd) + for file in files: + print(file) diff --git a/tilt_modules/restart_process/.gitignore b/tilt_modules/restart_process/.gitignore new file mode 100644 index 0000000000..3758a00fca --- /dev/null +++ b/tilt_modules/restart_process/.gitignore @@ -0,0 +1 @@ +tilt-restart-wrapper diff --git a/tilt_modules/restart_process/Dockerfile b/tilt_modules/restart_process/Dockerfile new file mode 100644 index 0000000000..2ad4b08e0e --- /dev/null +++ b/tilt_modules/restart_process/Dockerfile @@ -0,0 +1,15 @@ +FROM alpine/git + +RUN apk update && apk add make +RUN apk add build-base + +RUN git clone https://github.com/eradman/entr.git /entr +WORKDIR /entr +RUN git checkout c564e6bdca1dfe2177d1224363cad734158863ad +RUN ./configure; CFLAGS="-static" make install + +FROM scratch + +COPY --from=0 /usr/local/bin/entr / + +ADD tilt-restart-wrapper / diff --git a/tilt_modules/restart_process/README.md b/tilt_modules/restart_process/README.md new file mode 100644 index 0000000000..b47f82ef58 --- /dev/null +++ b/tilt_modules/restart_process/README.md @@ -0,0 +1,181 @@ +# Restart Process + +This extension helps create images that can restart on `live_update`: + +- `docker_build_with_restart`: wraps a `docker_build` call +- `custom_build_with_restart`: wraps a `custom_build` call + +At the end of a `live_update`, the container's process will rerun itself. + +(Use it in place of the `restart_container()` Live Update step, which has been deprecated for Kubernetes resources.) + +## When to Use +Use this extension when you have an image and you want to re-execute its entrypoint/command as part of a `live_update`. + +E.g. if your app is a static binary, you'll probably need to re-execute the binary for any changes you made to take effect. + +(If your app has hot reloading capabilities--i.e. it can detect and incorporate changes to its source code without needing to restart--you probably don't need this extension.) + +### Unsupported Cases +This extension does NOT support process restarts for: +- Images built with `custom_build` using any of the `skips_local_docker`, `disable_push`, or `tag` parameters. +- Images run in Docker Compose resources (use the [`restart_container()`](https://docs.tilt.dev/api.html#api.restart_container) builtin instead) +- Images without a shell (e.g. `scratch`, `distroless`) +- Container commands specified as `command` in Kubernetes YAML will be overridden by this extension. + - However, the `args` field is still available; [reach out](https://tilt.dev/contact) if you need help navigating the interplay between Tilt and these YAML values +- CRDs + +If this extension doesn't work for your use case, [see our docs for alternatives](https://docs.tilt.dev/live_update_reference.html#restarting-your-process). + +Run into a bug? Need a use case that we don't yet support? Let us know--[open an issue](https://github.com/tilt-dev/tilt-extensions/issues) or [contact us](https://tilt.dev/contact). + +## How to Use + +Import this extension by putting the following at the top of your Tiltfile: +```python +load('ext://restart_process', 'docker_build_with_restart') +``` + +For the image that needs the process restart, replace your existing `docker_build` call: +```python +docker_build( + 'foo-image', + './foo', + arg1=val1, + arg2=val2, + live_update=[x, y, z...] +) +``` +with a `docker_build_with_restart` call: +```python +docker_build_with_restart( + 'foo-image', + './foo', + entrypoint='/go/bin/foo', + arg1=val1, + arg2=val2, + live_update=[x, y, z...] +) +``` +The call above looks just like the initial `docker_build` call except for one added parameter, `entrypoint` (in this example, `/go/bin/foo`). This is the command that you want to run on container start and _re-run_ on Live Update. + +A custom_build call looks similar: + +```python +load('ext://restart_process', 'custom_build_with_restart') + +custom_build_with_restart( + 'foo-image', + 'docker build -t $EXPECTED_REF ./foo', + deps=['./foo'], + live_update=[sync(...)] +) +``` + +### Troubleshooting +#### `failed running [touch /tmp/.restart-proc']` +If you see an error of the form: +``` +ERROR: Build Failed: ImageBuild: executor failed running [touch /tmp/.restart-proc']: exit code: 1 +``` +this often means that your Dockerfile user ([see docs](https://docs.docker.com/engine/reference/builder/#user)) doesn't have permission to write to the file we use to signal a process restart. Use the `restart_file` parameter to specify a file that your Dockerfile user definitely has write access to. + +### API +```python +def docker_build_with_restart(ref: str, context: str, + entrypoint: Union[str, List[str]], + live_update: List[LiveUpdateStep], + base_suffix: str = '-base', + restart_file: str = '/.restart-proc', + trigger: Union[str, List[str]] = [], + **kwargs +): + """Args: + ref: name for this image (e.g. 'myproj/backend' or 'myregistry/myproj/backend'); as the parameter of the same name in docker_build + context: path to use as the Docker build context; as the parameter of the same name in docker_build + entrypoint: the command to be (re-)executed when the container starts or when a live_update is run + live_update: set of steps for updating a running container; as the parameter of the same name in docker_build + base_suffix: suffix for naming the base image, applied as {ref}{base_suffix} + restart_file: file that Tilt will update during a live_update to signal the entrypoint to rerun + trigger: (optional) list of local paths. If specified, the process will ONLY be restarted when there are changes + to the given file(s); as the parameter of the same name in the LiveUpdate `run` step. + **kwargs: will be passed to the underlying `docker_build` call + """ + + +def custom_build_with_restart(ref: str, command: str, deps: List[str], entrypoint, + + entrypoint: Union[str, List[str]], + live_update: List[LiveUpdateStep], + base_suffix: str = '-base', + restart_file: str = '/.restart-proc', + trigger: Union[str, List[str]] = [], + , **kwargs +): + """ + Args: + ref: name for this image (e.g. 'myproj/backend' or 'myregistry/myproj/backend'); as the parameter of the same name in custom_build + command: build command for building your image + deps: source dependencies of the custom build + entrypoint: the command to be (re-)executed when the container starts or when a live_update is run + live_update: set of steps for updating a running container; as the parameter of the same name in custom_build + base_suffix: suffix for naming the base image, applied as {ref}{base_suffix} + restart_file: file that Tilt will update during a live_update to signal the entrypoint to rerun + trigger: (optional) list of local paths. If specified, the process will ONLY be restarted when there are changes + to the given file(s); as the parameter of the same name in the LiveUpdate `run` step. + **kwargs: will be passed to the underlying `custom_build` call + """ +``` + +## What's Happening Under the Hood +*If you're a casual user/just want to get your app running, you can stop reading now. However, if you want to dig deep and know exactly what's going on, or are trying to debug weird behavior, read on.* + +This extension wraps commands in `tilt-restart-wrapper`, which makes use of [`entr`](https://github.com/eradman/entr/) +to run arbitrary commands whenever a specified file changes. Specifically, we override the container's entrypoint with the following: + +``` +/tilt-restart-wrapper --watch_file='/.restart-proc' +``` + +This invocation says: +- when the container starts, run +- whenever the `/.restart-proc` file changes, re-execute + +We also set the following as the last `live_update` step: +```python +run('date > /.restart-proc') +``` + +Because `tilt-restart-wrapper` will re-execute the entrypoint whenever `/.restart-proc'` changes, the above `run` step will cause the entrypoint to re-run. + +#### Provide `tilt-restart-wrapper` +For this all to work, the `entr` binary must be available on the Docker image. The easiest solution would be to call e.g. `apt-get install entr` in the Dockerfile, but different base images will have different package managers; rather than grapple with that, we've made a statically linked binary available on Docker image: [`tiltdev/entr`](https://hub.docker.com/repository/docker/tiltdev/entr). + +To build `image-foo`, this extension will: +- build your image as normal (via `docker_build`, with all of your specified args/kwargs) but with the name `image-foo-base` +- build `image-foo` (the actual image that will be used in your resource) as a _child_ of `image-foo-base`, with the `tilt-process-wrapper` and its dependencies available + +Thus, the final image produced is tagged `image-foo` and has all the properties of your original `docker_build`, plus access to the `tilt-restart-wrapper` binary. + +#### Why a Wrapper? +Why bother with `tilt-restart-wrapper` rather than just calling `entr` directly? + +Because in its canonical invocation, `entr` requires that the file(s) to watch be piped via stdin, i.e. it is invoked like: +``` +echo "/.restart-proc" | entr -rz /bin/my-app +``` + +When specified as a `command` in Kubernetes or Docker Compose YAML (this is how Tilt overrides entrypoints), the above would therefore need to be executed as shell: +``` +/bin/sh -c 'echo "/.restart-proc" | entr -rz /bin/my-app' +``` +Any `args` specified in Kubernetes/Docker Compose are attached to the end of this call, and therefore in this case would apply TO THE `/bin/sh -c` CALL, rather than to the actual command run by `entr`; that is, any `args` specified by the user would be effectively ignored. + +In order to make `entr` usable without a shell, this extension uses [a simple binary](/restart_process/tilt-restart-wrapper.go) that invokes `entr` and writes to its stdin. + +Note: ideally `entr` could accept files-to-watch via flag instead of stdin, but (for a number of good reasons) this feature isn't likely to be added any time soon (see [entr#33](https://github.com/eradman/entr/issues/33)). + +## For Maintainers: Releasing +If you have push access to the `tiltdev` repository on DockerHub, you can release a new version of the binaries used by this extension like so: +1. run `release.sh` (builds `tilt-restart-wrapper` from source, builds and pushes a Docker image with the new binary and a fresh binary of `entr` also installed from source) +2. update the image tag in the [Tiltfile](/restart_process/Tiltfile) with the tag you just pushed (you'll find the image referenced in the Dockerfile contents of the child image--look for "FROM tiltdev/restart-helper") diff --git a/tilt_modules/restart_process/Tiltfile b/tilt_modules/restart_process/Tiltfile new file mode 100644 index 0000000000..e732621360 --- /dev/null +++ b/tilt_modules/restart_process/Tiltfile @@ -0,0 +1,146 @@ +RESTART_FILE = '/tmp/.restart-proc' +TYPE_RESTART_CONTAINER_STEP = 'live_update_restart_container_step' + +KWARGS_BLACKLIST = [ + # since we'll be passing `dockerfile_contents` when building the + # child image, remove any kwargs that might conflict + 'dockerfile', 'dockerfile_contents', + + # 'target' isn't relevant to our child build--if we pass this arg, + # Docker will just fail to find the specified stage and error out + 'target', +] + +# Arguments to custom_build that don't apply to the docker_build. +_CUSTOM_BUILD_KWARGS_BLACKLIST = [ + 'tag', + 'command_bat', + 'outputs_image_ref_to', + 'disable_push', +] + +_ext_dir = os.getcwd() + +# shared code between the two restart functions +def _helper(base_ref, ref, entrypoint, live_update, restart_file=RESTART_FILE, trigger=None, exit_policy='restart', **kwargs): + if not trigger: + trigger = [] + + # declare a new docker build that adds a static binary of tilt-restart-wrapper + # (which makes use of `entr` to watch files and restart processes) to the user's image + df = ''' + FROM tiltdev/restart-helper:2021-08-09 as restart-helper + + FROM {} + RUN ["touch", "{}"] + COPY --from=restart-helper /tilt-restart-wrapper / + COPY --from=restart-helper /entr / + '''.format(base_ref, restart_file) + + # Change the entrypoint to use `tilt-restart-wrapper`. + # `tilt-restart-wrapper` makes use of `entr` (https://github.com/eradman/entr/) to + # re-execute $entrypoint whenever $restart_file changes + entrypoint_with_entr = ["/tilt-restart-wrapper", "--watch_file={}".format(restart_file)] + if exit_policy == 'continue': + entrypoint_with_entr = entrypoint_with_entr + ["--entr_flags=-r"] + if type(entrypoint) == type(""): + entrypoint_with_entr = entrypoint_with_entr + ["sh", "-c", entrypoint] + elif type(entrypoint) == type([]): + entrypoint_with_entr = entrypoint_with_entr + entrypoint + else: + fail("`entrypoint` must be a string or list of strings: got {}".format(type(entrypoint))) + + # last live_update step should always be to modify $restart_file, which + # triggers the process wrapper to rerun $entrypoint + # NB: write `date` instead of just `touch`ing because `entr` doesn't respond + # to timestamp changes, only writes (see https://github.com/eradman/entr/issues/32) + live_update = live_update + [run('date > {}'.format(restart_file), trigger=trigger)] + + # We don't need a real context. See: + # https://github.com/tilt-dev/tilt/issues/3897 + context = _ext_dir + + docker_build(ref, context, entrypoint=entrypoint_with_entr, dockerfile_contents=df, + live_update=live_update, **kwargs) + +def docker_build_with_restart(ref, context, entrypoint, live_update, + base_suffix='-tilt_docker_build_with_restart_base', restart_file=RESTART_FILE, + trigger=None, exit_policy='restart', **kwargs): + """Wrap a docker_build call and its associated live_update steps so that the last step + of any live update is to rerun the given entrypoint. + + Args: + ref: name for this image (e.g. 'myproj/backend' or 'myregistry/myproj/backend'); as the parameter of the same name in docker_build + context: path to use as the Docker build context; as the parameter of the same name in docker_build + entrypoint: the command to be (re-)executed when the container starts or when a live_update is run + live_update: set of steps for updating a running container; as the parameter of the same name in docker_build + base_suffix: suffix for naming the base image, applied as {ref}{base_suffix} + restart_file: file that Tilt will update during a live_update to signal the entrypoint to rerun + trigger: (optional) list of local paths. If specified, the process will ONLY be restarted when there are changes + to the given file(s); as the parameter of the same name in the LiveUpdate `run` step. + **kwargs: will be passed to the underlying `docker_build` call + """ + + # first, validate the given live_update steps + if len(live_update) == 0: + fail("`docker_build_with_restart` requires at least one live_update step") + for step in live_update: + if type(step) == TYPE_RESTART_CONTAINER_STEP: + fail("`docker_build_with_restart` is not compatible with live_update step: " + + "`restart_container()` (this extension is meant to REPLACE restart_container() )") + + # rename the original image to make it a base image and declare a docker_build for it + base_ref = '{}{}'.format(ref, base_suffix) + docker_build(base_ref, context, **kwargs) + + # Clean kwargs for building the child image (which builds on user's specified + # image and copies in Tilt's restart wrapper). In practice, this means removing + # kwargs that were relevant to building the user's specified image but are NOT + # relevant to building the child image / may conflict with args we specifically + # pass for the child image. + cleaned_kwargs = {k: v for k, v in kwargs.items() if k not in KWARGS_BLACKLIST} + _helper(base_ref, ref, entrypoint, live_update, restart_file, trigger, exit_policy, **cleaned_kwargs) + + +def custom_build_with_restart(ref, command, deps, entrypoint, live_update, + base_suffix='-tilt_docker_build_with_restart_base', restart_file=RESTART_FILE, + trigger=None, exit_policy='restart', **kwargs): + """Wrap a custom_build call and its associated live_update steps so that the last step + of any live update is to rerun the given entrypoint. + + Args: + ref: name for this image (e.g. 'myproj/backend' or 'myregistry/myproj/backend'); as the parameter of the same name in custom_build + command: build command for building your image + deps: source dependencies of the custom build + entrypoint: the command to be (re-)executed when the container starts or when a live_update is run + live_update: set of steps for updating a running container; as the parameter of the same name in custom_build + base_suffix: suffix for naming the base image, applied as {ref}{base_suffix} + restart_file: file that Tilt will update during a live_update to signal the entrypoint to rerun + trigger: (optional) list of local paths. If specified, the process will ONLY be restarted when there are changes + to the given file(s); as the parameter of the same name in the LiveUpdate `run` step. + **kwargs: will be passed to the underlying `custom_build` call + """ + + # first, validate the given live_update steps + if len(live_update) == 0: + fail("`custom_build_with_restart` requires at least one live_update step") + for step in live_update: + if type(step) == TYPE_RESTART_CONTAINER_STEP: + fail("`custom_build_with_restart` is not compatible with live_update step: "+ + "`restart_container()` (this extension is meant to REPLACE restart_container() )") + + for k, v in kwargs.items(): + if k == 'skips_local_docker': + fail("`custom_build_with_restart` is not compatible with `skips_local_docker`, because it needs access to the image") + if k == 'disable_push': + fail("`custom_build_with_restart` is not compatible with `disable_push`") + if k == 'tag': + fail("`custom_build_with_restart` renames your base image, so is not compatible with `tag`") + + # rename the original image to make it a base image and declare a custom_build for it + base_ref = '{}{}'.format(ref, base_suffix) + custom_build(base_ref, command=command, deps=deps, **kwargs) + + # A few arguments aren't applicable to the docker_build, so remove them. + cleaned_kwargs = {k: v for k, v in kwargs.items() if k not in _CUSTOM_BUILD_KWARGS_BLACKLIST} + _helper(base_ref, ref, entrypoint, live_update, restart_file, trigger, exit_policy, **cleaned_kwargs) diff --git a/tilt_modules/restart_process/release.sh b/tilt_modules/restart_process/release.sh new file mode 100755 index 0000000000..b236822a7f --- /dev/null +++ b/tilt_modules/restart_process/release.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +set -ex + +TIMESTAMP=$(date +'%Y-%m-%d') +IMAGE_NAME='tiltdev/restart-helper' +IMAGE_WITH_TAG=$IMAGE_NAME:$TIMESTAMP + +# build binary for tilt-restart-wrapper +env GOOS=linux GOARCH=amd64 go build tilt-restart-wrapper.go + +# build Docker image with static binaries of: +# - tilt-restart-wrapper (compiled above) +# - entr (dependency of tilt-restart-wrapper) +docker build . -t "$IMAGE_NAME" +docker push "$IMAGE_NAME" + +docker tag "$IMAGE_NAME" "$IMAGE_WITH_TAG" +docker push "$IMAGE_WITH_TAG" + +echo "Successfully built and pushed $IMAGE_WITH_TAG" + + + diff --git a/tilt_modules/restart_process/test/Dockerfile b/tilt_modules/restart_process/test/Dockerfile new file mode 100644 index 0000000000..95934f1b4d --- /dev/null +++ b/tilt_modules/restart_process/test/Dockerfile @@ -0,0 +1,5 @@ +FROM busybox + +COPY fail.sh / + +ENTRYPOINT /fail.sh diff --git a/tilt_modules/restart_process/test/Tiltfile b/tilt_modules/restart_process/test/Tiltfile new file mode 100644 index 0000000000..5a943f9305 --- /dev/null +++ b/tilt_modules/restart_process/test/Tiltfile @@ -0,0 +1,5 @@ +load('../Tiltfile', 'docker_build_with_restart') + +k8s_yaml('job.yaml') +docker_build_with_restart('failing_job', '.', '/fail.sh', + live_update=[sync('./fail.sh', '/fail.sh')]) diff --git a/tilt_modules/restart_process/test/custom.Tiltfile b/tilt_modules/restart_process/test/custom.Tiltfile new file mode 100644 index 0000000000..692a9bcedb --- /dev/null +++ b/tilt_modules/restart_process/test/custom.Tiltfile @@ -0,0 +1,9 @@ +load('../Tiltfile', 'custom_build_with_restart') + +k8s_yaml('job.yaml') +custom_build_with_restart( + 'failing_job', + command='docker build -t $EXPECTED_REF .', + deps=['fail.sh'], + entrypoint='/fail.sh', + live_update=[sync('./fail.sh', '/fail.sh')]) diff --git a/tilt_modules/restart_process/test/fail.sh b/tilt_modules/restart_process/test/fail.sh new file mode 100755 index 0000000000..1e51f5e0a2 --- /dev/null +++ b/tilt_modules/restart_process/test/fail.sh @@ -0,0 +1,9 @@ +#! /bin/sh + +echo "Are you there, pod?" +sleep 1 + +# Exit with a non-zero status code; we check that docker_build_with_restart +# surfaces this error code to k8s, so k8s knows that the job failed. +echo "Exiting with status code 123 ๐Ÿ˜ฑ" +exit 123 diff --git a/tilt_modules/restart_process/test/job.yaml b/tilt_modules/restart_process/test/job.yaml new file mode 100644 index 0000000000..09e5445b6e --- /dev/null +++ b/tilt_modules/restart_process/test/job.yaml @@ -0,0 +1,12 @@ +apiVersion: batch/v1 +kind: Job +metadata: + name: failing-job +spec: + template: + spec: + containers: + - name: failing-job + image: failing_job + restartPolicy: Never + backoffLimit: 4 diff --git a/tilt_modules/restart_process/test/test-custom.sh b/tilt_modules/restart_process/test/test-custom.sh new file mode 100755 index 0000000000..e06b5da8cf --- /dev/null +++ b/tilt_modules/restart_process/test/test-custom.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +cd "$(dirname "$0")" || exit 1 + +set -x +tilt ci -f custom.Tiltfile > tilt.log 2>&1 +CI_EXIT=$? + +tilt down + +if [ $CI_EXIT -eq 0 ]; then + echo "Expected 'tilt ci' to fail, but succeeded." + exit 1 +fi + +grep -q "Are you there, pod?" tilt.log +GREP_EXIT=$? + +rm tilt.log + +exit $GREP_EXIT diff --git a/tilt_modules/restart_process/test/test-docker.sh b/tilt_modules/restart_process/test/test-docker.sh new file mode 100755 index 0000000000..63c50ceb72 --- /dev/null +++ b/tilt_modules/restart_process/test/test-docker.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +# Test case for https://github.com/tilt-dev/tilt-extensions/issues/92 +# +# This job will always exit with a non-zero status code; make sure +# that docker_build_with_restart surfaces this error code to k8s, +# so k8s knows that the job failed. (Thus, we expect the `tilt ci` +# call to fail.) +cd "$(dirname "$0")" || exit 1 + +set -x +tilt ci > tilt.log 2>&1 +CI_EXIT=$? + +tilt down + +if [ $CI_EXIT -eq 0 ]; then + echo "Expected 'tilt ci' to fail, but succeeded." + exit 1 +fi + +grep -q "Are you there, pod?" tilt.log +GREP_EXIT=$? + +cat tilt.log + +rm tilt.log + +exit $GREP_EXIT diff --git a/tilt_modules/restart_process/test/test.sh b/tilt_modules/restart_process/test/test.sh new file mode 100755 index 0000000000..2705502a1c --- /dev/null +++ b/tilt_modules/restart_process/test/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +set -ex + +cd "$(dirname "$0")" +./test-docker.sh +./test-custom.sh diff --git a/tilt_modules/restart_process/tilt-restart-wrapper.go b/tilt_modules/restart_process/tilt-restart-wrapper.go new file mode 100644 index 0000000000..ddc81b3403 --- /dev/null +++ b/tilt_modules/restart_process/tilt-restart-wrapper.go @@ -0,0 +1,74 @@ +// `tilt-restart-wrapper` wraps `entr` (http://eradman.com/entrproject/) to easily +// rerun a user-specified command when a given file changes. +// +// This is Tilt's recommended way of restarting a process as part of a live_update: +// if your container invokes your app via the restart wrapper (e.g. `tilt-restart-wrapper /bin/my-app`), +// you can trigger re-execution of your app with a live_update `run` step that makes +// a trivial change to the file watched by `entr` (e.g. `run('date > /.restart-proc')`) +// +// This script exists (i.e. we're wrapping `entr` in a binary instead of invoking +// it directly) because in its canonical invocation, `entr` requires that the +// file(s) to watch be piped via stdin, i.e. it is invoked like: +// echo "/.restart-proc" | entr -rz /bin/my-app +// +// When specified as a `command` in Kubernetes or Docker Compose YAML (this is how +// Tilt overrides entrypoints), the above would therefore need to be executed as shell: +// /bin/sh -c 'echo "/.restart-proc" | entr -rz /bin/my-app' + +// Any args specified in Kubernetes or Docker Compose YAML are attached to the end +// of this call, and therefore in this case apply TO THE `/bin/sh -c` CALL, rather +// than to the actual command run by `entr`; that is, any `args` specified by the +// user would be effectively ignored. +// +// In order to make `entr` executable as ARGV rather than as shell, we have wrapped it +// in a binary that can be called directly and takes care of the piping under the hood. +// +// Note: ideally `entr` could accept files-to-watch via flag instead of stdin, +// but (for a number of good reasons) this feature isn't likely to be added any +// time soon (see https://github.com/eradman/entr/issues/33). + +package main + +import ( + "flag" + "fmt" + "log" + "os" + "os/exec" + "strings" + "syscall" +) + +var watchFile = flag.String("watch_file", "/.restart-proc", "File that entr will watch for changes; changes to this file trigger `entr` to rerun the command(s) passed") +var entrPath = flag.String("entr_path", "/entr", "Path to `entr` executable") +var entrFlags = flag.String("entr_flags", "-rz", "Command line flags to pass to `entr` executable") + +func main() { + flag.Parse() + + cmd := exec.Command(*entrPath, *entrFlags) + cmd.Stdin = strings.NewReader(fmt.Sprintf("%s\n", *watchFile)) + cmd.Args = append(cmd.Args, flag.Args()...) + cmd.Stdout = os.Stdout + cmd.Stderr = os.Stderr + + if err := cmd.Run(); err != nil { + if exiterr, ok := err.(*exec.ExitError); ok { + // The program has exited with an exit code != 0 + if status, ok := exiterr.Sys().(syscall.WaitStatus); ok { + if len(flag.Args()) == 0 { + log.Println("`tilt-restart-wrapper` requires at least one positional arg " + + "(a command or set of args to be executed / rerun whenever `watch_file` changes)") + } + os.Exit(status.ExitStatus()) + } + } else { + log.Fatalf("error running command: %v", err) + } + } + + if len(flag.Args()) == 0 { + log.Fatal("`tilt-restart-wrapper` requires at least one positional arg " + + "(will be passed to `entr` and executed / rerun whenever `watch_file` changes)") + } +} diff --git a/tilt_modules/tilt_inspector/.gitignore b/tilt_modules/tilt_inspector/.gitignore new file mode 100644 index 0000000000..97008e5b86 --- /dev/null +++ b/tilt_modules/tilt_inspector/.gitignore @@ -0,0 +1,2 @@ +node_modules +yarn.lock \ No newline at end of file diff --git a/tilt_modules/tilt_inspector/README.md b/tilt_modules/tilt_inspector/README.md new file mode 100644 index 0000000000..5a720e6f6c --- /dev/null +++ b/tilt_modules/tilt_inspector/README.md @@ -0,0 +1,24 @@ +# Tilt Inspsector + +Author: [Nick Santos](https://github.com/nicks) + +A small debugging server for viewing internal Tilt state. + +## Functions + +### tilt_inspector(port: int = 11350) + +Exposes a tilt inspector server at the given port. + +## Example Usage + +``` +load('ext://tilt_inspector', 'tilt_inspector') +tilt_inspector() +``` + +## Other notes + +Requires yarn/nodejs. + +One tilt inspector server can inspect arbitrarily many tilt instances. diff --git a/tilt_modules/tilt_inspector/Tiltfile b/tilt_modules/tilt_inspector/Tiltfile new file mode 100644 index 0000000000..dcc571bb26 --- /dev/null +++ b/tilt_modules/tilt_inspector/Tiltfile @@ -0,0 +1,18 @@ +# -*- mode: Python -*- + +_dir = os.getcwd() + +def tilt_inspector(port=11351): + # The tilt:inspector resource is currently a local server installed + run + # with Yarn. + # + # Ideally, it would be a docker container, but that would require some + # networking tricks to get the process in the container talking to Tilt. + local_resource( + name="tilt:inspector", + deps=[], + cmd='cd %s && yarn install' % _dir, + serve_env={'TILT_INSPECTOR_PORT': '%d' % port}, + serve_cmd='cd %s && yarn run tilt-inspector' % _dir, + readiness_probe=probe(http_get=http_get_action(port=port)), + links=['http://localhost:%d/' % port]) diff --git a/tilt_modules/tilt_inspector/test/Tiltfile b/tilt_modules/tilt_inspector/test/Tiltfile new file mode 100644 index 0000000000..602c939dc6 --- /dev/null +++ b/tilt_modules/tilt_inspector/test/Tiltfile @@ -0,0 +1,8 @@ +load('../Tiltfile', 'tilt_inspector') + +tilt_inspector() + +local_resource( + name='verify', + resource_deps=['tilt:inspector'], + cmd='curl -fsSL http://localhost:11351/view/cmd') diff --git a/tilt_modules/tilt_inspector/test/test.sh b/tilt_modules/tilt_inspector/test/test.sh new file mode 100644 index 0000000000..9aaf15c4b9 --- /dev/null +++ b/tilt_modules/tilt_inspector/test/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +set -ex +tilt ci +tilt down --delete-namespaces diff --git a/tilt_modules/uibutton/README.md b/tilt_modules/uibutton/README.md new file mode 100644 index 0000000000..bd64625bd6 --- /dev/null +++ b/tilt_modules/uibutton/README.md @@ -0,0 +1,124 @@ +# UIButton + +Authors: + +- [Matt Landis](https://github.com/landism) +- [Milas Bowman](https://github.com/milas) + +Extend the Tilt UI with custom actions for your resources. + +## Functions + +### `cmd_button(name, resource, argv, text=None, location=location.RESOURCE, icon_name=None, icon_svg=None)` + +Creates a button for a resource that runs the given command when clicked. + +| Argument | Type | Description | +| -------- | ---- | ----------- | +| `name` | `str` | Unique ID for button | +| `resource` | `str` | Resource to associate button with (required if `location=location.RESOURCE`) | +| `argv` | `List[str]` | Local command to run when button is clicked | +| `text` | `str` | Text to display on button (optional: defaults to `name`) | +| `location` | `str` (enum) | Button placement in UI (see `location` section below) | +| `icon_name` | `str` | Name of [Material Icons font ligature][material-icons-font] to use as icon (at most one of `icon_name` or `icon_svg` should be specified) | +| `icon_svg` | `str` or `Blob` | `` to use as icon; should have 24x24px viewport (at most one of `icon_name` or `icon_svg` should be specified) | + +### `location` + +To specify button location, you can bind the `location` helper type or pass a string, e.g. `location=location.NAV` and `location='nav'` are equivalent. + +| Location | `str` Value | `location` Value | +| ---------- | ----------- | ------------------- | +| Resource | `resource` | `location.RESOURCE` | +| Global nav | `nav` | `location.NAV` | + +## Example Usage + +```python +load('ext://uibutton', 'cmd_button', 'location') + +# define resource 'my-resource' +# k8s_resource('my-resource') + +# create a button on resource 'my-resource' +cmd_button(name='my-resource-hello-world', + resource='my-resource', + argv=['echo', 'Hello my-resource!'], + text='Hello World', + icon_name='travel_explore') + +cmd_button(name='nav-hello-world', + argv=['echo', 'Hello nav!'], + text='Hello World', + location=location.NAV, + icon_name='waving_hand') +``` + +## Button Placement + +Currently, you can create buttons for a specific resource, which will be shown with other resource contextual actions such as "Copy Pod ID" or as part of the global nav next to the help and account buttons. + +### Resource + +To create a resource button, pass the resource name via `resource='my-resource'` and omit the `location` argument or explicitly pass `location=location.RESOURCE`. + +Any command output will appear interleaved with the associated resource's logs. + +Providing an icon is optional. + +### Global Nav + +To create a global nav button, pass `location=location.NAV` and omit the `resource` argument or explicitly pass `resource=None`. + +Any command output will appear in the "All Resources" log view under `(global)`. + +Global nav buttons SHOULD specify an icon via either the `icon_name` or `icon_svg` arguments. The `text` value will appear on hover. + +## Icons + +Button icons can either come from the set of built-in icons that ship with Tilt or a custom SVG. + +Navbar buttons SHOULD include an icon as the button text is only visible on hover. +For resource buttons, icons are optional and will appear within the button if specified. + +If both `icon_name` and `icon_svg` are specified, `icon_svg` will take precedence. + +### Built-in Icons (Material Icons) + +Tilt includes the [Material Icons][material-icons-font] by default. +Use the `icon_name` argument and pass the "font ligature" value for your desired icon. +The font ligatures are visible in the sidebar after clicking on an icon on the Material Fonts site. +Tip: They are `lower_snake_case` values, e.g. the "Check Circle" icon has a font ligature value of `check_circle`. + +### Custom Icons (SVG) + +Use the `icon_svg` argument and pass a full `` element. +The SVG viewport should be 24x24 for best results. + +To avoid string quoting issues, it's often easiest to load the SVG from disk rather than storing it directly in your Tiltfile: + +```python +load('ext://uibutton', 'cmd_button', 'location') + +icon = read_file('./icon.svg') + +cmd_button('svg-btn', + argv=['echo', 'โœจ Hello from SVG โœจ'], + location=location.NAV, + icon_svg=icon, + text='SVG Nav Button') # text will appear on hover +``` + +## Other notes + +Commands are executed locally on the host running `tilt up` (similar to `local_resource`). + +The `argv` argument only accepts a list, e.g. `['echo', 'Hello World']` but not `echo 'Hello World'`. + +To run a script, invoke the interpreter and then pass the script as an argument, e.g. `['bash', '-c', 'echo "Hello from bash ${BASH_VERSION}"']`. + +## Known Issues + +- Renamed/deleted buttons will not be removed until Tilt is restarted ([#193](https://github.com/tilt-dev/tilt-extensions/issues/193)) + +[material-icons-font]: https://fonts.google.com/icons diff --git a/tilt_modules/uibutton/Tiltfile b/tilt_modules/uibutton/Tiltfile new file mode 100644 index 0000000000..0b980eae8e --- /dev/null +++ b/tilt_modules/uibutton/Tiltfile @@ -0,0 +1,103 @@ +LOCATION_RESOURCE = 'resource' +LOCATION_NAV = 'nav' + +location = struct( + RESOURCE = LOCATION_RESOURCE, + NAV = LOCATION_NAV, +) + + +def _button(name, location, text='', icon=None, annotations={}): + text = text or name + btn = { + "apiVersion": "tilt.dev/v1alpha1", + "kind": "UIButton", + "metadata": { + "name": name, + "annotations": annotations + }, + "spec": { + "text": text, + "location": { + "componentType": location.type, + "componentID": location.id, + } + } + } + + if icon: + if icon.svg: + # convert to str to handle str + Blob + btn['spec']['iconSVG'] = str(icon.svg) + elif icon.name: + btn['spec']['iconName'] = icon.name + + return btn + + +def cmd_button(name, resource='', argv=[], text=None, location=LOCATION_RESOURCE, icon_name=None, icon_svg=None): + if config.tilt_subcommand == 'down': + return + + if not location: + fail('location is required') + + if location == LOCATION_RESOURCE: + if not resource: + fail('Must provide a resource name') + elif resource: + fail('Cannot specify resource for location type {}'.format(location)) + + if not argv: + fail('argv cannot be empty') + + btn_annotations = {} + + if location == LOCATION_NAV: + location=struct(type='Global', id='nav') + elif location == LOCATION_RESOURCE: + location=struct(type='Resource', id=resource) + btn_annotations['tilt.dev/resource'] = resource + else: + # fallback to simplify experimenting with new locations in the future + loc_type, sep, loc_id = location.partition('/') + if not sep: + fail('Unsupported location {}'.format(location)) + location=struct(type=loc_type, id=loc_id) + + button = _button( + name=name, + location=location, + text=text, + icon=struct(name=icon_name, svg=icon_svg), + annotations=btn_annotations + ) + cmd = { + "apiVersion": "tilt.dev/v1alpha1", + "kind": "Cmd", + "metadata": { + "name": "btn-" + name, + "annotations": { + "tilt.dev/resource": resource, + "tilt.dev/log-span-id": 'cmd:' + name, + } + }, + "spec": { + "args": argv, + "dir": config.main_dir, + "startOn": { + "startAfter": _now(), + "uiButtons": [name], + }, + } + } + + local('echo "${TILT_APPLY_YAML}" | %s apply -f -' % (sys.executable,), + env={'TILT_APPLY_YAML': str(encode_yaml_stream([button, cmd]))}, + echo_off=True) + + +def _now(): + # this is portable across coreutils/busybox/BSD + # note: it's missing fractional seconds because that's not available from strftime + return str(local('date -u +"%Y-%m-%dT%H:%M:%S.000000Z"', echo_off=True, quiet=True)).rstrip('\r\n') diff --git a/tilt_modules/uibutton/test/Tiltfile b/tilt_modules/uibutton/test/Tiltfile new file mode 100644 index 0000000000..753414cc18 --- /dev/null +++ b/tilt_modules/uibutton/test/Tiltfile @@ -0,0 +1,10 @@ +load('../Tiltfile', 'cmd_button', 'location') + +local_resource('vigoda', cmd='echo "Hello from resource"') + +cmd_button("resource-button", resource="vigoda", argv=["bash", "-c", "echo Hello from bash ${BASH_VERSION}"], text='Resource Button', icon_name='star') + +goose_icon = read_file('./goose.svg') + +cmd_button('nav-button-svg', argv=["echo", "โœจ Hello from SVG โœจ"], location=location.NAV, icon_svg=goose_icon, text='SVG Nav Button') +cmd_button('nav-button-std', argv=["echo", "Hello from nav"], location=location.NAV, icon_name='calendar_today') diff --git a/tilt_modules/uibutton/test/goose.svg b/tilt_modules/uibutton/test/goose.svg new file mode 100644 index 0000000000..3e705fc52d --- /dev/null +++ b/tilt_modules/uibutton/test/goose.svg @@ -0,0 +1,4 @@ + + + + diff --git a/tilt_modules/uibutton/test/test.sh b/tilt_modules/uibutton/test/test.sh new file mode 100644 index 0000000000..9aaf15c4b9 --- /dev/null +++ b/tilt_modules/uibutton/test/test.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +cd "$(dirname "$0")" + +set -ex +tilt ci +tilt down --delete-namespaces diff --git a/traffic/clones.csv b/traffic/clones.csv new file mode 100644 index 0000000000..bf891c2ffb --- /dev/null +++ b/traffic/clones.csv @@ -0,0 +1,1417 @@ +_date,total_clones,unique_clones +2021-06-19,18,17 +2021-06-20,87,32 +2021-06-21,83,31 +2021-06-22,85,32 +2021-06-23,189,41 +2021-06-24,92,37 +2021-06-25,108,38 +2021-06-26,66,35 +2021-06-27,96,30 +2021-06-28,86,26 +2021-06-29,100,35 +2021-06-30,110,32 +2021-07-01,233,49 +2021-07-02,288,46 +2021-07-03,178,40 +2021-07-04,247,45 +2021-07-05,381,51 +2021-07-06,136,37 +2021-07-07,139,38 +2021-07-08,109,31 +2021-07-09,110,29 +2021-07-10,115,34 +2021-07-11,126,40 +2021-07-12,154,37 +2021-07-13,162,35 +2021-07-14,135,26 +2021-07-15,194,38 +2021-07-16,123,34 +2021-07-17,151,35 +2021-07-18,153,38 +2021-07-19,199,38 +2021-07-20,187,30 +2021-07-21,113,31 +2021-07-22,150,29 +2021-07-23,209,30 +2021-07-24,146,32 +2021-07-25,161,38 +2021-07-26,197,40 +2021-07-27,149,30 +2021-07-28,80,31 +2021-07-29,80,31 +2021-07-30,157,35 +2021-07-31,145,30 +2021-08-01,151,31 +2021-08-02,173,35 +2021-08-03,165,30 +2021-08-04,253,45 +2021-08-05,205,39 +2021-08-06,221,34 +2021-08-07,183,34 +2021-08-08,217,35 +2021-08-09,150,30 +2021-08-10,175,34 +2021-08-11,362,43 +2021-08-12,147,29 +2021-08-13,193,36 +2021-08-14,153,32 +2021-08-15,155,27 +2021-08-16,98,31 +2021-08-17,145,24 +2021-08-18,195,35 +2021-08-19,148,28 +2021-08-20,90,25 +2021-08-21,144,22 +2021-08-22,145,21 +2021-08-23,92,25 +2021-08-24,151,25 +2021-08-25,92,26 +2021-08-26,226,34 +2021-08-27,175,25 +2021-08-28,86,23 +2021-08-29,94,25 +2021-08-30,292,43 +2021-08-31,554,42 +2021-09-01,240,32 +2021-09-02,367,39 +2021-09-03,126,28 +2021-09-04,216,27 +2021-09-05,135,32 +2021-09-06,221,28 +2021-09-07,361,41 +2021-09-08,251,30 +2021-09-09,347,32 +2021-09-10,362,26 +2021-09-11,252,23 +2021-09-12,280,19 +2021-09-13,356,28 +2021-09-14,366,26 +2021-09-15,379,30 +2021-09-16,348,26 +2021-09-17,379,33 +2021-09-18,290,25 +2021-09-19,382,32 +2021-09-20,413,34 +2021-09-21,356,29 +2021-09-22,325,22 +2021-09-23,400,30 +2021-09-24,397,31 +2021-09-25,259,23 +2021-09-26,294,24 +2021-09-27,338,21 +2021-09-28,392,31 +2021-09-29,368,30 +2021-09-30,377,30 +2021-10-01,400,31 +2021-10-02,357,30 +2021-10-03,254,27 +2021-10-04,290,28 +2021-10-05,380,29 +2021-10-06,402,29 +2021-10-07,359,29 +2021-10-08,348,28 +2021-10-09,346,26 +2021-10-10,383,32 +2021-10-11,357,29 +2021-10-12,284,24 +2021-10-13,271,27 +2021-10-14,279,24 +2021-10-15,258,24 +2021-10-16,160,16 +2021-10-17,17,10 +2021-10-18,115,15 +2021-10-19,315,26 +2021-10-20,600,23 +2021-10-21,1036,24 +2021-10-22,868,23 +2021-10-23,730,21 +2021-10-24,537,24 +2021-10-25,595,22 +2021-10-26,396,23 +2021-10-27,317,23 +2021-10-28,226,19 +2021-10-29,253,23 +2021-10-30,243,25 +2021-10-31,240,24 +2021-11-01,231,22 +2021-11-02,250,22 +2021-11-03,214,17 +2021-11-04,225,19 +2021-11-05,226,19 +2021-11-06,241,22 +2021-11-07,259,26 +2021-11-08,306,22 +2021-11-09,218,21 +2021-11-10,194,19 +2021-11-11,223,20 +2021-11-12,241,23 +2021-11-13,227,20 +2021-11-14,239,23 +2021-11-15,355,22 +2021-11-16,214,16 +2021-11-17,253,20 +2021-11-18,255,18 +2021-11-19,338,25 +2021-11-20,224,17 +2021-11-21,205,19 +2021-11-22,274,19 +2021-11-23,266,18 +2021-11-24,247,19 +2021-11-25,236,19 +2021-11-26,233,16 +2021-11-27,225,18 +2021-11-28,368,32 +2021-11-29,441,23 +2021-11-30,138,13 +2021-12-01,225,19 +2021-12-02,238,20 +2021-12-03,233,17 +2021-12-04,330,21 +2021-12-05,238,23 +2021-12-06,333,20 +2021-12-07,217,19 +2021-12-08,238,20 +2021-12-09,221,16 +2021-12-10,226,17 +2021-12-11,268,20 +2021-12-12,235,18 +2021-12-13,283,16 +2021-12-14,230,17 +2021-12-15,242,17 +2021-12-16,222,16 +2021-12-17,237,21 +2021-12-18,268,23 +2021-12-19,253,24 +2021-12-20,375,26 +2021-12-21,271,24 +2021-12-22,227,21 +2021-12-23,237,20 +2021-12-24,228,21 +2021-12-25,248,20 +2021-12-26,273,25 +2021-12-27,342,25 +2021-12-28,279,19 +2021-12-29,233,17 +2021-12-30,235,17 +2021-12-31,236,19 +2022-01-01,217,17 +2022-01-02,256,21 +2022-01-03,323,20 +2022-01-04,216,16 +2022-01-05,317,18 +2022-01-06,299,19 +2022-01-07,242,18 +2022-01-08,256,17 +2022-01-09,265,21 +2022-01-10,401,22 +2022-01-11,243,16 +2022-01-12,205,15 +2022-01-13,224,17 +2022-01-14,235,19 +2022-01-15,222,15 +2022-01-16,248,23 +2022-01-17,294,17 +2022-01-18,215,17 +2022-01-19,244,20 +2022-01-20,266,21 +2022-01-21,252,20 +2022-01-22,213,16 +2022-01-23,266,21 +2022-01-24,249,23 +2022-01-25,216,18 +2022-01-26,217,19 +2022-01-27,257,22 +2022-01-28,246,19 +2022-01-29,226,17 +2022-01-30,274,25 +2022-01-31,343,18 +2022-02-01,267,20 +2022-02-02,275,22 +2022-02-03,202,15 +2022-02-04,241,19 +2022-02-05,249,19 +2022-02-06,259,22 +2022-02-07,345,21 +2022-02-08,230,18 +2022-02-09,250,18 +2022-02-10,234,17 +2022-02-11,223,14 +2022-02-12,227,16 +2022-02-13,324,22 +2022-02-14,323,18 +2022-02-15,233,17 +2022-02-16,300,20 +2022-02-17,249,19 +2022-02-18,218,17 +2022-02-19,227,16 +2022-02-20,251,23 +2022-02-21,303,17 +2022-02-22,231,17 +2022-02-23,218,16 +2022-02-24,223,16 +2022-02-25,265,19 +2022-02-26,224,16 +2022-02-27,245,20 +2022-02-28,323,17 +2022-03-01,203,13 +2022-03-02,222,15 +2022-03-03,229,12 +2022-03-04,231,15 +2022-03-05,237,16 +2022-03-06,255,20 +2022-03-07,309,13 +2022-03-08,212,13 +2022-03-09,185,12 +2022-03-10,164,9 +2022-03-11,155,9 +2022-03-12,229,16 +2022-03-13,234,18 +2022-03-14,315,17 +2022-03-15,217,15 +2022-03-16,244,18 +2022-03-17,235,17 +2022-03-18,256,19 +2022-03-19,225,17 +2022-03-20,230,17 +2022-03-21,215,15 +2022-03-22,251,17 +2022-03-23,239,16 +2022-03-24,221,13 +2022-03-25,203,13 +2022-03-26,201,13 +2022-03-27,224,17 +2022-03-28,360,18 +2022-03-29,221,14 +2022-03-30,194,12 +2022-03-31,211,13 +2022-04-01,277,18 +2022-04-02,191,11 +2022-04-03,188,12 +2022-04-04,243,17 +2022-04-05,233,16 +2022-04-06,211,14 +2022-04-07,237,16 +2022-04-08,209,14 +2022-04-09,217,15 +2022-04-10,219,16 +2022-04-11,348,19 +2022-04-12,233,15 +2022-04-13,222,15 +2022-04-14,210,14 +2022-04-15,243,15 +2022-04-16,208,13 +2022-04-17,208,14 +2022-04-18,322,16 +2022-04-19,170,10 +2022-04-20,169,9 +2022-04-21,202,13 +2022-04-22,207,12 +2022-04-23,250,17 +2022-04-24,206,14 +2022-04-25,216,13 +2022-04-26,247,14 +2022-04-27,231,14 +2022-04-28,209,13 +2022-04-29,304,16 +2022-04-30,42,14 +2022-05-01,70,19 +2022-05-02,124,17 +2022-05-03,38,15 +2022-05-04,80,14 +2022-05-05,43,16 +2022-05-06,36,13 +2022-05-07,48,17 +2022-05-08,81,21 +2022-05-09,94,19 +2022-05-10,51,14 +2022-05-11,37,14 +2022-05-12,43,15 +2022-05-13,39,13 +2022-05-14,45,18 +2022-05-15,58,13 +2022-05-16,131,16 +2022-05-17,41,15 +2022-05-18,42,13 +2022-05-19,35,12 +2022-05-20,41,17 +2022-05-21,39,16 +2022-05-22,70,17 +2022-05-23,38,15 +2022-05-24,35,12 +2022-05-25,101,18 +2022-05-26,37,13 +2022-05-27,41,16 +2022-05-28,45,16 +2022-05-29,74,20 +2022-05-30,46,18 +2022-05-31,44,15 +2022-06-01,47,16 +2022-06-02,40,11 +2022-06-03,34,12 +2022-06-04,42,15 +2022-06-05,69,18 +2022-06-06,48,18 +2022-06-07,36,13 +2022-06-08,30,10 +2022-06-09,24,9 +2022-06-10,28,10 +2022-06-11,39,15 +2022-06-12,67,16 +2022-06-13,70,16 +2022-06-14,35,12 +2022-06-15,32,12 +2022-06-16,33,12 +2022-06-17,36,12 +2022-06-18,26,11 +2022-06-19,68,19 +2022-06-20,37,14 +2022-06-21,35,14 +2022-06-22,80,15 +2022-06-23,26,10 +2022-06-24,33,14 +2022-06-25,41,16 +2022-06-26,71,17 +2022-06-27,86,20 +2022-06-28,84,16 +2022-06-29,35,14 +2022-06-30,81,16 +2022-07-01,35,12 +2022-07-02,37,14 +2022-07-03,76,20 +2022-07-04,44,16 +2022-07-05,37,12 +2022-07-06,39,13 +2022-07-07,41,16 +2022-07-08,39,13 +2022-07-09,44,15 +2022-07-10,75,18 +2022-07-11,44,17 +2022-07-12,37,13 +2022-07-13,38,15 +2022-07-14,31,11 +2022-07-15,25,8 +2022-07-16,42,15 +2022-07-17,75,18 +2022-07-18,85,18 +2022-07-19,43,14 +2022-07-20,40,14 +2022-07-21,36,10 +2022-07-22,40,14 +2022-07-23,41,15 +2022-07-24,78,21 +2022-07-25,40,15 +2022-07-26,40,14 +2022-07-27,44,16 +2022-07-28,39,13 +2022-07-29,34,12 +2022-07-30,37,14 +2022-07-31,78,19 +2022-08-01,32,13 +2022-08-02,25,9 +2022-08-03,31,11 +2022-08-04,37,14 +2022-08-05,37,13 +2022-08-06,37,14 +2022-08-07,73,18 +2022-08-08,81,19 +2022-08-09,35,12 +2022-08-10,39,13 +2022-08-11,34,13 +2022-08-12,42,15 +2022-08-13,42,15 +2022-08-14,77,18 +2022-08-15,41,14 +2022-08-16,40,14 +2022-08-17,40,13 +2022-08-18,42,15 +2022-08-19,40,14 +2022-08-20,36,13 +2022-08-21,76,18 +2022-08-22,77,18 +2022-08-23,28,10 +2022-08-24,27,10 +2022-08-25,31,11 +2022-08-26,34,10 +2022-08-27,35,13 +2022-08-28,70,17 +2022-08-29,32,10 +2022-08-30,33,11 +2022-08-31,34,13 +2022-09-01,32,12 +2022-09-02,35,13 +2022-09-03,28,10 +2022-09-04,58,12 +2022-09-05,21,8 +2022-09-06,29,10 +2022-09-07,24,10 +2022-09-08,28,10 +2022-09-09,30,12 +2022-09-10,30,12 +2022-09-11,64,16 +2022-09-12,29,10 +2022-09-13,32,12 +2022-09-14,39,13 +2022-09-15,34,11 +2022-09-16,37,12 +2022-09-17,34,11 +2022-09-18,59,14 +2022-09-19,28,11 +2022-09-20,38,11 +2022-09-21,40,13 +2022-09-22,35,12 +2022-09-23,36,12 +2022-09-24,31,11 +2022-09-25,53,14 +2022-09-26,31,12 +2022-09-27,32,10 +2022-09-28,32,11 +2022-09-29,85,15 +2022-09-30,32,12 +2022-10-01,35,13 +2022-10-02,61,14 +2022-10-03,31,12 +2022-10-04,34,11 +2022-10-05,33,12 +2022-10-06,40,13 +2022-10-07,48,17 +2022-10-08,43,16 +2022-10-09,71,19 +2022-10-10,46,14 +2022-10-11,39,13 +2022-10-12,43,14 +2022-10-13,49,14 +2022-10-14,49,17 +2022-10-15,48,18 +2022-10-16,71,19 +2022-10-17,95,21 +2022-10-18,43,13 +2022-10-19,48,16 +2022-10-20,44,15 +2022-10-21,55,14 +2022-10-22,41,16 +2022-10-23,70,19 +2022-10-24,51,17 +2022-10-25,40,15 +2022-10-26,57,16 +2022-10-27,38,11 +2022-10-28,32,10 +2022-10-29,22,6 +2022-10-30,64,11 +2022-10-31,30,9 +2022-11-01,31,8 +2022-11-02,36,9 +2022-11-03,27,10 +2022-11-04,24,6 +2022-11-05,26,8 +2022-11-06,58,13 +2022-11-07,40,12 +2022-11-08,73,10 +2022-11-09,29,8 +2022-11-10,28,9 +2022-11-11,27,8 +2022-11-12,25,7 +2022-11-13,58,12 +2022-11-14,40,11 +2022-11-15,26,7 +2022-11-16,29,9 +2022-11-17,29,10 +2022-11-18,26,9 +2022-11-19,24,8 +2022-11-20,56,11 +2022-11-21,40,11 +2022-11-22,28,9 +2022-11-23,25,8 +2022-11-24,27,10 +2022-11-25,25,8 +2022-11-26,21,5 +2022-11-27,55,11 +2022-11-28,83,13 +2022-11-29,26,6 +2022-11-30,30,11 +2022-12-01,25,7 +2022-12-02,25,7 +2022-12-03,23,7 +2022-12-04,60,12 +2022-12-05,29,11 +2022-12-06,30,9 +2022-12-07,25,7 +2022-12-08,28,7 +2022-12-09,23,6 +2022-12-10,24,7 +2022-12-11,58,11 +2022-12-12,26,8 +2022-12-13,27,8 +2022-12-14,28,9 +2022-12-15,25,7 +2022-12-16,27,7 +2022-12-17,26,9 +2022-12-18,21,5 +2023-01-02,24,7 +2023-01-03,30,8 +2023-01-04,28,9 +2023-01-05,25,7 +2023-01-06,30,8 +2023-01-07,23,7 +2023-01-08,51,10 +2023-01-09,27,8 +2023-01-10,28,8 +2023-01-11,24,7 +2023-01-12,24,6 +2023-01-13,25,7 +2023-01-14,23,7 +2023-01-15,55,10 +2023-01-16,29,10 +2023-01-17,46,9 +2023-01-18,25,8 +2023-01-19,25,6 +2023-01-20,26,8 +2023-01-21,22,6 +2023-01-22,56,10 +2023-01-23,39,12 +2023-01-24,28,8 +2023-01-25,24,6 +2023-01-26,24,6 +2023-01-27,23,7 +2023-01-28,22,6 +2023-01-29,56,10 +2023-01-30,37,11 +2023-01-31,23,6 +2023-02-01,25,6 +2023-02-02,24,7 +2023-02-03,23,7 +2023-02-04,26,9 +2023-02-05,54,8 +2023-02-06,27,8 +2023-02-07,23,5 +2023-02-08,25,7 +2023-02-09,25,8 +2023-02-10,24,7 +2023-02-11,25,8 +2023-02-12,55,10 +2023-02-13,37,11 +2023-02-14,24,7 +2023-02-15,23,7 +2023-02-16,25,8 +2023-02-17,22,7 +2023-02-18,22,6 +2023-02-19,56,10 +2023-02-20,36,12 +2023-02-21,24,6 +2023-02-22,21,5 +2023-02-23,22,6 +2023-02-24,23,6 +2023-02-25,23,7 +2023-02-26,56,10 +2023-02-27,33,8 +2023-02-28,33,8 +2023-03-01,21,6 +2023-03-02,26,8 +2023-03-03,22,7 +2023-03-04,21,6 +2023-03-05,55,10 +2023-03-06,26,10 +2023-03-07,22,5 +2023-03-08,23,7 +2023-03-09,21,5 +2023-03-10,23,7 +2023-03-11,21,5 +2023-03-12,56,10 +2023-03-13,74,12 +2023-03-14,22,6 +2023-03-15,25,7 +2023-03-16,15,7 +2023-03-17,15,6 +2023-03-18,15,7 +2023-03-19,46,8 +2023-03-20,22,9 +2023-03-21,40,7 +2023-03-22,14,6 +2023-03-23,14,5 +2023-03-24,17,7 +2023-03-25,19,8 +2023-03-26,52,11 +2023-03-27,25,11 +2023-03-28,20,8 +2023-03-29,19,9 +2023-03-30,18,7 +2023-03-31,16,6 +2023-04-01,13,6 +2023-04-02,50,9 +2023-04-03,22,9 +2023-04-04,17,6 +2023-04-05,13,4 +2023-04-06,14,6 +2023-04-07,15,7 +2023-04-08,14,6 +2023-04-09,46,9 +2023-04-10,17,8 +2023-04-11,16,6 +2023-04-12,14,6 +2023-04-13,15,6 +2023-04-14,15,7 +2023-04-15,14,6 +2023-04-16,65,11 +2023-04-17,23,10 +2023-04-18,18,7 +2023-04-19,15,6 +2023-04-20,17,6 +2023-04-21,17,7 +2023-04-22,16,7 +2023-04-23,51,11 +2023-04-24,24,11 +2023-04-25,17,6 +2023-04-26,17,7 +2023-04-27,21,9 +2023-04-28,18,8 +2023-04-29,18,9 +2023-04-30,52,11 +2023-05-01,25,11 +2023-05-02,18,7 +2023-05-03,21,9 +2023-05-04,20,7 +2023-05-05,14,6 +2023-05-06,25,9 +2023-05-07,71,15 +2023-05-08,26,10 +2023-05-09,17,6 +2023-05-10,18,8 +2023-05-11,19,8 +2023-05-12,16,7 +2023-05-13,16,7 +2023-05-14,51,10 +2023-05-15,19,8 +2023-05-16,20,9 +2023-05-17,20,8 +2023-05-18,17,7 +2023-05-19,12,4 +2023-05-20,24,11 +2023-05-21,60,14 +2023-05-22,31,14 +2023-05-23,17,7 +2023-05-24,16,7 +2023-05-25,19,8 +2023-05-26,20,9 +2023-05-27,17,8 +2023-05-28,50,11 +2023-05-29,26,10 +2023-05-30,17,8 +2023-05-31,15,7 +2023-06-01,14,7 +2023-06-02,17,8 +2023-06-03,18,9 +2023-06-04,53,10 +2023-06-05,21,10 +2023-06-06,19,7 +2023-06-07,17,7 +2023-06-08,16,7 +2023-06-09,15,7 +2023-06-10,16,7 +2023-06-11,49,9 +2023-06-12,23,10 +2023-06-13,18,7 +2023-06-14,15,6 +2023-06-15,15,6 +2023-06-16,16,7 +2023-06-17,16,7 +2023-06-18,51,9 +2023-06-19,25,10 +2023-06-20,56,8 +2023-06-21,17,6 +2023-06-22,18,8 +2023-06-23,15,7 +2023-06-24,15,7 +2023-06-25,50,10 +2023-06-26,24,10 +2023-06-27,17,6 +2023-06-28,17,6 +2023-06-29,19,8 +2023-06-30,15,6 +2023-07-01,17,7 +2023-07-02,49,9 +2023-07-03,22,9 +2023-07-04,16,7 +2023-07-05,13,6 +2023-07-06,16,5 +2023-07-07,15,7 +2023-07-08,66,8 +2023-07-09,52,10 +2023-07-10,26,13 +2023-07-11,19,8 +2023-07-12,19,8 +2023-07-13,22,7 +2023-07-14,30,6 +2023-07-15,29,6 +2023-07-16,66,12 +2023-07-17,37,12 +2023-07-18,30,7 +2023-07-19,28,7 +2023-07-20,26,6 +2023-07-21,29,8 +2023-07-22,27,7 +2023-07-23,65,10 +2023-07-24,35,11 +2023-07-25,30,7 +2023-07-26,29,8 +2023-07-27,32,9 +2023-07-28,31,7 +2023-07-29,28,6 +2023-07-30,67,10 +2023-07-31,33,8 +2023-08-01,26,6 +2023-08-02,26,7 +2023-08-03,27,7 +2023-08-04,23,6 +2023-08-05,26,7 +2023-08-06,61,10 +2023-08-07,32,9 +2023-08-08,30,8 +2023-08-09,29,7 +2023-08-10,26,7 +2023-08-11,30,9 +2023-08-12,31,8 +2023-08-13,65,12 +2023-08-14,33,10 +2023-08-15,32,9 +2023-08-16,28,7 +2023-08-17,28,7 +2023-08-18,29,8 +2023-08-19,31,9 +2023-08-20,63,12 +2023-08-21,37,12 +2023-08-22,28,7 +2023-08-23,27,6 +2023-08-24,28,8 +2023-08-25,30,9 +2023-08-26,27,7 +2023-08-27,61,12 +2023-08-28,35,12 +2023-08-29,32,9 +2023-08-30,34,9 +2023-08-31,30,9 +2023-09-01,27,6 +2023-09-02,28,8 +2023-09-03,66,12 +2023-09-04,34,11 +2023-09-05,28,8 +2023-09-06,25,6 +2023-09-07,27,7 +2023-09-08,25,5 +2023-09-09,29,8 +2023-09-10,57,9 +2023-09-11,29,10 +2023-09-12,26,8 +2023-09-13,27,6 +2023-09-14,32,8 +2023-09-15,28,8 +2023-09-16,25,5 +2023-09-17,62,11 +2023-09-18,30,10 +2023-09-19,29,9 +2023-09-20,29,6 +2023-09-21,29,8 +2023-09-22,25,6 +2023-09-23,28,8 +2023-09-24,59,10 +2023-09-25,30,8 +2023-09-26,28,5 +2023-09-27,26,6 +2023-09-28,26,6 +2023-09-29,22,8 +2023-09-30,22,3 +2023-10-01,60,12 +2023-10-02,28,9 +2023-10-03,70,11 +2023-10-04,26,6 +2023-10-05,26,5 +2023-10-06,25,6 +2023-10-07,25,6 +2023-10-08,58,10 +2023-10-09,70,12 +2023-10-10,28,6 +2023-10-11,27,6 +2023-10-12,27,7 +2023-10-13,26,5 +2023-10-14,26,7 +2023-10-15,58,14 +2023-10-16,31,11 +2023-10-17,28,6 +2023-10-18,27,6 +2023-10-19,26,9 +2023-10-20,29,8 +2023-10-21,25,6 +2023-10-22,61,13 +2023-10-23,27,10 +2023-10-24,27,6 +2023-10-25,24,6 +2023-10-26,25,6 +2023-10-27,27,8 +2023-10-28,27,7 +2023-10-29,63,11 +2023-10-30,32,11 +2023-10-31,31,8 +2023-11-01,22,6 +2023-11-02,26,7 +2023-11-03,29,7 +2023-11-04,26,7 +2023-11-05,61,15 +2023-11-06,28,9 +2023-11-07,27,7 +2023-11-08,26,6 +2023-11-09,27,8 +2023-11-10,28,6 +2023-11-11,27,7 +2023-11-12,61,10 +2023-11-13,30,10 +2023-11-14,29,7 +2023-11-15,25,8 +2023-11-16,25,7 +2023-11-17,27,8 +2023-11-18,28,8 +2023-11-19,62,16 +2023-11-20,32,12 +2023-11-21,30,9 +2023-11-22,27,8 +2023-11-23,26,7 +2023-11-24,27,7 +2023-11-25,28,8 +2023-11-26,61,13 +2023-11-27,32,12 +2023-11-28,25,9 +2023-11-29,18,8 +2023-11-30,26,8 +2023-12-01,26,7 +2023-12-02,26,8 +2023-12-03,53,10 +2023-12-04,30,11 +2023-12-05,29,9 +2023-12-06,30,9 +2023-12-07,26,7 +2023-12-08,26,7 +2023-12-09,28,9 +2023-12-10,58,12 +2023-12-11,35,13 +2023-12-12,29,9 +2023-12-13,20,2 +2023-12-14,10,2 +2023-12-15,21,3 +2023-12-16,21,3 +2023-12-17,54,10 +2023-12-18,23,5 +2023-12-19,22,3 +2023-12-20,21,3 +2023-12-21,20,2 +2023-12-22,26,7 +2023-12-23,27,9 +2023-12-24,57,11 +2023-12-25,31,12 +2023-12-26,27,8 +2023-12-27,26,8 +2023-12-28,26,8 +2023-12-29,25,7 +2023-12-30,25,7 +2023-12-31,58,14 +2024-01-01,34,14 +2024-01-02,28,9 +2024-01-03,27,8 +2024-01-04,29,10 +2024-01-05,27,8 +2024-01-06,27,8 +2024-01-07,60,13 +2024-01-08,29,10 +2024-01-09,29,9 +2024-01-10,28,9 +2024-01-11,26,8 +2024-01-12,26,7 +2024-01-13,27,9 +2024-01-14,58,12 +2024-01-15,28,9 +2024-01-16,28,8 +2024-01-17,27,8 +2024-01-18,26,8 +2024-01-19,30,7 +2024-01-20,29,7 +2024-01-21,68,14 +2024-01-22,34,11 +2024-01-23,32,7 +2024-01-24,33,8 +2024-01-25,29,9 +2024-01-26,31,9 +2024-01-27,31,9 +2024-01-28,68,15 +2024-01-29,36,14 +2024-01-30,37,11 +2024-01-31,34,10 +2024-02-01,35,11 +2024-02-02,34,10 +2024-02-03,31,9 +2024-02-04,71,15 +2024-02-05,34,11 +2024-02-06,37,9 +2024-02-07,36,11 +2024-02-08,35,10 +2024-02-09,35,10 +2024-02-10,34,10 +2024-02-11,70,14 +2024-02-12,37,12 +2024-02-13,34,9 +2024-02-14,33,9 +2024-02-15,32,9 +2024-02-16,35,10 +2024-02-17,30,7 +2024-02-18,69,13 +2024-02-19,37,12 +2024-02-20,36,10 +2024-02-21,30,8 +2024-02-22,33,8 +2024-02-23,37,10 +2024-02-24,19,10 +2024-02-25,58,17 +2024-02-26,34,10 +2024-02-27,35,9 +2024-02-28,35,10 +2024-02-29,34,9 +2024-03-01,34,10 +2024-03-02,33,11 +2024-03-03,69,14 +2024-03-04,55,13 +2024-03-05,29,9 +2024-03-06,20,10 +2024-03-07,24,9 +2024-03-08,35,10 +2024-03-09,33,9 +2024-03-10,68,15 +2024-03-11,36,11 +2024-03-12,31,7 +2024-03-13,30,8 +2024-03-14,32,8 +2024-03-15,33,8 +2024-03-16,32,10 +2024-03-17,70,15 +2024-03-18,37,11 +2024-03-19,38,12 +2024-03-20,28,9 +2024-03-21,17,7 +2024-03-22,16,6 +2024-03-23,15,6 +2024-03-24,53,17 +2024-03-25,34,11 +2024-03-26,35,9 +2024-03-27,33,8 +2024-03-28,33,8 +2024-03-29,32,8 +2024-03-30,31,9 +2024-03-31,66,15 +2024-04-01,17,4 +2024-04-02,32,8 +2024-04-03,33,9 +2024-04-04,32,7 +2024-04-05,33,9 +2024-04-06,31,7 +2024-04-07,69,14 +2024-04-08,76,15 +2024-04-09,29,8 +2024-04-10,31,9 +2024-04-11,30,7 +2024-04-12,37,10 +2024-04-13,34,9 +2024-04-14,59,12 +2024-04-15,45,15 +2024-04-16,35,9 +2024-04-17,35,11 +2024-04-18,32,7 +2024-04-19,33,9 +2024-04-20,39,11 +2024-04-21,73,16 +2024-04-22,43,11 +2024-04-23,31,8 +2024-04-24,32,7 +2024-04-25,28,7 +2024-04-26,34,10 +2024-04-27,35,10 +2024-04-28,75,15 +2024-04-29,35,9 +2024-04-30,33,8 +2024-05-01,30,8 +2024-05-02,33,9 +2024-05-03,34,10 +2024-05-04,33,8 +2024-05-05,68,13 +2024-05-06,38,11 +2024-05-07,33,7 +2024-05-08,33,10 +2024-05-09,41,10 +2024-05-10,35,9 +2024-05-11,33,9 +2024-05-12,68,13 +2024-05-13,39,12 +2024-05-14,33,10 +2024-05-15,24,8 +2024-05-16,23,10 +2024-05-17,24,8 +2024-05-18,29,11 +2024-05-19,69,18 +2024-05-20,27,11 +2024-05-21,25,11 +2024-05-22,25,8 +2024-05-23,34,8 +2024-05-24,37,10 +2024-05-25,35,10 +2024-05-26,72,16 +2024-05-27,85,17 +2024-05-28,33,9 +2024-05-29,30,10 +2024-05-30,37,11 +2024-05-31,34,10 +2024-06-01,19,9 +2024-06-02,58,17 +2024-06-03,35,12 +2024-06-04,36,10 +2024-06-05,33,9 +2024-06-06,32,8 +2024-06-07,31,6 +2024-06-08,36,11 +2024-06-09,69,13 +2024-06-10,35,10 +2024-06-11,32,9 +2024-06-12,31,8 +2024-06-13,31,9 +2024-06-14,26,8 +2024-06-15,8,1 +2024-06-16,33,2 +2024-06-17,16,4 +2024-06-18,35,8 +2024-06-19,34,9 +2024-06-20,32,7 +2024-06-21,26,7 +2024-06-22,15,3 +2024-06-23,45,10 +2024-06-24,17,9 +2024-06-25,9,1 +2024-06-26,9,2 +2024-06-27,8,1 +2024-06-28,8,1 +2024-06-29,11,4 +2024-06-30,35,3 +2024-07-01,47,5 +2024-07-02,10,2 +2024-07-03,11,4 +2024-07-04,10,3 +2024-07-05,5,1 +2024-07-06,8,1 +2024-07-07,30,3 +2024-07-08,12,3 +2024-07-09,10,2 +2024-07-10,10,3 +2024-07-11,10,3 +2024-07-12,7,2 +2024-07-13,11,3 +2024-07-14,35,3 +2024-07-15,11,3 +2024-07-16,9,1 +2024-07-17,11,4 +2024-07-18,8,2 +2024-07-19,11,3 +2024-07-20,10,3 +2024-07-21,34,3 +2024-07-22,10,3 +2024-07-23,12,4 +2024-07-24,11,4 +2024-07-25,11,3 +2024-07-26,8,1 +2024-07-27,9,2 +2024-07-28,34,3 +2024-07-29,11,3 +2024-07-30,11,2 +2024-07-31,9,2 +2024-08-01,9,2 +2024-08-02,11,4 +2024-08-03,9,2 +2024-08-04,34,3 +2024-08-05,9,2 +2024-08-06,10,2 +2024-08-07,10,3 +2024-08-08,11,4 +2024-08-09,10,3 +2024-08-10,9,2 +2024-08-11,35,3 +2024-08-12,10,3 +2024-08-13,10,2 +2024-08-14,10,4 +2024-08-15,11,3 +2024-08-16,10,3 +2024-08-17,9,2 +2024-08-18,36,5 +2024-08-19,12,4 +2024-08-20,12,4 +2024-08-21,10,3 +2024-08-22,10,2 +2024-08-23,11,4 +2024-08-24,8,1 +2024-08-25,34,3 +2024-08-26,7,4 +2024-08-27,11,3 +2024-08-28,8,1 +2024-08-29,9,2 +2024-08-30,9,2 +2024-08-31,9,2 +2024-09-01,34,3 +2024-09-02,12,4 +2024-09-03,9,1 +2024-09-04,9,2 +2024-09-05,9,2 +2024-09-06,10,3 +2024-09-07,11,3 +2024-09-08,34,3 +2024-09-09,8,1 +2024-09-10,12,4 +2024-09-11,14,7 +2024-09-12,9,2 +2024-09-13,9,2 +2024-09-14,11,4 +2024-09-15,34,6 +2024-09-16,12,4 +2024-09-17,10,2 +2024-09-18,9,2 +2024-09-19,9,2 +2024-09-20,10,3 +2024-09-21,10,3 +2024-09-22,33,5 +2024-09-23,12,4 +2024-09-24,10,2 +2024-09-25,11,4 +2024-09-26,12,4 +2024-09-27,8,1 +2024-09-28,9,2 +2024-09-29,32,4 +2024-09-30,11,4 +2024-10-01,11,3 +2024-10-02,8,1 +2024-10-03,12,5 +2024-10-04,13,5 +2024-10-05,8,1 +2024-10-06,32,4 +2024-10-07,26,4 +2024-10-08,10,2 +2024-10-09,8,1 +2024-10-10,8,1 +2024-10-11,9,2 +2024-10-12,9,2 +2024-10-13,31,3 +2024-10-14,36,2 +2024-10-15,11,3 +2024-10-16,8,1 +2024-10-17,9,2 +2024-10-18,10,3 +2024-10-19,11,4 +2024-10-20,30,2 +2024-10-21,11,3 +2024-10-22,10,2 +2024-10-23,9,2 +2024-10-24,10,2 +2024-10-25,9,2 +2024-10-26,8,1 +2024-10-27,31,3 +2024-10-28,11,3 +2024-10-29,9,1 +2024-10-30,8,1 +2024-10-31,9,2 +2024-11-01,8,1 +2024-11-02,10,3 +2024-11-03,33,4 +2024-11-04,14,6 +2024-11-05,11,3 +2024-11-06,10,3 +2024-11-07,8,1 +2024-11-08,8,1 +2024-11-09,8,1 +2024-11-10,33,5 +2024-11-11,10,3 +2024-11-12,9,1 +2024-11-13,10,3 +2024-11-14,9,2 +2024-11-15,13,5 +2024-11-16,9,2 +2024-11-17,32,4 +2024-11-18,11,4 +2024-11-19,12,4 +2024-11-20,9,2 +2024-11-21,11,3 +2024-11-22,9,2 +2024-11-23,11,3 +2024-11-24,32,3 +2024-11-25,13,4 +2024-11-26,9,1 +2024-11-27,8,1 +2024-11-28,9,2 +2024-11-29,10,3 +2024-11-30,10,3 +2024-12-01,35,5 +2024-12-02,11,4 +2024-12-03,9,1 +2024-12-04,10,3 +2024-12-05,8,1 +2024-12-06,9,2 +2024-12-07,10,3 +2024-12-08,32,3 +2024-12-09,8,1 +2024-12-10,11,3 +2024-12-11,8,1 +2024-12-12,10,3 +2024-12-13,11,3 +2024-12-14,10,3 +2024-12-15,33,5 +2024-12-16,11,3 +2024-12-17,9,1 +2024-12-18,13,5 +2024-12-19,8,1 +2024-12-20,9,2 +2024-12-21,10,3 +2024-12-22,31,3 +2024-12-23,8,1 +2024-12-24,9,1 +2024-12-25,11,4 +2024-12-26,10,3 +2024-12-27,10,3 +2024-12-28,9,2 +2024-12-29,34,5 +2024-12-30,9,2 +2024-12-31,10,2 +2025-01-01,9,2 +2025-01-02,9,2 +2025-01-03,14,6 +2025-01-04,10,3 +2025-01-05,33,5 +2025-01-06,11,4 +2025-01-07,13,5 +2025-01-08,9,2 +2025-01-09,10,3 +2025-01-10,12,5 +2025-01-11,9,2 +2025-01-12,32,4 +2025-01-13,10,3 +2025-01-14,11,3 +2025-01-15,9,2 +2025-01-16,11,4 +2025-01-17,5,2 +2025-01-18,10,3 +2025-01-19,33,5 +2025-01-20,4,1 +2025-01-21,10,2 +2025-01-22,10,3 +2025-01-23,12,4 +2025-01-24,11,4 +2025-01-25,8,1 +2025-01-26,30,2 +2025-01-27,43,5 +2025-01-28,12,4 +2025-01-29,8,1 +2025-01-30,19,6 +2025-01-31,31,11 +2025-02-01,32,14 +2025-02-02,70,20 +2025-02-03,72,19 +2025-02-04,31,11 +2025-02-05,30,11 +2025-02-06,32,12 +2025-02-07,31,11 +2025-02-08,30,12 +2025-02-09,61,16 +2025-02-10,35,16 +2025-02-11,30,13 +2025-02-12,33,14 +2025-02-13,31,12 +2025-02-14,31,12 +2025-02-15,30,13 +2025-02-16,65,19 +2025-02-17,35,13 +2025-02-18,31,10 +2025-02-19,31,12 +2025-02-20,31,10 +2025-02-21,33,13 +2025-02-22,33,14 +2025-02-23,68,21 +2025-02-24,35,15 +2025-02-25,33,11 +2025-02-26,31,14 +2025-02-27,31,11 +2025-02-28,32,12 +2025-03-01,33,14 +2025-03-02,65,19 +2025-03-03,34,14 +2025-03-04,33,11 +2025-03-05,30,10 +2025-03-06,30,12 +2025-03-07,33,12 +2025-03-08,30,10 +2025-03-09,63,16 +2025-03-10,36,16 +2025-03-11,35,14 +2025-03-12,32,11 +2025-03-13,29,10 +2025-03-14,30,11 +2025-03-15,32,13 +2025-03-16,67,19 +2025-03-17,34,14 +2025-03-18,33,13 +2025-03-19,25,11 +2025-03-20,31,13 +2025-03-21,33,12 +2025-03-22,29,11 +2025-03-23,67,17 +2025-03-24,33,13 +2025-03-25,33,10 +2025-03-26,29,9 +2025-03-27,30,10 +2025-03-28,31,10 +2025-03-29,30,12 +2025-03-30,64,16 +2025-03-31,30,11 +2025-04-01,30,10 +2025-04-02,30,12 +2025-04-03,30,9 +2025-04-04,47,22 +2025-04-05,34,11 +2025-04-06,65,16 +2025-04-07,31,11 +2025-04-08,31,13 +2025-04-09,29,10 +2025-04-10,28,9 +2025-04-11,31,12 +2025-04-12,33,13 +2025-04-13,63,16 +2025-04-14,33,13 +2025-04-15,30,9 +2025-04-16,31,10 +2025-04-17,28,10 +2025-04-18,30,12 +2025-04-19,29,10 +2025-04-20,65,17 +2025-04-21,29,9 +2025-04-22,35,10 +2025-04-23,32,12 +2025-04-24,28,10 +2025-04-25,30,10 +2025-04-26,30,10 +2025-04-27,65,16 +2025-04-28,35,14 +2025-04-29,27,9 +2025-04-30,28,9 +2025-05-01,31,10 +2025-05-02,28,11 +2025-05-03,27,8 +2025-05-04,64,17 +2025-05-05,32,12 +2025-05-06,30,10 +2025-05-07,29,10 +2025-05-08,29,10 +2025-05-09,27,9 +2025-05-10,28,11 +2025-05-11,61,16 +2025-05-12,31,12 +2025-05-13,28,8 +2025-05-14,28,9 +2025-05-15,29,10 +2025-05-16,27,8 +2025-05-17,29,10 +2025-05-18,27,11 diff --git a/traffic/plots.png b/traffic/plots.png new file mode 100644 index 0000000000..fa4b82a29f Binary files /dev/null and b/traffic/plots.png differ diff --git a/traffic/views.csv b/traffic/views.csv new file mode 100644 index 0000000000..a5e6751417 --- /dev/null +++ b/traffic/views.csv @@ -0,0 +1,437 @@ +_date,total_views,unique_views +2021-06-19,2,1 +2021-06-22,2,2 +2021-06-23,1,1 +2021-06-26,6,2 +2021-06-29,1,1 +2021-06-30,2,1 +2021-07-01,1,1 +2021-07-02,8,1 +2021-07-03,9,1 +2021-07-06,1,1 +2021-07-07,1,1 +2021-07-08,1,1 +2021-07-10,2,1 +2021-07-11,1,1 +2021-07-12,1,1 +2021-07-13,2,2 +2021-07-14,3,2 +2021-07-18,2,2 +2021-07-19,2,1 +2021-07-24,2,1 +2021-07-31,2,2 +2021-08-05,1,1 +2021-08-09,1,1 +2021-08-10,3,2 +2021-08-14,2,2 +2021-08-17,2,1 +2021-08-23,1,1 +2021-08-26,1,1 +2021-08-27,1,1 +2021-09-02,6,1 +2021-09-20,1,1 +2021-09-21,1,1 +2021-09-27,1,1 +2021-09-30,1,1 +2021-10-17,1,1 +2021-10-18,1,1 +2021-10-19,1,1 +2021-10-24,1,1 +2021-10-29,4,1 +2021-11-01,1,1 +2021-11-05,1,1 +2021-11-06,2,2 +2021-11-22,2,1 +2021-11-29,1,1 +2021-12-01,1,1 +2021-12-10,1,1 +2021-12-11,1,1 +2021-12-14,1,1 +2021-12-19,1,1 +2022-01-01,1,1 +2022-01-06,1,1 +2022-01-12,3,3 +2022-01-14,1,1 +2022-01-18,1,1 +2022-01-19,2,2 +2022-01-20,2,2 +2022-01-21,2,1 +2022-01-22,1,1 +2022-01-25,1,1 +2022-01-29,2,1 +2022-02-04,1,1 +2022-02-05,1,1 +2022-02-15,4,1 +2022-02-21,2,1 +2022-02-22,1,1 +2022-02-24,1,1 +2022-02-28,1,1 +2022-03-02,1,1 +2022-03-18,1,1 +2022-03-26,3,1 +2022-03-28,1,1 +2022-03-30,3,3 +2022-03-31,1,1 +2022-04-01,1,1 +2022-04-02,1,1 +2022-04-05,1,1 +2022-04-11,6,3 +2022-04-15,1,1 +2022-04-22,1,1 +2022-05-10,4,1 +2022-05-12,1,1 +2022-05-16,1,1 +2022-05-20,1,1 +2022-05-26,2,2 +2022-05-29,2,1 +2022-06-11,1,1 +2022-06-14,1,1 +2022-06-15,1,1 +2022-06-16,2,2 +2022-06-25,2,2 +2022-07-03,1,1 +2022-07-04,18,1 +2022-07-05,1,1 +2022-07-06,5,1 +2022-07-07,4,2 +2022-07-08,1,1 +2022-07-12,1,1 +2022-07-13,2,2 +2022-07-19,1,1 +2022-07-20,7,1 +2022-07-22,23,1 +2022-07-23,1,1 +2022-08-04,1,1 +2022-08-15,2,1 +2022-08-25,1,1 +2022-08-29,1,1 +2022-09-07,3,2 +2022-09-21,1,1 +2022-09-26,1,1 +2022-09-27,1,1 +2022-10-07,1,1 +2022-10-14,2,1 +2022-10-21,1,1 +2022-10-26,1,1 +2022-11-02,1,1 +2022-11-03,1,1 +2022-11-04,1,1 +2022-11-09,2,1 +2022-11-13,1,1 +2022-11-18,4,1 +2022-11-21,1,1 +2022-11-25,2,1 +2022-11-27,14,2 +2022-11-28,1,1 +2022-12-01,1,1 +2022-12-02,3,2 +2022-12-06,1,1 +2022-12-09,1,1 +2022-12-10,1,1 +2022-12-11,1,1 +2022-12-13,1,1 +2022-12-14,3,2 +2022-12-16,1,1 +2022-12-18,1,1 +2023-01-05,1,1 +2023-01-06,1,1 +2023-01-08,1,1 +2023-01-13,1,1 +2023-01-19,1,1 +2023-01-21,1,1 +2023-01-24,1,1 +2023-02-02,1,1 +2023-02-03,2,2 +2023-02-04,3,2 +2023-02-05,2,1 +2023-02-07,1,1 +2023-02-10,1,1 +2023-02-14,1,1 +2023-02-17,1,1 +2023-02-19,1,1 +2023-02-20,1,1 +2023-02-21,2,1 +2023-03-02,2,1 +2023-03-06,1,1 +2023-03-08,2,1 +2023-03-12,1,1 +2023-03-15,1,1 +2023-03-16,1,1 +2023-03-17,1,1 +2023-03-18,2,2 +2023-03-19,1,1 +2023-03-20,1,1 +2023-03-25,5,2 +2023-03-27,5,2 +2023-03-29,1,1 +2023-03-30,1,1 +2023-04-01,1,1 +2023-04-02,3,1 +2023-04-04,1,1 +2023-04-05,1,1 +2023-04-06,2,1 +2023-04-11,1,1 +2023-04-24,1,1 +2023-04-25,1,1 +2023-05-01,1,1 +2023-05-02,1,1 +2023-05-03,1,1 +2023-05-10,1,1 +2023-05-17,1,1 +2023-05-29,2,1 +2023-05-30,1,1 +2023-06-01,1,1 +2023-06-03,2,1 +2023-06-04,5,2 +2023-06-06,18,4 +2023-06-13,7,3 +2023-06-15,1,1 +2023-06-16,1,1 +2023-06-22,1,1 +2023-06-25,5,2 +2023-06-26,6,2 +2023-06-28,13,3 +2023-06-29,3,1 +2023-06-30,18,4 +2023-07-01,22,4 +2023-07-02,27,5 +2023-07-03,37,4 +2023-07-04,39,6 +2023-07-05,20,4 +2023-07-06,22,4 +2023-07-07,33,4 +2023-07-08,38,7 +2023-07-09,17,4 +2023-07-10,22,4 +2023-07-11,22,4 +2023-07-12,11,3 +2023-07-13,7,2 +2023-07-14,13,3 +2023-07-15,3,1 +2023-07-16,12,2 +2023-07-17,11,4 +2023-07-18,7,3 +2023-07-19,9,3 +2023-07-20,17,5 +2023-07-21,18,4 +2023-07-22,12,2 +2023-07-23,4,2 +2023-07-24,7,2 +2023-07-25,8,3 +2023-07-27,4,3 +2023-07-28,3,1 +2023-07-29,2,2 +2023-07-30,3,1 +2023-07-31,16,4 +2023-08-01,25,5 +2023-08-02,20,5 +2023-08-03,12,2 +2023-08-04,25,5 +2023-08-05,1,1 +2023-08-07,23,4 +2023-08-08,6,1 +2023-08-09,5,2 +2023-08-10,1,1 +2023-08-11,5,2 +2023-08-12,15,9 +2023-08-13,8,4 +2023-08-14,5,2 +2023-08-15,22,9 +2023-08-17,1,1 +2023-08-18,4,2 +2023-08-19,8,3 +2023-08-20,10,2 +2023-08-21,17,4 +2023-08-22,21,5 +2023-08-23,5,2 +2023-08-24,9,3 +2023-08-25,3,2 +2023-08-26,11,3 +2023-08-27,3,2 +2023-08-28,11,3 +2023-08-29,8,4 +2023-08-30,5,3 +2023-09-03,13,3 +2023-09-05,5,1 +2023-09-07,3,1 +2023-09-14,2,2 +2023-09-18,4,1 +2023-09-24,6,2 +2023-09-28,4,4 +2023-09-29,1,1 +2023-10-01,1,1 +2023-10-05,1,1 +2023-10-06,1,1 +2023-10-07,1,1 +2023-10-09,8,2 +2023-10-10,1,1 +2023-10-11,16,2 +2023-10-12,1,1 +2023-10-20,1,1 +2023-10-22,1,1 +2023-10-24,1,1 +2023-11-11,5,3 +2023-11-12,2,2 +2023-11-15,3,1 +2023-11-17,5,2 +2023-11-19,3,2 +2023-11-20,5,2 +2023-11-22,7,2 +2023-11-23,8,3 +2023-11-24,13,3 +2023-11-25,3,1 +2023-11-26,12,5 +2023-11-28,3,3 +2023-11-29,2,1 +2023-12-01,3,3 +2023-12-02,3,2 +2023-12-04,3,1 +2023-12-05,3,1 +2023-12-08,2,2 +2023-12-09,3,1 +2023-12-11,2,2 +2023-12-12,4,2 +2023-12-14,4,3 +2023-12-15,2,2 +2023-12-16,1,1 +2023-12-21,3,1 +2023-12-23,1,1 +2023-12-25,2,2 +2023-12-26,3,3 +2023-12-27,2,2 +2023-12-28,14,6 +2023-12-29,2,2 +2024-01-01,1,1 +2024-01-03,1,1 +2024-01-04,1,1 +2024-01-05,2,2 +2024-01-06,3,1 +2024-01-07,1,1 +2024-01-08,8,3 +2024-01-09,6,4 +2024-01-10,16,7 +2024-01-11,15,6 +2024-01-12,20,7 +2024-01-13,10,4 +2024-01-14,10,4 +2024-01-15,2,2 +2024-01-16,6,3 +2024-02-06,2,2 +2024-02-08,1,1 +2024-02-10,1,1 +2024-02-15,3,1 +2024-02-16,1,1 +2024-02-21,1,1 +2024-02-26,3,1 +2024-02-27,3,1 +2024-02-28,4,2 +2024-02-29,4,2 +2024-03-03,3,3 +2024-03-05,1,1 +2024-03-06,1,1 +2024-03-07,6,3 +2024-03-09,5,3 +2024-03-11,3,2 +2024-03-12,3,3 +2024-03-13,2,2 +2024-03-15,3,3 +2024-03-17,4,3 +2024-03-18,12,5 +2024-03-19,4,1 +2024-03-21,1,1 +2024-03-24,6,2 +2024-03-26,11,3 +2024-03-30,1,1 +2024-03-31,2,2 +2024-04-01,1,1 +2024-04-03,3,3 +2024-04-10,3,1 +2024-04-11,3,1 +2024-04-13,1,1 +2024-04-15,1,1 +2024-04-17,1,1 +2024-04-19,3,1 +2024-04-21,1,1 +2024-04-23,1,1 +2024-05-01,2,2 +2024-05-06,5,2 +2024-05-27,1,1 +2024-05-31,1,1 +2024-06-05,1,1 +2024-06-10,1,1 +2024-06-12,2,2 +2024-06-28,2,1 +2024-06-29,8,1 +2024-07-02,1,1 +2024-07-03,1,1 +2024-07-05,1,1 +2024-07-06,1,1 +2024-07-10,2,1 +2024-07-12,7,1 +2024-07-17,2,1 +2024-07-19,2,1 +2024-07-26,1,1 +2024-07-27,2,1 +2024-07-31,2,2 +2024-08-02,1,1 +2024-08-07,1,1 +2024-08-12,2,1 +2024-09-02,2,1 +2024-09-08,2,2 +2024-09-10,5,5 +2024-09-14,1,1 +2024-09-17,1,1 +2024-09-26,1,1 +2024-10-03,1,1 +2024-10-07,1,1 +2024-10-12,1,1 +2024-10-24,1,1 +2024-10-28,1,1 +2024-10-29,1,1 +2024-11-02,1,1 +2024-11-04,2,2 +2024-11-08,1,1 +2024-11-11,1,1 +2024-11-30,2,1 +2024-12-02,1,1 +2024-12-03,1,1 +2024-12-10,4,2 +2024-12-13,1,1 +2024-12-25,2,2 +2024-12-27,1,1 +2024-12-28,1,1 +2025-01-01,1,1 +2025-01-07,1,1 +2025-01-09,1,1 +2025-01-13,21,21 +2025-01-14,18,17 +2025-01-15,17,16 +2025-01-16,6,6 +2025-01-23,1,1 +2025-01-24,1,1 +2025-01-25,1,1 +2025-01-27,2,2 +2025-01-31,1,1 +2025-02-03,2,2 +2025-02-04,1,1 +2025-02-06,3,1 +2025-02-11,1,1 +2025-02-13,1,1 +2025-02-16,2,2 +2025-02-17,1,1 +2025-03-04,1,1 +2025-03-13,2,2 +2025-03-19,1,1 +2025-03-28,1,1 +2025-04-06,1,1 +2025-04-13,1,1 +2025-04-16,2,1 +2025-04-19,1,1 +2025-04-25,1,1 +2025-04-30,1,1 +2025-05-01,3,2 +2025-05-07,1,1 +2025-05-12,1,1 +2025-05-13,1,1 +2025-05-16,1,1 +2025-05-17,4,1 diff --git a/version.txt b/version.txt new file mode 100644 index 0000000000..7698b02ddc --- /dev/null +++ b/version.txt @@ -0,0 +1 @@ +VERSION = "v1.0.1"