gitextract_4xm2v9ll/ ├── .circleci/ │ └── config.yml ├── .dockerignore ├── .gitattributes ├── .gitignore ├── Dockerfile ├── LICENSE ├── Makefile ├── README.md ├── docker-compose.yml ├── launch.lisp ├── quicklisp/ │ ├── .gitignore │ ├── asdf.lisp │ ├── client-info.sexp │ ├── dists/ │ │ └── quicklisp/ │ │ ├── distinfo.txt │ │ ├── enabled.txt │ │ └── preference.txt │ ├── log4slime-setup.el │ ├── quicklisp/ │ │ ├── bundle-template.lisp │ │ ├── bundle.lisp │ │ ├── cdb.lisp │ │ ├── client-info.lisp │ │ ├── client-update.lisp │ │ ├── client.lisp │ │ ├── config.lisp │ │ ├── deflate.lisp │ │ ├── dist-update.lisp │ │ ├── dist.lisp │ │ ├── fetch-gzipped.lisp │ │ ├── http.lisp │ │ ├── impl-util.lisp │ │ ├── impl.lisp │ │ ├── local-projects.lisp │ │ ├── minitar.lisp │ │ ├── misc.lisp │ │ ├── network.lisp │ │ ├── package.lisp │ │ ├── progress.lisp │ │ ├── quicklisp.asd │ │ ├── setup.lisp │ │ ├── utils.lisp │ │ └── version.txt │ └── setup.lisp ├── scripts/ │ ├── asdf.lisp │ ├── build-cli.lisp │ ├── build-image.lisp │ ├── common.mk │ ├── docker-compose-with-replay.yml │ ├── init.lisp │ ├── install-sbcl.sh │ ├── jenkins.lisp │ ├── lispworks-versions.mk │ ├── prepare-image.lisp │ └── update-phabricator.lisp ├── src/ │ ├── auth/ │ │ ├── acceptor.lisp │ │ ├── auth.asd │ │ ├── auth.lisp │ │ ├── avatar.lisp │ │ ├── company.lisp │ │ ├── dummy-init-key.out │ │ ├── login/ │ │ │ ├── auth.login.asd │ │ │ ├── cached-avatar.lisp │ │ │ ├── common.lisp │ │ │ ├── forgot-password.lisp │ │ │ ├── github.lisp │ │ │ ├── impersonation.lisp │ │ │ ├── login.lisp │ │ │ ├── oidc.lisp │ │ │ ├── roles-auth-provider.lisp │ │ │ ├── saml.lisp │ │ │ ├── signup.lisp │ │ │ ├── sso.lisp │ │ │ ├── test-cached-avatar.lisp │ │ │ ├── test-roles-auth-provider.lisp │ │ │ ├── test-sso.lisp │ │ │ ├── test-verify-email.lisp │ │ │ └── verify-email.lisp │ │ ├── model/ │ │ │ ├── auth.model.asd │ │ │ ├── company-sso.lisp │ │ │ ├── email-confirmation.lisp │ │ │ ├── invite.lisp │ │ │ ├── roles.lisp │ │ │ ├── test-email-confirmation.lisp │ │ │ ├── test-invite.lisp │ │ │ ├── test-roles.lisp │ │ │ └── user.lisp │ │ ├── package.lisp │ │ ├── request.lisp │ │ ├── test-auth.lisp │ │ ├── test-avatar.lisp │ │ ├── test-view.lisp │ │ ├── view.lisp │ │ └── viewer-context.lisp │ ├── auto-restart/ │ │ ├── .circleci/ │ │ │ └── config.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── auto-restart.asd │ │ ├── auto-restart.lisp │ │ ├── run-circleci.lisp │ │ └── test-auto-restart.lisp │ ├── build-utils/ │ │ ├── all.lisp │ │ ├── build-utils.asd │ │ ├── closure-compiler/ │ │ │ ├── COPYING │ │ │ ├── README.md │ │ │ └── closure-compiler-v20240317.jar │ │ ├── closure-compiler.lisp │ │ ├── common.lisp │ │ ├── css-package.lisp │ │ ├── dart-sass/ │ │ │ ├── sass │ │ │ └── src/ │ │ │ ├── LICENSE │ │ │ ├── dart │ │ │ └── sass.snapshot │ │ ├── darwin/ │ │ │ └── dart-sass/ │ │ │ ├── sass │ │ │ └── src/ │ │ │ ├── LICENSE │ │ │ ├── dart │ │ │ └── sass.snapshot │ │ ├── deliver-script.lisp │ │ ├── jar-file.lisp │ │ ├── js-package.lisp │ │ ├── linux-arm64/ │ │ │ └── dart-sass/ │ │ │ ├── sass │ │ │ └── src/ │ │ │ ├── LICENSE │ │ │ ├── dart │ │ │ └── sass.snapshot │ │ ├── remote-file.lisp │ │ └── wild-module.lisp │ ├── cl-mongo-id/ │ │ ├── LICENSE │ │ ├── README.markdown │ │ ├── cl-mongo-id.asd │ │ ├── mongo-id.lisp │ │ └── test-mongo-id.lisp │ ├── common/ │ │ └── bootstrap/ │ │ ├── .babelrc.js │ │ ├── .browserslistrc │ │ ├── .bundlewatch.config.json │ │ ├── .cspell.json │ │ ├── .editorconfig │ │ ├── .eslintignore │ │ ├── .eslintrc.json │ │ ├── .gitattributes │ │ ├── .github/ │ │ │ ├── CODEOWNERS │ │ │ ├── CONTRIBUTING.md │ │ │ ├── ISSUE_TEMPLATE/ │ │ │ │ ├── bug_report.yml │ │ │ │ ├── config.yml │ │ │ │ └── feature_request.yml │ │ │ ├── PULL_REQUEST_TEMPLATE.md │ │ │ ├── SUPPORT.md │ │ │ ├── dependabot.yml │ │ │ ├── release-drafter.yml │ │ │ └── workflows/ │ │ │ ├── browserstack.yml │ │ │ ├── bundlewatch.yml │ │ │ ├── calibreapp-image-actions.yml │ │ │ ├── codeql.yml │ │ │ ├── cspell.yml │ │ │ ├── css.yml │ │ │ ├── docs.yml │ │ │ ├── issue-close-require.yml │ │ │ ├── issue-labeled.yml │ │ │ ├── js.yml │ │ │ ├── lint.yml │ │ │ ├── node-sass.yml │ │ │ └── release-notes.yml │ │ ├── .gitignore │ │ ├── .stylelintignore │ │ ├── .stylelintrc │ │ ├── CODE_OF_CONDUCT.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── SECURITY.md │ │ ├── build/ │ │ │ ├── .eslintrc.json │ │ │ ├── banner.js │ │ │ ├── build-plugins.js │ │ │ ├── change-version.js │ │ │ ├── generate-sri.js │ │ │ ├── postcss.config.js │ │ │ ├── rollup.config.js │ │ │ ├── vnu-jar.js │ │ │ └── zip-examples.js │ │ ├── composer.json │ │ ├── config.yml │ │ ├── dist/ │ │ │ ├── css/ │ │ │ │ ├── bootstrap-grid.css │ │ │ │ ├── bootstrap-grid.rtl.css │ │ │ │ ├── bootstrap-reboot.css │ │ │ │ ├── bootstrap-reboot.rtl.css │ │ │ │ ├── bootstrap-utilities.css │ │ │ │ ├── bootstrap-utilities.rtl.css │ │ │ │ ├── bootstrap.css │ │ │ │ └── bootstrap.rtl.css │ │ │ └── js/ │ │ │ ├── bootstrap.bundle.js │ │ │ ├── bootstrap.esm.js │ │ │ ├── bootstrap.js │ │ │ └── bootstrap5-js.asd │ │ ├── js/ │ │ │ ├── dist/ │ │ │ │ ├── alert.js │ │ │ │ ├── base-component.js │ │ │ │ ├── button.js │ │ │ │ ├── carousel.js │ │ │ │ ├── collapse.js │ │ │ │ ├── dom/ │ │ │ │ │ ├── data.js │ │ │ │ │ ├── event-handler.js │ │ │ │ │ ├── manipulator.js │ │ │ │ │ └── selector-engine.js │ │ │ │ ├── dropdown.js │ │ │ │ ├── modal.js │ │ │ │ ├── offcanvas.js │ │ │ │ ├── popover.js │ │ │ │ ├── scrollspy.js │ │ │ │ ├── tab.js │ │ │ │ ├── toast.js │ │ │ │ ├── tooltip.js │ │ │ │ └── util/ │ │ │ │ ├── backdrop.js │ │ │ │ ├── component-functions.js │ │ │ │ ├── config.js │ │ │ │ ├── focustrap.js │ │ │ │ ├── index.js │ │ │ │ ├── sanitizer.js │ │ │ │ ├── scrollbar.js │ │ │ │ ├── swipe.js │ │ │ │ └── template-factory.js │ │ │ ├── index.esm.js │ │ │ ├── index.umd.js │ │ │ ├── src/ │ │ │ │ ├── alert.js │ │ │ │ ├── base-component.js │ │ │ │ ├── button.js │ │ │ │ ├── carousel.js │ │ │ │ ├── collapse.js │ │ │ │ ├── dom/ │ │ │ │ │ ├── data.js │ │ │ │ │ ├── event-handler.js │ │ │ │ │ ├── manipulator.js │ │ │ │ │ └── selector-engine.js │ │ │ │ ├── dropdown.js │ │ │ │ ├── modal.js │ │ │ │ ├── offcanvas.js │ │ │ │ ├── popover.js │ │ │ │ ├── scrollspy.js │ │ │ │ ├── tab.js │ │ │ │ ├── toast.js │ │ │ │ ├── tooltip.js │ │ │ │ └── util/ │ │ │ │ ├── backdrop.js │ │ │ │ ├── component-functions.js │ │ │ │ ├── config.js │ │ │ │ ├── focustrap.js │ │ │ │ ├── index.js │ │ │ │ ├── sanitizer.js │ │ │ │ ├── scrollbar.js │ │ │ │ ├── swipe.js │ │ │ │ └── template-factory.js │ │ │ └── tests/ │ │ │ ├── README.md │ │ │ ├── browsers.js │ │ │ ├── helpers/ │ │ │ │ └── fixture.js │ │ │ ├── integration/ │ │ │ │ ├── bundle-modularity.js │ │ │ │ ├── bundle.js │ │ │ │ ├── index.html │ │ │ │ ├── rollup.bundle-modularity.js │ │ │ │ └── rollup.bundle.js │ │ │ ├── karma.conf.js │ │ │ ├── unit/ │ │ │ │ ├── .eslintrc.json │ │ │ │ ├── alert.spec.js │ │ │ │ ├── base-component.spec.js │ │ │ │ ├── button.spec.js │ │ │ │ ├── carousel.spec.js │ │ │ │ ├── collapse.spec.js │ │ │ │ ├── dom/ │ │ │ │ │ ├── data.spec.js │ │ │ │ │ ├── event-handler.spec.js │ │ │ │ │ ├── manipulator.spec.js │ │ │ │ │ └── selector-engine.spec.js │ │ │ │ ├── dropdown.spec.js │ │ │ │ ├── jquery.spec.js │ │ │ │ ├── modal.spec.js │ │ │ │ ├── offcanvas.spec.js │ │ │ │ ├── popover.spec.js │ │ │ │ ├── scrollspy.spec.js │ │ │ │ ├── tab.spec.js │ │ │ │ ├── toast.spec.js │ │ │ │ ├── tooltip.spec.js │ │ │ │ └── util/ │ │ │ │ ├── backdrop.spec.js │ │ │ │ ├── component-functions.spec.js │ │ │ │ ├── config.spec.js │ │ │ │ ├── focustrap.spec.js │ │ │ │ ├── index.spec.js │ │ │ │ ├── sanitizer.spec.js │ │ │ │ ├── scrollbar.spec.js │ │ │ │ ├── swipe.spec.js │ │ │ │ └── template-factory.spec.js │ │ │ └── visual/ │ │ │ ├── .eslintrc.json │ │ │ ├── alert.html │ │ │ ├── button.html │ │ │ ├── carousel.html │ │ │ ├── collapse.html │ │ │ ├── dropdown.html │ │ │ ├── modal.html │ │ │ ├── popover.html │ │ │ ├── scrollspy.html │ │ │ ├── tab.html │ │ │ ├── toast.html │ │ │ └── tooltip.html │ │ ├── nuget/ │ │ │ ├── MyGet.ps1 │ │ │ ├── bootstrap.nuspec │ │ │ └── bootstrap.sass.nuspec │ │ ├── package.js │ │ ├── package.json │ │ ├── scss/ │ │ │ ├── _accordion.scss │ │ │ ├── _alert.scss │ │ │ ├── _badge.scss │ │ │ ├── _breadcrumb.scss │ │ │ ├── _button-group.scss │ │ │ ├── _buttons.scss │ │ │ ├── _card.scss │ │ │ ├── _carousel.scss │ │ │ ├── _close.scss │ │ │ ├── _containers.scss │ │ │ ├── _dropdown.scss │ │ │ ├── _forms.scss │ │ │ ├── _functions.scss │ │ │ ├── _grid.scss │ │ │ ├── _helpers.scss │ │ │ ├── _images.scss │ │ │ ├── _list-group.scss │ │ │ ├── _maps.scss │ │ │ ├── _mixins.scss │ │ │ ├── _modal.scss │ │ │ ├── _nav.scss │ │ │ ├── _navbar.scss │ │ │ ├── _offcanvas.scss │ │ │ ├── _pagination.scss │ │ │ ├── _placeholders.scss │ │ │ ├── _popover.scss │ │ │ ├── _progress.scss │ │ │ ├── _reboot.scss │ │ │ ├── _root.scss │ │ │ ├── _spinners.scss │ │ │ ├── _tables.scss │ │ │ ├── _toasts.scss │ │ │ ├── _tooltip.scss │ │ │ ├── _transitions.scss │ │ │ ├── _type.scss │ │ │ ├── _utilities.scss │ │ │ ├── _variables.scss │ │ │ ├── bootstrap-grid.scss │ │ │ ├── bootstrap-reboot.scss │ │ │ ├── bootstrap-utilities.scss │ │ │ ├── bootstrap.scss │ │ │ ├── bootstrap5-css.asd │ │ │ ├── forms/ │ │ │ │ ├── _floating-labels.scss │ │ │ │ ├── _form-check.scss │ │ │ │ ├── _form-control.scss │ │ │ │ ├── _form-range.scss │ │ │ │ ├── _form-select.scss │ │ │ │ ├── _form-text.scss │ │ │ │ ├── _input-group.scss │ │ │ │ ├── _labels.scss │ │ │ │ └── _validation.scss │ │ │ ├── helpers/ │ │ │ │ ├── _clearfix.scss │ │ │ │ ├── _color-bg.scss │ │ │ │ ├── _colored-links.scss │ │ │ │ ├── _position.scss │ │ │ │ ├── _ratio.scss │ │ │ │ ├── _stacks.scss │ │ │ │ ├── _stretched-link.scss │ │ │ │ ├── _text-truncation.scss │ │ │ │ ├── _visually-hidden.scss │ │ │ │ └── _vr.scss │ │ │ ├── mixins/ │ │ │ │ ├── _alert.scss │ │ │ │ ├── _backdrop.scss │ │ │ │ ├── _banner.scss │ │ │ │ ├── _border-radius.scss │ │ │ │ ├── _box-shadow.scss │ │ │ │ ├── _breakpoints.scss │ │ │ │ ├── _buttons.scss │ │ │ │ ├── _caret.scss │ │ │ │ ├── _clearfix.scss │ │ │ │ ├── _color-scheme.scss │ │ │ │ ├── _container.scss │ │ │ │ ├── _deprecate.scss │ │ │ │ ├── _forms.scss │ │ │ │ ├── _gradients.scss │ │ │ │ ├── _grid.scss │ │ │ │ ├── _image.scss │ │ │ │ ├── _list-group.scss │ │ │ │ ├── _lists.scss │ │ │ │ ├── _pagination.scss │ │ │ │ ├── _reset-text.scss │ │ │ │ ├── _resize.scss │ │ │ │ ├── _table-variants.scss │ │ │ │ ├── _text-truncate.scss │ │ │ │ ├── _transition.scss │ │ │ │ ├── _utilities.scss │ │ │ │ └── _visually-hidden.scss │ │ │ ├── utilities/ │ │ │ │ └── _api.scss │ │ │ └── vendor/ │ │ │ └── _rfs.scss │ │ └── site/ │ │ ├── .eslintrc.json │ │ ├── assets/ │ │ │ ├── js/ │ │ │ │ ├── application.js │ │ │ │ ├── code-examples.js │ │ │ │ ├── search.js │ │ │ │ └── snippets.js │ │ │ └── scss/ │ │ │ ├── _ads.scss │ │ │ ├── _anchor.scss │ │ │ ├── _brand.scss │ │ │ ├── _buttons.scss │ │ │ ├── _callouts.scss │ │ │ ├── _clipboard-js.scss │ │ │ ├── _colors.scss │ │ │ ├── _component-examples.scss │ │ │ ├── _content.scss │ │ │ ├── _footer.scss │ │ │ ├── _layout.scss │ │ │ ├── _masthead.scss │ │ │ ├── _navbar.scss │ │ │ ├── _placeholder-img.scss │ │ │ ├── _search.scss │ │ │ ├── _sidebar.scss │ │ │ ├── _skippy.scss │ │ │ ├── _syntax.scss │ │ │ ├── _toc.scss │ │ │ ├── _variables.scss │ │ │ └── docs.scss │ │ ├── content/ │ │ │ ├── 404.md │ │ │ └── docs/ │ │ │ ├── 5.2/ │ │ │ │ ├── _index.html │ │ │ │ ├── about/ │ │ │ │ │ ├── brand.md │ │ │ │ │ ├── license.md │ │ │ │ │ ├── overview.md │ │ │ │ │ ├── team.md │ │ │ │ │ └── translations.md │ │ │ │ ├── components/ │ │ │ │ │ ├── accordion.md │ │ │ │ │ ├── alerts.md │ │ │ │ │ ├── badge.md │ │ │ │ │ ├── breadcrumb.md │ │ │ │ │ ├── button-group.md │ │ │ │ │ ├── buttons.md │ │ │ │ │ ├── card.md │ │ │ │ │ ├── carousel.md │ │ │ │ │ ├── close-button.md │ │ │ │ │ ├── collapse.md │ │ │ │ │ ├── dropdowns.md │ │ │ │ │ ├── list-group.md │ │ │ │ │ ├── modal.md │ │ │ │ │ ├── navbar.md │ │ │ │ │ ├── navs-tabs.md │ │ │ │ │ ├── offcanvas.md │ │ │ │ │ ├── pagination.md │ │ │ │ │ ├── placeholders.md │ │ │ │ │ ├── popovers.md │ │ │ │ │ ├── progress.md │ │ │ │ │ ├── scrollspy.md │ │ │ │ │ ├── spinners.md │ │ │ │ │ ├── toasts.md │ │ │ │ │ └── tooltips.md │ │ │ │ ├── content/ │ │ │ │ │ ├── figures.md │ │ │ │ │ ├── images.md │ │ │ │ │ ├── reboot.md │ │ │ │ │ ├── tables.md │ │ │ │ │ └── typography.md │ │ │ │ ├── customize/ │ │ │ │ │ ├── color.md │ │ │ │ │ ├── components.md │ │ │ │ │ ├── css-variables.md │ │ │ │ │ ├── optimize.md │ │ │ │ │ ├── options.md │ │ │ │ │ ├── overview.md │ │ │ │ │ └── sass.md │ │ │ │ ├── examples/ │ │ │ │ │ ├── .stylelintrc │ │ │ │ │ ├── _index.md │ │ │ │ │ ├── album/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── album-rtl/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── blog/ │ │ │ │ │ │ ├── blog.css │ │ │ │ │ │ ├── blog.rtl.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── blog-rtl/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── carousel/ │ │ │ │ │ │ ├── carousel.css │ │ │ │ │ │ ├── carousel.rtl.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── carousel-rtl/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── cheatsheet/ │ │ │ │ │ │ ├── cheatsheet.css │ │ │ │ │ │ ├── cheatsheet.js │ │ │ │ │ │ ├── cheatsheet.rtl.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── cheatsheet-rtl/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── checkout/ │ │ │ │ │ │ ├── form-validation.css │ │ │ │ │ │ ├── form-validation.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── checkout-rtl/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── cover/ │ │ │ │ │ │ ├── cover.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dashboard/ │ │ │ │ │ │ ├── dashboard.css │ │ │ │ │ │ ├── dashboard.js │ │ │ │ │ │ ├── dashboard.rtl.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dashboard-rtl/ │ │ │ │ │ │ ├── dashboard.js │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── dropdowns/ │ │ │ │ │ │ ├── dropdowns.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── features/ │ │ │ │ │ │ ├── features.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── footers/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── grid/ │ │ │ │ │ │ ├── grid.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── headers/ │ │ │ │ │ │ ├── headers.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── heroes/ │ │ │ │ │ │ ├── heroes.css │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── jumbotron/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── list-groups/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── list-groups.css │ │ │ │ │ ├── masonry/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── modals/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── modals.css │ │ │ │ │ ├── navbar-bottom/ │ │ │ │ │ │ └── index.html │ │ │ │ │ ├── navbar-fixed/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── navbar-top-fixed.css │ │ │ │ │ ├── navbar-static/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── navbar-top.css │ │ │ │ │ ├── navbars/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── navbar.css │ │ │ │ │ ├── navbars-offcanvas/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── navbar.css │ │ │ │ │ ├── offcanvas-navbar/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── offcanvas.css │ │ │ │ │ │ └── offcanvas.js │ │ │ │ │ ├── pricing/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── pricing.css │ │ │ │ │ ├── product/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── product.css │ │ │ │ │ ├── sidebars/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ ├── sidebars.css │ │ │ │ │ │ └── sidebars.js │ │ │ │ │ ├── sign-in/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── signin.css │ │ │ │ │ ├── starter-template/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── starter-template.css │ │ │ │ │ ├── sticky-footer/ │ │ │ │ │ │ ├── index.html │ │ │ │ │ │ └── sticky-footer.css │ │ │ │ │ └── sticky-footer-navbar/ │ │ │ │ │ ├── index.html │ │ │ │ │ └── sticky-footer-navbar.css │ │ │ │ ├── extend/ │ │ │ │ │ ├── approach.md │ │ │ │ │ └── icons.md │ │ │ │ ├── forms/ │ │ │ │ │ ├── checks-radios.md │ │ │ │ │ ├── floating-labels.md │ │ │ │ │ ├── form-control.md │ │ │ │ │ ├── input-group.md │ │ │ │ │ ├── layout.md │ │ │ │ │ ├── overview.md │ │ │ │ │ ├── range.md │ │ │ │ │ ├── select.md │ │ │ │ │ └── validation.md │ │ │ │ ├── getting-started/ │ │ │ │ │ ├── accessibility.md │ │ │ │ │ ├── best-practices.md │ │ │ │ │ ├── browsers-devices.md │ │ │ │ │ ├── contents.md │ │ │ │ │ ├── contribute.md │ │ │ │ │ ├── download.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── javascript.md │ │ │ │ │ ├── parcel.md │ │ │ │ │ ├── rfs.md │ │ │ │ │ ├── rtl.md │ │ │ │ │ ├── vite.md │ │ │ │ │ └── webpack.md │ │ │ │ ├── helpers/ │ │ │ │ │ ├── clearfix.md │ │ │ │ │ ├── color-background.md │ │ │ │ │ ├── colored-links.md │ │ │ │ │ ├── position.md │ │ │ │ │ ├── ratio.md │ │ │ │ │ ├── stacks.md │ │ │ │ │ ├── stretched-link.md │ │ │ │ │ ├── text-truncation.md │ │ │ │ │ ├── vertical-rule.md │ │ │ │ │ └── visually-hidden.md │ │ │ │ ├── layout/ │ │ │ │ │ ├── breakpoints.md │ │ │ │ │ ├── columns.md │ │ │ │ │ ├── containers.md │ │ │ │ │ ├── css-grid.md │ │ │ │ │ ├── grid.md │ │ │ │ │ ├── gutters.md │ │ │ │ │ ├── utilities.md │ │ │ │ │ └── z-index.md │ │ │ │ ├── migration.md │ │ │ │ └── utilities/ │ │ │ │ ├── api.md │ │ │ │ ├── background.md │ │ │ │ ├── borders.md │ │ │ │ ├── colors.md │ │ │ │ ├── display.md │ │ │ │ ├── flex.md │ │ │ │ ├── float.md │ │ │ │ ├── interactions.md │ │ │ │ ├── opacity.md │ │ │ │ ├── overflow.md │ │ │ │ ├── position.md │ │ │ │ ├── shadows.md │ │ │ │ ├── sizing.md │ │ │ │ ├── spacing.md │ │ │ │ ├── text.md │ │ │ │ ├── vertical-align.md │ │ │ │ └── visibility.md │ │ │ ├── _index.html │ │ │ └── versions.md │ │ ├── data/ │ │ │ ├── breakpoints.yml │ │ │ ├── colors.yml │ │ │ ├── core-team.yml │ │ │ ├── docs-versions.yml │ │ │ ├── examples.yml │ │ │ ├── grays.yml │ │ │ ├── icons.yml │ │ │ ├── plugins.yml │ │ │ ├── sidebar.yml │ │ │ ├── theme-colors.yml │ │ │ └── translations.yml │ │ ├── layouts/ │ │ │ ├── _default/ │ │ │ │ ├── 404.html │ │ │ │ ├── _markup/ │ │ │ │ │ └── render-heading.html │ │ │ │ ├── baseof.html │ │ │ │ ├── docs.html │ │ │ │ ├── examples.html │ │ │ │ ├── home.html │ │ │ │ ├── redirect.html │ │ │ │ └── single.html │ │ │ ├── alias.html │ │ │ ├── partials/ │ │ │ │ ├── ads.html │ │ │ │ ├── analytics.html │ │ │ │ ├── callout-danger-async-methods.md │ │ │ │ ├── callout-info-mediaqueries-breakpoints.md │ │ │ │ ├── callout-info-npm-starter.md │ │ │ │ ├── callout-info-prefersreducedmotion.md │ │ │ │ ├── callout-info-sanitizer.md │ │ │ │ ├── callout-warning-color-assistive-technologies.md │ │ │ │ ├── callout-warning-data-bs-title-vs-title.md │ │ │ │ ├── callout-warning-input-support.md │ │ │ │ ├── docs-navbar.html │ │ │ │ ├── docs-sidebar.html │ │ │ │ ├── docs-versions.html │ │ │ │ ├── favicons.html │ │ │ │ ├── footer.html │ │ │ │ ├── guide-footer.md │ │ │ │ ├── header.html │ │ │ │ ├── home/ │ │ │ │ │ ├── masthead-followup.html │ │ │ │ │ └── masthead.html │ │ │ │ ├── icons.html │ │ │ │ ├── js-data-attributes.md │ │ │ │ ├── redirect.html │ │ │ │ ├── scripts.html │ │ │ │ ├── skippy.html │ │ │ │ ├── social.html │ │ │ │ ├── stylesheet.html │ │ │ │ └── table-content.html │ │ │ ├── robots.txt │ │ │ ├── shortcodes/ │ │ │ │ ├── added-in.html │ │ │ │ ├── bs-table.html │ │ │ │ ├── callout.html │ │ │ │ ├── docsref.html │ │ │ │ ├── example.html │ │ │ │ ├── js-dismiss.html │ │ │ │ ├── markdown.html │ │ │ │ ├── param.html │ │ │ │ ├── partial.html │ │ │ │ ├── placeholder.html │ │ │ │ ├── scss-docs.html │ │ │ │ ├── table.html │ │ │ │ └── year.html │ │ │ └── sitemap.xml │ │ └── static/ │ │ ├── CNAME │ │ ├── docs/ │ │ │ └── 5.2/ │ │ │ └── assets/ │ │ │ ├── img/ │ │ │ │ └── favicons/ │ │ │ │ └── manifest.json │ │ │ └── js/ │ │ │ └── validate-forms.js │ │ └── sw.js │ ├── control-socket/ │ │ ├── control-socket.asd │ │ └── server.lisp │ ├── core/ │ │ ├── active-users/ │ │ │ ├── active-users.lisp │ │ │ ├── core.active-users.asd │ │ │ └── test-active-users.lisp │ │ ├── api/ │ │ │ ├── acceptor.lisp │ │ │ ├── api-key-api.lisp │ │ │ ├── core.api.asd │ │ │ ├── dashboard/ │ │ │ │ ├── api-keys.lisp │ │ │ │ └── test-api-keys.lisp │ │ │ └── model/ │ │ │ ├── api-key.lisp │ │ │ └── test-api-key.lisp │ │ ├── cli/ │ │ │ ├── core.cli.asd │ │ │ ├── darwin-template.lisp │ │ │ ├── deliver.lisp │ │ │ ├── sentry.lisp │ │ │ └── test-sentry.lisp │ │ ├── config/ │ │ │ ├── api.lisp │ │ │ ├── core.config.asd │ │ │ ├── model.lisp │ │ │ └── test-model.lisp │ │ ├── installation/ │ │ │ ├── auth-provider.lisp │ │ │ ├── auth.lisp │ │ │ ├── core.installation.asd │ │ │ ├── installation.lisp │ │ │ ├── mailer.lisp │ │ │ ├── request.lisp │ │ │ ├── test-installation.lisp │ │ │ ├── test-mailer.lisp │ │ │ └── test-request.lisp │ │ ├── rpc/ │ │ │ ├── core.rpc.asd │ │ │ ├── rpc.lisp │ │ │ └── test-rpc.lisp │ │ └── ui/ │ │ ├── assets/ │ │ │ ├── README │ │ │ └── fonts/ │ │ │ └── metropolis/ │ │ │ ├── Metropolis-Bold-arnold.otf │ │ │ ├── Metropolis-Medium.otf │ │ │ ├── Metropolis-MediumItalic.otf │ │ │ ├── Metropolis-Regular.otf │ │ │ ├── Metropolis-RegularItalic.otf │ │ │ ├── Metropolis-SemiBold.otf │ │ │ └── Metropolis-SemiBoldItalic.otf │ │ ├── assets.lisp │ │ ├── core.ui.asd │ │ ├── fonts.lisp │ │ ├── image.lisp │ │ ├── left-side-bar.lisp │ │ ├── mdi.lisp │ │ ├── nibble-span.lisp │ │ ├── paginated.lisp │ │ ├── post.lisp │ │ ├── simple-card-page.lisp │ │ ├── taskie.lisp │ │ ├── template.lisp │ │ ├── test-paginated.lisp │ │ └── test-taskie.lisp │ ├── encrypt/ │ │ ├── encrypt.asd │ │ ├── encrypt.lisp │ │ ├── hmac.lisp │ │ ├── test-encrypt.lisp │ │ └── test-hmac.lisp │ ├── file-lock/ │ │ ├── .circleci/ │ │ │ └── config.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── file-lock.asd │ │ ├── file-lock.lisp │ │ ├── run-circleci.lisp │ │ └── test-file-lock.lisp │ ├── gatekeeper/ │ │ ├── gatekeeper.asd │ │ ├── gatekeeper.lisp │ │ └── test-gatekeeper.lisp │ ├── graphs/ │ │ ├── all.lisp │ │ ├── dfs.lisp │ │ ├── graphs.asd │ │ └── test-dfs.lisp │ ├── http-proxy/ │ │ ├── http-proxy.asd │ │ ├── server.lisp │ │ └── test-server.lisp │ ├── hunchentoot-extensions/ │ │ ├── acceptor-with-plugins.lisp │ │ ├── asdf-acceptor.lisp │ │ ├── async.lisp │ │ ├── better-easy-handler.lisp │ │ ├── clos-dispatcher.lisp │ │ ├── existing-socket.lisp │ │ ├── forward.lisp │ │ ├── hunchentoot-extensions.asd │ │ ├── package.lisp │ │ ├── postdata.lisp │ │ ├── random-port.lisp │ │ ├── test-acceptor-with-plugins.lisp │ │ ├── test-async.lisp │ │ ├── test-better-easy-handler.lisp │ │ ├── test-clos-dispatcher.lisp │ │ ├── test-forward.lisp │ │ ├── test-random-port.lisp │ │ ├── test-url.lisp │ │ ├── url.lisp │ │ └── webp.lisp │ ├── java/ │ │ ├── libs/ │ │ │ ├── asana-0.10.3.jar │ │ │ ├── atlassian-event-4.1.1.jar │ │ │ ├── atlassian-httpclient-api-2.1.5.jar │ │ │ ├── atlassian-httpclient-library-2.1.5.jar │ │ │ ├── atlassian-util-concurrent-4.0.1.jar │ │ │ ├── bcprov-jdk15on-1.68.jar │ │ │ ├── checker-qual-3.8.0.jar │ │ │ ├── commons-codec-1.15.jar │ │ │ ├── commons-lang3-3.11.jar │ │ │ ├── commons-logging-1.2.jar │ │ │ ├── error_prone_annotations-2.5.1.jar │ │ │ ├── failureaccess-1.0.1.jar │ │ │ ├── fugue-4.7.2.jar │ │ │ ├── google-http-client-1.20.0.jar │ │ │ ├── google-http-client-gson-1.20.0.jar │ │ │ ├── google-oauth-client-1.20.0.jar │ │ │ ├── gson-2.3.1.jar │ │ │ ├── guava-30.1.1-jre.jar │ │ │ ├── httpasyncclient-4.1.4.jar │ │ │ ├── httpasyncclient-cache-4.1.4.jar │ │ │ ├── httpclient-4.5.13.jar │ │ │ ├── httpclient-cache-4.5.13.jar │ │ │ ├── httpcore-4.4.13.jar │ │ │ ├── httpcore-nio-4.4.10.jar │ │ │ ├── httpmime-4.5.13.jar │ │ │ ├── j2objc-annotations-1.3.jar │ │ │ ├── jackson-annotations-2.9.8.jar │ │ │ ├── jackson-core-2.9.8.jar │ │ │ ├── jackson-databind-2.9.8.jar │ │ │ ├── jakarta.annotation-api-1.3.5.jar │ │ │ ├── jakarta.inject-2.6.1.jar │ │ │ ├── jakarta.ws.rs-api-2.1.6.jar │ │ │ ├── java.libs.asd │ │ │ ├── jersey-client-2.35.jar │ │ │ ├── jersey-common-2.35.jar │ │ │ ├── jersey-media-jaxb-2.35.jar │ │ │ ├── jersey-media-json-jettison-2.35.jar │ │ │ ├── jettison-1.3.7.jar │ │ │ ├── jira-rest-java-client-api-5.2.4.jar │ │ │ ├── jira-rest-java-client-core-5.2.4.jar │ │ │ ├── joda-time-2.9.9.jar │ │ │ ├── json-20210307.jar │ │ │ ├── jsr305-3.0.2.jar │ │ │ ├── listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar │ │ │ ├── org.eclipse.egit.github.core-5.10.0.202012080955-r.jar │ │ │ ├── osgi-resource-locator-1.0.3.jar │ │ │ ├── sal-api-4.4.2.jar │ │ │ ├── slf4j-api-1.7.30.jar │ │ │ ├── slf4j-simple-1.7.25.jar │ │ │ ├── spring-beans-5.3.6.jar │ │ │ ├── spring-core-5.3.6.jar │ │ │ ├── spring-jcl-5.3.6.jar │ │ │ └── trello-java-wrapper-0.14.jar │ │ └── main/ │ │ ├── com/ │ │ │ ├── atlassian/ │ │ │ │ └── oauth/ │ │ │ │ └── client/ │ │ │ │ └── example/ │ │ │ │ ├── ClientMain.java │ │ │ │ ├── Command.java │ │ │ │ ├── JiraOAuthClient.java │ │ │ │ ├── JiraOAuthGetAccessToken.java │ │ │ │ ├── JiraOAuthGetTemporaryToken.java │ │ │ │ ├── JiraOAuthTokenFactory.java │ │ │ │ ├── OAuthAuthenticationHandler.java │ │ │ │ ├── OAuthClient.java │ │ │ │ ├── PropertiesClient.java │ │ │ │ └── TokenAuthenticationHandler.java │ │ │ └── tdrhq/ │ │ │ ├── PrimitiveWrapper.java │ │ │ ├── SimpleNativeLibrary.java │ │ │ └── Whitebox.java │ │ └── java.main.asd │ ├── jvm/ │ │ ├── jvm.asd │ │ └── jvm.lisp │ ├── nibble/ │ │ ├── nibble.asd │ │ ├── nibble.lisp │ │ ├── package.lisp │ │ └── test-nibble.lisp │ ├── oidc/ │ │ ├── all.lisp │ │ ├── oauth.lisp │ │ ├── oidc.asd │ │ ├── oidc.lisp │ │ ├── test-oauth.lisp │ │ └── test-oidc.lisp │ ├── pixel-diff/ │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── PixelDiff.icns │ │ ├── README.md │ │ ├── about.lisp │ │ ├── browser.lisp │ │ ├── common-ps.lisp │ │ ├── deliver.lisp │ │ ├── differ.lisp │ │ ├── external-images.lisp │ │ ├── fli-templates.lisp │ │ ├── git-diff.lisp │ │ ├── image-pair.lisp │ │ ├── lisp-stubs.lisp │ │ ├── lispworks.entitlements │ │ ├── main.lisp │ │ ├── make-dmg.sh │ │ ├── package.lisp │ │ ├── pixel-diff.asd │ │ ├── pixel-diff.math-js.asd │ │ ├── pixel-diff.math.asd │ │ ├── sign-mac-app.sh │ │ ├── suite.lisp │ │ ├── test-common-ps.lisp │ │ ├── test-differ.lisp │ │ └── usage.lisp │ ├── pkg/ │ │ ├── cl-pkg.el │ │ ├── pkg.asd │ │ └── pkg.lisp │ ├── quick-patch/ │ │ ├── .circleci/ │ │ │ └── config.yml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── all.lisp │ │ ├── impl.lisp │ │ ├── quick-patch.asd │ │ ├── run-circleci.lisp │ │ ├── test-impl.lisp │ │ └── util.lisp │ ├── remark/ │ │ ├── all.lisp │ │ ├── js/ │ │ │ └── remark.js │ │ ├── markdown.lisp │ │ ├── nodes.lisp │ │ ├── remark.asd │ │ ├── render.lisp │ │ ├── search.lisp │ │ ├── test-markdown.lisp │ │ ├── test-nodes.lisp │ │ └── test-search.lisp │ ├── scheduled-jobs/ │ │ ├── bindings.lisp │ │ ├── ccronexpr.c │ │ ├── ccronexpr.h │ │ ├── model.lisp │ │ ├── scheduled-jobs.asd │ │ ├── scheduled-jobs.lisp │ │ ├── test-bindings.lisp │ │ └── test-scheduled-jobs.lisp │ ├── screenshotbot/ │ │ ├── .gitignore │ │ ├── abstract-pr-promoter.lisp │ │ ├── admin/ │ │ │ ├── core.lisp │ │ │ ├── index.lisp │ │ │ └── test-writes.lisp │ │ ├── analytics.lisp │ │ ├── android/ │ │ │ ├── activity.lisp │ │ │ ├── api.lisp │ │ │ ├── edit-text.lisp │ │ │ ├── linear-layout.lisp │ │ │ ├── screenshotbot.android.asd │ │ │ ├── text-view.lisp │ │ │ └── view.lisp │ │ ├── api/ │ │ │ ├── CHANGELOG.md │ │ │ ├── active-runs.lisp │ │ │ ├── analytics-event.lisp │ │ │ ├── api-key.lisp │ │ │ ├── batch.lisp │ │ │ ├── build-info.lisp │ │ │ ├── cli-log.lisp │ │ │ ├── commit-graph.lisp │ │ │ ├── compare.lisp │ │ │ ├── core.lisp │ │ │ ├── doc.lisp │ │ │ ├── docs/ │ │ │ │ └── recorder-run.lisp │ │ │ ├── failed-run.lisp │ │ │ ├── finalized-commit.lisp │ │ │ ├── image.lisp │ │ │ ├── model.lisp │ │ │ ├── promote.lisp │ │ │ ├── recorder-run.lisp │ │ │ ├── replay-asset.lisp │ │ │ ├── report.lisp │ │ │ ├── test-active-runs.lisp │ │ │ ├── test-analytics-event.lisp │ │ │ ├── test-batch.lisp │ │ │ ├── test-build-info.lisp │ │ │ ├── test-commit-graph.lisp │ │ │ ├── test-compare.lisp │ │ │ ├── test-core.lisp │ │ │ ├── test-failed-run.lisp │ │ │ ├── test-finalized-commit.lisp │ │ │ ├── test-image.lisp │ │ │ ├── test-model.lisp │ │ │ ├── test-promote.lisp │ │ │ ├── test-recorder-runs.lisp │ │ │ ├── test-report.lisp │ │ │ ├── test-send-tasks.lisp │ │ │ ├── test-unchanged-run.lisp │ │ │ ├── test-version.lisp │ │ │ ├── unchanged-run.lisp │ │ │ └── version.lisp │ │ ├── artifacts.lisp │ │ ├── assets.lisp │ │ ├── async.lisp │ │ ├── audit-log.lisp │ │ ├── aws/ │ │ │ ├── aws.lisp │ │ │ └── screenshotbot.aws.asd │ │ ├── azure/ │ │ │ ├── audit-log.lisp │ │ │ ├── plugin.lisp │ │ │ ├── promoter.lisp │ │ │ ├── request.lisp │ │ │ ├── run-warnings.lisp │ │ │ ├── settings.lisp │ │ │ ├── test-plugin.lisp │ │ │ ├── test-promoter.lisp │ │ │ ├── test-request.lisp │ │ │ ├── test-run-warnings.lisp │ │ │ └── test-settings.lisp │ │ ├── batch-promoter.lisp │ │ ├── billing-meter.lisp │ │ ├── bitbucket/ │ │ │ ├── audit-log.lisp │ │ │ ├── core.lisp │ │ │ ├── error-response-1.json │ │ │ ├── plugin.lisp │ │ │ ├── promoter.lisp │ │ │ ├── review-link.lisp │ │ │ ├── settings.lisp │ │ │ ├── test-audit-log.lisp │ │ │ ├── test-plugin.lisp │ │ │ ├── test-promoter.lisp │ │ │ ├── test-review-link.lisp │ │ │ └── test-settings.lisp │ │ ├── cdn.lisp │ │ ├── cleanup.lisp │ │ ├── client-hub/ │ │ │ ├── deliver-client-hub.lisp │ │ │ ├── flags.lisp │ │ │ ├── main.lisp │ │ │ ├── screenshotbot.client-hub.asd │ │ │ └── selenium.lisp │ │ ├── company/ │ │ │ ├── members.lisp │ │ │ ├── new.lisp │ │ │ ├── rename.lisp │ │ │ ├── request.lisp │ │ │ ├── test-rename.lisp │ │ │ └── test-request.lisp │ │ ├── config.lisp │ │ ├── css/ │ │ │ ├── auth.scss │ │ │ ├── autocomplete.scss │ │ │ ├── avatar.scss │ │ │ ├── billing.scss │ │ │ ├── bootstrap-icons.css │ │ │ ├── breakpoints.scss │ │ │ ├── dashboard.scss │ │ │ ├── default-toplevel.scss │ │ │ ├── default.scss │ │ │ ├── doks-default.scss │ │ │ ├── headroom-custom.scss │ │ │ ├── mask-builder.scss │ │ │ ├── material-icons.scss │ │ │ ├── montserrat.scss │ │ │ ├── pro-common.scss │ │ │ ├── roboto.scss │ │ │ ├── screenshotbot.css-assets.asd │ │ │ ├── settings.scss │ │ │ ├── sidebar.scss │ │ │ ├── split.scss │ │ │ ├── variables.scss │ │ │ └── vendor/ │ │ │ ├── _bootstrap-datepicker.min.scss │ │ │ ├── _bootstrap-timepicker.min.scss │ │ │ ├── _daterangepicker.scss │ │ │ ├── _jquery.bootstrap-touchspin.min.scss │ │ │ ├── _jquery.toast.min.scss │ │ │ ├── _select2.min.scss │ │ │ ├── baguetteBox.css │ │ │ ├── buttons.bootstrap4.css │ │ │ ├── dataTables.bootstrap4.css │ │ │ ├── frappe-gantt.css │ │ │ ├── jquery-jvectormap-1.2.2.css │ │ │ ├── responsive.bootstrap4.css │ │ │ ├── select.bootstrap4.css │ │ │ └── summernote-bs4.css │ │ ├── dag/ │ │ │ ├── dag.asd │ │ │ ├── dag.lisp │ │ │ ├── package.lisp │ │ │ └── test-dag.lisp │ │ ├── dashboard/ │ │ │ ├── api-key-impl.lisp │ │ │ ├── audit-log.lisp │ │ │ ├── batch.lisp │ │ │ ├── bisect.lisp │ │ │ ├── channels.lisp │ │ │ ├── commit-graph.lisp │ │ │ ├── compare-branches.lisp │ │ │ ├── compare.lisp │ │ │ ├── dashboard.lisp │ │ │ ├── ensure-company.lisp │ │ │ ├── explain.lisp │ │ │ ├── flaky-screenshots.lisp │ │ │ ├── git-graph │ │ │ ├── history.lisp │ │ │ ├── home.lisp │ │ │ ├── image.lisp │ │ │ ├── mask-builder.lisp │ │ │ ├── notes.lisp │ │ │ ├── notices.lisp │ │ │ ├── recent-runs.lisp │ │ │ ├── reports.lisp │ │ │ ├── review-link.lisp │ │ │ ├── run-page.lisp │ │ │ ├── site-admin.lisp │ │ │ ├── test-api-keys.lisp │ │ │ ├── test-batch.lisp │ │ │ ├── test-bisect.lisp │ │ │ ├── test-channels.lisp │ │ │ ├── test-commit-graph.lisp │ │ │ ├── test-compare-branches.lisp │ │ │ ├── test-compare.lisp │ │ │ ├── test-dashboard.lisp │ │ │ ├── test-ensure-company.lisp │ │ │ ├── test-flaky-screenshots.lisp │ │ │ ├── test-history.lisp │ │ │ ├── test-image.lisp │ │ │ ├── test-notices.lisp │ │ │ ├── test-recent-runs.lisp │ │ │ ├── test-reports.lisp │ │ │ ├── test-review-link.lisp │ │ │ └── test-run-page.lisp │ │ ├── debugging.lisp │ │ ├── default-oidc-provider.lisp │ │ ├── diff-report.lisp │ │ ├── dtd/ │ │ │ ├── api.dtd │ │ │ └── secret.dtd │ │ ├── email-tasks/ │ │ │ ├── settings.lisp │ │ │ ├── task-integration.lisp │ │ │ └── test-task-integration.lisp │ │ ├── email-template.lisp │ │ ├── figma/ │ │ │ ├── dropdown.lisp │ │ │ ├── figma.lisp │ │ │ ├── test-view.lisp │ │ │ └── view.lisp │ │ ├── fixture/ │ │ │ ├── rose.heic │ │ │ └── secrets.xml │ │ ├── git-repo.lisp │ │ ├── github/ │ │ │ ├── access-checks.lisp │ │ │ ├── all.lisp │ │ │ ├── app-installation.lisp │ │ │ ├── audit-log.lisp │ │ │ ├── fixture/ │ │ │ │ ├── can-edit-for-private-repo.rec │ │ │ │ ├── can-edit-simple-repo.rec │ │ │ │ ├── cannot-edit-repo-owned-somewhere-else.rec │ │ │ │ ├── get-repo-stars.rec │ │ │ │ ├── private-key.README.md │ │ │ │ ├── private-key.test-pem │ │ │ │ └── whoami-integration-test.rec │ │ │ ├── github-installation.lisp │ │ │ ├── jwt-token.lisp │ │ │ ├── marketplace.lisp │ │ │ ├── plugin.lisp │ │ │ ├── pr-checks.lisp │ │ │ ├── pull-request-promoter.lisp │ │ │ ├── read-repos.lisp │ │ │ ├── repo-push-webhook.lisp │ │ │ ├── review-link.lisp │ │ │ ├── settings.lisp │ │ │ ├── task-integration.lisp │ │ │ ├── test-access-checks.lisp │ │ │ ├── test-app-installation.lisp │ │ │ ├── test-jwt-token.lisp │ │ │ ├── test-plugin.lisp │ │ │ ├── test-pull-request-promoter.lisp │ │ │ ├── test-read-repos.lisp │ │ │ ├── test-repo-push-webhook.lisp │ │ │ ├── test-review-link.lisp │ │ │ ├── test-settings.lisp │ │ │ ├── test-webhook.lisp │ │ │ └── webhook.lisp │ │ ├── gitlab/ │ │ │ ├── all.lisp │ │ │ ├── audit-logs.lisp │ │ │ ├── merge-request-promoter.lisp │ │ │ ├── plugin.lisp │ │ │ ├── repo.lisp │ │ │ ├── review-link.lisp │ │ │ ├── settings.lisp │ │ │ ├── test-merge-request-promoter.lisp │ │ │ ├── test-review-link.lisp │ │ │ ├── test-settings.lisp │ │ │ └── webhook.lisp │ │ ├── hub/ │ │ │ ├── api.lisp │ │ │ ├── container.lisp │ │ │ └── server.lisp │ │ ├── ignore-and-log-errors.lisp │ │ ├── image-comparison.lisp │ │ ├── insights/ │ │ │ ├── dashboard.lisp │ │ │ ├── date.lisp │ │ │ ├── fuzz.lisp │ │ │ ├── maps.lisp │ │ │ ├── pull-requests.lisp │ │ │ ├── runs.lisp │ │ │ ├── screenshotbot.insights.asd │ │ │ ├── test-date.lisp │ │ │ └── variables.lisp │ │ ├── installation.lisp │ │ ├── invite.lisp │ │ ├── js/ │ │ │ ├── acceptance.js │ │ │ ├── common.js │ │ │ ├── compare-branches.js │ │ │ ├── default.js │ │ │ ├── dummy.lisp │ │ │ ├── git-graph.js │ │ │ ├── home.js │ │ │ ├── image-canvas.js │ │ │ ├── jquery-js.asd │ │ │ ├── jquery.timeago.js │ │ │ ├── js-stubs.js │ │ │ ├── mask-editor.js │ │ │ ├── runs.js │ │ │ ├── screenshotbot.js-assets.asd │ │ │ ├── split.js │ │ │ ├── vendor/ │ │ │ │ ├── baguetteBox.js │ │ │ │ ├── bootstrap-modal.js │ │ │ │ ├── bootstrap-modalmanager.js │ │ │ │ ├── headroom.js │ │ │ │ ├── jquery-3.5.1.js │ │ │ │ ├── jquery-ui.js │ │ │ │ ├── metisMenu.js │ │ │ │ ├── moment.js │ │ │ │ ├── select2.js │ │ │ │ └── sizzle.js │ │ │ └── websocket-logs.js │ │ ├── katalon/ │ │ │ ├── .gitignore │ │ │ ├── deliver.lisp │ │ │ └── screenshotbot.katalon.asd │ │ ├── left-side-bar.lisp │ │ ├── login/ │ │ │ ├── aws-cognito.lisp │ │ │ ├── github-oauth-ui.lisp │ │ │ ├── github-oauth.lisp │ │ │ ├── google-oauth.lisp │ │ │ ├── microsoft-entra.lisp │ │ │ ├── populate.lisp │ │ │ ├── require-invite-sso-mixin.lisp │ │ │ ├── template.lisp │ │ │ ├── test-common.lisp │ │ │ ├── test-forgot-password.lisp │ │ │ ├── test-github-oauth.lisp │ │ │ ├── test-google-oauth.lisp │ │ │ ├── test-login.lisp │ │ │ ├── test-oidc.lisp │ │ │ ├── test-populate.lisp │ │ │ ├── test-signup.lisp │ │ │ └── test-verify-email.lisp │ │ ├── magick/ │ │ │ ├── build.lisp │ │ │ ├── ffi-6.lisp │ │ │ ├── ffi-7.lisp │ │ │ ├── health-checks.lisp │ │ │ ├── magick-lw.lisp │ │ │ ├── magick-native.c │ │ │ ├── magick.lisp │ │ │ ├── screenshotbot.magick.asd │ │ │ ├── screenshotbot.magick.build.asd │ │ │ └── test-magick-lw.lisp │ │ ├── mask-rect-api.lisp │ │ ├── mcp/ │ │ │ ├── mcp.lisp │ │ │ └── screenshotbot.mcp.asd │ │ ├── metrics.lisp │ │ ├── microsoft-teams/ │ │ │ ├── audit-log.lisp │ │ │ ├── channel-card.lisp │ │ │ ├── model.lisp │ │ │ ├── settings.lisp │ │ │ ├── task-integration.lisp │ │ │ └── teams-api.lisp │ │ ├── migrations/ │ │ │ ├── report.lisp │ │ │ └── screenshotbot.migrations.asd │ │ ├── model/ │ │ │ ├── archived-run.lisp │ │ │ ├── auto-cleanup.lisp │ │ │ ├── batch.lisp │ │ │ ├── build-info.lisp │ │ │ ├── channel.lisp │ │ │ ├── commit-graph.lisp │ │ │ ├── company-graph.lisp │ │ │ ├── company.lisp │ │ │ ├── constant-string.lisp │ │ │ ├── core.lisp │ │ │ ├── counter.lisp │ │ │ ├── deprecated.lisp │ │ │ ├── downloadable-run.lisp │ │ │ ├── enterprise.lisp │ │ │ ├── failed-run.lisp │ │ │ ├── figma.lisp │ │ │ ├── finalized-commit.lisp │ │ │ ├── image-comparer.lisp │ │ │ ├── image-comparison.lisp │ │ │ ├── image.lisp │ │ │ ├── note.lisp │ │ │ ├── pr-rollout-rule.lisp │ │ │ ├── recorder-run.lisp │ │ │ ├── report.lisp │ │ │ ├── review-policy.lisp │ │ │ ├── run-commit-lookup.lisp │ │ │ ├── screenshot-key.lisp │ │ │ ├── screenshot-map.lisp │ │ │ ├── screenshot.lisp │ │ │ ├── sharing.lisp │ │ │ ├── test-acceptable.lisp │ │ │ ├── test-archived-run.lisp │ │ │ ├── test-auto-cleanup.lisp │ │ │ ├── test-batch.lisp │ │ │ ├── test-build-info.lisp │ │ │ ├── test-channel.lisp │ │ │ ├── test-commit-graph.lisp │ │ │ ├── test-company-graph.lisp │ │ │ ├── test-company.lisp │ │ │ ├── test-constant-string.lisp │ │ │ ├── test-core.lisp │ │ │ ├── test-counter.lisp │ │ │ ├── test-downloadable-run.lisp │ │ │ ├── test-figma.lisp │ │ │ ├── test-finalized-commit.lisp │ │ │ ├── test-image-comparer.lisp │ │ │ ├── test-image-comparison.lisp │ │ │ ├── test-image.lisp │ │ │ ├── test-object.lisp │ │ │ ├── test-pr-rollout-rule.lisp │ │ │ ├── test-recorder-run.lisp │ │ │ ├── test-report.lisp │ │ │ ├── test-review-policy.lisp │ │ │ ├── test-run-commit-lookup.lisp │ │ │ ├── test-screenshot-key.lisp │ │ │ ├── test-screenshot-map.lisp │ │ │ ├── test-screenshot.lisp │ │ │ ├── test-transient-object.lisp │ │ │ ├── test-user.lisp │ │ │ ├── testing.lisp │ │ │ ├── transient-object.lisp │ │ │ ├── user.lisp │ │ │ └── view.lisp │ │ ├── notice-api.lisp │ │ ├── phabricator/ │ │ │ ├── all.lisp │ │ │ ├── builds.lisp │ │ │ ├── diff-promoter.lisp │ │ │ ├── plugin.lisp │ │ │ ├── settings.lisp │ │ │ ├── test-builds.lisp │ │ │ └── test-diff-promoter.lisp │ │ ├── plan.lisp │ │ ├── plugin/ │ │ │ ├── .gitignore │ │ │ ├── build.gradle │ │ │ ├── gradle/ │ │ │ │ ├── gradle-mvn-push.gradle │ │ │ │ └── wrapper/ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── libs/ │ │ │ │ └── lispcalls.jar │ │ │ └── src/ │ │ │ └── main/ │ │ │ └── java/ │ │ │ └── io/ │ │ │ └── screenshotbot/ │ │ │ └── plugin/ │ │ │ ├── RecordFacebookTask.java │ │ │ ├── SbNative.java │ │ │ └── ScreenshotbotPlugin.java │ │ ├── plugin.lisp │ │ ├── promote-api.lisp │ │ ├── raft-redirect.lisp │ │ ├── replay/ │ │ │ ├── AWS-SELENIUM-IAM-POLICY.md │ │ │ ├── aws-selenium-provider.lisp │ │ │ ├── browser-config.lisp │ │ │ ├── core.lisp │ │ │ ├── css-tokenizer.lisp │ │ │ ├── fixtures/ │ │ │ │ ├── sitemap-0.xml │ │ │ │ └── sitemap-index.xml │ │ │ ├── frontend.lisp │ │ │ ├── integration.lisp │ │ │ ├── proxy-main.lisp │ │ │ ├── proxy.lisp │ │ │ ├── remote.lisp │ │ │ ├── replay-acceptor.lisp │ │ │ ├── replay-regex.txt │ │ │ ├── run-builder.lisp │ │ │ ├── safe-interrupt.lisp │ │ │ ├── services.lisp │ │ │ ├── sitemap.lisp │ │ │ ├── squid.lisp │ │ │ ├── test-core.lisp │ │ │ ├── test-css-tokenizer.lisp │ │ │ ├── test-integration.lisp │ │ │ ├── test-remote.lisp │ │ │ ├── test-replay-acceptor.lisp │ │ │ ├── test-run-builder.lisp │ │ │ └── test-sitemap.lisp │ │ ├── report-api.lisp │ │ ├── run-prod │ │ ├── s3/ │ │ │ ├── backup.lisp │ │ │ └── core.lisp │ │ ├── s3-policy.json │ │ ├── screenshot-api.lisp │ │ ├── screenshotbot.asd │ │ ├── sdk/ │ │ │ ├── .gitattributes │ │ │ ├── .gitignore │ │ │ ├── CHANGELOG.md │ │ │ ├── UTF-8-demo.html │ │ │ ├── active-run.lisp │ │ │ ├── adb-puller.lisp │ │ │ ├── android.lisp │ │ │ ├── api-context.lisp │ │ │ ├── backoff.lisp │ │ │ ├── batch.lisp │ │ │ ├── bundle.lisp │ │ │ ├── cli-common.lisp │ │ │ ├── clingon-api-context.lisp │ │ │ ├── commit-graph.lisp │ │ │ ├── common-flags.lisp │ │ │ ├── deliver-java.lisp │ │ │ ├── deliver-sdk.lisp │ │ │ ├── dev/ │ │ │ │ ├── commands.lisp │ │ │ │ ├── record-verify.lisp │ │ │ │ ├── test-record-verify.lisp │ │ │ │ ├── test-verify-against-ci.lisp │ │ │ │ └── verify-against-ci.lisp │ │ │ ├── env.lisp │ │ │ ├── example/ │ │ │ │ ├── com.facebook.testing.screenshot.sample.ExampleScreenshotTest_testDefault_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.ExampleScreenshotTest_testDefault_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.ImageRowScreenshotTest_testDefault2_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.ImageRowScreenshotTest_testDefault2_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_errorTextShouldBeRed_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_errorTextShouldBeRed_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_mainActivityTestSettingsOpen_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_mainActivityTestSettingsOpen_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_okTextShouldBeGreen_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_okTextShouldBeGreen_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_testScreenshotEntireActivityWithoutAccessibilityMetadata_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_testScreenshotEntireActivity_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_testScreenshotEntireActivity_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_warningTextShouldBeYellow_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_warningTextShouldBeYellow_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testChinese_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testChinese_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testLongText_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testLongText_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testRendering_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testRendering_issues.json │ │ │ │ ├── default.css │ │ │ │ ├── default.js │ │ │ │ ├── fab_dump.json │ │ │ │ ├── fab_issues.json │ │ │ │ ├── index.html │ │ │ │ └── metadata.xml │ │ │ ├── example-firebase-artifacts/ │ │ │ │ └── artifacts/ │ │ │ │ └── sdcard/ │ │ │ │ └── screenshots/ │ │ │ │ └── com.facebook.testing.screenshot.example.test/ │ │ │ │ └── screenshots-default/ │ │ │ │ ├── com.facebook.testing.screenshot.sample.ExampleScreenshotTest_testDefault_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.ExampleScreenshotTest_testDefault_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.ImageRowScreenshotTest_testDefault_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.ImageRowScreenshotTest_testDefault_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_errorTextShouldBeRed_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_errorTextShouldBeRed_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_mainActivityTestSettingsOpen_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_mainActivityTestSettingsOpen_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_okTextShouldBeGreen_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_okTextShouldBeGreen_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_testScreenshotEntireActivityWithoutAccessibilityMetadata_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_testScreenshotEntireActivity_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_testScreenshotEntireActivity_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_warningTextShouldBeYellow_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.MainActivityTest_warningTextShouldBeYellow_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testChinese_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testChinese_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testLongText_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testLongText_issues.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testRendering_dump.json │ │ │ │ ├── com.facebook.testing.screenshot.sample.StandardAndroidViewTest_testRendering_issues.json │ │ │ │ ├── fab_dump.json │ │ │ │ ├── fab_issues.json │ │ │ │ ├── metadata.json │ │ │ │ └── tests_run_id │ │ │ ├── example-shot-artifacts/ │ │ │ │ └── com.karumi.shotconsumercompose.staging.debug.test/ │ │ │ │ ├── screenshots-compose-default/ │ │ │ │ │ └── metadata_compose.json │ │ │ │ └── screenshots-default/ │ │ │ │ ├── com.karumi.shotconsumercompose.MainActivityTest_activityTest_dump.json │ │ │ │ ├── metadata.json │ │ │ │ └── tests_run_id │ │ │ ├── failed-run.lisp │ │ │ ├── fetch-run.lisp │ │ │ ├── finalized-commit.lisp │ │ │ ├── firebase.lisp │ │ │ ├── fixture/ │ │ │ │ ├── braft-expected.log │ │ │ │ ├── braft.log │ │ │ │ ├── result12.xcresult/ │ │ │ │ │ ├── Data/ │ │ │ │ │ │ ├── data.0~06eElEqhYuN_viqTCjodWIWcItfFrDQx8-89G9taauMy7nuUs6llm5-WzGoNbAqCFhU21JLa7lg2TzOKEaOc2w== │ │ │ │ │ │ ├── data.0~0TgqQPqltxD2fcwCfwkYTyJUFEUcN7mutaxQrnbflxBtGUL6q0q-w9j-TbqZ9pvJLh3QCA-k-_rFdVJyt_FXIA== │ │ │ │ │ │ ├── data.0~0fAMG3G0pF2soWVuoI-EQdB5nAUKfJhtrDhJ8fquCN_HExcAQGd6PxBrMs_TK3PbB4AmXi0mqZASeTi7-xRM1g== │ │ │ │ │ │ ├── data.0~1O88WBKsbq-19qla4nu_iw50pQo9ObRRa5K0apfi7K1PRIdknH-uzIVno1KUx5kVRe9Fx_v2DRCdO7SKTFzQPA== │ │ │ │ │ │ ├── data.0~3yv1MadYKtFaPgQLOcNbeosIIax4mOLvqKcn9dJauwvWo7CG6v-VrQlP2J731PdhAdZHwVuETn4EsiDnSOyVaw== │ │ │ │ │ │ ├── data.0~4VeaO-yhS3kVMv0yjG1hdHe1h38D79uGIIRAb53AWN1YfesDbDDVe_hRW0ilyYdEH7PoZIP_TlciUG-9nCh6Tw== │ │ │ │ │ │ ├── data.0~4VqMqsI5lOfxRppnud6-VDWcNsU8J7VgFCJfW2dXPwOcAkvU-I8Um5yp9n0Zv6nr3VmcxYggaVMDFfR0U_vjKw== │ │ │ │ │ │ ├── data.0~8hbCIwY6qNvcWAw3ya_TeDjmsyMdpstEQcYiI_VnxJdIfOP_Xdaa143BZ6_-8dna-9WYxcLrsBG497BiEIb1-Q== │ │ │ │ │ │ ├── data.0~8rfNRM_I-f8BiNiW8qWkZuiHPzJn5mU4s4cFLKZuyjbgVd1l3NPznUqO_fSXuExsNWag0kYJ7bFzSZkyPzzOhQ== │ │ │ │ │ │ ├── data.0~9nfJsl_CyeiGx_OkZgfxuDXCkhYtC8uXJEPTPCavOq-YArWDsOu8KIXm2KSuP5VovEITW_ActhJPuX0x6yz2_w== │ │ │ │ │ │ ├── data.0~Bbsc8KoFFWe_3Eml4aqyL_mltStg9MSuFyTLvgKxVgGhR23hzWV9XYwff-gES4vip7xePvH8LIL1ZSzvzGVFjg== │ │ │ │ │ │ ├── data.0~C64aGvRF0659k83KqbRKOWqGUlK9rButy3MKh6L6FG_3cSCQihsIGEeKTuEeQ9cGDxzBqVBD9GXwVugrD2-nIQ== │ │ │ │ │ │ ├── data.0~CIxsCVpFlJLwi1Q_HYfE2MyEfgLWrED7CxgJXfPObMzyDUVuFoms_f-8O3eZ4H0adC8D2VLmkNKGE1jq7zpFDw== │ │ │ │ │ │ ├── data.0~CtkVCuqDejEyBsfLuf1gbcWmIOnvDT5vyRNstIGS9k1egkexhAl4L9Gh1hMQNuR-1Jv9C-G0_b7Xdyr5hpap4w== │ │ │ │ │ │ ├── data.0~ESkjZR3lfbgy5n036G_Poc1eL5brLd8ZgOmCRzt9bNCV8M0PssVGfWi3hXNtHe2VsGNZCfpMBtbz2ufoCLJ8wA== │ │ │ │ │ │ ├── data.0~GdHqNv0Rcxo4E1uKDjmzHRfgzfYX1IIrf6enWktYsfSLH2ZTlfP0S1ucj09zzjJKNlXGrKr39OfmZjfMClahTQ== │ │ │ │ │ │ ├── data.0~GhB22DxEKbNQtjzJQ42iodDJUdX-eJWbJ0Q8_OtUQjfQ6ZOeUVj5XIlYix5cImL3APbvyyNSXloyFus7XhEtCA== │ │ │ │ │ │ ├── data.0~IuTy9KuaY_oGEbddgicn4rGTZ6DlUdk-3IFaLtAtIy9Grb9oX9kX6kr6v7zNJ--_dqGm8yjQ6iIupS8ek9hT9g== │ │ │ │ │ │ ├── data.0~KyXicDIcdSxF_KIP102tjEK_pZ6XlVSJA4Z8vIhMSaV8GS3xxEZIyZ5FVnf4sK4QgG9hE_aqoRzZFUF8CftG3g== │ │ │ │ │ │ ├── data.0~MapkA4cgU0tr0Z7hLbOaWDTtktOBJcuxcDHdAA9kpSavLCSztPZMPsQ5cxHUN-UoZV2x2Jez_-FtxpBnjGVJEg== │ │ │ │ │ │ ├── data.0~N2rVyxSAcn-Jy_KSWQLN2uvz4gRzBEedrqckuRVRMEnKnVoMSwJikfRp8si5LOPil5bxE0dBeX2wEKQXubsUMw== │ │ │ │ │ │ ├── data.0~Nu2-eTw67CgTS4yMe4Bmr3a5P-9MulBMVsN9BjlRcNJbzTVEzn3YIG7DXjJITUvspEQk3sftLTDaMA3gr-nxdQ== │ │ │ │ │ │ ├── data.0~Oaa9GEZlbuUu3kCakBXBvHevypj9sFPqdvBNCLddNdy0HmvbjEBC4u-41avFMHOArH3zLVm2NfIICe5fjhZSqA== │ │ │ │ │ │ ├── data.0~TIsaG4mWYvUw2aAa9ddNoD2NC4Wzb6lxf848peyO7QmvT4x-9UNSP53ObXmZZ5yjess9CMQq6Dc-zWj2Zp9BAA== │ │ │ │ │ │ ├── data.0~TqyOe-QFeBwFl1P8y09sGCJSxUz47gHNOtZVAkmABrO6H_lRaPH_TT6wQtXT1s6hKusnX8RajPhjsCnG7QrO_w== │ │ │ │ │ │ ├── data.0~V6MabtdV7iVaTOIoTUKXY_uv5Ic2RO6VjmSKralTeFVuDOKapV8w4Rru0oqxzeLUN7zUsx9VV9LkptjIRck1Yw== │ │ │ │ │ │ ├── data.0~W4cv_QjE4X88RtzNXXgJ4qflLVBIdzoddkFvGCiCzwRxRF1vFB1zHRZEC9xj4bnwNrPUsohr5Ji2YRY1v4K9SA== │ │ │ │ │ │ ├── data.0~WAeDWkvX4htYZHAld6PE4WIYk4YhShlEWapAiaeqGnEFPE3D2rx8Ib2ucQeGD9sX2KXRCdXiwpjfmDAAwrgmzQ== │ │ │ │ │ │ ├── data.0~WCfmr-kV_Ra_l8C6VvAb9o2Bk2uoUqXvY_hslpxPwmmY95xAHm4LEFVMttX23p4xGzvufYSx2AqzVwTOKHgjRQ== │ │ │ │ │ │ ├── data.0~XUAlhhemQaTQVtRfqkL-LyQDeqCYGHfK2_OF9ZN_tPVbaS8z4vUYIR4bxdFHOxUx5jRZpBvWsqwdWv6aDyRrCQ== │ │ │ │ │ │ ├── data.0~ZTqxGrIflZc47jajv-GpQvBdJx_hWl9komq8Uh5E74Xcjff9Vy52CZOpm7LO2mv9qdoIJ4MwWHmajprH0UJWQA== │ │ │ │ │ │ ├── data.0~_QoR-0dQn0sNWymkYye049iakX_XulItmKK4GQSufbsrkvCl58eBLh7k83KTdMVZNkMdkyXssMlLe_isSg9E4w== │ │ │ │ │ │ ├── data.0~arVHxe88d0XfM4a_iw9FQ-c1fy-2HjCLGMrWJrzB7UBc6y5GAWtzZiGCU5b44PWXLt2cJt2wCDGHvWZhrThzIg== │ │ │ │ │ │ ├── data.0~b6rBGHFM55xTxTH2NRf4cKTeFgDEIbsa-K6R_CUYEEBrl3LdtgwVVeSWSl7dM0MZ1P_fNcOcR1pUPwxGyxQLFg== │ │ │ │ │ │ ├── data.0~bTNtmsOCSaQWsONvq8shw8JaB5sTfV4jLdsMohdvbk1wY3TFNc06HSe10fzznGFXZY7ljxjb4l8QrKyA8FvjYg== │ │ │ │ │ │ ├── data.0~cGShflEJBARoixS1GsvQECcSXDe_RToOUASg4dt2evSJUrPo4DGe9wi_KSE_LITnN49kLhLYwqADoFxwdO4IkQ== │ │ │ │ │ │ ├── data.0~dhcZQk7pHZj_rXPkyk0l0_EvG7VPvTeVFYSyFac3ZrbSa1oqvtltI43MWKPWskI-7JLSENxKbDCQpX4uG2n21Q== │ │ │ │ │ │ ├── data.0~fWJAoUYy2rHEyGyiUV0ibka0nbDMIQGrIQbDHbg5uVU-orJk49KesO9utOUlumL_KVn1aWHJEMjkio2tPRX_Lg== │ │ │ │ │ │ ├── data.0~fwKHNwmXFbI-CiOtAXpG75NEv8CdtUCV_ryk4aEcd1MssZEKme91B5qPBcN25wq64Ow7ze-iffoQpCf4QDTLoQ== │ │ │ │ │ │ ├── data.0~g_biHu-Yf80XFLLu6pNy4sYr2cI3y56nHrYn-Jtub2ZxKDEPc_Y-v1DRWE7ZhqKxjbu1UgH0bsV_sOThuQlYGg== │ │ │ │ │ │ ├── data.0~h4vu5HpkJwt8pXHb8o1j3fGL9h1dr7Y11VyxECBy2C4nP4kBO00VTByjEaOrOhCifX6bNQTIq2Dy5xGlqjdHhw== │ │ │ │ │ │ ├── data.0~kFpRFrgGEeBh9uvA-3MuJgNTSwW13Ow2V_3URBYMSH-0k4ZJ_Ox5K-g1rDuSOJ-gyMo87MiandTZsPmy75OOjA== │ │ │ │ │ │ ├── data.0~m7pxmLgHK4lUyl5MCRovwK5yQEJYHRKeM8lXOFR3ue1YinjywaoSK-44-WQRgl3aehIEkGCurIfn0hyHT63umw== │ │ │ │ │ │ ├── data.0~nqtjyxgscHiZYdt4Y8ICuh3SgKydPuah7I-GxreD8fGSkhEUXa0St_rRnKDM_k7wTDpMNkr5aAZxz0YpyZaoVA== │ │ │ │ │ │ ├── data.0~oNtXghNehRZ1Ttuy9I1ikWx2An-_WBLlr3Pl4wyb17Gp8o-Q28jEMYpDQgFCHlBeFaTy4wYd91bdDDD4voUmHg== │ │ │ │ │ │ ├── data.0~oRMi0sbQLktfDDDGUS-SqBKpdDiD6HCztVES_ShfGr0KVcYENoIq7y9oUSDWL5B_P2gkdtWG8JEsJLxPbdWOZA== │ │ │ │ │ │ ├── data.0~pf2ENc4jrljwDk1PKQibk8aX7ljZHyznLIpseS0jyHAeNqjrBTUHrz-vR-2mrclgBDnu04N8Q7a1qSBrGiDpWQ== │ │ │ │ │ │ ├── data.0~psoZXY0KQG2o1pHrYKVvMz7DK3EkxTM3VI7rWjLgKXzoFc_9-Kkzg1ieDlEop5425mPFShni4xZaGmwqTMacAQ== │ │ │ │ │ │ ├── data.0~qcUUa26y26YwdmhFZUEF5pH0pZuNwPkJ_KtAo-kEn6joYnjSzzg4le6ly8nG1TVKl26maTsIsmOig53j1fZyxg== │ │ │ │ │ │ ├── data.0~y5oK5BFKNIKCE8AkvHzMr-Aj11jJmHoG-Lz9wYUt93QIdefWc7TaJ6DWGiWngjJkRJ1XEJI7UQQpeLZk4gQ_Zw== │ │ │ │ │ │ ├── data.0~yTk_0HmUrv4Tsf9SvkX3yAZwG9OgPBrR89Hy48TH2EoodJHqV_M7R3Lix9-tpSIqOVkv-GS8LXNsIkb5X7L1EA== │ │ │ │ │ │ ├── refs.0~06eElEqhYuN_viqTCjodWIWcItfFrDQx8-89G9taauMy7nuUs6llm5-WzGoNbAqCFhU21JLa7lg2TzOKEaOc2w== │ │ │ │ │ │ ├── refs.0~0TgqQPqltxD2fcwCfwkYTyJUFEUcN7mutaxQrnbflxBtGUL6q0q-w9j-TbqZ9pvJLh3QCA-k-_rFdVJyt_FXIA== │ │ │ │ │ │ ├── refs.0~0fAMG3G0pF2soWVuoI-EQdB5nAUKfJhtrDhJ8fquCN_HExcAQGd6PxBrMs_TK3PbB4AmXi0mqZASeTi7-xRM1g== │ │ │ │ │ │ ├── refs.0~1O88WBKsbq-19qla4nu_iw50pQo9ObRRa5K0apfi7K1PRIdknH-uzIVno1KUx5kVRe9Fx_v2DRCdO7SKTFzQPA== │ │ │ │ │ │ ├── refs.0~3yv1MadYKtFaPgQLOcNbeosIIax4mOLvqKcn9dJauwvWo7CG6v-VrQlP2J731PdhAdZHwVuETn4EsiDnSOyVaw== │ │ │ │ │ │ ├── refs.0~4VeaO-yhS3kVMv0yjG1hdHe1h38D79uGIIRAb53AWN1YfesDbDDVe_hRW0ilyYdEH7PoZIP_TlciUG-9nCh6Tw== │ │ │ │ │ │ ├── refs.0~4VqMqsI5lOfxRppnud6-VDWcNsU8J7VgFCJfW2dXPwOcAkvU-I8Um5yp9n0Zv6nr3VmcxYggaVMDFfR0U_vjKw== │ │ │ │ │ │ ├── refs.0~8hbCIwY6qNvcWAw3ya_TeDjmsyMdpstEQcYiI_VnxJdIfOP_Xdaa143BZ6_-8dna-9WYxcLrsBG497BiEIb1-Q== │ │ │ │ │ │ ├── refs.0~8rfNRM_I-f8BiNiW8qWkZuiHPzJn5mU4s4cFLKZuyjbgVd1l3NPznUqO_fSXuExsNWag0kYJ7bFzSZkyPzzOhQ== │ │ │ │ │ │ ├── refs.0~9nfJsl_CyeiGx_OkZgfxuDXCkhYtC8uXJEPTPCavOq-YArWDsOu8KIXm2KSuP5VovEITW_ActhJPuX0x6yz2_w== │ │ │ │ │ │ ├── refs.0~Bbsc8KoFFWe_3Eml4aqyL_mltStg9MSuFyTLvgKxVgGhR23hzWV9XYwff-gES4vip7xePvH8LIL1ZSzvzGVFjg== │ │ │ │ │ │ ├── refs.0~C64aGvRF0659k83KqbRKOWqGUlK9rButy3MKh6L6FG_3cSCQihsIGEeKTuEeQ9cGDxzBqVBD9GXwVugrD2-nIQ== │ │ │ │ │ │ ├── refs.0~CIxsCVpFlJLwi1Q_HYfE2MyEfgLWrED7CxgJXfPObMzyDUVuFoms_f-8O3eZ4H0adC8D2VLmkNKGE1jq7zpFDw== │ │ │ │ │ │ ├── refs.0~CtkVCuqDejEyBsfLuf1gbcWmIOnvDT5vyRNstIGS9k1egkexhAl4L9Gh1hMQNuR-1Jv9C-G0_b7Xdyr5hpap4w== │ │ │ │ │ │ ├── refs.0~ESkjZR3lfbgy5n036G_Poc1eL5brLd8ZgOmCRzt9bNCV8M0PssVGfWi3hXNtHe2VsGNZCfpMBtbz2ufoCLJ8wA== │ │ │ │ │ │ ├── refs.0~GdHqNv0Rcxo4E1uKDjmzHRfgzfYX1IIrf6enWktYsfSLH2ZTlfP0S1ucj09zzjJKNlXGrKr39OfmZjfMClahTQ== │ │ │ │ │ │ ├── refs.0~GhB22DxEKbNQtjzJQ42iodDJUdX-eJWbJ0Q8_OtUQjfQ6ZOeUVj5XIlYix5cImL3APbvyyNSXloyFus7XhEtCA== │ │ │ │ │ │ ├── refs.0~IuTy9KuaY_oGEbddgicn4rGTZ6DlUdk-3IFaLtAtIy9Grb9oX9kX6kr6v7zNJ--_dqGm8yjQ6iIupS8ek9hT9g== │ │ │ │ │ │ ├── refs.0~KyXicDIcdSxF_KIP102tjEK_pZ6XlVSJA4Z8vIhMSaV8GS3xxEZIyZ5FVnf4sK4QgG9hE_aqoRzZFUF8CftG3g== │ │ │ │ │ │ ├── refs.0~MapkA4cgU0tr0Z7hLbOaWDTtktOBJcuxcDHdAA9kpSavLCSztPZMPsQ5cxHUN-UoZV2x2Jez_-FtxpBnjGVJEg== │ │ │ │ │ │ ├── refs.0~N2rVyxSAcn-Jy_KSWQLN2uvz4gRzBEedrqckuRVRMEnKnVoMSwJikfRp8si5LOPil5bxE0dBeX2wEKQXubsUMw== │ │ │ │ │ │ ├── refs.0~Nu2-eTw67CgTS4yMe4Bmr3a5P-9MulBMVsN9BjlRcNJbzTVEzn3YIG7DXjJITUvspEQk3sftLTDaMA3gr-nxdQ== │ │ │ │ │ │ ├── refs.0~Oaa9GEZlbuUu3kCakBXBvHevypj9sFPqdvBNCLddNdy0HmvbjEBC4u-41avFMHOArH3zLVm2NfIICe5fjhZSqA== │ │ │ │ │ │ ├── refs.0~TIsaG4mWYvUw2aAa9ddNoD2NC4Wzb6lxf848peyO7QmvT4x-9UNSP53ObXmZZ5yjess9CMQq6Dc-zWj2Zp9BAA== │ │ │ │ │ │ ├── refs.0~TqyOe-QFeBwFl1P8y09sGCJSxUz47gHNOtZVAkmABrO6H_lRaPH_TT6wQtXT1s6hKusnX8RajPhjsCnG7QrO_w== │ │ │ │ │ │ ├── refs.0~V6MabtdV7iVaTOIoTUKXY_uv5Ic2RO6VjmSKralTeFVuDOKapV8w4Rru0oqxzeLUN7zUsx9VV9LkptjIRck1Yw== │ │ │ │ │ │ ├── refs.0~W4cv_QjE4X88RtzNXXgJ4qflLVBIdzoddkFvGCiCzwRxRF1vFB1zHRZEC9xj4bnwNrPUsohr5Ji2YRY1v4K9SA== │ │ │ │ │ │ ├── refs.0~WAeDWkvX4htYZHAld6PE4WIYk4YhShlEWapAiaeqGnEFPE3D2rx8Ib2ucQeGD9sX2KXRCdXiwpjfmDAAwrgmzQ== │ │ │ │ │ │ ├── refs.0~WCfmr-kV_Ra_l8C6VvAb9o2Bk2uoUqXvY_hslpxPwmmY95xAHm4LEFVMttX23p4xGzvufYSx2AqzVwTOKHgjRQ== │ │ │ │ │ │ ├── refs.0~XUAlhhemQaTQVtRfqkL-LyQDeqCYGHfK2_OF9ZN_tPVbaS8z4vUYIR4bxdFHOxUx5jRZpBvWsqwdWv6aDyRrCQ== │ │ │ │ │ │ ├── refs.0~ZTqxGrIflZc47jajv-GpQvBdJx_hWl9komq8Uh5E74Xcjff9Vy52CZOpm7LO2mv9qdoIJ4MwWHmajprH0UJWQA== │ │ │ │ │ │ ├── refs.0~_QoR-0dQn0sNWymkYye049iakX_XulItmKK4GQSufbsrkvCl58eBLh7k83KTdMVZNkMdkyXssMlLe_isSg9E4w== │ │ │ │ │ │ ├── refs.0~arVHxe88d0XfM4a_iw9FQ-c1fy-2HjCLGMrWJrzB7UBc6y5GAWtzZiGCU5b44PWXLt2cJt2wCDGHvWZhrThzIg== │ │ │ │ │ │ ├── refs.0~b6rBGHFM55xTxTH2NRf4cKTeFgDEIbsa-K6R_CUYEEBrl3LdtgwVVeSWSl7dM0MZ1P_fNcOcR1pUPwxGyxQLFg== │ │ │ │ │ │ ├── refs.0~bTNtmsOCSaQWsONvq8shw8JaB5sTfV4jLdsMohdvbk1wY3TFNc06HSe10fzznGFXZY7ljxjb4l8QrKyA8FvjYg== │ │ │ │ │ │ ├── refs.0~cGShflEJBARoixS1GsvQECcSXDe_RToOUASg4dt2evSJUrPo4DGe9wi_KSE_LITnN49kLhLYwqADoFxwdO4IkQ== │ │ │ │ │ │ ├── refs.0~dhcZQk7pHZj_rXPkyk0l0_EvG7VPvTeVFYSyFac3ZrbSa1oqvtltI43MWKPWskI-7JLSENxKbDCQpX4uG2n21Q== │ │ │ │ │ │ ├── refs.0~fWJAoUYy2rHEyGyiUV0ibka0nbDMIQGrIQbDHbg5uVU-orJk49KesO9utOUlumL_KVn1aWHJEMjkio2tPRX_Lg== │ │ │ │ │ │ ├── refs.0~fwKHNwmXFbI-CiOtAXpG75NEv8CdtUCV_ryk4aEcd1MssZEKme91B5qPBcN25wq64Ow7ze-iffoQpCf4QDTLoQ== │ │ │ │ │ │ ├── refs.0~g_biHu-Yf80XFLLu6pNy4sYr2cI3y56nHrYn-Jtub2ZxKDEPc_Y-v1DRWE7ZhqKxjbu1UgH0bsV_sOThuQlYGg== │ │ │ │ │ │ ├── refs.0~h4vu5HpkJwt8pXHb8o1j3fGL9h1dr7Y11VyxECBy2C4nP4kBO00VTByjEaOrOhCifX6bNQTIq2Dy5xGlqjdHhw== │ │ │ │ │ │ ├── refs.0~kFpRFrgGEeBh9uvA-3MuJgNTSwW13Ow2V_3URBYMSH-0k4ZJ_Ox5K-g1rDuSOJ-gyMo87MiandTZsPmy75OOjA== │ │ │ │ │ │ ├── refs.0~m7pxmLgHK4lUyl5MCRovwK5yQEJYHRKeM8lXOFR3ue1YinjywaoSK-44-WQRgl3aehIEkGCurIfn0hyHT63umw== │ │ │ │ │ │ ├── refs.0~nqtjyxgscHiZYdt4Y8ICuh3SgKydPuah7I-GxreD8fGSkhEUXa0St_rRnKDM_k7wTDpMNkr5aAZxz0YpyZaoVA== │ │ │ │ │ │ ├── refs.0~oNtXghNehRZ1Ttuy9I1ikWx2An-_WBLlr3Pl4wyb17Gp8o-Q28jEMYpDQgFCHlBeFaTy4wYd91bdDDD4voUmHg== │ │ │ │ │ │ ├── refs.0~oRMi0sbQLktfDDDGUS-SqBKpdDiD6HCztVES_ShfGr0KVcYENoIq7y9oUSDWL5B_P2gkdtWG8JEsJLxPbdWOZA== │ │ │ │ │ │ ├── refs.0~pf2ENc4jrljwDk1PKQibk8aX7ljZHyznLIpseS0jyHAeNqjrBTUHrz-vR-2mrclgBDnu04N8Q7a1qSBrGiDpWQ== │ │ │ │ │ │ ├── refs.0~psoZXY0KQG2o1pHrYKVvMz7DK3EkxTM3VI7rWjLgKXzoFc_9-Kkzg1ieDlEop5425mPFShni4xZaGmwqTMacAQ== │ │ │ │ │ │ ├── refs.0~qcUUa26y26YwdmhFZUEF5pH0pZuNwPkJ_KtAo-kEn6joYnjSzzg4le6ly8nG1TVKl26maTsIsmOig53j1fZyxg== │ │ │ │ │ │ ├── refs.0~y5oK5BFKNIKCE8AkvHzMr-Aj11jJmHoG-Lz9wYUt93QIdefWc7TaJ6DWGiWngjJkRJ1XEJI7UQQpeLZk4gQ_Zw== │ │ │ │ │ │ └── refs.0~yTk_0HmUrv4Tsf9SvkX3yAZwG9OgPBrR89Hy48TH2EoodJHqV_M7R3Lix9-tpSIqOVkv-GS8LXNsIkb5X7L1EA== │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── database.sqlite3 │ │ │ │ ├── teamcity/ │ │ │ │ │ ├── teamcity.build.parameters │ │ │ │ │ └── teamcity.config.parameters │ │ │ │ └── xcresults-attachments/ │ │ │ │ └── manifest.json │ │ │ ├── flags.lisp │ │ │ ├── git-pack.lisp │ │ │ ├── git.lisp │ │ │ ├── gradle.lisp │ │ │ ├── health-checks.lisp │ │ │ ├── help.lisp │ │ │ ├── hostname.lisp │ │ │ ├── install.lisp │ │ │ ├── installer.sh │ │ │ ├── integration-fixture.lisp │ │ │ ├── integration-tests.lisp │ │ │ ├── main.lisp │ │ │ ├── metadata.json │ │ │ ├── package.lisp │ │ │ ├── pull.lisp │ │ │ ├── request.lisp │ │ │ ├── run-context.lisp │ │ │ ├── screenshotbot.sdk.asd │ │ │ ├── scripts/ │ │ │ │ ├── .gitignore │ │ │ │ └── gen-images.sh │ │ │ ├── sdk-integration-tests-impl.lisp │ │ │ ├── sdk-integration-tests.lisp │ │ │ ├── sdk.lisp │ │ │ ├── sentry.lisp │ │ │ ├── server-log-appender.lisp │ │ │ ├── static-example/ │ │ │ │ └── index.html │ │ │ ├── static.lisp │ │ │ ├── test-active-run.lisp │ │ │ ├── test-android.lisp │ │ │ ├── test-api-context.lisp │ │ │ ├── test-backoff.lisp │ │ │ ├── test-bundle.lisp │ │ │ ├── test-cli-common.lisp │ │ │ ├── test-clingon-api-context.lisp │ │ │ ├── test-commit-graph.lisp │ │ │ ├── test-env.lisp │ │ │ ├── test-fetch-run.lisp │ │ │ ├── test-firebase.lisp │ │ │ ├── test-flags.lisp │ │ │ ├── test-git-pack.lisp │ │ │ ├── test-git.lisp │ │ │ ├── test-installer.lisp │ │ │ ├── test-main.lisp │ │ │ ├── test-request.lisp │ │ │ ├── test-run-context.lisp │ │ │ ├── test-sdk.lisp │ │ │ ├── test-sentry.lisp │ │ │ ├── test-server-log-appender.lisp │ │ │ ├── test-static.lisp │ │ │ ├── test-unchanged-run.lisp │ │ │ ├── test-version-check.lisp │ │ │ ├── test-xcresult.lisp │ │ │ ├── unchanged-run.lisp │ │ │ ├── upload-commit-graph.lisp │ │ │ ├── version-check.lisp │ │ │ └── xcresult.lisp │ │ ├── secret.lisp │ │ ├── server.lisp │ │ ├── settings/ │ │ │ ├── general.lisp │ │ │ ├── security.lisp │ │ │ ├── settings-template.lisp │ │ │ ├── shares.lisp │ │ │ └── test-security.lisp │ │ ├── settings-api.lisp │ │ ├── setup-oss.sh │ │ ├── showkase/ │ │ │ ├── .gitignore │ │ │ ├── Makefile │ │ │ ├── deliver-showkase-libs.lisp │ │ │ ├── instr/ │ │ │ │ ├── .gitignore │ │ │ │ ├── app/ │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src/ │ │ │ │ │ └── main/ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── java/ │ │ │ │ │ │ └── io/ │ │ │ │ │ │ └── screenshotbot/ │ │ │ │ │ │ ├── ContainerFragment.java │ │ │ │ │ │ ├── Factory.kt │ │ │ │ │ │ ├── LispworksManager.java │ │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ │ ├── PrimitiveWrapper.java │ │ │ │ │ │ ├── SbInstrumentation.java │ │ │ │ │ │ ├── SimpleNativeLibrary.java │ │ │ │ │ │ ├── ViewOwner.java │ │ │ │ │ │ ├── ViewOwners.java │ │ │ │ │ │ └── Whitebox.java │ │ │ │ │ └── res/ │ │ │ │ │ ├── drawable/ │ │ │ │ │ │ └── ic_launcher_background.xml │ │ │ │ │ ├── drawable-v24/ │ │ │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ │ ├── layout/ │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ └── values/ │ │ │ │ │ ├── colors.xml │ │ │ │ │ ├── strings.xml │ │ │ │ │ └── styles.xml │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle/ │ │ │ │ │ └── wrapper/ │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradle.properties │ │ │ │ ├── gradlew │ │ │ │ ├── gradlew.bat │ │ │ │ └── settings.gradle │ │ │ ├── lib.lisp │ │ │ ├── main.lisp │ │ │ └── screenshotbot.showkase.asd │ │ ├── site-admin.lisp │ │ ├── slack/ │ │ │ ├── all.lisp │ │ │ ├── core.lisp │ │ │ ├── plugin.lisp │ │ │ ├── rules-card.lisp │ │ │ ├── rules.lisp │ │ │ ├── settings.lisp │ │ │ ├── task-integration.lisp │ │ │ ├── test-core.lisp │ │ │ ├── test-rules.lisp │ │ │ ├── test-settings.lisp │ │ │ └── test-task-integration.lisp │ │ ├── sso/ │ │ │ ├── fake.lisp │ │ │ ├── model.lisp │ │ │ ├── redirect.lisp │ │ │ └── settings.lisp │ │ ├── static/ │ │ │ └── assets/ │ │ │ ├── css/ │ │ │ │ ├── aos.css │ │ │ │ └── selenium.css │ │ │ ├── images/ │ │ │ │ └── logos/ │ │ │ │ ├── logo-square-with-margin.xcf │ │ │ │ └── text-logo-with-vertical-space.xcf │ │ │ └── js/ │ │ │ ├── annotate.js │ │ │ ├── aos.js │ │ │ └── browser-tests.js │ │ ├── task-integration-api.lisp │ │ ├── tasks/ │ │ │ ├── common.lisp │ │ │ └── test-common.lisp │ │ ├── template.lisp │ │ ├── test-abstract-pr-promoter.lisp │ │ ├── test-analytics.lisp │ │ ├── test-artifacts.lisp │ │ ├── test-assets.lisp │ │ ├── test-async.lisp │ │ ├── test-audit-log.lisp │ │ ├── test-batch-promoter.lisp │ │ ├── test-billing-meter.lisp │ │ ├── test-cdn.lisp │ │ ├── test-config.lisp │ │ ├── test-diff-report.lisp │ │ ├── test-email-template.lisp │ │ ├── test-git-repo.lisp │ │ ├── test-installation.lisp │ │ ├── test-invite.lisp │ │ ├── test-promote-api.lisp │ │ ├── test-raft-redirect.lisp │ │ ├── test-secret.lisp │ │ ├── test-server.lisp │ │ ├── test-settings-api.lisp │ │ ├── test-store.lisp │ │ ├── test-template.lisp │ │ ├── test-testing.lisp │ │ ├── test-throttler.lisp │ │ ├── test-uname.lisp │ │ ├── testing.lisp │ │ ├── thresholds/ │ │ │ ├── dsl.lisp │ │ │ └── test-dsl.lisp │ │ ├── throttler.lisp │ │ ├── ui/ │ │ │ ├── all.lisp │ │ │ └── core.lisp │ │ ├── uname.lisp │ │ ├── user-api.lisp │ │ ├── utils.lisp │ │ ├── web-build/ │ │ │ ├── browsers.lisp │ │ │ ├── device-list.lisp │ │ │ ├── project.lisp │ │ │ ├── scheduler.lisp │ │ │ ├── test-project.lisp │ │ │ └── test-scheduler.lisp │ │ ├── webdriver/ │ │ │ ├── all.lisp │ │ │ ├── impl.lisp │ │ │ ├── runner.lisp │ │ │ ├── screenshot.lisp │ │ │ └── test-screenshot.lisp │ │ └── webhook/ │ │ ├── model.lisp │ │ ├── settings.lisp │ │ ├── test-model.lisp │ │ ├── test-settings.lisp │ │ ├── test-webhook.lisp │ │ └── webhook.lisp │ ├── screenshotbot.oss.tests.asd │ ├── server/ │ │ ├── .gitignore │ │ ├── Makefile │ │ ├── acceptor-override.lisp │ │ ├── cli.lisp │ │ ├── cluster/ │ │ │ ├── cluster-init.lisp │ │ │ ├── leadership.lisp │ │ │ ├── peers.lisp │ │ │ └── status.lisp │ │ ├── config-cli.lisp │ │ ├── config.lisp │ │ ├── control-socket.lisp │ │ ├── eval.lisp │ │ ├── health-checks.lisp │ │ ├── interrupts.lisp │ │ ├── launch.c │ │ ├── server.asd │ │ ├── setup.lisp │ │ ├── slynk-preparer.lisp │ │ ├── test-config.lisp │ │ ├── test-server.lisp │ │ ├── test-slynk-preparer.lisp │ │ ├── test-util.lisp │ │ └── util.lisp │ ├── test-runner/ │ │ ├── affected-systems.lisp │ │ ├── build-test-runner.lisp │ │ ├── test-runner.asd │ │ └── test-runner.lisp │ └── util/ │ ├── .gitattributes │ ├── acceptor.lisp │ ├── asdf.lisp │ ├── atomics.lisp │ ├── benchmark.lisp │ ├── bind-form.lisp │ ├── bknr-slynk.lisp │ ├── cdn.lisp │ ├── clsql/ │ │ ├── clsql.lisp │ │ ├── libmariadb.so.3 │ │ └── libsqlite3.so.0.8.6 │ ├── cookies.lisp │ ├── copy-file.lisp │ ├── copying.lisp │ ├── countries.csv │ ├── countries.lisp │ ├── cron.lisp │ ├── debugger-hook.lisp │ ├── digest.c │ ├── digests-non-lw.lisp │ ├── digests.lisp │ ├── disk-size.lisp │ ├── download-file.lisp │ ├── emacs.lisp │ ├── engines.lisp │ ├── events.lisp │ ├── fake-clingon.lisp │ ├── fake-fli.lisp │ ├── fiveam.lisp │ ├── fixture/ │ │ └── file.txt │ ├── form-errors.lisp │ ├── form-state.lisp │ ├── fset.lisp │ ├── gcloud.lisp │ ├── google-analytics.lisp │ ├── hash-lock.lisp │ ├── health-check.lisp │ ├── html2text.lisp │ ├── http-cache.lisp │ ├── http-ping.lisp │ ├── hunchentoot-engine.lisp │ ├── java/ │ │ ├── all.lisp │ │ ├── binding.lisp │ │ ├── iterate.lisp │ │ ├── java.lisp │ │ ├── reader.lisp │ │ ├── test-binding.lisp │ │ ├── test-iterate.lisp │ │ ├── test-java.lisp │ │ └── util.java.asd │ ├── json-mop.lisp │ ├── logger.lisp │ ├── logrotate.lisp │ ├── lparallel.lisp │ ├── lru-cache.lisp │ ├── mail.lisp │ ├── make-instance-with-accessors.lisp │ ├── memory.lisp │ ├── misc/ │ │ ├── lists.lisp │ │ ├── misc.lisp │ │ ├── test-lists.lisp │ │ ├── test-misc.lisp │ │ └── util.misc.asd │ ├── mock-recording.lisp │ ├── mockable.lisp │ ├── mquery.lisp │ ├── native-module.lisp │ ├── package.lisp │ ├── payment-method.lisp │ ├── phabricator/ │ │ ├── conduit.lisp │ │ ├── fixture/ │ │ │ ├── create-artifact.rec │ │ │ ├── upload-file.rec │ │ │ └── upload-large-file.rec │ │ ├── harbormaster.lisp │ │ ├── maniphest.lisp │ │ ├── passphrase.lisp │ │ ├── phabricator.el │ │ ├── project.lisp │ │ ├── test-conduit.lisp │ │ └── test-harbormaster.lisp │ ├── posix.lisp │ ├── random-port.lisp │ ├── rb-tree.lisp │ ├── recaptcha.lisp │ ├── remote-debugging.lisp │ ├── request.lisp │ ├── ret-let.lisp │ ├── reused-ssl.lisp │ ├── schema/ │ │ ├── core.lisp │ │ └── history.lisp │ ├── simple-queue.lisp │ ├── sizeof.lisp │ ├── ssl.lisp │ ├── states.csv │ ├── statsig/ │ │ ├── statsig.lisp │ │ ├── test-statsig.lisp │ │ └── util.statsig.asd │ ├── store/ │ │ ├── aws-store.lisp │ │ ├── benchmarks.lisp │ │ ├── checksums.lisp │ │ ├── clone-logs-store.lisp │ │ ├── delayed-accessors.lisp │ │ ├── elb-store.lisp │ │ ├── encodable.lisp │ │ ├── export.lisp │ │ ├── fset-index.lisp │ │ ├── fset.lisp │ │ ├── migrations.lisp │ │ ├── object-id.lisp │ │ ├── permissive-persistent-class.lisp │ │ ├── raft-state-http.lisp │ │ ├── simple-object-snapshot.lisp │ │ ├── single.lisp │ │ ├── slot-subsystem.lisp │ │ ├── store-migrations.lisp │ │ ├── store-version.lisp │ │ ├── store.lisp │ │ ├── summing-index.lisp │ │ ├── sync.lisp │ │ ├── test-checksums.lisp │ │ ├── test-delayed-accessors.lisp │ │ ├── test-encodable.lisp │ │ ├── test-fset-index.lisp │ │ ├── test-fset.lisp │ │ ├── test-migrations.lisp │ │ ├── test-objectid.lisp │ │ ├── test-permissive-persistent-class.lisp │ │ ├── test-raft-state-http.lisp │ │ ├── test-simple-object-snapshot.lisp │ │ ├── test-single.lisp │ │ ├── test-slot-subsystem.lisp │ │ ├── test-store-version.lisp │ │ ├── test-store.lisp │ │ ├── test-summing-index.lisp │ │ ├── test-sync.lisp │ │ ├── test-validate.lisp │ │ ├── util.store.asd │ │ └── validate.lisp │ ├── symbol-detector.lisp │ ├── test-file.txt │ ├── testing/ │ │ ├── test-testing.lisp │ │ ├── testing.lisp │ │ └── util.testing.asd │ ├── tests/ │ │ ├── test-asdf.lisp │ │ ├── test-benchmark.lisp │ │ ├── test-bind-form.lisp │ │ ├── test-cdn.lisp │ │ ├── test-cookies.lisp │ │ ├── test-copy-file.lisp │ │ ├── test-digests.lisp │ │ ├── test-disk-size.lisp │ │ ├── test-events.lisp │ │ ├── test-fake-clingon.lisp │ │ ├── test-fake-fli.lisp │ │ ├── test-fiveam.lisp │ │ ├── test-fset.lisp │ │ ├── test-hash-lock.lisp │ │ ├── test-health-check.lisp │ │ ├── test-html2text.lisp │ │ ├── test-hunchentoot-engine.lisp │ │ ├── test-json-mop.lisp │ │ ├── test-lispworks.lisp │ │ ├── test-logger.lisp │ │ ├── test-lparallel.lisp │ │ ├── test-lru-cache.lisp │ │ ├── test-mail.lisp │ │ ├── test-make-instance-with-accessors.lisp │ │ ├── test-memory.lisp │ │ ├── test-mock-recording.lisp │ │ ├── test-mockable.lisp │ │ ├── test-models.lisp │ │ ├── test-mquery.lisp │ │ ├── test-random-port.lisp │ │ ├── test-rb-tree.lisp │ │ ├── test-request-integration.lisp │ │ ├── test-request.lisp │ │ ├── test-ret-let.lisp │ │ ├── test-reused-ssl.lisp │ │ ├── test-simple-queue.lisp │ │ ├── test-sizeof.lisp │ │ ├── test-ssl.lisp │ │ ├── test-throttler.lisp │ │ ├── test-timeago.lisp │ │ └── test-truncated-stream.lisp │ ├── threading/ │ │ ├── fake-mp.lisp │ │ ├── tests/ │ │ │ └── test-threading.lisp │ │ ├── threading.lisp │ │ └── util.threading.asd │ ├── throttler.lisp │ ├── timeago.lisp │ ├── tools.el │ ├── truncated-stream.lisp │ ├── utf-8.lisp │ ├── util.asd │ └── uuid.lisp └── third-party/ ├── asn1/ │ ├── README.md │ ├── asn1.asd │ ├── decode.lisp │ ├── encode.lisp │ ├── format/ │ │ ├── public-key.lisp │ │ └── rsa.lisp │ ├── main.lisp │ └── tests/ │ └── main.lisp ├── bknr.datastore/ │ ├── .gitignore │ ├── README.mkdn │ ├── doc/ │ │ ├── 1_introduction.txt │ │ ├── 2_guided_tour.txt │ │ ├── Makefile │ │ ├── README-orig │ │ ├── TODO │ │ ├── example.tex │ │ ├── guidedtour.tex │ │ ├── introduction.tex │ │ ├── manual.tex │ │ ├── schleuder-artikel.txt │ │ ├── templates.tex │ │ └── web.tex │ ├── experimental/ │ │ ├── dump-core.lisp │ │ ├── fswrap/ │ │ │ ├── fsd.pl │ │ │ ├── fswrap.c │ │ │ └── fswrap.lisp │ │ ├── mop-bug.lisp │ │ ├── shop/ │ │ │ ├── money.lisp │ │ │ └── shop.lisp │ │ ├── slot-attributes.lisp │ │ └── xml-schema/ │ │ ├── examples/ │ │ │ ├── test-schema.xml │ │ │ └── test-schema2.xml │ │ └── xml-schema.lisp │ ├── license.txt │ ├── patches/ │ │ └── patch-around-mop-cmucl19.lisp │ └── src/ │ ├── bknr.data.impex.asd │ ├── bknr.datastore.asd │ ├── bknr.impex.asd │ ├── bknr.indices.asd │ ├── bknr.skip-list.asd │ ├── bknr.utils.asd │ ├── bknr.xml.asd │ ├── data/ │ │ ├── TODO │ │ ├── blob.lisp │ │ ├── convert.lisp │ │ ├── encoding-test.lisp │ │ ├── encoding.lisp │ │ ├── json.lisp │ │ ├── object-tests.lisp │ │ ├── object.lisp │ │ ├── package.lisp │ │ ├── tests.lisp │ │ ├── tutorial.lisp │ │ ├── txn.lisp │ │ ├── xml-object.lisp │ │ └── xml-tutorial.lisp │ ├── indices/ │ │ ├── TODO │ │ ├── category-index.lisp │ │ ├── indexed-class.lisp │ │ ├── indices-tests.lisp │ │ ├── indices.lisp │ │ ├── package.lisp │ │ ├── protocol.lisp │ │ └── tutorial.lisp │ ├── skip-list/ │ │ ├── package.lisp │ │ ├── skip-list-tests.lisp │ │ └── skip-list.lisp │ ├── statistics/ │ │ ├── package.lisp │ │ └── runtime-statistics.lisp │ ├── utils/ │ │ ├── Makefile │ │ ├── acl-mp-compat.lisp │ │ ├── actor.lisp │ │ ├── capability.lisp │ │ ├── class.lisp │ │ ├── crypt-md5.lisp │ │ ├── date-calc.lisp │ │ ├── make-fdf-file.lisp │ │ ├── package.lisp │ │ ├── parse-time.lisp │ │ ├── pathnames.lisp │ │ ├── reader.lisp │ │ ├── smbpasswd-wrapper.c │ │ ├── smbpasswd.lisp │ │ ├── utils.lisp │ │ └── xml.lisp │ ├── xml/ │ │ ├── package.lisp │ │ └── xml.lisp │ └── xml-impex/ │ ├── package.lisp │ ├── tutorial.dtd │ ├── tutorial.lisp │ ├── tutorial.xml │ ├── tutorial2.dtd │ ├── tutorial2.xml │ ├── tutorial3.dtd │ ├── tutorial3.xml │ ├── tutorial4.dtd │ ├── tutorial4.xml │ ├── tutorial5.dtd │ ├── tutorial5.xml │ ├── xml-class.lisp │ ├── xml-export.lisp │ ├── xml-import.lisp │ └── xml-update.lisp ├── cl+j-0.4/ │ ├── Copyright │ ├── cl+j.asd │ ├── cl+j.lisp │ ├── cl+j_pkg.lisp │ ├── cl+swt.asd │ ├── cl_j/ │ │ ├── LispCondition.java │ │ ├── RunInLisp.java │ │ └── swt/ │ │ └── LispListener.java │ ├── cl_j.jar │ ├── demos/ │ │ ├── CCL/ │ │ │ ├── hello_swing_on_ccl.lisp │ │ │ ├── hello_swt.lisp │ │ │ ├── java_REPL/ │ │ │ │ ├── EndOfReplException.java │ │ │ │ ├── EvalAbortedException.java │ │ │ │ ├── HelloLispWorld.java │ │ │ │ ├── LispRef.java │ │ │ │ ├── ReplFromJava.java │ │ │ │ ├── java_lisp_ref.lisp │ │ │ │ ├── java_repl.lisp │ │ │ │ └── test_java_callback.lisp │ │ │ └── swt_buttons.lisp │ │ ├── HelloSWT.java │ │ ├── HelloSwing.java │ │ ├── Jabber.lisp │ │ ├── hello_swing.lisp │ │ ├── hello_swt.lisp │ │ ├── java_REPL/ │ │ │ ├── EndOfReplException.java │ │ │ ├── EvalAbortedException.java │ │ │ ├── HelloLispWorld.java │ │ │ ├── LispRef.java │ │ │ ├── ReplFromJava.java │ │ │ ├── java_lisp_ref.lisp │ │ │ ├── java_repl.lisp │ │ │ └── test_java_callback.lisp │ │ ├── jfli_example.lisp │ │ └── swt_buttons.lisp │ ├── java_adapter.lisp │ ├── java_callback.lisp │ ├── jni.lisp │ ├── reference.lisp │ ├── sbcl_repl.lisp │ ├── swt_adapter.lisp │ ├── swt_adapter_for_ccl.lisp │ └── vtable.lisp ├── cl-gravatar/ │ ├── LICENSE.txt │ ├── README.mkdn │ ├── gravatar.asd │ ├── gravatar.lisp │ └── package.lisp ├── cl-libssh2/ │ ├── .gitignore │ ├── .travis.yml │ ├── LICENSE │ ├── examples.lisp │ ├── libssh2.asd │ ├── libssh2.test.asd │ ├── src/ │ │ ├── libssh2-cffi.lisp │ │ ├── libssh2-libc-cffi.lisp │ │ ├── logging.lisp │ │ ├── package.lisp │ │ ├── scp.lisp │ │ ├── sftp.lisp │ │ ├── solutions.lisp │ │ ├── streams.lisp │ │ ├── types.lisp │ │ └── util.lisp │ └── test/ │ ├── data/ │ │ └── testfile.tgz │ ├── package.lisp │ ├── scp.lisp │ └── sftp.lisp ├── damn-fast-priority-queue/ │ ├── .gitignore │ ├── README.md │ ├── damn-fast-priority-queue/ │ │ ├── damn-fast-priority-queue.asd │ │ ├── src.lisp │ │ └── test.lisp │ ├── damn-fast-stable-priority-queue/ │ │ ├── damn-fast-stable-priority-queue.asd │ │ ├── src.lisp │ │ ├── test-distinct.lisp │ │ ├── test-same.lisp │ │ └── test.lisp │ └── priority-queue-benchmark/ │ ├── README.md │ ├── benchmark.lisp │ └── priority-queue-benchmark.asd ├── fiveam/ │ ├── .boring │ ├── .travis.yml │ ├── COPYING │ ├── README │ ├── docs/ │ │ └── make-qbook.lisp │ ├── fiveam.asd │ ├── src/ │ │ ├── check.lisp │ │ ├── classes.lisp │ │ ├── explain.lisp │ │ ├── fixture.lisp │ │ ├── package.lisp │ │ ├── random.lisp │ │ ├── run.lisp │ │ ├── style.css │ │ ├── suite.lisp │ │ ├── test.lisp │ │ └── utils.lisp │ ├── t/ │ │ ├── example.lisp │ │ └── tests.lisp │ └── version.sexp ├── hunchensocket/ │ ├── .travis.yml │ ├── COPYING │ ├── README.md │ ├── VERSION │ ├── demo.lisp │ ├── hunchensocket-tests.lisp │ ├── hunchensocket.asd │ ├── hunchensocket.lisp │ └── package.lisp ├── hunchentoot-multi-acceptor/ │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── hunchentoot-multi-acceptor.asd │ ├── hunchentoot-multi-acceptor.lisp │ ├── package.lisp │ └── test-hunchentoot-multi-acceptor.lisp ├── json-mop/ │ ├── .github/ │ │ └── workflows/ │ │ └── CI.yml │ ├── COPYING │ ├── README.md │ ├── json-mop.asd │ ├── src/ │ │ ├── conditions.lisp │ │ ├── json-mop.lisp │ │ ├── package.lisp │ │ ├── to-json.lisp │ │ └── to-lisp.lisp │ └── tests/ │ ├── encode-decode.lisp │ ├── json-mop-tests.asd │ ├── package.lisp │ └── tests.lisp ├── pem/ │ ├── README.md │ ├── main.lisp │ ├── parser.lisp │ ├── pem.asd │ └── pkey.lisp └── sentry/ └── sentry-js.asd