From 105e728d8b2c93f72190bbc0b60472ecbc03beaf Mon Sep 17 00:00:00 2001 From: edwinanto2003 Date: Sun, 26 Apr 2020 16:02:50 -0700 Subject: [PATCH] Merging changes from remote (#1) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * release: v3.20.1 * improve: showing showing server description in dropdown (via #5015) * Showing server description in dropdown * Slight syntax improvements * use template strings and ` - ` * housekeeping: update model wrapper selector in Selenium tests (via #5064) * fix: fall back to default configuration options in subtree resolver calls (via #5063) * fix: label models section as `Schemas` in OpenAPI 3 (via #5065) * fix: label models section `Schemas` in OpenAPI 3 * Update swos-63.js * improve: OAuth2 UI and test suite (via #5066) * create `features` folder * add base oauth2 server * continue implementing OAuth tests * WIP * add password flow tests * modify Password flow credential types * remove query string credential type * add test case for Authorization flow * add specific Authorization value for Password flow test * WIP * fix linter issues * release: v3.20.2 * housekeeping: test master branch builder trigger (via #5076) * improvement: add Schema/Model switching to ModelExample component (via #5080) * housekeeping: branding updates (via #5084) * new favicons * lockfile * update logo * styling changes * remove url-loader 10K limit * improvement: generate default oauth2RedirectUrl based on page location (via #5085) * release: v3.20.3 * Update README.md * housekeeping: change test name + comment (via #5091) * fix: `urls.primaryName` functionality regression (via #5097) * add tests * compute index before triggering URL load * bonus: improve urls topbar label * release: v3.20.4 * housekeeping: happy new year! (via #5102) * Update LICENSE * Update README.md * housekeeping: fix typo in configuration anchor name (via #5109) * fix: only apply instance-strip transformer to schema errors (via #5110) * fix: Immutable property access pattern (via #5112) * fix: tag-level deep link escaping inconsistencies (via #5117) * add test cases * update tag deeplinking implementation * MOAR test updates * update operation-tag.jsx * improvement: render request body description as Markdown (via #5078) * improvement: show description fields in form-data request bodies (via #5073) * housekeeping: indicate index.html usage of deepLinking flag (via #5118) * improvement: add individual CSS classes to info items (via #5051) This makes it easier to style them individually or retrieve the elements in user scripts. * improvement: support Markdown in header descriptions (via #5120) * Added markdown for header descriptions as per specifications: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#header-object which subclasses: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#parameterObject https://swagger.io/specification/#headerObject which subclasses https://swagger.io/specification/#parameterObject * update headers.jsx * Update headers.jsx Fixing test error due to the `description` variable having been removed * Update headers.jsx * fix: non-typesafe spec selector (via #5121) * add failing tests * fix things * release: v3.20.5 * housekeeping(docs): typo in oauth2.md (via #5124) no PR too small! * housekeeping: address `url-parse` vulnerability (via #5130) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/npm:url-parse:20180731 * bug: parameter `allowEmptyValue` + `required` interactions (via #5142) * add failing tests * standardize parameter keying * validateParam test migrations * migrate test cases to new pattern * disambiguate name/in ordering in `body.body` test cases * `name+in`=> `{in}.{name}` * consider allowEmptyValue parameter inclusion in runtime validation * use config object for all validateParam options * drop isXml flag from validateParams * housekeeping: add React compatibility issue to readme (via #5141) * add React compatibility issue * Update README.md * improvement(docker): avoid caching mounted json/yml/yaml assets (via #5151) * release: v3.20.6 * improvement(docker): smaller images via no-cache option (via #5157) * add no-cache option for smaller images * move flag immediately after `apk` adjusting to be as close to the example as possible: https://github.com/gliderlabs/docker-alpine/blob/master/docs/usage.md#disabling-cache * fix: gracefully handle malformed global tags array in taggedOperations selector (via #5159) * fix: handle malformed global tags array in taggedOperations * handle non-array global tags as well * update test imports * remove stray brackets * fix: don't trigger `url` remote document load if `urls` is provided (via #5161) * fix: don't trigger `url` remote document load if `urls` is provided * better test block title * improvement: generate non-smart Markdown quotes (via #5162) * housekeeping: losslessly crush PNG images with pingo (via #5158) * fix: coerce multipart initial property values to string (via #5166) * coerce multipart initial property values to string * add tests * housekeeping: corresponding changes for swagger-api/swagger-editor#1935 (via #5170) * `schema` -> `structural` * drop strip-instance transformer * release: v3.20.7 * housekeeping: bump minimum lodash version (via #5156) * Update lodash fix for Regular Expression Denial of Service: https://snyk.io/vuln/SNYK-JS-LODASH-73639 * update lockfile * fix: provide JSON editor for x-www-form-urlencoded bodies lacking properties (via #5180) * improvement: set `X-Requested-With` to prevent browser authentication dialog (via #4934) * improvement: operation path + summary overflow styling (via #5184) * improvement: operation path + summary overflow styling * inject zero-width spaces for better path breaking * migrate 4867 regression test to tolerate new ZWSPs * rm `dev-helpers/doc.yaml` * release: v3.20.8 * fix: gracefully handle non-string operation summaries (via #5189) * fix: sanitize URLs used for OAuth auth flow (via #5190) * fix: sanitize URLs used for OAuth auth flow * embetter test case * fix linter issue * fix: type safety for operation summary handling (via #5191) * fix: gracefully handle non-string operation summaries * use lodash for more summary type safety * release: v3.20.9 * improve: subtree resolver batch handling (via #5193) * fix: prevent subtree paths from being queued more than once in a batch * fix: clear subtree resolver errors by current path * drop `List` import * improvement: gracefully render malformed and empty requestBodies (via #5208) * feature: `swagger-ui-react` module (via #5207) * swagger-ui-react alpha.0 * alpha.1 * alpha.2 * alpha.3 * begin updating README * alpha.4 * WIP: `displayOperationId` support * move loading error readouts to BaseLayout * add `url` prop * export React component as default * add interceptor support * modify docs markup * add `onComplete` prop * add `spec` prop * Update README.md * alpha.6 * remove independent manifest; build releasable exclusively from template * ensure dist is present; drop config field in manifest * drop alpha field this script is now able to release to npm! * remove unused selector references * Update README.md * improvement(docker): gzip static files (via #5199) * release: v3.20.10 * housekeeping: use npmrc auth for React module publishing (via #5210) * fix: use npmrc auth for React module publishing * revert removal * feat(dummy-commit): trigger minor version release (via #5211) * release: v3.21.0 * fix: generate gzipped Docker assets at runtime (via #5219) * housekeeping: bump minimum Cypress version (via #5233) * Update Cypress version * regenerate package-lock.json * fix: Markdown styling nits and inconsistencies (via #5235) * bug: fix pre styles for block code * bug: Fix badge padding * create Markdown-specific stylesheet * housekeeping: remove react-addons-perf dependency (via #5229) * Remove react-addons-perf dependency * update lockfile * include ReactPerf in non-production builds * improvement: support GFM table syntax in OpenAPI 3.0 (via #5224) * improvement: expose system object in swagger-ui-react's onComplete callback (via #5221) * expose swagger object so it can be controlled in the onComplete function * docs: swagger-ui-react onComplete system argument * housekeeping: fix typo in README (via #5246) * improvement: expose docExpansion as a prop in swagger-ui-react (via #5242) * improvement: expose docExpansion setting as a prop in swagger-ui-react * Update README.md * Update index.js * Update README.md * Update README.md * feature: add `withCredentials` configuration key (via #5149) * Add the withCredentials configuration key It enables passing credentials in CORS requests. e.g. Cookies and Authorization headers. * Improve withCredentials documentation * Add unit tests for the withCredentials config * Update configuration.md * Update configuration.md * only set `withCredentials` Fetch flag if the config value is truthy there are some workarounds in the wild today that involve setting `withCredentials` on `system.fn.fetch` directly. this approach avoids mangling those existing workarounds! * add more test cases * Update configs-wrap-actions.js * Update index.js * feat: dummy commit for minor version bump (via #5256) in be72c29, I mistakenly wrote `feature` instead of `feat`, which isn't in line with Angular commit conventions. * release: v3.22.0 (via #5257) * dummy: empty commit from Jenkins * housekeeping: make release note generator more flexible (via #5266) * improve: error message when rendering XML example (via #5253) The original message gave no clues as to the underlying cause, which is that the element name needs to be specified explicitly (using xml/name) if it can't be determined from a $ref. * fix: refuse to render non-string Markdown field values (via #5295) * housekeeping: allow overriding `swagger-ui-react` version` (via #5300) ...by setting the `REACT_FLAVOR_VERSION_IDENTIFIER` env var * release: v3.22.0 * housekeeping: force release-it to base version bumps on package manifest (via #5301) * release: v3.22.1 * improvement: OAS3 $ref friendly-name regex in model.jsx (via #5334) * improvement: relax schema description styling so Markdown can be effective (via #5340) * improvement: add `isShown` check to 's prop `expanded` logic (via #5331) * security: CVE-2018-20834 (via #5368) * bump minimum `bundlesize` version * bump `node-sass` * bump webpack + webpack-dev-server; update lockfile * release: v3.22.2 * release: v3.22.3 * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * Update README.md * feat: Multiple Examples for OpenAPI 3 Parameters, Request Bodies, and Responses (via #5427) * add opt-in Prettier config * remove legacy `examples` implementation * create ExamplesSelect * support `Response.examples` in OpenAPI 3 * create response controls group * prettier reformat * prepare to break up Parameters * reunify Parameters and OAS3 Parameters * Parameter Examples * Example component * handle parameter value stringification correctly * FOR REVIEW: add prop for controlling Select * use regular header for param examples in Try-It-Out * manage active examples member via Redux * Request Body Try-It-Out examples * remove special Response description styling * omit Example value display in Try-It-Out * support disabled text inputs in JsonSchemaForm * Example.omitValue => Example.showValue * ExamplesSelectValueRetainer * styling for disabled inputs * remove console.log * support "Modified Values" in ExamplesSelect * remove Examples component (wasn't used anywhere) * use ParameterRow.getParamKey for active examples member keying * split-rendering of examples in ParameterRow * send disabled prop to JsonSchemaForm * use content type to key request body active examples members * remove debugger * rewire RequestBodyEditor to be a controlled component REVIEW: does this have perf implications? * trigger synthetic onSelect events in ExamplesSelect * prettier updates * remove outdated Examples usage in RequestBody * don't handle examples changes in ESVR * make RequestBodyEditor semi-controlled * don't default to an empty Map for request bodies * add namespaceKey to ESVR for state mgmt * don't key RequestBody activeExampleKeys on media type * tweak ESVR isModifiedValueSelected calculation * add trace class to ExamplesSelect * remove usage of ESVR.currentNamespace * reset to first example if currentExampleKey is invalid * add default values to RequestBody rendering * stringify things in ESVR * avoid null select value (silences React warning) * detect user inputs that match any examples member's value * add trace class for json-schema-array * shallowly convert namespace state, to preserve Immutable stucts in state * stringify RBE values; don't trim JSON in editor * match user input to an example when non-primitives are expressed in state as strings * update Cypress * don't apply sample values in JsonSchema_Object * support disabling all JsonSchemaForm subcomponents * Core tests * style changes to accomodate Examples * fix version-checking error in Response * disable SCU for Responses * don't stringify Select values * ModelExample: default to Model tab if no example is available; provide a default no example message * don't trim JSON ParamBody inputs * read directly from 2.0 Response.schema instead of inferring a value * show current Example information in RequestBody * show label for Examples dropdown by default * rework Response content ordering * style disabled textareas like other read-only blocks * meta: fix sourcemaps * refactor ESVR setNameForNamespace * protect second half of ternary expession * cypress: `select.examples-select` => `.examples-select > select` * clarify ModelExample.componentWillReceiveProps * add gates/defaults to prevent issues in very bare-boned documents * fix test block organization problem * simplify RequestBodyEditor interface * linter fixes * prettier updates * use plugin system for new components * move ME Cypress helpers to other file * release: v3.23.0 * housekeeping add configuration for Lock Threads bot (via #5437) * Create lock.yml * add trace label to locked issues * housekeeping: use double newline in lock message (via #5438) * housekeeping: silence lock bot for initial wave of actions (#5439) * housekeeping: silence lock bot for initial wave of actions * Update lock.yml * housekeeping: refactor color variable names and values (via #5420) * housekeeping: update color variable names and values (via #5337) * Update operation colors, abstracted colors from element specific variables * Removed colors.scss * Typo :baseball: * Undefined var fix * revert operation color changes (for now) * fix whitespace * housekeeping: address inconsistently truncated JS asset responses within Cypress tests (via #5445) * add Cypress error trace * Update package.json * Update webpack-hot-dev-server.config.js * Update index.js * Update index.js * housekeeping: cypress standalone failures (via #5446) * webpack.dist-style.config.js -> webpack-dist-style.config.js * correctly generate stylesheets in dev server * attempt to recover from missing StandalonePlugin in Cypress runner * housekeeping(deps-dev): bump open from 0.0.5 to 6.0.0 (via #5449) * housekeeping: upgrade to babel@7 (via #5450) * Babel 7 * preserve module output; straighten out ES/CJS syntax * add webpack TODOs * remove unused Babel modules * Update index.js * install @babel/register * housekeeping: upgrade to webpack@4 (via #5454) * build new core webpack config * fix exports in Webpack; use ESM syntax throughout * add bundle config * add standalone config * add style config * prettier... * add dev config * delete legacy webpack scripts * rewire npm scripts to use new webpack configs * cache babel-loader results * fix e2e dev servers * update core Webpack modules * update loaders to latest * remove unused loaders * update Webpack plugins * add mode flags to Webpack configs * remove plugin invocations that are now production-standard in v4 * update webpack-cli * add webpack perf size limit flags * replace ExtractText with MiniCssExtract + IgnoreAssets * UglifyJsPlugin -> TerserPlugin * fix PostCSS processing * enable Terser sourcemaps * webpack/style -> webpack/stylesheets * housekeeping: migrate to release-it v11 (via #5335) * housekeeping: migrate to release-it v11 * install `source-map-support` * bug: enum Select crashes when selecting the empty value (via #5463) * add failing tests * fix property access * @babel/plugin-proposal-optional-chaining * fix: Swagger 2.0 `Response.examples` (via #5464) * fix: Swagger 2.0 `Response.examples`, again (via #5465) * fix: Swagger 2.0 `Response.examples` * stringify results * release: v3.23.1 * housekeeping: fail React flavor release if a step fails (via #5466) * housekeeping: fail React flavor release if a step fails * Update run.sh * housekeeping(flavor-react): point babel to root `.babelrc` (via #5467) * housekeeping: npm audit resolutions (via #5457) * add `security-audit` script * npm audit fix * remove nyc * nightwatch@1 this breaks the test suite, but it appears to have already regressed. leaving it for another day, TODO: open a backlog ticket * add `security-audit` script * disable mocha exclusivity * update package-lock.json * cypress@3.4.0 * `npm audit fix` * @release-it/conventional-changelog@1.1.0 * release-it@12 * Change Swagger-UI -> Swagger UI in docs (#5479) * Change Swagger-UI -> Swagger UI in docs * Changed back to SwaggerUI in places that refer to JS construct * housekeeping: configure Renovate (via #5481) * chore(deps): add renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * Update renovate.json * housekeeping(deps): deep-extend@0.6.0 (via #5483) * Allow this to run in a non-root enviroment * fix: use `null` as a notSetValue for examplesForMediaType (via #5503) * fix: use null as a notSetValue for examplesForMediaType fixes #5455 * tests! * fix: empty ModelExample rendering in a Response w/o `content` (via #5504) * add failing test * use falsy notSetValue for oas3SchemaForContentType * release: v3.23.2 * fix: move `@babel/runtime-corejs2` to production dependencies (via #5508) * release: v3.23.3 * housekeeping(dev-deps): babel monorepo@7.5.5 (via #5487) * housekeeping(dev-deps): babel monorepo@7.5.5 * Update renovate.json * housekeeping: more `npm audit` resolutions (via #5509) * move `@babel/runtime-corejs2` to production dependencies * `npm audit fix` * housekeeping: `@kyleshockey/js-yaml` -> `js-yaml` (via #5511) * `@kyleshockey/js-yaml` -> `js-yaml` * externalize `esprima` * housekeeping: create `.github/SECURITY.md` (via #5514) * housekeeping: non-breaking dependency updates (via #5515) * non-breaking dependency updates * eslint updates * release: v3.23.4 * Grammar syntax correction (#5512) Tense correction and clarity on line 44. * fix: remove problematic Markdown optimization (via #5520) * release: v3.23.5 * housekeeping: copy Jenkins release flags to `.release-it.json` (via #5529) * housekeeping(deps): redux-immutable@3.1.0 (via #5484) * fix: remove `.col` class that causes collision with Bootstrap (via #5541) * improvement: address Bootstrap conflict by removing our .col class (#4574) * use `.parameters-col_description` selector in Cypress tests * fix: React warning related to "true" used as boolean (via #5497) This should fix this warning seen in the console when using `swagger-ui-react`: ``` Warning: Received the string `true` for the boolean attribute `readOnly`. Although this works, it will not work as expected if you pass the string "false". Did you mean readOnly={true}? in textarea (created by Curl) in div (created by Curl) in div (created by Curl) in Curl (created by LiveResponse) in div (created by LiveResponse) in LiveResponse (created by Responses) ``` I did not test this change because it's trivial and there is no behavioural change here, React treats non-empty string attributes as `true`. * housekeeping: MOAR badges (via #5494) * MOAR badges * Update README.md * Update README.md * Update README.md * housekeeping(deps): update nginx docker tag to v1.17 (via #5485) * housekeeping: automerge non-major devDep updates (via #5547) * housekeeping(dev-deps): autoprefixer@8.6.5 (via #5486) * housekeeping(dev-deps): chromedriver@2.46.0 * housekeeping(dev-deps): css-loader@3.2.0 * housekeeping(dev-deps): deepmerge@2.2.1 * housekeeping(dev-deps): file-loader@4.2.0 * housekeeping(dev-deps): jsdom@11.12.0 * housekeeping(dev-deps): less@3.10.3 * housekeeping(dev-deps): mini-css-extract-plugin@^0.8.0 * housekeeping(dev-deps): mocha@5.2.0 * housekeeping(dev-deps): nightwatch@1.2.1 * housekeeping(dev-deps): release-it@12.3.5 * housekeeping(dev-deps): rimraf@2.7.1 * housekeeping(dev-deps): sass-loader@7.3.1 * housekeeping(dev-deps): selenium-server-standalone-jar@3.141.59 * housekeeping(dev-deps): source-map-support@0.5.13 * housekeeping(dev-deps): webpack-cli@3.3.7 * housekeeping(dev-deps): webpack-dev-server@3.8.0 * housekeeping(dev-deps): webpack@4.39.2 (via #5562) * release: v3.23.6 * docs: clarify that preauthorizeApiKey works for OAS3 Bearer auth too (via #5566) * housekeeping(dev-deps): babel-plugin-transform-react-remove-prop-types@0.4.24 * feature: support for `Parameter.content` (#5571) * add `getParameterSchema` OAS helper * use `Parameter.content.[firstKey].schema` as schema value when present * `newValue` -> `initialValue` * make `paramWithMeta` a const * add trailing comma to `swagger2SchemaKeys` * refactor `helpers` to a folder * deprecate `src/core/utils.js` in favor of `src/core/helpers/` * support `Parameter.content.[mediaType].schema` in validateParam * reject `null` as an OAS3 object value * expose Fetch errors in the browser console * generate ParameterRow default values based on `content` values * add tests for `getParameterSchema` * remove debugger statement * remove debugger statement * don't apply `generatedSampleValue`s to parameters with `examples` * remove extra semi * disable JSON check in parameter runtime validation * stringify JsonSchema_object textarea values * add Cypress tests * swagger-client@3.9.4 * release: v3.23.7 * fix: 2.0 object parameter validation (#5583) * release: v3.23.8 * improvement: `online.swagger.io` -> `validator.swagger.io` (#5599) * release: v3.23.9 * housekeeping: reorganize and rewire Mocha tests (#5600) * move Mocha-run tests to `test/mocha` * fix relative paths * fix JSX test paths * update stagnated JSX tests * `test/setup.js` -> `test/mocha/setup.js` * use regex+globstar for test matching * remove `console.log` * fix: -
- - - - - -
 
-
- + diff --git a/dist/lang/ca.js b/dist/lang/ca.js deleted file mode 100644 index f8c815aa92c..00000000000 --- a/dist/lang/ca.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Advertència: Obsolet", - "Implementation Notes":"Notes d'implementació", - "Response Class":"Classe de la Resposta", - "Status":"Estatus", - "Parameters":"Paràmetres", - "Parameter":"Paràmetre", - "Value":"Valor", - "Description":"Descripció", - "Parameter Type":"Tipus del Paràmetre", - "Data Type":"Tipus de la Dada", - "Response Messages":"Missatges de la Resposta", - "HTTP Status Code":"Codi d'Estatus HTTP", - "Reason":"Raó", - "Response Model":"Model de la Resposta", - "Request URL":"URL de la Sol·licitud", - "Response Body":"Cos de la Resposta", - "Response Code":"Codi de la Resposta", - "Response Headers":"Capçaleres de la Resposta", - "Hide Response":"Amagar Resposta", - "Try it out!":"Prova-ho!", - "Show/Hide":"Mostrar/Amagar", - "List Operations":"Llista Operacions", - "Expand Operations":"Expandir Operacions", - "Raw":"Cru", - "can't parse JSON. Raw result":"no puc analitzar el JSON. Resultat cru", - "Example Value":"Valor d'Exemple", - "Model Schema":"Esquema del Model", - "Model":"Model", - "apply":"aplicar", - "Username":"Nom d'usuari", - "Password":"Contrasenya", - "Terms of service":"Termes del servei", - "Created by":"Creat per", - "See more at":"Veure més en", - "Contact the developer":"Contactar amb el desenvolupador", - "api version":"versió de la api", - "Response Content Type":"Tipus de Contingut de la Resposta", - "fetching resource":"recollint recurs", - "fetching resource list":"recollins llista de recursos", - "Explore":"Explorant", - "Show Swagger Petstore Example Apis":"Mostrar API d'Exemple Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"No es pot llegir del servidor. Potser no teniu la configuració de control d'accés apropiada.", - "Please specify the protocol for":"Si us plau, especifiqueu el protocol per a", - "Can't read swagger JSON from":"No es pot llegir el JSON de swagger des de", - "Finished Loading Resource Information. Rendering Swagger UI":"Finalitzada la càrrega del recurs informatiu. Renderitzant Swagger UI", - "Unable to read api":"No es pot llegir l'api", - "from path":"des de la ruta", - "server returned":"el servidor ha retornat" -}); diff --git a/dist/lang/en.js b/dist/lang/en.js deleted file mode 100644 index 918313665db..00000000000 --- a/dist/lang/en.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Warning: Deprecated", - "Implementation Notes":"Implementation Notes", - "Response Class":"Response Class", - "Status":"Status", - "Parameters":"Parameters", - "Parameter":"Parameter", - "Value":"Value", - "Description":"Description", - "Parameter Type":"Parameter Type", - "Data Type":"Data Type", - "Response Messages":"Response Messages", - "HTTP Status Code":"HTTP Status Code", - "Reason":"Reason", - "Response Model":"Response Model", - "Request URL":"Request URL", - "Response Body":"Response Body", - "Response Code":"Response Code", - "Response Headers":"Response Headers", - "Hide Response":"Hide Response", - "Headers":"Headers", - "Try it out!":"Try it out!", - "Show/Hide":"Show/Hide", - "List Operations":"List Operations", - "Expand Operations":"Expand Operations", - "Raw":"Raw", - "can't parse JSON. Raw result":"can't parse JSON. Raw result", - "Example Value":"Example Value", - "Model Schema":"Model Schema", - "Model":"Model", - "Click to set as parameter value":"Click to set as parameter value", - "apply":"apply", - "Username":"Username", - "Password":"Password", - "Terms of service":"Terms of service", - "Created by":"Created by", - "See more at":"See more at", - "Contact the developer":"Contact the developer", - "api version":"api version", - "Response Content Type":"Response Content Type", - "Parameter content type:":"Parameter content type:", - "fetching resource":"fetching resource", - "fetching resource list":"fetching resource list", - "Explore":"Explore", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", - "Please specify the protocol for":"Please specify the protocol for", - "Can't read swagger JSON from":"Can't read swagger JSON from", - "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", - "Unable to read api":"Unable to read api", - "from path":"from path", - "server returned":"server returned" -}); diff --git a/dist/lang/es.js b/dist/lang/es.js deleted file mode 100644 index 13fa015e6df..00000000000 --- a/dist/lang/es.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Advertencia: Obsoleto", - "Implementation Notes":"Notas de implementación", - "Response Class":"Clase de la Respuesta", - "Status":"Status", - "Parameters":"Parámetros", - "Parameter":"Parámetro", - "Value":"Valor", - "Description":"Descripción", - "Parameter Type":"Tipo del Parámetro", - "Data Type":"Tipo del Dato", - "Response Messages":"Mensajes de la Respuesta", - "HTTP Status Code":"Código de Status HTTP", - "Reason":"Razón", - "Response Model":"Modelo de la Respuesta", - "Request URL":"URL de la Solicitud", - "Response Body":"Cuerpo de la Respuesta", - "Response Code":"Código de la Respuesta", - "Response Headers":"Encabezados de la Respuesta", - "Hide Response":"Ocultar Respuesta", - "Try it out!":"Pruébalo!", - "Show/Hide":"Mostrar/Ocultar", - "List Operations":"Listar Operaciones", - "Expand Operations":"Expandir Operaciones", - "Raw":"Crudo", - "can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo", - "Example Value":"Valor de Ejemplo", - "Model Schema":"Esquema del Modelo", - "Model":"Modelo", - "apply":"aplicar", - "Username":"Nombre de usuario", - "Password":"Contraseña", - "Terms of service":"Términos de Servicio", - "Created by":"Creado por", - "See more at":"Ver más en", - "Contact the developer":"Contactar al desarrollador", - "api version":"versión de la api", - "Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta", - "fetching resource":"buscando recurso", - "fetching resource list":"buscando lista del recurso", - "Explore":"Explorar", - "Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.", - "Please specify the protocol for":"Por favor, especificar el protocola para", - "Can't read swagger JSON from":"No se puede leer el JSON de swagger desde", - "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI", - "Unable to read api":"No se puede leer la api", - "from path":"desde ruta", - "server returned":"el servidor retornó" -}); diff --git a/dist/lang/fr.js b/dist/lang/fr.js deleted file mode 100644 index 388dff14bac..00000000000 --- a/dist/lang/fr.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Avertissement : Obsolète", - "Implementation Notes":"Notes d'implémentation", - "Response Class":"Classe de la réponse", - "Status":"Statut", - "Parameters":"Paramètres", - "Parameter":"Paramètre", - "Value":"Valeur", - "Description":"Description", - "Parameter Type":"Type du paramètre", - "Data Type":"Type de données", - "Response Messages":"Messages de la réponse", - "HTTP Status Code":"Code de statut HTTP", - "Reason":"Raison", - "Response Model":"Modèle de réponse", - "Request URL":"URL appelée", - "Response Body":"Corps de la réponse", - "Response Code":"Code de la réponse", - "Response Headers":"En-têtes de la réponse", - "Hide Response":"Cacher la réponse", - "Headers":"En-têtes", - "Try it out!":"Testez !", - "Show/Hide":"Afficher/Masquer", - "List Operations":"Liste des opérations", - "Expand Operations":"Développer les opérations", - "Raw":"Brut", - "can't parse JSON. Raw result":"impossible de décoder le JSON. Résultat brut", - "Example Value":"Exemple la valeur", - "Model Schema":"Définition du modèle", - "Model":"Modèle", - "apply":"appliquer", - "Username":"Nom d'utilisateur", - "Password":"Mot de passe", - "Terms of service":"Conditions de service", - "Created by":"Créé par", - "See more at":"Voir plus sur", - "Contact the developer":"Contacter le développeur", - "api version":"version de l'api", - "Response Content Type":"Content Type de la réponse", - "fetching resource":"récupération de la ressource", - "fetching resource list":"récupération de la liste de ressources", - "Explore":"Explorer", - "Show Swagger Petstore Example Apis":"Montrer les Apis de l'exemple Petstore de Swagger", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Impossible de lire à partir du serveur. Il se peut que les réglages access-control-origin ne soient pas appropriés.", - "Please specify the protocol for":"Veuillez spécifier un protocole pour", - "Can't read swagger JSON from":"Impossible de lire le JSON swagger à partir de", - "Finished Loading Resource Information. Rendering Swagger UI":"Chargement des informations terminé. Affichage de Swagger UI", - "Unable to read api":"Impossible de lire l'api", - "from path":"à partir du chemin", - "server returned":"réponse du serveur" -}); diff --git a/dist/lang/geo.js b/dist/lang/geo.js deleted file mode 100644 index 609c20d9c86..00000000000 --- a/dist/lang/geo.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"ყურადღება: აღარ გამოიყენება", - "Implementation Notes":"იმპლემენტაციის აღწერა", - "Response Class":"რესპონს კლასი", - "Status":"სტატუსი", - "Parameters":"პარამეტრები", - "Parameter":"პარამეტრი", - "Value":"მნიშვნელობა", - "Description":"აღწერა", - "Parameter Type":"პარამეტრის ტიპი", - "Data Type":"მონაცემის ტიპი", - "Response Messages":"პასუხი", - "HTTP Status Code":"HTTP სტატუსი", - "Reason":"მიზეზი", - "Response Model":"რესპონს მოდელი", - "Request URL":"მოთხოვნის URL", - "Response Body":"პასუხის სხეული", - "Response Code":"პასუხის კოდი", - "Response Headers":"პასუხის ჰედერები", - "Hide Response":"დამალე პასუხი", - "Headers":"ჰედერები", - "Try it out!":"ცადე !", - "Show/Hide":"გამოჩენა/დამალვა", - "List Operations":"ოპერაციების სია", - "Expand Operations":"ოპერაციები ვრცლად", - "Raw":"ნედლი", - "can't parse JSON. Raw result":"JSON-ის დამუშავება ვერ მოხერხდა. ნედლი პასუხი", - "Example Value":"მაგალითი", - "Model Schema":"მოდელის სტრუქტურა", - "Model":"მოდელი", - "Click to set as parameter value":"პარამეტრისთვის მნიშვნელობის მისანიჭებლად, დააკლიკე", - "apply":"გამოყენება", - "Username":"მოხმარებელი", - "Password":"პაროლი", - "Terms of service":"მომსახურების პირობები", - "Created by":"შექმნა", - "See more at":"ნახე ვრცლად", - "Contact the developer":"დაუკავშირდი დეველოპერს", - "api version":"api ვერსია", - "Response Content Type":"პასუხის კონტენტის ტიპი", - "Parameter content type:":"პარამეტრის კონტენტის ტიპი:", - "fetching resource":"რესურსების მიღება", - "fetching resource list":"რესურსების სიის მიღება", - "Explore":"ნახვა", - "Show Swagger Petstore Example Apis":"ნახე Swagger Petstore სამაგალითო Api", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"სერვერთან დაკავშირება ვერ ხერხდება. შეამოწმეთ access-control-origin.", - "Please specify the protocol for":"მიუთითეთ პროტოკოლი", - "Can't read swagger JSON from":"swagger JSON წაკითხვა ვერ მოხერხდა", - "Finished Loading Resource Information. Rendering Swagger UI":"რესურსების ჩატვირთვა სრულდება. Swagger UI რენდერდება", - "Unable to read api":"api წაკითხვა ვერ მოხერხდა", - "from path":"მისამართიდან", - "server returned":"სერვერმა დააბრუნა" -}); diff --git a/dist/lang/it.js b/dist/lang/it.js deleted file mode 100644 index 8529c2a90bc..00000000000 --- a/dist/lang/it.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Attenzione: Deprecato", - "Implementation Notes":"Note di implementazione", - "Response Class":"Classe della risposta", - "Status":"Stato", - "Parameters":"Parametri", - "Parameter":"Parametro", - "Value":"Valore", - "Description":"Descrizione", - "Parameter Type":"Tipo di parametro", - "Data Type":"Tipo di dato", - "Response Messages":"Messaggi della risposta", - "HTTP Status Code":"Codice stato HTTP", - "Reason":"Motivo", - "Response Model":"Modello di risposta", - "Request URL":"URL della richiesta", - "Response Body":"Corpo della risposta", - "Response Code":"Oggetto della risposta", - "Response Headers":"Intestazioni della risposta", - "Hide Response":"Nascondi risposta", - "Try it out!":"Provalo!", - "Show/Hide":"Mostra/Nascondi", - "List Operations":"Mostra operazioni", - "Expand Operations":"Espandi operazioni", - "Raw":"Grezzo (raw)", - "can't parse JSON. Raw result":"non è possibile parsare il JSON. Risultato grezzo (raw).", - "Model Schema":"Schema del modello", - "Model":"Modello", - "apply":"applica", - "Username":"Nome utente", - "Password":"Password", - "Terms of service":"Condizioni del servizio", - "Created by":"Creato da", - "See more at":"Informazioni aggiuntive:", - "Contact the developer":"Contatta lo sviluppatore", - "api version":"versione api", - "Response Content Type":"Tipo di contenuto (content type) della risposta", - "fetching resource":"recuperando la risorsa", - "fetching resource list":"recuperando lista risorse", - "Explore":"Esplora", - "Show Swagger Petstore Example Apis":"Mostra le api di esempio di Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Non è possibile leggere dal server. Potrebbe non avere le impostazioni di controllo accesso origine (access-control-origin) appropriate.", - "Please specify the protocol for":"Si prega di specificare il protocollo per", - "Can't read swagger JSON from":"Impossibile leggere JSON swagger da:", - "Finished Loading Resource Information. Rendering Swagger UI":"Lettura informazioni risorse termianta. Swagger UI viene mostrata", - "Unable to read api":"Impossibile leggere la api", - "from path":"da cartella", - "server returned":"il server ha restituito" -}); diff --git a/dist/lang/ja.js b/dist/lang/ja.js deleted file mode 100755 index 3207bfc0baf..00000000000 --- a/dist/lang/ja.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"警告: 廃止予定", - "Implementation Notes":"実装メモ", - "Response Class":"レスポンスクラス", - "Status":"ステータス", - "Parameters":"パラメータ群", - "Parameter":"パラメータ", - "Value":"値", - "Description":"説明", - "Parameter Type":"パラメータタイプ", - "Data Type":"データタイプ", - "Response Messages":"レスポンスメッセージ", - "HTTP Status Code":"HTTPステータスコード", - "Reason":"理由", - "Response Model":"レスポンスモデル", - "Request URL":"リクエストURL", - "Response Body":"レスポンスボディ", - "Response Code":"レスポンスコード", - "Response Headers":"レスポンスヘッダ", - "Hide Response":"レスポンスを隠す", - "Headers":"ヘッダ", - "Try it out!":"実際に実行!", - "Show/Hide":"表示/非表示", - "List Operations":"操作一覧", - "Expand Operations":"操作の展開", - "Raw":"Raw", - "can't parse JSON. Raw result":"JSONへ解釈できません. 未加工の結果", - "Model Schema":"モデルスキーマ", - "Model":"モデル", - "apply":"実行", - "Username":"ユーザ名", - "Password":"パスワード", - "Terms of service":"サービス利用規約", - "Created by":"Created by", - "See more at":"See more at", - "Contact the developer":"開発者に連絡", - "api version":"APIバージョン", - "Response Content Type":"レスポンス コンテンツタイプ", - "fetching resource":"リソースの取得", - "fetching resource list":"リソース一覧の取得", - "Explore":"Explore", - "Show Swagger Petstore Example Apis":"SwaggerペットストアAPIの表示", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"サーバから読み込めません. 適切なaccess-control-origin設定を持っていない可能性があります.", - "Please specify the protocol for":"プロトコルを指定してください", - "Can't read swagger JSON from":"次からswagger JSONを読み込めません", - "Finished Loading Resource Information. Rendering Swagger UI":"リソース情報の読み込みが完了しました. Swagger UIを描画しています", - "Unable to read api":"APIを読み込めません", - "from path":"次のパスから", - "server returned":"サーバからの返答" -}); diff --git a/dist/lang/ko-kr.js b/dist/lang/ko-kr.js deleted file mode 100644 index 03c7626d7f9..00000000000 --- a/dist/lang/ko-kr.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"경고:폐기예정됨", - "Implementation Notes":"구현 노트", - "Response Class":"응답 클래스", - "Status":"상태", - "Parameters":"매개변수들", - "Parameter":"매개변수", - "Value":"값", - "Description":"설명", - "Parameter Type":"매개변수 타입", - "Data Type":"데이터 타입", - "Response Messages":"응답 메세지", - "HTTP Status Code":"HTTP 상태 코드", - "Reason":"원인", - "Response Model":"응답 모델", - "Request URL":"요청 URL", - "Response Body":"응답 본문", - "Response Code":"응답 코드", - "Response Headers":"응답 헤더", - "Hide Response":"응답 숨기기", - "Headers":"헤더", - "Try it out!":"써보기!", - "Show/Hide":"보이기/숨기기", - "List Operations":"목록 작업", - "Expand Operations":"전개 작업", - "Raw":"원본", - "can't parse JSON. Raw result":"JSON을 파싱할수 없음. 원본결과:", - "Model Schema":"모델 스키마", - "Model":"모델", - "apply":"적용", - "Username":"사용자 이름", - "Password":"암호", - "Terms of service":"이용약관", - "Created by":"작성자", - "See more at":"추가정보:", - "Contact the developer":"개발자에게 문의", - "api version":"api버전", - "Response Content Type":"응답Content Type", - "fetching resource":"리소스 가져오기", - "fetching resource list":"리소스 목록 가져오기", - "Explore":"탐색", - "Show Swagger Petstore Example Apis":"Swagger Petstore 예제 보기", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"서버로부터 읽어들일수 없습니다. access-control-origin 설정이 올바르지 않을수 있습니다.", - "Please specify the protocol for":"다음을 위한 프로토콜을 정하세요", - "Can't read swagger JSON from":"swagger JSON 을 다음으로 부터 읽을수 없습니다", - "Finished Loading Resource Information. Rendering Swagger UI":"리소스 정보 불러오기 완료. Swagger UI 랜더링", - "Unable to read api":"api를 읽을 수 없습니다.", - "from path":"다음 경로로 부터", - "server returned":"서버 응답함." -}); diff --git a/dist/lang/pl.js b/dist/lang/pl.js deleted file mode 100644 index ce41e91799d..00000000000 --- a/dist/lang/pl.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Uwaga: Wycofane", - "Implementation Notes":"Uwagi Implementacji", - "Response Class":"Klasa Odpowiedzi", - "Status":"Status", - "Parameters":"Parametry", - "Parameter":"Parametr", - "Value":"Wartość", - "Description":"Opis", - "Parameter Type":"Typ Parametru", - "Data Type":"Typ Danych", - "Response Messages":"Wiadomości Odpowiedzi", - "HTTP Status Code":"Kod Statusu HTTP", - "Reason":"Przyczyna", - "Response Model":"Model Odpowiedzi", - "Request URL":"URL Wywołania", - "Response Body":"Treść Odpowiedzi", - "Response Code":"Kod Odpowiedzi", - "Response Headers":"Nagłówki Odpowiedzi", - "Hide Response":"Ukryj Odpowiedź", - "Headers":"Nagłówki", - "Try it out!":"Wypróbuj!", - "Show/Hide":"Pokaż/Ukryj", - "List Operations":"Lista Operacji", - "Expand Operations":"Rozwiń Operacje", - "Raw":"Nieprzetworzone", - "can't parse JSON. Raw result":"nie można przetworzyć pliku JSON. Nieprzetworzone dane", - "Model Schema":"Schemat Modelu", - "Model":"Model", - "apply":"użyj", - "Username":"Nazwa użytkownika", - "Password":"Hasło", - "Terms of service":"Warunki używania", - "Created by":"Utworzone przez", - "See more at":"Zobacz więcej na", - "Contact the developer":"Kontakt z deweloperem", - "api version":"wersja api", - "Response Content Type":"Typ Zasobu Odpowiedzi", - "fetching resource":"ładowanie zasobu", - "fetching resource list":"ładowanie listy zasobów", - "Explore":"Eksploruj", - "Show Swagger Petstore Example Apis":"Pokaż Przykładowe Api Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Brak połączenia z serwerem. Może on nie mieć odpowiednich ustawień access-control-origin.", - "Please specify the protocol for":"Proszę podać protokół dla", - "Can't read swagger JSON from":"Nie można odczytać swagger JSON z", - "Finished Loading Resource Information. Rendering Swagger UI":"Ukończono Ładowanie Informacji o Zasobie. Renderowanie Swagger UI", - "Unable to read api":"Nie można odczytać api", - "from path":"ze ścieżki", - "server returned":"serwer zwrócił" -}); diff --git a/dist/lang/pt.js b/dist/lang/pt.js deleted file mode 100644 index f2e7c13d413..00000000000 --- a/dist/lang/pt.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Aviso: Depreciado", - "Implementation Notes":"Notas de Implementação", - "Response Class":"Classe de resposta", - "Status":"Status", - "Parameters":"Parâmetros", - "Parameter":"Parâmetro", - "Value":"Valor", - "Description":"Descrição", - "Parameter Type":"Tipo de parâmetro", - "Data Type":"Tipo de dados", - "Response Messages":"Mensagens de resposta", - "HTTP Status Code":"Código de status HTTP", - "Reason":"Razão", - "Response Model":"Modelo resposta", - "Request URL":"URL requisição", - "Response Body":"Corpo da resposta", - "Response Code":"Código da resposta", - "Response Headers":"Cabeçalho da resposta", - "Headers":"Cabeçalhos", - "Hide Response":"Esconder resposta", - "Try it out!":"Tente agora!", - "Show/Hide":"Mostrar/Esconder", - "List Operations":"Listar operações", - "Expand Operations":"Expandir operações", - "Raw":"Cru", - "can't parse JSON. Raw result":"Falha ao analisar JSON. Resulto cru", - "Model Schema":"Modelo esquema", - "Model":"Modelo", - "apply":"Aplicar", - "Username":"Usuário", - "Password":"Senha", - "Terms of service":"Termos do serviço", - "Created by":"Criado por", - "See more at":"Veja mais em", - "Contact the developer":"Contate o desenvolvedor", - "api version":"Versão api", - "Response Content Type":"Tipo de conteúdo da resposta", - "fetching resource":"busca recurso", - "fetching resource list":"buscando lista de recursos", - "Explore":"Explorar", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Não é possível ler do servidor. Pode não ter as apropriadas configurações access-control-origin", - "Please specify the protocol for":"Por favor especifique o protocolo", - "Can't read swagger JSON from":"Não é possível ler o JSON Swagger de", - "Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI", - "Unable to read api":"Não foi possível ler api", - "from path":"do caminho", - "server returned":"servidor retornou" -}); diff --git a/dist/lang/ru.js b/dist/lang/ru.js deleted file mode 100644 index 592744e957f..00000000000 --- a/dist/lang/ru.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Предупреждение: Устарело", - "Implementation Notes":"Заметки", - "Response Class":"Пример ответа", - "Status":"Статус", - "Parameters":"Параметры", - "Parameter":"Параметр", - "Value":"Значение", - "Description":"Описание", - "Parameter Type":"Тип параметра", - "Data Type":"Тип данных", - "HTTP Status Code":"HTTP код", - "Reason":"Причина", - "Response Model":"Структура ответа", - "Request URL":"URL запроса", - "Response Body":"Тело ответа", - "Response Code":"HTTP код ответа", - "Response Headers":"Заголовки ответа", - "Hide Response":"Спрятать ответ", - "Headers":"Заголовки", - "Response Messages":"Что может прийти в ответ", - "Try it out!":"Попробовать!", - "Show/Hide":"Показать/Скрыть", - "List Operations":"Операции кратко", - "Expand Operations":"Операции подробно", - "Raw":"В сыром виде", - "can't parse JSON. Raw result":"Не удается распарсить ответ:", - "Example Value":"Пример", - "Model Schema":"Структура", - "Model":"Описание", - "Click to set as parameter value":"Нажмите, чтобы испльзовать в качестве значения параметра", - "apply":"применить", - "Username":"Имя пользователя", - "Password":"Пароль", - "Terms of service":"Условия использования", - "Created by":"Разработано", - "See more at":"Еще тут", - "Contact the developer":"Связаться с разработчиком", - "api version":"Версия API", - "Response Content Type":"Content Type ответа", - "Parameter content type:":"Content Type параметра:", - "fetching resource":"Получение ресурса", - "fetching resource list":"Получение ресурсов", - "Explore":"Показать", - "Show Swagger Petstore Example Apis":"Показать примеры АПИ", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Не удается получить ответ от сервера. Возможно, проблема с настройками доступа", - "Please specify the protocol for":"Пожалуйста, укажите протокол для", - "Can't read swagger JSON from":"Не получается прочитать swagger json из", - "Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ресурсах завершена. Рендерим", - "Unable to read api":"Не удалось прочитать api", - "from path":"по адресу", - "server returned":"сервер сказал" -}); diff --git a/dist/lang/tr.js b/dist/lang/tr.js deleted file mode 100644 index 16426a9c34b..00000000000 --- a/dist/lang/tr.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Uyarı: Deprecated", - "Implementation Notes":"Gerçekleştirim Notları", - "Response Class":"Dönen Sınıf", - "Status":"Statü", - "Parameters":"Parametreler", - "Parameter":"Parametre", - "Value":"Değer", - "Description":"Açıklama", - "Parameter Type":"Parametre Tipi", - "Data Type":"Veri Tipi", - "Response Messages":"Dönüş Mesajı", - "HTTP Status Code":"HTTP Statü Kodu", - "Reason":"Gerekçe", - "Response Model":"Dönüş Modeli", - "Request URL":"İstek URL", - "Response Body":"Dönüş İçeriği", - "Response Code":"Dönüş Kodu", - "Response Headers":"Dönüş Üst Bilgileri", - "Hide Response":"Dönüşü Gizle", - "Headers":"Üst Bilgiler", - "Try it out!":"Dene!", - "Show/Hide":"Göster/Gizle", - "List Operations":"Operasyonları Listele", - "Expand Operations":"Operasyonları Aç", - "Raw":"Ham", - "can't parse JSON. Raw result":"JSON çözümlenemiyor. Ham sonuç", - "Model Schema":"Model Şema", - "Model":"Model", - "apply":"uygula", - "Username":"Kullanıcı Adı", - "Password":"Parola", - "Terms of service":"Servis şartları", - "Created by":"Oluşturan", - "See more at":"Daha fazlası için", - "Contact the developer":"Geliştirici ile İletişime Geçin", - "api version":"api versiyon", - "Response Content Type":"Dönüş İçerik Tipi", - "fetching resource":"kaynak getiriliyor", - "fetching resource list":"kaynak listesi getiriliyor", - "Explore":"Keşfet", - "Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.", - "Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz", - "Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor", - "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor", - "Unable to read api":"api okunamadı", - "from path":"yoldan", - "server returned":"sunucuya dönüldü" -}); diff --git a/dist/lang/translator.js b/dist/lang/translator.js deleted file mode 100644 index ffb879f9a27..00000000000 --- a/dist/lang/translator.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -/** - * Translator for documentation pages. - * - * To enable translation you should include one of language-files in your index.html - * after . - * For example - - * - * If you wish to translate some new texts you should do two things: - * 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too. - * 2. Mark that text it templates this way New Phrase or . - * The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate. - * - */ -window.SwaggerTranslator = { - - _words:[], - - translate: function(sel) { - var $this = this; - sel = sel || '[data-sw-translate]'; - - $(sel).each(function() { - $(this).html($this._tryTranslate($(this).html())); - - $(this).val($this._tryTranslate($(this).val())); - $(this).attr('title', $this._tryTranslate($(this).attr('title'))); - }); - }, - - _tryTranslate: function(word) { - return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word; - }, - - learn: function(wordsMap) { - this._words = wordsMap; - } -}; diff --git a/dist/lang/zh-cn.js b/dist/lang/zh-cn.js deleted file mode 100644 index 570319ba156..00000000000 --- a/dist/lang/zh-cn.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"警告:已过时", - "Implementation Notes":"实现备注", - "Response Class":"响应类", - "Status":"状态", - "Parameters":"参数", - "Parameter":"参数", - "Value":"值", - "Description":"描述", - "Parameter Type":"参数类型", - "Data Type":"数据类型", - "Response Messages":"响应消息", - "HTTP Status Code":"HTTP状态码", - "Reason":"原因", - "Response Model":"响应模型", - "Request URL":"请求URL", - "Response Body":"响应体", - "Response Code":"响应码", - "Response Headers":"响应头", - "Hide Response":"隐藏响应", - "Headers":"头", - "Try it out!":"试一下!", - "Show/Hide":"显示/隐藏", - "List Operations":"显示操作", - "Expand Operations":"展开操作", - "Raw":"原始", - "can't parse JSON. Raw result":"无法解析JSON. 原始结果", - "Model Schema":"模型架构", - "Model":"模型", - "apply":"应用", - "Username":"用户名", - "Password":"密码", - "Terms of service":"服务条款", - "Created by":"创建者", - "See more at":"查看更多:", - "Contact the developer":"联系开发者", - "api version":"api版本", - "Response Content Type":"响应Content Type", - "fetching resource":"正在获取资源", - "fetching resource list":"正在获取资源列表", - "Explore":"浏览", - "Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"无法从服务器读取。可能没有正确设置access-control-origin。", - "Please specify the protocol for":"请指定协议:", - "Can't read swagger JSON from":"无法读取swagger JSON于", - "Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI", - "Unable to read api":"无法读取api", - "from path":"从路径", - "server returned":"服务器返回" -}); diff --git a/dist/lib/backbone-min.js b/dist/lib/backbone-min.js deleted file mode 100644 index a3f544be6d9..00000000000 --- a/dist/lib/backbone-min.js +++ /dev/null @@ -1,15 +0,0 @@ -// Backbone.js 1.1.2 - -(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('\n * \n *\n * */\n /*\n\n IMAGES\n Docs: http://tachyons.io/docs/elements/images/\n\n*/\n /* Responsive images! */\n /*\n\n BACKGROUND SIZE\n Docs: http://tachyons.io/docs/themes/background-size/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n Often used in combination with background image set as an inline style\n on an html element.\n*/\n /*\n\n BACKGROUND POSITION\n\n Base:\n bg = background\n\n Modifiers:\n -center = center center\n -top = top center\n -right = center right\n -bottom = bottom center\n -left = center left\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n /*\n\n OUTLINES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n BORDERS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n b = border\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n BORDER COLORS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Border colors can be used to extend the base\n border classes ba,bt,bb,br,bl found in the _borders.css file.\n\n The base border class by default will set the color of the border\n to that of the current text color. These classes are for the cases\n where you desire for the text and border colors to be different.\n\n Base:\n b = border\n\n Modifiers:\n --color-name = each color variable name is also a border color name\n\n*/\n /*\n\n BORDER RADIUS\n Docs: http://tachyons.io/docs/themes/border-radius/\n\n Base:\n br = border-radius\n\n Modifiers:\n 0 = 0/none\n 1 = 1st step in scale\n 2 = 2nd step in scale\n 3 = 3rd step in scale\n 4 = 4th step in scale\n\n Literal values:\n -100 = 100%\n -pill = 9999px\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n BORDER STYLES\n Docs: http://tachyons.io/docs/themes/borders/\n\n Depends on base border module in _borders.css\n\n Base:\n b = border-style\n\n Modifiers:\n --none = none\n --dotted = dotted\n --dashed = dashed\n --solid = solid\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n /*\n\n BORDER WIDTHS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n bw = border-width\n\n Modifiers:\n 0 = 0 width border\n 1 = 1st step in border-width scale\n 2 = 2nd step in border-width scale\n 3 = 3rd step in border-width scale\n 4 = 4th step in border-width scale\n 5 = 5th step in border-width scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /* Resets */\n /*\n\n BOX-SHADOW\n Docs: http://tachyons.io/docs/themes/box-shadow/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n /*\n\n CODE\n\n*/\n /*\n\n COORDINATES\n Docs: http://tachyons.io/docs/layout/position/\n\n Use in combination with the position module.\n\n Base:\n top\n bottom\n right\n left\n\n Modifiers:\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n --1 = literal value -1\n --2 = literal value -2\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n CLEARFIX\n http://tachyons.io/docs/layout/clearfix/\n\n*/\n /* Nicolas Gallaghers Clearfix solution\n Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */\n /*\n\n FLEXBOX\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /* 1. Fix for Chrome 44 bug.\n * https://code.google.com/p/chromium/issues/detail?id=506893 */\n /*\n\n DISPLAY\n Docs: http://tachyons.io/docs/layout/display\n\n Base:\n d = display\n\n Modifiers:\n n = none\n b = block\n ib = inline-block\n it = inline-table\n t = table\n tc = table-cell\n tr = table-row\n tcol = table-column\n tcolg = table-column-group\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n This will set table to full width and then\n all cells will be equal width\n*/\n /*\n\n FLOATS\n http://tachyons.io/docs/layout/floats/\n\n 1. Floated elements are automatically rendered as block level elements.\n Setting floats to display inline will fix the double margin bug in\n ie6. You know... just in case.\n\n 2. Don't forget to clearfix your floats with .cf\n\n Base:\n f = float\n\n Modifiers:\n l = left\n r = right\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n FONT FAMILY GROUPS\n Docs: http://tachyons.io/docs/typography/font-family/\n\n*/\n /* Monospaced Typefaces (for code) */\n /* From http://cssfontstack.com */\n /* Sans-Serif Typefaces */\n /* Serif Typefaces */\n /*\n\n FONT STYLE\n Docs: http://tachyons.io/docs/typography/font-style/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n FONT WEIGHT\n Docs: http://tachyons.io/docs/typography/font-weight/\n\n Base\n fw = font-weight\n\n Modifiers:\n 1 = literal value 100\n 2 = literal value 200\n 3 = literal value 300\n 4 = literal value 400\n 5 = literal value 500\n 6 = literal value 600\n 7 = literal value 700\n 8 = literal value 800\n 9 = literal value 900\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n FORMS\n \n*/\n /*\n\n HEIGHTS\n Docs: http://tachyons.io/docs/layout/heights/\n\n Base:\n h = height\n min-h = min-height\n min-vh = min-height vertical screen height\n vh = vertical screen height\n\n Modifiers\n 1 = 1st step in height scale\n 2 = 2nd step in height scale\n 3 = 3rd step in height scale\n 4 = 4th step in height scale\n 5 = 5th step in height scale\n\n -25 = literal value 25%\n -50 = literal value 50%\n -75 = literal value 75%\n -100 = literal value 100%\n\n -auto = string value of auto\n -inherit = string value of inherit\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /* Height Scale */\n /* Height Percentages - Based off of height of parent */\n /* Screen Height Percentage */\n /* String Properties */\n /*\n\n LETTER SPACING\n Docs: http://tachyons.io/docs/typography/tracking/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n LINE HEIGHT / LEADING\n Docs: http://tachyons.io/docs/typography/line-height\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n LINKS\n Docs: http://tachyons.io/docs/elements/links/\n\n*/\n /*\n\n LISTS\n http://tachyons.io/docs/elements/lists/\n\n*/\n /*\n\n MAX WIDTHS\n Docs: http://tachyons.io/docs/layout/max-widths/\n\n Base:\n mw = max-width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n 6 = 6st step in width scale\n 7 = 7nd step in width scale\n 8 = 8rd step in width scale\n 9 = 9th step in width scale\n\n -100 = literal value 100%\n\n -none = string value none\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /* Max Width Percentages */\n /* Max Width Scale */\n /* Max Width String Properties */\n /*\n\n WIDTHS\n Docs: http://tachyons.io/docs/layout/widths/\n\n Base:\n w = width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n\n -10 = literal value 10%\n -20 = literal value 20%\n -25 = literal value 25%\n -30 = literal value 30%\n -33 = literal value 33%\n -34 = literal value 34%\n -40 = literal value 40%\n -50 = literal value 50%\n -60 = literal value 60%\n -70 = literal value 70%\n -75 = literal value 75%\n -80 = literal value 80%\n -90 = literal value 90%\n -100 = literal value 100%\n\n -third = 100% / 3 (Not supported in opera mini or IE8)\n -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)\n -auto = string value auto\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n /* Width Scale */\n /*\n\n OVERFLOW\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n /*\n\n POSITIONING\n Docs: http://tachyons.io/docs/layout/position/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n OPACITY\n Docs: http://tachyons.io/docs/themes/opacity/\n\n*/\n /*\n\n ROTATIONS\n\n*/\n /*\n\n SKINS\n Docs: http://tachyons.io/docs/themes/skins/\n\n Classes for setting foreground and background colors on elements.\n If you haven't declared a border color, but set border on an element, it will\n be set to the current text color.\n\n*/\n /* Text colors */\n /* Background colors */\n /*\n\n SKINS:PSEUDO\n\n Customize the color of an element when\n it is focused or hovered over.\n\n */\n /* Variables */\n /*\n SPACING\n Docs: http://tachyons.io/docs/layout/spacing/\n\n An eight step powers of two scale ranging from 0 to 16rem.\n\n Base:\n p = padding\n m = margin\n\n Modifiers:\n a = all\n h = horizontal\n v = vertical\n t = top\n r = right\n b = bottom\n l = left\n\n 0 = none\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n NEGATIVE MARGINS\n\n Base:\n n = negative\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n TABLES\n Docs: http://tachyons.io/docs/elements/tables/\n\n*/\n /*\n\n TEXT DECORATION\n Docs: http://tachyons.io/docs/typography/text-decoration/\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n TEXT ALIGN\n Docs: http://tachyons.io/docs/typography/text-align/\n\n Base\n t = text-align\n\n Modifiers\n l = left\n r = right\n c = center\n j = justify\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n TEXT TRANSFORM\n Docs: http://tachyons.io/docs/typography/text-transform/\n\n Base:\n tt = text-transform\n\n Modifiers\n c = capitalize\n l = lowercase\n u = uppercase\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n TYPE SCALE\n Docs: http://tachyons.io/docs/typography/scale/\n\n Base:\n f = font-size\n\n Modifiers\n 1 = 1st step in size scale\n 2 = 2nd step in size scale\n 3 = 3rd step in size scale\n 4 = 4th step in size scale\n 5 = 5th step in size scale\n 6 = 6th step in size scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n*/\n /*\n * For Hero/Marketing Titles\n *\n * These generally are too large for mobile\n * so be careful using them on smaller screens.\n * */\n /* Type Scale */\n /*\n\n TYPOGRAPHY\n http://tachyons.io/docs/typography/measure/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /* Measure is limited to ~66 characters */\n /* Measure is limited to ~80 characters */\n /* Measure is limited to ~45 characters */\n /* Book paragraph style - paragraphs are indented with no vertical spacing. */\n /* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */\n /*\n\n UTILITIES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /* Equivalent to .overflow-y-scroll */\n /*\n\n VISIBILITY\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n Text that is hidden but accessible\n Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n*/\n /*\n\n WHITE SPACE\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n VERTICAL ALIGN\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n /*\n\n HOVER EFFECTS\n Docs: http://tachyons.io/docs/themes/hovers/\n\n - Dim\n - Glow\n - Hide Child\n - Underline text\n - Grow\n - Pointer\n - Shadow\n\n*/\n /*\n\n Dim element on hover by adding the dim class.\n\n*/\n /*\n\n Animate opacity to 100% on hover by adding the glow class.\n\n*/\n /*\n\n Hide child & reveal on hover:\n\n Put the hide-child class on a parent element and any nested element with the\n child class will be hidden and displayed on hover or focus.\n\n
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
\n*/\n /* Can combine this with overflow-hidden to make background images grow on hover\n * even if you are using background-size: cover */\n /* Add pointer on hover */\n /*\n Add shadow on hover.\n\n Performant box-shadow animation pattern from\n http://tobiasahlin.com/blog/how-to-animate-box-shadow/\n*/\n /* Combine with classes in skins and skins-pseudo for\n * many different transition possibilities. */\n /*\n\n Z-INDEX\n\n Base\n z = z-index\n\n Modifiers\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n -3 = literal value 3\n -4 = literal value 4\n -5 = literal value 5\n -999 = literal value 999\n -9999 = literal value 9999\n\n -max = largest accepted z-index value as integer\n\n -inherit = string value inherit\n -initial = string value initial\n -unset = string value unset\n\n MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index\n Spec: http://www.w3.org/TR/CSS2/zindex.html\n Articles:\n https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n Tips on extending:\n There might be a time worth using negative z-index values.\n Or if you are using tachyons with another project, you might need to\n adjust these values to suit your needs.\n\n*/\n /*\n\n NESTED\n Tachyons module for styling nested elements\n that are generated by a cms.\n\n*/\n /*\n\n STYLES\n\n Add custom styles here.\n\n*/\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui html {\n line-height: 1.15;\n /* 1 */\n -ms-text-size-adjust: 100%;\n /* 2 */\n -webkit-text-size-adjust: 100%;\n /* 2 */\n}\n\n.swagger-ui body {\n margin: 0;\n}\n\n.swagger-ui article,\n.swagger-ui aside,\n.swagger-ui footer,\n.swagger-ui header,\n.swagger-ui nav,\n.swagger-ui section {\n display: block;\n}\n\n.swagger-ui h1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n.swagger-ui figcaption,\n.swagger-ui figure,\n.swagger-ui main {\n /* 1 */\n display: block;\n}\n\n.swagger-ui figure {\n margin: 1em 40px;\n}\n\n.swagger-ui hr {\n box-sizing: content-box;\n /* 1 */\n height: 0;\n /* 1 */\n overflow: visible;\n /* 2 */\n}\n\n.swagger-ui pre {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */\n}\n\n.swagger-ui a {\n background-color: transparent;\n /* 1 */\n -webkit-text-decoration-skip: objects;\n /* 2 */\n}\n\n.swagger-ui abbr[title] {\n border-bottom: none;\n /* 1 */\n text-decoration: underline;\n /* 2 */\n text-decoration: underline dotted;\n /* 2 */\n}\n\n.swagger-ui b,\n.swagger-ui strong {\n font-weight: inherit;\n}\n\n.swagger-ui b,\n.swagger-ui strong {\n font-weight: bolder;\n}\n\n.swagger-ui code,\n.swagger-ui kbd,\n.swagger-ui samp {\n font-family: monospace, monospace;\n /* 1 */\n font-size: 1em;\n /* 2 */\n}\n\n.swagger-ui dfn {\n font-style: italic;\n}\n\n.swagger-ui mark {\n background-color: #ff0;\n color: #000;\n}\n\n.swagger-ui small {\n font-size: 80%;\n}\n\n.swagger-ui sub,\n.swagger-ui sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\n.swagger-ui sub {\n bottom: -0.25em;\n}\n\n.swagger-ui sup {\n top: -0.5em;\n}\n\n.swagger-ui audio,\n.swagger-ui video {\n display: inline-block;\n}\n\n.swagger-ui audio:not([controls]) {\n display: none;\n height: 0;\n}\n\n.swagger-ui img {\n border-style: none;\n}\n\n.swagger-ui svg:not(:root) {\n overflow: hidden;\n}\n\n.swagger-ui button,\n.swagger-ui input,\n.swagger-ui optgroup,\n.swagger-ui select,\n.swagger-ui textarea {\n font-family: sans-serif;\n /* 1 */\n font-size: 100%;\n /* 1 */\n line-height: 1.15;\n /* 1 */\n margin: 0;\n /* 2 */\n}\n\n.swagger-ui button,\n.swagger-ui input {\n /* 1 */\n overflow: visible;\n}\n\n.swagger-ui button,\n.swagger-ui select {\n /* 1 */\n text-transform: none;\n}\n\n.swagger-ui button,\n.swagger-ui html [type=\"button\"],\n.swagger-ui [type=\"reset\"],\n.swagger-ui [type=\"submit\"] {\n -webkit-appearance: button;\n /* 2 */\n}\n\n.swagger-ui button::-moz-focus-inner,\n.swagger-ui [type=\"button\"]::-moz-focus-inner,\n.swagger-ui [type=\"reset\"]::-moz-focus-inner,\n.swagger-ui [type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n.swagger-ui button:-moz-focusring,\n.swagger-ui [type=\"button\"]:-moz-focusring,\n.swagger-ui [type=\"reset\"]:-moz-focusring,\n.swagger-ui [type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n.swagger-ui fieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n.swagger-ui legend {\n box-sizing: border-box;\n /* 1 */\n color: inherit;\n /* 2 */\n display: table;\n /* 1 */\n max-width: 100%;\n /* 1 */\n padding: 0;\n /* 3 */\n white-space: normal;\n /* 1 */\n}\n\n.swagger-ui progress {\n display: inline-block;\n /* 1 */\n vertical-align: baseline;\n /* 2 */\n}\n\n.swagger-ui textarea {\n overflow: auto;\n}\n\n.swagger-ui [type=\"checkbox\"],\n.swagger-ui [type=\"radio\"] {\n box-sizing: border-box;\n /* 1 */\n padding: 0;\n /* 2 */\n}\n\n.swagger-ui [type=\"number\"]::-webkit-inner-spin-button,\n.swagger-ui [type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n.swagger-ui [type=\"search\"] {\n -webkit-appearance: textfield;\n /* 1 */\n outline-offset: -2px;\n /* 2 */\n}\n\n.swagger-ui [type=\"search\"]::-webkit-search-cancel-button,\n.swagger-ui [type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n.swagger-ui ::-webkit-file-upload-button {\n -webkit-appearance: button;\n /* 1 */\n font: inherit;\n /* 2 */\n}\n\n.swagger-ui details,\n.swagger-ui menu {\n display: block;\n}\n\n.swagger-ui summary {\n display: list-item;\n}\n\n.swagger-ui canvas {\n display: inline-block;\n}\n\n.swagger-ui template {\n display: none;\n}\n\n.swagger-ui [hidden] {\n display: none;\n}\n\n.swagger-ui .debug * {\n outline: 1px solid gold;\n}\n\n.swagger-ui .debug-white * {\n outline: 1px solid white;\n}\n\n.swagger-ui .debug-black * {\n outline: 1px solid black;\n}\n\n.swagger-ui .debug-grid {\n background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat top left;\n}\n\n.swagger-ui .debug-grid-16 {\n background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat top left;\n}\n\n.swagger-ui .debug-grid-8-solid {\n background: white url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat top left;\n}\n\n.swagger-ui .debug-grid-16-solid {\n background: white url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat top left;\n}\n\n.swagger-ui html,\n.swagger-ui body,\n.swagger-ui div,\n.swagger-ui article,\n.swagger-ui section,\n.swagger-ui main,\n.swagger-ui footer,\n.swagger-ui header,\n.swagger-ui form,\n.swagger-ui fieldset,\n.swagger-ui legend,\n.swagger-ui pre,\n.swagger-ui code,\n.swagger-ui a,\n.swagger-ui h1, .swagger-ui h2, .swagger-ui h3, .swagger-ui h4, .swagger-ui h5, .swagger-ui h6,\n.swagger-ui p,\n.swagger-ui ul,\n.swagger-ui ol,\n.swagger-ui li,\n.swagger-ui dl,\n.swagger-ui dt,\n.swagger-ui dd,\n.swagger-ui textarea,\n.swagger-ui table,\n.swagger-ui td,\n.swagger-ui th,\n.swagger-ui tr,\n.swagger-ui input[type=\"email\"],\n.swagger-ui input[type=\"number\"],\n.swagger-ui input[type=\"password\"],\n.swagger-ui input[type=\"tel\"],\n.swagger-ui input[type=\"text\"],\n.swagger-ui input[type=\"url\"],\n.swagger-ui .border-box {\n box-sizing: border-box;\n}\n\n.swagger-ui .aspect-ratio {\n height: 0;\n position: relative;\n}\n\n.swagger-ui .aspect-ratio--16x9 {\n padding-bottom: 56.25%;\n}\n\n.swagger-ui .aspect-ratio--9x16 {\n padding-bottom: 177.77%;\n}\n\n.swagger-ui .aspect-ratio--4x3 {\n padding-bottom: 75%;\n}\n\n.swagger-ui .aspect-ratio--3x4 {\n padding-bottom: 133.33%;\n}\n\n.swagger-ui .aspect-ratio--6x4 {\n padding-bottom: 66.6%;\n}\n\n.swagger-ui .aspect-ratio--4x6 {\n padding-bottom: 150%;\n}\n\n.swagger-ui .aspect-ratio--8x5 {\n padding-bottom: 62.5%;\n}\n\n.swagger-ui .aspect-ratio--5x8 {\n padding-bottom: 160%;\n}\n\n.swagger-ui .aspect-ratio--7x5 {\n padding-bottom: 71.42%;\n}\n\n.swagger-ui .aspect-ratio--5x7 {\n padding-bottom: 140%;\n}\n\n.swagger-ui .aspect-ratio--1x1 {\n padding-bottom: 100%;\n}\n\n.swagger-ui .aspect-ratio--object {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .aspect-ratio-ns {\n height: 0;\n position: relative;\n }\n .swagger-ui .aspect-ratio--16x9-ns {\n padding-bottom: 56.25%;\n }\n .swagger-ui .aspect-ratio--9x16-ns {\n padding-bottom: 177.77%;\n }\n .swagger-ui .aspect-ratio--4x3-ns {\n padding-bottom: 75%;\n }\n .swagger-ui .aspect-ratio--3x4-ns {\n padding-bottom: 133.33%;\n }\n .swagger-ui .aspect-ratio--6x4-ns {\n padding-bottom: 66.6%;\n }\n .swagger-ui .aspect-ratio--4x6-ns {\n padding-bottom: 150%;\n }\n .swagger-ui .aspect-ratio--8x5-ns {\n padding-bottom: 62.5%;\n }\n .swagger-ui .aspect-ratio--5x8-ns {\n padding-bottom: 160%;\n }\n .swagger-ui .aspect-ratio--7x5-ns {\n padding-bottom: 71.42%;\n }\n .swagger-ui .aspect-ratio--5x7-ns {\n padding-bottom: 140%;\n }\n .swagger-ui .aspect-ratio--1x1-ns {\n padding-bottom: 100%;\n }\n .swagger-ui .aspect-ratio--object-ns {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .aspect-ratio-m {\n height: 0;\n position: relative;\n }\n .swagger-ui .aspect-ratio--16x9-m {\n padding-bottom: 56.25%;\n }\n .swagger-ui .aspect-ratio--9x16-m {\n padding-bottom: 177.77%;\n }\n .swagger-ui .aspect-ratio--4x3-m {\n padding-bottom: 75%;\n }\n .swagger-ui .aspect-ratio--3x4-m {\n padding-bottom: 133.33%;\n }\n .swagger-ui .aspect-ratio--6x4-m {\n padding-bottom: 66.6%;\n }\n .swagger-ui .aspect-ratio--4x6-m {\n padding-bottom: 150%;\n }\n .swagger-ui .aspect-ratio--8x5-m {\n padding-bottom: 62.5%;\n }\n .swagger-ui .aspect-ratio--5x8-m {\n padding-bottom: 160%;\n }\n .swagger-ui .aspect-ratio--7x5-m {\n padding-bottom: 71.42%;\n }\n .swagger-ui .aspect-ratio--5x7-m {\n padding-bottom: 140%;\n }\n .swagger-ui .aspect-ratio--1x1-m {\n padding-bottom: 100%;\n }\n .swagger-ui .aspect-ratio--object-m {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .aspect-ratio-l {\n height: 0;\n position: relative;\n }\n .swagger-ui .aspect-ratio--16x9-l {\n padding-bottom: 56.25%;\n }\n .swagger-ui .aspect-ratio--9x16-l {\n padding-bottom: 177.77%;\n }\n .swagger-ui .aspect-ratio--4x3-l {\n padding-bottom: 75%;\n }\n .swagger-ui .aspect-ratio--3x4-l {\n padding-bottom: 133.33%;\n }\n .swagger-ui .aspect-ratio--6x4-l {\n padding-bottom: 66.6%;\n }\n .swagger-ui .aspect-ratio--4x6-l {\n padding-bottom: 150%;\n }\n .swagger-ui .aspect-ratio--8x5-l {\n padding-bottom: 62.5%;\n }\n .swagger-ui .aspect-ratio--5x8-l {\n padding-bottom: 160%;\n }\n .swagger-ui .aspect-ratio--7x5-l {\n padding-bottom: 71.42%;\n }\n .swagger-ui .aspect-ratio--5x7-l {\n padding-bottom: 140%;\n }\n .swagger-ui .aspect-ratio--1x1-l {\n padding-bottom: 100%;\n }\n .swagger-ui .aspect-ratio--object-l {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n.swagger-ui img {\n max-width: 100%;\n}\n\n.swagger-ui .cover {\n background-size: cover !important;\n}\n\n.swagger-ui .contain {\n background-size: contain !important;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .cover-ns {\n background-size: cover !important;\n }\n .swagger-ui .contain-ns {\n background-size: contain !important;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .cover-m {\n background-size: cover !important;\n }\n .swagger-ui .contain-m {\n background-size: contain !important;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .cover-l {\n background-size: cover !important;\n }\n .swagger-ui .contain-l {\n background-size: contain !important;\n }\n}\n\n.swagger-ui .bg-center {\n background-repeat: no-repeat;\n background-position: center center;\n}\n\n.swagger-ui .bg-top {\n background-repeat: no-repeat;\n background-position: top center;\n}\n\n.swagger-ui .bg-right {\n background-repeat: no-repeat;\n background-position: center right;\n}\n\n.swagger-ui .bg-bottom {\n background-repeat: no-repeat;\n background-position: bottom center;\n}\n\n.swagger-ui .bg-left {\n background-repeat: no-repeat;\n background-position: center left;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .bg-center-ns {\n background-repeat: no-repeat;\n background-position: center center;\n }\n .swagger-ui .bg-top-ns {\n background-repeat: no-repeat;\n background-position: top center;\n }\n .swagger-ui .bg-right-ns {\n background-repeat: no-repeat;\n background-position: center right;\n }\n .swagger-ui .bg-bottom-ns {\n background-repeat: no-repeat;\n background-position: bottom center;\n }\n .swagger-ui .bg-left-ns {\n background-repeat: no-repeat;\n background-position: center left;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .bg-center-m {\n background-repeat: no-repeat;\n background-position: center center;\n }\n .swagger-ui .bg-top-m {\n background-repeat: no-repeat;\n background-position: top center;\n }\n .swagger-ui .bg-right-m {\n background-repeat: no-repeat;\n background-position: center right;\n }\n .swagger-ui .bg-bottom-m {\n background-repeat: no-repeat;\n background-position: bottom center;\n }\n .swagger-ui .bg-left-m {\n background-repeat: no-repeat;\n background-position: center left;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .bg-center-l {\n background-repeat: no-repeat;\n background-position: center center;\n }\n .swagger-ui .bg-top-l {\n background-repeat: no-repeat;\n background-position: top center;\n }\n .swagger-ui .bg-right-l {\n background-repeat: no-repeat;\n background-position: center right;\n }\n .swagger-ui .bg-bottom-l {\n background-repeat: no-repeat;\n background-position: bottom center;\n }\n .swagger-ui .bg-left-l {\n background-repeat: no-repeat;\n background-position: center left;\n }\n}\n\n.swagger-ui .outline {\n outline: 1px solid;\n}\n\n.swagger-ui .outline-transparent {\n outline: 1px solid transparent;\n}\n\n.swagger-ui .outline-0 {\n outline: 0;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .outline-ns {\n outline: 1px solid;\n }\n .swagger-ui .outline-transparent-ns {\n outline: 1px solid transparent;\n }\n .swagger-ui .outline-0-ns {\n outline: 0;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .outline-m {\n outline: 1px solid;\n }\n .swagger-ui .outline-transparent-m {\n outline: 1px solid transparent;\n }\n .swagger-ui .outline-0-m {\n outline: 0;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .outline-l {\n outline: 1px solid;\n }\n .swagger-ui .outline-transparent-l {\n outline: 1px solid transparent;\n }\n .swagger-ui .outline-0-l {\n outline: 0;\n }\n}\n\n.swagger-ui .ba {\n border-style: solid;\n border-width: 1px;\n}\n\n.swagger-ui .bt {\n border-top-style: solid;\n border-top-width: 1px;\n}\n\n.swagger-ui .br {\n border-right-style: solid;\n border-right-width: 1px;\n}\n\n.swagger-ui .bb {\n border-bottom-style: solid;\n border-bottom-width: 1px;\n}\n\n.swagger-ui .bl {\n border-left-style: solid;\n border-left-width: 1px;\n}\n\n.swagger-ui .bn {\n border-style: none;\n border-width: 0;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .ba-ns {\n border-style: solid;\n border-width: 1px;\n }\n .swagger-ui .bt-ns {\n border-top-style: solid;\n border-top-width: 1px;\n }\n .swagger-ui .br-ns {\n border-right-style: solid;\n border-right-width: 1px;\n }\n .swagger-ui .bb-ns {\n border-bottom-style: solid;\n border-bottom-width: 1px;\n }\n .swagger-ui .bl-ns {\n border-left-style: solid;\n border-left-width: 1px;\n }\n .swagger-ui .bn-ns {\n border-style: none;\n border-width: 0;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .ba-m {\n border-style: solid;\n border-width: 1px;\n }\n .swagger-ui .bt-m {\n border-top-style: solid;\n border-top-width: 1px;\n }\n .swagger-ui .br-m {\n border-right-style: solid;\n border-right-width: 1px;\n }\n .swagger-ui .bb-m {\n border-bottom-style: solid;\n border-bottom-width: 1px;\n }\n .swagger-ui .bl-m {\n border-left-style: solid;\n border-left-width: 1px;\n }\n .swagger-ui .bn-m {\n border-style: none;\n border-width: 0;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .ba-l {\n border-style: solid;\n border-width: 1px;\n }\n .swagger-ui .bt-l {\n border-top-style: solid;\n border-top-width: 1px;\n }\n .swagger-ui .br-l {\n border-right-style: solid;\n border-right-width: 1px;\n }\n .swagger-ui .bb-l {\n border-bottom-style: solid;\n border-bottom-width: 1px;\n }\n .swagger-ui .bl-l {\n border-left-style: solid;\n border-left-width: 1px;\n }\n .swagger-ui .bn-l {\n border-style: none;\n border-width: 0;\n }\n}\n\n.swagger-ui .b--black {\n border-color: #000;\n}\n\n.swagger-ui .b--near-black {\n border-color: #111;\n}\n\n.swagger-ui .b--dark-gray {\n border-color: #333;\n}\n\n.swagger-ui .b--mid-gray {\n border-color: #555;\n}\n\n.swagger-ui .b--gray {\n border-color: #777;\n}\n\n.swagger-ui .b--silver {\n border-color: #999;\n}\n\n.swagger-ui .b--light-silver {\n border-color: #aaa;\n}\n\n.swagger-ui .b--moon-gray {\n border-color: #ccc;\n}\n\n.swagger-ui .b--light-gray {\n border-color: #eee;\n}\n\n.swagger-ui .b--near-white {\n border-color: #f4f4f4;\n}\n\n.swagger-ui .b--white {\n border-color: #fff;\n}\n\n.swagger-ui .b--white-90 {\n border-color: rgba(255, 255, 255, 0.9);\n}\n\n.swagger-ui .b--white-80 {\n border-color: rgba(255, 255, 255, 0.8);\n}\n\n.swagger-ui .b--white-70 {\n border-color: rgba(255, 255, 255, 0.7);\n}\n\n.swagger-ui .b--white-60 {\n border-color: rgba(255, 255, 255, 0.6);\n}\n\n.swagger-ui .b--white-50 {\n border-color: rgba(255, 255, 255, 0.5);\n}\n\n.swagger-ui .b--white-40 {\n border-color: rgba(255, 255, 255, 0.4);\n}\n\n.swagger-ui .b--white-30 {\n border-color: rgba(255, 255, 255, 0.3);\n}\n\n.swagger-ui .b--white-20 {\n border-color: rgba(255, 255, 255, 0.2);\n}\n\n.swagger-ui .b--white-10 {\n border-color: rgba(255, 255, 255, 0.1);\n}\n\n.swagger-ui .b--white-05 {\n border-color: rgba(255, 255, 255, 0.05);\n}\n\n.swagger-ui .b--white-025 {\n border-color: rgba(255, 255, 255, 0.025);\n}\n\n.swagger-ui .b--white-0125 {\n border-color: rgba(255, 255, 255, 0.0125);\n}\n\n.swagger-ui .b--black-90 {\n border-color: rgba(0, 0, 0, 0.9);\n}\n\n.swagger-ui .b--black-80 {\n border-color: rgba(0, 0, 0, 0.8);\n}\n\n.swagger-ui .b--black-70 {\n border-color: rgba(0, 0, 0, 0.7);\n}\n\n.swagger-ui .b--black-60 {\n border-color: rgba(0, 0, 0, 0.6);\n}\n\n.swagger-ui .b--black-50 {\n border-color: rgba(0, 0, 0, 0.5);\n}\n\n.swagger-ui .b--black-40 {\n border-color: rgba(0, 0, 0, 0.4);\n}\n\n.swagger-ui .b--black-30 {\n border-color: rgba(0, 0, 0, 0.3);\n}\n\n.swagger-ui .b--black-20 {\n border-color: rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .b--black-10 {\n border-color: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .b--black-05 {\n border-color: rgba(0, 0, 0, 0.05);\n}\n\n.swagger-ui .b--black-025 {\n border-color: rgba(0, 0, 0, 0.025);\n}\n\n.swagger-ui .b--black-0125 {\n border-color: rgba(0, 0, 0, 0.0125);\n}\n\n.swagger-ui .b--dark-red {\n border-color: #e7040f;\n}\n\n.swagger-ui .b--red {\n border-color: #ff4136;\n}\n\n.swagger-ui .b--light-red {\n border-color: #ff725c;\n}\n\n.swagger-ui .b--orange {\n border-color: #ff6300;\n}\n\n.swagger-ui .b--gold {\n border-color: #ffb700;\n}\n\n.swagger-ui .b--yellow {\n border-color: #ffd700;\n}\n\n.swagger-ui .b--light-yellow {\n border-color: #fbf1a9;\n}\n\n.swagger-ui .b--purple {\n border-color: #5e2ca5;\n}\n\n.swagger-ui .b--light-purple {\n border-color: #a463f2;\n}\n\n.swagger-ui .b--dark-pink {\n border-color: #d5008f;\n}\n\n.swagger-ui .b--hot-pink {\n border-color: #ff41b4;\n}\n\n.swagger-ui .b--pink {\n border-color: #ff80cc;\n}\n\n.swagger-ui .b--light-pink {\n border-color: #ffa3d7;\n}\n\n.swagger-ui .b--dark-green {\n border-color: #137752;\n}\n\n.swagger-ui .b--green {\n border-color: #19a974;\n}\n\n.swagger-ui .b--light-green {\n border-color: #9eebcf;\n}\n\n.swagger-ui .b--navy {\n border-color: #001b44;\n}\n\n.swagger-ui .b--dark-blue {\n border-color: #00449e;\n}\n\n.swagger-ui .b--blue {\n border-color: #357edd;\n}\n\n.swagger-ui .b--light-blue {\n border-color: #96ccff;\n}\n\n.swagger-ui .b--lightest-blue {\n border-color: #cdecff;\n}\n\n.swagger-ui .b--washed-blue {\n border-color: #f6fffe;\n}\n\n.swagger-ui .b--washed-green {\n border-color: #e8fdf5;\n}\n\n.swagger-ui .b--washed-yellow {\n border-color: #fffceb;\n}\n\n.swagger-ui .b--washed-red {\n border-color: #ffdfdf;\n}\n\n.swagger-ui .b--transparent {\n border-color: transparent;\n}\n\n.swagger-ui .b--inherit {\n border-color: inherit;\n}\n\n.swagger-ui .br0 {\n border-radius: 0;\n}\n\n.swagger-ui .br1 {\n border-radius: 0.125rem;\n}\n\n.swagger-ui .br2 {\n border-radius: 0.25rem;\n}\n\n.swagger-ui .br3 {\n border-radius: 0.5rem;\n}\n\n.swagger-ui .br4 {\n border-radius: 1rem;\n}\n\n.swagger-ui .br-100 {\n border-radius: 100%;\n}\n\n.swagger-ui .br-pill {\n border-radius: 9999px;\n}\n\n.swagger-ui .br--bottom {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n}\n\n.swagger-ui .br--top {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.swagger-ui .br--right {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n\n.swagger-ui .br--left {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .br0-ns {\n border-radius: 0;\n }\n .swagger-ui .br1-ns {\n border-radius: 0.125rem;\n }\n .swagger-ui .br2-ns {\n border-radius: 0.25rem;\n }\n .swagger-ui .br3-ns {\n border-radius: 0.5rem;\n }\n .swagger-ui .br4-ns {\n border-radius: 1rem;\n }\n .swagger-ui .br-100-ns {\n border-radius: 100%;\n }\n .swagger-ui .br-pill-ns {\n border-radius: 9999px;\n }\n .swagger-ui .br--bottom-ns {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .swagger-ui .br--top-ns {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .swagger-ui .br--right-ns {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .swagger-ui .br--left-ns {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .br0-m {\n border-radius: 0;\n }\n .swagger-ui .br1-m {\n border-radius: 0.125rem;\n }\n .swagger-ui .br2-m {\n border-radius: 0.25rem;\n }\n .swagger-ui .br3-m {\n border-radius: 0.5rem;\n }\n .swagger-ui .br4-m {\n border-radius: 1rem;\n }\n .swagger-ui .br-100-m {\n border-radius: 100%;\n }\n .swagger-ui .br-pill-m {\n border-radius: 9999px;\n }\n .swagger-ui .br--bottom-m {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .swagger-ui .br--top-m {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .swagger-ui .br--right-m {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .swagger-ui .br--left-m {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .br0-l {\n border-radius: 0;\n }\n .swagger-ui .br1-l {\n border-radius: 0.125rem;\n }\n .swagger-ui .br2-l {\n border-radius: 0.25rem;\n }\n .swagger-ui .br3-l {\n border-radius: 0.5rem;\n }\n .swagger-ui .br4-l {\n border-radius: 1rem;\n }\n .swagger-ui .br-100-l {\n border-radius: 100%;\n }\n .swagger-ui .br-pill-l {\n border-radius: 9999px;\n }\n .swagger-ui .br--bottom-l {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .swagger-ui .br--top-l {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .swagger-ui .br--right-l {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .swagger-ui .br--left-l {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n.swagger-ui .b--dotted {\n border-style: dotted;\n}\n\n.swagger-ui .b--dashed {\n border-style: dashed;\n}\n\n.swagger-ui .b--solid {\n border-style: solid;\n}\n\n.swagger-ui .b--none {\n border-style: none;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .b--dotted-ns {\n border-style: dotted;\n }\n .swagger-ui .b--dashed-ns {\n border-style: dashed;\n }\n .swagger-ui .b--solid-ns {\n border-style: solid;\n }\n .swagger-ui .b--none-ns {\n border-style: none;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .b--dotted-m {\n border-style: dotted;\n }\n .swagger-ui .b--dashed-m {\n border-style: dashed;\n }\n .swagger-ui .b--solid-m {\n border-style: solid;\n }\n .swagger-ui .b--none-m {\n border-style: none;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .b--dotted-l {\n border-style: dotted;\n }\n .swagger-ui .b--dashed-l {\n border-style: dashed;\n }\n .swagger-ui .b--solid-l {\n border-style: solid;\n }\n .swagger-ui .b--none-l {\n border-style: none;\n }\n}\n\n.swagger-ui .bw0 {\n border-width: 0;\n}\n\n.swagger-ui .bw1 {\n border-width: 0.125rem;\n}\n\n.swagger-ui .bw2 {\n border-width: 0.25rem;\n}\n\n.swagger-ui .bw3 {\n border-width: 0.5rem;\n}\n\n.swagger-ui .bw4 {\n border-width: 1rem;\n}\n\n.swagger-ui .bw5 {\n border-width: 2rem;\n}\n\n.swagger-ui .bt-0 {\n border-top-width: 0;\n}\n\n.swagger-ui .br-0 {\n border-right-width: 0;\n}\n\n.swagger-ui .bb-0 {\n border-bottom-width: 0;\n}\n\n.swagger-ui .bl-0 {\n border-left-width: 0;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .bw0-ns {\n border-width: 0;\n }\n .swagger-ui .bw1-ns {\n border-width: 0.125rem;\n }\n .swagger-ui .bw2-ns {\n border-width: 0.25rem;\n }\n .swagger-ui .bw3-ns {\n border-width: 0.5rem;\n }\n .swagger-ui .bw4-ns {\n border-width: 1rem;\n }\n .swagger-ui .bw5-ns {\n border-width: 2rem;\n }\n .swagger-ui .bt-0-ns {\n border-top-width: 0;\n }\n .swagger-ui .br-0-ns {\n border-right-width: 0;\n }\n .swagger-ui .bb-0-ns {\n border-bottom-width: 0;\n }\n .swagger-ui .bl-0-ns {\n border-left-width: 0;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .bw0-m {\n border-width: 0;\n }\n .swagger-ui .bw1-m {\n border-width: 0.125rem;\n }\n .swagger-ui .bw2-m {\n border-width: 0.25rem;\n }\n .swagger-ui .bw3-m {\n border-width: 0.5rem;\n }\n .swagger-ui .bw4-m {\n border-width: 1rem;\n }\n .swagger-ui .bw5-m {\n border-width: 2rem;\n }\n .swagger-ui .bt-0-m {\n border-top-width: 0;\n }\n .swagger-ui .br-0-m {\n border-right-width: 0;\n }\n .swagger-ui .bb-0-m {\n border-bottom-width: 0;\n }\n .swagger-ui .bl-0-m {\n border-left-width: 0;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .bw0-l {\n border-width: 0;\n }\n .swagger-ui .bw1-l {\n border-width: 0.125rem;\n }\n .swagger-ui .bw2-l {\n border-width: 0.25rem;\n }\n .swagger-ui .bw3-l {\n border-width: 0.5rem;\n }\n .swagger-ui .bw4-l {\n border-width: 1rem;\n }\n .swagger-ui .bw5-l {\n border-width: 2rem;\n }\n .swagger-ui .bt-0-l {\n border-top-width: 0;\n }\n .swagger-ui .br-0-l {\n border-right-width: 0;\n }\n .swagger-ui .bb-0-l {\n border-bottom-width: 0;\n }\n .swagger-ui .bl-0-l {\n border-left-width: 0;\n }\n}\n\n.swagger-ui .shadow-1 {\n box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .shadow-2 {\n box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .shadow-3 {\n box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .shadow-4 {\n box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .shadow-5 {\n box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, 0.2);\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .shadow-1-ns {\n box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-2-ns {\n box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-3-ns {\n box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-4-ns {\n box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-5-ns {\n box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, 0.2);\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .shadow-1-m {\n box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-2-m {\n box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-3-m {\n box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-4-m {\n box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-5-m {\n box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, 0.2);\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .shadow-1-l {\n box-shadow: 0px 0px 4px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-2-l {\n box-shadow: 0px 0px 8px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-3-l {\n box-shadow: 2px 2px 4px 2px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-4-l {\n box-shadow: 2px 2px 8px 0px rgba(0, 0, 0, 0.2);\n }\n .swagger-ui .shadow-5-l {\n box-shadow: 4px 4px 8px 0px rgba(0, 0, 0, 0.2);\n }\n}\n\n.swagger-ui .pre {\n overflow-x: auto;\n overflow-y: hidden;\n overflow: scroll;\n}\n\n.swagger-ui .top-0 {\n top: 0;\n}\n\n.swagger-ui .right-0 {\n right: 0;\n}\n\n.swagger-ui .bottom-0 {\n bottom: 0;\n}\n\n.swagger-ui .left-0 {\n left: 0;\n}\n\n.swagger-ui .top-1 {\n top: 1rem;\n}\n\n.swagger-ui .right-1 {\n right: 1rem;\n}\n\n.swagger-ui .bottom-1 {\n bottom: 1rem;\n}\n\n.swagger-ui .left-1 {\n left: 1rem;\n}\n\n.swagger-ui .top-2 {\n top: 2rem;\n}\n\n.swagger-ui .right-2 {\n right: 2rem;\n}\n\n.swagger-ui .bottom-2 {\n bottom: 2rem;\n}\n\n.swagger-ui .left-2 {\n left: 2rem;\n}\n\n.swagger-ui .top--1 {\n top: -1rem;\n}\n\n.swagger-ui .right--1 {\n right: -1rem;\n}\n\n.swagger-ui .bottom--1 {\n bottom: -1rem;\n}\n\n.swagger-ui .left--1 {\n left: -1rem;\n}\n\n.swagger-ui .top--2 {\n top: -2rem;\n}\n\n.swagger-ui .right--2 {\n right: -2rem;\n}\n\n.swagger-ui .bottom--2 {\n bottom: -2rem;\n}\n\n.swagger-ui .left--2 {\n left: -2rem;\n}\n\n.swagger-ui .absolute--fill {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .top-0-ns {\n top: 0;\n }\n .swagger-ui .left-0-ns {\n left: 0;\n }\n .swagger-ui .right-0-ns {\n right: 0;\n }\n .swagger-ui .bottom-0-ns {\n bottom: 0;\n }\n .swagger-ui .top-1-ns {\n top: 1rem;\n }\n .swagger-ui .left-1-ns {\n left: 1rem;\n }\n .swagger-ui .right-1-ns {\n right: 1rem;\n }\n .swagger-ui .bottom-1-ns {\n bottom: 1rem;\n }\n .swagger-ui .top-2-ns {\n top: 2rem;\n }\n .swagger-ui .left-2-ns {\n left: 2rem;\n }\n .swagger-ui .right-2-ns {\n right: 2rem;\n }\n .swagger-ui .bottom-2-ns {\n bottom: 2rem;\n }\n .swagger-ui .top--1-ns {\n top: -1rem;\n }\n .swagger-ui .right--1-ns {\n right: -1rem;\n }\n .swagger-ui .bottom--1-ns {\n bottom: -1rem;\n }\n .swagger-ui .left--1-ns {\n left: -1rem;\n }\n .swagger-ui .top--2-ns {\n top: -2rem;\n }\n .swagger-ui .right--2-ns {\n right: -2rem;\n }\n .swagger-ui .bottom--2-ns {\n bottom: -2rem;\n }\n .swagger-ui .left--2-ns {\n left: -2rem;\n }\n .swagger-ui .absolute--fill-ns {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .top-0-m {\n top: 0;\n }\n .swagger-ui .left-0-m {\n left: 0;\n }\n .swagger-ui .right-0-m {\n right: 0;\n }\n .swagger-ui .bottom-0-m {\n bottom: 0;\n }\n .swagger-ui .top-1-m {\n top: 1rem;\n }\n .swagger-ui .left-1-m {\n left: 1rem;\n }\n .swagger-ui .right-1-m {\n right: 1rem;\n }\n .swagger-ui .bottom-1-m {\n bottom: 1rem;\n }\n .swagger-ui .top-2-m {\n top: 2rem;\n }\n .swagger-ui .left-2-m {\n left: 2rem;\n }\n .swagger-ui .right-2-m {\n right: 2rem;\n }\n .swagger-ui .bottom-2-m {\n bottom: 2rem;\n }\n .swagger-ui .top--1-m {\n top: -1rem;\n }\n .swagger-ui .right--1-m {\n right: -1rem;\n }\n .swagger-ui .bottom--1-m {\n bottom: -1rem;\n }\n .swagger-ui .left--1-m {\n left: -1rem;\n }\n .swagger-ui .top--2-m {\n top: -2rem;\n }\n .swagger-ui .right--2-m {\n right: -2rem;\n }\n .swagger-ui .bottom--2-m {\n bottom: -2rem;\n }\n .swagger-ui .left--2-m {\n left: -2rem;\n }\n .swagger-ui .absolute--fill-m {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .top-0-l {\n top: 0;\n }\n .swagger-ui .left-0-l {\n left: 0;\n }\n .swagger-ui .right-0-l {\n right: 0;\n }\n .swagger-ui .bottom-0-l {\n bottom: 0;\n }\n .swagger-ui .top-1-l {\n top: 1rem;\n }\n .swagger-ui .left-1-l {\n left: 1rem;\n }\n .swagger-ui .right-1-l {\n right: 1rem;\n }\n .swagger-ui .bottom-1-l {\n bottom: 1rem;\n }\n .swagger-ui .top-2-l {\n top: 2rem;\n }\n .swagger-ui .left-2-l {\n left: 2rem;\n }\n .swagger-ui .right-2-l {\n right: 2rem;\n }\n .swagger-ui .bottom-2-l {\n bottom: 2rem;\n }\n .swagger-ui .top--1-l {\n top: -1rem;\n }\n .swagger-ui .right--1-l {\n right: -1rem;\n }\n .swagger-ui .bottom--1-l {\n bottom: -1rem;\n }\n .swagger-ui .left--1-l {\n left: -1rem;\n }\n .swagger-ui .top--2-l {\n top: -2rem;\n }\n .swagger-ui .right--2-l {\n right: -2rem;\n }\n .swagger-ui .bottom--2-l {\n bottom: -2rem;\n }\n .swagger-ui .left--2-l {\n left: -2rem;\n }\n .swagger-ui .absolute--fill-l {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n.swagger-ui .cf:before,\n.swagger-ui .cf:after {\n content: \" \";\n display: table;\n}\n\n.swagger-ui .cf:after {\n clear: both;\n}\n\n.swagger-ui .cf {\n *zoom: 1;\n}\n\n.swagger-ui .cl {\n clear: left;\n}\n\n.swagger-ui .cr {\n clear: right;\n}\n\n.swagger-ui .cb {\n clear: both;\n}\n\n.swagger-ui .cn {\n clear: none;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .cl-ns {\n clear: left;\n }\n .swagger-ui .cr-ns {\n clear: right;\n }\n .swagger-ui .cb-ns {\n clear: both;\n }\n .swagger-ui .cn-ns {\n clear: none;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .cl-m {\n clear: left;\n }\n .swagger-ui .cr-m {\n clear: right;\n }\n .swagger-ui .cb-m {\n clear: both;\n }\n .swagger-ui .cn-m {\n clear: none;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .cl-l {\n clear: left;\n }\n .swagger-ui .cr-l {\n clear: right;\n }\n .swagger-ui .cb-l {\n clear: both;\n }\n .swagger-ui .cn-l {\n clear: none;\n }\n}\n\n.swagger-ui .flex {\n display: flex;\n}\n\n.swagger-ui .inline-flex {\n display: inline-flex;\n}\n\n.swagger-ui .flex-auto {\n flex: 1 1 auto;\n min-width: 0;\n /* 1 */\n min-height: 0;\n /* 1 */\n}\n\n.swagger-ui .flex-none {\n flex: none;\n}\n\n.swagger-ui .flex-column {\n flex-direction: column;\n}\n\n.swagger-ui .flex-row {\n flex-direction: row;\n}\n\n.swagger-ui .flex-wrap {\n flex-wrap: wrap;\n}\n\n.swagger-ui .flex-nowrap {\n flex-wrap: nowrap;\n}\n\n.swagger-ui .flex-wrap-reverse {\n flex-wrap: wrap-reverse;\n}\n\n.swagger-ui .flex-column-reverse {\n flex-direction: column-reverse;\n}\n\n.swagger-ui .flex-row-reverse {\n flex-direction: row-reverse;\n}\n\n.swagger-ui .items-start {\n align-items: flex-start;\n}\n\n.swagger-ui .items-end {\n align-items: flex-end;\n}\n\n.swagger-ui .items-center {\n align-items: center;\n}\n\n.swagger-ui .items-baseline {\n align-items: baseline;\n}\n\n.swagger-ui .items-stretch {\n align-items: stretch;\n}\n\n.swagger-ui .self-start {\n align-self: flex-start;\n}\n\n.swagger-ui .self-end {\n align-self: flex-end;\n}\n\n.swagger-ui .self-center {\n align-self: center;\n}\n\n.swagger-ui .self-baseline {\n align-self: baseline;\n}\n\n.swagger-ui .self-stretch {\n align-self: stretch;\n}\n\n.swagger-ui .justify-start {\n justify-content: flex-start;\n}\n\n.swagger-ui .justify-end {\n justify-content: flex-end;\n}\n\n.swagger-ui .justify-center {\n justify-content: center;\n}\n\n.swagger-ui .justify-between {\n justify-content: space-between;\n}\n\n.swagger-ui .justify-around {\n justify-content: space-around;\n}\n\n.swagger-ui .content-start {\n align-content: flex-start;\n}\n\n.swagger-ui .content-end {\n align-content: flex-end;\n}\n\n.swagger-ui .content-center {\n align-content: center;\n}\n\n.swagger-ui .content-between {\n align-content: space-between;\n}\n\n.swagger-ui .content-around {\n align-content: space-around;\n}\n\n.swagger-ui .content-stretch {\n align-content: stretch;\n}\n\n.swagger-ui .order-0 {\n order: 0;\n}\n\n.swagger-ui .order-1 {\n order: 1;\n}\n\n.swagger-ui .order-2 {\n order: 2;\n}\n\n.swagger-ui .order-3 {\n order: 3;\n}\n\n.swagger-ui .order-4 {\n order: 4;\n}\n\n.swagger-ui .order-5 {\n order: 5;\n}\n\n.swagger-ui .order-6 {\n order: 6;\n}\n\n.swagger-ui .order-7 {\n order: 7;\n}\n\n.swagger-ui .order-8 {\n order: 8;\n}\n\n.swagger-ui .order-last {\n order: 99999;\n}\n\n.swagger-ui .flex-grow-0 {\n flex-grow: 0;\n}\n\n.swagger-ui .flex-grow-1 {\n flex-grow: 1;\n}\n\n.swagger-ui .flex-shrink-0 {\n flex-shrink: 0;\n}\n\n.swagger-ui .flex-shrink-1 {\n flex-shrink: 1;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .flex-ns {\n display: flex;\n }\n .swagger-ui .inline-flex-ns {\n display: inline-flex;\n }\n .swagger-ui .flex-auto-ns {\n flex: 1 1 auto;\n min-width: 0;\n /* 1 */\n min-height: 0;\n /* 1 */\n }\n .swagger-ui .flex-none-ns {\n flex: none;\n }\n .swagger-ui .flex-column-ns {\n flex-direction: column;\n }\n .swagger-ui .flex-row-ns {\n flex-direction: row;\n }\n .swagger-ui .flex-wrap-ns {\n flex-wrap: wrap;\n }\n .swagger-ui .flex-nowrap-ns {\n flex-wrap: nowrap;\n }\n .swagger-ui .flex-wrap-reverse-ns {\n flex-wrap: wrap-reverse;\n }\n .swagger-ui .flex-column-reverse-ns {\n flex-direction: column-reverse;\n }\n .swagger-ui .flex-row-reverse-ns {\n flex-direction: row-reverse;\n }\n .swagger-ui .items-start-ns {\n align-items: flex-start;\n }\n .swagger-ui .items-end-ns {\n align-items: flex-end;\n }\n .swagger-ui .items-center-ns {\n align-items: center;\n }\n .swagger-ui .items-baseline-ns {\n align-items: baseline;\n }\n .swagger-ui .items-stretch-ns {\n align-items: stretch;\n }\n .swagger-ui .self-start-ns {\n align-self: flex-start;\n }\n .swagger-ui .self-end-ns {\n align-self: flex-end;\n }\n .swagger-ui .self-center-ns {\n align-self: center;\n }\n .swagger-ui .self-baseline-ns {\n align-self: baseline;\n }\n .swagger-ui .self-stretch-ns {\n align-self: stretch;\n }\n .swagger-ui .justify-start-ns {\n justify-content: flex-start;\n }\n .swagger-ui .justify-end-ns {\n justify-content: flex-end;\n }\n .swagger-ui .justify-center-ns {\n justify-content: center;\n }\n .swagger-ui .justify-between-ns {\n justify-content: space-between;\n }\n .swagger-ui .justify-around-ns {\n justify-content: space-around;\n }\n .swagger-ui .content-start-ns {\n align-content: flex-start;\n }\n .swagger-ui .content-end-ns {\n align-content: flex-end;\n }\n .swagger-ui .content-center-ns {\n align-content: center;\n }\n .swagger-ui .content-between-ns {\n align-content: space-between;\n }\n .swagger-ui .content-around-ns {\n align-content: space-around;\n }\n .swagger-ui .content-stretch-ns {\n align-content: stretch;\n }\n .swagger-ui .order-0-ns {\n order: 0;\n }\n .swagger-ui .order-1-ns {\n order: 1;\n }\n .swagger-ui .order-2-ns {\n order: 2;\n }\n .swagger-ui .order-3-ns {\n order: 3;\n }\n .swagger-ui .order-4-ns {\n order: 4;\n }\n .swagger-ui .order-5-ns {\n order: 5;\n }\n .swagger-ui .order-6-ns {\n order: 6;\n }\n .swagger-ui .order-7-ns {\n order: 7;\n }\n .swagger-ui .order-8-ns {\n order: 8;\n }\n .swagger-ui .order-last-ns {\n order: 99999;\n }\n .swagger-ui .flex-grow-0-ns {\n flex-grow: 0;\n }\n .swagger-ui .flex-grow-1-ns {\n flex-grow: 1;\n }\n .swagger-ui .flex-shrink-0-ns {\n flex-shrink: 0;\n }\n .swagger-ui .flex-shrink-1-ns {\n flex-shrink: 1;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .flex-m {\n display: flex;\n }\n .swagger-ui .inline-flex-m {\n display: inline-flex;\n }\n .swagger-ui .flex-auto-m {\n flex: 1 1 auto;\n min-width: 0;\n /* 1 */\n min-height: 0;\n /* 1 */\n }\n .swagger-ui .flex-none-m {\n flex: none;\n }\n .swagger-ui .flex-column-m {\n flex-direction: column;\n }\n .swagger-ui .flex-row-m {\n flex-direction: row;\n }\n .swagger-ui .flex-wrap-m {\n flex-wrap: wrap;\n }\n .swagger-ui .flex-nowrap-m {\n flex-wrap: nowrap;\n }\n .swagger-ui .flex-wrap-reverse-m {\n flex-wrap: wrap-reverse;\n }\n .swagger-ui .flex-column-reverse-m {\n flex-direction: column-reverse;\n }\n .swagger-ui .flex-row-reverse-m {\n flex-direction: row-reverse;\n }\n .swagger-ui .items-start-m {\n align-items: flex-start;\n }\n .swagger-ui .items-end-m {\n align-items: flex-end;\n }\n .swagger-ui .items-center-m {\n align-items: center;\n }\n .swagger-ui .items-baseline-m {\n align-items: baseline;\n }\n .swagger-ui .items-stretch-m {\n align-items: stretch;\n }\n .swagger-ui .self-start-m {\n align-self: flex-start;\n }\n .swagger-ui .self-end-m {\n align-self: flex-end;\n }\n .swagger-ui .self-center-m {\n align-self: center;\n }\n .swagger-ui .self-baseline-m {\n align-self: baseline;\n }\n .swagger-ui .self-stretch-m {\n align-self: stretch;\n }\n .swagger-ui .justify-start-m {\n justify-content: flex-start;\n }\n .swagger-ui .justify-end-m {\n justify-content: flex-end;\n }\n .swagger-ui .justify-center-m {\n justify-content: center;\n }\n .swagger-ui .justify-between-m {\n justify-content: space-between;\n }\n .swagger-ui .justify-around-m {\n justify-content: space-around;\n }\n .swagger-ui .content-start-m {\n align-content: flex-start;\n }\n .swagger-ui .content-end-m {\n align-content: flex-end;\n }\n .swagger-ui .content-center-m {\n align-content: center;\n }\n .swagger-ui .content-between-m {\n align-content: space-between;\n }\n .swagger-ui .content-around-m {\n align-content: space-around;\n }\n .swagger-ui .content-stretch-m {\n align-content: stretch;\n }\n .swagger-ui .order-0-m {\n order: 0;\n }\n .swagger-ui .order-1-m {\n order: 1;\n }\n .swagger-ui .order-2-m {\n order: 2;\n }\n .swagger-ui .order-3-m {\n order: 3;\n }\n .swagger-ui .order-4-m {\n order: 4;\n }\n .swagger-ui .order-5-m {\n order: 5;\n }\n .swagger-ui .order-6-m {\n order: 6;\n }\n .swagger-ui .order-7-m {\n order: 7;\n }\n .swagger-ui .order-8-m {\n order: 8;\n }\n .swagger-ui .order-last-m {\n order: 99999;\n }\n .swagger-ui .flex-grow-0-m {\n flex-grow: 0;\n }\n .swagger-ui .flex-grow-1-m {\n flex-grow: 1;\n }\n .swagger-ui .flex-shrink-0-m {\n flex-shrink: 0;\n }\n .swagger-ui .flex-shrink-1-m {\n flex-shrink: 1;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .flex-l {\n display: flex;\n }\n .swagger-ui .inline-flex-l {\n display: inline-flex;\n }\n .swagger-ui .flex-auto-l {\n flex: 1 1 auto;\n min-width: 0;\n /* 1 */\n min-height: 0;\n /* 1 */\n }\n .swagger-ui .flex-none-l {\n flex: none;\n }\n .swagger-ui .flex-column-l {\n flex-direction: column;\n }\n .swagger-ui .flex-row-l {\n flex-direction: row;\n }\n .swagger-ui .flex-wrap-l {\n flex-wrap: wrap;\n }\n .swagger-ui .flex-nowrap-l {\n flex-wrap: nowrap;\n }\n .swagger-ui .flex-wrap-reverse-l {\n flex-wrap: wrap-reverse;\n }\n .swagger-ui .flex-column-reverse-l {\n flex-direction: column-reverse;\n }\n .swagger-ui .flex-row-reverse-l {\n flex-direction: row-reverse;\n }\n .swagger-ui .items-start-l {\n align-items: flex-start;\n }\n .swagger-ui .items-end-l {\n align-items: flex-end;\n }\n .swagger-ui .items-center-l {\n align-items: center;\n }\n .swagger-ui .items-baseline-l {\n align-items: baseline;\n }\n .swagger-ui .items-stretch-l {\n align-items: stretch;\n }\n .swagger-ui .self-start-l {\n align-self: flex-start;\n }\n .swagger-ui .self-end-l {\n align-self: flex-end;\n }\n .swagger-ui .self-center-l {\n align-self: center;\n }\n .swagger-ui .self-baseline-l {\n align-self: baseline;\n }\n .swagger-ui .self-stretch-l {\n align-self: stretch;\n }\n .swagger-ui .justify-start-l {\n justify-content: flex-start;\n }\n .swagger-ui .justify-end-l {\n justify-content: flex-end;\n }\n .swagger-ui .justify-center-l {\n justify-content: center;\n }\n .swagger-ui .justify-between-l {\n justify-content: space-between;\n }\n .swagger-ui .justify-around-l {\n justify-content: space-around;\n }\n .swagger-ui .content-start-l {\n align-content: flex-start;\n }\n .swagger-ui .content-end-l {\n align-content: flex-end;\n }\n .swagger-ui .content-center-l {\n align-content: center;\n }\n .swagger-ui .content-between-l {\n align-content: space-between;\n }\n .swagger-ui .content-around-l {\n align-content: space-around;\n }\n .swagger-ui .content-stretch-l {\n align-content: stretch;\n }\n .swagger-ui .order-0-l {\n order: 0;\n }\n .swagger-ui .order-1-l {\n order: 1;\n }\n .swagger-ui .order-2-l {\n order: 2;\n }\n .swagger-ui .order-3-l {\n order: 3;\n }\n .swagger-ui .order-4-l {\n order: 4;\n }\n .swagger-ui .order-5-l {\n order: 5;\n }\n .swagger-ui .order-6-l {\n order: 6;\n }\n .swagger-ui .order-7-l {\n order: 7;\n }\n .swagger-ui .order-8-l {\n order: 8;\n }\n .swagger-ui .order-last-l {\n order: 99999;\n }\n .swagger-ui .flex-grow-0-l {\n flex-grow: 0;\n }\n .swagger-ui .flex-grow-1-l {\n flex-grow: 1;\n }\n .swagger-ui .flex-shrink-0-l {\n flex-shrink: 0;\n }\n .swagger-ui .flex-shrink-1-l {\n flex-shrink: 1;\n }\n}\n\n.swagger-ui .dn {\n display: none;\n}\n\n.swagger-ui .di {\n display: inline;\n}\n\n.swagger-ui .db {\n display: block;\n}\n\n.swagger-ui .dib {\n display: inline-block;\n}\n\n.swagger-ui .dit {\n display: inline-table;\n}\n\n.swagger-ui .dt {\n display: table;\n}\n\n.swagger-ui .dtc {\n display: table-cell;\n}\n\n.swagger-ui .dt-row {\n display: table-row;\n}\n\n.swagger-ui .dt-row-group {\n display: table-row-group;\n}\n\n.swagger-ui .dt-column {\n display: table-column;\n}\n\n.swagger-ui .dt-column-group {\n display: table-column-group;\n}\n\n.swagger-ui .dt--fixed {\n table-layout: fixed;\n width: 100%;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .dn-ns {\n display: none;\n }\n .swagger-ui .di-ns {\n display: inline;\n }\n .swagger-ui .db-ns {\n display: block;\n }\n .swagger-ui .dib-ns {\n display: inline-block;\n }\n .swagger-ui .dit-ns {\n display: inline-table;\n }\n .swagger-ui .dt-ns {\n display: table;\n }\n .swagger-ui .dtc-ns {\n display: table-cell;\n }\n .swagger-ui .dt-row-ns {\n display: table-row;\n }\n .swagger-ui .dt-row-group-ns {\n display: table-row-group;\n }\n .swagger-ui .dt-column-ns {\n display: table-column;\n }\n .swagger-ui .dt-column-group-ns {\n display: table-column-group;\n }\n .swagger-ui .dt--fixed-ns {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .dn-m {\n display: none;\n }\n .swagger-ui .di-m {\n display: inline;\n }\n .swagger-ui .db-m {\n display: block;\n }\n .swagger-ui .dib-m {\n display: inline-block;\n }\n .swagger-ui .dit-m {\n display: inline-table;\n }\n .swagger-ui .dt-m {\n display: table;\n }\n .swagger-ui .dtc-m {\n display: table-cell;\n }\n .swagger-ui .dt-row-m {\n display: table-row;\n }\n .swagger-ui .dt-row-group-m {\n display: table-row-group;\n }\n .swagger-ui .dt-column-m {\n display: table-column;\n }\n .swagger-ui .dt-column-group-m {\n display: table-column-group;\n }\n .swagger-ui .dt--fixed-m {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .dn-l {\n display: none;\n }\n .swagger-ui .di-l {\n display: inline;\n }\n .swagger-ui .db-l {\n display: block;\n }\n .swagger-ui .dib-l {\n display: inline-block;\n }\n .swagger-ui .dit-l {\n display: inline-table;\n }\n .swagger-ui .dt-l {\n display: table;\n }\n .swagger-ui .dtc-l {\n display: table-cell;\n }\n .swagger-ui .dt-row-l {\n display: table-row;\n }\n .swagger-ui .dt-row-group-l {\n display: table-row-group;\n }\n .swagger-ui .dt-column-l {\n display: table-column;\n }\n .swagger-ui .dt-column-group-l {\n display: table-column-group;\n }\n .swagger-ui .dt--fixed-l {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n.swagger-ui .fl {\n float: left;\n _display: inline;\n}\n\n.swagger-ui .fr {\n float: right;\n _display: inline;\n}\n\n.swagger-ui .fn {\n float: none;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .fl-ns {\n float: left;\n _display: inline;\n }\n .swagger-ui .fr-ns {\n float: right;\n _display: inline;\n }\n .swagger-ui .fn-ns {\n float: none;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .fl-m {\n float: left;\n _display: inline;\n }\n .swagger-ui .fr-m {\n float: right;\n _display: inline;\n }\n .swagger-ui .fn-m {\n float: none;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .fl-l {\n float: left;\n _display: inline;\n }\n .swagger-ui .fr-l {\n float: right;\n _display: inline;\n }\n .swagger-ui .fn-l {\n float: none;\n }\n}\n\n.swagger-ui .sans-serif {\n font-family: -apple-system, BlinkMacSystemFont, \"avenir next\", avenir, helvetica, \"helvetica neue\", ubuntu, roboto, noto, \"segoe ui\", arial, sans-serif;\n}\n\n.swagger-ui .serif {\n font-family: georgia, serif;\n}\n\n.swagger-ui .system-sans-serif {\n font-family: sans-serif;\n}\n\n.swagger-ui .system-serif {\n font-family: serif;\n}\n\n.swagger-ui code, .swagger-ui .code {\n font-family: Consolas, monaco, monospace;\n}\n\n.swagger-ui .courier {\n font-family: 'Courier Next', courier, monospace;\n}\n\n.swagger-ui .helvetica {\n font-family: 'helvetica neue', helvetica, sans-serif;\n}\n\n.swagger-ui .avenir {\n font-family: 'avenir next', avenir, sans-serif;\n}\n\n.swagger-ui .athelas {\n font-family: athelas, georgia, serif;\n}\n\n.swagger-ui .georgia {\n font-family: georgia, serif;\n}\n\n.swagger-ui .times {\n font-family: times, serif;\n}\n\n.swagger-ui .bodoni {\n font-family: \"Bodoni MT\", serif;\n}\n\n.swagger-ui .calisto {\n font-family: \"Calisto MT\", serif;\n}\n\n.swagger-ui .garamond {\n font-family: garamond, serif;\n}\n\n.swagger-ui .baskerville {\n font-family: baskerville, serif;\n}\n\n.swagger-ui .i {\n font-style: italic;\n}\n\n.swagger-ui .fs-normal {\n font-style: normal;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .i-ns {\n font-style: italic;\n }\n .swagger-ui .fs-normal-ns {\n font-style: normal;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .i-m {\n font-style: italic;\n }\n .swagger-ui .fs-normal-m {\n font-style: normal;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .i-l {\n font-style: italic;\n }\n .swagger-ui .fs-normal-l {\n font-style: normal;\n }\n}\n\n.swagger-ui .normal {\n font-weight: normal;\n}\n\n.swagger-ui .b {\n font-weight: bold;\n}\n\n.swagger-ui .fw1 {\n font-weight: 100;\n}\n\n.swagger-ui .fw2 {\n font-weight: 200;\n}\n\n.swagger-ui .fw3 {\n font-weight: 300;\n}\n\n.swagger-ui .fw4 {\n font-weight: 400;\n}\n\n.swagger-ui .fw5 {\n font-weight: 500;\n}\n\n.swagger-ui .fw6 {\n font-weight: 600;\n}\n\n.swagger-ui .fw7 {\n font-weight: 700;\n}\n\n.swagger-ui .fw8 {\n font-weight: 800;\n}\n\n.swagger-ui .fw9 {\n font-weight: 900;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .normal-ns {\n font-weight: normal;\n }\n .swagger-ui .b-ns {\n font-weight: bold;\n }\n .swagger-ui .fw1-ns {\n font-weight: 100;\n }\n .swagger-ui .fw2-ns {\n font-weight: 200;\n }\n .swagger-ui .fw3-ns {\n font-weight: 300;\n }\n .swagger-ui .fw4-ns {\n font-weight: 400;\n }\n .swagger-ui .fw5-ns {\n font-weight: 500;\n }\n .swagger-ui .fw6-ns {\n font-weight: 600;\n }\n .swagger-ui .fw7-ns {\n font-weight: 700;\n }\n .swagger-ui .fw8-ns {\n font-weight: 800;\n }\n .swagger-ui .fw9-ns {\n font-weight: 900;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .normal-m {\n font-weight: normal;\n }\n .swagger-ui .b-m {\n font-weight: bold;\n }\n .swagger-ui .fw1-m {\n font-weight: 100;\n }\n .swagger-ui .fw2-m {\n font-weight: 200;\n }\n .swagger-ui .fw3-m {\n font-weight: 300;\n }\n .swagger-ui .fw4-m {\n font-weight: 400;\n }\n .swagger-ui .fw5-m {\n font-weight: 500;\n }\n .swagger-ui .fw6-m {\n font-weight: 600;\n }\n .swagger-ui .fw7-m {\n font-weight: 700;\n }\n .swagger-ui .fw8-m {\n font-weight: 800;\n }\n .swagger-ui .fw9-m {\n font-weight: 900;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .normal-l {\n font-weight: normal;\n }\n .swagger-ui .b-l {\n font-weight: bold;\n }\n .swagger-ui .fw1-l {\n font-weight: 100;\n }\n .swagger-ui .fw2-l {\n font-weight: 200;\n }\n .swagger-ui .fw3-l {\n font-weight: 300;\n }\n .swagger-ui .fw4-l {\n font-weight: 400;\n }\n .swagger-ui .fw5-l {\n font-weight: 500;\n }\n .swagger-ui .fw6-l {\n font-weight: 600;\n }\n .swagger-ui .fw7-l {\n font-weight: 700;\n }\n .swagger-ui .fw8-l {\n font-weight: 800;\n }\n .swagger-ui .fw9-l {\n font-weight: 900;\n }\n}\n\n.swagger-ui .input-reset {\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.swagger-ui .button-reset::-moz-focus-inner,\n.swagger-ui .input-reset::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n\n.swagger-ui .h1 {\n height: 1rem;\n}\n\n.swagger-ui .h2 {\n height: 2rem;\n}\n\n.swagger-ui .h3 {\n height: 4rem;\n}\n\n.swagger-ui .h4 {\n height: 8rem;\n}\n\n.swagger-ui .h5 {\n height: 16rem;\n}\n\n.swagger-ui .h-25 {\n height: 25%;\n}\n\n.swagger-ui .h-50 {\n height: 50%;\n}\n\n.swagger-ui .h-75 {\n height: 75%;\n}\n\n.swagger-ui .h-100 {\n height: 100%;\n}\n\n.swagger-ui .min-h-100 {\n min-height: 100%;\n}\n\n.swagger-ui .vh-25 {\n height: 25vh;\n}\n\n.swagger-ui .vh-50 {\n height: 50vh;\n}\n\n.swagger-ui .vh-75 {\n height: 75vh;\n}\n\n.swagger-ui .vh-100 {\n height: 100vh;\n}\n\n.swagger-ui .min-vh-100 {\n min-height: 100vh;\n}\n\n.swagger-ui .h-auto {\n height: auto;\n}\n\n.swagger-ui .h-inherit {\n height: inherit;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .h1-ns {\n height: 1rem;\n }\n .swagger-ui .h2-ns {\n height: 2rem;\n }\n .swagger-ui .h3-ns {\n height: 4rem;\n }\n .swagger-ui .h4-ns {\n height: 8rem;\n }\n .swagger-ui .h5-ns {\n height: 16rem;\n }\n .swagger-ui .h-25-ns {\n height: 25%;\n }\n .swagger-ui .h-50-ns {\n height: 50%;\n }\n .swagger-ui .h-75-ns {\n height: 75%;\n }\n .swagger-ui .h-100-ns {\n height: 100%;\n }\n .swagger-ui .min-h-100-ns {\n min-height: 100%;\n }\n .swagger-ui .vh-25-ns {\n height: 25vh;\n }\n .swagger-ui .vh-50-ns {\n height: 50vh;\n }\n .swagger-ui .vh-75-ns {\n height: 75vh;\n }\n .swagger-ui .vh-100-ns {\n height: 100vh;\n }\n .swagger-ui .min-vh-100-ns {\n min-height: 100vh;\n }\n .swagger-ui .h-auto-ns {\n height: auto;\n }\n .swagger-ui .h-inherit-ns {\n height: inherit;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .h1-m {\n height: 1rem;\n }\n .swagger-ui .h2-m {\n height: 2rem;\n }\n .swagger-ui .h3-m {\n height: 4rem;\n }\n .swagger-ui .h4-m {\n height: 8rem;\n }\n .swagger-ui .h5-m {\n height: 16rem;\n }\n .swagger-ui .h-25-m {\n height: 25%;\n }\n .swagger-ui .h-50-m {\n height: 50%;\n }\n .swagger-ui .h-75-m {\n height: 75%;\n }\n .swagger-ui .h-100-m {\n height: 100%;\n }\n .swagger-ui .min-h-100-m {\n min-height: 100%;\n }\n .swagger-ui .vh-25-m {\n height: 25vh;\n }\n .swagger-ui .vh-50-m {\n height: 50vh;\n }\n .swagger-ui .vh-75-m {\n height: 75vh;\n }\n .swagger-ui .vh-100-m {\n height: 100vh;\n }\n .swagger-ui .min-vh-100-m {\n min-height: 100vh;\n }\n .swagger-ui .h-auto-m {\n height: auto;\n }\n .swagger-ui .h-inherit-m {\n height: inherit;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .h1-l {\n height: 1rem;\n }\n .swagger-ui .h2-l {\n height: 2rem;\n }\n .swagger-ui .h3-l {\n height: 4rem;\n }\n .swagger-ui .h4-l {\n height: 8rem;\n }\n .swagger-ui .h5-l {\n height: 16rem;\n }\n .swagger-ui .h-25-l {\n height: 25%;\n }\n .swagger-ui .h-50-l {\n height: 50%;\n }\n .swagger-ui .h-75-l {\n height: 75%;\n }\n .swagger-ui .h-100-l {\n height: 100%;\n }\n .swagger-ui .min-h-100-l {\n min-height: 100%;\n }\n .swagger-ui .vh-25-l {\n height: 25vh;\n }\n .swagger-ui .vh-50-l {\n height: 50vh;\n }\n .swagger-ui .vh-75-l {\n height: 75vh;\n }\n .swagger-ui .vh-100-l {\n height: 100vh;\n }\n .swagger-ui .min-vh-100-l {\n min-height: 100vh;\n }\n .swagger-ui .h-auto-l {\n height: auto;\n }\n .swagger-ui .h-inherit-l {\n height: inherit;\n }\n}\n\n.swagger-ui .tracked {\n letter-spacing: 0.1em;\n}\n\n.swagger-ui .tracked-tight {\n letter-spacing: -0.05em;\n}\n\n.swagger-ui .tracked-mega {\n letter-spacing: 0.25em;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .tracked-ns {\n letter-spacing: 0.1em;\n }\n .swagger-ui .tracked-tight-ns {\n letter-spacing: -0.05em;\n }\n .swagger-ui .tracked-mega-ns {\n letter-spacing: 0.25em;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .tracked-m {\n letter-spacing: 0.1em;\n }\n .swagger-ui .tracked-tight-m {\n letter-spacing: -0.05em;\n }\n .swagger-ui .tracked-mega-m {\n letter-spacing: 0.25em;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .tracked-l {\n letter-spacing: 0.1em;\n }\n .swagger-ui .tracked-tight-l {\n letter-spacing: -0.05em;\n }\n .swagger-ui .tracked-mega-l {\n letter-spacing: 0.25em;\n }\n}\n\n.swagger-ui .lh-solid {\n line-height: 1;\n}\n\n.swagger-ui .lh-title {\n line-height: 1.25;\n}\n\n.swagger-ui .lh-copy {\n line-height: 1.5;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .lh-solid-ns {\n line-height: 1;\n }\n .swagger-ui .lh-title-ns {\n line-height: 1.25;\n }\n .swagger-ui .lh-copy-ns {\n line-height: 1.5;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .lh-solid-m {\n line-height: 1;\n }\n .swagger-ui .lh-title-m {\n line-height: 1.25;\n }\n .swagger-ui .lh-copy-m {\n line-height: 1.5;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .lh-solid-l {\n line-height: 1;\n }\n .swagger-ui .lh-title-l {\n line-height: 1.25;\n }\n .swagger-ui .lh-copy-l {\n line-height: 1.5;\n }\n}\n\n.swagger-ui .link {\n text-decoration: none;\n transition: color .15s ease-in;\n}\n\n.swagger-ui .link:link,\n.swagger-ui .link:visited {\n transition: color .15s ease-in;\n}\n\n.swagger-ui .link:hover {\n transition: color .15s ease-in;\n}\n\n.swagger-ui .link:active {\n transition: color .15s ease-in;\n}\n\n.swagger-ui .link:focus {\n transition: color .15s ease-in;\n outline: 1px dotted currentColor;\n}\n\n.swagger-ui .list {\n list-style-type: none;\n}\n\n.swagger-ui .mw-100 {\n max-width: 100%;\n}\n\n.swagger-ui .mw1 {\n max-width: 1rem;\n}\n\n.swagger-ui .mw2 {\n max-width: 2rem;\n}\n\n.swagger-ui .mw3 {\n max-width: 4rem;\n}\n\n.swagger-ui .mw4 {\n max-width: 8rem;\n}\n\n.swagger-ui .mw5 {\n max-width: 16rem;\n}\n\n.swagger-ui .mw6 {\n max-width: 32rem;\n}\n\n.swagger-ui .mw7 {\n max-width: 48rem;\n}\n\n.swagger-ui .mw8 {\n max-width: 64rem;\n}\n\n.swagger-ui .mw9 {\n max-width: 96rem;\n}\n\n.swagger-ui .mw-none {\n max-width: none;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .mw-100-ns {\n max-width: 100%;\n }\n .swagger-ui .mw1-ns {\n max-width: 1rem;\n }\n .swagger-ui .mw2-ns {\n max-width: 2rem;\n }\n .swagger-ui .mw3-ns {\n max-width: 4rem;\n }\n .swagger-ui .mw4-ns {\n max-width: 8rem;\n }\n .swagger-ui .mw5-ns {\n max-width: 16rem;\n }\n .swagger-ui .mw6-ns {\n max-width: 32rem;\n }\n .swagger-ui .mw7-ns {\n max-width: 48rem;\n }\n .swagger-ui .mw8-ns {\n max-width: 64rem;\n }\n .swagger-ui .mw9-ns {\n max-width: 96rem;\n }\n .swagger-ui .mw-none-ns {\n max-width: none;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .mw-100-m {\n max-width: 100%;\n }\n .swagger-ui .mw1-m {\n max-width: 1rem;\n }\n .swagger-ui .mw2-m {\n max-width: 2rem;\n }\n .swagger-ui .mw3-m {\n max-width: 4rem;\n }\n .swagger-ui .mw4-m {\n max-width: 8rem;\n }\n .swagger-ui .mw5-m {\n max-width: 16rem;\n }\n .swagger-ui .mw6-m {\n max-width: 32rem;\n }\n .swagger-ui .mw7-m {\n max-width: 48rem;\n }\n .swagger-ui .mw8-m {\n max-width: 64rem;\n }\n .swagger-ui .mw9-m {\n max-width: 96rem;\n }\n .swagger-ui .mw-none-m {\n max-width: none;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .mw-100-l {\n max-width: 100%;\n }\n .swagger-ui .mw1-l {\n max-width: 1rem;\n }\n .swagger-ui .mw2-l {\n max-width: 2rem;\n }\n .swagger-ui .mw3-l {\n max-width: 4rem;\n }\n .swagger-ui .mw4-l {\n max-width: 8rem;\n }\n .swagger-ui .mw5-l {\n max-width: 16rem;\n }\n .swagger-ui .mw6-l {\n max-width: 32rem;\n }\n .swagger-ui .mw7-l {\n max-width: 48rem;\n }\n .swagger-ui .mw8-l {\n max-width: 64rem;\n }\n .swagger-ui .mw9-l {\n max-width: 96rem;\n }\n .swagger-ui .mw-none-l {\n max-width: none;\n }\n}\n\n.swagger-ui .w1 {\n width: 1rem;\n}\n\n.swagger-ui .w2 {\n width: 2rem;\n}\n\n.swagger-ui .w3 {\n width: 4rem;\n}\n\n.swagger-ui .w4 {\n width: 8rem;\n}\n\n.swagger-ui .w5 {\n width: 16rem;\n}\n\n.swagger-ui .w-10 {\n width: 10%;\n}\n\n.swagger-ui .w-20 {\n width: 20%;\n}\n\n.swagger-ui .w-25 {\n width: 25%;\n}\n\n.swagger-ui .w-30 {\n width: 30%;\n}\n\n.swagger-ui .w-33 {\n width: 33%;\n}\n\n.swagger-ui .w-34 {\n width: 34%;\n}\n\n.swagger-ui .w-40 {\n width: 40%;\n}\n\n.swagger-ui .w-50 {\n width: 50%;\n}\n\n.swagger-ui .w-60 {\n width: 60%;\n}\n\n.swagger-ui .w-70 {\n width: 70%;\n}\n\n.swagger-ui .w-75 {\n width: 75%;\n}\n\n.swagger-ui .w-80 {\n width: 80%;\n}\n\n.swagger-ui .w-90 {\n width: 90%;\n}\n\n.swagger-ui .w-100 {\n width: 100%;\n}\n\n.swagger-ui .w-third {\n width: 33.33333%;\n}\n\n.swagger-ui .w-two-thirds {\n width: 66.66667%;\n}\n\n.swagger-ui .w-auto {\n width: auto;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .w1-ns {\n width: 1rem;\n }\n .swagger-ui .w2-ns {\n width: 2rem;\n }\n .swagger-ui .w3-ns {\n width: 4rem;\n }\n .swagger-ui .w4-ns {\n width: 8rem;\n }\n .swagger-ui .w5-ns {\n width: 16rem;\n }\n .swagger-ui .w-10-ns {\n width: 10%;\n }\n .swagger-ui .w-20-ns {\n width: 20%;\n }\n .swagger-ui .w-25-ns {\n width: 25%;\n }\n .swagger-ui .w-30-ns {\n width: 30%;\n }\n .swagger-ui .w-33-ns {\n width: 33%;\n }\n .swagger-ui .w-34-ns {\n width: 34%;\n }\n .swagger-ui .w-40-ns {\n width: 40%;\n }\n .swagger-ui .w-50-ns {\n width: 50%;\n }\n .swagger-ui .w-60-ns {\n width: 60%;\n }\n .swagger-ui .w-70-ns {\n width: 70%;\n }\n .swagger-ui .w-75-ns {\n width: 75%;\n }\n .swagger-ui .w-80-ns {\n width: 80%;\n }\n .swagger-ui .w-90-ns {\n width: 90%;\n }\n .swagger-ui .w-100-ns {\n width: 100%;\n }\n .swagger-ui .w-third-ns {\n width: 33.33333%;\n }\n .swagger-ui .w-two-thirds-ns {\n width: 66.66667%;\n }\n .swagger-ui .w-auto-ns {\n width: auto;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .w1-m {\n width: 1rem;\n }\n .swagger-ui .w2-m {\n width: 2rem;\n }\n .swagger-ui .w3-m {\n width: 4rem;\n }\n .swagger-ui .w4-m {\n width: 8rem;\n }\n .swagger-ui .w5-m {\n width: 16rem;\n }\n .swagger-ui .w-10-m {\n width: 10%;\n }\n .swagger-ui .w-20-m {\n width: 20%;\n }\n .swagger-ui .w-25-m {\n width: 25%;\n }\n .swagger-ui .w-30-m {\n width: 30%;\n }\n .swagger-ui .w-33-m {\n width: 33%;\n }\n .swagger-ui .w-34-m {\n width: 34%;\n }\n .swagger-ui .w-40-m {\n width: 40%;\n }\n .swagger-ui .w-50-m {\n width: 50%;\n }\n .swagger-ui .w-60-m {\n width: 60%;\n }\n .swagger-ui .w-70-m {\n width: 70%;\n }\n .swagger-ui .w-75-m {\n width: 75%;\n }\n .swagger-ui .w-80-m {\n width: 80%;\n }\n .swagger-ui .w-90-m {\n width: 90%;\n }\n .swagger-ui .w-100-m {\n width: 100%;\n }\n .swagger-ui .w-third-m {\n width: 33.33333%;\n }\n .swagger-ui .w-two-thirds-m {\n width: 66.66667%;\n }\n .swagger-ui .w-auto-m {\n width: auto;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .w1-l {\n width: 1rem;\n }\n .swagger-ui .w2-l {\n width: 2rem;\n }\n .swagger-ui .w3-l {\n width: 4rem;\n }\n .swagger-ui .w4-l {\n width: 8rem;\n }\n .swagger-ui .w5-l {\n width: 16rem;\n }\n .swagger-ui .w-10-l {\n width: 10%;\n }\n .swagger-ui .w-20-l {\n width: 20%;\n }\n .swagger-ui .w-25-l {\n width: 25%;\n }\n .swagger-ui .w-30-l {\n width: 30%;\n }\n .swagger-ui .w-33-l {\n width: 33%;\n }\n .swagger-ui .w-34-l {\n width: 34%;\n }\n .swagger-ui .w-40-l {\n width: 40%;\n }\n .swagger-ui .w-50-l {\n width: 50%;\n }\n .swagger-ui .w-60-l {\n width: 60%;\n }\n .swagger-ui .w-70-l {\n width: 70%;\n }\n .swagger-ui .w-75-l {\n width: 75%;\n }\n .swagger-ui .w-80-l {\n width: 80%;\n }\n .swagger-ui .w-90-l {\n width: 90%;\n }\n .swagger-ui .w-100-l {\n width: 100%;\n }\n .swagger-ui .w-third-l {\n width: 33.33333%;\n }\n .swagger-ui .w-two-thirds-l {\n width: 66.66667%;\n }\n .swagger-ui .w-auto-l {\n width: auto;\n }\n}\n\n.swagger-ui .overflow-visible {\n overflow: visible;\n}\n\n.swagger-ui .overflow-hidden {\n overflow: hidden;\n}\n\n.swagger-ui .overflow-scroll {\n overflow: scroll;\n}\n\n.swagger-ui .overflow-auto {\n overflow: auto;\n}\n\n.swagger-ui .overflow-x-visible {\n overflow-x: visible;\n}\n\n.swagger-ui .overflow-x-hidden {\n overflow-x: hidden;\n}\n\n.swagger-ui .overflow-x-scroll {\n overflow-x: scroll;\n}\n\n.swagger-ui .overflow-x-auto {\n overflow-x: auto;\n}\n\n.swagger-ui .overflow-y-visible {\n overflow-y: visible;\n}\n\n.swagger-ui .overflow-y-hidden {\n overflow-y: hidden;\n}\n\n.swagger-ui .overflow-y-scroll {\n overflow-y: scroll;\n}\n\n.swagger-ui .overflow-y-auto {\n overflow-y: auto;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .overflow-visible-ns {\n overflow: visible;\n }\n .swagger-ui .overflow-hidden-ns {\n overflow: hidden;\n }\n .swagger-ui .overflow-scroll-ns {\n overflow: scroll;\n }\n .swagger-ui .overflow-auto-ns {\n overflow: auto;\n }\n .swagger-ui .overflow-x-visible-ns {\n overflow-x: visible;\n }\n .swagger-ui .overflow-x-hidden-ns {\n overflow-x: hidden;\n }\n .swagger-ui .overflow-x-scroll-ns {\n overflow-x: scroll;\n }\n .swagger-ui .overflow-x-auto-ns {\n overflow-x: auto;\n }\n .swagger-ui .overflow-y-visible-ns {\n overflow-y: visible;\n }\n .swagger-ui .overflow-y-hidden-ns {\n overflow-y: hidden;\n }\n .swagger-ui .overflow-y-scroll-ns {\n overflow-y: scroll;\n }\n .swagger-ui .overflow-y-auto-ns {\n overflow-y: auto;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .overflow-visible-m {\n overflow: visible;\n }\n .swagger-ui .overflow-hidden-m {\n overflow: hidden;\n }\n .swagger-ui .overflow-scroll-m {\n overflow: scroll;\n }\n .swagger-ui .overflow-auto-m {\n overflow: auto;\n }\n .swagger-ui .overflow-x-visible-m {\n overflow-x: visible;\n }\n .swagger-ui .overflow-x-hidden-m {\n overflow-x: hidden;\n }\n .swagger-ui .overflow-x-scroll-m {\n overflow-x: scroll;\n }\n .swagger-ui .overflow-x-auto-m {\n overflow-x: auto;\n }\n .swagger-ui .overflow-y-visible-m {\n overflow-y: visible;\n }\n .swagger-ui .overflow-y-hidden-m {\n overflow-y: hidden;\n }\n .swagger-ui .overflow-y-scroll-m {\n overflow-y: scroll;\n }\n .swagger-ui .overflow-y-auto-m {\n overflow-y: auto;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .overflow-visible-l {\n overflow: visible;\n }\n .swagger-ui .overflow-hidden-l {\n overflow: hidden;\n }\n .swagger-ui .overflow-scroll-l {\n overflow: scroll;\n }\n .swagger-ui .overflow-auto-l {\n overflow: auto;\n }\n .swagger-ui .overflow-x-visible-l {\n overflow-x: visible;\n }\n .swagger-ui .overflow-x-hidden-l {\n overflow-x: hidden;\n }\n .swagger-ui .overflow-x-scroll-l {\n overflow-x: scroll;\n }\n .swagger-ui .overflow-x-auto-l {\n overflow-x: auto;\n }\n .swagger-ui .overflow-y-visible-l {\n overflow-y: visible;\n }\n .swagger-ui .overflow-y-hidden-l {\n overflow-y: hidden;\n }\n .swagger-ui .overflow-y-scroll-l {\n overflow-y: scroll;\n }\n .swagger-ui .overflow-y-auto-l {\n overflow-y: auto;\n }\n}\n\n.swagger-ui .static {\n position: static;\n}\n\n.swagger-ui .relative {\n position: relative;\n}\n\n.swagger-ui .absolute {\n position: absolute;\n}\n\n.swagger-ui .fixed {\n position: fixed;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .static-ns {\n position: static;\n }\n .swagger-ui .relative-ns {\n position: relative;\n }\n .swagger-ui .absolute-ns {\n position: absolute;\n }\n .swagger-ui .fixed-ns {\n position: fixed;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .static-m {\n position: static;\n }\n .swagger-ui .relative-m {\n position: relative;\n }\n .swagger-ui .absolute-m {\n position: absolute;\n }\n .swagger-ui .fixed-m {\n position: fixed;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .static-l {\n position: static;\n }\n .swagger-ui .relative-l {\n position: relative;\n }\n .swagger-ui .absolute-l {\n position: absolute;\n }\n .swagger-ui .fixed-l {\n position: fixed;\n }\n}\n\n.swagger-ui .o-100 {\n opacity: 1;\n}\n\n.swagger-ui .o-90 {\n opacity: .9;\n}\n\n.swagger-ui .o-80 {\n opacity: .8;\n}\n\n.swagger-ui .o-70 {\n opacity: .7;\n}\n\n.swagger-ui .o-60 {\n opacity: .6;\n}\n\n.swagger-ui .o-50 {\n opacity: .5;\n}\n\n.swagger-ui .o-40 {\n opacity: .4;\n}\n\n.swagger-ui .o-30 {\n opacity: .3;\n}\n\n.swagger-ui .o-20 {\n opacity: .2;\n}\n\n.swagger-ui .o-10 {\n opacity: .1;\n}\n\n.swagger-ui .o-05 {\n opacity: .05;\n}\n\n.swagger-ui .o-025 {\n opacity: .025;\n}\n\n.swagger-ui .o-0 {\n opacity: 0;\n}\n\n.swagger-ui .rotate-45 {\n transform: rotate(45deg);\n}\n\n.swagger-ui .rotate-90 {\n transform: rotate(90deg);\n}\n\n.swagger-ui .rotate-135 {\n transform: rotate(135deg);\n}\n\n.swagger-ui .rotate-180 {\n transform: rotate(180deg);\n}\n\n.swagger-ui .rotate-225 {\n transform: rotate(225deg);\n}\n\n.swagger-ui .rotate-270 {\n transform: rotate(270deg);\n}\n\n.swagger-ui .rotate-315 {\n transform: rotate(315deg);\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .rotate-45-ns {\n transform: rotate(45deg);\n }\n .swagger-ui .rotate-90-ns {\n transform: rotate(90deg);\n }\n .swagger-ui .rotate-135-ns {\n transform: rotate(135deg);\n }\n .swagger-ui .rotate-180-ns {\n transform: rotate(180deg);\n }\n .swagger-ui .rotate-225-ns {\n transform: rotate(225deg);\n }\n .swagger-ui .rotate-270-ns {\n transform: rotate(270deg);\n }\n .swagger-ui .rotate-315-ns {\n transform: rotate(315deg);\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .rotate-45-m {\n transform: rotate(45deg);\n }\n .swagger-ui .rotate-90-m {\n transform: rotate(90deg);\n }\n .swagger-ui .rotate-135-m {\n transform: rotate(135deg);\n }\n .swagger-ui .rotate-180-m {\n transform: rotate(180deg);\n }\n .swagger-ui .rotate-225-m {\n transform: rotate(225deg);\n }\n .swagger-ui .rotate-270-m {\n transform: rotate(270deg);\n }\n .swagger-ui .rotate-315-m {\n transform: rotate(315deg);\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .rotate-45-l {\n transform: rotate(45deg);\n }\n .swagger-ui .rotate-90-l {\n transform: rotate(90deg);\n }\n .swagger-ui .rotate-135-l {\n transform: rotate(135deg);\n }\n .swagger-ui .rotate-180-l {\n transform: rotate(180deg);\n }\n .swagger-ui .rotate-225-l {\n transform: rotate(225deg);\n }\n .swagger-ui .rotate-270-l {\n transform: rotate(270deg);\n }\n .swagger-ui .rotate-315-l {\n transform: rotate(315deg);\n }\n}\n\n.swagger-ui .black-90 {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.swagger-ui .black-80 {\n color: rgba(0, 0, 0, 0.8);\n}\n\n.swagger-ui .black-70 {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.swagger-ui .black-60 {\n color: rgba(0, 0, 0, 0.6);\n}\n\n.swagger-ui .black-50 {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.swagger-ui .black-40 {\n color: rgba(0, 0, 0, 0.4);\n}\n\n.swagger-ui .black-30 {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.swagger-ui .black-20 {\n color: rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .black-10 {\n color: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .black-05 {\n color: rgba(0, 0, 0, 0.05);\n}\n\n.swagger-ui .white-90 {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.swagger-ui .white-80 {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.swagger-ui .white-70 {\n color: rgba(255, 255, 255, 0.7);\n}\n\n.swagger-ui .white-60 {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.swagger-ui .white-50 {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.swagger-ui .white-40 {\n color: rgba(255, 255, 255, 0.4);\n}\n\n.swagger-ui .white-30 {\n color: rgba(255, 255, 255, 0.3);\n}\n\n.swagger-ui .white-20 {\n color: rgba(255, 255, 255, 0.2);\n}\n\n.swagger-ui .white-10 {\n color: rgba(255, 255, 255, 0.1);\n}\n\n.swagger-ui .black {\n color: #000;\n}\n\n.swagger-ui .near-black {\n color: #111;\n}\n\n.swagger-ui .dark-gray {\n color: #333;\n}\n\n.swagger-ui .mid-gray {\n color: #555;\n}\n\n.swagger-ui .gray {\n color: #777;\n}\n\n.swagger-ui .silver {\n color: #999;\n}\n\n.swagger-ui .light-silver {\n color: #aaa;\n}\n\n.swagger-ui .moon-gray {\n color: #ccc;\n}\n\n.swagger-ui .light-gray {\n color: #eee;\n}\n\n.swagger-ui .near-white {\n color: #f4f4f4;\n}\n\n.swagger-ui .white {\n color: #fff;\n}\n\n.swagger-ui .dark-red {\n color: #e7040f;\n}\n\n.swagger-ui .red {\n color: #ff4136;\n}\n\n.swagger-ui .light-red {\n color: #ff725c;\n}\n\n.swagger-ui .orange {\n color: #ff6300;\n}\n\n.swagger-ui .gold {\n color: #ffb700;\n}\n\n.swagger-ui .yellow {\n color: #ffd700;\n}\n\n.swagger-ui .light-yellow {\n color: #fbf1a9;\n}\n\n.swagger-ui .purple {\n color: #5e2ca5;\n}\n\n.swagger-ui .light-purple {\n color: #a463f2;\n}\n\n.swagger-ui .dark-pink {\n color: #d5008f;\n}\n\n.swagger-ui .hot-pink {\n color: #ff41b4;\n}\n\n.swagger-ui .pink {\n color: #ff80cc;\n}\n\n.swagger-ui .light-pink {\n color: #ffa3d7;\n}\n\n.swagger-ui .dark-green {\n color: #137752;\n}\n\n.swagger-ui .green {\n color: #19a974;\n}\n\n.swagger-ui .light-green {\n color: #9eebcf;\n}\n\n.swagger-ui .navy {\n color: #001b44;\n}\n\n.swagger-ui .dark-blue {\n color: #00449e;\n}\n\n.swagger-ui .blue {\n color: #357edd;\n}\n\n.swagger-ui .light-blue {\n color: #96ccff;\n}\n\n.swagger-ui .lightest-blue {\n color: #cdecff;\n}\n\n.swagger-ui .washed-blue {\n color: #f6fffe;\n}\n\n.swagger-ui .washed-green {\n color: #e8fdf5;\n}\n\n.swagger-ui .washed-yellow {\n color: #fffceb;\n}\n\n.swagger-ui .washed-red {\n color: #ffdfdf;\n}\n\n.swagger-ui .color-inherit {\n color: inherit;\n}\n\n.swagger-ui .bg-black-90 {\n background-color: rgba(0, 0, 0, 0.9);\n}\n\n.swagger-ui .bg-black-80 {\n background-color: rgba(0, 0, 0, 0.8);\n}\n\n.swagger-ui .bg-black-70 {\n background-color: rgba(0, 0, 0, 0.7);\n}\n\n.swagger-ui .bg-black-60 {\n background-color: rgba(0, 0, 0, 0.6);\n}\n\n.swagger-ui .bg-black-50 {\n background-color: rgba(0, 0, 0, 0.5);\n}\n\n.swagger-ui .bg-black-40 {\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.swagger-ui .bg-black-30 {\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.swagger-ui .bg-black-20 {\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .bg-black-10 {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .bg-black-05 {\n background-color: rgba(0, 0, 0, 0.05);\n}\n\n.swagger-ui .bg-white-90 {\n background-color: rgba(255, 255, 255, 0.9);\n}\n\n.swagger-ui .bg-white-80 {\n background-color: rgba(255, 255, 255, 0.8);\n}\n\n.swagger-ui .bg-white-70 {\n background-color: rgba(255, 255, 255, 0.7);\n}\n\n.swagger-ui .bg-white-60 {\n background-color: rgba(255, 255, 255, 0.6);\n}\n\n.swagger-ui .bg-white-50 {\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.swagger-ui .bg-white-40 {\n background-color: rgba(255, 255, 255, 0.4);\n}\n\n.swagger-ui .bg-white-30 {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n.swagger-ui .bg-white-20 {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.swagger-ui .bg-white-10 {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\n.swagger-ui .bg-black {\n background-color: #000;\n}\n\n.swagger-ui .bg-near-black {\n background-color: #111;\n}\n\n.swagger-ui .bg-dark-gray {\n background-color: #333;\n}\n\n.swagger-ui .bg-mid-gray {\n background-color: #555;\n}\n\n.swagger-ui .bg-gray {\n background-color: #777;\n}\n\n.swagger-ui .bg-silver {\n background-color: #999;\n}\n\n.swagger-ui .bg-light-silver {\n background-color: #aaa;\n}\n\n.swagger-ui .bg-moon-gray {\n background-color: #ccc;\n}\n\n.swagger-ui .bg-light-gray {\n background-color: #eee;\n}\n\n.swagger-ui .bg-near-white {\n background-color: #f4f4f4;\n}\n\n.swagger-ui .bg-white {\n background-color: #fff;\n}\n\n.swagger-ui .bg-transparent {\n background-color: transparent;\n}\n\n.swagger-ui .bg-dark-red {\n background-color: #e7040f;\n}\n\n.swagger-ui .bg-red {\n background-color: #ff4136;\n}\n\n.swagger-ui .bg-light-red {\n background-color: #ff725c;\n}\n\n.swagger-ui .bg-orange {\n background-color: #ff6300;\n}\n\n.swagger-ui .bg-gold {\n background-color: #ffb700;\n}\n\n.swagger-ui .bg-yellow {\n background-color: #ffd700;\n}\n\n.swagger-ui .bg-light-yellow {\n background-color: #fbf1a9;\n}\n\n.swagger-ui .bg-purple {\n background-color: #5e2ca5;\n}\n\n.swagger-ui .bg-light-purple {\n background-color: #a463f2;\n}\n\n.swagger-ui .bg-dark-pink {\n background-color: #d5008f;\n}\n\n.swagger-ui .bg-hot-pink {\n background-color: #ff41b4;\n}\n\n.swagger-ui .bg-pink {\n background-color: #ff80cc;\n}\n\n.swagger-ui .bg-light-pink {\n background-color: #ffa3d7;\n}\n\n.swagger-ui .bg-dark-green {\n background-color: #137752;\n}\n\n.swagger-ui .bg-green {\n background-color: #19a974;\n}\n\n.swagger-ui .bg-light-green {\n background-color: #9eebcf;\n}\n\n.swagger-ui .bg-navy {\n background-color: #001b44;\n}\n\n.swagger-ui .bg-dark-blue {\n background-color: #00449e;\n}\n\n.swagger-ui .bg-blue {\n background-color: #357edd;\n}\n\n.swagger-ui .bg-light-blue {\n background-color: #96ccff;\n}\n\n.swagger-ui .bg-lightest-blue {\n background-color: #cdecff;\n}\n\n.swagger-ui .bg-washed-blue {\n background-color: #f6fffe;\n}\n\n.swagger-ui .bg-washed-green {\n background-color: #e8fdf5;\n}\n\n.swagger-ui .bg-washed-yellow {\n background-color: #fffceb;\n}\n\n.swagger-ui .bg-washed-red {\n background-color: #ffdfdf;\n}\n\n.swagger-ui .bg-inherit {\n background-color: inherit;\n}\n\n.swagger-ui .hover-black:hover,\n.swagger-ui .hover-black:focus {\n color: #000;\n}\n\n.swagger-ui .hover-near-black:hover,\n.swagger-ui .hover-near-black:focus {\n color: #111;\n}\n\n.swagger-ui .hover-dark-gray:hover,\n.swagger-ui .hover-dark-gray:focus {\n color: #333;\n}\n\n.swagger-ui .hover-mid-gray:hover,\n.swagger-ui .hover-mid-gray:focus {\n color: #555;\n}\n\n.swagger-ui .hover-gray:hover,\n.swagger-ui .hover-gray:focus {\n color: #777;\n}\n\n.swagger-ui .hover-silver:hover,\n.swagger-ui .hover-silver:focus {\n color: #999;\n}\n\n.swagger-ui .hover-light-silver:hover,\n.swagger-ui .hover-light-silver:focus {\n color: #aaa;\n}\n\n.swagger-ui .hover-moon-gray:hover,\n.swagger-ui .hover-moon-gray:focus {\n color: #ccc;\n}\n\n.swagger-ui .hover-light-gray:hover,\n.swagger-ui .hover-light-gray:focus {\n color: #eee;\n}\n\n.swagger-ui .hover-near-white:hover,\n.swagger-ui .hover-near-white:focus {\n color: #f4f4f4;\n}\n\n.swagger-ui .hover-white:hover,\n.swagger-ui .hover-white:focus {\n color: #fff;\n}\n\n.swagger-ui .hover-black-90:hover,\n.swagger-ui .hover-black-90:focus {\n color: rgba(0, 0, 0, 0.9);\n}\n\n.swagger-ui .hover-black-80:hover,\n.swagger-ui .hover-black-80:focus {\n color: rgba(0, 0, 0, 0.8);\n}\n\n.swagger-ui .hover-black-70:hover,\n.swagger-ui .hover-black-70:focus {\n color: rgba(0, 0, 0, 0.7);\n}\n\n.swagger-ui .hover-black-60:hover,\n.swagger-ui .hover-black-60:focus {\n color: rgba(0, 0, 0, 0.6);\n}\n\n.swagger-ui .hover-black-50:hover,\n.swagger-ui .hover-black-50:focus {\n color: rgba(0, 0, 0, 0.5);\n}\n\n.swagger-ui .hover-black-40:hover,\n.swagger-ui .hover-black-40:focus {\n color: rgba(0, 0, 0, 0.4);\n}\n\n.swagger-ui .hover-black-30:hover,\n.swagger-ui .hover-black-30:focus {\n color: rgba(0, 0, 0, 0.3);\n}\n\n.swagger-ui .hover-black-20:hover,\n.swagger-ui .hover-black-20:focus {\n color: rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .hover-black-10:hover,\n.swagger-ui .hover-black-10:focus {\n color: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .hover-white-90:hover,\n.swagger-ui .hover-white-90:focus {\n color: rgba(255, 255, 255, 0.9);\n}\n\n.swagger-ui .hover-white-80:hover,\n.swagger-ui .hover-white-80:focus {\n color: rgba(255, 255, 255, 0.8);\n}\n\n.swagger-ui .hover-white-70:hover,\n.swagger-ui .hover-white-70:focus {\n color: rgba(255, 255, 255, 0.7);\n}\n\n.swagger-ui .hover-white-60:hover,\n.swagger-ui .hover-white-60:focus {\n color: rgba(255, 255, 255, 0.6);\n}\n\n.swagger-ui .hover-white-50:hover,\n.swagger-ui .hover-white-50:focus {\n color: rgba(255, 255, 255, 0.5);\n}\n\n.swagger-ui .hover-white-40:hover,\n.swagger-ui .hover-white-40:focus {\n color: rgba(255, 255, 255, 0.4);\n}\n\n.swagger-ui .hover-white-30:hover,\n.swagger-ui .hover-white-30:focus {\n color: rgba(255, 255, 255, 0.3);\n}\n\n.swagger-ui .hover-white-20:hover,\n.swagger-ui .hover-white-20:focus {\n color: rgba(255, 255, 255, 0.2);\n}\n\n.swagger-ui .hover-white-10:hover,\n.swagger-ui .hover-white-10:focus {\n color: rgba(255, 255, 255, 0.1);\n}\n\n.swagger-ui .hover-inherit:hover,\n.swagger-ui .hover-inherit:focus {\n color: inherit;\n}\n\n.swagger-ui .hover-bg-black:hover,\n.swagger-ui .hover-bg-black:focus {\n background-color: #000;\n}\n\n.swagger-ui .hover-bg-near-black:hover,\n.swagger-ui .hover-bg-near-black:focus {\n background-color: #111;\n}\n\n.swagger-ui .hover-bg-dark-gray:hover,\n.swagger-ui .hover-bg-dark-gray:focus {\n background-color: #333;\n}\n\n.swagger-ui .hover-bg-mid-gray:hover,\n.swagger-ui .hover-bg-mid-gray:focus {\n background-color: #555;\n}\n\n.swagger-ui .hover-bg-gray:hover,\n.swagger-ui .hover-bg-gray:focus {\n background-color: #777;\n}\n\n.swagger-ui .hover-bg-silver:hover,\n.swagger-ui .hover-bg-silver:focus {\n background-color: #999;\n}\n\n.swagger-ui .hover-bg-light-silver:hover,\n.swagger-ui .hover-bg-light-silver:focus {\n background-color: #aaa;\n}\n\n.swagger-ui .hover-bg-moon-gray:hover,\n.swagger-ui .hover-bg-moon-gray:focus {\n background-color: #ccc;\n}\n\n.swagger-ui .hover-bg-light-gray:hover,\n.swagger-ui .hover-bg-light-gray:focus {\n background-color: #eee;\n}\n\n.swagger-ui .hover-bg-near-white:hover,\n.swagger-ui .hover-bg-near-white:focus {\n background-color: #f4f4f4;\n}\n\n.swagger-ui .hover-bg-white:hover,\n.swagger-ui .hover-bg-white:focus {\n background-color: #fff;\n}\n\n.swagger-ui .hover-bg-transparent:hover,\n.swagger-ui .hover-bg-transparent:focus {\n background-color: transparent;\n}\n\n.swagger-ui .hover-bg-black-90:hover,\n.swagger-ui .hover-bg-black-90:focus {\n background-color: rgba(0, 0, 0, 0.9);\n}\n\n.swagger-ui .hover-bg-black-80:hover,\n.swagger-ui .hover-bg-black-80:focus {\n background-color: rgba(0, 0, 0, 0.8);\n}\n\n.swagger-ui .hover-bg-black-70:hover,\n.swagger-ui .hover-bg-black-70:focus {\n background-color: rgba(0, 0, 0, 0.7);\n}\n\n.swagger-ui .hover-bg-black-60:hover,\n.swagger-ui .hover-bg-black-60:focus {\n background-color: rgba(0, 0, 0, 0.6);\n}\n\n.swagger-ui .hover-bg-black-50:hover,\n.swagger-ui .hover-bg-black-50:focus {\n background-color: rgba(0, 0, 0, 0.5);\n}\n\n.swagger-ui .hover-bg-black-40:hover,\n.swagger-ui .hover-bg-black-40:focus {\n background-color: rgba(0, 0, 0, 0.4);\n}\n\n.swagger-ui .hover-bg-black-30:hover,\n.swagger-ui .hover-bg-black-30:focus {\n background-color: rgba(0, 0, 0, 0.3);\n}\n\n.swagger-ui .hover-bg-black-20:hover,\n.swagger-ui .hover-bg-black-20:focus {\n background-color: rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .hover-bg-black-10:hover,\n.swagger-ui .hover-bg-black-10:focus {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .hover-bg-white-90:hover,\n.swagger-ui .hover-bg-white-90:focus {\n background-color: rgba(255, 255, 255, 0.9);\n}\n\n.swagger-ui .hover-bg-white-80:hover,\n.swagger-ui .hover-bg-white-80:focus {\n background-color: rgba(255, 255, 255, 0.8);\n}\n\n.swagger-ui .hover-bg-white-70:hover,\n.swagger-ui .hover-bg-white-70:focus {\n background-color: rgba(255, 255, 255, 0.7);\n}\n\n.swagger-ui .hover-bg-white-60:hover,\n.swagger-ui .hover-bg-white-60:focus {\n background-color: rgba(255, 255, 255, 0.6);\n}\n\n.swagger-ui .hover-bg-white-50:hover,\n.swagger-ui .hover-bg-white-50:focus {\n background-color: rgba(255, 255, 255, 0.5);\n}\n\n.swagger-ui .hover-bg-white-40:hover,\n.swagger-ui .hover-bg-white-40:focus {\n background-color: rgba(255, 255, 255, 0.4);\n}\n\n.swagger-ui .hover-bg-white-30:hover,\n.swagger-ui .hover-bg-white-30:focus {\n background-color: rgba(255, 255, 255, 0.3);\n}\n\n.swagger-ui .hover-bg-white-20:hover,\n.swagger-ui .hover-bg-white-20:focus {\n background-color: rgba(255, 255, 255, 0.2);\n}\n\n.swagger-ui .hover-bg-white-10:hover,\n.swagger-ui .hover-bg-white-10:focus {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\n.swagger-ui .hover-dark-red:hover,\n.swagger-ui .hover-dark-red:focus {\n color: #e7040f;\n}\n\n.swagger-ui .hover-red:hover,\n.swagger-ui .hover-red:focus {\n color: #ff4136;\n}\n\n.swagger-ui .hover-light-red:hover,\n.swagger-ui .hover-light-red:focus {\n color: #ff725c;\n}\n\n.swagger-ui .hover-orange:hover,\n.swagger-ui .hover-orange:focus {\n color: #ff6300;\n}\n\n.swagger-ui .hover-gold:hover,\n.swagger-ui .hover-gold:focus {\n color: #ffb700;\n}\n\n.swagger-ui .hover-yellow:hover,\n.swagger-ui .hover-yellow:focus {\n color: #ffd700;\n}\n\n.swagger-ui .hover-light-yellow:hover,\n.swagger-ui .hover-light-yellow:focus {\n color: #fbf1a9;\n}\n\n.swagger-ui .hover-purple:hover,\n.swagger-ui .hover-purple:focus {\n color: #5e2ca5;\n}\n\n.swagger-ui .hover-light-purple:hover,\n.swagger-ui .hover-light-purple:focus {\n color: #a463f2;\n}\n\n.swagger-ui .hover-dark-pink:hover,\n.swagger-ui .hover-dark-pink:focus {\n color: #d5008f;\n}\n\n.swagger-ui .hover-hot-pink:hover,\n.swagger-ui .hover-hot-pink:focus {\n color: #ff41b4;\n}\n\n.swagger-ui .hover-pink:hover,\n.swagger-ui .hover-pink:focus {\n color: #ff80cc;\n}\n\n.swagger-ui .hover-light-pink:hover,\n.swagger-ui .hover-light-pink:focus {\n color: #ffa3d7;\n}\n\n.swagger-ui .hover-dark-green:hover,\n.swagger-ui .hover-dark-green:focus {\n color: #137752;\n}\n\n.swagger-ui .hover-green:hover,\n.swagger-ui .hover-green:focus {\n color: #19a974;\n}\n\n.swagger-ui .hover-light-green:hover,\n.swagger-ui .hover-light-green:focus {\n color: #9eebcf;\n}\n\n.swagger-ui .hover-navy:hover,\n.swagger-ui .hover-navy:focus {\n color: #001b44;\n}\n\n.swagger-ui .hover-dark-blue:hover,\n.swagger-ui .hover-dark-blue:focus {\n color: #00449e;\n}\n\n.swagger-ui .hover-blue:hover,\n.swagger-ui .hover-blue:focus {\n color: #357edd;\n}\n\n.swagger-ui .hover-light-blue:hover,\n.swagger-ui .hover-light-blue:focus {\n color: #96ccff;\n}\n\n.swagger-ui .hover-lightest-blue:hover,\n.swagger-ui .hover-lightest-blue:focus {\n color: #cdecff;\n}\n\n.swagger-ui .hover-washed-blue:hover,\n.swagger-ui .hover-washed-blue:focus {\n color: #f6fffe;\n}\n\n.swagger-ui .hover-washed-green:hover,\n.swagger-ui .hover-washed-green:focus {\n color: #e8fdf5;\n}\n\n.swagger-ui .hover-washed-yellow:hover,\n.swagger-ui .hover-washed-yellow:focus {\n color: #fffceb;\n}\n\n.swagger-ui .hover-washed-red:hover,\n.swagger-ui .hover-washed-red:focus {\n color: #ffdfdf;\n}\n\n.swagger-ui .hover-bg-dark-red:hover,\n.swagger-ui .hover-bg-dark-red:focus {\n background-color: #e7040f;\n}\n\n.swagger-ui .hover-bg-red:hover,\n.swagger-ui .hover-bg-red:focus {\n background-color: #ff4136;\n}\n\n.swagger-ui .hover-bg-light-red:hover,\n.swagger-ui .hover-bg-light-red:focus {\n background-color: #ff725c;\n}\n\n.swagger-ui .hover-bg-orange:hover,\n.swagger-ui .hover-bg-orange:focus {\n background-color: #ff6300;\n}\n\n.swagger-ui .hover-bg-gold:hover,\n.swagger-ui .hover-bg-gold:focus {\n background-color: #ffb700;\n}\n\n.swagger-ui .hover-bg-yellow:hover,\n.swagger-ui .hover-bg-yellow:focus {\n background-color: #ffd700;\n}\n\n.swagger-ui .hover-bg-light-yellow:hover,\n.swagger-ui .hover-bg-light-yellow:focus {\n background-color: #fbf1a9;\n}\n\n.swagger-ui .hover-bg-purple:hover,\n.swagger-ui .hover-bg-purple:focus {\n background-color: #5e2ca5;\n}\n\n.swagger-ui .hover-bg-light-purple:hover,\n.swagger-ui .hover-bg-light-purple:focus {\n background-color: #a463f2;\n}\n\n.swagger-ui .hover-bg-dark-pink:hover,\n.swagger-ui .hover-bg-dark-pink:focus {\n background-color: #d5008f;\n}\n\n.swagger-ui .hover-bg-hot-pink:hover,\n.swagger-ui .hover-bg-hot-pink:focus {\n background-color: #ff41b4;\n}\n\n.swagger-ui .hover-bg-pink:hover,\n.swagger-ui .hover-bg-pink:focus {\n background-color: #ff80cc;\n}\n\n.swagger-ui .hover-bg-light-pink:hover,\n.swagger-ui .hover-bg-light-pink:focus {\n background-color: #ffa3d7;\n}\n\n.swagger-ui .hover-bg-dark-green:hover,\n.swagger-ui .hover-bg-dark-green:focus {\n background-color: #137752;\n}\n\n.swagger-ui .hover-bg-green:hover,\n.swagger-ui .hover-bg-green:focus {\n background-color: #19a974;\n}\n\n.swagger-ui .hover-bg-light-green:hover,\n.swagger-ui .hover-bg-light-green:focus {\n background-color: #9eebcf;\n}\n\n.swagger-ui .hover-bg-navy:hover,\n.swagger-ui .hover-bg-navy:focus {\n background-color: #001b44;\n}\n\n.swagger-ui .hover-bg-dark-blue:hover,\n.swagger-ui .hover-bg-dark-blue:focus {\n background-color: #00449e;\n}\n\n.swagger-ui .hover-bg-blue:hover,\n.swagger-ui .hover-bg-blue:focus {\n background-color: #357edd;\n}\n\n.swagger-ui .hover-bg-light-blue:hover,\n.swagger-ui .hover-bg-light-blue:focus {\n background-color: #96ccff;\n}\n\n.swagger-ui .hover-bg-lightest-blue:hover,\n.swagger-ui .hover-bg-lightest-blue:focus {\n background-color: #cdecff;\n}\n\n.swagger-ui .hover-bg-washed-blue:hover,\n.swagger-ui .hover-bg-washed-blue:focus {\n background-color: #f6fffe;\n}\n\n.swagger-ui .hover-bg-washed-green:hover,\n.swagger-ui .hover-bg-washed-green:focus {\n background-color: #e8fdf5;\n}\n\n.swagger-ui .hover-bg-washed-yellow:hover,\n.swagger-ui .hover-bg-washed-yellow:focus {\n background-color: #fffceb;\n}\n\n.swagger-ui .hover-bg-washed-red:hover,\n.swagger-ui .hover-bg-washed-red:focus {\n background-color: #ffdfdf;\n}\n\n.swagger-ui .hover-bg-inherit:hover,\n.swagger-ui .hover-bg-inherit:focus {\n background-color: inherit;\n}\n\n.swagger-ui .pa0 {\n padding: 0;\n}\n\n.swagger-ui .pa1 {\n padding: 0.25rem;\n}\n\n.swagger-ui .pa2 {\n padding: 0.5rem;\n}\n\n.swagger-ui .pa3 {\n padding: 1rem;\n}\n\n.swagger-ui .pa4 {\n padding: 2rem;\n}\n\n.swagger-ui .pa5 {\n padding: 4rem;\n}\n\n.swagger-ui .pa6 {\n padding: 8rem;\n}\n\n.swagger-ui .pa7 {\n padding: 16rem;\n}\n\n.swagger-ui .pl0 {\n padding-left: 0;\n}\n\n.swagger-ui .pl1 {\n padding-left: 0.25rem;\n}\n\n.swagger-ui .pl2 {\n padding-left: 0.5rem;\n}\n\n.swagger-ui .pl3 {\n padding-left: 1rem;\n}\n\n.swagger-ui .pl4 {\n padding-left: 2rem;\n}\n\n.swagger-ui .pl5 {\n padding-left: 4rem;\n}\n\n.swagger-ui .pl6 {\n padding-left: 8rem;\n}\n\n.swagger-ui .pl7 {\n padding-left: 16rem;\n}\n\n.swagger-ui .pr0 {\n padding-right: 0;\n}\n\n.swagger-ui .pr1 {\n padding-right: 0.25rem;\n}\n\n.swagger-ui .pr2 {\n padding-right: 0.5rem;\n}\n\n.swagger-ui .pr3 {\n padding-right: 1rem;\n}\n\n.swagger-ui .pr4 {\n padding-right: 2rem;\n}\n\n.swagger-ui .pr5 {\n padding-right: 4rem;\n}\n\n.swagger-ui .pr6 {\n padding-right: 8rem;\n}\n\n.swagger-ui .pr7 {\n padding-right: 16rem;\n}\n\n.swagger-ui .pb0 {\n padding-bottom: 0;\n}\n\n.swagger-ui .pb1 {\n padding-bottom: 0.25rem;\n}\n\n.swagger-ui .pb2 {\n padding-bottom: 0.5rem;\n}\n\n.swagger-ui .pb3 {\n padding-bottom: 1rem;\n}\n\n.swagger-ui .pb4 {\n padding-bottom: 2rem;\n}\n\n.swagger-ui .pb5 {\n padding-bottom: 4rem;\n}\n\n.swagger-ui .pb6 {\n padding-bottom: 8rem;\n}\n\n.swagger-ui .pb7 {\n padding-bottom: 16rem;\n}\n\n.swagger-ui .pt0 {\n padding-top: 0;\n}\n\n.swagger-ui .pt1 {\n padding-top: 0.25rem;\n}\n\n.swagger-ui .pt2 {\n padding-top: 0.5rem;\n}\n\n.swagger-ui .pt3 {\n padding-top: 1rem;\n}\n\n.swagger-ui .pt4 {\n padding-top: 2rem;\n}\n\n.swagger-ui .pt5 {\n padding-top: 4rem;\n}\n\n.swagger-ui .pt6 {\n padding-top: 8rem;\n}\n\n.swagger-ui .pt7 {\n padding-top: 16rem;\n}\n\n.swagger-ui .pv0 {\n padding-top: 0;\n padding-bottom: 0;\n}\n\n.swagger-ui .pv1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n\n.swagger-ui .pv2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n\n.swagger-ui .pv3 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n\n.swagger-ui .pv4 {\n padding-top: 2rem;\n padding-bottom: 2rem;\n}\n\n.swagger-ui .pv5 {\n padding-top: 4rem;\n padding-bottom: 4rem;\n}\n\n.swagger-ui .pv6 {\n padding-top: 8rem;\n padding-bottom: 8rem;\n}\n\n.swagger-ui .pv7 {\n padding-top: 16rem;\n padding-bottom: 16rem;\n}\n\n.swagger-ui .ph0 {\n padding-left: 0;\n padding-right: 0;\n}\n\n.swagger-ui .ph1 {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n}\n\n.swagger-ui .ph2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n\n.swagger-ui .ph3 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n\n.swagger-ui .ph4 {\n padding-left: 2rem;\n padding-right: 2rem;\n}\n\n.swagger-ui .ph5 {\n padding-left: 4rem;\n padding-right: 4rem;\n}\n\n.swagger-ui .ph6 {\n padding-left: 8rem;\n padding-right: 8rem;\n}\n\n.swagger-ui .ph7 {\n padding-left: 16rem;\n padding-right: 16rem;\n}\n\n.swagger-ui .ma0 {\n margin: 0;\n}\n\n.swagger-ui .ma1 {\n margin: 0.25rem;\n}\n\n.swagger-ui .ma2 {\n margin: 0.5rem;\n}\n\n.swagger-ui .ma3 {\n margin: 1rem;\n}\n\n.swagger-ui .ma4 {\n margin: 2rem;\n}\n\n.swagger-ui .ma5 {\n margin: 4rem;\n}\n\n.swagger-ui .ma6 {\n margin: 8rem;\n}\n\n.swagger-ui .ma7 {\n margin: 16rem;\n}\n\n.swagger-ui .ml0 {\n margin-left: 0;\n}\n\n.swagger-ui .ml1 {\n margin-left: 0.25rem;\n}\n\n.swagger-ui .ml2 {\n margin-left: 0.5rem;\n}\n\n.swagger-ui .ml3 {\n margin-left: 1rem;\n}\n\n.swagger-ui .ml4 {\n margin-left: 2rem;\n}\n\n.swagger-ui .ml5 {\n margin-left: 4rem;\n}\n\n.swagger-ui .ml6 {\n margin-left: 8rem;\n}\n\n.swagger-ui .ml7 {\n margin-left: 16rem;\n}\n\n.swagger-ui .mr0 {\n margin-right: 0;\n}\n\n.swagger-ui .mr1 {\n margin-right: 0.25rem;\n}\n\n.swagger-ui .mr2 {\n margin-right: 0.5rem;\n}\n\n.swagger-ui .mr3 {\n margin-right: 1rem;\n}\n\n.swagger-ui .mr4 {\n margin-right: 2rem;\n}\n\n.swagger-ui .mr5 {\n margin-right: 4rem;\n}\n\n.swagger-ui .mr6 {\n margin-right: 8rem;\n}\n\n.swagger-ui .mr7 {\n margin-right: 16rem;\n}\n\n.swagger-ui .mb0 {\n margin-bottom: 0;\n}\n\n.swagger-ui .mb1 {\n margin-bottom: 0.25rem;\n}\n\n.swagger-ui .mb2 {\n margin-bottom: 0.5rem;\n}\n\n.swagger-ui .mb3 {\n margin-bottom: 1rem;\n}\n\n.swagger-ui .mb4 {\n margin-bottom: 2rem;\n}\n\n.swagger-ui .mb5 {\n margin-bottom: 4rem;\n}\n\n.swagger-ui .mb6 {\n margin-bottom: 8rem;\n}\n\n.swagger-ui .mb7 {\n margin-bottom: 16rem;\n}\n\n.swagger-ui .mt0 {\n margin-top: 0;\n}\n\n.swagger-ui .mt1 {\n margin-top: 0.25rem;\n}\n\n.swagger-ui .mt2 {\n margin-top: 0.5rem;\n}\n\n.swagger-ui .mt3 {\n margin-top: 1rem;\n}\n\n.swagger-ui .mt4 {\n margin-top: 2rem;\n}\n\n.swagger-ui .mt5 {\n margin-top: 4rem;\n}\n\n.swagger-ui .mt6 {\n margin-top: 8rem;\n}\n\n.swagger-ui .mt7 {\n margin-top: 16rem;\n}\n\n.swagger-ui .mv0 {\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.swagger-ui .mv1 {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n}\n\n.swagger-ui .mv2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n\n.swagger-ui .mv3 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n\n.swagger-ui .mv4 {\n margin-top: 2rem;\n margin-bottom: 2rem;\n}\n\n.swagger-ui .mv5 {\n margin-top: 4rem;\n margin-bottom: 4rem;\n}\n\n.swagger-ui .mv6 {\n margin-top: 8rem;\n margin-bottom: 8rem;\n}\n\n.swagger-ui .mv7 {\n margin-top: 16rem;\n margin-bottom: 16rem;\n}\n\n.swagger-ui .mh0 {\n margin-left: 0;\n margin-right: 0;\n}\n\n.swagger-ui .mh1 {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n}\n\n.swagger-ui .mh2 {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n}\n\n.swagger-ui .mh3 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n\n.swagger-ui .mh4 {\n margin-left: 2rem;\n margin-right: 2rem;\n}\n\n.swagger-ui .mh5 {\n margin-left: 4rem;\n margin-right: 4rem;\n}\n\n.swagger-ui .mh6 {\n margin-left: 8rem;\n margin-right: 8rem;\n}\n\n.swagger-ui .mh7 {\n margin-left: 16rem;\n margin-right: 16rem;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .pa0-ns {\n padding: 0;\n }\n .swagger-ui .pa1-ns {\n padding: 0.25rem;\n }\n .swagger-ui .pa2-ns {\n padding: 0.5rem;\n }\n .swagger-ui .pa3-ns {\n padding: 1rem;\n }\n .swagger-ui .pa4-ns {\n padding: 2rem;\n }\n .swagger-ui .pa5-ns {\n padding: 4rem;\n }\n .swagger-ui .pa6-ns {\n padding: 8rem;\n }\n .swagger-ui .pa7-ns {\n padding: 16rem;\n }\n .swagger-ui .pl0-ns {\n padding-left: 0;\n }\n .swagger-ui .pl1-ns {\n padding-left: 0.25rem;\n }\n .swagger-ui .pl2-ns {\n padding-left: 0.5rem;\n }\n .swagger-ui .pl3-ns {\n padding-left: 1rem;\n }\n .swagger-ui .pl4-ns {\n padding-left: 2rem;\n }\n .swagger-ui .pl5-ns {\n padding-left: 4rem;\n }\n .swagger-ui .pl6-ns {\n padding-left: 8rem;\n }\n .swagger-ui .pl7-ns {\n padding-left: 16rem;\n }\n .swagger-ui .pr0-ns {\n padding-right: 0;\n }\n .swagger-ui .pr1-ns {\n padding-right: 0.25rem;\n }\n .swagger-ui .pr2-ns {\n padding-right: 0.5rem;\n }\n .swagger-ui .pr3-ns {\n padding-right: 1rem;\n }\n .swagger-ui .pr4-ns {\n padding-right: 2rem;\n }\n .swagger-ui .pr5-ns {\n padding-right: 4rem;\n }\n .swagger-ui .pr6-ns {\n padding-right: 8rem;\n }\n .swagger-ui .pr7-ns {\n padding-right: 16rem;\n }\n .swagger-ui .pb0-ns {\n padding-bottom: 0;\n }\n .swagger-ui .pb1-ns {\n padding-bottom: 0.25rem;\n }\n .swagger-ui .pb2-ns {\n padding-bottom: 0.5rem;\n }\n .swagger-ui .pb3-ns {\n padding-bottom: 1rem;\n }\n .swagger-ui .pb4-ns {\n padding-bottom: 2rem;\n }\n .swagger-ui .pb5-ns {\n padding-bottom: 4rem;\n }\n .swagger-ui .pb6-ns {\n padding-bottom: 8rem;\n }\n .swagger-ui .pb7-ns {\n padding-bottom: 16rem;\n }\n .swagger-ui .pt0-ns {\n padding-top: 0;\n }\n .swagger-ui .pt1-ns {\n padding-top: 0.25rem;\n }\n .swagger-ui .pt2-ns {\n padding-top: 0.5rem;\n }\n .swagger-ui .pt3-ns {\n padding-top: 1rem;\n }\n .swagger-ui .pt4-ns {\n padding-top: 2rem;\n }\n .swagger-ui .pt5-ns {\n padding-top: 4rem;\n }\n .swagger-ui .pt6-ns {\n padding-top: 8rem;\n }\n .swagger-ui .pt7-ns {\n padding-top: 16rem;\n }\n .swagger-ui .pv0-ns {\n padding-top: 0;\n padding-bottom: 0;\n }\n .swagger-ui .pv1-ns {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n }\n .swagger-ui .pv2-ns {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n .swagger-ui .pv3-ns {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n .swagger-ui .pv4-ns {\n padding-top: 2rem;\n padding-bottom: 2rem;\n }\n .swagger-ui .pv5-ns {\n padding-top: 4rem;\n padding-bottom: 4rem;\n }\n .swagger-ui .pv6-ns {\n padding-top: 8rem;\n padding-bottom: 8rem;\n }\n .swagger-ui .pv7-ns {\n padding-top: 16rem;\n padding-bottom: 16rem;\n }\n .swagger-ui .ph0-ns {\n padding-left: 0;\n padding-right: 0;\n }\n .swagger-ui .ph1-ns {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n }\n .swagger-ui .ph2-ns {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n .swagger-ui .ph3-ns {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n .swagger-ui .ph4-ns {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n .swagger-ui .ph5-ns {\n padding-left: 4rem;\n padding-right: 4rem;\n }\n .swagger-ui .ph6-ns {\n padding-left: 8rem;\n padding-right: 8rem;\n }\n .swagger-ui .ph7-ns {\n padding-left: 16rem;\n padding-right: 16rem;\n }\n .swagger-ui .ma0-ns {\n margin: 0;\n }\n .swagger-ui .ma1-ns {\n margin: 0.25rem;\n }\n .swagger-ui .ma2-ns {\n margin: 0.5rem;\n }\n .swagger-ui .ma3-ns {\n margin: 1rem;\n }\n .swagger-ui .ma4-ns {\n margin: 2rem;\n }\n .swagger-ui .ma5-ns {\n margin: 4rem;\n }\n .swagger-ui .ma6-ns {\n margin: 8rem;\n }\n .swagger-ui .ma7-ns {\n margin: 16rem;\n }\n .swagger-ui .ml0-ns {\n margin-left: 0;\n }\n .swagger-ui .ml1-ns {\n margin-left: 0.25rem;\n }\n .swagger-ui .ml2-ns {\n margin-left: 0.5rem;\n }\n .swagger-ui .ml3-ns {\n margin-left: 1rem;\n }\n .swagger-ui .ml4-ns {\n margin-left: 2rem;\n }\n .swagger-ui .ml5-ns {\n margin-left: 4rem;\n }\n .swagger-ui .ml6-ns {\n margin-left: 8rem;\n }\n .swagger-ui .ml7-ns {\n margin-left: 16rem;\n }\n .swagger-ui .mr0-ns {\n margin-right: 0;\n }\n .swagger-ui .mr1-ns {\n margin-right: 0.25rem;\n }\n .swagger-ui .mr2-ns {\n margin-right: 0.5rem;\n }\n .swagger-ui .mr3-ns {\n margin-right: 1rem;\n }\n .swagger-ui .mr4-ns {\n margin-right: 2rem;\n }\n .swagger-ui .mr5-ns {\n margin-right: 4rem;\n }\n .swagger-ui .mr6-ns {\n margin-right: 8rem;\n }\n .swagger-ui .mr7-ns {\n margin-right: 16rem;\n }\n .swagger-ui .mb0-ns {\n margin-bottom: 0;\n }\n .swagger-ui .mb1-ns {\n margin-bottom: 0.25rem;\n }\n .swagger-ui .mb2-ns {\n margin-bottom: 0.5rem;\n }\n .swagger-ui .mb3-ns {\n margin-bottom: 1rem;\n }\n .swagger-ui .mb4-ns {\n margin-bottom: 2rem;\n }\n .swagger-ui .mb5-ns {\n margin-bottom: 4rem;\n }\n .swagger-ui .mb6-ns {\n margin-bottom: 8rem;\n }\n .swagger-ui .mb7-ns {\n margin-bottom: 16rem;\n }\n .swagger-ui .mt0-ns {\n margin-top: 0;\n }\n .swagger-ui .mt1-ns {\n margin-top: 0.25rem;\n }\n .swagger-ui .mt2-ns {\n margin-top: 0.5rem;\n }\n .swagger-ui .mt3-ns {\n margin-top: 1rem;\n }\n .swagger-ui .mt4-ns {\n margin-top: 2rem;\n }\n .swagger-ui .mt5-ns {\n margin-top: 4rem;\n }\n .swagger-ui .mt6-ns {\n margin-top: 8rem;\n }\n .swagger-ui .mt7-ns {\n margin-top: 16rem;\n }\n .swagger-ui .mv0-ns {\n margin-top: 0;\n margin-bottom: 0;\n }\n .swagger-ui .mv1-ns {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n }\n .swagger-ui .mv2-ns {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n }\n .swagger-ui .mv3-ns {\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n .swagger-ui .mv4-ns {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n .swagger-ui .mv5-ns {\n margin-top: 4rem;\n margin-bottom: 4rem;\n }\n .swagger-ui .mv6-ns {\n margin-top: 8rem;\n margin-bottom: 8rem;\n }\n .swagger-ui .mv7-ns {\n margin-top: 16rem;\n margin-bottom: 16rem;\n }\n .swagger-ui .mh0-ns {\n margin-left: 0;\n margin-right: 0;\n }\n .swagger-ui .mh1-ns {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n .swagger-ui .mh2-ns {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n }\n .swagger-ui .mh3-ns {\n margin-left: 1rem;\n margin-right: 1rem;\n }\n .swagger-ui .mh4-ns {\n margin-left: 2rem;\n margin-right: 2rem;\n }\n .swagger-ui .mh5-ns {\n margin-left: 4rem;\n margin-right: 4rem;\n }\n .swagger-ui .mh6-ns {\n margin-left: 8rem;\n margin-right: 8rem;\n }\n .swagger-ui .mh7-ns {\n margin-left: 16rem;\n margin-right: 16rem;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .pa0-m {\n padding: 0;\n }\n .swagger-ui .pa1-m {\n padding: 0.25rem;\n }\n .swagger-ui .pa2-m {\n padding: 0.5rem;\n }\n .swagger-ui .pa3-m {\n padding: 1rem;\n }\n .swagger-ui .pa4-m {\n padding: 2rem;\n }\n .swagger-ui .pa5-m {\n padding: 4rem;\n }\n .swagger-ui .pa6-m {\n padding: 8rem;\n }\n .swagger-ui .pa7-m {\n padding: 16rem;\n }\n .swagger-ui .pl0-m {\n padding-left: 0;\n }\n .swagger-ui .pl1-m {\n padding-left: 0.25rem;\n }\n .swagger-ui .pl2-m {\n padding-left: 0.5rem;\n }\n .swagger-ui .pl3-m {\n padding-left: 1rem;\n }\n .swagger-ui .pl4-m {\n padding-left: 2rem;\n }\n .swagger-ui .pl5-m {\n padding-left: 4rem;\n }\n .swagger-ui .pl6-m {\n padding-left: 8rem;\n }\n .swagger-ui .pl7-m {\n padding-left: 16rem;\n }\n .swagger-ui .pr0-m {\n padding-right: 0;\n }\n .swagger-ui .pr1-m {\n padding-right: 0.25rem;\n }\n .swagger-ui .pr2-m {\n padding-right: 0.5rem;\n }\n .swagger-ui .pr3-m {\n padding-right: 1rem;\n }\n .swagger-ui .pr4-m {\n padding-right: 2rem;\n }\n .swagger-ui .pr5-m {\n padding-right: 4rem;\n }\n .swagger-ui .pr6-m {\n padding-right: 8rem;\n }\n .swagger-ui .pr7-m {\n padding-right: 16rem;\n }\n .swagger-ui .pb0-m {\n padding-bottom: 0;\n }\n .swagger-ui .pb1-m {\n padding-bottom: 0.25rem;\n }\n .swagger-ui .pb2-m {\n padding-bottom: 0.5rem;\n }\n .swagger-ui .pb3-m {\n padding-bottom: 1rem;\n }\n .swagger-ui .pb4-m {\n padding-bottom: 2rem;\n }\n .swagger-ui .pb5-m {\n padding-bottom: 4rem;\n }\n .swagger-ui .pb6-m {\n padding-bottom: 8rem;\n }\n .swagger-ui .pb7-m {\n padding-bottom: 16rem;\n }\n .swagger-ui .pt0-m {\n padding-top: 0;\n }\n .swagger-ui .pt1-m {\n padding-top: 0.25rem;\n }\n .swagger-ui .pt2-m {\n padding-top: 0.5rem;\n }\n .swagger-ui .pt3-m {\n padding-top: 1rem;\n }\n .swagger-ui .pt4-m {\n padding-top: 2rem;\n }\n .swagger-ui .pt5-m {\n padding-top: 4rem;\n }\n .swagger-ui .pt6-m {\n padding-top: 8rem;\n }\n .swagger-ui .pt7-m {\n padding-top: 16rem;\n }\n .swagger-ui .pv0-m {\n padding-top: 0;\n padding-bottom: 0;\n }\n .swagger-ui .pv1-m {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n }\n .swagger-ui .pv2-m {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n .swagger-ui .pv3-m {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n .swagger-ui .pv4-m {\n padding-top: 2rem;\n padding-bottom: 2rem;\n }\n .swagger-ui .pv5-m {\n padding-top: 4rem;\n padding-bottom: 4rem;\n }\n .swagger-ui .pv6-m {\n padding-top: 8rem;\n padding-bottom: 8rem;\n }\n .swagger-ui .pv7-m {\n padding-top: 16rem;\n padding-bottom: 16rem;\n }\n .swagger-ui .ph0-m {\n padding-left: 0;\n padding-right: 0;\n }\n .swagger-ui .ph1-m {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n }\n .swagger-ui .ph2-m {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n .swagger-ui .ph3-m {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n .swagger-ui .ph4-m {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n .swagger-ui .ph5-m {\n padding-left: 4rem;\n padding-right: 4rem;\n }\n .swagger-ui .ph6-m {\n padding-left: 8rem;\n padding-right: 8rem;\n }\n .swagger-ui .ph7-m {\n padding-left: 16rem;\n padding-right: 16rem;\n }\n .swagger-ui .ma0-m {\n margin: 0;\n }\n .swagger-ui .ma1-m {\n margin: 0.25rem;\n }\n .swagger-ui .ma2-m {\n margin: 0.5rem;\n }\n .swagger-ui .ma3-m {\n margin: 1rem;\n }\n .swagger-ui .ma4-m {\n margin: 2rem;\n }\n .swagger-ui .ma5-m {\n margin: 4rem;\n }\n .swagger-ui .ma6-m {\n margin: 8rem;\n }\n .swagger-ui .ma7-m {\n margin: 16rem;\n }\n .swagger-ui .ml0-m {\n margin-left: 0;\n }\n .swagger-ui .ml1-m {\n margin-left: 0.25rem;\n }\n .swagger-ui .ml2-m {\n margin-left: 0.5rem;\n }\n .swagger-ui .ml3-m {\n margin-left: 1rem;\n }\n .swagger-ui .ml4-m {\n margin-left: 2rem;\n }\n .swagger-ui .ml5-m {\n margin-left: 4rem;\n }\n .swagger-ui .ml6-m {\n margin-left: 8rem;\n }\n .swagger-ui .ml7-m {\n margin-left: 16rem;\n }\n .swagger-ui .mr0-m {\n margin-right: 0;\n }\n .swagger-ui .mr1-m {\n margin-right: 0.25rem;\n }\n .swagger-ui .mr2-m {\n margin-right: 0.5rem;\n }\n .swagger-ui .mr3-m {\n margin-right: 1rem;\n }\n .swagger-ui .mr4-m {\n margin-right: 2rem;\n }\n .swagger-ui .mr5-m {\n margin-right: 4rem;\n }\n .swagger-ui .mr6-m {\n margin-right: 8rem;\n }\n .swagger-ui .mr7-m {\n margin-right: 16rem;\n }\n .swagger-ui .mb0-m {\n margin-bottom: 0;\n }\n .swagger-ui .mb1-m {\n margin-bottom: 0.25rem;\n }\n .swagger-ui .mb2-m {\n margin-bottom: 0.5rem;\n }\n .swagger-ui .mb3-m {\n margin-bottom: 1rem;\n }\n .swagger-ui .mb4-m {\n margin-bottom: 2rem;\n }\n .swagger-ui .mb5-m {\n margin-bottom: 4rem;\n }\n .swagger-ui .mb6-m {\n margin-bottom: 8rem;\n }\n .swagger-ui .mb7-m {\n margin-bottom: 16rem;\n }\n .swagger-ui .mt0-m {\n margin-top: 0;\n }\n .swagger-ui .mt1-m {\n margin-top: 0.25rem;\n }\n .swagger-ui .mt2-m {\n margin-top: 0.5rem;\n }\n .swagger-ui .mt3-m {\n margin-top: 1rem;\n }\n .swagger-ui .mt4-m {\n margin-top: 2rem;\n }\n .swagger-ui .mt5-m {\n margin-top: 4rem;\n }\n .swagger-ui .mt6-m {\n margin-top: 8rem;\n }\n .swagger-ui .mt7-m {\n margin-top: 16rem;\n }\n .swagger-ui .mv0-m {\n margin-top: 0;\n margin-bottom: 0;\n }\n .swagger-ui .mv1-m {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n }\n .swagger-ui .mv2-m {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n }\n .swagger-ui .mv3-m {\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n .swagger-ui .mv4-m {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n .swagger-ui .mv5-m {\n margin-top: 4rem;\n margin-bottom: 4rem;\n }\n .swagger-ui .mv6-m {\n margin-top: 8rem;\n margin-bottom: 8rem;\n }\n .swagger-ui .mv7-m {\n margin-top: 16rem;\n margin-bottom: 16rem;\n }\n .swagger-ui .mh0-m {\n margin-left: 0;\n margin-right: 0;\n }\n .swagger-ui .mh1-m {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n .swagger-ui .mh2-m {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n }\n .swagger-ui .mh3-m {\n margin-left: 1rem;\n margin-right: 1rem;\n }\n .swagger-ui .mh4-m {\n margin-left: 2rem;\n margin-right: 2rem;\n }\n .swagger-ui .mh5-m {\n margin-left: 4rem;\n margin-right: 4rem;\n }\n .swagger-ui .mh6-m {\n margin-left: 8rem;\n margin-right: 8rem;\n }\n .swagger-ui .mh7-m {\n margin-left: 16rem;\n margin-right: 16rem;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .pa0-l {\n padding: 0;\n }\n .swagger-ui .pa1-l {\n padding: 0.25rem;\n }\n .swagger-ui .pa2-l {\n padding: 0.5rem;\n }\n .swagger-ui .pa3-l {\n padding: 1rem;\n }\n .swagger-ui .pa4-l {\n padding: 2rem;\n }\n .swagger-ui .pa5-l {\n padding: 4rem;\n }\n .swagger-ui .pa6-l {\n padding: 8rem;\n }\n .swagger-ui .pa7-l {\n padding: 16rem;\n }\n .swagger-ui .pl0-l {\n padding-left: 0;\n }\n .swagger-ui .pl1-l {\n padding-left: 0.25rem;\n }\n .swagger-ui .pl2-l {\n padding-left: 0.5rem;\n }\n .swagger-ui .pl3-l {\n padding-left: 1rem;\n }\n .swagger-ui .pl4-l {\n padding-left: 2rem;\n }\n .swagger-ui .pl5-l {\n padding-left: 4rem;\n }\n .swagger-ui .pl6-l {\n padding-left: 8rem;\n }\n .swagger-ui .pl7-l {\n padding-left: 16rem;\n }\n .swagger-ui .pr0-l {\n padding-right: 0;\n }\n .swagger-ui .pr1-l {\n padding-right: 0.25rem;\n }\n .swagger-ui .pr2-l {\n padding-right: 0.5rem;\n }\n .swagger-ui .pr3-l {\n padding-right: 1rem;\n }\n .swagger-ui .pr4-l {\n padding-right: 2rem;\n }\n .swagger-ui .pr5-l {\n padding-right: 4rem;\n }\n .swagger-ui .pr6-l {\n padding-right: 8rem;\n }\n .swagger-ui .pr7-l {\n padding-right: 16rem;\n }\n .swagger-ui .pb0-l {\n padding-bottom: 0;\n }\n .swagger-ui .pb1-l {\n padding-bottom: 0.25rem;\n }\n .swagger-ui .pb2-l {\n padding-bottom: 0.5rem;\n }\n .swagger-ui .pb3-l {\n padding-bottom: 1rem;\n }\n .swagger-ui .pb4-l {\n padding-bottom: 2rem;\n }\n .swagger-ui .pb5-l {\n padding-bottom: 4rem;\n }\n .swagger-ui .pb6-l {\n padding-bottom: 8rem;\n }\n .swagger-ui .pb7-l {\n padding-bottom: 16rem;\n }\n .swagger-ui .pt0-l {\n padding-top: 0;\n }\n .swagger-ui .pt1-l {\n padding-top: 0.25rem;\n }\n .swagger-ui .pt2-l {\n padding-top: 0.5rem;\n }\n .swagger-ui .pt3-l {\n padding-top: 1rem;\n }\n .swagger-ui .pt4-l {\n padding-top: 2rem;\n }\n .swagger-ui .pt5-l {\n padding-top: 4rem;\n }\n .swagger-ui .pt6-l {\n padding-top: 8rem;\n }\n .swagger-ui .pt7-l {\n padding-top: 16rem;\n }\n .swagger-ui .pv0-l {\n padding-top: 0;\n padding-bottom: 0;\n }\n .swagger-ui .pv1-l {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n }\n .swagger-ui .pv2-l {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n .swagger-ui .pv3-l {\n padding-top: 1rem;\n padding-bottom: 1rem;\n }\n .swagger-ui .pv4-l {\n padding-top: 2rem;\n padding-bottom: 2rem;\n }\n .swagger-ui .pv5-l {\n padding-top: 4rem;\n padding-bottom: 4rem;\n }\n .swagger-ui .pv6-l {\n padding-top: 8rem;\n padding-bottom: 8rem;\n }\n .swagger-ui .pv7-l {\n padding-top: 16rem;\n padding-bottom: 16rem;\n }\n .swagger-ui .ph0-l {\n padding-left: 0;\n padding-right: 0;\n }\n .swagger-ui .ph1-l {\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n }\n .swagger-ui .ph2-l {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n }\n .swagger-ui .ph3-l {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n .swagger-ui .ph4-l {\n padding-left: 2rem;\n padding-right: 2rem;\n }\n .swagger-ui .ph5-l {\n padding-left: 4rem;\n padding-right: 4rem;\n }\n .swagger-ui .ph6-l {\n padding-left: 8rem;\n padding-right: 8rem;\n }\n .swagger-ui .ph7-l {\n padding-left: 16rem;\n padding-right: 16rem;\n }\n .swagger-ui .ma0-l {\n margin: 0;\n }\n .swagger-ui .ma1-l {\n margin: 0.25rem;\n }\n .swagger-ui .ma2-l {\n margin: 0.5rem;\n }\n .swagger-ui .ma3-l {\n margin: 1rem;\n }\n .swagger-ui .ma4-l {\n margin: 2rem;\n }\n .swagger-ui .ma5-l {\n margin: 4rem;\n }\n .swagger-ui .ma6-l {\n margin: 8rem;\n }\n .swagger-ui .ma7-l {\n margin: 16rem;\n }\n .swagger-ui .ml0-l {\n margin-left: 0;\n }\n .swagger-ui .ml1-l {\n margin-left: 0.25rem;\n }\n .swagger-ui .ml2-l {\n margin-left: 0.5rem;\n }\n .swagger-ui .ml3-l {\n margin-left: 1rem;\n }\n .swagger-ui .ml4-l {\n margin-left: 2rem;\n }\n .swagger-ui .ml5-l {\n margin-left: 4rem;\n }\n .swagger-ui .ml6-l {\n margin-left: 8rem;\n }\n .swagger-ui .ml7-l {\n margin-left: 16rem;\n }\n .swagger-ui .mr0-l {\n margin-right: 0;\n }\n .swagger-ui .mr1-l {\n margin-right: 0.25rem;\n }\n .swagger-ui .mr2-l {\n margin-right: 0.5rem;\n }\n .swagger-ui .mr3-l {\n margin-right: 1rem;\n }\n .swagger-ui .mr4-l {\n margin-right: 2rem;\n }\n .swagger-ui .mr5-l {\n margin-right: 4rem;\n }\n .swagger-ui .mr6-l {\n margin-right: 8rem;\n }\n .swagger-ui .mr7-l {\n margin-right: 16rem;\n }\n .swagger-ui .mb0-l {\n margin-bottom: 0;\n }\n .swagger-ui .mb1-l {\n margin-bottom: 0.25rem;\n }\n .swagger-ui .mb2-l {\n margin-bottom: 0.5rem;\n }\n .swagger-ui .mb3-l {\n margin-bottom: 1rem;\n }\n .swagger-ui .mb4-l {\n margin-bottom: 2rem;\n }\n .swagger-ui .mb5-l {\n margin-bottom: 4rem;\n }\n .swagger-ui .mb6-l {\n margin-bottom: 8rem;\n }\n .swagger-ui .mb7-l {\n margin-bottom: 16rem;\n }\n .swagger-ui .mt0-l {\n margin-top: 0;\n }\n .swagger-ui .mt1-l {\n margin-top: 0.25rem;\n }\n .swagger-ui .mt2-l {\n margin-top: 0.5rem;\n }\n .swagger-ui .mt3-l {\n margin-top: 1rem;\n }\n .swagger-ui .mt4-l {\n margin-top: 2rem;\n }\n .swagger-ui .mt5-l {\n margin-top: 4rem;\n }\n .swagger-ui .mt6-l {\n margin-top: 8rem;\n }\n .swagger-ui .mt7-l {\n margin-top: 16rem;\n }\n .swagger-ui .mv0-l {\n margin-top: 0;\n margin-bottom: 0;\n }\n .swagger-ui .mv1-l {\n margin-top: 0.25rem;\n margin-bottom: 0.25rem;\n }\n .swagger-ui .mv2-l {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n }\n .swagger-ui .mv3-l {\n margin-top: 1rem;\n margin-bottom: 1rem;\n }\n .swagger-ui .mv4-l {\n margin-top: 2rem;\n margin-bottom: 2rem;\n }\n .swagger-ui .mv5-l {\n margin-top: 4rem;\n margin-bottom: 4rem;\n }\n .swagger-ui .mv6-l {\n margin-top: 8rem;\n margin-bottom: 8rem;\n }\n .swagger-ui .mv7-l {\n margin-top: 16rem;\n margin-bottom: 16rem;\n }\n .swagger-ui .mh0-l {\n margin-left: 0;\n margin-right: 0;\n }\n .swagger-ui .mh1-l {\n margin-left: 0.25rem;\n margin-right: 0.25rem;\n }\n .swagger-ui .mh2-l {\n margin-left: 0.5rem;\n margin-right: 0.5rem;\n }\n .swagger-ui .mh3-l {\n margin-left: 1rem;\n margin-right: 1rem;\n }\n .swagger-ui .mh4-l {\n margin-left: 2rem;\n margin-right: 2rem;\n }\n .swagger-ui .mh5-l {\n margin-left: 4rem;\n margin-right: 4rem;\n }\n .swagger-ui .mh6-l {\n margin-left: 8rem;\n margin-right: 8rem;\n }\n .swagger-ui .mh7-l {\n margin-left: 16rem;\n margin-right: 16rem;\n }\n}\n\n.swagger-ui .na1 {\n margin: -0.25rem;\n}\n\n.swagger-ui .na2 {\n margin: -0.5rem;\n}\n\n.swagger-ui .na3 {\n margin: -1rem;\n}\n\n.swagger-ui .na4 {\n margin: -2rem;\n}\n\n.swagger-ui .na5 {\n margin: -4rem;\n}\n\n.swagger-ui .na6 {\n margin: -8rem;\n}\n\n.swagger-ui .na7 {\n margin: -16rem;\n}\n\n.swagger-ui .nl1 {\n margin-left: -0.25rem;\n}\n\n.swagger-ui .nl2 {\n margin-left: -0.5rem;\n}\n\n.swagger-ui .nl3 {\n margin-left: -1rem;\n}\n\n.swagger-ui .nl4 {\n margin-left: -2rem;\n}\n\n.swagger-ui .nl5 {\n margin-left: -4rem;\n}\n\n.swagger-ui .nl6 {\n margin-left: -8rem;\n}\n\n.swagger-ui .nl7 {\n margin-left: -16rem;\n}\n\n.swagger-ui .nr1 {\n margin-right: -0.25rem;\n}\n\n.swagger-ui .nr2 {\n margin-right: -0.5rem;\n}\n\n.swagger-ui .nr3 {\n margin-right: -1rem;\n}\n\n.swagger-ui .nr4 {\n margin-right: -2rem;\n}\n\n.swagger-ui .nr5 {\n margin-right: -4rem;\n}\n\n.swagger-ui .nr6 {\n margin-right: -8rem;\n}\n\n.swagger-ui .nr7 {\n margin-right: -16rem;\n}\n\n.swagger-ui .nb1 {\n margin-bottom: -0.25rem;\n}\n\n.swagger-ui .nb2 {\n margin-bottom: -0.5rem;\n}\n\n.swagger-ui .nb3 {\n margin-bottom: -1rem;\n}\n\n.swagger-ui .nb4 {\n margin-bottom: -2rem;\n}\n\n.swagger-ui .nb5 {\n margin-bottom: -4rem;\n}\n\n.swagger-ui .nb6 {\n margin-bottom: -8rem;\n}\n\n.swagger-ui .nb7 {\n margin-bottom: -16rem;\n}\n\n.swagger-ui .nt1 {\n margin-top: -0.25rem;\n}\n\n.swagger-ui .nt2 {\n margin-top: -0.5rem;\n}\n\n.swagger-ui .nt3 {\n margin-top: -1rem;\n}\n\n.swagger-ui .nt4 {\n margin-top: -2rem;\n}\n\n.swagger-ui .nt5 {\n margin-top: -4rem;\n}\n\n.swagger-ui .nt6 {\n margin-top: -8rem;\n}\n\n.swagger-ui .nt7 {\n margin-top: -16rem;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .na1-ns {\n margin: -0.25rem;\n }\n .swagger-ui .na2-ns {\n margin: -0.5rem;\n }\n .swagger-ui .na3-ns {\n margin: -1rem;\n }\n .swagger-ui .na4-ns {\n margin: -2rem;\n }\n .swagger-ui .na5-ns {\n margin: -4rem;\n }\n .swagger-ui .na6-ns {\n margin: -8rem;\n }\n .swagger-ui .na7-ns {\n margin: -16rem;\n }\n .swagger-ui .nl1-ns {\n margin-left: -0.25rem;\n }\n .swagger-ui .nl2-ns {\n margin-left: -0.5rem;\n }\n .swagger-ui .nl3-ns {\n margin-left: -1rem;\n }\n .swagger-ui .nl4-ns {\n margin-left: -2rem;\n }\n .swagger-ui .nl5-ns {\n margin-left: -4rem;\n }\n .swagger-ui .nl6-ns {\n margin-left: -8rem;\n }\n .swagger-ui .nl7-ns {\n margin-left: -16rem;\n }\n .swagger-ui .nr1-ns {\n margin-right: -0.25rem;\n }\n .swagger-ui .nr2-ns {\n margin-right: -0.5rem;\n }\n .swagger-ui .nr3-ns {\n margin-right: -1rem;\n }\n .swagger-ui .nr4-ns {\n margin-right: -2rem;\n }\n .swagger-ui .nr5-ns {\n margin-right: -4rem;\n }\n .swagger-ui .nr6-ns {\n margin-right: -8rem;\n }\n .swagger-ui .nr7-ns {\n margin-right: -16rem;\n }\n .swagger-ui .nb1-ns {\n margin-bottom: -0.25rem;\n }\n .swagger-ui .nb2-ns {\n margin-bottom: -0.5rem;\n }\n .swagger-ui .nb3-ns {\n margin-bottom: -1rem;\n }\n .swagger-ui .nb4-ns {\n margin-bottom: -2rem;\n }\n .swagger-ui .nb5-ns {\n margin-bottom: -4rem;\n }\n .swagger-ui .nb6-ns {\n margin-bottom: -8rem;\n }\n .swagger-ui .nb7-ns {\n margin-bottom: -16rem;\n }\n .swagger-ui .nt1-ns {\n margin-top: -0.25rem;\n }\n .swagger-ui .nt2-ns {\n margin-top: -0.5rem;\n }\n .swagger-ui .nt3-ns {\n margin-top: -1rem;\n }\n .swagger-ui .nt4-ns {\n margin-top: -2rem;\n }\n .swagger-ui .nt5-ns {\n margin-top: -4rem;\n }\n .swagger-ui .nt6-ns {\n margin-top: -8rem;\n }\n .swagger-ui .nt7-ns {\n margin-top: -16rem;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .na1-m {\n margin: -0.25rem;\n }\n .swagger-ui .na2-m {\n margin: -0.5rem;\n }\n .swagger-ui .na3-m {\n margin: -1rem;\n }\n .swagger-ui .na4-m {\n margin: -2rem;\n }\n .swagger-ui .na5-m {\n margin: -4rem;\n }\n .swagger-ui .na6-m {\n margin: -8rem;\n }\n .swagger-ui .na7-m {\n margin: -16rem;\n }\n .swagger-ui .nl1-m {\n margin-left: -0.25rem;\n }\n .swagger-ui .nl2-m {\n margin-left: -0.5rem;\n }\n .swagger-ui .nl3-m {\n margin-left: -1rem;\n }\n .swagger-ui .nl4-m {\n margin-left: -2rem;\n }\n .swagger-ui .nl5-m {\n margin-left: -4rem;\n }\n .swagger-ui .nl6-m {\n margin-left: -8rem;\n }\n .swagger-ui .nl7-m {\n margin-left: -16rem;\n }\n .swagger-ui .nr1-m {\n margin-right: -0.25rem;\n }\n .swagger-ui .nr2-m {\n margin-right: -0.5rem;\n }\n .swagger-ui .nr3-m {\n margin-right: -1rem;\n }\n .swagger-ui .nr4-m {\n margin-right: -2rem;\n }\n .swagger-ui .nr5-m {\n margin-right: -4rem;\n }\n .swagger-ui .nr6-m {\n margin-right: -8rem;\n }\n .swagger-ui .nr7-m {\n margin-right: -16rem;\n }\n .swagger-ui .nb1-m {\n margin-bottom: -0.25rem;\n }\n .swagger-ui .nb2-m {\n margin-bottom: -0.5rem;\n }\n .swagger-ui .nb3-m {\n margin-bottom: -1rem;\n }\n .swagger-ui .nb4-m {\n margin-bottom: -2rem;\n }\n .swagger-ui .nb5-m {\n margin-bottom: -4rem;\n }\n .swagger-ui .nb6-m {\n margin-bottom: -8rem;\n }\n .swagger-ui .nb7-m {\n margin-bottom: -16rem;\n }\n .swagger-ui .nt1-m {\n margin-top: -0.25rem;\n }\n .swagger-ui .nt2-m {\n margin-top: -0.5rem;\n }\n .swagger-ui .nt3-m {\n margin-top: -1rem;\n }\n .swagger-ui .nt4-m {\n margin-top: -2rem;\n }\n .swagger-ui .nt5-m {\n margin-top: -4rem;\n }\n .swagger-ui .nt6-m {\n margin-top: -8rem;\n }\n .swagger-ui .nt7-m {\n margin-top: -16rem;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .na1-l {\n margin: -0.25rem;\n }\n .swagger-ui .na2-l {\n margin: -0.5rem;\n }\n .swagger-ui .na3-l {\n margin: -1rem;\n }\n .swagger-ui .na4-l {\n margin: -2rem;\n }\n .swagger-ui .na5-l {\n margin: -4rem;\n }\n .swagger-ui .na6-l {\n margin: -8rem;\n }\n .swagger-ui .na7-l {\n margin: -16rem;\n }\n .swagger-ui .nl1-l {\n margin-left: -0.25rem;\n }\n .swagger-ui .nl2-l {\n margin-left: -0.5rem;\n }\n .swagger-ui .nl3-l {\n margin-left: -1rem;\n }\n .swagger-ui .nl4-l {\n margin-left: -2rem;\n }\n .swagger-ui .nl5-l {\n margin-left: -4rem;\n }\n .swagger-ui .nl6-l {\n margin-left: -8rem;\n }\n .swagger-ui .nl7-l {\n margin-left: -16rem;\n }\n .swagger-ui .nr1-l {\n margin-right: -0.25rem;\n }\n .swagger-ui .nr2-l {\n margin-right: -0.5rem;\n }\n .swagger-ui .nr3-l {\n margin-right: -1rem;\n }\n .swagger-ui .nr4-l {\n margin-right: -2rem;\n }\n .swagger-ui .nr5-l {\n margin-right: -4rem;\n }\n .swagger-ui .nr6-l {\n margin-right: -8rem;\n }\n .swagger-ui .nr7-l {\n margin-right: -16rem;\n }\n .swagger-ui .nb1-l {\n margin-bottom: -0.25rem;\n }\n .swagger-ui .nb2-l {\n margin-bottom: -0.5rem;\n }\n .swagger-ui .nb3-l {\n margin-bottom: -1rem;\n }\n .swagger-ui .nb4-l {\n margin-bottom: -2rem;\n }\n .swagger-ui .nb5-l {\n margin-bottom: -4rem;\n }\n .swagger-ui .nb6-l {\n margin-bottom: -8rem;\n }\n .swagger-ui .nb7-l {\n margin-bottom: -16rem;\n }\n .swagger-ui .nt1-l {\n margin-top: -0.25rem;\n }\n .swagger-ui .nt2-l {\n margin-top: -0.5rem;\n }\n .swagger-ui .nt3-l {\n margin-top: -1rem;\n }\n .swagger-ui .nt4-l {\n margin-top: -2rem;\n }\n .swagger-ui .nt5-l {\n margin-top: -4rem;\n }\n .swagger-ui .nt6-l {\n margin-top: -8rem;\n }\n .swagger-ui .nt7-l {\n margin-top: -16rem;\n }\n}\n\n.swagger-ui .collapse {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.swagger-ui .striped--light-silver:nth-child(odd) {\n background-color: #aaa;\n}\n\n.swagger-ui .striped--moon-gray:nth-child(odd) {\n background-color: #ccc;\n}\n\n.swagger-ui .striped--light-gray:nth-child(odd) {\n background-color: #eee;\n}\n\n.swagger-ui .striped--near-white:nth-child(odd) {\n background-color: #f4f4f4;\n}\n\n.swagger-ui .stripe-light:nth-child(odd) {\n background-color: rgba(255, 255, 255, 0.1);\n}\n\n.swagger-ui .stripe-dark:nth-child(odd) {\n background-color: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .strike {\n text-decoration: line-through;\n}\n\n.swagger-ui .underline {\n text-decoration: underline;\n}\n\n.swagger-ui .no-underline {\n text-decoration: none;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .strike-ns {\n text-decoration: line-through;\n }\n .swagger-ui .underline-ns {\n text-decoration: underline;\n }\n .swagger-ui .no-underline-ns {\n text-decoration: none;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .strike-m {\n text-decoration: line-through;\n }\n .swagger-ui .underline-m {\n text-decoration: underline;\n }\n .swagger-ui .no-underline-m {\n text-decoration: none;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .strike-l {\n text-decoration: line-through;\n }\n .swagger-ui .underline-l {\n text-decoration: underline;\n }\n .swagger-ui .no-underline-l {\n text-decoration: none;\n }\n}\n\n.swagger-ui .tl {\n text-align: left;\n}\n\n.swagger-ui .tr {\n text-align: right;\n}\n\n.swagger-ui .tc {\n text-align: center;\n}\n\n.swagger-ui .tj {\n text-align: justify;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .tl-ns {\n text-align: left;\n }\n .swagger-ui .tr-ns {\n text-align: right;\n }\n .swagger-ui .tc-ns {\n text-align: center;\n }\n .swagger-ui .tj-ns {\n text-align: justify;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .tl-m {\n text-align: left;\n }\n .swagger-ui .tr-m {\n text-align: right;\n }\n .swagger-ui .tc-m {\n text-align: center;\n }\n .swagger-ui .tj-m {\n text-align: justify;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .tl-l {\n text-align: left;\n }\n .swagger-ui .tr-l {\n text-align: right;\n }\n .swagger-ui .tc-l {\n text-align: center;\n }\n .swagger-ui .tj-l {\n text-align: justify;\n }\n}\n\n.swagger-ui .ttc {\n text-transform: capitalize;\n}\n\n.swagger-ui .ttl {\n text-transform: lowercase;\n}\n\n.swagger-ui .ttu {\n text-transform: uppercase;\n}\n\n.swagger-ui .ttn {\n text-transform: none;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .ttc-ns {\n text-transform: capitalize;\n }\n .swagger-ui .ttl-ns {\n text-transform: lowercase;\n }\n .swagger-ui .ttu-ns {\n text-transform: uppercase;\n }\n .swagger-ui .ttn-ns {\n text-transform: none;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .ttc-m {\n text-transform: capitalize;\n }\n .swagger-ui .ttl-m {\n text-transform: lowercase;\n }\n .swagger-ui .ttu-m {\n text-transform: uppercase;\n }\n .swagger-ui .ttn-m {\n text-transform: none;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .ttc-l {\n text-transform: capitalize;\n }\n .swagger-ui .ttl-l {\n text-transform: lowercase;\n }\n .swagger-ui .ttu-l {\n text-transform: uppercase;\n }\n .swagger-ui .ttn-l {\n text-transform: none;\n }\n}\n\n.swagger-ui .f-6,\n.swagger-ui .f-headline {\n font-size: 6rem;\n}\n\n.swagger-ui .f-5,\n.swagger-ui .f-subheadline {\n font-size: 5rem;\n}\n\n.swagger-ui .f1 {\n font-size: 3rem;\n}\n\n.swagger-ui .f2 {\n font-size: 2.25rem;\n}\n\n.swagger-ui .f3 {\n font-size: 1.5rem;\n}\n\n.swagger-ui .f4 {\n font-size: 1.25rem;\n}\n\n.swagger-ui .f5 {\n font-size: 1rem;\n}\n\n.swagger-ui .f6 {\n font-size: 0.875rem;\n}\n\n.swagger-ui .f7 {\n font-size: 0.75rem;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .f-6-ns,\n .swagger-ui .f-headline-ns {\n font-size: 6rem;\n }\n .swagger-ui .f-5-ns,\n .swagger-ui .f-subheadline-ns {\n font-size: 5rem;\n }\n .swagger-ui .f1-ns {\n font-size: 3rem;\n }\n .swagger-ui .f2-ns {\n font-size: 2.25rem;\n }\n .swagger-ui .f3-ns {\n font-size: 1.5rem;\n }\n .swagger-ui .f4-ns {\n font-size: 1.25rem;\n }\n .swagger-ui .f5-ns {\n font-size: 1rem;\n }\n .swagger-ui .f6-ns {\n font-size: 0.875rem;\n }\n .swagger-ui .f7-ns {\n font-size: 0.75rem;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .f-6-m,\n .swagger-ui .f-headline-m {\n font-size: 6rem;\n }\n .swagger-ui .f-5-m,\n .swagger-ui .f-subheadline-m {\n font-size: 5rem;\n }\n .swagger-ui .f1-m {\n font-size: 3rem;\n }\n .swagger-ui .f2-m {\n font-size: 2.25rem;\n }\n .swagger-ui .f3-m {\n font-size: 1.5rem;\n }\n .swagger-ui .f4-m {\n font-size: 1.25rem;\n }\n .swagger-ui .f5-m {\n font-size: 1rem;\n }\n .swagger-ui .f6-m {\n font-size: 0.875rem;\n }\n .swagger-ui .f7-m {\n font-size: 0.75rem;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .f-6-l,\n .swagger-ui .f-headline-l {\n font-size: 6rem;\n }\n .swagger-ui .f-5-l,\n .swagger-ui .f-subheadline-l {\n font-size: 5rem;\n }\n .swagger-ui .f1-l {\n font-size: 3rem;\n }\n .swagger-ui .f2-l {\n font-size: 2.25rem;\n }\n .swagger-ui .f3-l {\n font-size: 1.5rem;\n }\n .swagger-ui .f4-l {\n font-size: 1.25rem;\n }\n .swagger-ui .f5-l {\n font-size: 1rem;\n }\n .swagger-ui .f6-l {\n font-size: 0.875rem;\n }\n .swagger-ui .f7-l {\n font-size: 0.75rem;\n }\n}\n\n.swagger-ui .measure {\n max-width: 30em;\n}\n\n.swagger-ui .measure-wide {\n max-width: 34em;\n}\n\n.swagger-ui .measure-narrow {\n max-width: 20em;\n}\n\n.swagger-ui .indent {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.swagger-ui .small-caps {\n font-variant: small-caps;\n}\n\n.swagger-ui .truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .measure-ns {\n max-width: 30em;\n }\n .swagger-ui .measure-wide-ns {\n max-width: 34em;\n }\n .swagger-ui .measure-narrow-ns {\n max-width: 20em;\n }\n .swagger-ui .indent-ns {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .swagger-ui .small-caps-ns {\n font-variant: small-caps;\n }\n .swagger-ui .truncate-ns {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .measure-m {\n max-width: 30em;\n }\n .swagger-ui .measure-wide-m {\n max-width: 34em;\n }\n .swagger-ui .measure-narrow-m {\n max-width: 20em;\n }\n .swagger-ui .indent-m {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .swagger-ui .small-caps-m {\n font-variant: small-caps;\n }\n .swagger-ui .truncate-m {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .measure-l {\n max-width: 30em;\n }\n .swagger-ui .measure-wide-l {\n max-width: 34em;\n }\n .swagger-ui .measure-narrow-l {\n max-width: 20em;\n }\n .swagger-ui .indent-l {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .swagger-ui .small-caps-l {\n font-variant: small-caps;\n }\n .swagger-ui .truncate-l {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n.swagger-ui .overflow-container {\n overflow-y: scroll;\n}\n\n.swagger-ui .center {\n margin-right: auto;\n margin-left: auto;\n}\n\n.swagger-ui .mr-auto {\n margin-right: auto;\n}\n\n.swagger-ui .ml-auto {\n margin-left: auto;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .center-ns {\n margin-right: auto;\n margin-left: auto;\n }\n .swagger-ui .mr-auto-ns {\n margin-right: auto;\n }\n .swagger-ui .ml-auto-ns {\n margin-left: auto;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .center-m {\n margin-right: auto;\n margin-left: auto;\n }\n .swagger-ui .mr-auto-m {\n margin-right: auto;\n }\n .swagger-ui .ml-auto-m {\n margin-left: auto;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .center-l {\n margin-right: auto;\n margin-left: auto;\n }\n .swagger-ui .mr-auto-l {\n margin-right: auto;\n }\n .swagger-ui .ml-auto-l {\n margin-left: auto;\n }\n}\n\n.swagger-ui .clip {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px);\n /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .clip-ns {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px);\n /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .clip-m {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px);\n /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .clip-l {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px);\n /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n.swagger-ui .ws-normal {\n white-space: normal;\n}\n\n.swagger-ui .nowrap {\n white-space: nowrap;\n}\n\n.swagger-ui .pre {\n white-space: pre;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .ws-normal-ns {\n white-space: normal;\n }\n .swagger-ui .nowrap-ns {\n white-space: nowrap;\n }\n .swagger-ui .pre-ns {\n white-space: pre;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .ws-normal-m {\n white-space: normal;\n }\n .swagger-ui .nowrap-m {\n white-space: nowrap;\n }\n .swagger-ui .pre-m {\n white-space: pre;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .ws-normal-l {\n white-space: normal;\n }\n .swagger-ui .nowrap-l {\n white-space: nowrap;\n }\n .swagger-ui .pre-l {\n white-space: pre;\n }\n}\n\n.swagger-ui .v-base {\n vertical-align: baseline;\n}\n\n.swagger-ui .v-mid {\n vertical-align: middle;\n}\n\n.swagger-ui .v-top {\n vertical-align: top;\n}\n\n.swagger-ui .v-btm {\n vertical-align: bottom;\n}\n\n@media screen and (min-width: 30em) {\n .swagger-ui .v-base-ns {\n vertical-align: baseline;\n }\n .swagger-ui .v-mid-ns {\n vertical-align: middle;\n }\n .swagger-ui .v-top-ns {\n vertical-align: top;\n }\n .swagger-ui .v-btm-ns {\n vertical-align: bottom;\n }\n}\n\n@media screen and (min-width: 30em) and (max-width: 60em) {\n .swagger-ui .v-base-m {\n vertical-align: baseline;\n }\n .swagger-ui .v-mid-m {\n vertical-align: middle;\n }\n .swagger-ui .v-top-m {\n vertical-align: top;\n }\n .swagger-ui .v-btm-m {\n vertical-align: bottom;\n }\n}\n\n@media screen and (min-width: 60em) {\n .swagger-ui .v-base-l {\n vertical-align: baseline;\n }\n .swagger-ui .v-mid-l {\n vertical-align: middle;\n }\n .swagger-ui .v-top-l {\n vertical-align: top;\n }\n .swagger-ui .v-btm-l {\n vertical-align: bottom;\n }\n}\n\n.swagger-ui .dim {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n.swagger-ui .dim:hover,\n.swagger-ui .dim:focus {\n opacity: .5;\n transition: opacity .15s ease-in;\n}\n\n.swagger-ui .dim:active {\n opacity: .8;\n transition: opacity .15s ease-out;\n}\n\n.swagger-ui .glow {\n transition: opacity .15s ease-in;\n}\n\n.swagger-ui .glow:hover,\n.swagger-ui .glow:focus {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n.swagger-ui .hide-child .child {\n opacity: 0;\n transition: opacity .15s ease-in;\n}\n\n.swagger-ui .hide-child:hover .child,\n.swagger-ui .hide-child:focus .child,\n.swagger-ui .hide-child:active .child {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n.swagger-ui .underline-hover:hover,\n.swagger-ui .underline-hover:focus {\n text-decoration: underline;\n}\n\n.swagger-ui .grow {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform 0.25s ease-out;\n}\n\n.swagger-ui .grow:hover,\n.swagger-ui .grow:focus {\n transform: scale(1.05);\n}\n\n.swagger-ui .grow:active {\n transform: scale(0.9);\n}\n\n.swagger-ui .grow-large {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform .25s ease-in-out;\n}\n\n.swagger-ui .grow-large:hover,\n.swagger-ui .grow-large:focus {\n transform: scale(1.2);\n}\n\n.swagger-ui .grow-large:active {\n transform: scale(0.95);\n}\n\n.swagger-ui .pointer:hover {\n cursor: pointer;\n}\n\n.swagger-ui .shadow-hover {\n cursor: pointer;\n position: relative;\n transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.swagger-ui .shadow-hover::after {\n content: '';\n box-shadow: 0px 0px 16px 2px rgba(0, 0, 0, 0.2);\n border-radius: inherit;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.swagger-ui .shadow-hover:hover::after,\n.swagger-ui .shadow-hover:focus::after {\n opacity: 1;\n}\n\n.swagger-ui .bg-animate,\n.swagger-ui .bg-animate:hover,\n.swagger-ui .bg-animate:focus {\n transition: background-color .15s ease-in-out;\n}\n\n.swagger-ui .z-0 {\n z-index: 0;\n}\n\n.swagger-ui .z-1 {\n z-index: 1;\n}\n\n.swagger-ui .z-2 {\n z-index: 2;\n}\n\n.swagger-ui .z-3 {\n z-index: 3;\n}\n\n.swagger-ui .z-4 {\n z-index: 4;\n}\n\n.swagger-ui .z-5 {\n z-index: 5;\n}\n\n.swagger-ui .z-999 {\n z-index: 999;\n}\n\n.swagger-ui .z-9999 {\n z-index: 9999;\n}\n\n.swagger-ui .z-max {\n z-index: 2147483647;\n}\n\n.swagger-ui .z-inherit {\n z-index: inherit;\n}\n\n.swagger-ui .z-initial {\n z-index: initial;\n}\n\n.swagger-ui .z-unset {\n z-index: unset;\n}\n\n.swagger-ui .nested-copy-line-height p,\n.swagger-ui .nested-copy-line-height ul,\n.swagger-ui .nested-copy-line-height ol {\n line-height: 1.5;\n}\n\n.swagger-ui .nested-headline-line-height h1,\n.swagger-ui .nested-headline-line-height h2,\n.swagger-ui .nested-headline-line-height h3,\n.swagger-ui .nested-headline-line-height h4,\n.swagger-ui .nested-headline-line-height h5,\n.swagger-ui .nested-headline-line-height h6 {\n line-height: 1.25;\n}\n\n.swagger-ui .nested-list-reset ul,\n.swagger-ui .nested-list-reset ol {\n padding-left: 0;\n margin-left: 0;\n list-style-type: none;\n}\n\n.swagger-ui .nested-copy-indent p + p {\n text-indent: 0.1em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.swagger-ui .nested-copy-seperator p + p {\n margin-top: 1.5em;\n}\n\n.swagger-ui .nested-img img {\n width: 100%;\n max-width: 100%;\n display: block;\n}\n\n.swagger-ui .nested-links a {\n color: #357edd;\n transition: color .15s ease-in;\n}\n\n.swagger-ui .nested-links a:hover,\n.swagger-ui .nested-links a:focus {\n color: #96ccff;\n transition: color .15s ease-in;\n}\n\n.swagger-ui .wrapper {\n width: 100%;\n max-width: 1460px;\n margin: 0 auto;\n padding: 0 20px;\n box-sizing: border-box;\n}\n\n.swagger-ui .opblock-tag-section {\n display: flex;\n flex-direction: column;\n}\n\n.swagger-ui .opblock-tag {\n display: flex;\n align-items: center;\n padding: 10px 20px 10px 10px;\n cursor: pointer;\n transition: all .2s;\n border-bottom: 1px solid rgba(59, 65, 81, 0.3);\n}\n\n.swagger-ui .opblock-tag:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.swagger-ui .opblock-tag {\n font-size: 24px;\n margin: 0 0 5px 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock-tag.no-desc span {\n flex: 1;\n}\n\n.swagger-ui .opblock-tag svg {\n transition: all .4s;\n}\n\n.swagger-ui .opblock-tag small {\n font-size: 14px;\n font-weight: normal;\n flex: 1;\n padding: 0 10px;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .parameter__type {\n font-size: 12px;\n padding: 5px 0;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui .parameter-controls {\n margin-top: 0.75em;\n}\n\n.swagger-ui .examples__title {\n display: block;\n font-size: 1.1em;\n font-weight: bold;\n margin-bottom: 0.75em;\n}\n\n.swagger-ui .examples__section {\n margin-top: 1.5em;\n}\n\n.swagger-ui .examples__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n}\n\n.swagger-ui .examples-select {\n margin-bottom: .75em;\n}\n\n.swagger-ui .examples-select__section-label {\n font-weight: bold;\n font-size: .9rem;\n margin-right: .5rem;\n}\n\n.swagger-ui .example__section {\n margin-top: 1.5em;\n}\n\n.swagger-ui .example__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n}\n\n.swagger-ui .view-line-link {\n position: relative;\n top: 3px;\n width: 20px;\n margin: 0 5px;\n cursor: pointer;\n transition: all .5s;\n}\n\n.swagger-ui .opblock {\n margin: 0 0 15px 0;\n border: 1px solid #000;\n border-radius: 4px;\n box-shadow: 0 0 3px rgba(0, 0, 0, 0.19);\n}\n\n.swagger-ui .opblock .tab-header {\n display: flex;\n flex: 1;\n}\n\n.swagger-ui .opblock .tab-header .tab-item {\n padding: 0 40px;\n cursor: pointer;\n}\n\n.swagger-ui .opblock .tab-header .tab-item:first-of-type {\n padding: 0 40px 0 0;\n}\n\n.swagger-ui .opblock .tab-header .tab-item.active h4 span {\n position: relative;\n}\n\n.swagger-ui .opblock .tab-header .tab-item.active h4 span:after {\n position: absolute;\n bottom: -15px;\n left: 50%;\n width: 120%;\n height: 4px;\n content: '';\n transform: translateX(-50%);\n background: gray;\n}\n\n.swagger-ui .opblock.is-open .opblock-summary {\n border-bottom: 1px solid #000;\n}\n\n.swagger-ui .opblock .opblock-section-header {\n display: flex;\n align-items: center;\n padding: 8px 20px;\n min-height: 50px;\n background: rgba(255, 255, 255, 0.8);\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .opblock .opblock-section-header > label {\n font-size: 12px;\n font-weight: bold;\n display: flex;\n align-items: center;\n margin: 0;\n margin-left: auto;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock .opblock-section-header > label > span {\n padding: 0 10px 0 0;\n}\n\n.swagger-ui .opblock .opblock-section-header h4 {\n font-size: 14px;\n flex: 1;\n margin: 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock .opblock-summary-method {\n font-size: 14px;\n font-weight: bold;\n min-width: 80px;\n padding: 6px 15px;\n text-align: center;\n border-radius: 3px;\n background: #000;\n text-shadow: 0 1px 0 rgba(0, 0, 0, 0.1);\n font-family: sans-serif;\n color: #fff;\n}\n\n.swagger-ui .opblock .opblock-summary-path,\n.swagger-ui .opblock .opblock-summary-operation-id,\n.swagger-ui .opblock .opblock-summary-path__deprecated {\n font-size: 16px;\n display: flex;\n align-items: center;\n word-break: break-word;\n padding: 0 10px;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n@media (max-width: 768px) {\n .swagger-ui .opblock .opblock-summary-path,\n .swagger-ui .opblock .opblock-summary-operation-id,\n .swagger-ui .opblock .opblock-summary-path__deprecated {\n font-size: 12px;\n }\n}\n\n.swagger-ui .opblock .opblock-summary-path__deprecated {\n text-decoration: line-through;\n}\n\n.swagger-ui .opblock .opblock-summary-operation-id {\n font-size: 14px;\n}\n\n.swagger-ui .opblock .opblock-summary-description {\n font-size: 13px;\n flex: 1 1 auto;\n word-break: break-word;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock .opblock-summary {\n display: flex;\n align-items: center;\n padding: 5px;\n cursor: pointer;\n}\n\n.swagger-ui .opblock .opblock-summary .view-line-link {\n position: relative;\n top: 2px;\n width: 0;\n margin: 0;\n cursor: pointer;\n transition: all .5s;\n}\n\n.swagger-ui .opblock .opblock-summary:hover .view-line-link {\n width: 18px;\n margin: 0 5px;\n}\n\n.swagger-ui .opblock.opblock-post {\n border-color: #49cc90;\n background: rgba(73, 204, 144, 0.1);\n}\n\n.swagger-ui .opblock.opblock-post .opblock-summary-method {\n background: #49cc90;\n}\n\n.swagger-ui .opblock.opblock-post .opblock-summary {\n border-color: #49cc90;\n}\n\n.swagger-ui .opblock.opblock-post .tab-header .tab-item.active h4 span:after {\n background: #49cc90;\n}\n\n.swagger-ui .opblock.opblock-put {\n border-color: #fca130;\n background: rgba(252, 161, 48, 0.1);\n}\n\n.swagger-ui .opblock.opblock-put .opblock-summary-method {\n background: #fca130;\n}\n\n.swagger-ui .opblock.opblock-put .opblock-summary {\n border-color: #fca130;\n}\n\n.swagger-ui .opblock.opblock-put .tab-header .tab-item.active h4 span:after {\n background: #fca130;\n}\n\n.swagger-ui .opblock.opblock-delete {\n border-color: #f93e3e;\n background: rgba(249, 62, 62, 0.1);\n}\n\n.swagger-ui .opblock.opblock-delete .opblock-summary-method {\n background: #f93e3e;\n}\n\n.swagger-ui .opblock.opblock-delete .opblock-summary {\n border-color: #f93e3e;\n}\n\n.swagger-ui .opblock.opblock-delete .tab-header .tab-item.active h4 span:after {\n background: #f93e3e;\n}\n\n.swagger-ui .opblock.opblock-get {\n border-color: #61affe;\n background: rgba(97, 175, 254, 0.1);\n}\n\n.swagger-ui .opblock.opblock-get .opblock-summary-method {\n background: #61affe;\n}\n\n.swagger-ui .opblock.opblock-get .opblock-summary {\n border-color: #61affe;\n}\n\n.swagger-ui .opblock.opblock-get .tab-header .tab-item.active h4 span:after {\n background: #61affe;\n}\n\n.swagger-ui .opblock.opblock-patch {\n border-color: #50e3c2;\n background: rgba(80, 227, 194, 0.1);\n}\n\n.swagger-ui .opblock.opblock-patch .opblock-summary-method {\n background: #50e3c2;\n}\n\n.swagger-ui .opblock.opblock-patch .opblock-summary {\n border-color: #50e3c2;\n}\n\n.swagger-ui .opblock.opblock-patch .tab-header .tab-item.active h4 span:after {\n background: #50e3c2;\n}\n\n.swagger-ui .opblock.opblock-head {\n border-color: #9012fe;\n background: rgba(144, 18, 254, 0.1);\n}\n\n.swagger-ui .opblock.opblock-head .opblock-summary-method {\n background: #9012fe;\n}\n\n.swagger-ui .opblock.opblock-head .opblock-summary {\n border-color: #9012fe;\n}\n\n.swagger-ui .opblock.opblock-head .tab-header .tab-item.active h4 span:after {\n background: #9012fe;\n}\n\n.swagger-ui .opblock.opblock-options {\n border-color: #0d5aa7;\n background: rgba(13, 90, 167, 0.1);\n}\n\n.swagger-ui .opblock.opblock-options .opblock-summary-method {\n background: #0d5aa7;\n}\n\n.swagger-ui .opblock.opblock-options .opblock-summary {\n border-color: #0d5aa7;\n}\n\n.swagger-ui .opblock.opblock-options .tab-header .tab-item.active h4 span:after {\n background: #0d5aa7;\n}\n\n.swagger-ui .opblock.opblock-deprecated {\n opacity: .6;\n border-color: #ebebeb;\n background: rgba(235, 235, 235, 0.1);\n}\n\n.swagger-ui .opblock.opblock-deprecated .opblock-summary-method {\n background: #ebebeb;\n}\n\n.swagger-ui .opblock.opblock-deprecated .opblock-summary {\n border-color: #ebebeb;\n}\n\n.swagger-ui .opblock.opblock-deprecated .tab-header .tab-item.active h4 span:after {\n background: #ebebeb;\n}\n\n.swagger-ui .opblock .opblock-schemes {\n padding: 8px 20px;\n}\n\n.swagger-ui .opblock .opblock-schemes .schemes-title {\n padding: 0 10px 0 0;\n}\n\n.swagger-ui .filter .operation-filter-input {\n width: 100%;\n margin: 20px 0;\n padding: 10px 10px;\n border: 2px solid #d8dde7;\n}\n\n.swagger-ui .model-example {\n margin-top: 1em;\n}\n\n.swagger-ui .tab {\n display: flex;\n padding: 0;\n list-style: none;\n}\n\n.swagger-ui .tab li {\n font-size: 12px;\n min-width: 60px;\n padding: 0;\n cursor: pointer;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .tab li:first-of-type {\n position: relative;\n padding-left: 0;\n padding-right: 12px;\n}\n\n.swagger-ui .tab li:first-of-type:after {\n position: absolute;\n top: 0;\n right: 6px;\n width: 1px;\n height: 100%;\n content: '';\n background: rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .tab li.active {\n font-weight: bold;\n}\n\n.swagger-ui .opblock-description-wrapper,\n.swagger-ui .opblock-external-docs-wrapper,\n.swagger-ui .opblock-title_normal {\n font-size: 12px;\n margin: 0 0 5px 0;\n padding: 15px 20px;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock-description-wrapper h4,\n.swagger-ui .opblock-external-docs-wrapper h4,\n.swagger-ui .opblock-title_normal h4 {\n font-size: 12px;\n margin: 0 0 5px 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock-description-wrapper p,\n.swagger-ui .opblock-external-docs-wrapper p,\n.swagger-ui .opblock-title_normal p {\n font-size: 14px;\n margin: 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .opblock-external-docs-wrapper h4 {\n padding-left: 0px;\n}\n\n.swagger-ui .execute-wrapper {\n padding: 20px;\n text-align: right;\n}\n\n.swagger-ui .execute-wrapper .btn {\n width: 100%;\n padding: 8px 40px;\n}\n\n.swagger-ui .body-param-options {\n display: flex;\n flex-direction: column;\n}\n\n.swagger-ui .body-param-options .body-param-edit {\n padding: 10px 0;\n}\n\n.swagger-ui .body-param-options label {\n padding: 8px 0;\n}\n\n.swagger-ui .body-param-options label select {\n margin: 3px 0 0 0;\n}\n\n.swagger-ui .responses-inner {\n padding: 20px;\n}\n\n.swagger-ui .responses-inner h5,\n.swagger-ui .responses-inner h4 {\n font-size: 12px;\n margin: 10px 0 5px 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .response-col_status {\n font-size: 14px;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .response-col_status .response-undocumented {\n font-size: 11px;\n font-family: monospace;\n font-weight: 600;\n color: #909090;\n}\n\n.swagger-ui .response-col_links {\n padding-left: 2em;\n max-width: 40em;\n font-size: 14px;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .response-col_links .response-undocumented {\n font-size: 11px;\n font-family: monospace;\n font-weight: 600;\n color: #909090;\n}\n\n.swagger-ui .opblock-body .opblock-loading-animation {\n display: block;\n margin: 3em;\n margin-left: auto;\n margin-right: auto;\n}\n\n.swagger-ui .opblock-body pre.microlight {\n font-size: 12px;\n margin: 0;\n padding: 10px;\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: break-all;\n word-break: break-word;\n hyphens: auto;\n border-radius: 4px;\n background: #41444e;\n overflow-wrap: break-word;\n font-family: monospace;\n font-weight: 600;\n color: #fff;\n}\n\n.swagger-ui .opblock-body pre.microlight span {\n color: #fff !important;\n}\n\n.swagger-ui .opblock-body pre.microlight .headerline {\n display: block;\n}\n\n.swagger-ui .highlight-code {\n position: relative;\n}\n\n.swagger-ui .highlight-code > .microlight {\n overflow-y: auto;\n max-height: 400px;\n min-height: 6em;\n}\n\n.swagger-ui .download-contents {\n position: absolute;\n bottom: 10px;\n right: 10px;\n cursor: pointer;\n background: #7d8293;\n text-align: center;\n padding: 5px;\n border-radius: 4px;\n font-family: sans-serif;\n font-weight: 600;\n color: white;\n font-size: 14px;\n height: 30px;\n width: 75px;\n}\n\n.swagger-ui .scheme-container {\n margin: 0 0 20px 0;\n padding: 30px 0;\n background: #fff;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.15);\n}\n\n.swagger-ui .scheme-container .schemes {\n display: flex;\n align-items: flex-end;\n}\n\n.swagger-ui .scheme-container .schemes > label {\n font-size: 12px;\n font-weight: bold;\n display: flex;\n flex-direction: column;\n margin: -20px 15px 0 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .scheme-container .schemes > label select {\n min-width: 130px;\n text-transform: uppercase;\n}\n\n.swagger-ui .loading-container {\n padding: 40px 0 60px;\n margin-top: 1em;\n min-height: 1px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n}\n\n.swagger-ui .loading-container .loading {\n position: relative;\n}\n\n.swagger-ui .loading-container .loading:after {\n font-size: 10px;\n font-weight: bold;\n position: absolute;\n top: 50%;\n left: 50%;\n content: 'loading';\n transform: translate(-50%, -50%);\n text-transform: uppercase;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .loading-container .loading:before {\n position: absolute;\n top: 50%;\n left: 50%;\n display: block;\n width: 60px;\n height: 60px;\n margin: -30px -30px;\n content: '';\n animation: rotation 1s infinite linear, opacity .5s;\n opacity: 1;\n border: 2px solid rgba(85, 85, 85, 0.1);\n border-top-color: rgba(0, 0, 0, 0.6);\n border-radius: 100%;\n backface-visibility: hidden;\n}\n\n@keyframes rotation {\n to {\n transform: rotate(360deg);\n }\n}\n\n.swagger-ui .response-controls {\n padding-top: 1em;\n display: flex;\n}\n\n.swagger-ui .response-control-media-type {\n margin-right: 1em;\n}\n\n.swagger-ui .response-control-media-type--accept-controller select {\n border-color: #008000;\n}\n\n.swagger-ui .response-control-media-type__accept-message {\n color: #008000;\n font-size: .7em;\n}\n\n.swagger-ui .response-control-media-type__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n}\n\n.swagger-ui .response-control-examples__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n}\n\n@keyframes blinker {\n 50% {\n opacity: 0;\n }\n}\n\n.swagger-ui section h3 {\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui a.nostyle {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n display: inline;\n}\n\n.swagger-ui a.nostyle:visited {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n}\n\n.swagger-ui .version-pragma {\n height: 100%;\n padding: 5em 0px;\n}\n\n.swagger-ui .version-pragma__message {\n display: flex;\n justify-content: center;\n height: 100%;\n font-size: 1.2em;\n text-align: center;\n line-height: 1.5em;\n padding: 0px .6em;\n}\n\n.swagger-ui .version-pragma__message > div {\n max-width: 55ch;\n flex: 1;\n}\n\n.swagger-ui .version-pragma__message code {\n background-color: #dedede;\n padding: 4px 4px 2px;\n white-space: pre;\n}\n\n.swagger-ui .btn {\n font-size: 14px;\n font-weight: bold;\n padding: 5px 23px;\n transition: all .3s;\n border: 2px solid gray;\n border-radius: 4px;\n background: transparent;\n box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .btn.btn-sm {\n font-size: 12px;\n padding: 4px 23px;\n}\n\n.swagger-ui .btn[disabled] {\n cursor: not-allowed;\n opacity: .3;\n}\n\n.swagger-ui .btn:hover {\n box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);\n}\n\n.swagger-ui .btn.cancel {\n border-color: #ff6060;\n background-color: transparent;\n font-family: sans-serif;\n color: #ff6060;\n}\n\n.swagger-ui .btn.authorize {\n line-height: 1;\n display: inline;\n color: #49cc90;\n border-color: #49cc90;\n background-color: transparent;\n}\n\n.swagger-ui .btn.authorize span {\n float: left;\n padding: 4px 20px 0 0;\n}\n\n.swagger-ui .btn.authorize svg {\n fill: #49cc90;\n}\n\n.swagger-ui .btn.execute {\n background-color: #4990e2;\n color: #fff;\n border-color: #4990e2;\n}\n\n.swagger-ui .btn-group {\n display: flex;\n padding: 30px;\n}\n\n.swagger-ui .btn-group .btn {\n flex: 1;\n}\n\n.swagger-ui .btn-group .btn:first-child {\n border-radius: 4px 0 0 4px;\n}\n\n.swagger-ui .btn-group .btn:last-child {\n border-radius: 0 4px 4px 0;\n}\n\n.swagger-ui .authorization__btn {\n padding: 0 10px;\n border: none;\n background: none;\n}\n\n.swagger-ui .authorization__btn.locked {\n opacity: 1;\n}\n\n.swagger-ui .authorization__btn.unlocked {\n opacity: .4;\n}\n\n.swagger-ui .expand-methods,\n.swagger-ui .expand-operation {\n border: none;\n background: none;\n}\n\n.swagger-ui .expand-methods svg,\n.swagger-ui .expand-operation svg {\n width: 20px;\n height: 20px;\n}\n\n.swagger-ui .expand-methods {\n padding: 0 10px;\n}\n\n.swagger-ui .expand-methods:hover svg {\n fill: #404040;\n}\n\n.swagger-ui .expand-methods svg {\n transition: all .3s;\n fill: #707070;\n}\n\n.swagger-ui button {\n cursor: pointer;\n outline: none;\n}\n\n.swagger-ui button.invalid {\n animation: shake .4s 1;\n border-color: #f93e3e;\n background: #feebeb;\n}\n\n.swagger-ui select {\n font-size: 14px;\n font-weight: bold;\n padding: 5px 40px 5px 10px;\n border: 2px solid #41444e;\n border-radius: 4px;\n background: #f7f7f7 url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+ICAgIDxwYXRoIGQ9Ik0xMy40MTggNy44NTljLjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwIC4yNy4yNjguMjcyLjcwMSAwIC45NjlsLTMuOTA4IDMuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC0zLjkwOC0zLjgzYy0uMjctLjI2Ny0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc4IDBMMTAgMTFsMy40MTgtMy4xNDF6Ii8+PC9zdmc+) right 10px center no-repeat;\n background-size: 20px;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.25);\n font-family: sans-serif;\n color: #3b4151;\n appearance: none;\n}\n\n.swagger-ui select[multiple] {\n margin: 5px 0;\n padding: 5px;\n background: #f7f7f7;\n}\n\n.swagger-ui select.invalid {\n animation: shake .4s 1;\n border-color: #f93e3e;\n background: #feebeb;\n}\n\n.swagger-ui .opblock-body select {\n min-width: 230px;\n}\n\n@media (max-width: 768px) {\n .swagger-ui .opblock-body select {\n min-width: 180px;\n }\n}\n\n.swagger-ui label {\n font-size: 12px;\n font-weight: bold;\n margin: 0 0 5px 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui input[type=text],\n.swagger-ui input[type=password],\n.swagger-ui input[type=search],\n.swagger-ui input[type=email],\n.swagger-ui input[type=file],\n.swagger-ui textarea {\n min-width: 100px;\n margin: 5px 0;\n padding: 8px 10px;\n border: 1px solid #d9d9d9;\n border-radius: 4px;\n background: #fff;\n}\n\n@media (max-width: 768px) {\n .swagger-ui input[type=text],\n .swagger-ui input[type=password],\n .swagger-ui input[type=search],\n .swagger-ui input[type=email],\n .swagger-ui input[type=file],\n .swagger-ui textarea {\n max-width: 175px;\n }\n}\n\n.swagger-ui input[type=text].invalid,\n.swagger-ui input[type=password].invalid,\n.swagger-ui input[type=search].invalid,\n.swagger-ui input[type=email].invalid,\n.swagger-ui input[type=file].invalid,\n.swagger-ui textarea.invalid {\n animation: shake .4s 1;\n border-color: #f93e3e;\n background: #feebeb;\n}\n\n.swagger-ui input[disabled],\n.swagger-ui textarea[disabled],\n.swagger-ui select[disabled] {\n background-color: #fafafa;\n color: #888;\n cursor: not-allowed;\n}\n\n.swagger-ui select[disabled] {\n border-color: #888;\n}\n\n.swagger-ui textarea[disabled] {\n background-color: #41444e;\n color: #fff;\n}\n\n@keyframes shake {\n 10%,\n 90% {\n transform: translate3d(-1px, 0, 0);\n }\n 20%,\n 80% {\n transform: translate3d(2px, 0, 0);\n }\n 30%,\n 50%,\n 70% {\n transform: translate3d(-4px, 0, 0);\n }\n 40%,\n 60% {\n transform: translate3d(4px, 0, 0);\n }\n}\n\n.swagger-ui textarea {\n font-size: 12px;\n width: 100%;\n min-height: 280px;\n padding: 10px;\n border: none;\n border-radius: 4px;\n outline: none;\n background: rgba(255, 255, 255, 0.8);\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui textarea:focus {\n border: 2px solid #61affe;\n}\n\n.swagger-ui textarea.curl {\n font-size: 12px;\n min-height: 100px;\n margin: 0;\n padding: 10px;\n resize: none;\n border-radius: 4px;\n background: #41444e;\n font-family: monospace;\n font-weight: 600;\n color: #fff;\n}\n\n.swagger-ui .checkbox {\n padding: 5px 0 10px;\n transition: opacity .5s;\n color: #303030;\n}\n\n.swagger-ui .checkbox label {\n display: flex;\n}\n\n.swagger-ui .checkbox p {\n font-weight: normal !important;\n font-style: italic;\n margin: 0 !important;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui .checkbox input[type=checkbox] {\n display: none;\n}\n\n.swagger-ui .checkbox input[type=checkbox] + label > .item {\n position: relative;\n top: 3px;\n display: inline-block;\n width: 16px;\n height: 16px;\n margin: 0 8px 0 0;\n padding: 5px;\n cursor: pointer;\n border-radius: 1px;\n background: #e8e8e8;\n box-shadow: 0 0 0 2px #e8e8e8;\n flex: none;\n}\n\n.swagger-ui .checkbox input[type=checkbox] + label > .item:active {\n transform: scale(0.9);\n}\n\n.swagger-ui .checkbox input[type=checkbox]:checked + label > .item {\n background: #e8e8e8 url(data:image/svg+xml,%0A%3Csvg%20width%3D%2210px%22%20height%3D%228px%22%20viewBox%3D%223%207%2010%208%22%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%3E%0A%20%20%20%20%3C%21--%20Generator%3A%20Sketch%2042%20%2836781%29%20-%20http%3A//www.bohemiancoding.com/sketch%20--%3E%0A%20%20%20%20%3Cdesc%3ECreated%20with%20Sketch.%3C/desc%3E%0A%20%20%20%20%3Cdefs%3E%3C/defs%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Rectangle-34%22%20stroke%3D%22none%22%20fill%3D%22%2341474E%22%20fill-rule%3D%22evenodd%22%20points%3D%226.33333333%2015%203%2011.6666667%204.33333333%2010.3333333%206.33333333%2012.3333333%2011.6666667%207%2013%208.33333333%22%3E%3C/polygon%3E%0A%3C/svg%3E) center center no-repeat;\n}\n\n.swagger-ui .dialog-ux {\n position: fixed;\n z-index: 9999;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n.swagger-ui .dialog-ux .backdrop-ux {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n background: rgba(0, 0, 0, 0.8);\n}\n\n.swagger-ui .dialog-ux .modal-ux {\n position: absolute;\n z-index: 9999;\n top: 50%;\n left: 50%;\n width: 100%;\n min-width: 300px;\n max-width: 650px;\n transform: translate(-50%, -50%);\n border: 1px solid #ebebeb;\n border-radius: 4px;\n background: #fff;\n box-shadow: 0 10px 30px 0 rgba(0, 0, 0, 0.2);\n}\n\n.swagger-ui .dialog-ux .modal-ux-content {\n overflow-y: auto;\n max-height: 540px;\n padding: 20px;\n}\n\n.swagger-ui .dialog-ux .modal-ux-content p {\n font-size: 12px;\n margin: 0 0 5px 0;\n color: #41444e;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .dialog-ux .modal-ux-content h4 {\n font-size: 18px;\n font-weight: 600;\n margin: 15px 0 0 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .dialog-ux .modal-ux-header {\n display: flex;\n padding: 12px 0;\n border-bottom: 1px solid #ebebeb;\n align-items: center;\n}\n\n.swagger-ui .dialog-ux .modal-ux-header .close-modal {\n padding: 0 10px;\n border: none;\n background: none;\n appearance: none;\n}\n\n.swagger-ui .dialog-ux .modal-ux-header h3 {\n font-size: 20px;\n font-weight: 600;\n margin: 0;\n padding: 0 20px;\n flex: 1;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .model {\n font-size: 12px;\n font-weight: 300;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui .model .deprecated span,\n.swagger-ui .model .deprecated td {\n color: #a0a0a0 !important;\n}\n\n.swagger-ui .model .deprecated > td:first-of-type {\n text-decoration: line-through;\n}\n\n.swagger-ui .model-toggle {\n font-size: 10px;\n position: relative;\n top: 6px;\n display: inline-block;\n margin: auto .3em;\n cursor: pointer;\n transition: transform .15s ease-in;\n transform: rotate(90deg);\n transform-origin: 50% 50%;\n}\n\n.swagger-ui .model-toggle.collapsed {\n transform: rotate(0deg);\n}\n\n.swagger-ui .model-toggle:after {\n display: block;\n width: 20px;\n height: 20px;\n content: '';\n background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M10%206L8.59%207.41%2013.17%2012l-4.58%204.59L10%2018l6-6z%22/%3E%0A%3C/svg%3E%0A) center center no-repeat;\n background-size: 100%;\n}\n\n.swagger-ui .model-jump-to-path {\n position: relative;\n cursor: pointer;\n}\n\n.swagger-ui .model-jump-to-path .view-line-link {\n position: absolute;\n top: -.4em;\n cursor: pointer;\n}\n\n.swagger-ui .model-title {\n position: relative;\n}\n\n.swagger-ui .model-title:hover .model-hint {\n visibility: visible;\n}\n\n.swagger-ui .model-hint {\n position: absolute;\n top: -1.8em;\n visibility: hidden;\n padding: .1em .5em;\n white-space: nowrap;\n color: #ebebeb;\n border-radius: 4px;\n background: rgba(0, 0, 0, 0.7);\n}\n\n.swagger-ui .model p {\n margin: 0 0 1em 0;\n}\n\n.swagger-ui section.models {\n margin: 30px 0;\n border: 1px solid rgba(59, 65, 81, 0.3);\n border-radius: 4px;\n}\n\n.swagger-ui section.models.is-open {\n padding: 0 0 20px;\n}\n\n.swagger-ui section.models.is-open h4 {\n margin: 0 0 5px 0;\n border-bottom: 1px solid rgba(59, 65, 81, 0.3);\n}\n\n.swagger-ui section.models h4 {\n font-size: 16px;\n display: flex;\n align-items: center;\n margin: 0;\n padding: 10px 20px 10px 10px;\n cursor: pointer;\n transition: all .2s;\n font-family: sans-serif;\n color: #606060;\n}\n\n.swagger-ui section.models h4 svg {\n transition: all .4s;\n}\n\n.swagger-ui section.models h4 span {\n flex: 1;\n}\n\n.swagger-ui section.models h4:hover {\n background: rgba(0, 0, 0, 0.02);\n}\n\n.swagger-ui section.models h5 {\n font-size: 16px;\n margin: 0 0 10px 0;\n font-family: sans-serif;\n color: #707070;\n}\n\n.swagger-ui section.models .model-jump-to-path {\n position: relative;\n top: 5px;\n}\n\n.swagger-ui section.models .model-container {\n margin: 0 20px 15px;\n position: relative;\n transition: all .5s;\n border-radius: 4px;\n background: rgba(0, 0, 0, 0.05);\n}\n\n.swagger-ui section.models .model-container:hover {\n background: rgba(0, 0, 0, 0.07);\n}\n\n.swagger-ui section.models .model-container:first-of-type {\n margin: 20px;\n}\n\n.swagger-ui section.models .model-container:last-of-type {\n margin: 0 20px;\n}\n\n.swagger-ui section.models .model-container .models-jump-to-path {\n position: absolute;\n top: 8px;\n right: 5px;\n opacity: 0.65;\n}\n\n.swagger-ui section.models .model-box {\n background: none;\n}\n\n.swagger-ui .model-box {\n padding: 10px;\n display: inline-block;\n border-radius: 4px;\n background: rgba(0, 0, 0, 0.1);\n}\n\n.swagger-ui .model-box .model-jump-to-path {\n position: relative;\n top: 4px;\n}\n\n.swagger-ui .model-box.deprecated {\n opacity: .5;\n}\n\n.swagger-ui .model-title {\n font-size: 16px;\n font-family: sans-serif;\n color: #505050;\n}\n\n.swagger-ui .model-deprecated-warning {\n font-size: 16px;\n font-weight: 600;\n margin-right: 1em;\n font-family: sans-serif;\n color: #f93e3e;\n}\n\n.swagger-ui span > span.model .brace-close {\n padding: 0 0 0 10px;\n}\n\n.swagger-ui .prop-name {\n display: inline-block;\n margin-right: 1em;\n}\n\n.swagger-ui .prop-type {\n color: #55a;\n}\n\n.swagger-ui .prop-enum {\n display: block;\n}\n\n.swagger-ui .prop-format {\n color: #606060;\n}\n\n.swagger-ui .servers > label {\n font-size: 12px;\n margin: -20px 15px 0 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .servers > label select {\n min-width: 130px;\n max-width: 100%;\n}\n\n.swagger-ui .servers h4.message {\n padding-bottom: 2em;\n}\n\n.swagger-ui .servers table tr {\n width: 30em;\n}\n\n.swagger-ui .servers table td {\n display: inline-block;\n max-width: 15em;\n vertical-align: middle;\n padding-top: 10px;\n padding-bottom: 10px;\n}\n\n.swagger-ui .servers table td:first-of-type {\n padding-right: 2em;\n}\n\n.swagger-ui .servers table td input {\n width: 100%;\n height: 100%;\n}\n\n.swagger-ui .servers .computed-url {\n margin: 2em 0;\n}\n\n.swagger-ui .servers .computed-url code {\n display: inline-block;\n padding: 4px;\n font-size: 16px;\n margin: 0 1em;\n}\n\n.swagger-ui .servers-title {\n font-size: 12px;\n font-weight: bold;\n}\n\n.swagger-ui .operation-servers h4.message {\n margin-bottom: 2em;\n}\n\n.swagger-ui table {\n width: 100%;\n padding: 0 10px;\n border-collapse: collapse;\n}\n\n.swagger-ui table.model tbody tr td {\n padding: 0;\n vertical-align: top;\n}\n\n.swagger-ui table.model tbody tr td:first-of-type {\n width: 174px;\n padding: 0 0 0 2em;\n}\n\n.swagger-ui table.headers td {\n font-size: 12px;\n font-weight: 300;\n vertical-align: middle;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui table tbody tr td {\n padding: 10px 0 0 0;\n vertical-align: top;\n}\n\n.swagger-ui table tbody tr td:first-of-type {\n max-width: 20%;\n min-width: 6em;\n padding: 10px 0;\n}\n\n.swagger-ui table thead tr th,\n.swagger-ui table thead tr td {\n font-size: 12px;\n font-weight: bold;\n padding: 12px 0;\n text-align: left;\n border-bottom: 1px solid rgba(59, 65, 81, 0.2);\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .parameters-col_description {\n width: 99%;\n margin-bottom: 2em;\n}\n\n.swagger-ui .parameters-col_description input[type=text] {\n width: 100%;\n max-width: 340px;\n}\n\n.swagger-ui .parameters-col_description select {\n border-width: 1px;\n}\n\n.swagger-ui .parameter__name {\n font-size: 16px;\n font-weight: normal;\n margin-right: .75em;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .parameter__name.required {\n font-weight: bold;\n}\n\n.swagger-ui .parameter__name.required:after {\n font-size: 10px;\n position: relative;\n top: -6px;\n padding: 5px;\n content: 'required';\n color: rgba(255, 0, 0, 0.6);\n}\n\n.swagger-ui .parameter__in,\n.swagger-ui .parameter__extension {\n font-size: 12px;\n font-style: italic;\n font-family: monospace;\n font-weight: 600;\n color: gray;\n}\n\n.swagger-ui .parameter__deprecated {\n font-size: 12px;\n font-style: italic;\n font-family: monospace;\n font-weight: 600;\n color: #f00;\n}\n\n.swagger-ui .parameter__empty_value_toggle {\n font-size: 13px;\n padding-top: 5px;\n padding-bottom: 12px;\n}\n\n.swagger-ui .parameter__empty_value_toggle input {\n margin-right: 7px;\n}\n\n.swagger-ui .parameter__empty_value_toggle.disabled {\n opacity: 0.7;\n}\n\n.swagger-ui .table-container {\n padding: 20px;\n}\n\n.swagger-ui .response-col_description {\n width: 99%;\n}\n\n.swagger-ui .response-col_links {\n min-width: 6em;\n}\n\n.swagger-ui .topbar {\n padding: 10px 0;\n background-color: #1b1b1b;\n}\n\n.swagger-ui .topbar .topbar-wrapper {\n display: flex;\n align-items: center;\n}\n\n.swagger-ui .topbar a {\n font-size: 1.5em;\n font-weight: bold;\n display: flex;\n align-items: center;\n flex: 1;\n max-width: 300px;\n text-decoration: none;\n font-family: sans-serif;\n color: #fff;\n}\n\n.swagger-ui .topbar a span {\n margin: 0;\n padding: 0 10px;\n}\n\n.swagger-ui .topbar .download-url-wrapper {\n display: flex;\n flex: 3;\n justify-content: flex-end;\n}\n\n.swagger-ui .topbar .download-url-wrapper input[type=text] {\n width: 100%;\n margin: 0;\n border: 2px solid #62a03f;\n border-radius: 4px 0 0 4px;\n outline: none;\n}\n\n.swagger-ui .topbar .download-url-wrapper .select-label {\n display: flex;\n align-items: center;\n width: 100%;\n max-width: 600px;\n margin: 0;\n color: #f0f0f0;\n}\n\n.swagger-ui .topbar .download-url-wrapper .select-label span {\n font-size: 16px;\n flex: 1;\n padding: 0 10px 0 0;\n text-align: right;\n}\n\n.swagger-ui .topbar .download-url-wrapper .select-label select {\n flex: 2;\n width: 100%;\n border: 2px solid #62a03f;\n outline: none;\n box-shadow: none;\n}\n\n.swagger-ui .topbar .download-url-wrapper .download-url-button {\n font-size: 16px;\n font-weight: bold;\n padding: 4px 30px;\n border: none;\n border-radius: 0 4px 4px 0;\n background: #62a03f;\n font-family: sans-serif;\n color: #fff;\n}\n\n.swagger-ui .info {\n margin: 50px 0;\n}\n\n.swagger-ui .info hgroup.main {\n margin: 0 0 20px 0;\n}\n\n.swagger-ui .info hgroup.main a {\n font-size: 12px;\n}\n\n.swagger-ui .info pre {\n font-size: 14px;\n}\n\n.swagger-ui .info p, .swagger-ui .info li, .swagger-ui .info table {\n font-size: 14px;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .info h1, .swagger-ui .info h2, .swagger-ui .info h3, .swagger-ui .info h4, .swagger-ui .info h5 {\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .info a {\n font-size: 14px;\n transition: all .4s;\n font-family: sans-serif;\n color: #4990e2;\n}\n\n.swagger-ui .info a:hover {\n color: #1f69c0;\n}\n\n.swagger-ui .info > div {\n margin: 0 0 5px 0;\n}\n\n.swagger-ui .info .base-url {\n font-size: 12px;\n font-weight: 300 !important;\n margin: 0;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui .info .title {\n font-size: 36px;\n margin: 0;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .info .title small {\n font-size: 10px;\n position: relative;\n top: -5px;\n display: inline-block;\n margin: 0 0 0 5px;\n padding: 2px 4px;\n vertical-align: super;\n border-radius: 57px;\n background: #7d8492;\n}\n\n.swagger-ui .info .title small pre {\n margin: 0;\n padding: 0;\n font-family: sans-serif;\n color: #fff;\n}\n\n.swagger-ui .auth-btn-wrapper {\n display: flex;\n padding: 10px 0;\n justify-content: center;\n}\n\n.swagger-ui .auth-btn-wrapper .btn-done {\n margin-right: 1em;\n}\n\n.swagger-ui .auth-wrapper {\n display: flex;\n flex: 1;\n justify-content: flex-end;\n}\n\n.swagger-ui .auth-wrapper .authorize {\n padding-right: 20px;\n margin-right: 10px;\n}\n\n.swagger-ui .auth-container {\n margin: 0 0 10px 0;\n padding: 10px 20px;\n border-bottom: 1px solid #ebebeb;\n}\n\n.swagger-ui .auth-container:last-of-type {\n margin: 0;\n padding: 10px 20px;\n border: 0;\n}\n\n.swagger-ui .auth-container h4 {\n margin: 5px 0 15px 0 !important;\n}\n\n.swagger-ui .auth-container .wrapper {\n margin: 0;\n padding: 0;\n}\n\n.swagger-ui .auth-container input[type=text],\n.swagger-ui .auth-container input[type=password] {\n min-width: 230px;\n}\n\n.swagger-ui .auth-container .errors {\n font-size: 12px;\n padding: 10px;\n border-radius: 4px;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui .scopes h2 {\n font-size: 14px;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n.swagger-ui .scope-def {\n padding: 0 0 20px 0;\n}\n\n.swagger-ui .errors-wrapper {\n margin: 20px;\n padding: 10px 20px;\n animation: scaleUp .5s;\n border: 2px solid #f93e3e;\n border-radius: 4px;\n background: rgba(249, 62, 62, 0.1);\n}\n\n.swagger-ui .errors-wrapper .error-wrapper {\n margin: 0 0 10px 0;\n}\n\n.swagger-ui .errors-wrapper .errors h4 {\n font-size: 14px;\n margin: 0;\n font-family: monospace;\n font-weight: 600;\n color: #3b4151;\n}\n\n.swagger-ui .errors-wrapper .errors small {\n color: #606060;\n}\n\n.swagger-ui .errors-wrapper hgroup {\n display: flex;\n align-items: center;\n}\n\n.swagger-ui .errors-wrapper hgroup h4 {\n font-size: 20px;\n margin: 0;\n flex: 1;\n font-family: sans-serif;\n color: #3b4151;\n}\n\n@keyframes scaleUp {\n 0% {\n transform: scale(0.8);\n opacity: 0;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n\n.swagger-ui .Resizer.vertical.disabled {\n display: none;\n}\n\n.swagger-ui .markdown p, .swagger-ui .markdown pre, .swagger-ui .renderedMarkdown p, .swagger-ui .renderedMarkdown pre {\n margin: 1em auto;\n}\n\n.swagger-ui .markdown pre, .swagger-ui .renderedMarkdown pre {\n color: black;\n font-weight: normal;\n white-space: pre-wrap;\n background: none;\n padding: 0px;\n}\n\n.swagger-ui .markdown code, .swagger-ui .renderedMarkdown code {\n font-size: 14px;\n padding: 5px 7px;\n border-radius: 4px;\n background: rgba(0, 0, 0, 0.05);\n font-family: monospace;\n font-weight: 600;\n color: #9012fe;\n}\n\n.swagger-ui .markdown pre > code, .swagger-ui .renderedMarkdown pre > code {\n display: block;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DEBUG CHILDREN\n Docs: http://tachyons.io/docs/debug/\n\n Just add the debug class to any element to see outlines on its\n children.\n\n*/\n\n.debug * { outline: 1px solid gold; }\n.debug-white * { outline: 1px solid white; }\n.debug-black * { outline: 1px solid black; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DEBUG GRID\n http://tachyons.io/docs/debug-grid/\n\n Can be useful for debugging layout issues\n or helping to make sure things line up perfectly.\n Just tack one of these classes onto a parent element.\n\n*/\n\n.debug-grid {\n background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTRDOTY4N0U2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTRDOTY4N0Q2N0VFMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3NjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3NzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PsBS+GMAAAAjSURBVHjaYvz//z8DLsD4gcGXiYEAGBIKGBne//fFpwAgwAB98AaF2pjlUQAAAABJRU5ErkJggg==) repeat top left;\n}\n\n.debug-grid-16 {\n background:transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ODYyRjhERDU2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6ODYyRjhERDQ2N0YyMTFFNjg2MzZDQjkwNkQ4MjgwMEIiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QTY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3QjY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvCS01IAAABMSURBVHjaYmR4/5+BFPBfAMFm/MBgx8RAGWCn1AAmSg34Q6kBDKMGMDCwICeMIemF/5QawEipAWwUhwEjMDvbAWlWkvVBwu8vQIABAEwBCph8U6c0AAAAAElFTkSuQmCC) repeat top left;\n}\n\n.debug-grid-8-solid {\n background:white url(data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAAAAD/4QMxaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLwA8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/PiA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29yZSA1LjYtYzExMSA3OS4xNTgzMjUsIDIwMTUvMDkvMTAtMDE6MTA6MjAgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE1IChNYWNpbnRvc2gpIiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOkIxMjI0OTczNjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOkIxMjI0OTc0NjdCMzExRTZCMkJDRTI0MDgxMDAyMTcxIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6QjEyMjQ5NzE2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6QjEyMjQ5NzI2N0IzMTFFNkIyQkNFMjQwODEwMDIxNzEiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz7/7gAOQWRvYmUAZMAAAAAB/9sAhAAbGhopHSlBJiZBQi8vL0JHPz4+P0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHAR0pKTQmND8oKD9HPzU/R0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0dHR0f/wAARCAAIAAgDASIAAhEBAxEB/8QAWQABAQAAAAAAAAAAAAAAAAAAAAYBAQEAAAAAAAAAAAAAAAAAAAIEEAEBAAMBAAAAAAAAAAAAAAABADECA0ERAAEDBQAAAAAAAAAAAAAAAAARITFBUWESIv/aAAwDAQACEQMRAD8AoOnTV1QTD7JJshP3vSM3P//Z) repeat top left;\n}\n\n.debug-grid-16-solid {\n background:white url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAIAAACQkWg2AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTExIDc5LjE1ODMyNSwgMjAxNS8wOS8xMC0wMToxMDoyMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTUgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NzY3MkJEN0U2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6NzY3MkJEN0Y2N0M1MTFFNkIyQkNFMjQwODEwMDIxNzEiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo3NjcyQkQ3QzY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo3NjcyQkQ3RDY3QzUxMUU2QjJCQ0UyNDA4MTAwMjE3MSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pve6J3kAAAAzSURBVHjaYvz//z8D0UDsMwMjSRoYP5Gq4SPNbRjVMEQ1fCRDg+in/6+J1AJUxsgAEGAA31BAJMS0GYEAAAAASUVORK5CYII=) repeat top left;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BOX SIZING\n\n*/\n\nhtml,\nbody,\ndiv,\narticle,\nsection,\nmain,\nfooter,\nheader,\nform,\nfieldset,\nlegend,\npre,\ncode,\na,\nh1,h2,h3,h4,h5,h6,\np,\nul,\nol,\nli,\ndl,\ndt,\ndd,\ntextarea,\ntable,\ntd,\nth,\ntr,\ninput[type=\"email\"],\ninput[type=\"number\"],\ninput[type=\"password\"],\ninput[type=\"tel\"],\ninput[type=\"text\"],\ninput[type=\"url\"],\n.border-box {\n box-sizing: border-box;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n ASPECT RATIOS\n\n*/\n\n/* This is for fluid media that is embedded from third party sites like youtube, vimeo etc.\n * Wrap the outer element in aspect-ratio and then extend it with the desired ratio i.e\n * Make sure there are no height and width attributes on the embedded media.\n * Adapted from: https://github.com/suitcss/components-flex-embed\n *\n * Example:\n *\n *
\n * \n *
\n *\n * */\n\n.aspect-ratio {\n height: 0;\n position: relative;\n}\n\n.aspect-ratio--16x9 { padding-bottom: 56.25%; }\n.aspect-ratio--9x16 { padding-bottom: 177.77%; }\n\n.aspect-ratio--4x3 { padding-bottom: 75%; }\n.aspect-ratio--3x4 { padding-bottom: 133.33%; }\n\n.aspect-ratio--6x4 { padding-bottom: 66.6%; }\n.aspect-ratio--4x6 { padding-bottom: 150%; }\n\n.aspect-ratio--8x5 { padding-bottom: 62.5%; }\n.aspect-ratio--5x8 { padding-bottom: 160%; }\n\n.aspect-ratio--7x5 { padding-bottom: 71.42%; }\n.aspect-ratio--5x7 { padding-bottom: 140%; }\n\n.aspect-ratio--1x1 { padding-bottom: 100%; }\n\n.aspect-ratio--object {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n}\n\n@media #{$breakpoint-not-small}{\n .aspect-ratio-ns {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-ns { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-ns { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-ns { padding-bottom: 75%; }\n .aspect-ratio--3x4-ns { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-ns { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-ns { padding-bottom: 150%; }\n .aspect-ratio--8x5-ns { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-ns { padding-bottom: 160%; }\n .aspect-ratio--7x5-ns { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-ns { padding-bottom: 140%; }\n .aspect-ratio--1x1-ns { padding-bottom: 100%; }\n .aspect-ratio--object-ns {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media #{$breakpoint-medium}{\n .aspect-ratio-m {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-m { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-m { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-m { padding-bottom: 75%; }\n .aspect-ratio--3x4-m { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-m { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-m { padding-bottom: 150%; }\n .aspect-ratio--8x5-m { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-m { padding-bottom: 160%; }\n .aspect-ratio--7x5-m { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-m { padding-bottom: 140%; }\n .aspect-ratio--1x1-m { padding-bottom: 100%; }\n .aspect-ratio--object-m {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n\n@media #{$breakpoint-large}{\n .aspect-ratio-l {\n height: 0;\n position: relative;\n }\n .aspect-ratio--16x9-l { padding-bottom: 56.25%; }\n .aspect-ratio--9x16-l { padding-bottom: 177.77%; }\n .aspect-ratio--4x3-l { padding-bottom: 75%; }\n .aspect-ratio--3x4-l { padding-bottom: 133.33%; }\n .aspect-ratio--6x4-l { padding-bottom: 66.6%; }\n .aspect-ratio--4x6-l { padding-bottom: 150%; }\n .aspect-ratio--8x5-l { padding-bottom: 62.5%; }\n .aspect-ratio--5x8-l { padding-bottom: 160%; }\n .aspect-ratio--7x5-l { padding-bottom: 71.42%; }\n .aspect-ratio--5x7-l { padding-bottom: 140%; }\n .aspect-ratio--1x1-l { padding-bottom: 100%; }\n .aspect-ratio--object-l {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 100;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n IMAGES\n Docs: http://tachyons.io/docs/elements/images/\n\n*/\n\n/* Responsive images! */\n\nimg { max-width: 100%; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BACKGROUND SIZE\n Docs: http://tachyons.io/docs/themes/background-size/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/*\n Often used in combination with background image set as an inline style\n on an html element.\n*/\n\n .cover { background-size: cover!important; }\n .contain { background-size: contain!important; }\n\n@media #{$breakpoint-not-small} {\n .cover-ns { background-size: cover!important; }\n .contain-ns { background-size: contain!important; }\n}\n\n@media #{$breakpoint-medium} {\n .cover-m { background-size: cover!important; }\n .contain-m { background-size: contain!important; }\n}\n\n@media #{$breakpoint-large} {\n .cover-l { background-size: cover!important; }\n .contain-l { background-size: contain!important; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BACKGROUND POSITION\n\n Base:\n bg = background\n\n Modifiers:\n -center = center center\n -top = top center\n -right = center right\n -bottom = bottom center\n -left = center left\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.bg-center { \n background-repeat: no-repeat;\n background-position: center center; \n}\n\n.bg-top { \n background-repeat: no-repeat; \n background-position: top center; \n}\n\n.bg-right { \n background-repeat: no-repeat; \n background-position: center right; \n}\n\n.bg-bottom { \n background-repeat: no-repeat; \n background-position: bottom center; \n}\n\n.bg-left { \n background-repeat: no-repeat; \n background-position: center left; \n}\n\n@media #{$breakpoint-not-small} {\n .bg-center-ns { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-ns { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-ns { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-ns { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-ns { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n\n@media #{$breakpoint-medium} {\n .bg-center-m { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-m { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-m { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-m { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-m { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n\n@media #{$breakpoint-large} {\n .bg-center-l { \n background-repeat: no-repeat;\n background-position: center center; \n }\n\n .bg-top-l { \n background-repeat: no-repeat; \n background-position: top center; \n }\n\n .bg-right-l { \n background-repeat: no-repeat; \n background-position: center right; \n }\n\n .bg-bottom-l { \n background-repeat: no-repeat; \n background-position: bottom center; \n }\n\n .bg-left-l { \n background-repeat: no-repeat; \n background-position: center left; \n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OUTLINES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.outline { outline: 1px solid; }\n.outline-transparent { outline: 1px solid transparent; }\n.outline-0 { outline: 0; }\n\n@media #{$breakpoint-not-small} {\n .outline-ns { outline: 1px solid; }\n .outline-transparent-ns { outline: 1px solid transparent; }\n .outline-0-ns { outline: 0; }\n}\n\n@media #{$breakpoint-medium} {\n .outline-m { outline: 1px solid; }\n .outline-transparent-m { outline: 1px solid transparent; }\n .outline-0-m { outline: 0; }\n}\n\n@media #{$breakpoint-large} {\n .outline-l { outline: 1px solid; }\n .outline-transparent-l { outline: 1px solid transparent; }\n .outline-0-l { outline: 0; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDERS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n b = border\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .ba { border-style: solid; border-width: 1px; }\n .bt { border-top-style: solid; border-top-width: 1px; }\n .br { border-right-style: solid; border-right-width: 1px; }\n .bb { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl { border-left-style: solid; border-left-width: 1px; }\n .bn { border-style: none; border-width: 0; }\n\n\n@media #{$breakpoint-not-small} {\n .ba-ns { border-style: solid; border-width: 1px; }\n .bt-ns { border-top-style: solid; border-top-width: 1px; }\n .br-ns { border-right-style: solid; border-right-width: 1px; }\n .bb-ns { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-ns { border-left-style: solid; border-left-width: 1px; }\n .bn-ns { border-style: none; border-width: 0; }\n}\n\n@media #{$breakpoint-medium} {\n .ba-m { border-style: solid; border-width: 1px; }\n .bt-m { border-top-style: solid; border-top-width: 1px; }\n .br-m { border-right-style: solid; border-right-width: 1px; }\n .bb-m { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-m { border-left-style: solid; border-left-width: 1px; }\n .bn-m { border-style: none; border-width: 0; }\n}\n\n@media #{$breakpoint-large} {\n .ba-l { border-style: solid; border-width: 1px; }\n .bt-l { border-top-style: solid; border-top-width: 1px; }\n .br-l { border-right-style: solid; border-right-width: 1px; }\n .bb-l { border-bottom-style: solid; border-bottom-width: 1px; }\n .bl-l { border-left-style: solid; border-left-width: 1px; }\n .bn-l { border-style: none; border-width: 0; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER COLORS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Border colors can be used to extend the base\n border classes ba,bt,bb,br,bl found in the _borders.css file.\n\n The base border class by default will set the color of the border\n to that of the current text color. These classes are for the cases\n where you desire for the text and border colors to be different.\n\n Base:\n b = border\n\n Modifiers:\n --color-name = each color variable name is also a border color name\n\n*/\n\n.b--black { border-color: $black; }\n.b--near-black { border-color: $near-black; }\n.b--dark-gray { border-color: $dark-gray; }\n.b--mid-gray { border-color: $mid-gray; }\n.b--gray { border-color: $gray; }\n.b--silver { border-color: $silver; }\n.b--light-silver { border-color: $light-silver; }\n.b--moon-gray { border-color: $moon-gray; }\n.b--light-gray { border-color: $light-gray; }\n.b--near-white { border-color: $near-white; }\n.b--white { border-color: $white; }\n\n.b--white-90 { border-color: $white-90; }\n.b--white-80 { border-color: $white-80; }\n.b--white-70 { border-color: $white-70; }\n.b--white-60 { border-color: $white-60; }\n.b--white-50 { border-color: $white-50; }\n.b--white-40 { border-color: $white-40; }\n.b--white-30 { border-color: $white-30; }\n.b--white-20 { border-color: $white-20; }\n.b--white-10 { border-color: $white-10; }\n.b--white-05 { border-color: $white-05; }\n.b--white-025 { border-color: $white-025; }\n.b--white-0125 { border-color: $white-0125; }\n\n.b--black-90 { border-color: $black-90; }\n.b--black-80 { border-color: $black-80; }\n.b--black-70 { border-color: $black-70; }\n.b--black-60 { border-color: $black-60; }\n.b--black-50 { border-color: $black-50; }\n.b--black-40 { border-color: $black-40; }\n.b--black-30 { border-color: $black-30; }\n.b--black-20 { border-color: $black-20; }\n.b--black-10 { border-color: $black-10; }\n.b--black-05 { border-color: $black-05; }\n.b--black-025 { border-color: $black-025; }\n.b--black-0125 { border-color: $black-0125; }\n\n.b--dark-red { border-color: $dark-red; }\n.b--red { border-color: $red; }\n.b--light-red { border-color: $light-red; }\n.b--orange { border-color: $orange; }\n.b--gold { border-color: $gold; }\n.b--yellow { border-color: $yellow; }\n.b--light-yellow { border-color: $light-yellow; }\n.b--purple { border-color: $purple; }\n.b--light-purple { border-color: $light-purple; }\n.b--dark-pink { border-color: $dark-pink; }\n.b--hot-pink { border-color: $hot-pink; }\n.b--pink { border-color: $pink; }\n.b--light-pink { border-color: $light-pink; }\n.b--dark-green { border-color: $dark-green; }\n.b--green { border-color: $green; }\n.b--light-green { border-color: $light-green; }\n.b--navy { border-color: $navy; }\n.b--dark-blue { border-color: $dark-blue; }\n.b--blue { border-color: $blue; }\n.b--light-blue { border-color: $light-blue; }\n.b--lightest-blue { border-color: $lightest-blue; }\n.b--washed-blue { border-color: $washed-blue; }\n.b--washed-green { border-color: $washed-green; }\n.b--washed-yellow { border-color: $washed-yellow; }\n.b--washed-red { border-color: $washed-red; }\n\n.b--transparent { border-color: $transparent; }\n.b--inherit { border-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER RADIUS\n Docs: http://tachyons.io/docs/themes/border-radius/\n\n Base:\n br = border-radius\n\n Modifiers:\n 0 = 0/none\n 1 = 1st step in scale\n 2 = 2nd step in scale\n 3 = 3rd step in scale\n 4 = 4th step in scale\n\n Literal values:\n -100 = 100%\n -pill = 9999px\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .br0 { border-radius: $border-radius-none }\n .br1 { border-radius: $border-radius-1; }\n .br2 { border-radius: $border-radius-2; }\n .br3 { border-radius: $border-radius-3; }\n .br4 { border-radius: $border-radius-4; }\n .br-100 { border-radius: $border-radius-circle; }\n .br-pill { border-radius: $border-radius-pill; }\n .br--bottom {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n\n@media #{$breakpoint-not-small} {\n .br0-ns { border-radius: $border-radius-none }\n .br1-ns { border-radius: $border-radius-1; }\n .br2-ns { border-radius: $border-radius-2; }\n .br3-ns { border-radius: $border-radius-3; }\n .br4-ns { border-radius: $border-radius-4; }\n .br-100-ns { border-radius: $border-radius-circle; }\n .br-pill-ns { border-radius: $border-radius-pill; }\n .br--bottom-ns {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-ns {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-ns {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-ns {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media #{$breakpoint-medium} {\n .br0-m { border-radius: $border-radius-none }\n .br1-m { border-radius: $border-radius-1; }\n .br2-m { border-radius: $border-radius-2; }\n .br3-m { border-radius: $border-radius-3; }\n .br4-m { border-radius: $border-radius-4; }\n .br-100-m { border-radius: $border-radius-circle; }\n .br-pill-m { border-radius: $border-radius-pill; }\n .br--bottom-m {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-m {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-m {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-m {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n\n@media #{$breakpoint-large} {\n .br0-l { border-radius: $border-radius-none }\n .br1-l { border-radius: $border-radius-1; }\n .br2-l { border-radius: $border-radius-2; }\n .br3-l { border-radius: $border-radius-3; }\n .br4-l { border-radius: $border-radius-4; }\n .br-100-l { border-radius: $border-radius-circle; }\n .br-pill-l { border-radius: $border-radius-pill; }\n .br--bottom-l {\n border-top-left-radius: 0;\n border-top-right-radius: 0;\n }\n .br--top-l {\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n }\n .br--right-l {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n .br--left-l {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER STYLES\n Docs: http://tachyons.io/docs/themes/borders/\n\n Depends on base border module in _borders.css\n\n Base:\n b = border-style\n\n Modifiers:\n --none = none\n --dotted = dotted\n --dashed = dashed\n --solid = solid\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.b--dotted { border-style: dotted; }\n.b--dashed { border-style: dashed; }\n.b--solid { border-style: solid; }\n.b--none { border-style: none; }\n\n@media #{$breakpoint-not-small} {\n .b--dotted-ns { border-style: dotted; }\n .b--dashed-ns { border-style: dashed; }\n .b--solid-ns { border-style: solid; }\n .b--none-ns { border-style: none; }\n}\n\n@media #{$breakpoint-medium} {\n .b--dotted-m { border-style: dotted; }\n .b--dashed-m { border-style: dashed; }\n .b--solid-m { border-style: solid; }\n .b--none-m { border-style: none; }\n}\n\n@media #{$breakpoint-large} {\n .b--dotted-l { border-style: dotted; }\n .b--dashed-l { border-style: dashed; }\n .b--solid-l { border-style: solid; }\n .b--none-l { border-style: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BORDER WIDTHS\n Docs: http://tachyons.io/docs/themes/borders/\n\n Base:\n bw = border-width\n\n Modifiers:\n 0 = 0 width border\n 1 = 1st step in border-width scale\n 2 = 2nd step in border-width scale\n 3 = 3rd step in border-width scale\n 4 = 4th step in border-width scale\n 5 = 5th step in border-width scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.bw0 { border-width: $border-width-none; }\n.bw1 { border-width: $border-width-1; }\n.bw2 { border-width: $border-width-2; }\n.bw3 { border-width: $border-width-3; }\n.bw4 { border-width: $border-width-4; }\n.bw5 { border-width: $border-width-5; }\n\n/* Resets */\n.bt-0 { border-top-width: $border-width-none }\n.br-0 { border-right-width: $border-width-none }\n.bb-0 { border-bottom-width: $border-width-none }\n.bl-0 { border-left-width: $border-width-none }\n\n@media #{$breakpoint-not-small} {\n .bw0-ns { border-width: $border-width-none; }\n .bw1-ns { border-width: $border-width-1; }\n .bw2-ns { border-width: $border-width-2; }\n .bw3-ns { border-width: $border-width-3; }\n .bw4-ns { border-width: $border-width-4; }\n .bw5-ns { border-width: $border-width-5; }\n .bt-0-ns { border-top-width: $border-width-none }\n .br-0-ns { border-right-width: $border-width-none }\n .bb-0-ns { border-bottom-width: $border-width-none }\n .bl-0-ns { border-left-width: $border-width-none }\n}\n\n@media #{$breakpoint-medium} {\n .bw0-m { border-width: $border-width-none; }\n .bw1-m { border-width: $border-width-1; }\n .bw2-m { border-width: $border-width-2; }\n .bw3-m { border-width: $border-width-3; }\n .bw4-m { border-width: $border-width-4; }\n .bw5-m { border-width: $border-width-5; }\n .bt-0-m { border-top-width: $border-width-none }\n .br-0-m { border-right-width: $border-width-none }\n .bb-0-m { border-bottom-width: $border-width-none }\n .bl-0-m { border-left-width: $border-width-none }\n}\n\n@media #{$breakpoint-large} {\n .bw0-l { border-width: $border-width-none; }\n .bw1-l { border-width: $border-width-1; }\n .bw2-l { border-width: $border-width-2; }\n .bw3-l { border-width: $border-width-3; }\n .bw4-l { border-width: $border-width-4; }\n .bw5-l { border-width: $border-width-5; }\n .bt-0-l { border-top-width: $border-width-none }\n .br-0-l { border-right-width: $border-width-none }\n .bb-0-l { border-bottom-width: $border-width-none }\n .bl-0-l { border-left-width: $border-width-none }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n BOX-SHADOW\n Docs: http://tachyons.io/docs/themes/box-shadow/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.shadow-1 { box-shadow: $box-shadow-1; }\n.shadow-2 { box-shadow: $box-shadow-2; }\n.shadow-3 { box-shadow: $box-shadow-3; }\n.shadow-4 { box-shadow: $box-shadow-4; }\n.shadow-5 { box-shadow: $box-shadow-5; }\n\n@media #{$breakpoint-not-small} {\n .shadow-1-ns { box-shadow: $box-shadow-1; }\n .shadow-2-ns { box-shadow: $box-shadow-2; }\n .shadow-3-ns { box-shadow: $box-shadow-3; }\n .shadow-4-ns { box-shadow: $box-shadow-4; }\n .shadow-5-ns { box-shadow: $box-shadow-5; }\n}\n\n@media #{$breakpoint-medium} {\n .shadow-1-m { box-shadow: $box-shadow-1; }\n .shadow-2-m { box-shadow: $box-shadow-2; }\n .shadow-3-m { box-shadow: $box-shadow-3; }\n .shadow-4-m { box-shadow: $box-shadow-4; }\n .shadow-5-m { box-shadow: $box-shadow-5; }\n}\n\n@media #{$breakpoint-large} {\n .shadow-1-l { box-shadow: $box-shadow-1; }\n .shadow-2-l { box-shadow: $box-shadow-2; }\n .shadow-3-l { box-shadow: $box-shadow-3; }\n .shadow-4-l { box-shadow: $box-shadow-4; }\n .shadow-5-l { box-shadow: $box-shadow-5; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n CODE\n\n*/\n\n.pre {\n overflow-x: auto;\n overflow-y: hidden;\n overflow: scroll;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n COORDINATES\n Docs: http://tachyons.io/docs/layout/position/\n\n Use in combination with the position module.\n\n Base:\n top\n bottom\n right\n left\n\n Modifiers:\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n --1 = literal value -1\n --2 = literal value -2\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.top-0 { top: 0; }\n.right-0 { right: 0; }\n.bottom-0 { bottom: 0; }\n.left-0 { left: 0; }\n\n.top-1 { top: 1rem; }\n.right-1 { right: 1rem; }\n.bottom-1 { bottom: 1rem; }\n.left-1 { left: 1rem; }\n\n.top-2 { top: 2rem; }\n.right-2 { right: 2rem; }\n.bottom-2 { bottom: 2rem; }\n.left-2 { left: 2rem; }\n\n.top--1 { top: -1rem; }\n.right--1 { right: -1rem; }\n.bottom--1 { bottom: -1rem; }\n.left--1 { left: -1rem; }\n\n.top--2 { top: -2rem; }\n.right--2 { right: -2rem; }\n.bottom--2 { bottom: -2rem; }\n.left--2 { left: -2rem; }\n\n\n.absolute--fill {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n}\n\n@media #{$breakpoint-not-small} {\n .top-0-ns { top: 0; }\n .left-0-ns { left: 0; }\n .right-0-ns { right: 0; }\n .bottom-0-ns { bottom: 0; }\n .top-1-ns { top: 1rem; }\n .left-1-ns { left: 1rem; }\n .right-1-ns { right: 1rem; }\n .bottom-1-ns { bottom: 1rem; }\n .top-2-ns { top: 2rem; }\n .left-2-ns { left: 2rem; }\n .right-2-ns { right: 2rem; }\n .bottom-2-ns { bottom: 2rem; }\n .top--1-ns { top: -1rem; }\n .right--1-ns { right: -1rem; }\n .bottom--1-ns { bottom: -1rem; }\n .left--1-ns { left: -1rem; }\n .top--2-ns { top: -2rem; }\n .right--2-ns { right: -2rem; }\n .bottom--2-ns { bottom: -2rem; }\n .left--2-ns { left: -2rem; }\n .absolute--fill-ns {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media #{$breakpoint-medium} {\n .top-0-m { top: 0; }\n .left-0-m { left: 0; }\n .right-0-m { right: 0; }\n .bottom-0-m { bottom: 0; }\n .top-1-m { top: 1rem; }\n .left-1-m { left: 1rem; }\n .right-1-m { right: 1rem; }\n .bottom-1-m { bottom: 1rem; }\n .top-2-m { top: 2rem; }\n .left-2-m { left: 2rem; }\n .right-2-m { right: 2rem; }\n .bottom-2-m { bottom: 2rem; }\n .top--1-m { top: -1rem; }\n .right--1-m { right: -1rem; }\n .bottom--1-m { bottom: -1rem; }\n .left--1-m { left: -1rem; }\n .top--2-m { top: -2rem; }\n .right--2-m { right: -2rem; }\n .bottom--2-m { bottom: -2rem; }\n .left--2-m { left: -2rem; }\n .absolute--fill-m {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n@media #{$breakpoint-large} {\n .top-0-l { top: 0; }\n .left-0-l { left: 0; }\n .right-0-l { right: 0; }\n .bottom-0-l { bottom: 0; }\n .top-1-l { top: 1rem; }\n .left-1-l { left: 1rem; }\n .right-1-l { right: 1rem; }\n .bottom-1-l { bottom: 1rem; }\n .top-2-l { top: 2rem; }\n .left-2-l { left: 2rem; }\n .right-2-l { right: 2rem; }\n .bottom-2-l { bottom: 2rem; }\n .top--1-l { top: -1rem; }\n .right--1-l { right: -1rem; }\n .bottom--1-l { bottom: -1rem; }\n .left--1-l { left: -1rem; }\n .top--2-l { top: -2rem; }\n .right--2-l { right: -2rem; }\n .bottom--2-l { bottom: -2rem; }\n .left--2-l { left: -2rem; }\n .absolute--fill-l {\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n CLEARFIX\n http://tachyons.io/docs/layout/clearfix/\n\n*/\n\n/* Nicolas Gallaghers Clearfix solution\n Ref: http://nicolasgallagher.com/micro-clearfix-hack/ */\n\n.cf:before,\n.cf:after { content: \" \"; display: table; }\n.cf:after { clear: both; }\n.cf { *zoom: 1; }\n\n.cl { clear: left; }\n.cr { clear: right; }\n.cb { clear: both; }\n.cn { clear: none; }\n\n@media #{$breakpoint-not-small} {\n .cl-ns { clear: left; }\n .cr-ns { clear: right; }\n .cb-ns { clear: both; }\n .cn-ns { clear: none; }\n}\n\n@media #{$breakpoint-medium} {\n .cl-m { clear: left; }\n .cr-m { clear: right; }\n .cb-m { clear: both; }\n .cn-m { clear: none; }\n}\n\n@media #{$breakpoint-large} {\n .cl-l { clear: left; }\n .cr-l { clear: right; }\n .cb-l { clear: both; }\n .cn-l { clear: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FLEXBOX\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.flex { display: flex; }\n.inline-flex { display: inline-flex; }\n\n/* 1. Fix for Chrome 44 bug.\n * https://code.google.com/p/chromium/issues/detail?id=506893 */\n.flex-auto {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n}\n\n.flex-none { flex: none; }\n\n.flex-column { flex-direction: column; }\n.flex-row { flex-direction: row; }\n.flex-wrap { flex-wrap: wrap; }\n.flex-nowrap { flex-wrap: nowrap; }\n.flex-wrap-reverse { flex-wrap: wrap-reverse; }\n.flex-column-reverse { flex-direction: column-reverse; }\n.flex-row-reverse { flex-direction: row-reverse; }\n\n.items-start { align-items: flex-start; }\n.items-end { align-items: flex-end; }\n.items-center { align-items: center; }\n.items-baseline { align-items: baseline; }\n.items-stretch { align-items: stretch; }\n\n.self-start { align-self: flex-start; }\n.self-end { align-self: flex-end; }\n.self-center { align-self: center; }\n.self-baseline { align-self: baseline; }\n.self-stretch { align-self: stretch; }\n\n.justify-start { justify-content: flex-start; }\n.justify-end { justify-content: flex-end; }\n.justify-center { justify-content: center; }\n.justify-between { justify-content: space-between; }\n.justify-around { justify-content: space-around; }\n\n.content-start { align-content: flex-start; }\n.content-end { align-content: flex-end; }\n.content-center { align-content: center; }\n.content-between { align-content: space-between; }\n.content-around { align-content: space-around; }\n.content-stretch { align-content: stretch; }\n\n.order-0 { order: 0; }\n.order-1 { order: 1; }\n.order-2 { order: 2; }\n.order-3 { order: 3; }\n.order-4 { order: 4; }\n.order-5 { order: 5; }\n.order-6 { order: 6; }\n.order-7 { order: 7; }\n.order-8 { order: 8; }\n.order-last { order: 99999; }\n\n.flex-grow-0 { flex-grow: 0; }\n.flex-grow-1 { flex-grow: 1; }\n\n.flex-shrink-0 { flex-shrink: 0; }\n.flex-shrink-1 { flex-shrink: 1; }\n\n@media #{$breakpoint-not-small} {\n .flex-ns { display: flex; }\n .inline-flex-ns { display: inline-flex; }\n .flex-auto-ns {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-ns { flex: none; }\n .flex-column-ns { flex-direction: column; }\n .flex-row-ns { flex-direction: row; }\n .flex-wrap-ns { flex-wrap: wrap; }\n .flex-nowrap-ns { flex-wrap: nowrap; }\n .flex-wrap-reverse-ns { flex-wrap: wrap-reverse; }\n .flex-column-reverse-ns { flex-direction: column-reverse; }\n .flex-row-reverse-ns { flex-direction: row-reverse; }\n .items-start-ns { align-items: flex-start; }\n .items-end-ns { align-items: flex-end; }\n .items-center-ns { align-items: center; }\n .items-baseline-ns { align-items: baseline; }\n .items-stretch-ns { align-items: stretch; }\n\n .self-start-ns { align-self: flex-start; }\n .self-end-ns { align-self: flex-end; }\n .self-center-ns { align-self: center; }\n .self-baseline-ns { align-self: baseline; }\n .self-stretch-ns { align-self: stretch; }\n\n .justify-start-ns { justify-content: flex-start; }\n .justify-end-ns { justify-content: flex-end; }\n .justify-center-ns { justify-content: center; }\n .justify-between-ns { justify-content: space-between; }\n .justify-around-ns { justify-content: space-around; }\n\n .content-start-ns { align-content: flex-start; }\n .content-end-ns { align-content: flex-end; }\n .content-center-ns { align-content: center; }\n .content-between-ns { align-content: space-between; }\n .content-around-ns { align-content: space-around; }\n .content-stretch-ns { align-content: stretch; }\n\n .order-0-ns { order: 0; }\n .order-1-ns { order: 1; }\n .order-2-ns { order: 2; }\n .order-3-ns { order: 3; }\n .order-4-ns { order: 4; }\n .order-5-ns { order: 5; }\n .order-6-ns { order: 6; }\n .order-7-ns { order: 7; }\n .order-8-ns { order: 8; }\n .order-last-ns { order: 99999; }\n\n .flex-grow-0-ns { flex-grow: 0; }\n .flex-grow-1-ns { flex-grow: 1; }\n\n .flex-shrink-0-ns { flex-shrink: 0; }\n .flex-shrink-1-ns { flex-shrink: 1; }\n}\n@media #{$breakpoint-medium} {\n .flex-m { display: flex; }\n .inline-flex-m { display: inline-flex; }\n .flex-auto-m {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-m { flex: none; }\n .flex-column-m { flex-direction: column; }\n .flex-row-m { flex-direction: row; }\n .flex-wrap-m { flex-wrap: wrap; }\n .flex-nowrap-m { flex-wrap: nowrap; }\n .flex-wrap-reverse-m { flex-wrap: wrap-reverse; }\n .flex-column-reverse-m { flex-direction: column-reverse; }\n .flex-row-reverse-m { flex-direction: row-reverse; }\n .items-start-m { align-items: flex-start; }\n .items-end-m { align-items: flex-end; }\n .items-center-m { align-items: center; }\n .items-baseline-m { align-items: baseline; }\n .items-stretch-m { align-items: stretch; }\n\n .self-start-m { align-self: flex-start; }\n .self-end-m { align-self: flex-end; }\n .self-center-m { align-self: center; }\n .self-baseline-m { align-self: baseline; }\n .self-stretch-m { align-self: stretch; }\n\n .justify-start-m { justify-content: flex-start; }\n .justify-end-m { justify-content: flex-end; }\n .justify-center-m { justify-content: center; }\n .justify-between-m { justify-content: space-between; }\n .justify-around-m { justify-content: space-around; }\n\n .content-start-m { align-content: flex-start; }\n .content-end-m { align-content: flex-end; }\n .content-center-m { align-content: center; }\n .content-between-m { align-content: space-between; }\n .content-around-m { align-content: space-around; }\n .content-stretch-m { align-content: stretch; }\n\n .order-0-m { order: 0; }\n .order-1-m { order: 1; }\n .order-2-m { order: 2; }\n .order-3-m { order: 3; }\n .order-4-m { order: 4; }\n .order-5-m { order: 5; }\n .order-6-m { order: 6; }\n .order-7-m { order: 7; }\n .order-8-m { order: 8; }\n .order-last-m { order: 99999; }\n\n .flex-grow-0-m { flex-grow: 0; }\n .flex-grow-1-m { flex-grow: 1; }\n\n .flex-shrink-0-m { flex-shrink: 0; }\n .flex-shrink-1-m { flex-shrink: 1; }\n}\n\n@media #{$breakpoint-large} {\n .flex-l { display: flex; }\n .inline-flex-l { display: inline-flex; }\n .flex-auto-l {\n flex: 1 1 auto;\n min-width: 0; /* 1 */\n min-height: 0; /* 1 */\n }\n .flex-none-l { flex: none; }\n .flex-column-l { flex-direction: column; }\n .flex-row-l { flex-direction: row; }\n .flex-wrap-l { flex-wrap: wrap; }\n .flex-nowrap-l { flex-wrap: nowrap; }\n .flex-wrap-reverse-l { flex-wrap: wrap-reverse; }\n .flex-column-reverse-l { flex-direction: column-reverse; }\n .flex-row-reverse-l { flex-direction: row-reverse; }\n\n .items-start-l { align-items: flex-start; }\n .items-end-l { align-items: flex-end; }\n .items-center-l { align-items: center; }\n .items-baseline-l { align-items: baseline; }\n .items-stretch-l { align-items: stretch; }\n\n .self-start-l { align-self: flex-start; }\n .self-end-l { align-self: flex-end; }\n .self-center-l { align-self: center; }\n .self-baseline-l { align-self: baseline; }\n .self-stretch-l { align-self: stretch; }\n\n .justify-start-l { justify-content: flex-start; }\n .justify-end-l { justify-content: flex-end; }\n .justify-center-l { justify-content: center; }\n .justify-between-l { justify-content: space-between; }\n .justify-around-l { justify-content: space-around; }\n\n .content-start-l { align-content: flex-start; }\n .content-end-l { align-content: flex-end; }\n .content-center-l { align-content: center; }\n .content-between-l { align-content: space-between; }\n .content-around-l { align-content: space-around; }\n .content-stretch-l { align-content: stretch; }\n\n .order-0-l { order: 0; }\n .order-1-l { order: 1; }\n .order-2-l { order: 2; }\n .order-3-l { order: 3; }\n .order-4-l { order: 4; }\n .order-5-l { order: 5; }\n .order-6-l { order: 6; }\n .order-7-l { order: 7; }\n .order-8-l { order: 8; }\n .order-last-l { order: 99999; }\n\n .flex-grow-0-l { flex-grow: 0; }\n .flex-grow-1-l { flex-grow: 1; }\n\n .flex-shrink-0-l { flex-shrink: 0; }\n .flex-shrink-1-l { flex-shrink: 1; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n DISPLAY\n Docs: http://tachyons.io/docs/layout/display\n\n Base:\n d = display\n\n Modifiers:\n n = none\n b = block\n ib = inline-block\n it = inline-table\n t = table\n tc = table-cell\n tr = table-row\n tcol = table-column\n tcolg = table-column-group\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.dn { display: none; }\n.di { display: inline; }\n.db { display: block; }\n.dib { display: inline-block; }\n.dit { display: inline-table; }\n.dt { display: table; }\n.dtc { display: table-cell; }\n.dt-row { display: table-row; }\n.dt-row-group { display: table-row-group; }\n.dt-column { display: table-column; }\n.dt-column-group { display: table-column-group; }\n\n/*\n This will set table to full width and then\n all cells will be equal width\n*/\n.dt--fixed {\n table-layout: fixed;\n width: 100%;\n}\n\n@media #{$breakpoint-not-small} {\n .dn-ns { display: none; }\n .di-ns { display: inline; }\n .db-ns { display: block; }\n .dib-ns { display: inline-block; }\n .dit-ns { display: inline-table; }\n .dt-ns { display: table; }\n .dtc-ns { display: table-cell; }\n .dt-row-ns { display: table-row; }\n .dt-row-group-ns { display: table-row-group; }\n .dt-column-ns { display: table-column; }\n .dt-column-group-ns { display: table-column-group; }\n\n .dt--fixed-ns {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media #{$breakpoint-medium} {\n .dn-m { display: none; }\n .di-m { display: inline; }\n .db-m { display: block; }\n .dib-m { display: inline-block; }\n .dit-m { display: inline-table; }\n .dt-m { display: table; }\n .dtc-m { display: table-cell; }\n .dt-row-m { display: table-row; }\n .dt-row-group-m { display: table-row-group; }\n .dt-column-m { display: table-column; }\n .dt-column-group-m { display: table-column-group; }\n\n .dt--fixed-m {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n@media #{$breakpoint-large} {\n .dn-l { display: none; }\n .di-l { display: inline; }\n .db-l { display: block; }\n .dib-l { display: inline-block; }\n .dit-l { display: inline-table; }\n .dt-l { display: table; }\n .dtc-l { display: table-cell; }\n .dt-row-l { display: table-row; }\n .dt-row-group-l { display: table-row-group; }\n .dt-column-l { display: table-column; }\n .dt-column-group-l { display: table-column-group; }\n\n .dt--fixed-l {\n table-layout: fixed;\n width: 100%;\n }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FLOATS\n http://tachyons.io/docs/layout/floats/\n\n 1. Floated elements are automatically rendered as block level elements.\n Setting floats to display inline will fix the double margin bug in\n ie6. You know... just in case.\n\n 2. Don't forget to clearfix your floats with .cf\n\n Base:\n f = float\n\n Modifiers:\n l = left\n r = right\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n.fl { float: left; _display: inline; }\n.fr { float: right; _display: inline; }\n.fn { float: none; }\n\n@media #{$breakpoint-not-small} {\n .fl-ns { float: left; _display: inline; }\n .fr-ns { float: right; _display: inline; }\n .fn-ns { float: none; }\n}\n\n@media #{$breakpoint-medium} {\n .fl-m { float: left; _display: inline; }\n .fr-m { float: right; _display: inline; }\n .fn-m { float: none; }\n}\n\n@media #{$breakpoint-large} {\n .fl-l { float: left; _display: inline; }\n .fr-l { float: right; _display: inline; }\n .fn-l { float: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT FAMILY GROUPS\n Docs: http://tachyons.io/docs/typography/font-family/\n\n*/\n\n\n.sans-serif {\n font-family: $sans-serif;\n}\n\n.serif {\n font-family: $serif;\n}\n\n.system-sans-serif {\n font-family: sans-serif;\n}\n\n.system-serif {\n font-family: serif;\n}\n\n\n/* Monospaced Typefaces (for code) */\n\n/* From http://cssfontstack.com */\ncode, .code {\n font-family: Consolas,\n monaco,\n monospace;\n}\n\n.courier {\n font-family: 'Courier Next',\n courier,\n monospace;\n}\n\n\n/* Sans-Serif Typefaces */\n\n.helvetica {\n font-family: 'helvetica neue', helvetica,\n sans-serif;\n}\n\n.avenir {\n font-family: 'avenir next', avenir,\n sans-serif;\n}\n\n\n/* Serif Typefaces */\n\n.athelas {\n font-family: athelas,\n georgia,\n serif;\n}\n\n.georgia {\n font-family: georgia,\n serif;\n}\n\n.times {\n font-family: times,\n serif;\n}\n\n.bodoni {\n font-family: \"Bodoni MT\",\n serif;\n}\n\n.calisto {\n font-family: \"Calisto MT\",\n serif;\n}\n\n.garamond {\n font-family: garamond,\n serif;\n}\n\n.baskerville {\n font-family: baskerville,\n serif;\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT STYLE\n Docs: http://tachyons.io/docs/typography/font-style/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.i { font-style: italic; }\n.fs-normal { font-style: normal; }\n\n@media #{$breakpoint-not-small} {\n .i-ns { font-style: italic; }\n .fs-normal-ns { font-style: normal; }\n}\n\n@media #{$breakpoint-medium} {\n .i-m { font-style: italic; }\n .fs-normal-m { font-style: normal; }\n}\n\n@media #{$breakpoint-large} {\n .i-l { font-style: italic; }\n .fs-normal-l { font-style: normal; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FONT WEIGHT\n Docs: http://tachyons.io/docs/typography/font-weight/\n\n Base\n fw = font-weight\n\n Modifiers:\n 1 = literal value 100\n 2 = literal value 200\n 3 = literal value 300\n 4 = literal value 400\n 5 = literal value 500\n 6 = literal value 600\n 7 = literal value 700\n 8 = literal value 800\n 9 = literal value 900\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.normal { font-weight: normal; }\n.b { font-weight: bold; }\n.fw1 { font-weight: 100; }\n.fw2 { font-weight: 200; }\n.fw3 { font-weight: 300; }\n.fw4 { font-weight: 400; }\n.fw5 { font-weight: 500; }\n.fw6 { font-weight: 600; }\n.fw7 { font-weight: 700; }\n.fw8 { font-weight: 800; }\n.fw9 { font-weight: 900; }\n\n\n@media #{$breakpoint-not-small} {\n .normal-ns { font-weight: normal; }\n .b-ns { font-weight: bold; }\n .fw1-ns { font-weight: 100; }\n .fw2-ns { font-weight: 200; }\n .fw3-ns { font-weight: 300; }\n .fw4-ns { font-weight: 400; }\n .fw5-ns { font-weight: 500; }\n .fw6-ns { font-weight: 600; }\n .fw7-ns { font-weight: 700; }\n .fw8-ns { font-weight: 800; }\n .fw9-ns { font-weight: 900; }\n}\n\n@media #{$breakpoint-medium} {\n .normal-m { font-weight: normal; }\n .b-m { font-weight: bold; }\n .fw1-m { font-weight: 100; }\n .fw2-m { font-weight: 200; }\n .fw3-m { font-weight: 300; }\n .fw4-m { font-weight: 400; }\n .fw5-m { font-weight: 500; }\n .fw6-m { font-weight: 600; }\n .fw7-m { font-weight: 700; }\n .fw8-m { font-weight: 800; }\n .fw9-m { font-weight: 900; }\n}\n\n@media #{$breakpoint-large} {\n .normal-l { font-weight: normal; }\n .b-l { font-weight: bold; }\n .fw1-l { font-weight: 100; }\n .fw2-l { font-weight: 200; }\n .fw3-l { font-weight: 300; }\n .fw4-l { font-weight: 400; }\n .fw5-l { font-weight: 500; }\n .fw6-l { font-weight: 600; }\n .fw7-l { font-weight: 700; }\n .fw8-l { font-weight: 800; }\n .fw9-l { font-weight: 900; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n FORMS\n \n*/\n\n.input-reset {\n -webkit-appearance: none;\n -moz-appearance: none;\n}\n\n.button-reset::-moz-focus-inner,\n.input-reset::-moz-focus-inner {\n border: 0;\n padding: 0;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n HEIGHTS\n Docs: http://tachyons.io/docs/layout/heights/\n\n Base:\n h = height\n min-h = min-height\n min-vh = min-height vertical screen height\n vh = vertical screen height\n\n Modifiers\n 1 = 1st step in height scale\n 2 = 2nd step in height scale\n 3 = 3rd step in height scale\n 4 = 4th step in height scale\n 5 = 5th step in height scale\n\n -25 = literal value 25%\n -50 = literal value 50%\n -75 = literal value 75%\n -100 = literal value 100%\n\n -auto = string value of auto\n -inherit = string value of inherit\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Height Scale */\n\n.h1 { height: $height-1; }\n.h2 { height: $height-2; }\n.h3 { height: $height-3; }\n.h4 { height: $height-4; }\n.h5 { height: $height-5; }\n\n/* Height Percentages - Based off of height of parent */\n\n.h-25 { height: 25%; }\n.h-50 { height: 50%; }\n.h-75 { height: 75%; }\n.h-100 { height: 100%; }\n\n.min-h-100 { min-height: 100%; }\n\n/* Screen Height Percentage */\n\n.vh-25 { height: 25vh; }\n.vh-50 { height: 50vh; }\n.vh-75 { height: 75vh; }\n.vh-100 { height: 100vh; }\n\n.min-vh-100 { min-height: 100vh; }\n\n\n/* String Properties */\n\n.h-auto { height: auto; }\n.h-inherit { height: inherit; }\n\n@media #{$breakpoint-not-small} {\n .h1-ns { height: $height-1; }\n .h2-ns { height: $height-2; }\n .h3-ns { height: $height-3; }\n .h4-ns { height: $height-4; }\n .h5-ns { height: $height-5; }\n .h-25-ns { height: 25%; }\n .h-50-ns { height: 50%; }\n .h-75-ns { height: 75%; }\n .h-100-ns { height: 100%; }\n .min-h-100-ns { min-height: 100%; }\n .vh-25-ns { height: 25vh; }\n .vh-50-ns { height: 50vh; }\n .vh-75-ns { height: 75vh; }\n .vh-100-ns { height: 100vh; }\n .min-vh-100-ns { min-height: 100vh; }\n .h-auto-ns { height: auto; }\n .h-inherit-ns { height: inherit; }\n}\n\n@media #{$breakpoint-medium} {\n .h1-m { height: $height-1; }\n .h2-m { height: $height-2; }\n .h3-m { height: $height-3; }\n .h4-m { height: $height-4; }\n .h5-m { height: $height-5; }\n .h-25-m { height: 25%; }\n .h-50-m { height: 50%; }\n .h-75-m { height: 75%; }\n .h-100-m { height: 100%; }\n .min-h-100-m { min-height: 100%; }\n .vh-25-m { height: 25vh; }\n .vh-50-m { height: 50vh; }\n .vh-75-m { height: 75vh; }\n .vh-100-m { height: 100vh; }\n .min-vh-100-m { min-height: 100vh; }\n .h-auto-m { height: auto; }\n .h-inherit-m { height: inherit; }\n}\n\n@media #{$breakpoint-large} {\n .h1-l { height: $height-1; }\n .h2-l { height: $height-2; }\n .h3-l { height: $height-3; }\n .h4-l { height: $height-4; }\n .h5-l { height: $height-5; }\n .h-25-l { height: 25%; }\n .h-50-l { height: 50%; }\n .h-75-l { height: 75%; }\n .h-100-l { height: 100%; }\n .min-h-100-l { min-height: 100%; }\n .vh-25-l { height: 25vh; }\n .vh-50-l { height: 50vh; }\n .vh-75-l { height: 75vh; }\n .vh-100-l { height: 100vh; }\n .min-vh-100-l { min-height: 100vh; }\n .h-auto-l { height: auto; }\n .h-inherit-l { height: inherit; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LETTER SPACING\n Docs: http://tachyons.io/docs/typography/tracking/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.tracked { letter-spacing: $letter-spacing-1; }\n.tracked-tight { letter-spacing: $letter-spacing-tight; }\n.tracked-mega { letter-spacing: $letter-spacing-2; }\n\n@media #{$breakpoint-not-small} {\n .tracked-ns { letter-spacing: $letter-spacing-1; }\n .tracked-tight-ns { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-ns { letter-spacing: $letter-spacing-2; }\n}\n\n@media #{$breakpoint-medium} {\n .tracked-m { letter-spacing: $letter-spacing-1; }\n .tracked-tight-m { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-m { letter-spacing: $letter-spacing-2; }\n}\n\n@media #{$breakpoint-large} {\n .tracked-l { letter-spacing: $letter-spacing-1; }\n .tracked-tight-l { letter-spacing: $letter-spacing-tight; }\n .tracked-mega-l { letter-spacing: $letter-spacing-2; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LINE HEIGHT / LEADING\n Docs: http://tachyons.io/docs/typography/line-height\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n .lh-solid { line-height: $line-height-solid; }\n .lh-title { line-height: $line-height-title; }\n .lh-copy { line-height: $line-height-copy; }\n\n@media #{$breakpoint-not-small} {\n .lh-solid-ns { line-height: $line-height-solid; }\n .lh-title-ns { line-height: $line-height-title; }\n .lh-copy-ns { line-height: $line-height-copy; }\n}\n\n@media #{$breakpoint-medium} {\n .lh-solid-m { line-height: $line-height-solid; }\n .lh-title-m { line-height: $line-height-title; }\n .lh-copy-m { line-height: $line-height-copy; }\n}\n\n@media #{$breakpoint-large} {\n .lh-solid-l { line-height: $line-height-solid; }\n .lh-title-l { line-height: $line-height-title; }\n .lh-copy-l { line-height: $line-height-copy; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LINKS\n Docs: http://tachyons.io/docs/elements/links/\n\n*/\n\n.link {\n text-decoration: none;\n transition: color .15s ease-in;\n}\n\n.link:link,\n.link:visited {\n transition: color .15s ease-in;\n}\n.link:hover {\n transition: color .15s ease-in;\n}\n.link:active {\n transition: color .15s ease-in;\n}\n.link:focus {\n transition: color .15s ease-in;\n outline: 1px dotted currentColor;\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n LISTS\n http://tachyons.io/docs/elements/lists/\n\n*/\n\n.list { list-style-type: none; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n MAX WIDTHS\n Docs: http://tachyons.io/docs/layout/max-widths/\n\n Base:\n mw = max-width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n 6 = 6st step in width scale\n 7 = 7nd step in width scale\n 8 = 8rd step in width scale\n 9 = 9th step in width scale\n\n -100 = literal value 100%\n\n -none = string value none\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Max Width Percentages */\n\n.mw-100 { max-width: 100%; }\n\n/* Max Width Scale */\n\n.mw1 { max-width: $max-width-1; }\n.mw2 { max-width: $max-width-2; }\n.mw3 { max-width: $max-width-3; }\n.mw4 { max-width: $max-width-4; }\n.mw5 { max-width: $max-width-5; }\n.mw6 { max-width: $max-width-6; }\n.mw7 { max-width: $max-width-7; }\n.mw8 { max-width: $max-width-8; }\n.mw9 { max-width: $max-width-9; }\n\n/* Max Width String Properties */\n\n.mw-none { max-width: none; }\n\n@media #{$breakpoint-not-small} {\n .mw-100-ns { max-width: 100%; }\n\n .mw1-ns { max-width: $max-width-1; }\n .mw2-ns { max-width: $max-width-2; }\n .mw3-ns { max-width: $max-width-3; }\n .mw4-ns { max-width: $max-width-4; }\n .mw5-ns { max-width: $max-width-5; }\n .mw6-ns { max-width: $max-width-6; }\n .mw7-ns { max-width: $max-width-7; }\n .mw8-ns { max-width: $max-width-8; }\n .mw9-ns { max-width: $max-width-9; }\n\n .mw-none-ns { max-width: none; }\n}\n\n@media #{$breakpoint-medium} {\n .mw-100-m { max-width: 100%; }\n\n .mw1-m { max-width: $max-width-1; }\n .mw2-m { max-width: $max-width-2; }\n .mw3-m { max-width: $max-width-3; }\n .mw4-m { max-width: $max-width-4; }\n .mw5-m { max-width: $max-width-5; }\n .mw6-m { max-width: $max-width-6; }\n .mw7-m { max-width: $max-width-7; }\n .mw8-m { max-width: $max-width-8; }\n .mw9-m { max-width: $max-width-9; }\n\n .mw-none-m { max-width: none; }\n}\n\n@media #{$breakpoint-large} {\n .mw-100-l { max-width: 100%; }\n\n .mw1-l { max-width: $max-width-1; }\n .mw2-l { max-width: $max-width-2; }\n .mw3-l { max-width: $max-width-3; }\n .mw4-l { max-width: $max-width-4; }\n .mw5-l { max-width: $max-width-5; }\n .mw6-l { max-width: $max-width-6; }\n .mw7-l { max-width: $max-width-7; }\n .mw8-l { max-width: $max-width-8; }\n .mw9-l { max-width: $max-width-9; }\n\n .mw-none-l { max-width: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n WIDTHS\n Docs: http://tachyons.io/docs/layout/widths/\n\n Base:\n w = width\n\n Modifiers\n 1 = 1st step in width scale\n 2 = 2nd step in width scale\n 3 = 3rd step in width scale\n 4 = 4th step in width scale\n 5 = 5th step in width scale\n\n -10 = literal value 10%\n -20 = literal value 20%\n -25 = literal value 25%\n -30 = literal value 30%\n -33 = literal value 33%\n -34 = literal value 34%\n -40 = literal value 40%\n -50 = literal value 50%\n -60 = literal value 60%\n -70 = literal value 70%\n -75 = literal value 75%\n -80 = literal value 80%\n -90 = literal value 90%\n -100 = literal value 100%\n\n -third = 100% / 3 (Not supported in opera mini or IE8)\n -two-thirds = 100% / 1.5 (Not supported in opera mini or IE8)\n -auto = string value auto\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n/* Width Scale */\n\n.w1 { width: $width-1; }\n.w2 { width: $width-2; }\n.w3 { width: $width-3; }\n.w4 { width: $width-4; }\n.w5 { width: $width-5; }\n\n.w-10 { width: 10%; }\n.w-20 { width: 20%; }\n.w-25 { width: 25%; }\n.w-30 { width: 30%; }\n.w-33 { width: 33%; }\n.w-34 { width: 34%; }\n.w-40 { width: 40%; }\n.w-50 { width: 50%; }\n.w-60 { width: 60%; }\n.w-70 { width: 70%; }\n.w-75 { width: 75%; }\n.w-80 { width: 80%; }\n.w-90 { width: 90%; }\n.w-100 { width: 100%; }\n\n.w-third { width: (100% / 3); }\n.w-two-thirds { width: (100% / 1.5); }\n.w-auto { width: auto; }\n\n@media #{$breakpoint-not-small} {\n .w1-ns { width: $width-1; }\n .w2-ns { width: $width-2; }\n .w3-ns { width: $width-3; }\n .w4-ns { width: $width-4; }\n .w5-ns { width: $width-5; }\n .w-10-ns { width: 10%; }\n .w-20-ns { width: 20%; }\n .w-25-ns { width: 25%; }\n .w-30-ns { width: 30%; }\n .w-33-ns { width: 33%; }\n .w-34-ns { width: 34%; }\n .w-40-ns { width: 40%; }\n .w-50-ns { width: 50%; }\n .w-60-ns { width: 60%; }\n .w-70-ns { width: 70%; }\n .w-75-ns { width: 75%; }\n .w-80-ns { width: 80%; }\n .w-90-ns { width: 90%; }\n .w-100-ns { width: 100%; }\n .w-third-ns { width: (100% / 3); }\n .w-two-thirds-ns { width: (100% / 1.5); }\n .w-auto-ns { width: auto; }\n}\n\n@media #{$breakpoint-medium} {\n .w1-m { width: $width-1; }\n .w2-m { width: $width-2; }\n .w3-m { width: $width-3; }\n .w4-m { width: $width-4; }\n .w5-m { width: $width-5; }\n .w-10-m { width: 10%; }\n .w-20-m { width: 20%; }\n .w-25-m { width: 25%; }\n .w-30-m { width: 30%; }\n .w-33-m { width: 33%; }\n .w-34-m { width: 34%; }\n .w-40-m { width: 40%; }\n .w-50-m { width: 50%; }\n .w-60-m { width: 60%; }\n .w-70-m { width: 70%; }\n .w-75-m { width: 75%; }\n .w-80-m { width: 80%; }\n .w-90-m { width: 90%; }\n .w-100-m { width: 100%; }\n .w-third-m { width: (100% / 3); }\n .w-two-thirds-m { width: (100% / 1.5); }\n .w-auto-m { width: auto; }\n}\n\n@media #{$breakpoint-large} {\n .w1-l { width: $width-1; }\n .w2-l { width: $width-2; }\n .w3-l { width: $width-3; }\n .w4-l { width: $width-4; }\n .w5-l { width: $width-5; }\n .w-10-l { width: 10%; }\n .w-20-l { width: 20%; }\n .w-25-l { width: 25%; }\n .w-30-l { width: 30%; }\n .w-33-l { width: 33%; }\n .w-34-l { width: 34%; }\n .w-40-l { width: 40%; }\n .w-50-l { width: 50%; }\n .w-60-l { width: 60%; }\n .w-70-l { width: 70%; }\n .w-75-l { width: 75%; }\n .w-80-l { width: 80%; }\n .w-90-l { width: 90%; }\n .w-100-l { width: 100%; }\n .w-third-l { width: (100% / 3); }\n .w-two-thirds-l { width: (100% / 1.5); }\n .w-auto-l { width: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OVERFLOW\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n */\n\n.overflow-visible { overflow: visible; }\n.overflow-hidden { overflow: hidden; }\n.overflow-scroll { overflow: scroll; }\n.overflow-auto { overflow: auto; }\n\n.overflow-x-visible { overflow-x: visible; }\n.overflow-x-hidden { overflow-x: hidden; }\n.overflow-x-scroll { overflow-x: scroll; }\n.overflow-x-auto { overflow-x: auto; }\n\n.overflow-y-visible { overflow-y: visible; }\n.overflow-y-hidden { overflow-y: hidden; }\n.overflow-y-scroll { overflow-y: scroll; }\n.overflow-y-auto { overflow-y: auto; }\n\n@media #{$breakpoint-not-small} {\n .overflow-visible-ns { overflow: visible; }\n .overflow-hidden-ns { overflow: hidden; }\n .overflow-scroll-ns { overflow: scroll; }\n .overflow-auto-ns { overflow: auto; }\n .overflow-x-visible-ns { overflow-x: visible; }\n .overflow-x-hidden-ns { overflow-x: hidden; }\n .overflow-x-scroll-ns { overflow-x: scroll; }\n .overflow-x-auto-ns { overflow-x: auto; }\n\n .overflow-y-visible-ns { overflow-y: visible; }\n .overflow-y-hidden-ns { overflow-y: hidden; }\n .overflow-y-scroll-ns { overflow-y: scroll; }\n .overflow-y-auto-ns { overflow-y: auto; }\n}\n\n@media #{$breakpoint-medium} {\n .overflow-visible-m { overflow: visible; }\n .overflow-hidden-m { overflow: hidden; }\n .overflow-scroll-m { overflow: scroll; }\n .overflow-auto-m { overflow: auto; }\n\n .overflow-x-visible-m { overflow-x: visible; }\n .overflow-x-hidden-m { overflow-x: hidden; }\n .overflow-x-scroll-m { overflow-x: scroll; }\n .overflow-x-auto-m { overflow-x: auto; }\n\n .overflow-y-visible-m { overflow-y: visible; }\n .overflow-y-hidden-m { overflow-y: hidden; }\n .overflow-y-scroll-m { overflow-y: scroll; }\n .overflow-y-auto-m { overflow-y: auto; }\n}\n\n@media #{$breakpoint-large} {\n .overflow-visible-l { overflow: visible; }\n .overflow-hidden-l { overflow: hidden; }\n .overflow-scroll-l { overflow: scroll; }\n .overflow-auto-l { overflow: auto; }\n\n .overflow-x-visible-l { overflow-x: visible; }\n .overflow-x-hidden-l { overflow-x: hidden; }\n .overflow-x-scroll-l { overflow-x: scroll; }\n .overflow-x-auto-l { overflow-x: auto; }\n\n .overflow-y-visible-l { overflow-y: visible; }\n .overflow-y-hidden-l { overflow-y: hidden; }\n .overflow-y-scroll-l { overflow-y: scroll; }\n .overflow-y-auto-l { overflow-y: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n POSITIONING\n Docs: http://tachyons.io/docs/layout/position/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.static { position: static; }\n.relative { position: relative; }\n.absolute { position: absolute; }\n.fixed { position: fixed; }\n\n@media #{$breakpoint-not-small} {\n .static-ns { position: static; }\n .relative-ns { position: relative; }\n .absolute-ns { position: absolute; }\n .fixed-ns { position: fixed; }\n}\n\n@media #{$breakpoint-medium} {\n .static-m { position: static; }\n .relative-m { position: relative; }\n .absolute-m { position: absolute; }\n .fixed-m { position: fixed; }\n}\n\n@media #{$breakpoint-large} {\n .static-l { position: static; }\n .relative-l { position: relative; }\n .absolute-l { position: absolute; }\n .fixed-l { position: fixed; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n OPACITY\n Docs: http://tachyons.io/docs/themes/opacity/\n\n*/\n\n.o-100 { opacity: 1; }\n.o-90 { opacity: .9; }\n.o-80 { opacity: .8; }\n.o-70 { opacity: .7; }\n.o-60 { opacity: .6; }\n.o-50 { opacity: .5; }\n.o-40 { opacity: .4; }\n.o-30 { opacity: .3; }\n.o-20 { opacity: .2; }\n.o-10 { opacity: .1; }\n.o-05 { opacity: .05; }\n.o-025 { opacity: .025; }\n.o-0 { opacity: 0; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n ROTATIONS\n\n*/\n\n.rotate-45 { transform: rotate(45deg); }\n.rotate-90 { transform: rotate(90deg); }\n.rotate-135 { transform: rotate(135deg); }\n.rotate-180 { transform: rotate(180deg); }\n.rotate-225 { transform: rotate(225deg); }\n.rotate-270 { transform: rotate(270deg); }\n.rotate-315 { transform: rotate(315deg); }\n\n@media #{$breakpoint-not-small}{\n .rotate-45-ns { transform: rotate(45deg); }\n .rotate-90-ns { transform: rotate(90deg); }\n .rotate-135-ns { transform: rotate(135deg); }\n .rotate-180-ns { transform: rotate(180deg); }\n .rotate-225-ns { transform: rotate(225deg); }\n .rotate-270-ns { transform: rotate(270deg); }\n .rotate-315-ns { transform: rotate(315deg); }\n}\n\n@media #{$breakpoint-medium}{\n .rotate-45-m { transform: rotate(45deg); }\n .rotate-90-m { transform: rotate(90deg); }\n .rotate-135-m { transform: rotate(135deg); }\n .rotate-180-m { transform: rotate(180deg); }\n .rotate-225-m { transform: rotate(225deg); }\n .rotate-270-m { transform: rotate(270deg); }\n .rotate-315-m { transform: rotate(315deg); }\n}\n\n@media #{$breakpoint-large}{\n .rotate-45-l { transform: rotate(45deg); }\n .rotate-90-l { transform: rotate(90deg); }\n .rotate-135-l { transform: rotate(135deg); }\n .rotate-180-l { transform: rotate(180deg); }\n .rotate-225-l { transform: rotate(225deg); }\n .rotate-270-l { transform: rotate(270deg); }\n .rotate-315-l { transform: rotate(315deg); }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n SKINS\n Docs: http://tachyons.io/docs/themes/skins/\n\n Classes for setting foreground and background colors on elements.\n If you haven't declared a border color, but set border on an element, it will\n be set to the current text color.\n\n*/\n\n/* Text colors */\n\n.black-90 { color: $black-90; }\n.black-80 { color: $black-80; }\n.black-70 { color: $black-70; }\n.black-60 { color: $black-60; }\n.black-50 { color: $black-50; }\n.black-40 { color: $black-40; }\n.black-30 { color: $black-30; }\n.black-20 { color: $black-20; }\n.black-10 { color: $black-10; }\n.black-05 { color: $black-05; }\n\n.white-90 { color: $white-90; }\n.white-80 { color: $white-80; }\n.white-70 { color: $white-70; }\n.white-60 { color: $white-60; }\n.white-50 { color: $white-50; }\n.white-40 { color: $white-40; }\n.white-30 { color: $white-30; }\n.white-20 { color: $white-20; }\n.white-10 { color: $white-10; }\n\n.black { color: $black; }\n.near-black { color: $near-black; }\n.dark-gray { color: $dark-gray; }\n.mid-gray { color: $mid-gray; }\n.gray { color: $gray; }\n.silver { color: $silver; }\n.light-silver { color: $light-silver; }\n.moon-gray { color: $moon-gray; }\n.light-gray { color: $light-gray; }\n.near-white { color: $near-white; }\n.white { color: $white; }\n\n.dark-red { color: $dark-red; }\n.red { color: $red; }\n.light-red { color: $light-red; }\n.orange { color: $orange; }\n.gold { color: $gold; }\n.yellow { color: $yellow; }\n.light-yellow { color: $light-yellow; }\n.purple { color: $purple; }\n.light-purple { color: $light-purple; }\n.dark-pink { color: $dark-pink; }\n.hot-pink { color: $hot-pink; }\n.pink { color: $pink; }\n.light-pink { color: $light-pink; }\n.dark-green { color: $dark-green; }\n.green { color: $green; }\n.light-green { color: $light-green; }\n.navy { color: $navy; }\n.dark-blue { color: $dark-blue; }\n.blue { color: $blue; }\n.light-blue { color: $light-blue; }\n.lightest-blue { color: $lightest-blue; }\n.washed-blue { color: $washed-blue; }\n.washed-green { color: $washed-green; }\n.washed-yellow { color: $washed-yellow; }\n.washed-red { color: $washed-red; }\n.color-inherit { color: inherit; }\n\n.bg-black-90 { background-color: $black-90; }\n.bg-black-80 { background-color: $black-80; }\n.bg-black-70 { background-color: $black-70; }\n.bg-black-60 { background-color: $black-60; }\n.bg-black-50 { background-color: $black-50; }\n.bg-black-40 { background-color: $black-40; }\n.bg-black-30 { background-color: $black-30; }\n.bg-black-20 { background-color: $black-20; }\n.bg-black-10 { background-color: $black-10; }\n.bg-black-05 { background-color: $black-05; }\n.bg-white-90 { background-color: $white-90; }\n.bg-white-80 { background-color: $white-80; }\n.bg-white-70 { background-color: $white-70; }\n.bg-white-60 { background-color: $white-60; }\n.bg-white-50 { background-color: $white-50; }\n.bg-white-40 { background-color: $white-40; }\n.bg-white-30 { background-color: $white-30; }\n.bg-white-20 { background-color: $white-20; }\n.bg-white-10 { background-color: $white-10; }\n\n\n\n/* Background colors */\n\n.bg-black { background-color: $black; }\n.bg-near-black { background-color: $near-black; }\n.bg-dark-gray { background-color: $dark-gray; }\n.bg-mid-gray { background-color: $mid-gray; }\n.bg-gray { background-color: $gray; }\n.bg-silver { background-color: $silver; }\n.bg-light-silver { background-color: $light-silver; }\n.bg-moon-gray { background-color: $moon-gray; }\n.bg-light-gray { background-color: $light-gray; }\n.bg-near-white { background-color: $near-white; }\n.bg-white { background-color: $white; }\n.bg-transparent { background-color: $transparent; }\n\n.bg-dark-red { background-color: $dark-red; }\n.bg-red { background-color: $red; }\n.bg-light-red { background-color: $light-red; }\n.bg-orange { background-color: $orange; }\n.bg-gold { background-color: $gold; }\n.bg-yellow { background-color: $yellow; }\n.bg-light-yellow { background-color: $light-yellow; }\n.bg-purple { background-color: $purple; }\n.bg-light-purple { background-color: $light-purple; }\n.bg-dark-pink { background-color: $dark-pink; }\n.bg-hot-pink { background-color: $hot-pink; }\n.bg-pink { background-color: $pink; }\n.bg-light-pink { background-color: $light-pink; }\n.bg-dark-green { background-color: $dark-green; }\n.bg-green { background-color: $green; }\n.bg-light-green { background-color: $light-green; }\n.bg-navy { background-color: $navy; }\n.bg-dark-blue { background-color: $dark-blue; }\n.bg-blue { background-color: $blue; }\n.bg-light-blue { background-color: $light-blue; }\n.bg-lightest-blue { background-color: $lightest-blue; }\n.bg-washed-blue { background-color: $washed-blue; }\n.bg-washed-green { background-color: $washed-green; }\n.bg-washed-yellow { background-color: $washed-yellow; }\n.bg-washed-red { background-color: $washed-red; }\n.bg-inherit { background-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n SKINS:PSEUDO\n\n Customize the color of an element when\n it is focused or hovered over.\n\n */\n\n.hover-black:hover,\n.hover-black:focus { color: $black; }\n.hover-near-black:hover,\n.hover-near-black:focus { color: $near-black; }\n.hover-dark-gray:hover,\n.hover-dark-gray:focus { color: $dark-gray; }\n.hover-mid-gray:hover,\n.hover-mid-gray:focus { color: $mid-gray; }\n.hover-gray:hover,\n.hover-gray:focus { color: $gray; }\n.hover-silver:hover,\n.hover-silver:focus { color: $silver; }\n.hover-light-silver:hover,\n.hover-light-silver:focus { color: $light-silver; }\n.hover-moon-gray:hover,\n.hover-moon-gray:focus { color: $moon-gray; }\n.hover-light-gray:hover,\n.hover-light-gray:focus { color: $light-gray; }\n.hover-near-white:hover,\n.hover-near-white:focus { color: $near-white; }\n.hover-white:hover,\n.hover-white:focus { color: $white; }\n\n.hover-black-90:hover,\n.hover-black-90:focus { color: $black-90; }\n.hover-black-80:hover,\n.hover-black-80:focus { color: $black-80; }\n.hover-black-70:hover,\n.hover-black-70:focus { color: $black-70; }\n.hover-black-60:hover,\n.hover-black-60:focus { color: $black-60; }\n.hover-black-50:hover,\n.hover-black-50:focus { color: $black-50; }\n.hover-black-40:hover,\n.hover-black-40:focus { color: $black-40; }\n.hover-black-30:hover,\n.hover-black-30:focus { color: $black-30; }\n.hover-black-20:hover,\n.hover-black-20:focus { color: $black-20; }\n.hover-black-10:hover,\n.hover-black-10:focus { color: $black-10; }\n.hover-white-90:hover,\n.hover-white-90:focus { color: $white-90; }\n.hover-white-80:hover,\n.hover-white-80:focus { color: $white-80; }\n.hover-white-70:hover,\n.hover-white-70:focus { color: $white-70; }\n.hover-white-60:hover,\n.hover-white-60:focus { color: $white-60; }\n.hover-white-50:hover,\n.hover-white-50:focus { color: $white-50; }\n.hover-white-40:hover,\n.hover-white-40:focus { color: $white-40; }\n.hover-white-30:hover,\n.hover-white-30:focus { color: $white-30; }\n.hover-white-20:hover,\n.hover-white-20:focus { color: $white-20; }\n.hover-white-10:hover,\n.hover-white-10:focus { color: $white-10; }\n.hover-inherit:hover,\n.hover-inherit:focus { color: inherit; }\n\n.hover-bg-black:hover,\n.hover-bg-black:focus { background-color: $black; }\n.hover-bg-near-black:hover,\n.hover-bg-near-black:focus { background-color: $near-black; }\n.hover-bg-dark-gray:hover,\n.hover-bg-dark-gray:focus { background-color: $dark-gray; }\n.hover-bg-mid-gray:hover,\n.hover-bg-mid-gray:focus { background-color: $mid-gray; }\n.hover-bg-gray:hover,\n.hover-bg-gray:focus { background-color: $gray; }\n.hover-bg-silver:hover,\n.hover-bg-silver:focus { background-color: $silver; }\n.hover-bg-light-silver:hover,\n.hover-bg-light-silver:focus { background-color: $light-silver; }\n.hover-bg-moon-gray:hover,\n.hover-bg-moon-gray:focus { background-color: $moon-gray; }\n.hover-bg-light-gray:hover,\n.hover-bg-light-gray:focus { background-color: $light-gray; }\n.hover-bg-near-white:hover,\n.hover-bg-near-white:focus { background-color: $near-white; }\n.hover-bg-white:hover,\n.hover-bg-white:focus { background-color: $white; }\n.hover-bg-transparent:hover,\n.hover-bg-transparent:focus { background-color: $transparent; }\n\n.hover-bg-black-90:hover,\n.hover-bg-black-90:focus { background-color: $black-90; }\n.hover-bg-black-80:hover,\n.hover-bg-black-80:focus { background-color: $black-80; }\n.hover-bg-black-70:hover,\n.hover-bg-black-70:focus { background-color: $black-70; }\n.hover-bg-black-60:hover,\n.hover-bg-black-60:focus { background-color: $black-60; }\n.hover-bg-black-50:hover,\n.hover-bg-black-50:focus { background-color: $black-50; }\n.hover-bg-black-40:hover,\n.hover-bg-black-40:focus { background-color: $black-40; }\n.hover-bg-black-30:hover,\n.hover-bg-black-30:focus { background-color: $black-30; }\n.hover-bg-black-20:hover,\n.hover-bg-black-20:focus { background-color: $black-20; }\n.hover-bg-black-10:hover,\n.hover-bg-black-10:focus { background-color: $black-10; }\n.hover-bg-white-90:hover,\n.hover-bg-white-90:focus { background-color: $white-90; }\n.hover-bg-white-80:hover,\n.hover-bg-white-80:focus { background-color: $white-80; }\n.hover-bg-white-70:hover,\n.hover-bg-white-70:focus { background-color: $white-70; }\n.hover-bg-white-60:hover,\n.hover-bg-white-60:focus { background-color: $white-60; }\n.hover-bg-white-50:hover,\n.hover-bg-white-50:focus { background-color: $white-50; }\n.hover-bg-white-40:hover,\n.hover-bg-white-40:focus { background-color: $white-40; }\n.hover-bg-white-30:hover,\n.hover-bg-white-30:focus { background-color: $white-30; }\n.hover-bg-white-20:hover,\n.hover-bg-white-20:focus { background-color: $white-20; }\n.hover-bg-white-10:hover,\n.hover-bg-white-10:focus { background-color: $white-10; }\n\n.hover-dark-red:hover,\n.hover-dark-red:focus { color: $dark-red; }\n.hover-red:hover,\n.hover-red:focus { color: $red; }\n.hover-light-red:hover,\n.hover-light-red:focus { color: $light-red; }\n.hover-orange:hover,\n.hover-orange:focus { color: $orange; }\n.hover-gold:hover,\n.hover-gold:focus { color: $gold; }\n.hover-yellow:hover,\n.hover-yellow:focus { color: $yellow; }\n.hover-light-yellow:hover,\n.hover-light-yellow:focus { color: $light-yellow; }\n.hover-purple:hover,\n.hover-purple:focus { color: $purple; }\n.hover-light-purple:hover,\n.hover-light-purple:focus { color: $light-purple; }\n.hover-dark-pink:hover,\n.hover-dark-pink:focus { color: $dark-pink; }\n.hover-hot-pink:hover,\n.hover-hot-pink:focus { color: $hot-pink; }\n.hover-pink:hover,\n.hover-pink:focus { color: $pink; }\n.hover-light-pink:hover,\n.hover-light-pink:focus { color: $light-pink; }\n.hover-dark-green:hover,\n.hover-dark-green:focus { color: $dark-green; }\n.hover-green:hover,\n.hover-green:focus { color: $green; }\n.hover-light-green:hover,\n.hover-light-green:focus { color: $light-green; }\n.hover-navy:hover,\n.hover-navy:focus { color: $navy; }\n.hover-dark-blue:hover,\n.hover-dark-blue:focus { color: $dark-blue; }\n.hover-blue:hover,\n.hover-blue:focus { color: $blue; }\n.hover-light-blue:hover,\n.hover-light-blue:focus { color: $light-blue; }\n.hover-lightest-blue:hover,\n.hover-lightest-blue:focus { color: $lightest-blue; }\n.hover-washed-blue:hover,\n.hover-washed-blue:focus { color: $washed-blue; }\n.hover-washed-green:hover,\n.hover-washed-green:focus { color: $washed-green; }\n.hover-washed-yellow:hover,\n.hover-washed-yellow:focus { color: $washed-yellow; }\n.hover-washed-red:hover,\n.hover-washed-red:focus { color: $washed-red; }\n\n.hover-bg-dark-red:hover,\n.hover-bg-dark-red:focus { background-color: $dark-red; }\n.hover-bg-red:hover,\n.hover-bg-red:focus { background-color: $red; }\n.hover-bg-light-red:hover,\n.hover-bg-light-red:focus { background-color: $light-red; }\n.hover-bg-orange:hover,\n.hover-bg-orange:focus { background-color: $orange; }\n.hover-bg-gold:hover,\n.hover-bg-gold:focus { background-color: $gold; }\n.hover-bg-yellow:hover,\n.hover-bg-yellow:focus { background-color: $yellow; }\n.hover-bg-light-yellow:hover,\n.hover-bg-light-yellow:focus { background-color: $light-yellow; }\n.hover-bg-purple:hover,\n.hover-bg-purple:focus { background-color: $purple; }\n.hover-bg-light-purple:hover,\n.hover-bg-light-purple:focus { background-color: $light-purple; }\n.hover-bg-dark-pink:hover,\n.hover-bg-dark-pink:focus { background-color: $dark-pink; }\n.hover-bg-hot-pink:hover,\n.hover-bg-hot-pink:focus { background-color: $hot-pink; }\n.hover-bg-pink:hover,\n.hover-bg-pink:focus { background-color: $pink; }\n.hover-bg-light-pink:hover,\n.hover-bg-light-pink:focus { background-color: $light-pink; }\n.hover-bg-dark-green:hover,\n.hover-bg-dark-green:focus { background-color: $dark-green; }\n.hover-bg-green:hover,\n.hover-bg-green:focus { background-color: $green; }\n.hover-bg-light-green:hover,\n.hover-bg-light-green:focus { background-color: $light-green; }\n.hover-bg-navy:hover,\n.hover-bg-navy:focus { background-color: $navy; }\n.hover-bg-dark-blue:hover,\n.hover-bg-dark-blue:focus { background-color: $dark-blue; }\n.hover-bg-blue:hover,\n.hover-bg-blue:focus { background-color: $blue; }\n.hover-bg-light-blue:hover,\n.hover-bg-light-blue:focus { background-color: $light-blue; }\n.hover-bg-lightest-blue:hover,\n.hover-bg-lightest-blue:focus { background-color: $lightest-blue; }\n.hover-bg-washed-blue:hover,\n.hover-bg-washed-blue:focus { background-color: $washed-blue; }\n.hover-bg-washed-green:hover,\n.hover-bg-washed-green:focus { background-color: $washed-green; }\n.hover-bg-washed-yellow:hover,\n.hover-bg-washed-yellow:focus { background-color: $washed-yellow; }\n.hover-bg-washed-red:hover,\n.hover-bg-washed-red:focus { background-color: $washed-red; }\n.hover-bg-inherit:hover,\n.hover-bg-inherit:focus { background-color: inherit; }\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/* Variables */\n\n/*\n SPACING\n Docs: http://tachyons.io/docs/layout/spacing/\n\n An eight step powers of two scale ranging from 0 to 16rem.\n\n Base:\n p = padding\n m = margin\n\n Modifiers:\n a = all\n h = horizontal\n v = vertical\n t = top\n r = right\n b = bottom\n l = left\n\n 0 = none\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n.pa0 { padding: $spacing-none; }\n.pa1 { padding: $spacing-extra-small; }\n.pa2 { padding: $spacing-small; }\n.pa3 { padding: $spacing-medium; }\n.pa4 { padding: $spacing-large; }\n.pa5 { padding: $spacing-extra-large; }\n.pa6 { padding: $spacing-extra-extra-large; }\n.pa7 { padding: $spacing-extra-extra-extra-large; }\n\n.pl0 { padding-left: $spacing-none; }\n.pl1 { padding-left: $spacing-extra-small; }\n.pl2 { padding-left: $spacing-small; }\n.pl3 { padding-left: $spacing-medium; }\n.pl4 { padding-left: $spacing-large; }\n.pl5 { padding-left: $spacing-extra-large; }\n.pl6 { padding-left: $spacing-extra-extra-large; }\n.pl7 { padding-left: $spacing-extra-extra-extra-large; }\n\n.pr0 { padding-right: $spacing-none; }\n.pr1 { padding-right: $spacing-extra-small; }\n.pr2 { padding-right: $spacing-small; }\n.pr3 { padding-right: $spacing-medium; }\n.pr4 { padding-right: $spacing-large; }\n.pr5 { padding-right: $spacing-extra-large; }\n.pr6 { padding-right: $spacing-extra-extra-large; }\n.pr7 { padding-right: $spacing-extra-extra-extra-large; }\n\n.pb0 { padding-bottom: $spacing-none; }\n.pb1 { padding-bottom: $spacing-extra-small; }\n.pb2 { padding-bottom: $spacing-small; }\n.pb3 { padding-bottom: $spacing-medium; }\n.pb4 { padding-bottom: $spacing-large; }\n.pb5 { padding-bottom: $spacing-extra-large; }\n.pb6 { padding-bottom: $spacing-extra-extra-large; }\n.pb7 { padding-bottom: $spacing-extra-extra-extra-large; }\n\n.pt0 { padding-top: $spacing-none; }\n.pt1 { padding-top: $spacing-extra-small; }\n.pt2 { padding-top: $spacing-small; }\n.pt3 { padding-top: $spacing-medium; }\n.pt4 { padding-top: $spacing-large; }\n.pt5 { padding-top: $spacing-extra-large; }\n.pt6 { padding-top: $spacing-extra-extra-large; }\n.pt7 { padding-top: $spacing-extra-extra-extra-large; }\n\n.pv0 {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n}\n.pv1 {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n}\n.pv2 {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n}\n.pv3 {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n}\n.pv4 {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n}\n.pv5 {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n}\n.pv6 {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n}\n\n.pv7 {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n}\n\n.ph0 {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n}\n\n.ph1 {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n}\n\n.ph2 {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n}\n\n.ph3 {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n}\n\n.ph4 {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n}\n\n.ph5 {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n}\n\n.ph6 {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n}\n\n.ph7 {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n}\n\n.ma0 { margin: $spacing-none; }\n.ma1 { margin: $spacing-extra-small; }\n.ma2 { margin: $spacing-small; }\n.ma3 { margin: $spacing-medium; }\n.ma4 { margin: $spacing-large; }\n.ma5 { margin: $spacing-extra-large; }\n.ma6 { margin: $spacing-extra-extra-large; }\n.ma7 { margin: $spacing-extra-extra-extra-large; }\n\n.ml0 { margin-left: $spacing-none; }\n.ml1 { margin-left: $spacing-extra-small; }\n.ml2 { margin-left: $spacing-small; }\n.ml3 { margin-left: $spacing-medium; }\n.ml4 { margin-left: $spacing-large; }\n.ml5 { margin-left: $spacing-extra-large; }\n.ml6 { margin-left: $spacing-extra-extra-large; }\n.ml7 { margin-left: $spacing-extra-extra-extra-large; }\n\n.mr0 { margin-right: $spacing-none; }\n.mr1 { margin-right: $spacing-extra-small; }\n.mr2 { margin-right: $spacing-small; }\n.mr3 { margin-right: $spacing-medium; }\n.mr4 { margin-right: $spacing-large; }\n.mr5 { margin-right: $spacing-extra-large; }\n.mr6 { margin-right: $spacing-extra-extra-large; }\n.mr7 { margin-right: $spacing-extra-extra-extra-large; }\n\n.mb0 { margin-bottom: $spacing-none; }\n.mb1 { margin-bottom: $spacing-extra-small; }\n.mb2 { margin-bottom: $spacing-small; }\n.mb3 { margin-bottom: $spacing-medium; }\n.mb4 { margin-bottom: $spacing-large; }\n.mb5 { margin-bottom: $spacing-extra-large; }\n.mb6 { margin-bottom: $spacing-extra-extra-large; }\n.mb7 { margin-bottom: $spacing-extra-extra-extra-large; }\n\n.mt0 { margin-top: $spacing-none; }\n.mt1 { margin-top: $spacing-extra-small; }\n.mt2 { margin-top: $spacing-small; }\n.mt3 { margin-top: $spacing-medium; }\n.mt4 { margin-top: $spacing-large; }\n.mt5 { margin-top: $spacing-extra-large; }\n.mt6 { margin-top: $spacing-extra-extra-large; }\n.mt7 { margin-top: $spacing-extra-extra-extra-large; }\n\n.mv0 {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n}\n.mv1 {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n}\n.mv2 {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n}\n.mv3 {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n}\n.mv4 {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n}\n.mv5 {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n}\n.mv6 {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n}\n.mv7 {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n}\n\n.mh0 {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n}\n.mh1 {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n}\n.mh2 {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n}\n.mh3 {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n}\n.mh4 {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n}\n.mh5 {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n}\n.mh6 {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n}\n.mh7 {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n}\n\n@media #{$breakpoint-not-small} {\n .pa0-ns { padding: $spacing-none; }\n .pa1-ns { padding: $spacing-extra-small; }\n .pa2-ns { padding: $spacing-small; }\n .pa3-ns { padding: $spacing-medium; }\n .pa4-ns { padding: $spacing-large; }\n .pa5-ns { padding: $spacing-extra-large; }\n .pa6-ns { padding: $spacing-extra-extra-large; }\n .pa7-ns { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-ns { padding-left: $spacing-none; }\n .pl1-ns { padding-left: $spacing-extra-small; }\n .pl2-ns { padding-left: $spacing-small; }\n .pl3-ns { padding-left: $spacing-medium; }\n .pl4-ns { padding-left: $spacing-large; }\n .pl5-ns { padding-left: $spacing-extra-large; }\n .pl6-ns { padding-left: $spacing-extra-extra-large; }\n .pl7-ns { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-ns { padding-right: $spacing-none; }\n .pr1-ns { padding-right: $spacing-extra-small; }\n .pr2-ns { padding-right: $spacing-small; }\n .pr3-ns { padding-right: $spacing-medium; }\n .pr4-ns { padding-right: $spacing-large; }\n .pr5-ns { padding-right: $spacing-extra-large; }\n .pr6-ns { padding-right: $spacing-extra-extra-large; }\n .pr7-ns { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-ns { padding-bottom: $spacing-none; }\n .pb1-ns { padding-bottom: $spacing-extra-small; }\n .pb2-ns { padding-bottom: $spacing-small; }\n .pb3-ns { padding-bottom: $spacing-medium; }\n .pb4-ns { padding-bottom: $spacing-large; }\n .pb5-ns { padding-bottom: $spacing-extra-large; }\n .pb6-ns { padding-bottom: $spacing-extra-extra-large; }\n .pb7-ns { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-ns { padding-top: $spacing-none; }\n .pt1-ns { padding-top: $spacing-extra-small; }\n .pt2-ns { padding-top: $spacing-small; }\n .pt3-ns { padding-top: $spacing-medium; }\n .pt4-ns { padding-top: $spacing-large; }\n .pt5-ns { padding-top: $spacing-extra-large; }\n .pt6-ns { padding-top: $spacing-extra-extra-large; }\n .pt7-ns { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-ns {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-ns {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-ns {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-ns {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-ns {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-ns {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-ns {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-ns {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n .ph0-ns {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-ns {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-ns {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-ns {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-ns {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-ns {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-ns {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-ns {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-ns { margin: $spacing-none; }\n .ma1-ns { margin: $spacing-extra-small; }\n .ma2-ns { margin: $spacing-small; }\n .ma3-ns { margin: $spacing-medium; }\n .ma4-ns { margin: $spacing-large; }\n .ma5-ns { margin: $spacing-extra-large; }\n .ma6-ns { margin: $spacing-extra-extra-large; }\n .ma7-ns { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-ns { margin-left: $spacing-none; }\n .ml1-ns { margin-left: $spacing-extra-small; }\n .ml2-ns { margin-left: $spacing-small; }\n .ml3-ns { margin-left: $spacing-medium; }\n .ml4-ns { margin-left: $spacing-large; }\n .ml5-ns { margin-left: $spacing-extra-large; }\n .ml6-ns { margin-left: $spacing-extra-extra-large; }\n .ml7-ns { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-ns { margin-right: $spacing-none; }\n .mr1-ns { margin-right: $spacing-extra-small; }\n .mr2-ns { margin-right: $spacing-small; }\n .mr3-ns { margin-right: $spacing-medium; }\n .mr4-ns { margin-right: $spacing-large; }\n .mr5-ns { margin-right: $spacing-extra-large; }\n .mr6-ns { margin-right: $spacing-extra-extra-large; }\n .mr7-ns { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-ns { margin-bottom: $spacing-none; }\n .mb1-ns { margin-bottom: $spacing-extra-small; }\n .mb2-ns { margin-bottom: $spacing-small; }\n .mb3-ns { margin-bottom: $spacing-medium; }\n .mb4-ns { margin-bottom: $spacing-large; }\n .mb5-ns { margin-bottom: $spacing-extra-large; }\n .mb6-ns { margin-bottom: $spacing-extra-extra-large; }\n .mb7-ns { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-ns { margin-top: $spacing-none; }\n .mt1-ns { margin-top: $spacing-extra-small; }\n .mt2-ns { margin-top: $spacing-small; }\n .mt3-ns { margin-top: $spacing-medium; }\n .mt4-ns { margin-top: $spacing-large; }\n .mt5-ns { margin-top: $spacing-extra-large; }\n .mt6-ns { margin-top: $spacing-extra-extra-large; }\n .mt7-ns { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-ns {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-ns {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-ns {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-ns {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-ns {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-ns {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-ns {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-ns {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-ns {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-ns {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-ns {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-ns {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-ns {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-ns {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-ns {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-ns {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n\n}\n\n@media #{$breakpoint-medium} {\n .pa0-m { padding: $spacing-none; }\n .pa1-m { padding: $spacing-extra-small; }\n .pa2-m { padding: $spacing-small; }\n .pa3-m { padding: $spacing-medium; }\n .pa4-m { padding: $spacing-large; }\n .pa5-m { padding: $spacing-extra-large; }\n .pa6-m { padding: $spacing-extra-extra-large; }\n .pa7-m { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-m { padding-left: $spacing-none; }\n .pl1-m { padding-left: $spacing-extra-small; }\n .pl2-m { padding-left: $spacing-small; }\n .pl3-m { padding-left: $spacing-medium; }\n .pl4-m { padding-left: $spacing-large; }\n .pl5-m { padding-left: $spacing-extra-large; }\n .pl6-m { padding-left: $spacing-extra-extra-large; }\n .pl7-m { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-m { padding-right: $spacing-none; }\n .pr1-m { padding-right: $spacing-extra-small; }\n .pr2-m { padding-right: $spacing-small; }\n .pr3-m { padding-right: $spacing-medium; }\n .pr4-m { padding-right: $spacing-large; }\n .pr5-m { padding-right: $spacing-extra-large; }\n .pr6-m { padding-right: $spacing-extra-extra-large; }\n .pr7-m { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-m { padding-bottom: $spacing-none; }\n .pb1-m { padding-bottom: $spacing-extra-small; }\n .pb2-m { padding-bottom: $spacing-small; }\n .pb3-m { padding-bottom: $spacing-medium; }\n .pb4-m { padding-bottom: $spacing-large; }\n .pb5-m { padding-bottom: $spacing-extra-large; }\n .pb6-m { padding-bottom: $spacing-extra-extra-large; }\n .pb7-m { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-m { padding-top: $spacing-none; }\n .pt1-m { padding-top: $spacing-extra-small; }\n .pt2-m { padding-top: $spacing-small; }\n .pt3-m { padding-top: $spacing-medium; }\n .pt4-m { padding-top: $spacing-large; }\n .pt5-m { padding-top: $spacing-extra-large; }\n .pt6-m { padding-top: $spacing-extra-extra-large; }\n .pt7-m { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-m {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-m {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-m {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-m {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-m {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-m {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-m {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-m {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n\n .ph0-m {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-m {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-m {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-m {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-m {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-m {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-m {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-m {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-m { margin: $spacing-none; }\n .ma1-m { margin: $spacing-extra-small; }\n .ma2-m { margin: $spacing-small; }\n .ma3-m { margin: $spacing-medium; }\n .ma4-m { margin: $spacing-large; }\n .ma5-m { margin: $spacing-extra-large; }\n .ma6-m { margin: $spacing-extra-extra-large; }\n .ma7-m { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-m { margin-left: $spacing-none; }\n .ml1-m { margin-left: $spacing-extra-small; }\n .ml2-m { margin-left: $spacing-small; }\n .ml3-m { margin-left: $spacing-medium; }\n .ml4-m { margin-left: $spacing-large; }\n .ml5-m { margin-left: $spacing-extra-large; }\n .ml6-m { margin-left: $spacing-extra-extra-large; }\n .ml7-m { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-m { margin-right: $spacing-none; }\n .mr1-m { margin-right: $spacing-extra-small; }\n .mr2-m { margin-right: $spacing-small; }\n .mr3-m { margin-right: $spacing-medium; }\n .mr4-m { margin-right: $spacing-large; }\n .mr5-m { margin-right: $spacing-extra-large; }\n .mr6-m { margin-right: $spacing-extra-extra-large; }\n .mr7-m { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-m { margin-bottom: $spacing-none; }\n .mb1-m { margin-bottom: $spacing-extra-small; }\n .mb2-m { margin-bottom: $spacing-small; }\n .mb3-m { margin-bottom: $spacing-medium; }\n .mb4-m { margin-bottom: $spacing-large; }\n .mb5-m { margin-bottom: $spacing-extra-large; }\n .mb6-m { margin-bottom: $spacing-extra-extra-large; }\n .mb7-m { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-m { margin-top: $spacing-none; }\n .mt1-m { margin-top: $spacing-extra-small; }\n .mt2-m { margin-top: $spacing-small; }\n .mt3-m { margin-top: $spacing-medium; }\n .mt4-m { margin-top: $spacing-large; }\n .mt5-m { margin-top: $spacing-extra-large; }\n .mt6-m { margin-top: $spacing-extra-extra-large; }\n .mt7-m { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-m {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-m {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-m {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-m {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-m {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-m {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-m {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-m {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-m {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-m {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-m {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-m {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-m {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-m {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-m {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-m {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n\n}\n\n@media #{$breakpoint-large} {\n .pa0-l { padding: $spacing-none; }\n .pa1-l { padding: $spacing-extra-small; }\n .pa2-l { padding: $spacing-small; }\n .pa3-l { padding: $spacing-medium; }\n .pa4-l { padding: $spacing-large; }\n .pa5-l { padding: $spacing-extra-large; }\n .pa6-l { padding: $spacing-extra-extra-large; }\n .pa7-l { padding: $spacing-extra-extra-extra-large; }\n\n .pl0-l { padding-left: $spacing-none; }\n .pl1-l { padding-left: $spacing-extra-small; }\n .pl2-l { padding-left: $spacing-small; }\n .pl3-l { padding-left: $spacing-medium; }\n .pl4-l { padding-left: $spacing-large; }\n .pl5-l { padding-left: $spacing-extra-large; }\n .pl6-l { padding-left: $spacing-extra-extra-large; }\n .pl7-l { padding-left: $spacing-extra-extra-extra-large; }\n\n .pr0-l { padding-right: $spacing-none; }\n .pr1-l { padding-right: $spacing-extra-small; }\n .pr2-l { padding-right: $spacing-small; }\n .pr3-l { padding-right: $spacing-medium; }\n .pr4-l { padding-right: $spacing-large; }\n .pr5-l { padding-right: $spacing-extra-large; }\n .pr6-l { padding-right: $spacing-extra-extra-large; }\n .pr7-l { padding-right: $spacing-extra-extra-extra-large; }\n\n .pb0-l { padding-bottom: $spacing-none; }\n .pb1-l { padding-bottom: $spacing-extra-small; }\n .pb2-l { padding-bottom: $spacing-small; }\n .pb3-l { padding-bottom: $spacing-medium; }\n .pb4-l { padding-bottom: $spacing-large; }\n .pb5-l { padding-bottom: $spacing-extra-large; }\n .pb6-l { padding-bottom: $spacing-extra-extra-large; }\n .pb7-l { padding-bottom: $spacing-extra-extra-extra-large; }\n\n .pt0-l { padding-top: $spacing-none; }\n .pt1-l { padding-top: $spacing-extra-small; }\n .pt2-l { padding-top: $spacing-small; }\n .pt3-l { padding-top: $spacing-medium; }\n .pt4-l { padding-top: $spacing-large; }\n .pt5-l { padding-top: $spacing-extra-large; }\n .pt6-l { padding-top: $spacing-extra-extra-large; }\n .pt7-l { padding-top: $spacing-extra-extra-extra-large; }\n\n .pv0-l {\n padding-top: $spacing-none;\n padding-bottom: $spacing-none;\n }\n .pv1-l {\n padding-top: $spacing-extra-small;\n padding-bottom: $spacing-extra-small;\n }\n .pv2-l {\n padding-top: $spacing-small;\n padding-bottom: $spacing-small;\n }\n .pv3-l {\n padding-top: $spacing-medium;\n padding-bottom: $spacing-medium;\n }\n .pv4-l {\n padding-top: $spacing-large;\n padding-bottom: $spacing-large;\n }\n .pv5-l {\n padding-top: $spacing-extra-large;\n padding-bottom: $spacing-extra-large;\n }\n .pv6-l {\n padding-top: $spacing-extra-extra-large;\n padding-bottom: $spacing-extra-extra-large;\n }\n .pv7-l {\n padding-top: $spacing-extra-extra-extra-large;\n padding-bottom: $spacing-extra-extra-extra-large;\n }\n\n .ph0-l {\n padding-left: $spacing-none;\n padding-right: $spacing-none;\n }\n .ph1-l {\n padding-left: $spacing-extra-small;\n padding-right: $spacing-extra-small;\n }\n .ph2-l {\n padding-left: $spacing-small;\n padding-right: $spacing-small;\n }\n .ph3-l {\n padding-left: $spacing-medium;\n padding-right: $spacing-medium;\n }\n .ph4-l {\n padding-left: $spacing-large;\n padding-right: $spacing-large;\n }\n .ph5-l {\n padding-left: $spacing-extra-large;\n padding-right: $spacing-extra-large;\n }\n .ph6-l {\n padding-left: $spacing-extra-extra-large;\n padding-right: $spacing-extra-extra-large;\n }\n .ph7-l {\n padding-left: $spacing-extra-extra-extra-large;\n padding-right: $spacing-extra-extra-extra-large;\n }\n\n .ma0-l { margin: $spacing-none; }\n .ma1-l { margin: $spacing-extra-small; }\n .ma2-l { margin: $spacing-small; }\n .ma3-l { margin: $spacing-medium; }\n .ma4-l { margin: $spacing-large; }\n .ma5-l { margin: $spacing-extra-large; }\n .ma6-l { margin: $spacing-extra-extra-large; }\n .ma7-l { margin: $spacing-extra-extra-extra-large; }\n\n .ml0-l { margin-left: $spacing-none; }\n .ml1-l { margin-left: $spacing-extra-small; }\n .ml2-l { margin-left: $spacing-small; }\n .ml3-l { margin-left: $spacing-medium; }\n .ml4-l { margin-left: $spacing-large; }\n .ml5-l { margin-left: $spacing-extra-large; }\n .ml6-l { margin-left: $spacing-extra-extra-large; }\n .ml7-l { margin-left: $spacing-extra-extra-extra-large; }\n\n .mr0-l { margin-right: $spacing-none; }\n .mr1-l { margin-right: $spacing-extra-small; }\n .mr2-l { margin-right: $spacing-small; }\n .mr3-l { margin-right: $spacing-medium; }\n .mr4-l { margin-right: $spacing-large; }\n .mr5-l { margin-right: $spacing-extra-large; }\n .mr6-l { margin-right: $spacing-extra-extra-large; }\n .mr7-l { margin-right: $spacing-extra-extra-extra-large; }\n\n .mb0-l { margin-bottom: $spacing-none; }\n .mb1-l { margin-bottom: $spacing-extra-small; }\n .mb2-l { margin-bottom: $spacing-small; }\n .mb3-l { margin-bottom: $spacing-medium; }\n .mb4-l { margin-bottom: $spacing-large; }\n .mb5-l { margin-bottom: $spacing-extra-large; }\n .mb6-l { margin-bottom: $spacing-extra-extra-large; }\n .mb7-l { margin-bottom: $spacing-extra-extra-extra-large; }\n\n .mt0-l { margin-top: $spacing-none; }\n .mt1-l { margin-top: $spacing-extra-small; }\n .mt2-l { margin-top: $spacing-small; }\n .mt3-l { margin-top: $spacing-medium; }\n .mt4-l { margin-top: $spacing-large; }\n .mt5-l { margin-top: $spacing-extra-large; }\n .mt6-l { margin-top: $spacing-extra-extra-large; }\n .mt7-l { margin-top: $spacing-extra-extra-extra-large; }\n\n .mv0-l {\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n }\n .mv1-l {\n margin-top: $spacing-extra-small;\n margin-bottom: $spacing-extra-small;\n }\n .mv2-l {\n margin-top: $spacing-small;\n margin-bottom: $spacing-small;\n }\n .mv3-l {\n margin-top: $spacing-medium;\n margin-bottom: $spacing-medium;\n }\n .mv4-l {\n margin-top: $spacing-large;\n margin-bottom: $spacing-large;\n }\n .mv5-l {\n margin-top: $spacing-extra-large;\n margin-bottom: $spacing-extra-large;\n }\n .mv6-l {\n margin-top: $spacing-extra-extra-large;\n margin-bottom: $spacing-extra-extra-large;\n }\n .mv7-l {\n margin-top: $spacing-extra-extra-extra-large;\n margin-bottom: $spacing-extra-extra-extra-large;\n }\n\n .mh0-l {\n margin-left: $spacing-none;\n margin-right: $spacing-none;\n }\n .mh1-l {\n margin-left: $spacing-extra-small;\n margin-right: $spacing-extra-small;\n }\n .mh2-l {\n margin-left: $spacing-small;\n margin-right: $spacing-small;\n }\n .mh3-l {\n margin-left: $spacing-medium;\n margin-right: $spacing-medium;\n }\n .mh4-l {\n margin-left: $spacing-large;\n margin-right: $spacing-large;\n }\n .mh5-l {\n margin-left: $spacing-extra-large;\n margin-right: $spacing-extra-large;\n }\n .mh6-l {\n margin-left: $spacing-extra-extra-large;\n margin-right: $spacing-extra-extra-large;\n }\n .mh7-l {\n margin-left: $spacing-extra-extra-extra-large;\n margin-right: $spacing-extra-extra-extra-large;\n }\n}\n","\n// Converted Variables\n\n$sans-serif: -apple-system, BlinkMacSystemFont, 'avenir next', avenir, helvetica, 'helvetica neue', ubuntu, roboto, noto, 'segoe ui', arial, sans-serif !default;\n$serif: georgia, serif !default;\n$code: consolas, monaco, monospace !default;\n$font-size-headline: 6rem !default;\n$font-size-subheadline: 5rem !default;\n$font-size-1: 3rem !default;\n$font-size-2: 2.25rem !default;\n$font-size-3: 1.5rem !default;\n$font-size-4: 1.25rem !default;\n$font-size-5: 1rem !default;\n$font-size-6: .875rem !default;\n$font-size-7: .75rem !default;\n$letter-spacing-tight: -.05em !default;\n$letter-spacing-1: .1em !default;\n$letter-spacing-2: .25em !default;\n$line-height-solid: 1 !default;\n$line-height-title: 1.25 !default;\n$line-height-copy: 1.5 !default;\n$measure: 30em !default;\n$measure-narrow: 20em !default;\n$measure-wide: 34em !default;\n$spacing-none: 0 !default;\n$spacing-extra-small: .25rem !default;\n$spacing-small: .5rem !default;\n$spacing-medium: 1rem !default;\n$spacing-large: 2rem !default;\n$spacing-extra-large: 4rem !default;\n$spacing-extra-extra-large: 8rem !default;\n$spacing-extra-extra-extra-large: 16rem !default;\n$spacing-copy-separator: 1.5em !default;\n$height-1: 1rem !default;\n$height-2: 2rem !default;\n$height-3: 4rem !default;\n$height-4: 8rem !default;\n$height-5: 16rem !default;\n$width-1: 1rem !default;\n$width-2: 2rem !default;\n$width-3: 4rem !default;\n$width-4: 8rem !default;\n$width-5: 16rem !default;\n$max-width-1: 1rem !default;\n$max-width-2: 2rem !default;\n$max-width-3: 4rem !default;\n$max-width-4: 8rem !default;\n$max-width-5: 16rem !default;\n$max-width-6: 32rem !default;\n$max-width-7: 48rem !default;\n$max-width-8: 64rem !default;\n$max-width-9: 96rem !default;\n$border-radius-none: 0 !default;\n$border-radius-1: .125rem !default;\n$border-radius-2: .25rem !default;\n$border-radius-3: .5rem !default;\n$border-radius-4: 1rem !default;\n$border-radius-circle: 100% !default;\n$border-radius-pill: 9999px !default;\n$border-width-none: 0 !default;\n$border-width-1: .125rem !default;\n$border-width-2: .25rem !default;\n$border-width-3: .5rem !default;\n$border-width-4: 1rem !default;\n$border-width-5: 2rem !default;\n$box-shadow-1: 0px 0px 4px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-2: 0px 0px 8px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-3: 2px 2px 4px 2px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-4: 2px 2px 8px 0px rgba( 0, 0, 0, 0.2 ) !default;\n$box-shadow-5: 4px 4px 8px 0px rgba( 0, 0, 0, 0.2 ) !default;\n$black: #000 !default;\n$near-black: #111 !default;\n$dark-gray: #333 !default;\n$mid-gray: #555 !default;\n$gray: #777 !default;\n$silver: #999 !default;\n$light-silver: #aaa !default;\n$moon-gray: #ccc !default;\n$light-gray: #eee !default;\n$near-white: #f4f4f4 !default;\n$white: #fff !default;\n$transparent: transparent !default;\n$black-90: rgba(0,0,0,.9) !default;\n$black-80: rgba(0,0,0,.8) !default;\n$black-70: rgba(0,0,0,.7) !default;\n$black-60: rgba(0,0,0,.6) !default;\n$black-50: rgba(0,0,0,.5) !default;\n$black-40: rgba(0,0,0,.4) !default;\n$black-30: rgba(0,0,0,.3) !default;\n$black-20: rgba(0,0,0,.2) !default;\n$black-10: rgba(0,0,0,.1) !default;\n$black-05: rgba(0,0,0,.05) !default;\n$black-025: rgba(0,0,0,.025) !default;\n$black-0125: rgba(0,0,0,.0125) !default;\n$white-90: rgba(255,255,255,.9) !default;\n$white-80: rgba(255,255,255,.8) !default;\n$white-70: rgba(255,255,255,.7) !default;\n$white-60: rgba(255,255,255,.6) !default;\n$white-50: rgba(255,255,255,.5) !default;\n$white-40: rgba(255,255,255,.4) !default;\n$white-30: rgba(255,255,255,.3) !default;\n$white-20: rgba(255,255,255,.2) !default;\n$white-10: rgba(255,255,255,.1) !default;\n$white-05: rgba(255,255,255,.05) !default;\n$white-025: rgba(255,255,255,.025) !default;\n$white-0125: rgba(255,255,255,.0125) !default;\n$dark-red: #e7040f !default;\n$red: #ff4136 !default;\n$light-red: #ff725c !default;\n$orange: #ff6300 !default;\n$gold: #ffb700 !default;\n$yellow: #ffd700 !default;\n$light-yellow: #fbf1a9 !default;\n$purple: #5e2ca5 !default;\n$light-purple: #a463f2 !default;\n$dark-pink: #d5008f !default;\n$hot-pink: #ff41b4 !default;\n$pink: #ff80cc !default;\n$light-pink: #ffa3d7 !default;\n$dark-green: #137752 !default;\n$green: #19a974 !default;\n$light-green: #9eebcf !default;\n$navy: #001b44 !default;\n$dark-blue: #00449e !default;\n$blue: #357edd !default;\n$light-blue: #96ccff !default;\n$lightest-blue: #cdecff !default;\n$washed-blue: #f6fffe !default;\n$washed-green: #e8fdf5 !default;\n$washed-yellow: #fffceb !default;\n$washed-red: #ffdfdf !default;\n\n// Custom Media Query Variables\n\n$breakpoint-not-small: 'screen and (min-width: 30em)' !default;\n$breakpoint-medium: 'screen and (min-width: 30em) and (max-width: 60em)' !default;\n$breakpoint-large: 'screen and (min-width: 60em)' !default;\n\n/*\n\n VARIABLES\n\n*/\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n NEGATIVE MARGINS\n\n Base:\n n = negative\n\n Modifiers:\n a = all\n t = top\n r = right\n b = bottom\n l = left\n\n 1 = 1st step in spacing scale\n 2 = 2nd step in spacing scale\n 3 = 3rd step in spacing scale\n 4 = 4th step in spacing scale\n 5 = 5th step in spacing scale\n 6 = 6th step in spacing scale\n 7 = 7th step in spacing scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n.na1 { margin: -$spacing-extra-small; }\n.na2 { margin: -$spacing-small; }\n.na3 { margin: -$spacing-medium; }\n.na4 { margin: -$spacing-large; }\n.na5 { margin: -$spacing-extra-large; }\n.na6 { margin: -$spacing-extra-extra-large; }\n.na7 { margin: -$spacing-extra-extra-extra-large; }\n\n.nl1 { margin-left: -$spacing-extra-small; }\n.nl2 { margin-left: -$spacing-small; }\n.nl3 { margin-left: -$spacing-medium; }\n.nl4 { margin-left: -$spacing-large; }\n.nl5 { margin-left: -$spacing-extra-large; }\n.nl6 { margin-left: -$spacing-extra-extra-large; }\n.nl7 { margin-left: -$spacing-extra-extra-extra-large; }\n\n.nr1 { margin-right: -$spacing-extra-small; }\n.nr2 { margin-right: -$spacing-small; }\n.nr3 { margin-right: -$spacing-medium; }\n.nr4 { margin-right: -$spacing-large; }\n.nr5 { margin-right: -$spacing-extra-large; }\n.nr6 { margin-right: -$spacing-extra-extra-large; }\n.nr7 { margin-right: -$spacing-extra-extra-extra-large; }\n\n.nb1 { margin-bottom: -$spacing-extra-small; }\n.nb2 { margin-bottom: -$spacing-small; }\n.nb3 { margin-bottom: -$spacing-medium; }\n.nb4 { margin-bottom: -$spacing-large; }\n.nb5 { margin-bottom: -$spacing-extra-large; }\n.nb6 { margin-bottom: -$spacing-extra-extra-large; }\n.nb7 { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n.nt1 { margin-top: -$spacing-extra-small; }\n.nt2 { margin-top: -$spacing-small; }\n.nt3 { margin-top: -$spacing-medium; }\n.nt4 { margin-top: -$spacing-large; }\n.nt5 { margin-top: -$spacing-extra-large; }\n.nt6 { margin-top: -$spacing-extra-extra-large; }\n.nt7 { margin-top: -$spacing-extra-extra-extra-large; }\n\n@media #{$breakpoint-not-small} {\n\n .na1-ns { margin: -$spacing-extra-small; }\n .na2-ns { margin: -$spacing-small; }\n .na3-ns { margin: -$spacing-medium; }\n .na4-ns { margin: -$spacing-large; }\n .na5-ns { margin: -$spacing-extra-large; }\n .na6-ns { margin: -$spacing-extra-extra-large; }\n .na7-ns { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-ns { margin-left: -$spacing-extra-small; }\n .nl2-ns { margin-left: -$spacing-small; }\n .nl3-ns { margin-left: -$spacing-medium; }\n .nl4-ns { margin-left: -$spacing-large; }\n .nl5-ns { margin-left: -$spacing-extra-large; }\n .nl6-ns { margin-left: -$spacing-extra-extra-large; }\n .nl7-ns { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-ns { margin-right: -$spacing-extra-small; }\n .nr2-ns { margin-right: -$spacing-small; }\n .nr3-ns { margin-right: -$spacing-medium; }\n .nr4-ns { margin-right: -$spacing-large; }\n .nr5-ns { margin-right: -$spacing-extra-large; }\n .nr6-ns { margin-right: -$spacing-extra-extra-large; }\n .nr7-ns { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-ns { margin-bottom: -$spacing-extra-small; }\n .nb2-ns { margin-bottom: -$spacing-small; }\n .nb3-ns { margin-bottom: -$spacing-medium; }\n .nb4-ns { margin-bottom: -$spacing-large; }\n .nb5-ns { margin-bottom: -$spacing-extra-large; }\n .nb6-ns { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-ns { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-ns { margin-top: -$spacing-extra-small; }\n .nt2-ns { margin-top: -$spacing-small; }\n .nt3-ns { margin-top: -$spacing-medium; }\n .nt4-ns { margin-top: -$spacing-large; }\n .nt5-ns { margin-top: -$spacing-extra-large; }\n .nt6-ns { margin-top: -$spacing-extra-extra-large; }\n .nt7-ns { margin-top: -$spacing-extra-extra-extra-large; }\n\n}\n\n@media #{$breakpoint-medium} {\n .na1-m { margin: -$spacing-extra-small; }\n .na2-m { margin: -$spacing-small; }\n .na3-m { margin: -$spacing-medium; }\n .na4-m { margin: -$spacing-large; }\n .na5-m { margin: -$spacing-extra-large; }\n .na6-m { margin: -$spacing-extra-extra-large; }\n .na7-m { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-m { margin-left: -$spacing-extra-small; }\n .nl2-m { margin-left: -$spacing-small; }\n .nl3-m { margin-left: -$spacing-medium; }\n .nl4-m { margin-left: -$spacing-large; }\n .nl5-m { margin-left: -$spacing-extra-large; }\n .nl6-m { margin-left: -$spacing-extra-extra-large; }\n .nl7-m { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-m { margin-right: -$spacing-extra-small; }\n .nr2-m { margin-right: -$spacing-small; }\n .nr3-m { margin-right: -$spacing-medium; }\n .nr4-m { margin-right: -$spacing-large; }\n .nr5-m { margin-right: -$spacing-extra-large; }\n .nr6-m { margin-right: -$spacing-extra-extra-large; }\n .nr7-m { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-m { margin-bottom: -$spacing-extra-small; }\n .nb2-m { margin-bottom: -$spacing-small; }\n .nb3-m { margin-bottom: -$spacing-medium; }\n .nb4-m { margin-bottom: -$spacing-large; }\n .nb5-m { margin-bottom: -$spacing-extra-large; }\n .nb6-m { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-m { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-m { margin-top: -$spacing-extra-small; }\n .nt2-m { margin-top: -$spacing-small; }\n .nt3-m { margin-top: -$spacing-medium; }\n .nt4-m { margin-top: -$spacing-large; }\n .nt5-m { margin-top: -$spacing-extra-large; }\n .nt6-m { margin-top: -$spacing-extra-extra-large; }\n .nt7-m { margin-top: -$spacing-extra-extra-extra-large; }\n\n}\n\n@media #{$breakpoint-large} {\n .na1-l { margin: -$spacing-extra-small; }\n .na2-l { margin: -$spacing-small; }\n .na3-l { margin: -$spacing-medium; }\n .na4-l { margin: -$spacing-large; }\n .na5-l { margin: -$spacing-extra-large; }\n .na6-l { margin: -$spacing-extra-extra-large; }\n .na7-l { margin: -$spacing-extra-extra-extra-large; }\n\n .nl1-l { margin-left: -$spacing-extra-small; }\n .nl2-l { margin-left: -$spacing-small; }\n .nl3-l { margin-left: -$spacing-medium; }\n .nl4-l { margin-left: -$spacing-large; }\n .nl5-l { margin-left: -$spacing-extra-large; }\n .nl6-l { margin-left: -$spacing-extra-extra-large; }\n .nl7-l { margin-left: -$spacing-extra-extra-extra-large; }\n\n .nr1-l { margin-right: -$spacing-extra-small; }\n .nr2-l { margin-right: -$spacing-small; }\n .nr3-l { margin-right: -$spacing-medium; }\n .nr4-l { margin-right: -$spacing-large; }\n .nr5-l { margin-right: -$spacing-extra-large; }\n .nr6-l { margin-right: -$spacing-extra-extra-large; }\n .nr7-l { margin-right: -$spacing-extra-extra-extra-large; }\n\n .nb1-l { margin-bottom: -$spacing-extra-small; }\n .nb2-l { margin-bottom: -$spacing-small; }\n .nb3-l { margin-bottom: -$spacing-medium; }\n .nb4-l { margin-bottom: -$spacing-large; }\n .nb5-l { margin-bottom: -$spacing-extra-large; }\n .nb6-l { margin-bottom: -$spacing-extra-extra-large; }\n .nb7-l { margin-bottom: -$spacing-extra-extra-extra-large; }\n\n .nt1-l { margin-top: -$spacing-extra-small; }\n .nt2-l { margin-top: -$spacing-small; }\n .nt3-l { margin-top: -$spacing-medium; }\n .nt4-l { margin-top: -$spacing-large; }\n .nt5-l { margin-top: -$spacing-extra-large; }\n .nt6-l { margin-top: -$spacing-extra-extra-large; }\n .nt7-l { margin-top: -$spacing-extra-extra-extra-large; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TABLES\n Docs: http://tachyons.io/docs/elements/tables/\n\n*/\n\n.collapse {\n border-collapse: collapse;\n border-spacing: 0;\n}\n\n.striped--light-silver:nth-child(odd) {\n background-color: $light-silver;\n}\n\n.striped--moon-gray:nth-child(odd) {\n background-color: $moon-gray;\n}\n\n.striped--light-gray:nth-child(odd) {\n background-color: $light-gray;\n}\n\n.striped--near-white:nth-child(odd) {\n background-color: $near-white;\n}\n\n.stripe-light:nth-child(odd) {\n background-color: $white-10;\n}\n\n.stripe-dark:nth-child(odd) {\n background-color: $black-10;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT DECORATION\n Docs: http://tachyons.io/docs/typography/text-decoration/\n\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.strike { text-decoration: line-through; }\n.underline { text-decoration: underline; }\n.no-underline { text-decoration: none; }\n\n\n@media #{$breakpoint-not-small} {\n .strike-ns { text-decoration: line-through; }\n .underline-ns { text-decoration: underline; }\n .no-underline-ns { text-decoration: none; }\n}\n\n@media #{$breakpoint-medium} {\n .strike-m { text-decoration: line-through; }\n .underline-m { text-decoration: underline; }\n .no-underline-m { text-decoration: none; }\n}\n\n@media #{$breakpoint-large} {\n .strike-l { text-decoration: line-through; }\n .underline-l { text-decoration: underline; }\n .no-underline-l { text-decoration: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT ALIGN\n Docs: http://tachyons.io/docs/typography/text-align/\n\n Base\n t = text-align\n\n Modifiers\n l = left\n r = right\n c = center\n j = justify\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.tl { text-align: left; }\n.tr { text-align: right; }\n.tc { text-align: center; }\n.tj { text-align: justify; }\n\n@media #{$breakpoint-not-small} {\n .tl-ns { text-align: left; }\n .tr-ns { text-align: right; }\n .tc-ns { text-align: center; }\n .tj-ns { text-align: justify; }\n}\n\n@media #{$breakpoint-medium} {\n .tl-m { text-align: left; }\n .tr-m { text-align: right; }\n .tc-m { text-align: center; }\n .tj-m { text-align: justify; }\n}\n\n@media #{$breakpoint-large} {\n .tl-l { text-align: left; }\n .tr-l { text-align: right; }\n .tc-l { text-align: center; }\n .tj-l { text-align: justify; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TEXT TRANSFORM\n Docs: http://tachyons.io/docs/typography/text-transform/\n\n Base:\n tt = text-transform\n\n Modifiers\n c = capitalize\n l = lowercase\n u = uppercase\n n = none\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.ttc { text-transform: capitalize; }\n.ttl { text-transform: lowercase; }\n.ttu { text-transform: uppercase; }\n.ttn { text-transform: none; }\n\n@media #{$breakpoint-not-small} {\n .ttc-ns { text-transform: capitalize; }\n .ttl-ns { text-transform: lowercase; }\n .ttu-ns { text-transform: uppercase; }\n .ttn-ns { text-transform: none; }\n}\n\n@media #{$breakpoint-medium} {\n .ttc-m { text-transform: capitalize; }\n .ttl-m { text-transform: lowercase; }\n .ttu-m { text-transform: uppercase; }\n .ttn-m { text-transform: none; }\n}\n\n@media #{$breakpoint-large} {\n .ttc-l { text-transform: capitalize; }\n .ttl-l { text-transform: lowercase; }\n .ttu-l { text-transform: uppercase; }\n .ttn-l { text-transform: none; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TYPE SCALE\n Docs: http://tachyons.io/docs/typography/scale/\n\n Base:\n f = font-size\n\n Modifiers\n 1 = 1st step in size scale\n 2 = 2nd step in size scale\n 3 = 3rd step in size scale\n 4 = 4th step in size scale\n 5 = 5th step in size scale\n 6 = 6th step in size scale\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n*/\n\n/*\n * For Hero/Marketing Titles\n *\n * These generally are too large for mobile\n * so be careful using them on smaller screens.\n * */\n\n.f-6,\n.f-headline {\n font-size: $font-size-headline;\n}\n.f-5,\n.f-subheadline {\n font-size: $font-size-subheadline;\n}\n\n\n/* Type Scale */\n\n\n.f1 { font-size: $font-size-1; }\n.f2 { font-size: $font-size-2; }\n.f3 { font-size: $font-size-3; }\n.f4 { font-size: $font-size-4; }\n.f5 { font-size: $font-size-5; }\n.f6 { font-size: $font-size-6; }\n.f7 { font-size: $font-size-7; }\n\n@media #{$breakpoint-not-small}{\n .f-6-ns,\n .f-headline-ns { font-size: $font-size-headline; }\n .f-5-ns,\n .f-subheadline-ns { font-size: $font-size-subheadline; }\n .f1-ns { font-size: $font-size-1; }\n .f2-ns { font-size: $font-size-2; }\n .f3-ns { font-size: $font-size-3; }\n .f4-ns { font-size: $font-size-4; }\n .f5-ns { font-size: $font-size-5; }\n .f6-ns { font-size: $font-size-6; }\n .f7-ns { font-size: $font-size-7; }\n}\n\n@media #{$breakpoint-medium} {\n .f-6-m,\n .f-headline-m { font-size: $font-size-headline; }\n .f-5-m,\n .f-subheadline-m { font-size: $font-size-subheadline; }\n .f1-m { font-size: $font-size-1; }\n .f2-m { font-size: $font-size-2; }\n .f3-m { font-size: $font-size-3; }\n .f4-m { font-size: $font-size-4; }\n .f5-m { font-size: $font-size-5; }\n .f6-m { font-size: $font-size-6; }\n .f7-m { font-size: $font-size-7; }\n}\n\n@media #{$breakpoint-large} {\n .f-6-l,\n .f-headline-l {\n font-size: $font-size-headline;\n }\n .f-5-l,\n .f-subheadline-l {\n font-size: $font-size-subheadline;\n }\n .f1-l { font-size: $font-size-1; }\n .f2-l { font-size: $font-size-2; }\n .f3-l { font-size: $font-size-3; }\n .f4-l { font-size: $font-size-4; }\n .f5-l { font-size: $font-size-5; }\n .f6-l { font-size: $font-size-6; }\n .f7-l { font-size: $font-size-7; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n TYPOGRAPHY\n http://tachyons.io/docs/typography/measure/\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n\n/* Measure is limited to ~66 characters */\n.measure {\n max-width: $measure;\n}\n\n/* Measure is limited to ~80 characters */\n.measure-wide {\n max-width: $measure-wide;\n}\n\n/* Measure is limited to ~45 characters */\n.measure-narrow {\n max-width: $measure-narrow;\n}\n\n/* Book paragraph style - paragraphs are indented with no vertical spacing. */\n.indent {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n.small-caps {\n font-variant: small-caps;\n}\n\n/* Combine this class with a width to truncate text (or just leave as is to truncate at width of containing element. */\n\n.truncate {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n@media #{$breakpoint-not-small} {\n .measure-ns {\n max-width: $measure;\n }\n .measure-wide-ns {\n max-width: $measure-wide;\n }\n .measure-narrow-ns {\n max-width: $measure-narrow;\n }\n .indent-ns {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-ns {\n font-variant: small-caps;\n }\n .truncate-ns {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media #{$breakpoint-medium} {\n .measure-m {\n max-width: $measure;\n }\n .measure-wide-m {\n max-width: $measure-wide;\n }\n .measure-narrow-m {\n max-width: $measure-narrow;\n }\n .indent-m {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-m {\n font-variant: small-caps;\n }\n .truncate-m {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n\n@media #{$breakpoint-large} {\n .measure-l {\n max-width: $measure;\n }\n .measure-wide-l {\n max-width: $measure-wide;\n }\n .measure-narrow-l {\n max-width: $measure-narrow;\n }\n .indent-l {\n text-indent: 1em;\n margin-top: 0;\n margin-bottom: 0;\n }\n .small-caps-l {\n font-variant: small-caps;\n }\n .truncate-l {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n UTILITIES\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n/* Equivalent to .overflow-y-scroll */\n.overflow-container {\n overflow-y: scroll;\n}\n\n.center {\n margin-right: auto;\n margin-left: auto;\n}\n\n.mr-auto { margin-right: auto; }\n.ml-auto { margin-left: auto; }\n\n@media #{$breakpoint-not-small}{\n .center-ns {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-ns { margin-right: auto; }\n .ml-auto-ns { margin-left: auto; }\n}\n\n@media #{$breakpoint-medium}{\n .center-m {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-m { margin-right: auto; }\n .ml-auto-m { margin-left: auto; }\n}\n\n@media #{$breakpoint-large}{\n .center-l {\n margin-right: auto;\n margin-left: auto;\n }\n .mr-auto-l { margin-right: auto; }\n .ml-auto-l { margin-left: auto; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n VISIBILITY\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n/*\n Text that is hidden but accessible\n Ref: http://snook.ca/archives/html_and_css/hiding-content-for-accessibility\n*/\n\n.clip {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n}\n\n@media #{$breakpoint-not-small} {\n .clip-ns {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media #{$breakpoint-medium} {\n .clip-m {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n@media #{$breakpoint-large} {\n .clip-l {\n position: fixed !important;\n _position: absolute !important;\n clip: rect(1px 1px 1px 1px); /* IE6, IE7 */\n clip: rect(1px, 1px, 1px, 1px);\n }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n WHITE SPACE\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n\n.ws-normal { white-space: normal; }\n.nowrap { white-space: nowrap; }\n.pre { white-space: pre; }\n\n@media #{$breakpoint-not-small} {\n .ws-normal-ns { white-space: normal; }\n .nowrap-ns { white-space: nowrap; }\n .pre-ns { white-space: pre; }\n}\n\n@media #{$breakpoint-medium} {\n .ws-normal-m { white-space: normal; }\n .nowrap-m { white-space: nowrap; }\n .pre-m { white-space: pre; }\n}\n\n@media #{$breakpoint-large} {\n .ws-normal-l { white-space: normal; }\n .nowrap-l { white-space: nowrap; }\n .pre-l { white-space: pre; }\n}\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n VERTICAL ALIGN\n\n Media Query Extensions:\n -ns = not-small\n -m = medium\n -l = large\n\n*/\n\n.v-base { vertical-align: baseline; }\n.v-mid { vertical-align: middle; }\n.v-top { vertical-align: top; }\n.v-btm { vertical-align: bottom; }\n\n@media #{$breakpoint-not-small} {\n .v-base-ns { vertical-align: baseline; }\n .v-mid-ns { vertical-align: middle; }\n .v-top-ns { vertical-align: top; }\n .v-btm-ns { vertical-align: bottom; }\n}\n\n@media #{$breakpoint-medium} {\n .v-base-m { vertical-align: baseline; }\n .v-mid-m { vertical-align: middle; }\n .v-top-m { vertical-align: top; }\n .v-btm-m { vertical-align: bottom; }\n}\n\n@media #{$breakpoint-large} {\n .v-base-l { vertical-align: baseline; }\n .v-mid-l { vertical-align: middle; }\n .v-top-l { vertical-align: top; }\n .v-btm-l { vertical-align: bottom; }\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n HOVER EFFECTS\n Docs: http://tachyons.io/docs/themes/hovers/\n\n - Dim\n - Glow\n - Hide Child\n - Underline text\n - Grow\n - Pointer\n - Shadow\n\n*/\n\n/*\n\n Dim element on hover by adding the dim class.\n\n*/\n.dim {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n.dim:hover,\n.dim:focus {\n opacity: .5;\n transition: opacity .15s ease-in;\n}\n.dim:active {\n opacity: .8; transition: opacity .15s ease-out;\n}\n\n/*\n\n Animate opacity to 100% on hover by adding the glow class.\n\n*/\n.glow {\n transition: opacity .15s ease-in;\n}\n.glow:hover,\n.glow:focus {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n/*\n\n Hide child & reveal on hover:\n\n Put the hide-child class on a parent element and any nested element with the\n child class will be hidden and displayed on hover or focus.\n\n
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
Hidden until hover or focus
\n
\n*/\n\n.hide-child .child {\n opacity: 0;\n transition: opacity .15s ease-in;\n}\n.hide-child:hover .child,\n.hide-child:focus .child,\n.hide-child:active .child {\n opacity: 1;\n transition: opacity .15s ease-in;\n}\n\n.underline-hover:hover,\n.underline-hover:focus {\n text-decoration: underline;\n}\n\n/* Can combine this with overflow-hidden to make background images grow on hover\n * even if you are using background-size: cover */\n\n.grow {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform 0.25s ease-out;\n}\n\n.grow:hover,\n.grow:focus {\n transform: scale(1.05);\n}\n\n.grow:active {\n transform: scale(.90);\n}\n\n.grow-large {\n -moz-osx-font-smoothing: grayscale;\n backface-visibility: hidden;\n transform: translateZ(0);\n transition: transform .25s ease-in-out;\n}\n\n.grow-large:hover,\n.grow-large:focus {\n transform: scale(1.2);\n}\n\n.grow-large:active {\n transform: scale(.95);\n}\n\n/* Add pointer on hover */\n\n.pointer:hover {\n cursor: pointer;\n}\n\n/*\n Add shadow on hover.\n\n Performant box-shadow animation pattern from\n http://tobiasahlin.com/blog/how-to-animate-box-shadow/\n*/\n\n.shadow-hover {\n cursor: pointer;\n position: relative;\n transition: all 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.shadow-hover::after {\n content: '';\n box-shadow: 0px 0px 16px 2px rgba( 0, 0, 0, .2 );\n border-radius: inherit;\n opacity: 0;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: -1;\n transition: opacity 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);\n}\n\n.shadow-hover:hover::after,\n.shadow-hover:focus::after {\n opacity: 1;\n}\n\n/* Combine with classes in skins and skins-pseudo for\n * many different transition possibilities. */\n\n.bg-animate,\n.bg-animate:hover,\n.bg-animate:focus {\n transition: background-color .15s ease-in-out;\n}\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n Z-INDEX\n\n Base\n z = z-index\n\n Modifiers\n -0 = literal value 0\n -1 = literal value 1\n -2 = literal value 2\n -3 = literal value 3\n -4 = literal value 4\n -5 = literal value 5\n -999 = literal value 999\n -9999 = literal value 9999\n\n -max = largest accepted z-index value as integer\n\n -inherit = string value inherit\n -initial = string value initial\n -unset = string value unset\n\n MDN: https://developer.mozilla.org/en/docs/Web/CSS/z-index\n Spec: http://www.w3.org/TR/CSS2/zindex.html\n Articles:\n https://philipwalton.com/articles/what-no-one-told-you-about-z-index/\n\n Tips on extending:\n There might be a time worth using negative z-index values.\n Or if you are using tachyons with another project, you might need to\n adjust these values to suit your needs.\n\n*/\n\n.z-0 { z-index: 0; }\n.z-1 { z-index: 1; }\n.z-2 { z-index: 2; }\n.z-3 { z-index: 3; }\n.z-4 { z-index: 4; }\n.z-5 { z-index: 5; }\n\n.z-999 { z-index: 999; }\n.z-9999 { z-index: 9999; }\n\n.z-max {\n z-index: 2147483647;\n}\n\n.z-inherit { z-index: inherit; }\n.z-initial { z-index: initial; }\n.z-unset { z-index: unset; }\n\n","\n// Converted Variables\n\n\n// Custom Media Query Variables\n\n\n/*\n\n NESTED\n Tachyons module for styling nested elements\n that are generated by a cms.\n\n*/\n\n.nested-copy-line-height p,\n.nested-copy-line-height ul,\n.nested-copy-line-height ol {\n line-height: $line-height-copy;\n}\n\n.nested-headline-line-height h1,\n.nested-headline-line-height h2,\n.nested-headline-line-height h3,\n.nested-headline-line-height h4,\n.nested-headline-line-height h5,\n.nested-headline-line-height h6 {\n line-height: $line-height-title;\n}\n\n.nested-list-reset ul,\n.nested-list-reset ol {\n padding-left: 0;\n margin-left: 0;\n list-style-type: none;\n}\n\n.nested-copy-indent p+p {\n text-indent: $letter-spacing-1;\n margin-top: $spacing-none;\n margin-bottom: $spacing-none;\n}\n\n.nested-copy-seperator p+p {\n margin-top: $spacing-copy-separator;\n}\n\n.nested-img img {\n width: 100%;\n max-width: 100%;\n display: block;\n}\n\n.nested-links a {\n color: $blue;\n transition: color .15s ease-in;\n}\n\n.nested-links a:hover,\n.nested-links a:focus {\n color: $light-blue;\n transition: color .15s ease-in;\n}\n",".wrapper\n{\n width: 100%;\n max-width: 1460px;\n margin: 0 auto;\n padding: 0 20px;\n box-sizing: border-box;\n}\n\n.opblock-tag-section\n{\n display: flex;\n flex-direction: column;\n}\n\n.opblock-tag\n{\n display: flex;\n align-items: center;\n\n padding: 10px 20px 10px 10px;\n\n cursor: pointer;\n transition: all .2s;\n\n border-bottom: 1px solid rgba($opblock-tag-border-bottom-color, .3);\n\n &:hover\n {\n background: rgba($opblock-tag-background-color-hover,.02);\n }\n}\n\n@mixin method($color)\n{\n border-color: $color;\n background: rgba($color, .1);\n\n .opblock-summary-method\n {\n background: $color;\n }\n\n .opblock-summary\n {\n border-color: $color;\n }\n\n .tab-header .tab-item.active h4 span:after\n {\n background: $color;\n }\n}\n\n\n\n\n.opblock-tag\n{\n font-size: 24px;\n\n margin: 0 0 5px 0;\n\n @include text_headline();\n\n &.no-desc\n {\n span\n {\n flex: 1;\n }\n }\n\n svg\n {\n transition: all .4s;\n }\n\n small\n {\n font-size: 14px;\n font-weight: normal;\n\n flex: 1;\n\n padding: 0 10px;\n\n @include text_body();\n }\n}\n\n.parameter__type\n{\n font-size: 12px;\n\n padding: 5px 0;\n\n @include text_code();\n}\n\n.parameter-controls {\n margin-top: 0.75em;\n}\n\n.examples {\n &__title {\n display: block;\n font-size: 1.1em;\n font-weight: bold;\n margin-bottom: 0.75em;\n }\n\n &__section {\n margin-top: 1.5em;\n }\n &__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n // color: #555;\n }\n}\n\n.examples-select {\n margin-bottom: .75em;\n\n &__section-label {\n font-weight: bold;\n font-size: .9rem;\n margin-right: .5rem;\n }\n}\n\n.example {\n &__section {\n margin-top: 1.5em;\n }\n &__section-header {\n font-weight: bold;\n font-size: .9rem;\n margin-bottom: .5rem;\n // color: #555;\n }\n}\n\n.view-line-link\n{\n position: relative;\n top: 3px;\n\n width: 20px;\n margin: 0 5px;\n\n cursor: pointer;\n transition: all .5s;\n}\n\n\n\n.opblock\n{\n margin: 0 0 15px 0;\n\n border: 1px solid $opblock-border-color;\n border-radius: 4px;\n box-shadow: 0 0 3px rgba($opblock-box-shadow-color,.19);\n\n .tab-header\n {\n display: flex;\n\n flex: 1;\n\n .tab-item\n {\n padding: 0 40px;\n\n cursor: pointer;\n\n &:first-of-type\n {\n padding: 0 40px 0 0;\n }\n &.active\n {\n h4\n {\n span\n {\n position: relative;\n\n\n &:after\n {\n position: absolute;\n bottom: -15px;\n left: 50%;\n\n width: 120%;\n height: 4px;\n\n content: '';\n transform: translateX(-50%);\n\n background: $opblock-tab-header-tab-item-active-h4-span-after-background-color;\n }\n }\n }\n }\n }\n }\n\n\n &.is-open\n {\n .opblock-summary\n {\n border-bottom: 1px solid $opblock-isopen-summary-border-bottom-color;\n }\n }\n\n .opblock-section-header\n {\n display: flex;\n align-items: center;\n\n padding: 8px 20px;\n\n min-height: 50px;\n\n background: rgba($opblock-isopen-section-header-background-color,.8);\n box-shadow: 0 1px 2px rgba($opblock-isopen-section-header-box-shadow-color,.1);\n\n >label\n {\n font-size: 12px;\n font-weight: bold;\n\n display: flex;\n align-items: center;\n\n margin: 0;\n margin-left: auto;\n\n @include text_headline();\n\n >span\n {\n padding: 0 10px 0 0;\n }\n }\n\n h4\n {\n font-size: 14px;\n\n flex: 1;\n\n margin: 0;\n\n @include text_headline();\n }\n }\n\n .opblock-summary-method\n {\n font-size: 14px;\n font-weight: bold;\n\n min-width: 80px;\n padding: 6px 15px;\n\n text-align: center;\n\n border-radius: 3px;\n background: $opblock-summary-method-background-color;\n text-shadow: 0 1px 0 rgba($opblock-summary-method-text-shadow-color,.1);\n\n @include text_headline($opblock-summary-method-font-color);\n }\n\n .opblock-summary-path,\n .opblock-summary-operation-id,\n .opblock-summary-path__deprecated\n {\n font-size: 16px;\n @media (max-width: 768px) {\n font-size: 12px;\n }\n\n\n display: flex;\n align-items: center;\n\n word-break: break-word;\n\n padding: 0 10px;\n\n @include text_code();\n\n }\n\n .opblock-summary-path__deprecated\n {\n text-decoration: line-through;\n }\n\n .opblock-summary-operation-id\n {\n font-size: 14px;\n }\n\n .opblock-summary-description\n {\n font-size: 13px;\n\n flex: 1 1 auto;\n\n word-break: break-word;\n\n @include text_body();\n }\n\n .opblock-summary\n {\n display: flex;\n align-items: center;\n\n padding: 5px;\n\n cursor: pointer;\n\n .view-line-link\n {\n position: relative;\n top: 2px;\n\n width: 0;\n margin: 0;\n\n cursor: pointer;\n transition: all .5s;\n }\n\n &:hover\n {\n .view-line-link\n {\n width: 18px;\n margin: 0 5px;\n }\n }\n }\n\n\n\n &.opblock-post\n {\n @include method($_color-post);\n }\n\n &.opblock-put\n {\n @include method($_color-put);\n }\n\n &.opblock-delete\n {\n @include method($_color-delete);\n }\n\n &.opblock-get\n {\n @include method($_color-get);\n }\n\n &.opblock-patch\n {\n @include method($_color-patch);\n }\n\n &.opblock-head\n {\n @include method($_color-head);\n }\n\n &.opblock-options\n {\n @include method($_color-options);\n }\n\n &.opblock-deprecated\n {\n opacity: .6;\n\n @include method($_color-disabled);\n }\n\n .opblock-schemes\n {\n padding: 8px 20px;\n\n .schemes-title\n {\n padding: 0 10px 0 0;\n }\n }\n}\n\n.filter\n{\n .operation-filter-input\n {\n width: 100%;\n margin: 20px 0;\n padding: 10px 10px;\n\n border: 2px solid $operational-filter-input-border-color;\n }\n}\n\n.model-example {\n margin-top: 1em;\n}\n\n.tab\n{\n display: flex;\n\n padding: 0;\n\n list-style: none;\n\n li\n {\n font-size: 12px;\n\n min-width: 60px;\n padding: 0;\n\n cursor: pointer;\n\n @include text_headline();\n\n &:first-of-type\n {\n position: relative;\n\n padding-left: 0;\n padding-right: 12px;\n\n &:after\n {\n position: absolute;\n top: 0;\n right: 6px;\n\n width: 1px;\n height: 100%;\n\n content: '';\n\n background: rgba($tab-list-item-first-background-color,.2);\n }\n }\n\n &.active\n {\n font-weight: bold;\n }\n }\n}\n\n.opblock-description-wrapper,\n.opblock-external-docs-wrapper,\n.opblock-title_normal\n{\n font-size: 12px;\n\n margin: 0 0 5px 0;\n padding: 15px 20px;\n\n @include text_body();\n\n h4\n {\n font-size: 12px;\n\n margin: 0 0 5px 0;\n\n @include text_body();\n }\n\n p\n {\n font-size: 14px;\n\n margin: 0;\n\n @include text_body();\n }\n}\n\n.opblock-external-docs-wrapper {\n h4 {\n padding-left: 0px;\n }\n}\n\n.execute-wrapper\n{\n padding: 20px;\n\n text-align: right;\n\n .btn\n {\n width: 100%;\n padding: 8px 40px;\n }\n}\n\n.body-param-options\n{\n display: flex;\n flex-direction: column;\n\n .body-param-edit\n {\n padding: 10px 0;\n }\n\n label\n {\n padding: 8px 0;\n select\n {\n margin: 3px 0 0 0;\n }\n }\n}\n\n.responses-inner\n{\n padding: 20px;\n\n h5,\n h4\n {\n font-size: 12px;\n\n margin: 10px 0 5px 0;\n\n @include text_body();\n }\n}\n\n.response-col_status\n{\n font-size: 14px;\n\n @include text_body();\n\n .response-undocumented\n {\n font-size: 11px;\n\n @include text_code($response-col-status-undocumented-font-color);\n }\n}\n\n.response-col_links\n{\n padding-left: 2em;\n max-width: 40em;\n font-size: 14px;\n\n @include text_body();\n\n .response-undocumented\n {\n font-size: 11px;\n\n @include text_code($response-col-links-font-color);\n }\n}\n\n.opblock-body\n{\n .opblock-loading-animation\n {\n display: block;\n margin: 3em;\n margin-left: auto;\n margin-right: auto;\n }\n}\n\n.opblock-body pre.microlight\n{\n font-size: 12px;\n\n margin: 0;\n padding: 10px;\n\n white-space: pre-wrap;\n word-wrap: break-word;\n word-break: break-all;\n word-break: break-word;\n hyphens: auto;\n\n border-radius: 4px;\n background: $opblock-body-background-color;\n\n overflow-wrap: break-word;\n @include text_code($opblock-body-font-color);\n span\n {\n color: $opblock-body-font-color !important;\n }\n\n .headerline\n {\n display: block;\n }\n}\n\n.highlight-code {\n position: relative;\n\n > .microlight {\n overflow-y: auto;\n max-height: 400px;\n min-height: 6em;\n }\n}\n\n.download-contents {\n position: absolute;\n bottom: 10px;\n right: 10px;\n cursor: pointer;\n background: #7d8293;\n text-align: center;\n padding: 5px;\n border-radius: 4px;\n font-family: sans-serif;\n font-weight: 600;\n color: white;\n font-size: 14px;\n height: 30px;\n width: 75px;\n}\n\n.scheme-container\n{\n margin: 0 0 20px 0;\n padding: 30px 0;\n\n background: $scheme-container-background-color;\n box-shadow: 0 1px 2px 0 rgba($scheme-container-box-shadow-color,.15);\n\n .schemes\n {\n display: flex;\n align-items: flex-end;\n\n > label\n {\n font-size: 12px;\n font-weight: bold;\n\n display: flex;\n flex-direction: column;\n\n margin: -20px 15px 0 0;\n\n @include text_headline();\n\n select\n {\n min-width: 130px;\n\n text-transform: uppercase;\n }\n }\n }\n}\n\n.loading-container\n{\n padding: 40px 0 60px;\n margin-top: 1em;\n min-height: 1px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n .loading\n {\n position: relative;\n\n\n &:after\n {\n font-size: 10px;\n font-weight: bold;\n\n position: absolute;\n top: 50%;\n left: 50%;\n\n content: 'loading';\n transform: translate(-50%,-50%);\n text-transform: uppercase;\n\n @include text_headline();\n }\n\n &:before\n {\n position: absolute;\n top: 50%;\n left: 50%;\n\n display: block;\n\n width: 60px;\n height: 60px;\n margin: -30px -30px;\n\n content: '';\n animation: rotation 1s infinite linear, opacity .5s;\n\n opacity: 1;\n border: 2px solid rgba($loading-container-before-border-color, .1);\n border-top-color: rgba($loading-container-before-border-top-color, .6);\n border-radius: 100%;\n\n backface-visibility: hidden;\n\n @keyframes rotation\n {\n to\n {\n transform: rotate(360deg);\n }\n }\n }\n }\n}\n\n.response-controls {\n padding-top: 1em;\n display: flex;\n}\n\n.response-control-media-type {\n margin-right: 1em;\n\n &--accept-controller {\n select {\n border-color: $response-content-type-controls-accept-header-select-border-color;\n }\n }\n\n &__accept-message {\n color: $response-content-type-controls-accept-header-small-font-color;\n font-size: .7em;\n }\n\n &__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n }\n}\n\n.response-control-examples {\n &__title {\n display: block;\n margin-bottom: 0.2em;\n font-size: .7em;\n }\n}\n\n@keyframes blinker\n{\n 50%\n {\n opacity: 0;\n }\n}\n\n\nsection\n{\n h3\n {\n @include text_headline();\n }\n}\n\na.nostyle {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n display: inline;\n\n &:visited {\n text-decoration: inherit;\n color: inherit;\n cursor: pointer;\n }\n}\n\n.version-pragma {\n height: 100%;\n padding: 5em 0px;\n\n &__message {\n display: flex;\n justify-content: center;\n height: 100%;\n font-size: 1.2em;\n text-align: center;\n line-height: 1.5em;\n\n padding: 0px .6em;\n\n > div {\n max-width: 55ch;\n flex: 1;\n }\n\n code {\n background-color: #dedede;\n padding: 4px 4px 2px;\n white-space: pre;\n }\n }\n}\n"," // Base Colours\n$black: #000;\n$white: #fff;\n$gray-50: lighten($black, 92%); //ebebeb\n$gray-200: lighten($black, 62.75%); // #a0a0a0\n$gray-300: lighten($black, 56.5%); // #909090\n$gray-400: lighten($black, 50%); // #808080\n$gray-500: lighten($black, 43.75%); // #707070\n$gray-600: lighten($black, 37.5%); // #606060\n$gray-650: lighten($black, 33.3%); // #555555\n$gray-700: lighten($black, 31.25%); // #505050\n$gray-800: lighten($black, 25%); // #404040\n$gray-900: lighten($black, 18.75%); // #303030\n\n$cod-gray: #1b1b1b;\n$bright-gray: #3b4151;\n$mako-gray: #41444e;\n$waterloo-gray: #7d8492;\n$alto-gray: #d9d9d9;\n$mercury-gray: #e4e4e4;\n$concrete-gray: #e8e8e8;\n$alabaster: #f7f7f7;\n$apple-green: #62a03f;\n$green-haze: #009d77;\n$japanese-laurel: #008000;\n$persian-green: #00a0a7;\n$geyser-blue: #d8dde7;\n$dodger-blue: #1391ff;\n$endeavour-blue: #005dae;\n$scampi-purple: #55a;\n$electric-violet: #7300e5;\n$persian-red: #cf3030;\n$mango-tango: #e97500;\n\n// Theme\n\n$color-primary: #89bf04 !default;\n$color-secondary: #9012fe !default;\n$color-info: #4990e2 !default;\n$color-warning: #ff6060 !default;\n$color-danger: #f00 !default;\n\n$color-primary-hover: lighten($color-primary, .5%) !default;\n\n$_color-post: #49cc90 !default;\n$_color-get: #61affe !default;\n$_color-put: #fca130 !default;\n$_color-delete: #f93e3e !default;\n$_color-head: #9012fe !default;\n$_color-patch: #50e3c2 !default;\n$_color-disabled: #ebebeb !default;\n$_color-options: #0d5aa7 !default;\n\n// Authorize\n\n$auth-container-border-color: $gray-50 !default;\n\n// Buttons\n\n$btn-background-color: transparent !default;\n$btn-border-color: $gray-400 !default;\n$btn-font-color: inherit !default;\n$btn-box-shadow-color: $black !default;\n\n$btn-authorize-background-color: transparent !default;\n$btn-authorize-border-color: $_color-post !default;\n$btn-authorize-font-color: $_color-post !default;\n$btn-authorize-svg-fill-color: $_color-post !default;\n\n$btn-cancel-background-color: transparent !default;\n$btn-cancel-border-color: $color-warning !default;\n$btn-cancel-font-color: $color-warning !default;\n\n$btn-execute-background-color: transparent !default;\n$btn-execute-border-color: $color-info !default;\n$btn-execute-font-color: $white !default;\n$btn-execute-background-color-alt: $color-info !default;\n\n$expand-methods-svg-fill-color: $gray-500 !default;\n$expand-methods-svg-fill-color-hover: $gray-800 !default;\n\n// Errors\n\n$errors-wrapper-background-color: $_color-delete !default;\n$errors-wrapper-border-color: $_color-delete !default;\n\n$errors-wrapper-errors-small-font-color: $gray-600 !default;\n\n// Form\n\n$form-select-background-color: $alabaster !default;\n$form-select-border-color: $mako-gray !default;\n$form-select-box-shadow-color: $black !default;\n\n$form-input-border-color: $alto-gray !default;\n$form-input-background-color: $white !default;\n\n$form-textarea-background-color: $white !default;\n$form-textarea-focus-border-color: $_color-get !default;\n\n$form-textarea-curl-background-color: $mako-gray !default;\n$form-textarea-curl-font-color: $white !default;\n\n$form-checkbox-label-font-color: $gray-900 !default;\n$form-checkbox-background-color: $concrete-gray !default;\n$form-checkbox-box-shadow-color: $concrete-gray !default;\n\n// Information\n\n$info-code-background-color: $black !default;\n$info-code-font-color: $_color-head !default;\n\n$info-link-font-color: $color-info !default;\n$info-link-font-color-hover: $info-link-font-color !default;\n\n$info-title-small-background-color: $waterloo-gray !default;\n\n$info-title-small-pre-font-color: $white !default;\n\n// Layout\n\n$opblock-border-color: $black !default;\n$opblock-box-shadow-color: $black !default;\n\n$opblock-tag-border-bottom-color: $bright-gray !default;\n$opblock-tag-background-color-hover: $black !default;\n\n$opblock-tab-header-tab-item-active-h4-span-after-background-color: $gray-400 !default;\n\n$opblock-isopen-summary-border-bottom-color: $black !default;\n\n$opblock-isopen-section-header-background-color: $white !default;\n$opblock-isopen-section-header-box-shadow-color: $black !default;\n\n$opblock-summary-method-background-color: $black !default;\n$opblock-summary-method-font-color: $white !default;\n$opblock-summary-method-text-shadow-color: $black !default;\n\n$operational-filter-input-border-color: $geyser-blue !default;\n\n$tab-list-item-first-background-color: $black !default;\n\n$response-col-status-undocumented-font-color: $gray-300 !default;\n\n$response-col-links-font-color: $gray-300 !default;\n\n$opblock-body-background-color: $mako-gray !default;\n$opblock-body-font-color: $white !default;\n\n$scheme-container-background-color: $white !default;\n$scheme-container-box-shadow-color: $black !default;\n\n$server-container-background-color: $white !default;\n$server-container-box-shadow-color: $black !default;\n\n$server-container-computed-url-code-font-color: $gray-400 !default;\n\n$loading-container-before-border-color: $gray-650 !default;\n$loading-container-before-border-top-color: $black !default;\n\n$response-content-type-controls-accept-header-select-border-color: $japanese-laurel !default;\n$response-content-type-controls-accept-header-small-font-color: $japanese-laurel !default;\n\n// Modal\n\n$dialog-ux-backdrop-background-color: $black !default;\n\n\n$dialog-ux-modal-background-color: $white !default;\n$dialog-ux-modal-border-color: $gray-50 !default;\n$dialog-ux-modal-box-shadow-color: $black !default;\n\n$dialog-ux-modal-content-font-color: $mako-gray !default;\n\n$dialog-ux-modal-header-border-bottom-color: $gray-50 !default;\n\n// Models\n\n$model-deprecated-font-color: $gray-200 !default;\n\n$model-hint-font-color: $gray-50 !default;\n$model-hint-background-color: $black !default;\n\n$section-models-border-color: $bright-gray !default;\n\n$section-models-isopen-h4-border-bottom-color: $section-models-border-color !default;\n\n$section-models-h4-font-color: $gray-600 !default;\n$section-models-h4-background-color-hover: $black !default;\n\n$section-models-h5-font-color: $gray-500 !default;\n\n$section-models-model-container-background-color: $black !default;\n\n$section-models-model-box-background-color: $black !default;\n\n$section-models-model-title-font-color: $gray-700 !default;\n\n$prop-type-font-color: $scampi-purple !default;\n\n$prop-format-font-color: $gray-600 !default;\n\n// Tables\n\n$table-thead-td-border-bottom-color: $bright-gray !default;\n\n$table-parameter-name-required-font-color: $color-danger !default;\n\n$table-parameter-in-font-color: $gray-400 !default;\n\n$table-parameter-deprecated-font-color: $color-danger !default;\n\n// Topbar\n\n$topbar-background-color: $cod-gray !default;\n\n$topbar-link-font-color: $white !default;\n\n$topbar-download-url-wrapper-element-border-color: $apple-green !default;\n\n$topbar-download-url-button-background-color: $apple-green !default;\n$topbar-download-url-button-font-color: $white !default;\n\n// Type\n\n$text-body-default-font-color: $bright-gray !default;\n$text-code-default-font-color: $bright-gray !default;\n$text-headline-default-font-color: $bright-gray !default;\n",".btn\n{\n font-size: 14px;\n font-weight: bold;\n\n padding: 5px 23px;\n\n transition: all .3s;\n\n border: 2px solid $btn-border-color;\n border-radius: 4px;\n background: transparent;\n box-shadow: 0 1px 2px rgba($btn-box-shadow-color,.1);\n\n @include text_headline();\n\n &.btn-sm\n {\n font-size: 12px;\n padding: 4px 23px;\n }\n\n &[disabled]\n {\n cursor: not-allowed;\n\n opacity: .3;\n }\n\n &:hover\n {\n box-shadow: 0 0 5px rgba($btn-box-shadow-color,.3);\n }\n\n &.cancel\n {\n border-color: $btn-cancel-border-color;\n background-color: $btn-cancel-background-color;\n @include text_headline($btn-cancel-font-color);\n }\n\n &.authorize\n {\n line-height: 1;\n\n display: inline;\n\n color: $btn-authorize-font-color;\n border-color: $btn-authorize-border-color;\n background-color: $btn-authorize-background-color;\n\n span\n {\n float: left;\n\n padding: 4px 20px 0 0;\n }\n\n svg\n {\n fill: $btn-authorize-svg-fill-color;\n }\n }\n\n &.execute\n {\n background-color: $btn-execute-background-color-alt;\n color: $btn-execute-font-color;\n border-color: $btn-execute-border-color;\n }\n}\n\n.btn-group\n{\n display: flex;\n\n padding: 30px;\n\n .btn\n {\n flex: 1;\n\n &:first-child\n {\n border-radius: 4px 0 0 4px;\n }\n\n &:last-child\n {\n border-radius: 0 4px 4px 0;\n }\n }\n}\n\n.authorization__btn\n{\n padding: 0 10px;\n\n border: none;\n background: none;\n\n &.locked\n {\n opacity: 1;\n }\n\n &.unlocked\n {\n opacity: .4;\n }\n}\n\n.expand-methods,\n.expand-operation\n{\n border: none;\n background: none;\n\n svg\n {\n width: 20px;\n height: 20px;\n }\n}\n\n.expand-methods\n{\n padding: 0 10px;\n\n &:hover\n {\n svg\n {\n fill: $expand-methods-svg-fill-color-hover;\n }\n }\n\n svg\n {\n transition: all .3s;\n\n fill: $expand-methods-svg-fill-color;\n }\n}\n\n\nbutton\n{\n cursor: pointer;\n outline: none;\n\n &.invalid\n {\n @include invalidFormElement();\n }\n}\n","// - - - - - - - - - - - - - - - - - - -\n// - - _mixins.scss module\n// styles for the _mixins.scss module\n@function calculateRem($size)\n{\n $remSize: $size / 16px;\n @return $remSize * 1rem;\n}\n\n@mixin font-size($size)\n{\n font-size: $size;\n font-size: calculateRem($size);\n}\n\n%clearfix\n{\n *zoom: 1;\n &:before,\n &:after\n {\n display: table;\n\n content: ' ';\n }\n &:after\n {\n clear: both;\n }\n}\n\n@mixin size($width, $height: $width)\n{\n width: $width;\n height: $height;\n}\n\n$ease: (\n in-quad: cubic-bezier(.550, .085, .680, .530),\n in-cubic: cubic-bezier(.550, .055, .675, .190),\n in-quart: cubic-bezier(.895, .030, .685, .220),\n in-quint: cubic-bezier(.755, .050, .855, .060),\n in-sine: cubic-bezier(.470, .000, .745, .715),\n in-expo: cubic-bezier(.950, .050, .795, .035),\n in-circ: cubic-bezier(.600, .040, .980, .335),\n in-back: cubic-bezier(.600, -.280, .735, .045),\n out-quad: cubic-bezier(.250, .460, .450, .940),\n out-cubic: cubic-bezier(.215, .610, .355, 1.000),\n out-quart: cubic-bezier(.165, .840, .440, 1.000),\n out-quint: cubic-bezier(.230, 1.000, .320, 1.000),\n out-sine: cubic-bezier(.390, .575, .565, 1.000),\n out-expo: cubic-bezier(.190, 1.000, .220, 1.000),\n out-circ: cubic-bezier(.075, .820, .165, 1.000),\n out-back: cubic-bezier(.175, .885, .320, 1.275),\n in-out-quad: cubic-bezier(.455, .030, .515, .955),\n in-out-cubic: cubic-bezier(.645, .045, .355, 1.000),\n in-out-quart: cubic-bezier(.770, .000, .175, 1.000),\n in-out-quint: cubic-bezier(.860, .000, .070, 1.000),\n in-out-sine: cubic-bezier(.445, .050, .550, .950),\n in-out-expo: cubic-bezier(1.000, .000, .000, 1.000),\n in-out-circ: cubic-bezier(.785, .135, .150, .860),\n in-out-back: cubic-bezier(.680, -.550, .265, 1.550)\n);\n\n@function ease($key)\n{\n @if map-has-key($ease, $key)\n {\n @return map-get($ease, $key);\n }\n\n @warn 'Unkown \\'#{$key}\\' in $ease.';\n @return null;\n}\n\n\n@mixin ease($key)\n{\n transition-timing-function: ease($key);\n}\n\n@mixin text-truncate\n{\n overflow: hidden;\n\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\n@mixin aspect-ratio($width, $height)\n{\n position: relative;\n &:before\n {\n display: block;\n\n width: 100%;\n padding-top: ($height / $width) * 100%;\n\n content: '';\n }\n > iframe\n {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n }\n}\n\n$browser-context: 16;\n\n@function em($pixels, $context: $browser-context)\n{\n @if (unitless($pixels))\n {\n $pixels: $pixels * 1px;\n }\n\n @if (unitless($context))\n {\n $context: $context * 1px;\n }\n\n @return $pixels / $context * 1em;\n}\n\n@mixin maxHeight($height)\n{\n @media (max-height: $height)\n {\n @content;\n }\n}\n\n\n@mixin breakpoint($class)\n{\n @if $class == tablet\n {\n @media (min-width: 768px) and (max-width: 1024px)\n {\n @content;\n }\n }\n\n @else if $class == mobile\n {\n @media (min-width: 320px) and (max-width : 736px)\n {\n @content;\n }\n }\n\n @else if $class == desktop\n {\n @media (min-width: 1400px)\n {\n @content;\n }\n }\n\n @else\n {\n @warn 'Breakpoint mixin supports: tablet, mobile, desktop';\n }\n}\n\n@mixin invalidFormElement() {\n animation: shake .4s 1;\n border-color: $_color-delete;\n background: lighten($_color-delete, 35%);\n}\n","select\n{\n font-size: 14px;\n font-weight: bold;\n\n padding: 5px 40px 5px 10px;\n\n border: 2px solid $form-select-border-color;\n border-radius: 4px;\n background: $form-select-background-color url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMCAyMCI+ICAgIDxwYXRoIGQ9Ik0xMy40MTggNy44NTljLjI3MS0uMjY4LjcwOS0uMjY4Ljk3OCAwIC4yNy4yNjguMjcyLjcwMSAwIC45NjlsLTMuOTA4IDMuODNjLS4yNy4yNjgtLjcwNy4yNjgtLjk3OSAwbC0zLjkwOC0zLjgzYy0uMjctLjI2Ny0uMjctLjcwMSAwLS45NjkuMjcxLS4yNjguNzA5LS4yNjguOTc4IDBMMTAgMTFsMy40MTgtMy4xNDF6Ii8+PC9zdmc+) right 10px center no-repeat;\n background-size: 20px;\n box-shadow: 0 1px 2px 0 rgba($form-select-box-shadow-color, .25);\n\n @include text_headline();\n appearance: none;\n\n &[multiple]\n {\n margin: 5px 0;\n padding: 5px;\n\n background: $form-select-background-color;\n }\n\n &.invalid {\n @include invalidFormElement();\n }\n}\n\n.opblock-body select\n{\n min-width: 230px;\n @media (max-width: 768px)\n {\n min-width: 180px;\n }\n}\n\nlabel\n{\n font-size: 12px;\n font-weight: bold;\n\n margin: 0 0 5px 0;\n\n @include text_headline();\n}\n\n\ninput[type=text],\ninput[type=password],\ninput[type=search],\ninput[type=email],\ninput[type=file],\ntextarea\n{\n min-width: 100px;\n margin: 5px 0;\n padding: 8px 10px;\n\n border: 1px solid $form-input-border-color;\n border-radius: 4px;\n background: $form-input-background-color;\n @media (max-width: 768px) {\n max-width: 175px;\n }\n\n\n &.invalid\n {\n @include invalidFormElement();\n }\n\n}\n\ninput,\ntextarea,\nselect {\n &[disabled] {\n // opacity: 0.85;\n background-color: #fafafa;\n color: #888;\n cursor: not-allowed;\n }\n}\n\nselect[disabled] {\n border-color: #888;\n}\n\ntextarea[disabled] {\n background-color: #41444e;\n color: #fff;\n}\n\n@keyframes shake\n{\n 10%,\n 90%\n {\n transform: translate3d(-1px, 0, 0);\n }\n\n 20%,\n 80%\n {\n transform: translate3d(2px, 0, 0);\n }\n\n 30%,\n 50%,\n 70%\n {\n transform: translate3d(-4px, 0, 0);\n }\n\n 40%,\n 60%\n {\n transform: translate3d(4px, 0, 0);\n }\n}\n\ntextarea\n{\n font-size: 12px;\n\n width: 100%;\n min-height: 280px;\n padding: 10px;\n\n border: none;\n border-radius: 4px;\n outline: none;\n background: rgba($form-textarea-background-color,.8);\n\n @include text_code();\n\n &:focus\n {\n border: 2px solid $form-textarea-focus-border-color;\n }\n\n &.curl\n {\n font-size: 12px;\n\n min-height: 100px;\n margin: 0;\n padding: 10px;\n\n resize: none;\n\n border-radius: 4px;\n background: $form-textarea-curl-background-color;\n\n @include text_code($form-textarea-curl-font-color);\n }\n}\n\n\n.checkbox\n{\n padding: 5px 0 10px;\n\n transition: opacity .5s;\n\n color: $form-checkbox-label-font-color;\n\n label\n {\n display: flex;\n }\n\n p\n {\n font-weight: normal !important;\n font-style: italic;\n\n margin: 0 !important;\n\n @include text_code();\n }\n\n input[type=checkbox]\n {\n display: none;\n\n & + label > .item\n {\n position: relative;\n top: 3px;\n\n display: inline-block;\n\n width: 16px;\n height: 16px;\n margin: 0 8px 0 0;\n padding: 5px;\n\n cursor: pointer;\n\n border-radius: 1px;\n background: $form-checkbox-background-color;\n box-shadow: 0 0 0 2px $form-checkbox-box-shadow-color;\n\n flex: none;\n\n &:active\n {\n transform: scale(.9);\n }\n }\n\n &:checked + label > .item\n {\n background: $form-checkbox-background-color url(data:image/svg+xml,%0A%3Csvg%20width%3D%2210px%22%20height%3D%228px%22%20viewBox%3D%223%207%2010%208%22%20version%3D%221.1%22%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20xmlns%3Axlink%3D%22http%3A//www.w3.org/1999/xlink%22%3E%0A%20%20%20%20%3C%21--%20Generator%3A%20Sketch%2042%20%2836781%29%20-%20http%3A//www.bohemiancoding.com/sketch%20--%3E%0A%20%20%20%20%3Cdesc%3ECreated%20with%20Sketch.%3C/desc%3E%0A%20%20%20%20%3Cdefs%3E%3C/defs%3E%0A%20%20%20%20%3Cpolygon%20id%3D%22Rectangle-34%22%20stroke%3D%22none%22%20fill%3D%22%2341474E%22%20fill-rule%3D%22evenodd%22%20points%3D%226.33333333%2015%203%2011.6666667%204.33333333%2010.3333333%206.33333333%2012.3333333%2011.6666667%207%2013%208.33333333%22%3E%3C/polygon%3E%0A%3C/svg%3E) center center no-repeat;\n }\n }\n}\n",".dialog-ux\n{\n position: fixed;\n z-index: 9999;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n .backdrop-ux\n {\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n\n background: rgba($dialog-ux-backdrop-background-color,.8);\n }\n\n .modal-ux\n {\n position: absolute;\n z-index: 9999;\n top: 50%;\n left: 50%;\n\n width: 100%;\n min-width: 300px;\n max-width: 650px;\n\n transform: translate(-50%,-50%);\n\n border: 1px solid $dialog-ux-modal-border-color;\n border-radius: 4px;\n background: $dialog-ux-modal-background-color;\n box-shadow: 0 10px 30px 0 rgba($dialog-ux-modal-box-shadow-color,.20);\n }\n\n .modal-ux-content\n {\n overflow-y: auto;\n\n max-height: 540px;\n padding: 20px;\n\n p\n {\n font-size: 12px;\n\n margin: 0 0 5px 0;\n\n color: $dialog-ux-modal-content-font-color;\n\n @include text_body();\n }\n\n h4\n {\n font-size: 18px;\n font-weight: 600;\n\n margin: 15px 0 0 0;\n\n @include text_headline();\n }\n }\n\n .modal-ux-header\n {\n display: flex;\n\n padding: 12px 0;\n\n border-bottom: 1px solid $dialog-ux-modal-header-border-bottom-color;\n\n align-items: center;\n\n .close-modal\n {\n padding: 0 10px;\n\n border: none;\n background: none;\n\n appearance: none;\n }\n\n\n h3\n {\n font-size: 20px;\n font-weight: 600;\n\n margin: 0;\n padding: 0 20px;\n\n flex: 1;\n @include text_headline();\n }\n }\n}\n",".model\n{\n font-size: 12px;\n font-weight: 300;\n\n @include text_code();\n\n .deprecated\n {\n span,\n td\n {\n color: $model-deprecated-font-color !important;\n }\n\n > td:first-of-type {\n text-decoration: line-through;\n }\n }\n &-toggle\n {\n font-size: 10px;\n\n position: relative;\n top: 6px;\n\n display: inline-block;\n\n margin: auto .3em;\n\n cursor: pointer;\n transition: transform .15s ease-in;\n transform: rotate(90deg);\n transform-origin: 50% 50%;\n\n &.collapsed\n {\n transform: rotate(0deg);\n }\n\n &:after\n {\n display: block;\n\n width: 20px;\n height: 20px;\n\n content: '';\n\n background: url(data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A//www.w3.org/2000/svg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%3E%0A%20%20%20%20%3Cpath%20d%3D%22M10%206L8.59%207.41%2013.17%2012l-4.58%204.59L10%2018l6-6z%22/%3E%0A%3C/svg%3E%0A) center center no-repeat;\n background-size: 100%;\n }\n }\n\n &-jump-to-path\n {\n position: relative;\n\n cursor: pointer;\n\n .view-line-link\n {\n position: absolute;\n top: -.4em;\n\n cursor: pointer;\n }\n }\n\n &-title\n {\n position: relative;\n\n &:hover .model-hint\n {\n visibility: visible;\n }\n }\n\n &-hint\n {\n position: absolute;\n top: -1.8em;\n\n visibility: hidden;\n\n padding: .1em .5em;\n\n white-space: nowrap;\n\n color: $model-hint-font-color;\n border-radius: 4px;\n background: rgba($model-hint-background-color,.7);\n }\n\n p\n {\n margin: 0 0 1em 0;\n }\n}\n\n\nsection.models\n{\n margin: 30px 0;\n\n border: 1px solid rgba($section-models-border-color, .3);\n border-radius: 4px;\n\n &.is-open\n {\n padding: 0 0 20px;\n h4\n {\n margin: 0 0 5px 0;\n\n border-bottom: 1px solid rgba($section-models-isopen-h4-border-bottom-color, .3);\n }\n }\n h4\n {\n font-size: 16px;\n\n display: flex;\n align-items: center;\n\n margin: 0;\n padding: 10px 20px 10px 10px;\n\n cursor: pointer;\n transition: all .2s;\n\n @include text_headline($section-models-h4-font-color);\n\n svg\n {\n transition: all .4s;\n }\n\n span\n {\n flex: 1;\n }\n\n &:hover\n {\n background: rgba($section-models-h4-background-color-hover,.02);\n }\n }\n\n h5\n {\n font-size: 16px;\n\n margin: 0 0 10px 0;\n\n @include text_headline($section-models-h5-font-color);\n }\n\n .model-jump-to-path\n {\n position: relative;\n top: 5px;\n }\n\n .model-container\n {\n margin: 0 20px 15px;\n position: relative;\n\n transition: all .5s;\n\n border-radius: 4px;\n background: rgba($section-models-model-container-background-color,.05);\n\n &:hover\n {\n background: rgba($section-models-model-container-background-color,.07);\n }\n\n &:first-of-type\n {\n margin: 20px;\n }\n\n &:last-of-type\n {\n margin: 0 20px;\n }\n\n .models-jump-to-path {\n position: absolute;\n top: 8px;\n right: 5px;\n opacity: 0.65;\n }\n }\n\n .model-box\n {\n background: none;\n }\n}\n\n\n.model-box\n{\n padding: 10px;\n display: inline-block;\n\n border-radius: 4px;\n background: rgba($section-models-model-box-background-color,.1);\n\n .model-jump-to-path\n {\n position: relative;\n top: 4px;\n }\n\n &.deprecated\n {\n opacity: .5;\n }\n}\n\n\n.model-title\n{\n font-size: 16px;\n\n @include text_headline($section-models-model-title-font-color);\n}\n\n.model-deprecated-warning\n{\n font-size: 16px;\n font-weight: 600;\n\n margin-right: 1em;\n\n @include text_headline($_color-delete);\n}\n\n\nspan\n{\n > span.model\n {\n .brace-close\n {\n padding: 0 0 0 10px;\n }\n }\n}\n\n.prop-name\n{\n display: inline-block;\n\n margin-right: 1em;\n}\n\n.prop-type\n{\n color: $prop-type-font-color;\n}\n\n.prop-enum\n{\n display: block;\n}\n.prop-format\n{\n color: $prop-format-font-color;\n}\n",".servers\n{\n > label\n {\n font-size: 12px;\n\n margin: -20px 15px 0 0;\n\n @include text_headline();\n\n select\n {\n min-width: 130px;\n max-width: 100%;\n }\n }\n\n h4.message {\n padding-bottom: 2em;\n }\n\n table {\n tr {\n width: 30em;\n }\n td {\n display: inline-block;\n max-width: 15em;\n vertical-align: middle;\n padding-top: 10px;\n padding-bottom: 10px;\n\n &:first-of-type {\n padding-right: 2em;\n }\n\n input {\n width: 100%;\n height: 100%;\n }\n }\n }\n\n .computed-url {\n margin: 2em 0;\n\n code {\n display: inline-block;\n padding: 4px;\n font-size: 16px;\n margin: 0 1em;\n }\n }\n}\n\n.servers-title {\n font-size: 12px;\n font-weight: bold;\n}\n\n.operation-servers {\n h4.message {\n margin-bottom: 2em;\n }\n}\n","table\n{\n width: 100%;\n padding: 0 10px;\n\n border-collapse: collapse;\n\n &.model\n {\n tbody\n {\n tr\n {\n td\n {\n padding: 0;\n\n vertical-align: top;\n\n &:first-of-type\n {\n width: 174px;\n padding: 0 0 0 2em;\n }\n }\n }\n }\n }\n\n &.headers\n {\n td\n {\n font-size: 12px;\n font-weight: 300;\n\n vertical-align: middle;\n\n @include text_code();\n }\n }\n\n tbody\n {\n tr\n {\n td\n {\n padding: 10px 0 0 0;\n\n vertical-align: top;\n\n &:first-of-type\n {\n max-width: 20%;\n min-width: 6em;\n padding: 10px 0;\n }\n }\n }\n }\n\n thead\n {\n tr\n {\n th,\n td\n {\n font-size: 12px;\n font-weight: bold;\n\n padding: 12px 0;\n\n text-align: left;\n\n border-bottom: 1px solid rgba($table-thead-td-border-bottom-color, .2);\n\n @include text_body();\n }\n }\n }\n}\n\n.parameters-col_description\n{\n width: 99%; // forces other columns to shrink to their content widths\n margin-bottom: 2em;\n input[type=text]\n {\n width: 100%;\n max-width: 340px;\n }\n\n select {\n border-width: 1px;\n }\n}\n\n.parameter__name\n{\n font-size: 16px;\n font-weight: normal;\n\n // hack to give breathing room to the name column\n // TODO: refactor all of this to flexbox\n margin-right: .75em;\n\n @include text_headline();\n\n &.required\n {\n font-weight: bold;\n\n &:after\n {\n font-size: 10px;\n\n position: relative;\n top: -6px;\n\n padding: 5px;\n\n content: 'required';\n\n color: rgba($table-parameter-name-required-font-color, .6);\n }\n }\n}\n\n.parameter__in,\n.parameter__extension\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-in-font-color);\n}\n\n.parameter__deprecated\n{\n font-size: 12px;\n font-style: italic;\n\n @include text_code($table-parameter-deprecated-font-color);\n}\n\n.parameter__empty_value_toggle {\n font-size: 13px;\n padding-top: 5px;\n padding-bottom: 12px;\n\n input {\n margin-right: 7px;\n }\n\n &.disabled {\n opacity: 0.7;\n }\n}\n\n\n.table-container\n{\n padding: 20px;\n}\n\n\n.response-col_description {\n width: 99%; // forces other columns to shrink to their content widths\n}\n\n.response-col_links {\n min-width: 6em;\n}\n",".topbar\n{\n padding: 10px 0;\n\n background-color: $topbar-background-color;\n .topbar-wrapper\n {\n display: flex;\n align-items: center;\n }\n a\n {\n font-size: 1.5em;\n font-weight: bold;\n\n display: flex;\n align-items: center;\n flex: 1;\n\n max-width: 300px;\n\n text-decoration: none;\n\n @include text_headline($topbar-link-font-color);\n\n span\n {\n margin: 0;\n padding: 0 10px;\n }\n }\n\n .download-url-wrapper\n {\n display: flex;\n flex: 3;\n justify-content: flex-end;\n\n input[type=text]\n {\n width: 100%;\n margin: 0;\n\n border: 2px solid $topbar-download-url-wrapper-element-border-color;\n border-radius: 4px 0 0 4px;\n outline: none;\n }\n\n .select-label\n {\n display: flex;\n align-items: center;\n\n width: 100%;\n max-width: 600px;\n margin: 0;\n color: #f0f0f0;\n span\n {\n font-size: 16px;\n\n flex: 1;\n\n padding: 0 10px 0 0;\n\n text-align: right;\n }\n\n select\n {\n flex: 2;\n\n width: 100%;\n\n border: 2px solid $topbar-download-url-wrapper-element-border-color;\n outline: none;\n box-shadow: none;\n }\n }\n\n\n .download-url-button\n {\n font-size: 16px;\n font-weight: bold;\n\n padding: 4px 30px;\n\n border: none;\n border-radius: 0 4px 4px 0;\n background: $topbar-download-url-button-background-color;\n\n @include text_headline($topbar-download-url-button-font-color);\n }\n }\n}\n",".info\n{\n margin: 50px 0;\n\n hgroup.main\n {\n margin: 0 0 20px 0;\n a\n {\n font-size: 12px;\n }\n }\n pre \n {\n font-size: 14px;\n }\n p, li, table\n {\n font-size: 14px;\n\n @include text_body();\n }\n\n h1, h2, h3, h4, h5\n {\n @include text_body();\n }\n\n a\n {\n font-size: 14px;\n\n transition: all .4s;\n\n @include text_body($info-link-font-color);\n\n &:hover\n {\n color: darken($info-link-font-color-hover, 15%);\n }\n }\n > div\n {\n margin: 0 0 5px 0;\n }\n\n .base-url\n {\n font-size: 12px;\n font-weight: 300 !important;\n\n margin: 0;\n\n @include text_code();\n }\n\n .title\n {\n font-size: 36px;\n\n margin: 0;\n\n @include text_body();\n\n small\n {\n font-size: 10px;\n\n position: relative;\n top: -5px;\n\n display: inline-block;\n\n margin: 0 0 0 5px;\n padding: 2px 4px;\n\n vertical-align: super;\n\n border-radius: 57px;\n background: $info-title-small-background-color;\n\n pre\n {\n margin: 0;\n padding: 0;\n\n @include text_headline($info-title-small-pre-font-color);\n }\n }\n }\n}\n",".auth-btn-wrapper\n{\n display: flex;\n\n padding: 10px 0;\n\n justify-content: center;\n\n .btn-done {\n margin-right: 1em;\n }\n}\n\n.auth-wrapper\n{\n display: flex;\n\n flex: 1;\n justify-content: flex-end;\n\n .authorize\n {\n padding-right: 20px;\n margin-right: 10px;\n }\n}\n\n.auth-container\n{\n margin: 0 0 10px 0;\n padding: 10px 20px;\n\n border-bottom: 1px solid $auth-container-border-color;\n\n &:last-of-type\n {\n margin: 0;\n padding: 10px 20px;\n\n border: 0;\n }\n\n h4\n {\n margin: 5px 0 15px 0 !important;\n }\n\n .wrapper\n {\n margin: 0;\n padding: 0;\n }\n\n input[type=text],\n input[type=password]\n {\n min-width: 230px;\n }\n\n .errors\n {\n font-size: 12px;\n\n padding: 10px;\n\n border-radius: 4px;\n\n @include text_code();\n }\n}\n\n.scopes\n{\n h2\n {\n font-size: 14px;\n\n @include text_headline();\n }\n}\n\n.scope-def\n{\n padding: 0 0 20px 0;\n}\n",".errors-wrapper\n{\n margin: 20px;\n padding: 10px 20px;\n\n animation: scaleUp .5s;\n\n border: 2px solid $_color-delete;\n border-radius: 4px;\n background: rgba($_color-delete, .1);\n\n .error-wrapper\n {\n margin: 0 0 10px 0;\n }\n\n .errors\n {\n h4\n {\n font-size: 14px;\n\n margin: 0;\n\n @include text_code();\n }\n\n small\n {\n color: $errors-wrapper-errors-small-font-color;\n }\n }\n\n hgroup\n {\n display: flex;\n\n align-items: center;\n\n h4\n {\n font-size: 20px;\n\n margin: 0;\n\n flex: 1;\n @include text_headline();\n }\n }\n}\n\n\n@keyframes scaleUp\n{\n 0%\n {\n transform: scale(.8);\n\n opacity: 0;\n }\n 100%\n {\n transform: scale(1);\n\n opacity: 1;\n }\n}\n",".Resizer.vertical.disabled {\n display: none;\n}",".markdown, .renderedMarkdown {\n p, pre {\n margin: 1em auto;\n }\n pre {\n color: black;\n font-weight: normal;\n white-space: pre-wrap;\n background: none;\n padding: 0px;\n }\n\n code {\n font-size: 14px;\n padding: 5px 7px;\n\n border-radius: 4px;\n background: rgba($info-code-background-color,.05);\n\n @include text_code($info-code-font-color);\n }\n\n pre > code {\n display: block;\n }\n}"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/swagger-ui.js b/dist/swagger-ui.js index 94c807481b2..f8034e55cb9 100644 --- a/dist/swagger-ui.js +++ b/dist/swagger-ui.js @@ -1,24753 +1,9 @@ -/** - * swagger-ui - Swagger UI is a dependency-free collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API - * @version v2.2.3 - * @link http://swagger.io - * @license Apache-2.0 - */ -(function(){/* jshint ignore:start */ - {(function() { - var template = Handlebars.template, templates = Handlebars.templates = Handlebars.templates || {}; -templates['apikey_auth'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1; - - return " " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.value : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n"; -},"3":function(container,depth0,helpers,partials,data) { - return " \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
\n

Api key authorization

\n
" - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "
\n
\n
\n name:\n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.name : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n
\n
\n in:\n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0["in"] : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n
\n
\n value:\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isLogout : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data})) != null ? stack1 : "") - + "
\n
\n
\n"; -},"useData":true}); -templates['auth_button'] = template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - return "Authorize\n"; -},"useData":true}); -templates['auth_button_operation'] = template({"1":function(container,depth0,helpers,partials,data) { - return " authorize__btn_operation_login\n"; -},"3":function(container,depth0,helpers,partials,data) { - return " authorize__btn_operation_logout\n"; -},"5":function(container,depth0,helpers,partials,data) { - var stack1; - - return "
    \n" - + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.scopes : depth0),{"name":"each","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
\n"; -},"6":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
  • " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.scope : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "
  • \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
    \n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.scopes : depth0),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
    \n"; -},"useData":true}); -templates['auth_view'] = template({"1":function(container,depth0,helpers,partials,data) { - return " \n"; -},"3":function(container,depth0,helpers,partials,data) { - return " \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
    \n\n
    \n
    \n" - + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isLogout : depth0),{"name":"unless","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isAuthorized : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
    \n\n
    \n"; -},"useData":true}); -templates['basic_auth'] = template({"1":function(container,depth0,helpers,partials,data) { - return " - authorized"; -},"3":function(container,depth0,helpers,partials,data) { - var stack1; - - return " " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.username : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n"; -},"5":function(container,depth0,helpers,partials,data) { - return " \n"; -},"7":function(container,depth0,helpers,partials,data) { - return "
    \n password:\n \n
    \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
    \n

    Basic authentication" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isLogout : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "

    \n
    \n
    " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "
    \n
    \n username:\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isLogout : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.program(5, data, 0),"data":data})) != null ? stack1 : "") - + "
    \n" - + ((stack1 = helpers.unless.call(alias1,(depth0 != null ? depth0.isLogout : depth0),{"name":"unless","hash":{},"fn":container.program(7, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
    \n
    \n"; -},"useData":true}); -templates['content_type'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.produces : depth0),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : ""); -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n"; -},"4":function(container,depth0,helpers,partials,data) { - return " \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n"; -},"useData":true}); -templates['main'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
    " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "
    \n
    " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "
    \n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.externalDocs : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + " " - + ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.termsOfServiceUrl : stack1),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = helpers["if"].call(alias1,((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1),{"name":"if","hash":{},"fn":container.program(6, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = helpers["if"].call(alias1,((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.url : stack1),{"name":"if","hash":{},"fn":container.program(8, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = helpers["if"].call(alias1,((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.email : stack1),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.license : stack1),{"name":"if","hash":{},"fn":container.program(12, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n"; -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "

    " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.description : stack1),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "

    \n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,((stack1 = (depth0 != null ? depth0.externalDocs : depth0)) != null ? stack1.url : stack1),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n"; -},"4":function(container,depth0,helpers,partials,data) { - var stack1; - - return ""; -},"6":function(container,depth0,helpers,partials,data) { - var stack1; - - return "
    Created by
    " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = ((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.contact : stack1)) != null ? stack1.name : stack1),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "
    "; -},"8":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return ""; -},"10":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return ""; -},"12":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return ""; -},"14":function(container,depth0,helpers,partials,data) { - var stack1; - - return " , api version: " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(depth0 != null ? depth0 : {},((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n "; -},"16":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
    \n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.info : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
    \n
    \n
    \n\n
      \n\n
      \n

      [ base url: " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(alias1,(depth0 != null ? depth0.basePath : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = helpers["if"].call(alias1,((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.version : stack1),{"name":"if","hash":{},"fn":container.program(14, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "]\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.validatorUrl : depth0),{"name":"if","hash":{},"fn":container.program(16, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "

      \n
      \n
      \n"; -},"useData":true}); -templates['oauth2'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
    • \n \n
      \n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.OAuthSchemeKey : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + " \n
    • \n"; -},"2":function(container,depth0,helpers,partials,data) { - var stack1; - - return " (" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.OAuthSchemeKey : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + ")\n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
      \n

      Select OAuth2.0 Scopes

      \n

      " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "

      \n

      Scopes are used to grant an application different levels of access to data on behalf of the end user. Each API may declare one or more scopes.\n Learn how to use\n

      \n

      " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.appName : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + " API requires the following scopes. Select which ones you want to grant to Swagger UI.

      \n

      Authorization URL: " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.authorizationUrl : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "

      \n

      flow: " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.flow : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "

      \n
        \n" - + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.scopes : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
      \n
      "; -},"useData":true}); -templates['operation'] = template({"1":function(container,depth0,helpers,partials,data) { - return "deprecated"; -},"3":function(container,depth0,helpers,partials,data) { - return "

      Warning: Deprecated

      \n"; -},"5":function(container,depth0,helpers,partials,data) { - var stack1; - - return "

      Implementation Notes

      \n
      " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "
      \n"; -},"7":function(container,depth0,helpers,partials,data) { - return "
      \n"; -},"9":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
      \n

      Response Class (Status " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(alias1,(depth0 != null ? depth0.successCode : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + ")

      \n " - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.successDescription : depth0),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n

      \n
      \n
      \n
      \n"; -},"10":function(container,depth0,helpers,partials,data) { - var stack1; - - return "
      " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.successDescription : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "
      "; -},"12":function(container,depth0,helpers,partials,data) { - var stack1; - - return "

      Headers

      \n \n \n \n \n \n \n \n \n \n \n" - + ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.headers : depth0),{"name":"each","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + " \n
      HeaderDescriptionTypeOther
      \n"; -},"13":function(container,depth0,helpers,partials,data) { - var stack1, helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n " - + container.escapeExpression(((helper = (helper = helpers.key || (data && data.key)) != null ? helper : alias2),(typeof helper === "function" ? helper.call(alias1,{"name":"key","hash":{},"data":data}) : helper))) - + "\n " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.type : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.other : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n \n"; -},"15":function(container,depth0,helpers,partials,data) { - return "

      Parameters

      \n \n \n \n \n \n \n \n \n \n \n \n\n \n
      ParameterValueDescriptionParameter TypeData Type
      \n"; -},"17":function(container,depth0,helpers,partials,data) { - return "
      \n

      Response Messages

      \n \n \n \n \n \n \n \n \n \n \n \n
      HTTP Status CodeReasonResponse ModelHeaders
      \n"; -},"19":function(container,depth0,helpers,partials,data) { - return ""; -},"21":function(container,depth0,helpers,partials,data) { - return "
      \n \n \n \n
      \n"; -},"23":function(container,depth0,helpers,partials,data) { - return "

      Request Headers

      \n
      \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3=container.escapeExpression; - - return " \n"; -},"useData":true}); -templates['param'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isFile : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(4, data, 0),"data":data})) != null ? stack1 : ""); -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n
      \n"; -},"4":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0["default"] : depth0),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.program(7, data, 0),"data":data})) != null ? stack1 : ""); -},"5":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
      \n \n
      \n
      \n"; -},"7":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n
      \n
      \n
      \n"; -},"9":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isFile : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(10, data, 0),"data":data})) != null ? stack1 : ""); -},"10":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = (helpers.renderTextParam || (depth0 && depth0.renderTextParam) || helpers.helperMissing).call(depth0 != null ? depth0 : {},depth0,{"name":"renderTextParam","hash":{},"fn":container.program(11, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : ""); -},"11":function(container,depth0,helpers,partials,data) { - return ""; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isBody : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(9, data, 0),"data":data})) != null ? stack1 : "") - + "\n\n" - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.paramType : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n \n\n"; -},"useData":true}); -templates['param_list'] = template({"1":function(container,depth0,helpers,partials,data) { - return " required"; -},"3":function(container,depth0,helpers,partials,data) { - return " multiple=\"multiple\""; -},"5":function(container,depth0,helpers,partials,data) { - return " required "; -},"7":function(container,depth0,helpers,partials,data) { - var stack1; - - return " \n"; -},"8":function(container,depth0,helpers,partials,data) { - return " selected=\"\" "; -},"10":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n \n\n"; -},"11":function(container,depth0,helpers,partials,data) { - return " selected=\"\" "; -},"13":function(container,depth0,helpers,partials,data) { - return " (default) "; -},"15":function(container,depth0,helpers,partials,data) { - return ""; -},"17":function(container,depth0,helpers,partials,data) { - return ""; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n \n\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.required : depth0),{"name":"if","hash":{},"fn":container.program(15, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + ((stack1 = ((helper = (helper = helpers.description || (depth0 != null ? depth0.description : depth0)) != null ? helper : alias2),(typeof helper === "function" ? helper.call(alias1,{"name":"description","hash":{},"data":data}) : helper))) != null ? stack1 : "") - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.required : depth0),{"name":"if","hash":{},"fn":container.program(17, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.paramType : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n"; -},"useData":true}); -templates['param_readonly'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n
      \n"; -},"3":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0["default"] : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data})) != null ? stack1 : ""); -},"4":function(container,depth0,helpers,partials,data) { - var stack1; - - return " " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0["default"] : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n"; -},"6":function(container,depth0,helpers,partials,data) { - return " (empty)\n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isBody : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.paramType : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n"; -},"useData":true}); -templates['param_readonly_required'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n"; -},"3":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0["default"] : depth0),{"name":"if","hash":{},"fn":container.program(4, data, 0),"inverse":container.program(6, data, 0),"data":data})) != null ? stack1 : ""); -},"4":function(container,depth0,helpers,partials,data) { - var stack1; - - return " " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0["default"] : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n"; -},"6":function(container,depth0,helpers,partials,data) { - return " (empty)\n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isBody : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(3, data, 0),"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.paramType : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n"; -},"useData":true}); -templates['param_required'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isFile : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.program(4, data, 0),"data":data})) != null ? stack1 : ""); -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n"; -},"4":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0["default"] : depth0),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.program(7, data, 0),"data":data})) != null ? stack1 : ""); -},"5":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "
      \n \n
      \n
      \n"; -},"7":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n
      \n
      \n
      \n"; -},"9":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers["if"].call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.isFile : depth0),{"name":"if","hash":{},"fn":container.program(10, data, 0),"inverse":container.program(12, data, 0),"data":data})) != null ? stack1 : ""); -},"10":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n"; -},"12":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = (helpers.renderTextParam || (depth0 && depth0.renderTextParam) || helpers.helperMissing).call(depth0 != null ? depth0 : {},depth0,{"name":"renderTextParam","hash":{},"fn":container.program(13, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : ""); -},"13":function(container,depth0,helpers,partials,data) { - return ""; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isBody : depth0),{"name":"if","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(9, data, 0),"data":data})) != null ? stack1 : "") - + "\n\n " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.paramType : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n"; -},"useData":true}); -templates['parameter_content_type'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.consumes : depth0),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : ""); -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n"; -},"4":function(container,depth0,helpers,partials,data) { - return " \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "\n\n"; -},"useData":true}); -templates['popup'] = template({"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var helper; - - return "
      \n
      " - + container.escapeExpression(((helper = (helper = helpers.title || (depth0 != null ? depth0.title : depth0)) != null ? helper : helpers.helperMissing),(typeof helper === "function" ? helper.call(depth0 != null ? depth0 : {},{"name":"title","hash":{},"data":data}) : helper))) - + "
      \n
      \n

      \n
      \n \n
      \n
      \n
      "; -},"useData":true}); -templates['resource'] = template({"1":function(container,depth0,helpers,partials,data) { - return " : "; -},"3":function(container,depth0,helpers,partials,data) { - var stack1; - - return "
    • \n Raw\n
    • \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, helper, options, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, buffer = - "
      \n

      \n " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.name : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + " "; - stack1 = ((helper = (helper = helpers.summary || (depth0 != null ? depth0.summary : depth0)) != null ? helper : alias2),(options={"name":"summary","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data}),(typeof helper === "function" ? helper.call(alias1,options) : helper)); - if (!helpers.summary) { stack1 = helpers.blockHelperMissing.call(depth0,stack1,options)} - if (stack1 != null) { buffer += stack1; } - return buffer + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.summary : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n

      \n
        \n
      • \n Show/Hide\n
      • \n
      • \n \n List Operations\n \n
      • \n
      • \n \n Expand Operations\n \n
      • \n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.url : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
      \n
      \n\n"; -},"useData":true}); -templates['response_content_type'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = helpers.each.call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.produces : depth0),{"name":"each","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : ""); -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n"; -},"4":function(container,depth0,helpers,partials,data) { - return " \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing, alias3="function", alias4=container.escapeExpression; - - return "\n\n"; -},"useData":true}); -templates['signature'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "\n
      \n\n
      \n\n
      \n
      \n " - + container.escapeExpression((helpers.sanitize || (depth0 && depth0.sanitize) || helpers.helperMissing).call(alias1,(depth0 != null ? depth0.signature : depth0),{"name":"sanitize","hash":{},"data":data})) - + "\n
      \n\n
      \n" - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.sampleJSON : depth0),{"name":"if","hash":{},"fn":container.program(2, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.sampleXML : depth0),{"name":"if","hash":{},"fn":container.program(5, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "
      \n
      \n"; -},"2":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
      \n
      "
      -    + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(alias1,(depth0 != null ? depth0.sampleJSON : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "")
      -    + "
      \n " - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isParam : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n
      \n"; -},"3":function(container,depth0,helpers,partials,data) { - return ""; -},"5":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}; - - return "
      \n
      "
      -    + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(alias1,(depth0 != null ? depth0.sampleXML : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "")
      -    + "
      \n " - + ((stack1 = helpers["if"].call(alias1,(depth0 != null ? depth0.isParam : depth0),{"name":"if","hash":{},"fn":container.program(3, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + "\n
      \n"; -},"7":function(container,depth0,helpers,partials,data) { - var stack1; - - return " " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.signature : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1; - - return ((stack1 = (helpers.ifCond || (depth0 && depth0.ifCond) || helpers.helperMissing).call(depth0 != null ? depth0 : {},(depth0 != null ? depth0.sampleJSON : depth0),"||",(depth0 != null ? depth0.sampleXML : depth0),{"name":"ifCond","hash":{},"fn":container.program(1, data, 0),"inverse":container.program(7, data, 0),"data":data})) != null ? stack1 : ""); -},"useData":true}); -templates['status_code'] = template({"1":function(container,depth0,helpers,partials,data) { - var stack1, helper, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return " \n " - + container.escapeExpression(((helper = (helper = helpers.key || (data && data.key)) != null ? helper : alias2),(typeof helper === "function" ? helper.call(alias1,{"name":"key","hash":{},"data":data}) : helper))) - + "\n " - + ((stack1 = (helpers.sanitize || (depth0 && depth0.sanitize) || alias2).call(alias1,(depth0 != null ? depth0.description : depth0),{"name":"sanitize","hash":{},"data":data})) != null ? stack1 : "") - + "\n " - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.type : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n \n"; -},"compiler":[7,">= 4.0.0"],"main":function(container,depth0,helpers,partials,data) { - var stack1, alias1=depth0 != null ? depth0 : {}, alias2=helpers.helperMissing; - - return "" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.code : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n" - + ((stack1 = (helpers.escape || (depth0 && depth0.escape) || alias2).call(alias1,(depth0 != null ? depth0.message : depth0),{"name":"escape","hash":{},"data":data})) != null ? stack1 : "") - + "\n\n\n \n \n" - + ((stack1 = helpers.each.call(alias1,(depth0 != null ? depth0.headers : depth0),{"name":"each","hash":{},"fn":container.program(1, data, 0),"inverse":container.noop,"data":data})) != null ? stack1 : "") - + " \n
      \n"; -},"useData":true}); -})();} - /* jshint ignore:end */ -'use strict'; - - -$(function() { - - // Helper function for vertically aligning DOM elements - // http://www.seodenver.com/simple-vertical-align-plugin-for-jquery/ - $.fn.vAlign = function() { - return this.each(function(){ - var ah = $(this).height(); - var ph = $(this).parent().height(); - var mh = (ph - ah) / 2; - $(this).css('margin-top', mh); - }); - }; - - $.fn.stretchFormtasticInputWidthToParent = function() { - return this.each(function(){ - var p_width = $(this).closest("form").innerWidth(); - var p_padding = parseInt($(this).closest("form").css('padding-left') ,10) + parseInt($(this).closest('form').css('padding-right'), 10); - var this_padding = parseInt($(this).css('padding-left'), 10) + parseInt($(this).css('padding-right'), 10); - $(this).css('width', p_width - p_padding - this_padding); - }); - }; - - $('form.formtastic li.string input, form.formtastic textarea').stretchFormtasticInputWidthToParent(); - - // Vertically center these paragraphs - // Parent may need a min-height for this to work.. - $('ul.downplayed li div.content p').vAlign(); - - // When a sandbox form is submitted.. - $("form.sandbox").submit(function(){ - - var error_free = true; - - // Cycle through the forms required inputs - $(this).find("input.required").each(function() { - - // Remove any existing error styles from the input - $(this).removeClass('error'); - - // Tack the error style on if the input is empty.. - if ($(this).val() === '') { - $(this).addClass('error'); - $(this).wiggle(); - error_free = false; - } - - }); - - return error_free; - }); - -}); - -function clippyCopiedCallback() { - $('#api_key_copied').fadeIn().delay(1000).fadeOut(); - - // var b = $("#clippy_tooltip_" + a); - // b.length != 0 && (b.attr("title", "copied!").trigger("tipsy.reload"), setTimeout(function() { - // b.attr("title", "copy to clipboard") - // }, - // 500)) -} - -// Logging function that accounts for browsers that don't have window.console -function log(){ - log.history = log.history || []; - log.history.push(arguments); - if(this.console){ - console.log( Array.prototype.slice.call(arguments)[0] ); - } -} - -// Handle browsers that do console incorrectly (IE9 and below, see http://stackoverflow.com/a/5539378/7913) -if (Function.prototype.bind && console && typeof console.log === "object") { - [ - "log","info","warn","error","assert","dir","clear","profile","profileEnd" - ].forEach(function (method) { - console[method] = this.bind(console[method], console); - }, Function.prototype.call); -} - -window.Docs = { - - shebang: function() { - - // If shebang has an operation nickname in it.. - // e.g. /docs/#!/words/get_search - var fragments = $.param.fragment().split('/'); - fragments.shift(); // get rid of the bang - - switch (fragments.length) { - case 1: - if (fragments[0].length > 0) { // prevent matching "#/" - // Expand all operations for the resource and scroll to it - var dom_id = 'resource_' + fragments[0]; - - Docs.expandEndpointListForResource(fragments[0]); - $("#"+dom_id).slideto({highlight: false}); - } - break; - case 2: - // Refer to the endpoint DOM element, e.g. #words_get_search - - // Expand Resource - Docs.expandEndpointListForResource(fragments[0]); - $("#"+dom_id).slideto({highlight: false}); - - // Expand operation - var li_dom_id = fragments.join('_'); - var li_content_dom_id = li_dom_id + "_content"; - - - Docs.expandOperation($('#'+li_content_dom_id)); - $('#'+li_dom_id).slideto({highlight: false}); - break; - } - }, - - toggleEndpointListForResource: function(resource) { - var elem = $('li#resource_' + Docs.escapeResourceName(resource) + ' ul.endpoints'); - if (elem.is(':visible')) { - $.bbq.pushState('#/', 2); - Docs.collapseEndpointListForResource(resource); - } else { - $.bbq.pushState('#/' + resource, 2); - Docs.expandEndpointListForResource(resource); - } - }, - - // Expand resource - expandEndpointListForResource: function(resource) { - var resource = Docs.escapeResourceName(resource); - if (resource == '') { - $('.resource ul.endpoints').slideDown(); - return; - } - - $('li#resource_' + resource).addClass('active'); - - var elem = $('li#resource_' + resource + ' ul.endpoints'); - elem.slideDown(); - }, - - // Collapse resource and mark as explicitly closed - collapseEndpointListForResource: function(resource) { - var resource = Docs.escapeResourceName(resource); - if (resource == '') { - $('.resource ul.endpoints').slideUp(); - return; - } - - $('li#resource_' + resource).removeClass('active'); - - var elem = $('li#resource_' + resource + ' ul.endpoints'); - elem.slideUp(); - }, - - expandOperationsForResource: function(resource) { - // Make sure the resource container is open.. - Docs.expandEndpointListForResource(resource); - - if (resource == '') { - $('.resource ul.endpoints li.operation div.content').slideDown(); - return; - } - - $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { - Docs.expandOperation($(this)); - }); - }, - - collapseOperationsForResource: function(resource) { - // Make sure the resource container is open.. - Docs.expandEndpointListForResource(resource); - - if (resource == '') { - $('.resource ul.endpoints li.operation div.content').slideUp(); - return; - } - - $('li#resource_' + Docs.escapeResourceName(resource) + ' li.operation div.content').each(function() { - Docs.collapseOperation($(this)); - }); - }, - - escapeResourceName: function(resource) { - return resource.replace(/[!"#$%&'()*+,.\/:;<=>?@\[\\\]\^`{|}~]/g, "\\$&"); - }, - - expandOperation: function(elem) { - elem.slideDown(); - }, - - collapseOperation: function(elem) { - elem.slideUp(); - } -}; - -/*! - * https://github.com/es-shims/es5-shim - * @license es5-shim Copyright 2009-2015 by contributors, MIT License - * see https://github.com/es-shims/es5-shim/blob/master/LICENSE - */ - -// vim: ts=4 sts=4 sw=4 expandtab - -// Add semicolon to prevent IIFE from being passed as argument to concatenated code. -; - -// UMD (Universal Module Definition) -// see https://github.com/umdjs/umd/blob/master/templates/returnExports.js -(function (root, factory) { - 'use strict'; - - /* global define, exports, module */ - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define(factory); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like enviroments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.returnExports = factory(); - } -}(this, function () { - /** - * Brings an environment as close to ECMAScript 5 compliance - * as is possible with the facilities of erstwhile engines. - * - * Annotated ES5: http://es5.github.com/ (specific links below) - * ES5 Spec: http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf - * Required reading: http://javascriptweblog.wordpress.com/2011/12/05/extending-javascript-natives/ - */ - - // Shortcut to an often accessed properties, in order to avoid multiple - // dereference that costs universally. This also holds a reference to known-good - // functions. - var $Array = Array; - var ArrayPrototype = $Array.prototype; - var $Object = Object; - var ObjectPrototype = $Object.prototype; - var $Function = Function; - var FunctionPrototype = $Function.prototype; - var $String = String; - var StringPrototype = $String.prototype; - var $Number = Number; - var NumberPrototype = $Number.prototype; - var array_slice = ArrayPrototype.slice; - var array_splice = ArrayPrototype.splice; - var array_push = ArrayPrototype.push; - var array_unshift = ArrayPrototype.unshift; - var array_concat = ArrayPrototype.concat; - var array_join = ArrayPrototype.join; - var call = FunctionPrototype.call; - var apply = FunctionPrototype.apply; - var max = Math.max; - var min = Math.min; - - // Having a toString local variable name breaks in Opera so use to_string. - var to_string = ObjectPrototype.toString; - - /* global Symbol */ - /* eslint-disable one-var-declaration-per-line, no-redeclare, max-statements-per-line */ - var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; - var isCallable; /* inlined from https://npmjs.com/is-callable */ var fnToStr = Function.prototype.toString, constructorRegex = /^\s*class /, isES6ClassFn = function isES6ClassFn(value) { try { var fnStr = fnToStr.call(value); var singleStripped = fnStr.replace(/\/\/.*\n/g, ''); var multiStripped = singleStripped.replace(/\/\*[.\s\S]*\*\//g, ''); var spaceStripped = multiStripped.replace(/\n/mg, ' ').replace(/ {2}/g, ' '); return constructorRegex.test(spaceStripped); } catch (e) { return false; /* not a function */ } }, tryFunctionObject = function tryFunctionObject(value) { try { if (isES6ClassFn(value)) { return false; } fnToStr.call(value); return true; } catch (e) { return false; } }, fnClass = '[object Function]', genClass = '[object GeneratorFunction]', isCallable = function isCallable(value) { if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } if (hasToStringTag) { return tryFunctionObject(value); } if (isES6ClassFn(value)) { return false; } var strClass = to_string.call(value); return strClass === fnClass || strClass === genClass; }; - - var isRegex; /* inlined from https://npmjs.com/is-regex */ var regexExec = RegExp.prototype.exec, tryRegexExec = function tryRegexExec(value) { try { regexExec.call(value); return true; } catch (e) { return false; } }, regexClass = '[object RegExp]'; isRegex = function isRegex(value) { if (typeof value !== 'object') { return false; } return hasToStringTag ? tryRegexExec(value) : to_string.call(value) === regexClass; }; - var isString; /* inlined from https://npmjs.com/is-string */ var strValue = String.prototype.valueOf, tryStringObject = function tryStringObject(value) { try { strValue.call(value); return true; } catch (e) { return false; } }, stringClass = '[object String]'; isString = function isString(value) { if (typeof value === 'string') { return true; } if (typeof value !== 'object') { return false; } return hasToStringTag ? tryStringObject(value) : to_string.call(value) === stringClass; }; - /* eslint-enable one-var-declaration-per-line, no-redeclare, max-statements-per-line */ - - /* inlined from http://npmjs.com/define-properties */ - var supportsDescriptors = $Object.defineProperty && (function () { - try { - var obj = {}; - $Object.defineProperty(obj, 'x', { enumerable: false, value: obj }); - for (var _ in obj) { // jscs:ignore disallowUnusedVariables - return false; - } - return obj.x === obj; - } catch (e) { /* this is ES3 */ - return false; - } - }()); - var defineProperties = (function (has) { - // Define configurable, writable, and non-enumerable props - // if they don't exist. - var defineProperty; - if (supportsDescriptors) { - defineProperty = function (object, name, method, forceAssign) { - if (!forceAssign && (name in object)) { - return; - } - $Object.defineProperty(object, name, { - configurable: true, - enumerable: false, - writable: true, - value: method - }); - }; - } else { - defineProperty = function (object, name, method, forceAssign) { - if (!forceAssign && (name in object)) { - return; - } - object[name] = method; - }; - } - return function defineProperties(object, map, forceAssign) { - for (var name in map) { - if (has.call(map, name)) { - defineProperty(object, name, map[name], forceAssign); - } - } - }; - }(ObjectPrototype.hasOwnProperty)); - - // - // Util - // ====== - // - - /* replaceable with https://npmjs.com/package/es-abstract /helpers/isPrimitive */ - var isPrimitive = function isPrimitive(input) { - var type = typeof input; - return input === null || (type !== 'object' && type !== 'function'); - }; - - var isActualNaN = $Number.isNaN || function isActualNaN(x) { - return x !== x; - }; - - var ES = { - // ES5 9.4 - // http://es5.github.com/#x9.4 - // http://jsperf.com/to-integer - /* replaceable with https://npmjs.com/package/es-abstract ES5.ToInteger */ - ToInteger: function ToInteger(num) { - var n = +num; - if (isActualNaN(n)) { - n = 0; - } else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) { - n = (n > 0 || -1) * Math.floor(Math.abs(n)); - } - return n; - }, - - /* replaceable with https://npmjs.com/package/es-abstract ES5.ToPrimitive */ - ToPrimitive: function ToPrimitive(input) { - var val, valueOf, toStr; - if (isPrimitive(input)) { - return input; - } - valueOf = input.valueOf; - if (isCallable(valueOf)) { - val = valueOf.call(input); - if (isPrimitive(val)) { - return val; - } - } - toStr = input.toString; - if (isCallable(toStr)) { - val = toStr.call(input); - if (isPrimitive(val)) { - return val; - } - } - throw new TypeError(); - }, - - // ES5 9.9 - // http://es5.github.com/#x9.9 - /* replaceable with https://npmjs.com/package/es-abstract ES5.ToObject */ - ToObject: function (o) { - if (o == null) { // this matches both null and undefined - throw new TypeError("can't convert " + o + ' to object'); - } - return $Object(o); - }, - - /* replaceable with https://npmjs.com/package/es-abstract ES5.ToUint32 */ - ToUint32: function ToUint32(x) { - return x >>> 0; - } - }; - - // - // Function - // ======== - // - - // ES-5 15.3.4.5 - // http://es5.github.com/#x15.3.4.5 - - var Empty = function Empty() {}; - - defineProperties(FunctionPrototype, { - bind: function bind(that) { // .length is 1 - // 1. Let Target be the this value. - var target = this; - // 2. If IsCallable(Target) is false, throw a TypeError exception. - if (!isCallable(target)) { - throw new TypeError('Function.prototype.bind called on incompatible ' + target); - } - // 3. Let A be a new (possibly empty) internal list of all of the - // argument values provided after thisArg (arg1, arg2 etc), in order. - // XXX slicedArgs will stand in for "A" if used - var args = array_slice.call(arguments, 1); // for normal call - // 4. Let F be a new native ECMAScript object. - // 11. Set the [[Prototype]] internal property of F to the standard - // built-in Function prototype object as specified in 15.3.3.1. - // 12. Set the [[Call]] internal property of F as described in - // 15.3.4.5.1. - // 13. Set the [[Construct]] internal property of F as described in - // 15.3.4.5.2. - // 14. Set the [[HasInstance]] internal property of F as described in - // 15.3.4.5.3. - var bound; - var binder = function () { - - if (this instanceof bound) { - // 15.3.4.5.2 [[Construct]] - // When the [[Construct]] internal method of a function object, - // F that was created using the bind function is called with a - // list of arguments ExtraArgs, the following steps are taken: - // 1. Let target be the value of F's [[TargetFunction]] - // internal property. - // 2. If target has no [[Construct]] internal method, a - // TypeError exception is thrown. - // 3. Let boundArgs be the value of F's [[BoundArgs]] internal - // property. - // 4. Let args be a new list containing the same values as the - // list boundArgs in the same order followed by the same - // values as the list ExtraArgs in the same order. - // 5. Return the result of calling the [[Construct]] internal - // method of target providing args as the arguments. - - var result = apply.call( - target, - this, - array_concat.call(args, array_slice.call(arguments)) - ); - if ($Object(result) === result) { - return result; - } - return this; - - } else { - // 15.3.4.5.1 [[Call]] - // When the [[Call]] internal method of a function object, F, - // which was created using the bind function is called with a - // this value and a list of arguments ExtraArgs, the following - // steps are taken: - // 1. Let boundArgs be the value of F's [[BoundArgs]] internal - // property. - // 2. Let boundThis be the value of F's [[BoundThis]] internal - // property. - // 3. Let target be the value of F's [[TargetFunction]] internal - // property. - // 4. Let args be a new list containing the same values as the - // list boundArgs in the same order followed by the same - // values as the list ExtraArgs in the same order. - // 5. Return the result of calling the [[Call]] internal method - // of target providing boundThis as the this value and - // providing args as the arguments. - - // equiv: target.call(this, ...boundArgs, ...args) - return apply.call( - target, - that, - array_concat.call(args, array_slice.call(arguments)) - ); - - } - - }; - - // 15. If the [[Class]] internal property of Target is "Function", then - // a. Let L be the length property of Target minus the length of A. - // b. Set the length own property of F to either 0 or L, whichever is - // larger. - // 16. Else set the length own property of F to 0. - - var boundLength = max(0, target.length - args.length); - - // 17. Set the attributes of the length own property of F to the values - // specified in 15.3.5.1. - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - array_push.call(boundArgs, '$' + i); - } - - // XXX Build a dynamic function with desired amount of arguments is the only - // way to set the length property of a function. - // In environments where Content Security Policies enabled (Chrome extensions, - // for ex.) all use of eval or Function costructor throws an exception. - // However in all of these environments Function.prototype.bind exists - // and so this code will never be executed. - bound = $Function('binder', 'return function (' + array_join.call(boundArgs, ',') + '){ return binder.apply(this, arguments); }')(binder); - - if (target.prototype) { - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - // Clean up dangling references. - Empty.prototype = null; - } - - // TODO - // 18. Set the [[Extensible]] internal property of F to true. - - // TODO - // 19. Let thrower be the [[ThrowTypeError]] function Object (13.2.3). - // 20. Call the [[DefineOwnProperty]] internal method of F with - // arguments "caller", PropertyDescriptor {[[Get]]: thrower, [[Set]]: - // thrower, [[Enumerable]]: false, [[Configurable]]: false}, and - // false. - // 21. Call the [[DefineOwnProperty]] internal method of F with - // arguments "arguments", PropertyDescriptor {[[Get]]: thrower, - // [[Set]]: thrower, [[Enumerable]]: false, [[Configurable]]: false}, - // and false. - - // TODO - // NOTE Function objects created using Function.prototype.bind do not - // have a prototype property or the [[Code]], [[FormalParameters]], and - // [[Scope]] internal properties. - // XXX can't delete prototype in pure-js. - - // 22. Return F. - return bound; - } - }); - - // _Please note: Shortcuts are defined after `Function.prototype.bind` as we - // use it in defining shortcuts. - var owns = call.bind(ObjectPrototype.hasOwnProperty); - var toStr = call.bind(ObjectPrototype.toString); - var arraySlice = call.bind(array_slice); - var arraySliceApply = apply.bind(array_slice); - var strSlice = call.bind(StringPrototype.slice); - var strSplit = call.bind(StringPrototype.split); - var strIndexOf = call.bind(StringPrototype.indexOf); - var pushCall = call.bind(array_push); - var isEnum = call.bind(ObjectPrototype.propertyIsEnumerable); - var arraySort = call.bind(ArrayPrototype.sort); - - // - // Array - // ===== - // - - var isArray = $Array.isArray || function isArray(obj) { - return toStr(obj) === '[object Array]'; - }; - - // ES5 15.4.4.12 - // http://es5.github.com/#x15.4.4.13 - // Return len+argCount. - // [bugfix, ielt8] - // IE < 8 bug: [].unshift(0) === undefined but should be "1" - var hasUnshiftReturnValueBug = [].unshift(0) !== 1; - defineProperties(ArrayPrototype, { - unshift: function () { - array_unshift.apply(this, arguments); - return this.length; - } - }, hasUnshiftReturnValueBug); - - // ES5 15.4.3.2 - // http://es5.github.com/#x15.4.3.2 - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/isArray - defineProperties($Array, { isArray: isArray }); - - // The IsCallable() check in the Array functions - // has been replaced with a strict check on the - // internal class of the object to trap cases where - // the provided function was actually a regular - // expression literal, which in V8 and - // JavaScriptCore is a typeof "function". Only in - // V8 are regular expression literals permitted as - // reduce parameters, so it is desirable in the - // general case for the shim to match the more - // strict and common behavior of rejecting regular - // expressions. - - // ES5 15.4.4.18 - // http://es5.github.com/#x15.4.4.18 - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/array/forEach - - // Check failure of by-index access of string characters (IE < 9) - // and failure of `0 in boxedString` (Rhino) - var boxedString = $Object('a'); - var splitString = boxedString[0] !== 'a' || !(0 in boxedString); - - var properlyBoxesContext = function properlyBoxed(method) { - // Check node 0.6.21 bug where third parameter is not boxed - var properlyBoxesNonStrict = true; - var properlyBoxesStrict = true; - var threwException = false; - if (method) { - try { - method.call('foo', function (_, __, context) { - if (typeof context !== 'object') { - properlyBoxesNonStrict = false; - } - }); - - method.call([1], function () { - 'use strict'; - - properlyBoxesStrict = typeof this === 'string'; - }, 'x'); - } catch (e) { - threwException = true; - } - } - return !!method && !threwException && properlyBoxesNonStrict && properlyBoxesStrict; - }; - - defineProperties(ArrayPrototype, { - forEach: function forEach(callbackfn/*, thisArg*/) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var i = -1; - var length = ES.ToUint32(self.length); - var T; - if (arguments.length > 1) { - T = arguments[1]; - } - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.forEach callback must be a function'); - } - - while (++i < length) { - if (i in self) { - // Invoke the callback function with call, passing arguments: - // context, property value, property key, thisArg object - if (typeof T === 'undefined') { - callbackfn(self[i], i, object); - } else { - callbackfn.call(T, self[i], i, object); - } - } - } - } - }, !properlyBoxesContext(ArrayPrototype.forEach)); - - // ES5 15.4.4.19 - // http://es5.github.com/#x15.4.4.19 - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/map - defineProperties(ArrayPrototype, { - map: function map(callbackfn/*, thisArg*/) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var length = ES.ToUint32(self.length); - var result = $Array(length); - var T; - if (arguments.length > 1) { - T = arguments[1]; - } - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.map callback must be a function'); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - if (typeof T === 'undefined') { - result[i] = callbackfn(self[i], i, object); - } else { - result[i] = callbackfn.call(T, self[i], i, object); - } - } - } - return result; - } - }, !properlyBoxesContext(ArrayPrototype.map)); - - // ES5 15.4.4.20 - // http://es5.github.com/#x15.4.4.20 - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/filter - defineProperties(ArrayPrototype, { - filter: function filter(callbackfn/*, thisArg*/) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var length = ES.ToUint32(self.length); - var result = []; - var value; - var T; - if (arguments.length > 1) { - T = arguments[1]; - } - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.filter callback must be a function'); - } - - for (var i = 0; i < length; i++) { - if (i in self) { - value = self[i]; - if (typeof T === 'undefined' ? callbackfn(value, i, object) : callbackfn.call(T, value, i, object)) { - pushCall(result, value); - } - } - } - return result; - } - }, !properlyBoxesContext(ArrayPrototype.filter)); - - // ES5 15.4.4.16 - // http://es5.github.com/#x15.4.4.16 - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/every - defineProperties(ArrayPrototype, { - every: function every(callbackfn/*, thisArg*/) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var length = ES.ToUint32(self.length); - var T; - if (arguments.length > 1) { - T = arguments[1]; - } - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.every callback must be a function'); - } - - for (var i = 0; i < length; i++) { - if (i in self && !(typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) { - return false; - } - } - return true; - } - }, !properlyBoxesContext(ArrayPrototype.every)); - - // ES5 15.4.4.17 - // http://es5.github.com/#x15.4.4.17 - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/some - defineProperties(ArrayPrototype, { - some: function some(callbackfn/*, thisArg */) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var length = ES.ToUint32(self.length); - var T; - if (arguments.length > 1) { - T = arguments[1]; - } - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.some callback must be a function'); - } - - for (var i = 0; i < length; i++) { - if (i in self && (typeof T === 'undefined' ? callbackfn(self[i], i, object) : callbackfn.call(T, self[i], i, object))) { - return true; - } - } - return false; - } - }, !properlyBoxesContext(ArrayPrototype.some)); - - // ES5 15.4.4.21 - // http://es5.github.com/#x15.4.4.21 - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduce - var reduceCoercesToObject = false; - if (ArrayPrototype.reduce) { - reduceCoercesToObject = typeof ArrayPrototype.reduce.call('es5', function (_, __, ___, list) { - return list; - }) === 'object'; - } - defineProperties(ArrayPrototype, { - reduce: function reduce(callbackfn/*, initialValue*/) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var length = ES.ToUint32(self.length); - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.reduce callback must be a function'); - } - - // no value to return if no initial value and an empty array - if (length === 0 && arguments.length === 1) { - throw new TypeError('reduce of empty array with no initial value'); - } - - var i = 0; - var result; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i++]; - break; - } - - // if array contains no values, no initial value to return - if (++i >= length) { - throw new TypeError('reduce of empty array with no initial value'); - } - } while (true); - } - - for (; i < length; i++) { - if (i in self) { - result = callbackfn(result, self[i], i, object); - } - } - - return result; - } - }, !reduceCoercesToObject); - - // ES5 15.4.4.22 - // http://es5.github.com/#x15.4.4.22 - // https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/reduceRight - var reduceRightCoercesToObject = false; - if (ArrayPrototype.reduceRight) { - reduceRightCoercesToObject = typeof ArrayPrototype.reduceRight.call('es5', function (_, __, ___, list) { - return list; - }) === 'object'; - } - defineProperties(ArrayPrototype, { - reduceRight: function reduceRight(callbackfn/*, initial*/) { - var object = ES.ToObject(this); - var self = splitString && isString(this) ? strSplit(this, '') : object; - var length = ES.ToUint32(self.length); - - // If no callback function or if callback is not a callable function - if (!isCallable(callbackfn)) { - throw new TypeError('Array.prototype.reduceRight callback must be a function'); - } - - // no value to return if no initial value, empty array - if (length === 0 && arguments.length === 1) { - throw new TypeError('reduceRight of empty array with no initial value'); - } - - var result; - var i = length - 1; - if (arguments.length >= 2) { - result = arguments[1]; - } else { - do { - if (i in self) { - result = self[i--]; - break; - } - - // if array contains no values, no initial value to return - if (--i < 0) { - throw new TypeError('reduceRight of empty array with no initial value'); - } - } while (true); - } - - if (i < 0) { - return result; - } - - do { - if (i in self) { - result = callbackfn(result, self[i], i, object); - } - } while (i--); - - return result; - } - }, !reduceRightCoercesToObject); - - // ES5 15.4.4.14 - // http://es5.github.com/#x15.4.4.14 - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/indexOf - var hasFirefox2IndexOfBug = ArrayPrototype.indexOf && [0, 1].indexOf(1, 2) !== -1; - defineProperties(ArrayPrototype, { - indexOf: function indexOf(searchElement/*, fromIndex */) { - var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this); - var length = ES.ToUint32(self.length); - - if (length === 0) { - return -1; - } - - var i = 0; - if (arguments.length > 1) { - i = ES.ToInteger(arguments[1]); - } - - // handle negative indices - i = i >= 0 ? i : max(0, length + i); - for (; i < length; i++) { - if (i in self && self[i] === searchElement) { - return i; - } - } - return -1; - } - }, hasFirefox2IndexOfBug); - - // ES5 15.4.4.15 - // http://es5.github.com/#x15.4.4.15 - // https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Array/lastIndexOf - var hasFirefox2LastIndexOfBug = ArrayPrototype.lastIndexOf && [0, 1].lastIndexOf(0, -3) !== -1; - defineProperties(ArrayPrototype, { - lastIndexOf: function lastIndexOf(searchElement/*, fromIndex */) { - var self = splitString && isString(this) ? strSplit(this, '') : ES.ToObject(this); - var length = ES.ToUint32(self.length); - - if (length === 0) { - return -1; - } - var i = length - 1; - if (arguments.length > 1) { - i = min(i, ES.ToInteger(arguments[1])); - } - // handle negative indices - i = i >= 0 ? i : length - Math.abs(i); - for (; i >= 0; i--) { - if (i in self && searchElement === self[i]) { - return i; - } - } - return -1; - } - }, hasFirefox2LastIndexOfBug); - - // ES5 15.4.4.12 - // http://es5.github.com/#x15.4.4.12 - var spliceNoopReturnsEmptyArray = (function () { - var a = [1, 2]; - var result = a.splice(); - return a.length === 2 && isArray(result) && result.length === 0; - }()); - defineProperties(ArrayPrototype, { - // Safari 5.0 bug where .splice() returns undefined - splice: function splice(start, deleteCount) { - if (arguments.length === 0) { - return []; - } else { - return array_splice.apply(this, arguments); - } - } - }, !spliceNoopReturnsEmptyArray); - - var spliceWorksWithEmptyObject = (function () { - var obj = {}; - ArrayPrototype.splice.call(obj, 0, 0, 1); - return obj.length === 1; - }()); - defineProperties(ArrayPrototype, { - splice: function splice(start, deleteCount) { - if (arguments.length === 0) { - return []; - } - var args = arguments; - this.length = max(ES.ToInteger(this.length), 0); - if (arguments.length > 0 && typeof deleteCount !== 'number') { - args = arraySlice(arguments); - if (args.length < 2) { - pushCall(args, this.length - start); - } else { - args[1] = ES.ToInteger(deleteCount); - } - } - return array_splice.apply(this, args); - } - }, !spliceWorksWithEmptyObject); - var spliceWorksWithLargeSparseArrays = (function () { - // Per https://github.com/es-shims/es5-shim/issues/295 - // Safari 7/8 breaks with sparse arrays of size 1e5 or greater - var arr = new $Array(1e5); - // note: the index MUST be 8 or larger or the test will false pass - arr[8] = 'x'; - arr.splice(1, 1); - // note: this test must be defined *after* the indexOf shim - // per https://github.com/es-shims/es5-shim/issues/313 - return arr.indexOf('x') === 7; - }()); - var spliceWorksWithSmallSparseArrays = (function () { - // Per https://github.com/es-shims/es5-shim/issues/295 - // Opera 12.15 breaks on this, no idea why. - var n = 256; - var arr = []; - arr[n] = 'a'; - arr.splice(n + 1, 0, 'b'); - return arr[n] === 'a'; - }()); - defineProperties(ArrayPrototype, { - splice: function splice(start, deleteCount) { - var O = ES.ToObject(this); - var A = []; - var len = ES.ToUint32(O.length); - var relativeStart = ES.ToInteger(start); - var actualStart = relativeStart < 0 ? max((len + relativeStart), 0) : min(relativeStart, len); - var actualDeleteCount = min(max(ES.ToInteger(deleteCount), 0), len - actualStart); - - var k = 0; - var from; - while (k < actualDeleteCount) { - from = $String(actualStart + k); - if (owns(O, from)) { - A[k] = O[from]; - } - k += 1; - } - - var items = arraySlice(arguments, 2); - var itemCount = items.length; - var to; - if (itemCount < actualDeleteCount) { - k = actualStart; - var maxK = len - actualDeleteCount; - while (k < maxK) { - from = $String(k + actualDeleteCount); - to = $String(k + itemCount); - if (owns(O, from)) { - O[to] = O[from]; - } else { - delete O[to]; - } - k += 1; - } - k = len; - var minK = len - actualDeleteCount + itemCount; - while (k > minK) { - delete O[k - 1]; - k -= 1; - } - } else if (itemCount > actualDeleteCount) { - k = len - actualDeleteCount; - while (k > actualStart) { - from = $String(k + actualDeleteCount - 1); - to = $String(k + itemCount - 1); - if (owns(O, from)) { - O[to] = O[from]; - } else { - delete O[to]; - } - k -= 1; - } - } - k = actualStart; - for (var i = 0; i < items.length; ++i) { - O[k] = items[i]; - k += 1; - } - O.length = len - actualDeleteCount + itemCount; - - return A; - } - }, !spliceWorksWithLargeSparseArrays || !spliceWorksWithSmallSparseArrays); - - var originalJoin = ArrayPrototype.join; - var hasStringJoinBug; - try { - hasStringJoinBug = Array.prototype.join.call('123', ',') !== '1,2,3'; - } catch (e) { - hasStringJoinBug = true; - } - if (hasStringJoinBug) { - defineProperties(ArrayPrototype, { - join: function join(separator) { - var sep = typeof separator === 'undefined' ? ',' : separator; - return originalJoin.call(isString(this) ? strSplit(this, '') : this, sep); - } - }, hasStringJoinBug); - } - - var hasJoinUndefinedBug = [1, 2].join(undefined) !== '1,2'; - if (hasJoinUndefinedBug) { - defineProperties(ArrayPrototype, { - join: function join(separator) { - var sep = typeof separator === 'undefined' ? ',' : separator; - return originalJoin.call(this, sep); - } - }, hasJoinUndefinedBug); - } - - var pushShim = function push(item) { - var O = ES.ToObject(this); - var n = ES.ToUint32(O.length); - var i = 0; - while (i < arguments.length) { - O[n + i] = arguments[i]; - i += 1; - } - O.length = n + i; - return n + i; - }; - - var pushIsNotGeneric = (function () { - var obj = {}; - var result = Array.prototype.push.call(obj, undefined); - return result !== 1 || obj.length !== 1 || typeof obj[0] !== 'undefined' || !owns(obj, 0); - }()); - defineProperties(ArrayPrototype, { - push: function push(item) { - if (isArray(this)) { - return array_push.apply(this, arguments); - } - return pushShim.apply(this, arguments); - } - }, pushIsNotGeneric); - - // This fixes a very weird bug in Opera 10.6 when pushing `undefined - var pushUndefinedIsWeird = (function () { - var arr = []; - var result = arr.push(undefined); - return result !== 1 || arr.length !== 1 || typeof arr[0] !== 'undefined' || !owns(arr, 0); - }()); - defineProperties(ArrayPrototype, { push: pushShim }, pushUndefinedIsWeird); - - // ES5 15.2.3.14 - // http://es5.github.io/#x15.4.4.10 - // Fix boxed string bug - defineProperties(ArrayPrototype, { - slice: function (start, end) { - var arr = isString(this) ? strSplit(this, '') : this; - return arraySliceApply(arr, arguments); - } - }, splitString); - - var sortIgnoresNonFunctions = (function () { - try { - [1, 2].sort(null); - [1, 2].sort({}); - return true; - } catch (e) {} - return false; - }()); - var sortThrowsOnRegex = (function () { - // this is a problem in Firefox 4, in which `typeof /a/ === 'function'` - try { - [1, 2].sort(/a/); - return false; - } catch (e) {} - return true; - }()); - var sortIgnoresUndefined = (function () { - // applies in IE 8, for one. - try { - [1, 2].sort(undefined); - return true; - } catch (e) {} - return false; - }()); - defineProperties(ArrayPrototype, { - sort: function sort(compareFn) { - if (typeof compareFn === 'undefined') { - return arraySort(this); - } - if (!isCallable(compareFn)) { - throw new TypeError('Array.prototype.sort callback must be a function'); - } - return arraySort(this, compareFn); - } - }, sortIgnoresNonFunctions || !sortIgnoresUndefined || !sortThrowsOnRegex); - - // - // Object - // ====== - // - - // ES5 15.2.3.14 - // http://es5.github.com/#x15.2.3.14 - - // http://whattheheadsaid.com/2010/10/a-safer-object-keys-compatibility-implementation - var hasDontEnumBug = !isEnum({ 'toString': null }, 'toString'); - var hasProtoEnumBug = isEnum(function () {}, 'prototype'); - var hasStringEnumBug = !owns('x', '0'); - var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; - }; - var blacklistedKeys = { - $window: true, - $console: true, - $parent: true, - $self: true, - $frame: true, - $frames: true, - $frameElement: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $external: true - }; - var hasAutomationEqualityBug = (function () { - /* globals window */ - if (typeof window === 'undefined') { - return false; - } - for (var k in window) { - try { - if (!blacklistedKeys['$' + k] && owns(window, k) && window[k] !== null && typeof window[k] === 'object') { - equalsConstructorPrototype(window[k]); - } - } catch (e) { - return true; - } - } - return false; - }()); - var equalsConstructorPrototypeIfNotBuggy = function (object) { - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(object); - } - try { - return equalsConstructorPrototype(object); - } catch (e) { - return false; - } - }; - var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ]; - var dontEnumsLength = dontEnums.length; - - // taken directly from https://github.com/ljharb/is-arguments/blob/master/index.js - // can be replaced with require('is-arguments') if we ever use a build process instead - var isStandardArguments = function isArguments(value) { - return toStr(value) === '[object Arguments]'; - }; - var isLegacyArguments = function isArguments(value) { - return value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - !isArray(value) && - isCallable(value.callee); - }; - var isArguments = isStandardArguments(arguments) ? isStandardArguments : isLegacyArguments; - - defineProperties($Object, { - keys: function keys(object) { - var isFn = isCallable(object); - var isArgs = isArguments(object); - var isObject = object !== null && typeof object === 'object'; - var isStr = isObject && isString(object); - - if (!isObject && !isFn && !isArgs) { - throw new TypeError('Object.keys called on a non-object'); - } - - var theKeys = []; - var skipProto = hasProtoEnumBug && isFn; - if ((isStr && hasStringEnumBug) || isArgs) { - for (var i = 0; i < object.length; ++i) { - pushCall(theKeys, $String(i)); - } - } - - if (!isArgs) { - for (var name in object) { - if (!(skipProto && name === 'prototype') && owns(object, name)) { - pushCall(theKeys, $String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - for (var j = 0; j < dontEnumsLength; j++) { - var dontEnum = dontEnums[j]; - if (!(skipConstructor && dontEnum === 'constructor') && owns(object, dontEnum)) { - pushCall(theKeys, dontEnum); - } - } - } - return theKeys; - } - }); - - var keysWorksWithArguments = $Object.keys && (function () { - // Safari 5.0 bug - return $Object.keys(arguments).length === 2; - }(1, 2)); - var keysHasArgumentsLengthBug = $Object.keys && (function () { - var argKeys = $Object.keys(arguments); - return arguments.length !== 1 || argKeys.length !== 1 || argKeys[0] !== 1; - }(1)); - var originalKeys = $Object.keys; - defineProperties($Object, { - keys: function keys(object) { - if (isArguments(object)) { - return originalKeys(arraySlice(object)); - } else { - return originalKeys(object); - } - } - }, !keysWorksWithArguments || keysHasArgumentsLengthBug); - - // - // Date - // ==== - // - - var hasNegativeMonthYearBug = new Date(-3509827329600292).getUTCMonth() !== 0; - var aNegativeTestDate = new Date(-1509842289600292); - var aPositiveTestDate = new Date(1449662400000); - var hasToUTCStringFormatBug = aNegativeTestDate.toUTCString() !== 'Mon, 01 Jan -45875 11:59:59 GMT'; - var hasToDateStringFormatBug; - var hasToStringFormatBug; - var timeZoneOffset = aNegativeTestDate.getTimezoneOffset(); - if (timeZoneOffset < -720) { - hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Tue Jan 02 -45875'; - hasToStringFormatBug = !(/^Thu Dec 10 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/).test(aPositiveTestDate.toString()); - } else { - hasToDateStringFormatBug = aNegativeTestDate.toDateString() !== 'Mon Jan 01 -45875'; - hasToStringFormatBug = !(/^Wed Dec 09 2015 \d\d:\d\d:\d\d GMT[-\+]\d\d\d\d(?: |$)/).test(aPositiveTestDate.toString()); - } - - var originalGetFullYear = call.bind(Date.prototype.getFullYear); - var originalGetMonth = call.bind(Date.prototype.getMonth); - var originalGetDate = call.bind(Date.prototype.getDate); - var originalGetUTCFullYear = call.bind(Date.prototype.getUTCFullYear); - var originalGetUTCMonth = call.bind(Date.prototype.getUTCMonth); - var originalGetUTCDate = call.bind(Date.prototype.getUTCDate); - var originalGetUTCDay = call.bind(Date.prototype.getUTCDay); - var originalGetUTCHours = call.bind(Date.prototype.getUTCHours); - var originalGetUTCMinutes = call.bind(Date.prototype.getUTCMinutes); - var originalGetUTCSeconds = call.bind(Date.prototype.getUTCSeconds); - var originalGetUTCMilliseconds = call.bind(Date.prototype.getUTCMilliseconds); - var dayName = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; - var monthName = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - var daysInMonth = function daysInMonth(month, year) { - return originalGetDate(new Date(year, month, 0)); - }; - - defineProperties(Date.prototype, { - getFullYear: function getFullYear() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var year = originalGetFullYear(this); - if (year < 0 && originalGetMonth(this) > 11) { - return year + 1; - } - return year; - }, - getMonth: function getMonth() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var year = originalGetFullYear(this); - var month = originalGetMonth(this); - if (year < 0 && month > 11) { - return 0; - } - return month; - }, - getDate: function getDate() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var year = originalGetFullYear(this); - var month = originalGetMonth(this); - var date = originalGetDate(this); - if (year < 0 && month > 11) { - if (month === 12) { - return date; - } - var days = daysInMonth(0, year + 1); - return (days - date) + 1; - } - return date; - }, - getUTCFullYear: function getUTCFullYear() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var year = originalGetUTCFullYear(this); - if (year < 0 && originalGetUTCMonth(this) > 11) { - return year + 1; - } - return year; - }, - getUTCMonth: function getUTCMonth() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var year = originalGetUTCFullYear(this); - var month = originalGetUTCMonth(this); - if (year < 0 && month > 11) { - return 0; - } - return month; - }, - getUTCDate: function getUTCDate() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var year = originalGetUTCFullYear(this); - var month = originalGetUTCMonth(this); - var date = originalGetUTCDate(this); - if (year < 0 && month > 11) { - if (month === 12) { - return date; - } - var days = daysInMonth(0, year + 1); - return (days - date) + 1; - } - return date; - } - }, hasNegativeMonthYearBug); - - defineProperties(Date.prototype, { - toUTCString: function toUTCString() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var day = originalGetUTCDay(this); - var date = originalGetUTCDate(this); - var month = originalGetUTCMonth(this); - var year = originalGetUTCFullYear(this); - var hour = originalGetUTCHours(this); - var minute = originalGetUTCMinutes(this); - var second = originalGetUTCSeconds(this); - return dayName[day] + ', ' + - (date < 10 ? '0' + date : date) + ' ' + - monthName[month] + ' ' + - year + ' ' + - (hour < 10 ? '0' + hour : hour) + ':' + - (minute < 10 ? '0' + minute : minute) + ':' + - (second < 10 ? '0' + second : second) + ' GMT'; - } - }, hasNegativeMonthYearBug || hasToUTCStringFormatBug); - - // Opera 12 has `,` - defineProperties(Date.prototype, { - toDateString: function toDateString() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var day = this.getDay(); - var date = this.getDate(); - var month = this.getMonth(); - var year = this.getFullYear(); - return dayName[day] + ' ' + - monthName[month] + ' ' + - (date < 10 ? '0' + date : date) + ' ' + - year; - } - }, hasNegativeMonthYearBug || hasToDateStringFormatBug); - - // can't use defineProperties here because of toString enumeration issue in IE <= 8 - if (hasNegativeMonthYearBug || hasToStringFormatBug) { - Date.prototype.toString = function toString() { - if (!this || !(this instanceof Date)) { - throw new TypeError('this is not a Date object.'); - } - var day = this.getDay(); - var date = this.getDate(); - var month = this.getMonth(); - var year = this.getFullYear(); - var hour = this.getHours(); - var minute = this.getMinutes(); - var second = this.getSeconds(); - var timezoneOffset = this.getTimezoneOffset(); - var hoursOffset = Math.floor(Math.abs(timezoneOffset) / 60); - var minutesOffset = Math.floor(Math.abs(timezoneOffset) % 60); - return dayName[day] + ' ' + - monthName[month] + ' ' + - (date < 10 ? '0' + date : date) + ' ' + - year + ' ' + - (hour < 10 ? '0' + hour : hour) + ':' + - (minute < 10 ? '0' + minute : minute) + ':' + - (second < 10 ? '0' + second : second) + ' GMT' + - (timezoneOffset > 0 ? '-' : '+') + - (hoursOffset < 10 ? '0' + hoursOffset : hoursOffset) + - (minutesOffset < 10 ? '0' + minutesOffset : minutesOffset); - }; - if (supportsDescriptors) { - $Object.defineProperty(Date.prototype, 'toString', { - configurable: true, - enumerable: false, - writable: true - }); - } - } - - // ES5 15.9.5.43 - // http://es5.github.com/#x15.9.5.43 - // This function returns a String value represent the instance in time - // represented by this Date object. The format of the String is the Date Time - // string format defined in 15.9.1.15. All fields are present in the String. - // The time zone is always UTC, denoted by the suffix Z. If the time value of - // this object is not a finite Number a RangeError exception is thrown. - var negativeDate = -62198755200000; - var negativeYearString = '-000001'; - var hasNegativeDateBug = Date.prototype.toISOString && new Date(negativeDate).toISOString().indexOf(negativeYearString) === -1; - var hasSafari51DateBug = Date.prototype.toISOString && new Date(-1).toISOString() !== '1969-12-31T23:59:59.999Z'; - - var getTime = call.bind(Date.prototype.getTime); - - defineProperties(Date.prototype, { - toISOString: function toISOString() { - if (!isFinite(this) || !isFinite(getTime(this))) { - // Adope Photoshop requires the second check. - throw new RangeError('Date.prototype.toISOString called on non-finite value.'); - } - - var year = originalGetUTCFullYear(this); - - var month = originalGetUTCMonth(this); - // see https://github.com/es-shims/es5-shim/issues/111 - year += Math.floor(month / 12); - month = (month % 12 + 12) % 12; - - // the date time string format is specified in 15.9.1.15. - var result = [month + 1, originalGetUTCDate(this), originalGetUTCHours(this), originalGetUTCMinutes(this), originalGetUTCSeconds(this)]; - year = ( - (year < 0 ? '-' : (year > 9999 ? '+' : '')) + - strSlice('00000' + Math.abs(year), (0 <= year && year <= 9999) ? -4 : -6) - ); - - for (var i = 0; i < result.length; ++i) { - // pad months, days, hours, minutes, and seconds to have two digits. - result[i] = strSlice('00' + result[i], -2); - } - // pad milliseconds to have three digits. - return ( - year + '-' + arraySlice(result, 0, 2).join('-') + - 'T' + arraySlice(result, 2).join(':') + '.' + - strSlice('000' + originalGetUTCMilliseconds(this), -3) + 'Z' - ); - } - }, hasNegativeDateBug || hasSafari51DateBug); - - // ES5 15.9.5.44 - // http://es5.github.com/#x15.9.5.44 - // This function provides a String representation of a Date object for use by - // JSON.stringify (15.12.3). - var dateToJSONIsSupported = (function () { - try { - return Date.prototype.toJSON && - new Date(NaN).toJSON() === null && - new Date(negativeDate).toJSON().indexOf(negativeYearString) !== -1 && - Date.prototype.toJSON.call({ // generic - toISOString: function () { return true; } - }); - } catch (e) { - return false; - } - }()); - if (!dateToJSONIsSupported) { - Date.prototype.toJSON = function toJSON(key) { - // When the toJSON method is called with argument key, the following - // steps are taken: - - // 1. Let O be the result of calling ToObject, giving it the this - // value as its argument. - // 2. Let tv be ES.ToPrimitive(O, hint Number). - var O = $Object(this); - var tv = ES.ToPrimitive(O); - // 3. If tv is a Number and is not finite, return null. - if (typeof tv === 'number' && !isFinite(tv)) { - return null; - } - // 4. Let toISO be the result of calling the [[Get]] internal method of - // O with argument "toISOString". - var toISO = O.toISOString; - // 5. If IsCallable(toISO) is false, throw a TypeError exception. - if (!isCallable(toISO)) { - throw new TypeError('toISOString property is not callable'); - } - // 6. Return the result of calling the [[Call]] internal method of - // toISO with O as the this value and an empty argument list. - return toISO.call(O); - - // NOTE 1 The argument is ignored. - - // NOTE 2 The toJSON function is intentionally generic; it does not - // require that its this value be a Date object. Therefore, it can be - // transferred to other kinds of objects for use as a method. However, - // it does require that any such object have a toISOString method. An - // object is free to use the argument key to filter its - // stringification. - }; - } - - // ES5 15.9.4.2 - // http://es5.github.com/#x15.9.4.2 - // based on work shared by Daniel Friesen (dantman) - // http://gist.github.com/303249 - var supportsExtendedYears = Date.parse('+033658-09-27T01:46:40.000Z') === 1e15; - var acceptsInvalidDates = !isNaN(Date.parse('2012-04-04T24:00:00.500Z')) || !isNaN(Date.parse('2012-11-31T23:59:59.000Z')) || !isNaN(Date.parse('2012-12-31T23:59:60.000Z')); - var doesNotParseY2KNewYear = isNaN(Date.parse('2000-01-01T00:00:00.000Z')); - if (doesNotParseY2KNewYear || acceptsInvalidDates || !supportsExtendedYears) { - // XXX global assignment won't work in embeddings that use - // an alternate object for the context. - /* global Date: true */ - /* eslint-disable no-undef */ - var maxSafeUnsigned32Bit = Math.pow(2, 31) - 1; - var hasSafariSignedIntBug = isActualNaN(new Date(1970, 0, 1, 0, 0, 0, maxSafeUnsigned32Bit + 1).getTime()); - /* eslint-disable no-implicit-globals */ - Date = (function (NativeDate) { - /* eslint-enable no-implicit-globals */ - /* eslint-enable no-undef */ - // Date.length === 7 - var DateShim = function Date(Y, M, D, h, m, s, ms) { - var length = arguments.length; - var date; - if (this instanceof NativeDate) { - var seconds = s; - var millis = ms; - if (hasSafariSignedIntBug && length >= 7 && ms > maxSafeUnsigned32Bit) { - // work around a Safari 8/9 bug where it treats the seconds as signed - var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit; - var sToShift = Math.floor(msToShift / 1e3); - seconds += sToShift; - millis -= sToShift * 1e3; - } - date = length === 1 && $String(Y) === Y ? // isString(Y) - // We explicitly pass it through parse: - new NativeDate(DateShim.parse(Y)) : - // We have to manually make calls depending on argument - // length here - length >= 7 ? new NativeDate(Y, M, D, h, m, seconds, millis) : - length >= 6 ? new NativeDate(Y, M, D, h, m, seconds) : - length >= 5 ? new NativeDate(Y, M, D, h, m) : - length >= 4 ? new NativeDate(Y, M, D, h) : - length >= 3 ? new NativeDate(Y, M, D) : - length >= 2 ? new NativeDate(Y, M) : - length >= 1 ? new NativeDate(Y instanceof NativeDate ? +Y : Y) : - new NativeDate(); - } else { - date = NativeDate.apply(this, arguments); - } - if (!isPrimitive(date)) { - // Prevent mixups with unfixed Date object - defineProperties(date, { constructor: DateShim }, true); - } - return date; - }; - - // 15.9.1.15 Date Time String Format. - var isoDateExpression = new RegExp('^' + - '(\\d{4}|[+-]\\d{6})' + // four-digit year capture or sign + - // 6-digit extended year - '(?:-(\\d{2})' + // optional month capture - '(?:-(\\d{2})' + // optional day capture - '(?:' + // capture hours:minutes:seconds.milliseconds - 'T(\\d{2})' + // hours capture - ':(\\d{2})' + // minutes capture - '(?:' + // optional :seconds.milliseconds - ':(\\d{2})' + // seconds capture - '(?:(\\.\\d{1,}))?' + // milliseconds capture - ')?' + - '(' + // capture UTC offset component - 'Z|' + // UTC capture - '(?:' + // offset specifier +/-hours:minutes - '([-+])' + // sign capture - '(\\d{2})' + // hours offset capture - ':(\\d{2})' + // minutes offset capture - ')' + - ')?)?)?)?' + - '$'); - - var months = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]; - - var dayFromMonth = function dayFromMonth(year, month) { - var t = month > 1 ? 1 : 0; - return ( - months[month] + - Math.floor((year - 1969 + t) / 4) - - Math.floor((year - 1901 + t) / 100) + - Math.floor((year - 1601 + t) / 400) + - 365 * (year - 1970) - ); - }; - - var toUTC = function toUTC(t) { - var s = 0; - var ms = t; - if (hasSafariSignedIntBug && ms > maxSafeUnsigned32Bit) { - // work around a Safari 8/9 bug where it treats the seconds as signed - var msToShift = Math.floor(ms / maxSafeUnsigned32Bit) * maxSafeUnsigned32Bit; - var sToShift = Math.floor(msToShift / 1e3); - s += sToShift; - ms -= sToShift * 1e3; - } - return $Number(new NativeDate(1970, 0, 1, 0, 0, s, ms)); - }; - - // Copy any custom methods a 3rd party library may have added - for (var key in NativeDate) { - if (owns(NativeDate, key)) { - DateShim[key] = NativeDate[key]; - } - } - - // Copy "native" methods explicitly; they may be non-enumerable - defineProperties(DateShim, { - now: NativeDate.now, - UTC: NativeDate.UTC - }, true); - DateShim.prototype = NativeDate.prototype; - defineProperties(DateShim.prototype, { - constructor: DateShim - }, true); - - // Upgrade Date.parse to handle simplified ISO 8601 strings - var parseShim = function parse(string) { - var match = isoDateExpression.exec(string); - if (match) { - // parse months, days, hours, minutes, seconds, and milliseconds - // provide default values if necessary - // parse the UTC offset component - var year = $Number(match[1]), - month = $Number(match[2] || 1) - 1, - day = $Number(match[3] || 1) - 1, - hour = $Number(match[4] || 0), - minute = $Number(match[5] || 0), - second = $Number(match[6] || 0), - millisecond = Math.floor($Number(match[7] || 0) * 1000), - // When time zone is missed, local offset should be used - // (ES 5.1 bug) - // see https://bugs.ecmascript.org/show_bug.cgi?id=112 - isLocalTime = Boolean(match[4] && !match[8]), - signOffset = match[9] === '-' ? 1 : -1, - hourOffset = $Number(match[10] || 0), - minuteOffset = $Number(match[11] || 0), - result; - var hasMinutesOrSecondsOrMilliseconds = minute > 0 || second > 0 || millisecond > 0; - if ( - hour < (hasMinutesOrSecondsOrMilliseconds ? 24 : 25) && - minute < 60 && second < 60 && millisecond < 1000 && - month > -1 && month < 12 && hourOffset < 24 && - minuteOffset < 60 && // detect invalid offsets - day > -1 && - day < (dayFromMonth(year, month + 1) - dayFromMonth(year, month)) - ) { - result = ( - (dayFromMonth(year, month) + day) * 24 + - hour + - hourOffset * signOffset - ) * 60; - result = ( - (result + minute + minuteOffset * signOffset) * 60 + - second - ) * 1000 + millisecond; - if (isLocalTime) { - result = toUTC(result); - } - if (-8.64e15 <= result && result <= 8.64e15) { - return result; - } - } - return NaN; - } - return NativeDate.parse.apply(this, arguments); - }; - defineProperties(DateShim, { parse: parseShim }); - - return DateShim; - }(Date)); - /* global Date: false */ - } - - // ES5 15.9.4.4 - // http://es5.github.com/#x15.9.4.4 - if (!Date.now) { - Date.now = function now() { - return new Date().getTime(); - }; - } - - // - // Number - // ====== - // - - // ES5.1 15.7.4.5 - // http://es5.github.com/#x15.7.4.5 - var hasToFixedBugs = NumberPrototype.toFixed && ( - (0.00008).toFixed(3) !== '0.000' || - (0.9).toFixed(0) !== '1' || - (1.255).toFixed(2) !== '1.25' || - (1000000000000000128).toFixed(0) !== '1000000000000000128' - ); - - var toFixedHelpers = { - base: 1e7, - size: 6, - data: [0, 0, 0, 0, 0, 0], - multiply: function multiply(n, c) { - var i = -1; - var c2 = c; - while (++i < toFixedHelpers.size) { - c2 += n * toFixedHelpers.data[i]; - toFixedHelpers.data[i] = c2 % toFixedHelpers.base; - c2 = Math.floor(c2 / toFixedHelpers.base); - } - }, - divide: function divide(n) { - var i = toFixedHelpers.size; - var c = 0; - while (--i >= 0) { - c += toFixedHelpers.data[i]; - toFixedHelpers.data[i] = Math.floor(c / n); - c = (c % n) * toFixedHelpers.base; - } - }, - numToString: function numToString() { - var i = toFixedHelpers.size; - var s = ''; - while (--i >= 0) { - if (s !== '' || i === 0 || toFixedHelpers.data[i] !== 0) { - var t = $String(toFixedHelpers.data[i]); - if (s === '') { - s = t; - } else { - s += strSlice('0000000', 0, 7 - t.length) + t; - } - } - } - return s; - }, - pow: function pow(x, n, acc) { - return (n === 0 ? acc : (n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc))); - }, - log: function log(x) { - var n = 0; - var x2 = x; - while (x2 >= 4096) { - n += 12; - x2 /= 4096; - } - while (x2 >= 2) { - n += 1; - x2 /= 2; - } - return n; - } - }; - - var toFixedShim = function toFixed(fractionDigits) { - var f, x, s, m, e, z, j, k; - - // Test for NaN and round fractionDigits down - f = $Number(fractionDigits); - f = isActualNaN(f) ? 0 : Math.floor(f); - - if (f < 0 || f > 20) { - throw new RangeError('Number.toFixed called with invalid number of decimals'); - } - - x = $Number(this); - - if (isActualNaN(x)) { - return 'NaN'; - } - - // If it is too big or small, return the string value of the number - if (x <= -1e21 || x >= 1e21) { - return $String(x); - } - - s = ''; - - if (x < 0) { - s = '-'; - x = -x; - } - - m = '0'; - - if (x > 1e-21) { - // 1e-21 < x < 1e21 - // -70 < log2(x) < 70 - e = toFixedHelpers.log(x * toFixedHelpers.pow(2, 69, 1)) - 69; - z = (e < 0 ? x * toFixedHelpers.pow(2, -e, 1) : x / toFixedHelpers.pow(2, e, 1)); - z *= 0x10000000000000; // Math.pow(2, 52); - e = 52 - e; - - // -18 < e < 122 - // x = z / 2 ^ e - if (e > 0) { - toFixedHelpers.multiply(0, z); - j = f; - - while (j >= 7) { - toFixedHelpers.multiply(1e7, 0); - j -= 7; - } - - toFixedHelpers.multiply(toFixedHelpers.pow(10, j, 1), 0); - j = e - 1; - - while (j >= 23) { - toFixedHelpers.divide(1 << 23); - j -= 23; - } - - toFixedHelpers.divide(1 << j); - toFixedHelpers.multiply(1, 1); - toFixedHelpers.divide(2); - m = toFixedHelpers.numToString(); - } else { - toFixedHelpers.multiply(0, z); - toFixedHelpers.multiply(1 << (-e), 0); - m = toFixedHelpers.numToString() + strSlice('0.00000000000000000000', 2, 2 + f); - } - } - - if (f > 0) { - k = m.length; - - if (k <= f) { - m = s + strSlice('0.0000000000000000000', 0, f - k + 2) + m; - } else { - m = s + strSlice(m, 0, k - f) + '.' + strSlice(m, k - f); - } - } else { - m = s + m; - } - - return m; - }; - defineProperties(NumberPrototype, { toFixed: toFixedShim }, hasToFixedBugs); - - var hasToPrecisionUndefinedBug = (function () { - try { - return 1.0.toPrecision(undefined) === '1'; - } catch (e) { - return true; - } - }()); - var originalToPrecision = NumberPrototype.toPrecision; - defineProperties(NumberPrototype, { - toPrecision: function toPrecision(precision) { - return typeof precision === 'undefined' ? originalToPrecision.call(this) : originalToPrecision.call(this, precision); - } - }, hasToPrecisionUndefinedBug); - - // - // String - // ====== - // - - // ES5 15.5.4.14 - // http://es5.github.com/#x15.5.4.14 - - // [bugfix, IE lt 9, firefox 4, Konqueror, Opera, obscure browsers] - // Many browsers do not split properly with regular expressions or they - // do not perform the split correctly under obscure conditions. - // See http://blog.stevenlevithan.com/archives/cross-browser-split - // I've tested in many browsers and this seems to cover the deviant ones: - // 'ab'.split(/(?:ab)*/) should be ["", ""], not [""] - // '.'.split(/(.?)(.?)/) should be ["", ".", "", ""], not ["", ""] - // 'tesst'.split(/(s)*/) should be ["t", undefined, "e", "s", "t"], not - // [undefined, "t", undefined, "e", ...] - // ''.split(/.?/) should be [], not [""] - // '.'.split(/()()/) should be ["."], not ["", "", "."] - - if ( - 'ab'.split(/(?:ab)*/).length !== 2 || - '.'.split(/(.?)(.?)/).length !== 4 || - 'tesst'.split(/(s)*/)[1] === 't' || - 'test'.split(/(?:)/, -1).length !== 4 || - ''.split(/.?/).length || - '.'.split(/()()/).length > 1 - ) { - (function () { - var compliantExecNpcg = typeof (/()??/).exec('')[1] === 'undefined'; // NPCG: nonparticipating capturing group - var maxSafe32BitInt = Math.pow(2, 32) - 1; - - StringPrototype.split = function (separator, limit) { - var string = String(this); - if (typeof separator === 'undefined' && limit === 0) { - return []; - } - - // If `separator` is not a regex, use native split - if (!isRegex(separator)) { - return strSplit(this, separator, limit); - } - - var output = []; - var flags = (separator.ignoreCase ? 'i' : '') + - (separator.multiline ? 'm' : '') + - (separator.unicode ? 'u' : '') + // in ES6 - (separator.sticky ? 'y' : ''), // Firefox 3+ and ES6 - lastLastIndex = 0, - // Make `global` and avoid `lastIndex` issues by working with a copy - separator2, match, lastIndex, lastLength; - var separatorCopy = new RegExp(separator.source, flags + 'g'); - if (!compliantExecNpcg) { - // Doesn't need flags gy, but they don't hurt - separator2 = new RegExp('^' + separatorCopy.source + '$(?!\\s)', flags); - } - /* Values for `limit`, per the spec: - * If undefined: 4294967295 // maxSafe32BitInt - * If 0, Infinity, or NaN: 0 - * If positive number: limit = Math.floor(limit); if (limit > 4294967295) limit -= 4294967296; - * If negative number: 4294967296 - Math.floor(Math.abs(limit)) - * If other: Type-convert, then use the above rules - */ - var splitLimit = typeof limit === 'undefined' ? maxSafe32BitInt : ES.ToUint32(limit); - match = separatorCopy.exec(string); - while (match) { - // `separatorCopy.lastIndex` is not reliable cross-browser - lastIndex = match.index + match[0].length; - if (lastIndex > lastLastIndex) { - pushCall(output, strSlice(string, lastLastIndex, match.index)); - // Fix browsers whose `exec` methods don't consistently return `undefined` for - // nonparticipating capturing groups - if (!compliantExecNpcg && match.length > 1) { - /* eslint-disable no-loop-func */ - match[0].replace(separator2, function () { - for (var i = 1; i < arguments.length - 2; i++) { - if (typeof arguments[i] === 'undefined') { - match[i] = void 0; - } - } - }); - /* eslint-enable no-loop-func */ - } - if (match.length > 1 && match.index < string.length) { - array_push.apply(output, arraySlice(match, 1)); - } - lastLength = match[0].length; - lastLastIndex = lastIndex; - if (output.length >= splitLimit) { - break; - } - } - if (separatorCopy.lastIndex === match.index) { - separatorCopy.lastIndex++; // Avoid an infinite loop - } - match = separatorCopy.exec(string); - } - if (lastLastIndex === string.length) { - if (lastLength || !separatorCopy.test('')) { - pushCall(output, ''); - } - } else { - pushCall(output, strSlice(string, lastLastIndex)); - } - return output.length > splitLimit ? arraySlice(output, 0, splitLimit) : output; - }; - }()); - - // [bugfix, chrome] - // If separator is undefined, then the result array contains just one String, - // which is the this value (converted to a String). If limit is not undefined, - // then the output array is truncated so that it contains no more than limit - // elements. - // "0".split(undefined, 0) -> [] - } else if ('0'.split(void 0, 0).length) { - StringPrototype.split = function split(separator, limit) { - if (typeof separator === 'undefined' && limit === 0) { - return []; - } - return strSplit(this, separator, limit); - }; - } - - var str_replace = StringPrototype.replace; - var replaceReportsGroupsCorrectly = (function () { - var groups = []; - 'x'.replace(/x(.)?/g, function (match, group) { - pushCall(groups, group); - }); - return groups.length === 1 && typeof groups[0] === 'undefined'; - }()); - - if (!replaceReportsGroupsCorrectly) { - StringPrototype.replace = function replace(searchValue, replaceValue) { - var isFn = isCallable(replaceValue); - var hasCapturingGroups = isRegex(searchValue) && (/\)[*?]/).test(searchValue.source); - if (!isFn || !hasCapturingGroups) { - return str_replace.call(this, searchValue, replaceValue); - } else { - var wrappedReplaceValue = function (match) { - var length = arguments.length; - var originalLastIndex = searchValue.lastIndex; - searchValue.lastIndex = 0; - var args = searchValue.exec(match) || []; - searchValue.lastIndex = originalLastIndex; - pushCall(args, arguments[length - 2], arguments[length - 1]); - return replaceValue.apply(this, args); - }; - return str_replace.call(this, searchValue, wrappedReplaceValue); - } - }; - } - - // ECMA-262, 3rd B.2.3 - // Not an ECMAScript standard, although ECMAScript 3rd Edition has a - // non-normative section suggesting uniform semantics and it should be - // normalized across all browsers - // [bugfix, IE lt 9] IE < 9 substr() with negative value not working in IE - var string_substr = StringPrototype.substr; - var hasNegativeSubstrBug = ''.substr && '0b'.substr(-1) !== 'b'; - defineProperties(StringPrototype, { - substr: function substr(start, length) { - var normalizedStart = start; - if (start < 0) { - normalizedStart = max(this.length + start, 0); - } - return string_substr.call(this, normalizedStart, length); - } - }, hasNegativeSubstrBug); - - // ES5 15.5.4.20 - // whitespace from: http://es5.github.io/#x15.5.4.20 - var ws = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003' + - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028' + - '\u2029\uFEFF'; - var zeroWidth = '\u200b'; - var wsRegexChars = '[' + ws + ']'; - var trimBeginRegexp = new RegExp('^' + wsRegexChars + wsRegexChars + '*'); - var trimEndRegexp = new RegExp(wsRegexChars + wsRegexChars + '*$'); - var hasTrimWhitespaceBug = StringPrototype.trim && (ws.trim() || !zeroWidth.trim()); - defineProperties(StringPrototype, { - // http://blog.stevenlevithan.com/archives/faster-trim-javascript - // http://perfectionkills.com/whitespace-deviations/ - trim: function trim() { - if (typeof this === 'undefined' || this === null) { - throw new TypeError("can't convert " + this + ' to object'); - } - return $String(this).replace(trimBeginRegexp, '').replace(trimEndRegexp, ''); - } - }, hasTrimWhitespaceBug); - var trim = call.bind(String.prototype.trim); - - var hasLastIndexBug = StringPrototype.lastIndexOf && 'abcあい'.lastIndexOf('あい', 2) !== -1; - defineProperties(StringPrototype, { - lastIndexOf: function lastIndexOf(searchString) { - if (typeof this === 'undefined' || this === null) { - throw new TypeError("can't convert " + this + ' to object'); - } - var S = $String(this); - var searchStr = $String(searchString); - var numPos = arguments.length > 1 ? $Number(arguments[1]) : NaN; - var pos = isActualNaN(numPos) ? Infinity : ES.ToInteger(numPos); - var start = min(max(pos, 0), S.length); - var searchLen = searchStr.length; - var k = start + searchLen; - while (k > 0) { - k = max(0, k - searchLen); - var index = strIndexOf(strSlice(S, k, start + searchLen), searchStr); - if (index !== -1) { - return k + index; - } - } - return -1; - } - }, hasLastIndexBug); - - var originalLastIndexOf = StringPrototype.lastIndexOf; - defineProperties(StringPrototype, { - lastIndexOf: function lastIndexOf(searchString) { - return originalLastIndexOf.apply(this, arguments); - } - }, StringPrototype.lastIndexOf.length !== 1); - - // ES-5 15.1.2.2 - /* eslint-disable radix */ - if (parseInt(ws + '08') !== 8 || parseInt(ws + '0x16') !== 22) { - /* eslint-enable radix */ - /* global parseInt: true */ - parseInt = (function (origParseInt) { - var hexRegex = /^[\-+]?0[xX]/; - return function parseInt(str, radix) { - var string = trim(String(str)); - var defaultedRadix = $Number(radix) || (hexRegex.test(string) ? 16 : 10); - return origParseInt(string, defaultedRadix); - }; - }(parseInt)); - } - - // https://es5.github.io/#x15.1.2.3 - if (1 / parseFloat('-0') !== -Infinity) { - /* global parseFloat: true */ - parseFloat = (function (origParseFloat) { - return function parseFloat(string) { - var inputString = trim(String(string)); - var result = origParseFloat(inputString); - return result === 0 && strSlice(inputString, 0, 1) === '-' ? -0 : result; - }; - }(parseFloat)); - } - - if (String(new RangeError('test')) !== 'RangeError: test') { - var errorToStringShim = function toString() { - if (typeof this === 'undefined' || this === null) { - throw new TypeError("can't convert " + this + ' to object'); - } - var name = this.name; - if (typeof name === 'undefined') { - name = 'Error'; - } else if (typeof name !== 'string') { - name = $String(name); - } - var msg = this.message; - if (typeof msg === 'undefined') { - msg = ''; - } else if (typeof msg !== 'string') { - msg = $String(msg); - } - if (!name) { - return msg; - } - if (!msg) { - return name; - } - return name + ': ' + msg; - }; - // can't use defineProperties here because of toString enumeration issue in IE <= 8 - Error.prototype.toString = errorToStringShim; - } - - if (supportsDescriptors) { - var ensureNonEnumerable = function (obj, prop) { - if (isEnum(obj, prop)) { - var desc = Object.getOwnPropertyDescriptor(obj, prop); - if (desc.configurable) { - desc.enumerable = false; - Object.defineProperty(obj, prop, desc); - } - } - }; - ensureNonEnumerable(Error.prototype, 'message'); - if (Error.prototype.message !== '') { - Error.prototype.message = ''; - } - ensureNonEnumerable(Error.prototype, 'name'); - } - - if (String(/a/mig) !== '/a/gim') { - var regexToString = function toString() { - var str = '/' + this.source + '/'; - if (this.global) { - str += 'g'; - } - if (this.ignoreCase) { - str += 'i'; - } - if (this.multiline) { - str += 'm'; - } - return str; - }; - // can't use defineProperties here because of toString enumeration issue in IE <= 8 - RegExp.prototype.toString = regexToString; - } -})); - -'use strict'; -/*jslint eqeq: true*/ - -Handlebars.registerHelper('sanitize', function (text) { - var result; - - if (text === undefined) { return ''; } - - result = sanitizeHtml(text, { - allowedTags: [ 'div', 'span', 'b', 'i', 'em', 'strong', 'a' ], - allowedAttributes: { - 'div': [ 'class' ], - 'span': [ 'class' ], - 'a': [ 'href' ] - } - }); - - return new Handlebars.SafeString(result); -}); - -Handlebars.registerHelper('renderTextParam', function(param) { - var result, type = 'text', idAtt = ''; - var paramType = param.type || param.schema && param.schema.type || ''; - var isArray = paramType.toLowerCase() === 'array' || param.allowMultiple; - var defaultValue = isArray && Array.isArray(param.default) ? param.default.join('\n') : param.default; - var name = Handlebars.Utils.escapeExpression(param.name); - var valueId = Handlebars.Utils.escapeExpression(param.valueId); - paramType = Handlebars.Utils.escapeExpression(paramType); - - var dataVendorExtensions = Object.keys(param).filter(function(property) { - // filter X-data- properties - return property.match(/^X-data-/i) !== null; - }).reduce(function(result, property) { - // remove X- from property name, so it results in html attributes like data-foo='bar' - return result += ' ' + property.substring(2, property.length) + '=\'' + param[property] + '\''; - }, ''); - - if(param.format && param.format === 'password') { - type = 'password'; - } - - if(valueId) { - idAtt = ' id=\'' + valueId + '\''; - } - - defaultValue = sanitizeHtml(defaultValue); - - if(isArray) { - result = ''; - } else { - var parameterClass = 'parameter'; - if(param.required) { - parameterClass += ' required'; - } - result = ''; - } - return new Handlebars.SafeString(result); -}); - -Handlebars.registerHelper('ifCond', function (v1, operator, v2, options) { - - switch (operator) { - case '==': - return (v1 == v2) ? options.fn(this) : options.inverse(this); - case '===': - return (v1 === v2) ? options.fn(this) : options.inverse(this); - case '<': - return (v1 < v2) ? options.fn(this) : options.inverse(this); - case '<=': - return (v1 <= v2) ? options.fn(this) : options.inverse(this); - case '>': - return (v1 > v2) ? options.fn(this) : options.inverse(this); - case '>=': - return (v1 >= v2) ? options.fn(this) : options.inverse(this); - case '&&': - return (v1 && v2) ? options.fn(this) : options.inverse(this); - case '||': - return (v1 || v2) ? options.fn(this) : options.inverse(this); - default: - return options.inverse(this); - } -}); - -Handlebars.registerHelper('escape', function (value) { - var text = Handlebars.Utils.escapeExpression(value); - - return new Handlebars.SafeString(text); -}); -(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.sanitizeHtml=f()}})(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&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?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o=0){globRegex.push(quoteRegexp(name).replace(/\\\*/g,".*"))}else{allowedAttributesMap[tag].push(name)}});allowedAttributesGlobMap[tag]=new RegExp("^("+globRegex.join("|")+")$")})}var allowedClassesMap={};each(options.allowedClasses,function(classes,tag){if(allowedAttributesMap){if(!has(allowedAttributesMap,tag)){allowedAttributesMap[tag]=[]}allowedAttributesMap[tag].push("class")}allowedClassesMap[tag]=classes});var transformTagsMap={};var transformTagsAll;each(options.transformTags,function(transform,tag){var transFun;if(typeof transform==="function"){transFun=transform}else if(typeof transform==="string"){transFun=sanitizeHtml.simpleTransform(transform)}if(tag==="*"){transformTagsAll=transFun}else{transformTagsMap[tag]=transFun}});var depth=0;var stack=[];var skipMap={};var transformMap={};var skipText=false;var skipTextDepth=0;var parser=new htmlparser.Parser({onopentag:function(name,attribs){if(skipText){skipTextDepth++;return}var frame=new Frame(name,attribs);stack.push(frame);var skip=false;var hasText=frame.text?true:false;var transformedTag;if(has(transformTagsMap,name)){transformedTag=transformTagsMap[name](name,attribs);frame.attribs=attribs=transformedTag.attribs;if(transformedTag.text!==undefined){frame.innerText=transformedTag.text}if(name!==transformedTag.tagName){frame.name=name=transformedTag.tagName;transformMap[depth]=transformedTag.tagName}}if(transformTagsAll){transformedTag=transformTagsAll(name,attribs);frame.attribs=attribs=transformedTag.attribs;if(name!==transformedTag.tagName){frame.name=name=transformedTag.tagName;transformMap[depth]=transformedTag.tagName}}if(options.allowedTags&&options.allowedTags.indexOf(name)===-1){skip=true;if(nonTextTagsArray.indexOf(name)!==-1){skipText=true;skipTextDepth=1}skipMap[depth]=true}depth++;if(skip){return}result+="<"+name;if(!allowedAttributesMap||has(allowedAttributesMap,name)||allowedAttributesMap["*"]){each(attribs,function(value,a){if(!allowedAttributesMap||has(allowedAttributesMap,name)&&allowedAttributesMap[name].indexOf(a)!==-1||allowedAttributesMap["*"]&&allowedAttributesMap["*"].indexOf(a)!==-1||has(allowedAttributesGlobMap,name)&&allowedAttributesGlobMap[name].test(a)||allowedAttributesGlobMap["*"]&&allowedAttributesGlobMap["*"].test(a)){if(a==="href"||a==="src"){if(naughtyHref(name,value)){delete frame.attribs[a];return}}if(a==="class"){value=filterClasses(value,allowedClassesMap[name]);if(!value.length){delete frame.attribs[a];return}}result+=" "+a;if(value.length){result+='="'+escapeHtml(value)+'"'}}else{delete frame.attribs[a]}})}if(options.selfClosing.indexOf(name)!==-1){result+=" />"}else{result+=">";if(frame.innerText&&!hasText&&!options.textFilter){result+=frame.innerText}}},ontext:function(text){if(skipText){return}var lastFrame=stack[stack.length-1];var tag;if(lastFrame){tag=lastFrame.tag;text=lastFrame.innerText!==undefined?lastFrame.innerText:text}if(tag==="script"||tag==="style"){result+=text}else{var escaped=escapeHtml(text);if(options.textFilter){result+=options.textFilter(escaped)}else{result+=escaped}}if(stack.length){var frame=stack[stack.length-1];frame.text+=text}},onclosetag:function(name){if(skipText){skipTextDepth--;if(!skipTextDepth){skipText=false}else{return}}var frame=stack.pop();if(!frame){return}skipText=false;depth--;if(skipMap[depth]){delete skipMap[depth];frame.updateParentNodeText();return}if(transformMap[depth]){name=transformMap[depth];delete transformMap[depth]}if(options.exclusiveFilter&&options.exclusiveFilter(frame)){result=result.substr(0,frame.tagPosition);return}frame.updateParentNodeText();if(options.selfClosing.indexOf(name)!==-1){return}result+=""}},options.parser);parser.write(html);parser.end();return result;function escapeHtml(s){if(typeof s!=="string"){s=s+""}return s.replace(/\&/g,"&").replace(//g,">").replace(/\"/g,""")}function naughtyHref(name,href){href=href.replace(/[\x00-\x20]+/g,"");href=href.replace(/<\!\-\-.*?\-\-\>/g,"");var matches=href.match(/^([a-zA-Z]+)\:/);if(!matches){return false}var scheme=matches[1].toLowerCase();if(has(options.allowedSchemesByTag,name)){return options.allowedSchemesByTag[name].indexOf(scheme)===-1}return!options.allowedSchemes||options.allowedSchemes.indexOf(scheme)===-1}function filterClasses(classes,allowed){if(!allowed){return classes}classes=classes.split(/\s+/);return classes.filter(function(clss){return allowed.indexOf(clss)!==-1}).join(" ")}}var htmlParserDefaults={decodeEntities:true};sanitizeHtml.defaults={allowedTags:["h3","h4","h5","h6","blockquote","p","a","ul","ol","nl","li","b","i","strong","em","strike","code","hr","br","div","table","thead","caption","tbody","tr","th","td","pre"],allowedAttributes:{a:["href","name","target"],img:["src"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto"],allowedSchemesByTag:{}};sanitizeHtml.simpleTransform=function(newTagName,newAttribs,merge){merge=merge===undefined?true:merge;newAttribs=newAttribs||{};return function(tagName,attribs){var attrib;if(merge){for(attrib in newAttribs){attribs[attrib]=newAttribs[attrib]}}else{attribs=newAttribs}return{tagName:newTagName,attribs:attribs}}}},{htmlparser2:36,"regexp-quote":54,xtend:58}],2:[function(require,module,exports){"use strict";exports.toByteArray=toByteArray;exports.fromByteArray=fromByteArray;var lookup=[];var revLookup=[];var Arr=typeof Uint8Array!=="undefined"?Uint8Array:Array;function init(){var code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(var i=0,len=code.length;i0){throw new Error("Invalid string. Length must be a multiple of 4")}placeHolders=b64[len-2]==="="?2:b64[len-1]==="="?1:0;arr=new Arr(len*3/4-placeHolders);l=placeHolders>0?len-4:len;var L=0;for(i=0,j=0;i>16&255;arr[L++]=tmp>>8&255;arr[L++]=tmp&255}if(placeHolders===2){tmp=revLookup[b64.charCodeAt(i)]<<2|revLookup[b64.charCodeAt(i+1)]>>4;arr[L++]=tmp&255}else if(placeHolders===1){tmp=revLookup[b64.charCodeAt(i)]<<10|revLookup[b64.charCodeAt(i+1)]<<4|revLookup[b64.charCodeAt(i+2)]>>2;arr[L++]=tmp>>8&255;arr[L++]=tmp&255}return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp;var output=[];for(var i=start;ilen2?len2:i+maxChunkLength))}if(extraBytes===1){tmp=uint8[len-1];output+=lookup[tmp>>2];output+=lookup[tmp<<4&63];output+="=="}else if(extraBytes===2){tmp=(uint8[len-2]<<8)+uint8[len-1];output+=lookup[tmp>>10];output+=lookup[tmp>>4&63];output+=lookup[tmp<<2&63];output+="="}parts.push(output);return parts.join("")}},{}],3:[function(require,module,exports){},{}],4:[function(require,module,exports){(function(global){"use strict";var buffer=require("buffer");var Buffer=buffer.Buffer;var SlowBuffer=buffer.SlowBuffer;var MAX_LEN=buffer.kMaxLength||2147483647;exports.alloc=function alloc(size,fill,encoding){if(typeof Buffer.alloc==="function"){return Buffer.alloc(size,fill,encoding)}if(typeof encoding==="number"){throw new TypeError("encoding must not be number")}if(typeof size!=="number"){throw new TypeError("size must be a number")}if(size>MAX_LEN){throw new RangeError("size is too large")}var enc=encoding;var _fill=fill;if(_fill===undefined){enc=undefined;_fill=0}var buf=new Buffer(size);if(typeof _fill==="string"){var fillBuf=new Buffer(_fill,enc);var flen=fillBuf.length;var i=-1;while(++iMAX_LEN){throw new RangeError("size is too large")}return new Buffer(size)};exports.from=function from(value,encodingOrOffset,length){if(typeof Buffer.from==="function"&&(!global.Uint8Array||Uint8Array.from!==Buffer.from)){return Buffer.from(value,encodingOrOffset,length)}if(typeof value==="number"){throw new TypeError('"value" argument must not be a number')}if(typeof value==="string"){return new Buffer(value,encodingOrOffset)}if(typeof ArrayBuffer!=="undefined"&&value instanceof ArrayBuffer){var offset=encodingOrOffset;if(arguments.length===1){return new Buffer(value)}if(typeof offset==="undefined"){offset=0}var len=length;if(typeof len==="undefined"){len=value.byteLength-offset}if(offset>=value.byteLength){throw new RangeError("'offset' is out of bounds")}if(len>value.byteLength-offset){throw new RangeError("'length' is out of bounds")}return new Buffer(value.slice(offset,offset+len))}if(Buffer.isBuffer(value)){var out=new Buffer(value.length);value.copy(out,0,0,value.length);return out}if(value){if(Array.isArray(value)||typeof ArrayBuffer!=="undefined"&&value.buffer instanceof ArrayBuffer||"length"in value){return new Buffer(value)}if(value.type==="Buffer"&&Array.isArray(value.data)){return new Buffer(value.data)}}throw new TypeError("First argument must be a string, Buffer, "+"ArrayBuffer, Array, or array-like object.")};exports.allocUnsafeSlow=function allocUnsafeSlow(size){if(typeof Buffer.allocUnsafeSlow==="function"){return Buffer.allocUnsafeSlow(size)}if(typeof size!=="number"){throw new TypeError("size must be a number")}if(size>=MAX_LEN){throw new RangeError("size is too large")}return new SlowBuffer(size)}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{buffer:5}],5:[function(require,module,exports){(function(global){"use strict";var base64=require("base64-js");var ieee754=require("ieee754");var isArray=require("isarray");exports.Buffer=Buffer;exports.SlowBuffer=SlowBuffer;exports.INSPECT_MAX_BYTES=50;Buffer.TYPED_ARRAY_SUPPORT=global.TYPED_ARRAY_SUPPORT!==undefined?global.TYPED_ARRAY_SUPPORT:typedArraySupport();exports.kMaxLength=kMaxLength();function typedArraySupport(){try{var arr=new Uint8Array(1);arr.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}};return arr.foo()===42&&typeof arr.subarray==="function"&&arr.subarray(1,1).byteLength===0}catch(e){return false}}function kMaxLength(){return Buffer.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function createBuffer(that,length){if(kMaxLength()=kMaxLength()){throw new RangeError("Attempt to allocate Buffer larger than maximum "+"size: 0x"+kMaxLength().toString(16)+" bytes")}return length|0}function SlowBuffer(length){if(+length!=length){length=0}return Buffer.alloc(+length)}Buffer.isBuffer=function isBuffer(b){return!!(b!=null&&b._isBuffer)};Buffer.compare=function compare(a,b){if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b)){throw new TypeError("Arguments must be Buffers")}if(a===b)return 0;var x=a.length;var y=b.length;for(var i=0,len=Math.min(x,y);i>>1;case"base64":return base64ToBytes(string).length;default:if(loweredCase)return utf8ToBytes(string).length;encoding=(""+encoding).toLowerCase();loweredCase=true}}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){var loweredCase=false;if(start===undefined||start<0){start=0}if(start>this.length){return""}if(end===undefined||end>this.length){end=this.length}if(end<=0){return""}end>>>=0;start>>>=0;if(end<=start){return""}if(!encoding)encoding="utf8";while(true){switch(encoding){case"hex":return hexSlice(this,start,end);case"utf8":case"utf-8":return utf8Slice(this,start,end);case"ascii":return asciiSlice(this,start,end);case"latin1":case"binary":return latin1Slice(this,start,end);case"base64":return base64Slice(this,start,end);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return utf16leSlice(this,start,end);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(encoding+"").toLowerCase();loweredCase=true}}}Buffer.prototype._isBuffer=true;function swap(b,n,m){var i=b[n];b[n]=b[m];b[m]=i}Buffer.prototype.swap16=function swap16(){var len=this.length;if(len%2!==0){throw new RangeError("Buffer size must be a multiple of 16-bits")}for(var i=0;i0){str=this.toString("hex",0,max).match(/.{2}/g).join(" ");if(this.length>max)str+=" ... "}return""};Buffer.prototype.compare=function compare(target,start,end,thisStart,thisEnd){if(!Buffer.isBuffer(target)){throw new TypeError("Argument must be a Buffer")}if(start===undefined){start=0}if(end===undefined){end=target?target.length:0}if(thisStart===undefined){thisStart=0}if(thisEnd===undefined){thisEnd=this.length}if(start<0||end>target.length||thisStart<0||thisEnd>this.length){throw new RangeError("out of range index")}if(thisStart>=thisEnd&&start>=end){return 0}if(thisStart>=thisEnd){return-1}if(start>=end){return 1}start>>>=0;end>>>=0;thisStart>>>=0;thisEnd>>>=0;if(this===target)return 0;var x=thisEnd-thisStart;var y=end-start;var len=Math.min(x,y);var thisCopy=this.slice(thisStart,thisEnd);var targetCopy=target.slice(start,end);for(var i=0;i2147483647){byteOffset=2147483647}else if(byteOffset<-2147483648){byteOffset=-2147483648}byteOffset=+byteOffset;if(isNaN(byteOffset)){byteOffset=dir?0:buffer.length-1}if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length){if(dir)return-1;else byteOffset=buffer.length-1}else if(byteOffset<0){if(dir)byteOffset=0;else return-1}if(typeof val==="string"){val=Buffer.from(val,encoding)}if(Buffer.isBuffer(val)){if(val.length===0){return-1}return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val==="number"){val=val&255;if(Buffer.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf==="function"){if(dir){return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset)}else{return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset)}}return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw new TypeError("val must be string, number or Buffer")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){var indexSize=1;var arrLength=arr.length;var valLength=val.length;if(encoding!==undefined){encoding=String(encoding).toLowerCase();if(encoding==="ucs2"||encoding==="ucs-2"||encoding==="utf16le"||encoding==="utf-16le"){if(arr.length<2||val.length<2){return-1}indexSize=2;arrLength/=2;valLength/=2;byteOffset/=2}}function read(buf,i){if(indexSize===1){return buf[i]}else{return buf.readUInt16BE(i*indexSize)}}var i;if(dir){var foundIndex=-1;for(i=byteOffset;iarrLength)byteOffset=arrLength-valLength;for(i=byteOffset;i>=0;i--){var found=true;for(var j=0;jremaining){length=remaining}}var strLen=string.length;if(strLen%2!==0)throw new TypeError("Invalid hex string");if(length>strLen/2){length=strLen/2}for(var i=0;iremaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length){throw new RangeError("Attempt to write outside buffer bounds")}if(!encoding)encoding="utf8";var loweredCase=false;for(;;){switch(encoding){case"hex":return hexWrite(this,string,offset,length);case"utf8":case"utf-8":return utf8Write(this,string,offset,length);case"ascii":return asciiWrite(this,string,offset,length);case"latin1":case"binary":return latin1Write(this,string,offset,length);case"base64":return base64Write(this,string,offset,length);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw new TypeError("Unknown encoding: "+encoding);encoding=(""+encoding).toLowerCase();loweredCase=true}}};Buffer.prototype.toJSON=function toJSON(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length){return base64.fromByteArray(buf)}else{return base64.fromByteArray(buf.slice(start,end))}}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);var res=[];var i=start;while(i239?4:firstByte>223?3:firstByte>191?2:1;if(i+bytesPerSequence<=end){var secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128){codePoint=firstByte}break;case 2:secondByte=buf[i+1];if((secondByte&192)===128){tempCodePoint=(firstByte&31)<<6|secondByte&63;if(tempCodePoint>127){codePoint=tempCodePoint}}break;case 3:secondByte=buf[i+1];thirdByte=buf[i+2];if((secondByte&192)===128&&(thirdByte&192)===128){tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63;if(tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343)){codePoint=tempCodePoint}}break;case 4:secondByte=buf[i+1];thirdByte=buf[i+2];fourthByte=buf[i+3];if((secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63;if(tempCodePoint>65535&&tempCodePoint<1114112){codePoint=tempCodePoint}}}}if(codePoint===null){codePoint=65533;bytesPerSequence=1}else if(codePoint>65535){codePoint-=65536;res.push(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}res.push(codePoint);i+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){var len=codePoints.length;if(len<=MAX_ARGUMENTS_LENGTH){return String.fromCharCode.apply(String,codePoints)}var res="";var i=0;while(ilen)end=len;var out="";for(var i=start;ilen){start=len}if(end<0){end+=len;if(end<0)end=0}else if(end>len){end=len}if(endlength)throw new RangeError("Trying to access beyond buffer length")}Buffer.prototype.readUIntLE=function readUIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i0&&(mul*=256)){val+=this[offset+--byteLength]*mul}return val};Buffer.prototype.readUInt8=function readUInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUInt16LE=function readUInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUInt16BE=function readUInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUInt32LE=function readUInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUInt32BE=function readUInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readIntLE=function readIntLE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length);var val=this[offset];var mul=1;var i=0;while(++i=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readIntBE=function readIntBE(offset,byteLength,noAssert){offset=offset|0;byteLength=byteLength|0;if(!noAssert)checkOffset(offset,byteLength,this.length); -var i=byteLength;var mul=1;var val=this[offset+--i];while(i>0&&(mul*=256)){val+=this[offset+--i]*mul}mul*=128;if(val>=mul)val-=Math.pow(2,8*byteLength);return val};Buffer.prototype.readInt8=function readInt8(offset,noAssert){if(!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function readInt16LE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function readInt16BE(offset,noAssert){if(!noAssert)checkOffset(offset,2,this.length);var val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function readInt32LE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function readInt32BE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readFloatLE=function readFloatLE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,true,23,4)};Buffer.prototype.readFloatBE=function readFloatBE(offset,noAssert){if(!noAssert)checkOffset(offset,4,this.length);return ieee754.read(this,offset,false,23,4)};Buffer.prototype.readDoubleLE=function readDoubleLE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,true,52,8)};Buffer.prototype.readDoubleBE=function readDoubleBE(offset,noAssert){if(!noAssert)checkOffset(offset,8,this.length);return ieee754.read(this,offset,false,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw new TypeError('"buffer" argument must be a Buffer instance');if(value>max||valuebuf.length)throw new RangeError("Index out of range")}Buffer.prototype.writeUIntLE=function writeUIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;byteLength=byteLength|0;if(!noAssert){var maxBytes=Math.pow(2,8*byteLength)-1;checkInt(this,value,offset,byteLength,maxBytes,0)}var mul=1;var i=0;this[offset]=value&255;while(++i=0&&(mul*=256)){this[offset+i]=value/mul&255}return offset+byteLength};Buffer.prototype.writeUInt8=function writeUInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,255,0);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);this[offset]=value&255;return offset+1};function objectWriteUInt16(buf,value,offset,littleEndian){if(value<0)value=65535+value+1;for(var i=0,j=Math.min(buf.length-offset,2);i>>(littleEndian?i:1-i)*8}}Buffer.prototype.writeUInt16LE=function writeUInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeUInt16BE=function writeUInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,65535,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};function objectWriteUInt32(buf,value,offset,littleEndian){if(value<0)value=4294967295+value+1;for(var i=0,j=Math.min(buf.length-offset,4);i>>(littleEndian?i:3-i)*8&255}}Buffer.prototype.writeUInt32LE=function writeUInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset+3]=value>>>24;this[offset+2]=value>>>16;this[offset+1]=value>>>8;this[offset]=value&255}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeUInt32BE=function writeUInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,4294967295,0);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};Buffer.prototype.writeIntLE=function writeIntLE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=0;var mul=1;var sub=0;this[offset]=value&255;while(++i>0)-sub&255}return offset+byteLength};Buffer.prototype.writeIntBE=function writeIntBE(value,offset,byteLength,noAssert){value=+value;offset=offset|0;if(!noAssert){var limit=Math.pow(2,8*byteLength-1);checkInt(this,value,offset,byteLength,limit-1,-limit)}var i=byteLength-1;var mul=1;var sub=0;this[offset+i]=value&255;while(--i>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i+1]!==0){sub=1}this[offset+i]=(value/mul>>0)-sub&255}return offset+byteLength};Buffer.prototype.writeInt8=function writeInt8(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,1,127,-128);if(!Buffer.TYPED_ARRAY_SUPPORT)value=Math.floor(value);if(value<0)value=255+value+1;this[offset]=value&255;return offset+1};Buffer.prototype.writeInt16LE=function writeInt16LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8}else{objectWriteUInt16(this,value,offset,true)}return offset+2};Buffer.prototype.writeInt16BE=function writeInt16BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,2,32767,-32768);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>8;this[offset+1]=value&255}else{objectWriteUInt16(this,value,offset,false)}return offset+2};Buffer.prototype.writeInt32LE=function writeInt32LE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value&255;this[offset+1]=value>>>8;this[offset+2]=value>>>16;this[offset+3]=value>>>24}else{objectWriteUInt32(this,value,offset,true)}return offset+4};Buffer.prototype.writeInt32BE=function writeInt32BE(value,offset,noAssert){value=+value;offset=offset|0;if(!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;if(Buffer.TYPED_ARRAY_SUPPORT){this[offset]=value>>>24;this[offset+1]=value>>>16;this[offset+2]=value>>>8;this[offset+3]=value&255}else{objectWriteUInt32(this,value,offset,false)}return offset+4};function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw new RangeError("Index out of range");if(offset<0)throw new RangeError("Index out of range")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,4,3.4028234663852886e38,-3.4028234663852886e38)}ieee754.write(buf,value,offset,littleEndian,23,4);return offset+4}Buffer.prototype.writeFloatLE=function writeFloatLE(value,offset,noAssert){return writeFloat(this,value,offset,true,noAssert)};Buffer.prototype.writeFloatBE=function writeFloatBE(value,offset,noAssert){return writeFloat(this,value,offset,false,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(!noAssert){checkIEEE754(buf,value,offset,8,1.7976931348623157e308,-1.7976931348623157e308)}ieee754.write(buf,value,offset,littleEndian,52,8);return offset+8}Buffer.prototype.writeDoubleLE=function writeDoubleLE(value,offset,noAssert){return writeDouble(this,value,offset,true,noAssert)};Buffer.prototype.writeDoubleBE=function writeDoubleBE(value,offset,noAssert){return writeDouble(this,value,offset,false,noAssert)};Buffer.prototype.copy=function copy(target,targetStart,start,end){if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw new RangeError("sourceStart out of bounds");if(end<0)throw new RangeError("sourceEnd out of bounds");if(end>this.length)end=this.length;if(target.length-targetStart=0;--i){target[i+targetStart]=this[i+start]}}else if(len<1e3||!Buffer.TYPED_ARRAY_SUPPORT){for(i=0;i>>0;end=end===undefined?this.length:end>>>0;if(!val)val=0;var i;if(typeof val==="number"){for(i=start;i55295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}leadSurrogate=null;if(codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else{throw new Error("Invalid code point")}}return bytes}function asciiToBytes(str){var byteArray=[];for(var i=0;i>8;lo=c%256;byteArray.push(lo);byteArray.push(hi)}return byteArray}function base64ToBytes(str){return base64.toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){for(var i=0;i=dst.length||i>=src.length)break;dst[i+offset]=src[i]}return i}function isnan(val){return val!==val}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"base64-js":2,ieee754:37,isarray:40}],6:[function(require,module,exports){(function(Buffer){function isArray(arg){if(Array.isArray){return Array.isArray(arg)}return objectToString(arg)==="[object Array]"}exports.isArray=isArray;function isBoolean(arg){return typeof arg==="boolean"}exports.isBoolean=isBoolean;function isNull(arg){return arg===null}exports.isNull=isNull;function isNullOrUndefined(arg){return arg==null}exports.isNullOrUndefined=isNullOrUndefined;function isNumber(arg){return typeof arg==="number"}exports.isNumber=isNumber;function isString(arg){return typeof arg==="string"}exports.isString=isString;function isSymbol(arg){return typeof arg==="symbol"}exports.isSymbol=isSymbol;function isUndefined(arg){return arg===void 0}exports.isUndefined=isUndefined;function isRegExp(re){return objectToString(re)==="[object RegExp]"}exports.isRegExp=isRegExp;function isObject(arg){return typeof arg==="object"&&arg!==null}exports.isObject=isObject;function isDate(d){return objectToString(d)==="[object Date]"}exports.isDate=isDate;function isError(e){return objectToString(e)==="[object Error]"||e instanceof Error}exports.isError=isError;function isFunction(arg){return typeof arg==="function"}exports.isFunction=isFunction;function isPrimitive(arg){return arg===null||typeof arg==="boolean"||typeof arg==="number"||typeof arg==="string"||typeof arg==="symbol"||typeof arg==="undefined"}exports.isPrimitive=isPrimitive;exports.isBuffer=Buffer.isBuffer;function objectToString(o){return Object.prototype.toString.call(o)}}).call(this,{isBuffer:require("../../is-buffer/index.js")})},{"../../is-buffer/index.js":39}],7:[function(require,module,exports){var ElementType=require("domelementtype");var entities=require("entities");var booleanAttributes={__proto__:null,allowfullscreen:true,async:true,autofocus:true,autoplay:true,checked:true,controls:true,default:true,defer:true,disabled:true,hidden:true,ismap:true,loop:true,multiple:true,muted:true,open:true,readonly:true,required:true,reversed:true,scoped:true,seamless:true,selected:true,typemustmatch:true};var unencodedElements={__proto__:null,style:true,script:true,xmp:true,iframe:true,noembed:true,noframes:true,plaintext:true,noscript:true};function formatAttrs(attributes,opts){if(!attributes)return;var output="",value;for(var key in attributes){value=attributes[key];if(output){output+=" "}if(!value&&booleanAttributes[key]){output+=key}else{output+=key+'="'+(opts.decodeEntities?entities.encodeXML(value):value)+'"'}}return output}var singleTag={__proto__:null,area:true,base:true,basefont:true,br:true,col:true,command:true,embed:true,frame:true,hr:true,img:true,input:true,isindex:true,keygen:true,link:true,meta:true,param:true,source:true,track:true,wbr:true};var render=module.exports=function(dom,opts){if(!Array.isArray(dom)&&!dom.cheerio)dom=[dom];opts=opts||{};var output="";for(var i=0;i"}else{tag+=">";if(elem.children){tag+=render(elem.children,opts)}if(!singleTag[elem.name]||opts.xmlMode){tag+=""}}return tag}function renderDirective(elem){return"<"+elem.data+">"}function renderText(elem,opts){var data=elem.data||"";if(opts.decodeEntities&&!(elem.parent&&elem.parent.name in unencodedElements)){data=entities.encodeXML(data)}return data}function renderCdata(elem){return""}function renderComment(elem){return""}},{domelementtype:8,entities:20}],8:[function(require,module,exports){module.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",isTag:function(elem){return elem.type==="tag"||elem.type==="script"||elem.type==="style"}}},{}],9:[function(require,module,exports){module.exports={Text:"text",Directive:"directive",Comment:"comment",Script:"script",Style:"style",Tag:"tag",CDATA:"cdata",Doctype:"doctype",isTag:function(elem){return elem.type==="tag"||elem.type==="script"||elem.type==="style"}}},{}],10:[function(require,module,exports){var ElementType=require("domelementtype");var re_whitespace=/\s+/g;var NodePrototype=require("./lib/node");var ElementPrototype=require("./lib/element");function DomHandler(callback,options,elementCB){if(typeof callback==="object"){elementCB=options;options=callback;callback=null}else if(typeof options==="function"){elementCB=options;options=defaultOpts}this._callback=callback;this._options=options||defaultOpts;this._elementCB=elementCB;this.dom=[];this._done=false;this._tagStack=[];this._parser=this._parser||null}var defaultOpts={normalizeWhitespace:false,withStartIndices:false};DomHandler.prototype.onparserinit=function(parser){this._parser=parser};DomHandler.prototype.onreset=function(){DomHandler.call(this,this._callback,this._options,this._elementCB)};DomHandler.prototype.onend=function(){if(this._done)return;this._done=true;this._parser=null;this._handleCallback(null)};DomHandler.prototype._handleCallback=DomHandler.prototype.onerror=function(error){if(typeof this._callback==="function"){this._callback(error,this.dom)}else{if(error)throw error}};DomHandler.prototype.onclosetag=function(){var elem=this._tagStack.pop();if(this._elementCB)this._elementCB(elem)};DomHandler.prototype._addDomElement=function(element){var parent=this._tagStack[this._tagStack.length-1];var siblings=parent?parent.children:this.dom;var previousSibling=siblings[siblings.length-1];element.next=null;if(this._options.withStartIndices){element.startIndex=this._parser.startIndex}if(this._options.withDomLvl1){element.__proto__=element.type==="tag"?ElementPrototype:NodePrototype}if(previousSibling){element.prev=previousSibling;previousSibling.next=element}else{element.prev=null}siblings.push(element);element.parent=parent||null};DomHandler.prototype.onopentag=function(name,attribs){var element={type:name==="script"?ElementType.Script:name==="style"?ElementType.Style:ElementType.Tag,name:name,attribs:attribs,children:[]};this._addDomElement(element);this._tagStack.push(element)};DomHandler.prototype.ontext=function(data){var normalize=this._options.normalizeWhitespace||this._options.ignoreWhitespace;var lastTag;if(!this._tagStack.length&&this.dom.length&&(lastTag=this.dom[this.dom.length-1]).type===ElementType.Text){if(normalize){lastTag.data=(lastTag.data+data).replace(re_whitespace," ")}else{lastTag.data+=data}}else{if(this._tagStack.length&&(lastTag=this._tagStack[this._tagStack.length-1])&&(lastTag=lastTag.children[lastTag.children.length-1])&&lastTag.type===ElementType.Text){if(normalize){lastTag.data=(lastTag.data+data).replace(re_whitespace," ")}else{lastTag.data+=data}}else{if(normalize){data=data.replace(re_whitespace," ")}this._addDomElement({data:data,type:ElementType.Text})}}};DomHandler.prototype.oncomment=function(data){var lastTag=this._tagStack[this._tagStack.length-1];if(lastTag&&lastTag.type===ElementType.Comment){lastTag.data+=data;return}var element={data:data,type:ElementType.Comment};this._addDomElement(element);this._tagStack.push(element)};DomHandler.prototype.oncdatastart=function(){var element={children:[{data:"",type:ElementType.Text}],type:ElementType.CDATA};this._addDomElement(element);this._tagStack.push(element)};DomHandler.prototype.oncommentend=DomHandler.prototype.oncdataend=function(){this._tagStack.pop()};DomHandler.prototype.onprocessinginstruction=function(name,data){this._addDomElement({name:name,data:data,type:ElementType.Directive})};module.exports=DomHandler},{"./lib/element":11,"./lib/node":12,domelementtype:9}],11:[function(require,module,exports){var NodePrototype=require("./node");var ElementPrototype=module.exports=Object.create(NodePrototype);var domLvl1={tagName:"name"};Object.keys(domLvl1).forEach(function(key){var shorthand=domLvl1[key];Object.defineProperty(ElementPrototype,key,{get:function(){return this[shorthand]||null},set:function(val){this[shorthand]=val;return val}})})},{"./node":12}],12:[function(require,module,exports){var NodePrototype=module.exports={get firstChild(){var children=this.children;return children&&children[0]||null},get lastChild(){var children=this.children;return children&&children[children.length-1]||null},get nodeType(){return nodeTypes[this.type]||nodeTypes.element}};var domLvl1={tagName:"name",childNodes:"children",parentNode:"parent",previousSibling:"prev",nextSibling:"next",nodeValue:"data"};var nodeTypes={element:1,text:3,cdata:4,comment:8};Object.keys(domLvl1).forEach(function(key){var shorthand=domLvl1[key];Object.defineProperty(NodePrototype,key,{get:function(){return this[shorthand]||null},set:function(val){this[shorthand]=val;return val}})})},{}],13:[function(require,module,exports){var DomUtils=module.exports;[require("./lib/stringify"),require("./lib/traversal"),require("./lib/manipulation"),require("./lib/querying"),require("./lib/legacy"),require("./lib/helpers")].forEach(function(ext){Object.keys(ext).forEach(function(key){DomUtils[key]=ext[key].bind(DomUtils)})})},{"./lib/helpers":14,"./lib/legacy":15,"./lib/manipulation":16,"./lib/querying":17,"./lib/stringify":18,"./lib/traversal":19}],14:[function(require,module,exports){exports.removeSubsets=function(nodes){var idx=nodes.length,node,ancestor,replace;while(--idx>-1){node=ancestor=nodes[idx];nodes[idx]=null;replace=true;while(ancestor){if(nodes.indexOf(ancestor)>-1){replace=false;nodes.splice(idx,1);break}ancestor=ancestor.parent}if(replace){nodes[idx]=node}}return nodes};var POSITION={DISCONNECTED:1,PRECEDING:2,FOLLOWING:4,CONTAINS:8,CONTAINED_BY:16};var comparePos=exports.compareDocumentPosition=function(nodeA,nodeB){var aParents=[];var bParents=[];var current,sharedParent,siblings,aSibling,bSibling,idx;if(nodeA===nodeB){return 0}current=nodeA;while(current){aParents.unshift(current);current=current.parent}current=nodeB;while(current){bParents.unshift(current);current=current.parent}idx=0;while(aParents[idx]===bParents[idx]){idx++}if(idx===0){return POSITION.DISCONNECTED}sharedParent=aParents[idx-1];siblings=sharedParent.children;aSibling=aParents[idx];bSibling=bParents[idx];if(siblings.indexOf(aSibling)>siblings.indexOf(bSibling)){if(sharedParent===nodeB){return POSITION.FOLLOWING|POSITION.CONTAINED_BY}return POSITION.FOLLOWING}else{if(sharedParent===nodeA){return POSITION.PRECEDING|POSITION.CONTAINS}return POSITION.PRECEDING}};exports.uniqueSort=function(nodes){var idx=nodes.length,node,position;nodes=nodes.slice();while(--idx>-1){node=nodes[idx];position=nodes.indexOf(node);if(position>-1&&position0){childs=find(test,childs,recurse,limit);result=result.concat(childs);limit-=childs.length;if(limit<=0)break}}return result}function findOneChild(test,elems){for(var i=0,l=elems.length;i0){elem=findOne(test,elems[i].children)}}return elem}function existsOne(test,elems){for(var i=0,l=elems.length;i0&&existsOne(test,elems[i].children))){return true}}return false}function findAll(test,elems){var result=[];for(var i=0,j=elems.length;i0){result=result.concat(findAll(test,elems[i].children))}}return result}},{domelementtype:9}],18:[function(require,module,exports){var ElementType=require("domelementtype"),getOuterHTML=require("dom-serializer"),isTag=ElementType.isTag;module.exports={getInnerHTML:getInnerHTML,getOuterHTML:getOuterHTML,getText:getText};function getInnerHTML(elem,opts){return elem.children?elem.children.map(function(elem){return getOuterHTML(elem,opts)}).join(""):""}function getText(elem){if(Array.isArray(elem))return elem.map(getText).join("");if(isTag(elem)||elem.type===ElementType.CDATA)return getText(elem.children);if(elem.type===ElementType.Text)return elem.data;return""}},{"dom-serializer":7,domelementtype:9}],19:[function(require,module,exports){var getChildren=exports.getChildren=function(elem){return elem.children};var getParent=exports.getParent=function(elem){return elem.parent};exports.getSiblings=function(elem){var parent=getParent(elem);return parent?getChildren(parent):[elem]};exports.getAttributeValue=function(elem,name){return elem.attribs&&elem.attribs[name]};exports.hasAttrib=function(elem,name){return!!elem.attribs&&hasOwnProperty.call(elem.attribs,name)};exports.getName=function(elem){return elem.name}},{}],20:[function(require,module,exports){var encode=require("./lib/encode.js"),decode=require("./lib/decode.js");exports.decode=function(data,level){return(!level||level<=0?decode.XML:decode.HTML)(data)};exports.decodeStrict=function(data,level){return(!level||level<=0?decode.XML:decode.HTMLStrict)(data)};exports.encode=function(data,level){return(!level||level<=0?encode.XML:encode.HTML)(data)};exports.encodeXML=encode.XML;exports.encodeHTML4=exports.encodeHTML5=exports.encodeHTML=encode.HTML;exports.decodeXML=exports.decodeXMLStrict=decode.XML;exports.decodeHTML4=exports.decodeHTML5=exports.decodeHTML=decode.HTML;exports.decodeHTML4Strict=exports.decodeHTML5Strict=exports.decodeHTMLStrict=decode.HTMLStrict;exports.escape=encode.escape},{"./lib/decode.js":21,"./lib/encode.js":23}],21:[function(require,module,exports){var entityMap=require("../maps/entities.json"),legacyMap=require("../maps/legacy.json"),xmlMap=require("../maps/xml.json"),decodeCodePoint=require("./decode_codepoint.js");var decodeXMLStrict=getStrictDecoder(xmlMap),decodeHTMLStrict=getStrictDecoder(entityMap);function getStrictDecoder(map){var keys=Object.keys(map).join("|"),replace=getReplacer(map);keys+="|#[xX][\\da-fA-F]+|#\\d+";var re=new RegExp("&(?:"+keys+");","g");return function(str){return String(str).replace(re,replace)}}var decodeHTML=function(){var legacy=Object.keys(legacyMap).sort(sorter);var keys=Object.keys(entityMap).sort(sorter);for(var i=0,j=0;i=55296&&codePoint<=57343||codePoint>1114111){return"�"}if(codePoint in decodeMap){codePoint=decodeMap[codePoint]}var output="";if(codePoint>65535){codePoint-=65536;output+=String.fromCharCode(codePoint>>>10&1023|55296);codePoint=56320|codePoint&1023}output+=String.fromCharCode(codePoint);return output}},{"../maps/decode.json":24}],23:[function(require,module,exports){var inverseXML=getInverseObj(require("../maps/xml.json")),xmlReplacer=getInverseReplacer(inverseXML);exports.XML=getInverse(inverseXML,xmlReplacer);var inverseHTML=getInverseObj(require("../maps/entities.json")),htmlReplacer=getInverseReplacer(inverseHTML);exports.HTML=getInverse(inverseHTML,htmlReplacer);function getInverseObj(obj){return Object.keys(obj).sort().reduce(function(inverse,name){inverse[obj[name]]="&"+name+";";return inverse},{})}function getInverseReplacer(inverse){var single=[],multiple=[];Object.keys(inverse).forEach(function(k){if(k.length===1){single.push("\\"+k)}else{multiple.push(k)}});multiple.unshift("["+single.join("")+"]");return new RegExp(multiple.join("|"),"g")}var re_nonASCII=/[^\0-\x7F]/g,re_astralSymbols=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g;function singleCharReplacer(c){return"&#x"+c.charCodeAt(0).toString(16).toUpperCase()+";"}function astralReplacer(c){var high=c.charCodeAt(0);var low=c.charCodeAt(1);var codePoint=(high-55296)*1024+low-56320+65536;return"&#x"+codePoint.toString(16).toUpperCase()+";"}function getInverse(inverse,re){function func(name){return inverse[name]}return function(data){return data.replace(re,func).replace(re_astralSymbols,astralReplacer).replace(re_nonASCII,singleCharReplacer)}}var re_xmlChars=getInverseReplacer(inverseXML);function escapeXML(data){return data.replace(re_xmlChars,singleCharReplacer).replace(re_astralSymbols,astralReplacer).replace(re_nonASCII,singleCharReplacer)}exports.escape=escapeXML},{"../maps/entities.json":25,"../maps/xml.json":27}],24:[function(require,module,exports){module.exports={0:65533,128:8364,130:8218,131:402,132:8222,133:8230,134:8224,135:8225,136:710,137:8240,138:352,139:8249,140:338,142:381,145:8216,146:8217,147:8220,148:8221,149:8226,150:8211,151:8212,152:732,153:8482,154:353,155:8250,156:339,158:382,159:376}},{}],25:[function(require,module,exports){module.exports={Aacute:"Á",aacute:"á",Abreve:"Ă",abreve:"ă",ac:"∾",acd:"∿",acE:"∾̳",Acirc:"Â",acirc:"â",acute:"´",Acy:"А",acy:"а",AElig:"Æ",aelig:"æ",af:"⁡",Afr:"𝔄",afr:"𝔞",Agrave:"À",agrave:"à",alefsym:"ℵ",aleph:"ℵ",Alpha:"Α",alpha:"α",Amacr:"Ā",amacr:"ā",amalg:"⨿",amp:"&",AMP:"&",andand:"⩕",And:"⩓",and:"∧",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angmsd:"∡",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",Aogon:"Ą",aogon:"ą",Aopf:"𝔸",aopf:"𝕒",apacir:"⩯",ap:"≈",apE:"⩰",ape:"≊",apid:"≋",apos:"'",ApplyFunction:"⁡",approx:"≈",approxeq:"≊",Aring:"Å",aring:"å",Ascr:"𝒜",ascr:"𝒶",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",Bcy:"Б",bcy:"б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",Beta:"Β",beta:"β",beth:"ℶ",between:"≬",Bfr:"𝔅",bfr:"𝔟",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bNot:"⫭",bnot:"⌐",Bopf:"𝔹",bopf:"𝕓",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxHd:"╤",boxhD:"╥",boxHD:"╦",boxhu:"┴",boxHu:"╧",boxhU:"╨",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsolb:"⧅",bsol:"\\",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpE:"⪮",bumpe:"≏",Bumpeq:"≎",bumpeq:"≏",Cacute:"Ć",cacute:"ć",capand:"⩄",capbrcup:"⩉",capcap:"⩋",cap:"∩",Cap:"⋒",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",Ccaron:"Č",ccaron:"č",Ccedil:"Ç",ccedil:"ç",Ccirc:"Ĉ",ccirc:"ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",Cdot:"Ċ",cdot:"ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",CHcy:"Ч",chcy:"ч",check:"✓",checkmark:"✓",Chi:"Χ",chi:"χ",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cir:"○",cirE:"⧃",cire:"≗",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",Colone:"⩴",colone:"≔",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",Cscr:"𝒞",cscr:"𝒸",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cup:"∪",Cup:"⋓",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",Darr:"↡",dArr:"⇓",dash:"‐",Dashv:"⫤",dashv:"⊣",dbkarow:"⤏",dblac:"˝",Dcaron:"Ď",dcaron:"ď",Dcy:"Д",dcy:"д",ddagger:"‡",ddarr:"⇊",DD:"ⅅ",dd:"ⅆ",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",Delta:"Δ",delta:"δ",demptyv:"⦱",dfisht:"⥿",Dfr:"𝔇",dfr:"𝔡",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",DJcy:"Ђ",djcy:"ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",Dopf:"𝔻",dopf:"𝕕",Dot:"¨",dot:"˙",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",DownArrowBar:"⤓",downarrow:"↓",DownArrow:"↓",Downarrow:"⇓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVectorBar:"⥖",DownLeftVector:"↽",DownRightTeeVector:"⥟",DownRightVectorBar:"⥗",DownRightVector:"⇁",DownTeeArrow:"↧",DownTee:"⊤",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",Dscr:"𝒟",dscr:"𝒹",DScy:"Ѕ",dscy:"ѕ",dsol:"⧶",Dstrok:"Đ",dstrok:"đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",DZcy:"Џ",dzcy:"џ",dzigrarr:"⟿",Eacute:"É",eacute:"é",easter:"⩮",Ecaron:"Ě",ecaron:"ě",Ecirc:"Ê",ecirc:"ê",ecir:"≖",ecolon:"≕",Ecy:"Э",ecy:"э",eDDot:"⩷",Edot:"Ė",edot:"ė",eDot:"≑",ee:"ⅇ",efDot:"≒",Efr:"𝔈",efr:"𝔢",eg:"⪚",Egrave:"È",egrave:"è",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",Emacr:"Ē",emacr:"ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp13:" ",emsp14:" ",emsp:" ",ENG:"Ŋ",eng:"ŋ",ensp:" ",Eogon:"Ę",eogon:"ę",Eopf:"𝔼",eopf:"𝕖",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",Epsilon:"Ε",epsilon:"ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",Esim:"⩳",esim:"≂",Eta:"Η",eta:"η",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",Fcy:"Ф",fcy:"ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",Ffr:"𝔉",ffr:"𝔣",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",Fopf:"𝔽",fopf:"𝕗",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",Gamma:"Γ",gamma:"γ",Gammad:"Ϝ",gammad:"ϝ",gap:"⪆",Gbreve:"Ğ",gbreve:"ğ",Gcedil:"Ģ",Gcirc:"Ĝ",gcirc:"ĝ",Gcy:"Г",gcy:"г",Gdot:"Ġ",gdot:"ġ",ge:"≥",gE:"≧",gEl:"⪌",gel:"⋛",geq:"≥",geqq:"≧",geqslant:"⩾",gescc:"⪩",ges:"⩾",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",Gfr:"𝔊",gfr:"𝔤",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",GJcy:"Ѓ",gjcy:"ѓ",gla:"⪥",gl:"≷",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",Gopf:"𝔾",gopf:"𝕘",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",Gscr:"𝒢",gscr:"ℊ",gsim:"≳",gsime:"⪎",gsiml:"⪐",gtcc:"⪧",gtcir:"⩺",gt:">",GT:">",Gt:"≫",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",HARDcy:"Ъ",hardcy:"ъ",harrcir:"⥈",harr:"↔",hArr:"⇔",harrw:"↭",Hat:"^",hbar:"ℏ",Hcirc:"Ĥ",hcirc:"ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",Hstrok:"Ħ",hstrok:"ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",Iacute:"Í",iacute:"í",ic:"⁣",Icirc:"Î",icirc:"î",Icy:"И",icy:"и",Idot:"İ",IEcy:"Е",iecy:"е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",Igrave:"Ì",igrave:"ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",IJlig:"IJ",ijlig:"ij",Imacr:"Ī",imacr:"ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",Im:"ℑ",imof:"⊷",imped:"Ƶ",Implies:"⇒",incare:"℅",in:"∈",infin:"∞",infintie:"⧝",inodot:"ı",intcal:"⊺",int:"∫",Int:"∬",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"⁣",InvisibleTimes:"⁢",IOcy:"Ё",iocy:"ё",Iogon:"Į",iogon:"į",Iopf:"𝕀",iopf:"𝕚",Iota:"Ι",iota:"ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"⁢",Itilde:"Ĩ",itilde:"ĩ",Iukcy:"І",iukcy:"і",Iuml:"Ï",iuml:"ï",Jcirc:"Ĵ",jcirc:"ĵ",Jcy:"Й",jcy:"й",Jfr:"𝔍",jfr:"𝔧",jmath:"ȷ",Jopf:"𝕁",jopf:"𝕛",Jscr:"𝒥",jscr:"𝒿",Jsercy:"Ј",jsercy:"ј",Jukcy:"Є",jukcy:"є",Kappa:"Κ",kappa:"κ",kappav:"ϰ",Kcedil:"Ķ",kcedil:"ķ",Kcy:"К",kcy:"к",Kfr:"𝔎",kfr:"𝔨",kgreen:"ĸ",KHcy:"Х",khcy:"х",KJcy:"Ќ",kjcy:"ќ",Kopf:"𝕂",kopf:"𝕜",Kscr:"𝒦",kscr:"𝓀",lAarr:"⇚",Lacute:"Ĺ",lacute:"ĺ",laemptyv:"⦴",lagran:"ℒ",Lambda:"Λ",lambda:"λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larrb:"⇤",larrbfs:"⤟",larr:"←",Larr:"↞",lArr:"⇐",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",latail:"⤙",lAtail:"⤛",lat:"⪫",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",Lcaron:"Ľ",lcaron:"ľ",Lcedil:"Ļ",lcedil:"ļ",lceil:"⌈",lcub:"{",Lcy:"Л",lcy:"л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",LeftArrowBar:"⇤",leftarrow:"←",LeftArrow:"←",Leftarrow:"⇐",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVectorBar:"⥙",LeftDownVector:"⇃",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",LeftRightArrow:"↔",Leftrightarrow:"⇔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTeeArrow:"↤",LeftTee:"⊣",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangleBar:"⧏",LeftTriangle:"⊲",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVectorBar:"⥘",LeftUpVector:"↿",LeftVectorBar:"⥒",LeftVector:"↼",lEg:"⪋",leg:"⋚",leq:"≤",leqq:"≦",leqslant:"⩽",lescc:"⪨",les:"⩽",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",Lfr:"𝔏",lfr:"𝔩",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",LJcy:"Љ",ljcy:"љ",llarr:"⇇",ll:"≪",Ll:"⋘",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",Lmidot:"Ŀ",lmidot:"ŀ",lmoustache:"⎰",lmoust:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",LongLeftArrow:"⟵",Longleftarrow:"⟸",longleftrightarrow:"⟷",LongLeftRightArrow:"⟷",Longleftrightarrow:"⟺",longmapsto:"⟼",longrightarrow:"⟶",LongRightArrow:"⟶",Longrightarrow:"⟹",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",Lopf:"𝕃",lopf:"𝕝",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"‎",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",Lstrok:"Ł",lstrok:"ł",ltcc:"⪦",ltcir:"⩹",lt:"<",LT:"<",Lt:"≪",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",Map:"⤅",map:"↦",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",Mcy:"М",mcy:"м",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",Mfr:"𝔐",mfr:"𝔪",mho:"℧",micro:"µ",midast:"*",midcir:"⫰",mid:"∣",middot:"·",minusb:"⊟",minus:"−",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",Mopf:"𝕄",mopf:"𝕞",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",Mu:"Μ",mu:"μ",multimap:"⊸",mumap:"⊸",nabla:"∇",Nacute:"Ń",nacute:"ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natural:"♮",naturals:"ℕ",natur:"♮",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",Ncaron:"Ň",ncaron:"ň",Ncedil:"Ņ",ncedil:"ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",Ncy:"Н",ncy:"н",ndash:"–",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",ne:"≠",nedot:"≐̸",NegativeMediumSpace:"​",NegativeThickSpace:"​",NegativeThinSpace:"​",NegativeVeryThinSpace:"​",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",Nfr:"𝔑",nfr:"𝔫",ngE:"≧̸",nge:"≱",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",nGt:"≫⃒",ngt:"≯",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",NJcy:"Њ",njcy:"њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nlE:"≦̸",nle:"≰",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nLt:"≪⃒",nlt:"≮",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"⁠",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",Not:"⫬",not:"¬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangleBar:"⧏̸",NotLeftTriangle:"⋪",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangleBar:"⧐̸",NotRightTriangle:"⋫",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",nparallel:"∦",npar:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",nprec:"⊀",npreceq:"⪯̸",npre:"⪯̸",nrarrc:"⤳̸",nrarr:"↛",nrArr:"⇏",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",Nscr:"𝒩",nscr:"𝓃",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsubE:"⫅̸",nsube:"⊈",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupE:"⫆̸",nsupe:"⊉",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",Ntilde:"Ñ",ntilde:"ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",Nu:"Ν",nu:"ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",Oacute:"Ó",oacute:"ó",oast:"⊛",Ocirc:"Ô",ocirc:"ô",ocir:"⊚",Ocy:"О",ocy:"о",odash:"⊝",Odblac:"Ő",odblac:"ő",odiv:"⨸",odot:"⊙",odsold:"⦼",OElig:"Œ",oelig:"œ",ofcir:"⦿",Ofr:"𝔒",ofr:"𝔬",ogon:"˛",Ograve:"Ò",ograve:"ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",Omacr:"Ō",omacr:"ō",Omega:"Ω",omega:"ω",Omicron:"Ο",omicron:"ο",omid:"⦶",ominus:"⊖",Oopf:"𝕆",oopf:"𝕠",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",orarr:"↻",Or:"⩔",or:"∨",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",Oscr:"𝒪",oscr:"ℴ",Oslash:"Ø",oslash:"ø",osol:"⊘",Otilde:"Õ",otilde:"õ",otimesas:"⨶",Otimes:"⨷",otimes:"⊗",Ouml:"Ö",ouml:"ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",para:"¶",parallel:"∥",par:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",Pcy:"П",pcy:"п",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",Pfr:"𝔓",pfr:"𝔭",Phi:"Φ",phi:"φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",Pi:"Π",pi:"π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plus:"+",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",prap:"⪷",Pr:"⪻",pr:"≺",prcue:"≼",precapprox:"⪷",prec:"≺",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",pre:"⪯",prE:"⪳",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportional:"∝",Proportion:"∷",propto:"∝",prsim:"≾",prurel:"⊰",Pscr:"𝒫",pscr:"𝓅",Psi:"Ψ",psi:"ψ",puncsp:" ",Qfr:"𝔔",qfr:"𝔮",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",Qscr:"𝒬",qscr:"𝓆",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",Racute:"Ŕ",racute:"ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarr:"→",Rarr:"↠",rArr:"⇒",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",Rarrtl:"⤖",rarrtl:"↣",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",Rcaron:"Ř",rcaron:"ř",Rcedil:"Ŗ",rcedil:"ŗ",rceil:"⌉",rcub:"}",Rcy:"Р",rcy:"р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",Re:"ℜ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",Rho:"Ρ",rho:"ρ",rhov:"ϱ",RightAngleBracket:"⟩",RightArrowBar:"⇥",rightarrow:"→",RightArrow:"→",Rightarrow:"⇒",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVectorBar:"⥕",RightDownVector:"⇂",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTeeArrow:"↦",RightTee:"⊢",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangleBar:"⧐",RightTriangle:"⊳",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVectorBar:"⥔",RightUpVector:"↾",RightVectorBar:"⥓",RightVector:"⇀",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"‏",rmoustache:"⎱",rmoust:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",Sacute:"Ś",sacute:"ś",sbquo:"‚",scap:"⪸",Scaron:"Š",scaron:"š",Sc:"⪼",sc:"≻",sccue:"≽",sce:"⪰",scE:"⪴",Scedil:"Ş",scedil:"ş",Scirc:"Ŝ",scirc:"ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",Scy:"С",scy:"с",sdotb:"⊡",sdot:"⋅",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",Sfr:"𝔖",sfr:"𝔰",sfrown:"⌢",sharp:"♯",SHCHcy:"Щ",shchcy:"щ",SHcy:"Ш",shcy:"ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"­",Sigma:"Σ",sigma:"σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",SOFTcy:"Ь",softcy:"ь",solbar:"⌿",solb:"⧄",sol:"/",Sopf:"𝕊",sopf:"𝕤",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squ:"□",squf:"▪",srarr:"→",Sscr:"𝒮",sscr:"𝓈",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",Star:"⋆",star:"☆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",subE:"⫅",sube:"⊆",subedot:"⫃",submult:"⫁",subnE:"⫋",subne:"⊊",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succapprox:"⪸",succ:"≻",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup1:"¹",sup2:"²",sup3:"³",sup:"⊃",Sup:"⋑",supdot:"⪾",supdsub:"⫘",supE:"⫆",supe:"⊇",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supnE:"⫌",supne:"⊋",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",Tau:"Τ",tau:"τ",tbrk:"⎴",Tcaron:"Ť",tcaron:"ť",Tcedil:"Ţ",tcedil:"ţ",Tcy:"Т",tcy:"т",tdot:"⃛",telrec:"⌕",Tfr:"𝔗",tfr:"𝔱",there4:"∴",therefore:"∴",Therefore:"∴",Theta:"Θ",theta:"θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:"  ",ThinSpace:" ",thinsp:" ",thkap:"≈",thksim:"∼",THORN:"Þ",thorn:"þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",timesbar:"⨱",timesb:"⊠",times:"×",timesd:"⨰",tint:"∭",toea:"⤨",topbot:"⌶",topcir:"⫱",top:"⊤",Topf:"𝕋",topf:"𝕥",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",Tscr:"𝒯",tscr:"𝓉",TScy:"Ц",tscy:"ц",TSHcy:"Ћ",tshcy:"ћ",Tstrok:"Ŧ",tstrok:"ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",Uacute:"Ú",uacute:"ú",uarr:"↑",Uarr:"↟",uArr:"⇑",Uarrocir:"⥉",Ubrcy:"Ў",ubrcy:"ў",Ubreve:"Ŭ",ubreve:"ŭ",Ucirc:"Û",ucirc:"û",Ucy:"У",ucy:"у",udarr:"⇅",Udblac:"Ű",udblac:"ű",udhar:"⥮",ufisht:"⥾",Ufr:"𝔘",ufr:"𝔲",Ugrave:"Ù",ugrave:"ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",Umacr:"Ū",umacr:"ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",Uogon:"Ų",uogon:"ų",Uopf:"𝕌",uopf:"𝕦",UpArrowBar:"⤒",uparrow:"↑",UpArrow:"↑",Uparrow:"⇑",UpArrowDownArrow:"⇅",updownarrow:"↕",UpDownArrow:"↕",Updownarrow:"⇕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",Upsilon:"Υ",upsilon:"υ",UpTeeArrow:"↥",UpTee:"⊥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",Uring:"Ů",uring:"ů",urtri:"◹",Uscr:"𝒰",uscr:"𝓊",utdot:"⋰",Utilde:"Ũ",utilde:"ũ",utri:"▵",utrif:"▴",uuarr:"⇈",Uuml:"Ü",uuml:"ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",Vcy:"В",vcy:"в",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",veebar:"⊻",vee:"∨",Vee:"⋁",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",Vfr:"𝔙",vfr:"𝔳",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",Vopf:"𝕍",vopf:"𝕧",vprop:"∝",vrtri:"⊳",Vscr:"𝒱",vscr:"𝓋",vsubnE:"⫋︀",vsubne:"⊊︀",vsupnE:"⫌︀",vsupne:"⊋︀",Vvdash:"⊪",vzigzag:"⦚",Wcirc:"Ŵ",wcirc:"ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",Wfr:"𝔚",wfr:"𝔴",Wopf:"𝕎",wopf:"𝕨",wp:"℘",wr:"≀",wreath:"≀",Wscr:"𝒲",wscr:"𝓌",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",Xfr:"𝔛",xfr:"𝔵",xharr:"⟷",xhArr:"⟺",Xi:"Ξ",xi:"ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",Xopf:"𝕏",xopf:"𝕩",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",Xscr:"𝒳",xscr:"𝓍",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",Yacute:"Ý",yacute:"ý",YAcy:"Я",yacy:"я",Ycirc:"Ŷ",ycirc:"ŷ",Ycy:"Ы",ycy:"ы",yen:"¥",Yfr:"𝔜",yfr:"𝔶",YIcy:"Ї",yicy:"ї",Yopf:"𝕐",yopf:"𝕪",Yscr:"𝒴",yscr:"𝓎",YUcy:"Ю",yucy:"ю",yuml:"ÿ",Yuml:"Ÿ",Zacute:"Ź",zacute:"ź",Zcaron:"Ž",zcaron:"ž",Zcy:"З",zcy:"з",Zdot:"Ż",zdot:"ż",zeetrf:"ℨ",ZeroWidthSpace:"​",Zeta:"Ζ",zeta:"ζ",zfr:"𝔷",Zfr:"ℨ",ZHcy:"Ж",zhcy:"ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",Zscr:"𝒵",zscr:"𝓏",zwj:"‍",zwnj:"‌"}},{}],26:[function(require,module,exports){module.exports={Aacute:"Á",aacute:"á",Acirc:"Â",acirc:"â",acute:"´",AElig:"Æ",aelig:"æ",Agrave:"À",agrave:"à",amp:"&",AMP:"&",Aring:"Å",aring:"å",Atilde:"Ã",atilde:"ã",Auml:"Ä",auml:"ä",brvbar:"¦",Ccedil:"Ç",ccedil:"ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",Eacute:"É",eacute:"é",Ecirc:"Ê",ecirc:"ê",Egrave:"È",egrave:"è",ETH:"Ð",eth:"ð",Euml:"Ë",euml:"ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",Iacute:"Í",iacute:"í",Icirc:"Î",icirc:"î",iexcl:"¡",Igrave:"Ì",igrave:"ì",iquest:"¿",Iuml:"Ï",iuml:"ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",Ntilde:"Ñ",ntilde:"ñ",Oacute:"Ó",oacute:"ó",Ocirc:"Ô",ocirc:"ô",Ograve:"Ò",ograve:"ò",ordf:"ª",ordm:"º",Oslash:"Ø",oslash:"ø",Otilde:"Õ",otilde:"õ",Ouml:"Ö",ouml:"ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"­",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",THORN:"Þ",thorn:"þ",times:"×",Uacute:"Ú",uacute:"ú",Ucirc:"Û",ucirc:"û",Ugrave:"Ù",ugrave:"ù",uml:"¨",Uuml:"Ü",uuml:"ü",Yacute:"Ý",yacute:"ý",yen:"¥",yuml:"ÿ"}},{}],27:[function(require,module,exports){module.exports={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'}},{}],28:[function(require,module,exports){function EventEmitter(){this._events=this._events||{};this._maxListeners=this._maxListeners||undefined}module.exports=EventEmitter;EventEmitter.EventEmitter=EventEmitter;EventEmitter.prototype._events=undefined;EventEmitter.prototype._maxListeners=undefined;EventEmitter.defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!isNumber(n)||n<0||isNaN(n))throw TypeError("n must be a positive number");this._maxListeners=n;return this};EventEmitter.prototype.emit=function(type){var er,handler,len,args,i,listeners;if(!this._events)this._events={};if(type==="error"){if(!this._events.error||isObject(this._events.error)&&!this._events.error.length){er=arguments[1];if(er instanceof Error){throw er}else{var err=new Error('Uncaught, unspecified "error" event. ('+er+")");err.context=er;throw err}}}handler=this._events[type];if(isUndefined(handler))return false;if(isFunction(handler)){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}}else if(isObject(handler)){args=Array.prototype.slice.call(arguments,1);listeners=handler.slice();len=listeners.length;for(i=0;i0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);if(typeof console.trace==="function"){console.trace()}}}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){if(!isFunction(listener))throw TypeError("listener must be a function");var fired=false;function g(){this.removeListener(type,g);if(!fired){fired=true;listener.apply(this,arguments)}}g.listener=listener;this.on(type,g);return this};EventEmitter.prototype.removeListener=function(type,listener){var list,position,length,i;if(!isFunction(listener))throw TypeError("listener must be a function");if(!this._events||!this._events[type])return this;list=this._events[type];length=list.length;position=-1;if(list===listener||isFunction(list.listener)&&list.listener===listener){delete this._events[type];if(this._events.removeListener)this.emit("removeListener",type,listener)}else if(isObject(list)){for(i=length;i-- >0;){if(list[i]===listener||list[i].listener&&list[i].listener===listener){position=i;break}}if(position<0)return this;if(list.length===1){list.length=0;delete this._events[type]}else{list.splice(position,1); -}if(this._events.removeListener)this.emit("removeListener",type,listener)}return this};EventEmitter.prototype.removeAllListeners=function(type){var key,listeners;if(!this._events)return this;if(!this._events.removeListener){if(arguments.length===0)this._events={};else if(this._events[type])delete this._events[type];return this}if(arguments.length===0){for(key in this._events){if(key==="removeListener")continue;this.removeAllListeners(key)}this.removeAllListeners("removeListener");this._events={};return this}listeners=this._events[type];if(isFunction(listeners)){this.removeListener(type,listeners)}else if(listeners){while(listeners.length)this.removeListener(type,listeners[listeners.length-1])}delete this._events[type];return this};EventEmitter.prototype.listeners=function(type){var ret;if(!this._events||!this._events[type])ret=[];else if(isFunction(this._events[type]))ret=[this._events[type]];else ret=this._events[type].slice();return ret};EventEmitter.prototype.listenerCount=function(type){if(this._events){var evlistener=this._events[type];if(isFunction(evlistener))return 1;else if(evlistener)return evlistener.length}return 0};EventEmitter.listenerCount=function(emitter,type){return emitter.listenerCount(type)};function isFunction(arg){return typeof arg==="function"}function isNumber(arg){return typeof arg==="number"}function isObject(arg){return typeof arg==="object"&&arg!==null}function isUndefined(arg){return arg===void 0}},{}],29:[function(require,module,exports){module.exports=CollectingHandler;function CollectingHandler(cbs){this._cbs=cbs||{};this.events=[]}var EVENTS=require("./").EVENTS;Object.keys(EVENTS).forEach(function(name){if(EVENTS[name]===0){name="on"+name;CollectingHandler.prototype[name]=function(){this.events.push([name]);if(this._cbs[name])this._cbs[name]()}}else if(EVENTS[name]===1){name="on"+name;CollectingHandler.prototype[name]=function(a){this.events.push([name,a]);if(this._cbs[name])this._cbs[name](a)}}else if(EVENTS[name]===2){name="on"+name;CollectingHandler.prototype[name]=function(a,b){this.events.push([name,a,b]);if(this._cbs[name])this._cbs[name](a,b)}}else{throw Error("wrong number of arguments")}});CollectingHandler.prototype.onreset=function(){this.events=[];if(this._cbs.onreset)this._cbs.onreset()};CollectingHandler.prototype.restart=function(){if(this._cbs.onreset)this._cbs.onreset();for(var i=0,len=this.events.length;i0;this._cbs.onclosetag(this._stack[--i]));}if(this._cbs.onend)this._cbs.onend()};Parser.prototype.reset=function(){if(this._cbs.onreset)this._cbs.onreset();this._tokenizer.reset();this._tagname="";this._attribname="";this._attribs=null;this._stack=[];if(this._cbs.onparserinit)this._cbs.onparserinit(this)};Parser.prototype.parseComplete=function(data){this.reset();this.end(data)};Parser.prototype.write=function(chunk){this._tokenizer.write(chunk)};Parser.prototype.end=function(chunk){this._tokenizer.end(chunk)};Parser.prototype.pause=function(){this._tokenizer.pause()};Parser.prototype.resume=function(){this._tokenizer.resume()};Parser.prototype.parseChunk=Parser.prototype.write;Parser.prototype.done=Parser.prototype.end;module.exports=Parser},{"./Tokenizer.js":34,events:28,inherits:38}],32:[function(require,module,exports){module.exports=ProxyHandler;function ProxyHandler(cbs){this._cbs=cbs||{}}var EVENTS=require("./").EVENTS;Object.keys(EVENTS).forEach(function(name){if(EVENTS[name]===0){name="on"+name;ProxyHandler.prototype[name]=function(){if(this._cbs[name])this._cbs[name]()}}else if(EVENTS[name]===1){name="on"+name;ProxyHandler.prototype[name]=function(a){if(this._cbs[name])this._cbs[name](a)}}else if(EVENTS[name]===2){name="on"+name;ProxyHandler.prototype[name]=function(a,b){if(this._cbs[name])this._cbs[name](a,b)}}else{throw Error("wrong number of arguments")}})},{"./":36}],33:[function(require,module,exports){module.exports=Stream;var Parser=require("./WritableStream.js");function Stream(options){Parser.call(this,new Cbs(this),options)}require("inherits")(Stream,Parser);Stream.prototype.readable=true;function Cbs(scope){this.scope=scope}var EVENTS=require("../").EVENTS;Object.keys(EVENTS).forEach(function(name){if(EVENTS[name]===0){Cbs.prototype["on"+name]=function(){this.scope.emit(name)}}else if(EVENTS[name]===1){Cbs.prototype["on"+name]=function(a){this.scope.emit(name,a)}}else if(EVENTS[name]===2){Cbs.prototype["on"+name]=function(a,b){this.scope.emit(name,a,b)}}else{throw Error("wrong number of arguments!")}})},{"../":36,"./WritableStream.js":35,inherits:38}],34:[function(require,module,exports){module.exports=Tokenizer;var decodeCodePoint=require("entities/lib/decode_codepoint.js"),entityMap=require("entities/maps/entities.json"),legacyMap=require("entities/maps/legacy.json"),xmlMap=require("entities/maps/xml.json"),i=0,TEXT=i++,BEFORE_TAG_NAME=i++,IN_TAG_NAME=i++,IN_SELF_CLOSING_TAG=i++,BEFORE_CLOSING_TAG_NAME=i++,IN_CLOSING_TAG_NAME=i++,AFTER_CLOSING_TAG_NAME=i++,BEFORE_ATTRIBUTE_NAME=i++,IN_ATTRIBUTE_NAME=i++,AFTER_ATTRIBUTE_NAME=i++,BEFORE_ATTRIBUTE_VALUE=i++,IN_ATTRIBUTE_VALUE_DQ=i++,IN_ATTRIBUTE_VALUE_SQ=i++,IN_ATTRIBUTE_VALUE_NQ=i++,BEFORE_DECLARATION=i++,IN_DECLARATION=i++,IN_PROCESSING_INSTRUCTION=i++,BEFORE_COMMENT=i++,IN_COMMENT=i++,AFTER_COMMENT_1=i++,AFTER_COMMENT_2=i++,BEFORE_CDATA_1=i++,BEFORE_CDATA_2=i++,BEFORE_CDATA_3=i++,BEFORE_CDATA_4=i++,BEFORE_CDATA_5=i++,BEFORE_CDATA_6=i++,IN_CDATA=i++,AFTER_CDATA_1=i++,AFTER_CDATA_2=i++,BEFORE_SPECIAL=i++,BEFORE_SPECIAL_END=i++,BEFORE_SCRIPT_1=i++,BEFORE_SCRIPT_2=i++,BEFORE_SCRIPT_3=i++,BEFORE_SCRIPT_4=i++,BEFORE_SCRIPT_5=i++,AFTER_SCRIPT_1=i++,AFTER_SCRIPT_2=i++,AFTER_SCRIPT_3=i++,AFTER_SCRIPT_4=i++,AFTER_SCRIPT_5=i++,BEFORE_STYLE_1=i++,BEFORE_STYLE_2=i++,BEFORE_STYLE_3=i++,BEFORE_STYLE_4=i++,AFTER_STYLE_1=i++,AFTER_STYLE_2=i++,AFTER_STYLE_3=i++,AFTER_STYLE_4=i++,BEFORE_ENTITY=i++,BEFORE_NUMERIC_ENTITY=i++,IN_NAMED_ENTITY=i++,IN_NUMERIC_ENTITY=i++,IN_HEX_ENTITY=i++,j=0,SPECIAL_NONE=j++,SPECIAL_SCRIPT=j++,SPECIAL_STYLE=j++;function whitespace(c){return c===" "||c==="\n"||c==="\t"||c==="\f"||c==="\r"}function characterState(char,SUCCESS){return function(c){if(c===char)this._state=SUCCESS}}function ifElseState(upper,SUCCESS,FAILURE){var lower=upper.toLowerCase();if(upper===lower){return function(c){if(c===lower){this._state=SUCCESS}else{this._state=FAILURE;this._index--}}}else{return function(c){if(c===lower||c===upper){this._state=SUCCESS}else{this._state=FAILURE;this._index--}}}}function consumeSpecialNameChar(upper,NEXT_STATE){var lower=upper.toLowerCase();return function(c){if(c===lower||c===upper){this._state=NEXT_STATE}else{this._state=IN_TAG_NAME;this._index--}}}function Tokenizer(options,cbs){this._state=TEXT;this._buffer="";this._sectionStart=0;this._index=0;this._bufferOffset=0;this._baseState=TEXT;this._special=SPECIAL_NONE;this._cbs=cbs;this._running=true;this._ended=false;this._xmlMode=!!(options&&options.xmlMode);this._decodeEntities=!!(options&&options.decodeEntities)}Tokenizer.prototype._stateText=function(c){if(c==="<"){if(this._index>this._sectionStart){this._cbs.ontext(this._getSection())}this._state=BEFORE_TAG_NAME;this._sectionStart=this._index}else if(this._decodeEntities&&this._special===SPECIAL_NONE&&c==="&"){if(this._index>this._sectionStart){this._cbs.ontext(this._getSection())}this._baseState=TEXT;this._state=BEFORE_ENTITY;this._sectionStart=this._index}};Tokenizer.prototype._stateBeforeTagName=function(c){if(c==="/"){this._state=BEFORE_CLOSING_TAG_NAME}else if(c==="<"){this._cbs.ontext(this._getSection());this._sectionStart=this._index}else if(c===">"||this._special!==SPECIAL_NONE||whitespace(c)){this._state=TEXT}else if(c==="!"){this._state=BEFORE_DECLARATION;this._sectionStart=this._index+1}else if(c==="?"){this._state=IN_PROCESSING_INSTRUCTION;this._sectionStart=this._index+1}else{this._state=!this._xmlMode&&(c==="s"||c==="S")?BEFORE_SPECIAL:IN_TAG_NAME;this._sectionStart=this._index}};Tokenizer.prototype._stateInTagName=function(c){if(c==="/"||c===">"||whitespace(c)){this._emitToken("onopentagname");this._state=BEFORE_ATTRIBUTE_NAME;this._index--}};Tokenizer.prototype._stateBeforeCloseingTagName=function(c){if(whitespace(c));else if(c===">"){this._state=TEXT}else if(this._special!==SPECIAL_NONE){if(c==="s"||c==="S"){this._state=BEFORE_SPECIAL_END}else{this._state=TEXT;this._index--}}else{this._state=IN_CLOSING_TAG_NAME;this._sectionStart=this._index}};Tokenizer.prototype._stateInCloseingTagName=function(c){if(c===">"||whitespace(c)){this._emitToken("onclosetag");this._state=AFTER_CLOSING_TAG_NAME;this._index--}};Tokenizer.prototype._stateAfterCloseingTagName=function(c){if(c===">"){this._state=TEXT;this._sectionStart=this._index+1}};Tokenizer.prototype._stateBeforeAttributeName=function(c){if(c===">"){this._cbs.onopentagend();this._state=TEXT;this._sectionStart=this._index+1}else if(c==="/"){this._state=IN_SELF_CLOSING_TAG}else if(!whitespace(c)){this._state=IN_ATTRIBUTE_NAME;this._sectionStart=this._index}};Tokenizer.prototype._stateInSelfClosingTag=function(c){if(c===">"){this._cbs.onselfclosingtag();this._state=TEXT;this._sectionStart=this._index+1}else if(!whitespace(c)){this._state=BEFORE_ATTRIBUTE_NAME;this._index--}};Tokenizer.prototype._stateInAttributeName=function(c){if(c==="="||c==="/"||c===">"||whitespace(c)){this._cbs.onattribname(this._getSection());this._sectionStart=-1;this._state=AFTER_ATTRIBUTE_NAME;this._index--}};Tokenizer.prototype._stateAfterAttributeName=function(c){if(c==="="){this._state=BEFORE_ATTRIBUTE_VALUE}else if(c==="/"||c===">"){this._cbs.onattribend();this._state=BEFORE_ATTRIBUTE_NAME;this._index--}else if(!whitespace(c)){this._cbs.onattribend();this._state=IN_ATTRIBUTE_NAME;this._sectionStart=this._index}};Tokenizer.prototype._stateBeforeAttributeValue=function(c){if(c==='"'){this._state=IN_ATTRIBUTE_VALUE_DQ;this._sectionStart=this._index+1}else if(c==="'"){this._state=IN_ATTRIBUTE_VALUE_SQ;this._sectionStart=this._index+1}else if(!whitespace(c)){this._state=IN_ATTRIBUTE_VALUE_NQ;this._sectionStart=this._index;this._index--}};Tokenizer.prototype._stateInAttributeValueDoubleQuotes=function(c){if(c==='"'){this._emitToken("onattribdata");this._cbs.onattribend();this._state=BEFORE_ATTRIBUTE_NAME}else if(this._decodeEntities&&c==="&"){this._emitToken("onattribdata");this._baseState=this._state;this._state=BEFORE_ENTITY;this._sectionStart=this._index}};Tokenizer.prototype._stateInAttributeValueSingleQuotes=function(c){if(c==="'"){this._emitToken("onattribdata");this._cbs.onattribend();this._state=BEFORE_ATTRIBUTE_NAME}else if(this._decodeEntities&&c==="&"){this._emitToken("onattribdata");this._baseState=this._state;this._state=BEFORE_ENTITY;this._sectionStart=this._index}};Tokenizer.prototype._stateInAttributeValueNoQuotes=function(c){if(whitespace(c)||c===">"){this._emitToken("onattribdata");this._cbs.onattribend();this._state=BEFORE_ATTRIBUTE_NAME;this._index--}else if(this._decodeEntities&&c==="&"){this._emitToken("onattribdata");this._baseState=this._state;this._state=BEFORE_ENTITY;this._sectionStart=this._index}};Tokenizer.prototype._stateBeforeDeclaration=function(c){this._state=c==="["?BEFORE_CDATA_1:c==="-"?BEFORE_COMMENT:IN_DECLARATION};Tokenizer.prototype._stateInDeclaration=function(c){if(c===">"){this._cbs.ondeclaration(this._getSection());this._state=TEXT;this._sectionStart=this._index+1}};Tokenizer.prototype._stateInProcessingInstruction=function(c){if(c===">"){this._cbs.onprocessinginstruction(this._getSection());this._state=TEXT;this._sectionStart=this._index+1}};Tokenizer.prototype._stateBeforeComment=function(c){if(c==="-"){this._state=IN_COMMENT;this._sectionStart=this._index+1}else{this._state=IN_DECLARATION}};Tokenizer.prototype._stateInComment=function(c){if(c==="-")this._state=AFTER_COMMENT_1};Tokenizer.prototype._stateAfterComment1=function(c){if(c==="-"){this._state=AFTER_COMMENT_2}else{this._state=IN_COMMENT}};Tokenizer.prototype._stateAfterComment2=function(c){if(c===">"){this._cbs.oncomment(this._buffer.substring(this._sectionStart,this._index-2));this._state=TEXT;this._sectionStart=this._index+1}else if(c!=="-"){this._state=IN_COMMENT}};Tokenizer.prototype._stateBeforeCdata1=ifElseState("C",BEFORE_CDATA_2,IN_DECLARATION);Tokenizer.prototype._stateBeforeCdata2=ifElseState("D",BEFORE_CDATA_3,IN_DECLARATION);Tokenizer.prototype._stateBeforeCdata3=ifElseState("A",BEFORE_CDATA_4,IN_DECLARATION);Tokenizer.prototype._stateBeforeCdata4=ifElseState("T",BEFORE_CDATA_5,IN_DECLARATION);Tokenizer.prototype._stateBeforeCdata5=ifElseState("A",BEFORE_CDATA_6,IN_DECLARATION);Tokenizer.prototype._stateBeforeCdata6=function(c){if(c==="["){this._state=IN_CDATA;this._sectionStart=this._index+1}else{this._state=IN_DECLARATION;this._index--}};Tokenizer.prototype._stateInCdata=function(c){if(c==="]")this._state=AFTER_CDATA_1};Tokenizer.prototype._stateAfterCdata1=characterState("]",AFTER_CDATA_2);Tokenizer.prototype._stateAfterCdata2=function(c){if(c===">"){this._cbs.oncdata(this._buffer.substring(this._sectionStart,this._index-2));this._state=TEXT;this._sectionStart=this._index+1}else if(c!=="]"){this._state=IN_CDATA}};Tokenizer.prototype._stateBeforeSpecial=function(c){if(c==="c"||c==="C"){this._state=BEFORE_SCRIPT_1}else if(c==="t"||c==="T"){this._state=BEFORE_STYLE_1}else{this._state=IN_TAG_NAME;this._index--}};Tokenizer.prototype._stateBeforeSpecialEnd=function(c){if(this._special===SPECIAL_SCRIPT&&(c==="c"||c==="C")){this._state=AFTER_SCRIPT_1}else if(this._special===SPECIAL_STYLE&&(c==="t"||c==="T")){this._state=AFTER_STYLE_1}else this._state=TEXT};Tokenizer.prototype._stateBeforeScript1=consumeSpecialNameChar("R",BEFORE_SCRIPT_2);Tokenizer.prototype._stateBeforeScript2=consumeSpecialNameChar("I",BEFORE_SCRIPT_3);Tokenizer.prototype._stateBeforeScript3=consumeSpecialNameChar("P",BEFORE_SCRIPT_4);Tokenizer.prototype._stateBeforeScript4=consumeSpecialNameChar("T",BEFORE_SCRIPT_5);Tokenizer.prototype._stateBeforeScript5=function(c){if(c==="/"||c===">"||whitespace(c)){this._special=SPECIAL_SCRIPT}this._state=IN_TAG_NAME;this._index--};Tokenizer.prototype._stateAfterScript1=ifElseState("R",AFTER_SCRIPT_2,TEXT);Tokenizer.prototype._stateAfterScript2=ifElseState("I",AFTER_SCRIPT_3,TEXT);Tokenizer.prototype._stateAfterScript3=ifElseState("P",AFTER_SCRIPT_4,TEXT);Tokenizer.prototype._stateAfterScript4=ifElseState("T",AFTER_SCRIPT_5,TEXT);Tokenizer.prototype._stateAfterScript5=function(c){if(c===">"||whitespace(c)){this._special=SPECIAL_NONE;this._state=IN_CLOSING_TAG_NAME;this._sectionStart=this._index-6;this._index--}else this._state=TEXT};Tokenizer.prototype._stateBeforeStyle1=consumeSpecialNameChar("Y",BEFORE_STYLE_2);Tokenizer.prototype._stateBeforeStyle2=consumeSpecialNameChar("L",BEFORE_STYLE_3);Tokenizer.prototype._stateBeforeStyle3=consumeSpecialNameChar("E",BEFORE_STYLE_4);Tokenizer.prototype._stateBeforeStyle4=function(c){if(c==="/"||c===">"||whitespace(c)){this._special=SPECIAL_STYLE}this._state=IN_TAG_NAME;this._index--};Tokenizer.prototype._stateAfterStyle1=ifElseState("Y",AFTER_STYLE_2,TEXT);Tokenizer.prototype._stateAfterStyle2=ifElseState("L",AFTER_STYLE_3,TEXT);Tokenizer.prototype._stateAfterStyle3=ifElseState("E",AFTER_STYLE_4,TEXT);Tokenizer.prototype._stateAfterStyle4=function(c){if(c===">"||whitespace(c)){this._special=SPECIAL_NONE;this._state=IN_CLOSING_TAG_NAME;this._sectionStart=this._index-5;this._index--}else this._state=TEXT};Tokenizer.prototype._stateBeforeEntity=ifElseState("#",BEFORE_NUMERIC_ENTITY,IN_NAMED_ENTITY);Tokenizer.prototype._stateBeforeNumericEntity=ifElseState("X",IN_HEX_ENTITY,IN_NUMERIC_ENTITY);Tokenizer.prototype._parseNamedEntityStrict=function(){if(this._sectionStart+16)limit=6;while(limit>=2){var entity=this._buffer.substr(start,limit);if(legacyMap.hasOwnProperty(entity)){this._emitPartial(legacyMap[entity]);this._sectionStart+=limit+1;return}else{limit--}}};Tokenizer.prototype._stateInNamedEntity=function(c){if(c===";"){this._parseNamedEntityStrict();if(this._sectionStart+1"z")&&(c<"A"||c>"Z")&&(c<"0"||c>"9")){if(this._xmlMode);else if(this._sectionStart+1===this._index);else if(this._baseState!==TEXT){if(c!=="="){this._parseNamedEntityStrict()}}else{this._parseLegacyEntity()}this._state=this._baseState;this._index--}};Tokenizer.prototype._decodeNumericEntity=function(offset,base){var sectionStart=this._sectionStart+offset;if(sectionStart!==this._index){var entity=this._buffer.substring(sectionStart,this._index);var parsed=parseInt(entity,base);this._emitPartial(decodeCodePoint(parsed));this._sectionStart=this._index}else{this._sectionStart--}this._state=this._baseState};Tokenizer.prototype._stateInNumericEntity=function(c){if(c===";"){this._decodeNumericEntity(2,10);this._sectionStart++}else if(c<"0"||c>"9"){if(!this._xmlMode){this._decodeNumericEntity(2,10)}else{this._state=this._baseState}this._index--}};Tokenizer.prototype._stateInHexEntity=function(c){if(c===";"){this._decodeNumericEntity(3,16);this._sectionStart++}else if((c<"a"||c>"f")&&(c<"A"||c>"F")&&(c<"0"||c>"9")){if(!this._xmlMode){this._decodeNumericEntity(3,16)}else{this._state=this._baseState}this._index--}};Tokenizer.prototype._cleanup=function(){if(this._sectionStart<0){this._buffer="";this._index=0;this._bufferOffset+=this._index}else if(this._running){if(this._state===TEXT){if(this._sectionStart!==this._index){this._cbs.ontext(this._buffer.substr(this._sectionStart))}this._buffer="";this._bufferOffset+=this._index;this._index=0}else if(this._sectionStart===this._index){this._buffer="";this._bufferOffset+=this._index;this._index=0}else{this._buffer=this._buffer.substr(this._sectionStart);this._index-=this._sectionStart;this._bufferOffset+=this._sectionStart}this._sectionStart=0}};Tokenizer.prototype.write=function(chunk){if(this._ended)this._cbs.onerror(Error(".write() after done!"));this._buffer+=chunk;this._parse()};Tokenizer.prototype._parse=function(){while(this._index>1;var nBits=-7;var i=isLE?nBytes-1:0;var d=isLE?-1:1;var s=buffer[offset+i];i+=d;e=s&(1<<-nBits)-1;s>>=-nBits;nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i],i+=d,nBits-=8){}m=e&(1<<-nBits)-1;e>>=-nBits;nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i],i+=d,nBits-=8){}if(e===0){e=1-eBias}else if(e===eMax){return m?NaN:(s?-1:1)*Infinity}else{m=m+Math.pow(2,mLen);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-mLen)};exports.write=function(buffer,value,offset,isLE,mLen,nBytes){var e,m,c;var eLen=nBytes*8-mLen-1;var eMax=(1<>1;var rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0;var i=isLE?0:nBytes-1;var d=isLE?1:-1;var s=value<0||value===0&&1/value<0?1:0;value=Math.abs(value);if(isNaN(value)||value===Infinity){m=isNaN(value)?1:0;e=eMax}else{e=Math.floor(Math.log(value)/Math.LN2);if(value*(c=Math.pow(2,-e))<1){e--;c*=2}if(e+eBias>=1){value+=rt/c}else{value+=rt*Math.pow(2,1-eBias)}if(value*c>=2){e++;c/=2}if(e+eBias>=eMax){m=0;e=eMax}else if(e+eBias>=1){m=(value*c-1)*Math.pow(2,mLen);e=e+eBias}else{m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen);e=0}}for(;mLen>=8;buffer[offset+i]=m&255,i+=d,m/=256,mLen-=8){}e=e<0;buffer[offset+i]=e&255,i+=d,e/=256,eLen-=8){}buffer[offset+i-d]|=s*128}},{}],38:[function(require,module,exports){if(typeof Object.create==="function"){module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:false,writable:true,configurable:true}})}}else{module.exports=function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype;ctor.prototype=new TempCtor;ctor.prototype.constructor=ctor}}},{}],39:[function(require,module,exports){module.exports=function(obj){return obj!=null&&(isBuffer(obj)||isSlowBuffer(obj)||!!obj._isBuffer)};function isBuffer(obj){return!!obj.constructor&&typeof obj.constructor.isBuffer==="function"&&obj.constructor.isBuffer(obj)}function isSlowBuffer(obj){return typeof obj.readFloatLE==="function"&&typeof obj.slice==="function"&&isBuffer(obj.slice(0,0))}},{}],40:[function(require,module,exports){var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)=="[object Array]"}},{}],41:[function(require,module,exports){(function(process){"use strict";if(!process.version||process.version.indexOf("v0.")===0||process.version.indexOf("v1.")===0&&process.version.indexOf("v1.8.")!==0){module.exports=nextTick}else{module.exports=process.nextTick}function nextTick(fn,arg1,arg2,arg3){if(typeof fn!=="function"){throw new TypeError('"callback" argument must be a function')}var len=arguments.length;var args,i;switch(len){case 0:case 1:return process.nextTick(fn);case 2:return process.nextTick(function afterTickOne(){fn.call(null,arg1)});case 3:return process.nextTick(function afterTickTwo(){fn.call(null,arg1,arg2)});case 4:return process.nextTick(function afterTickThree(){fn.call(null,arg1,arg2,arg3)});default:args=new Array(len-1);i=0;while(i1){for(var i=1;i0){if(state.ended&&!addToFront){var e=new Error("stream.push() after EOF");stream.emit("error",e)}else if(state.endEmitted&&addToFront){var _e=new Error("stream.unshift() after end event");stream.emit("error",_e)}else{var skipAdd;if(state.decoder&&!addToFront&&!encoding){chunk=state.decoder.write(chunk);skipAdd=!state.objectMode&&chunk.length===0}if(!addToFront)state.reading=false;if(!skipAdd){if(state.flowing&&state.length===0&&!state.sync){stream.emit("data",chunk);stream.read(0)}else{state.length+=state.objectMode?1:chunk.length;if(addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if(state.needReadable)emitReadable(stream)}}maybeReadMore(stream,state)}}else if(!addToFront){state.reading=false}return needMoreData(state)}function needMoreData(state){return!state.ended&&(state.needReadable||state.length=MAX_HWM){n=MAX_HWM}else{n--;n|=n>>>1;n|=n>>>2;n|=n>>>4;n|=n>>>8;n|=n>>>16;n++}return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if(state.objectMode)return 1;if(n!==n){if(state.flowing&&state.length)return state.buffer.head.data.length;else return state.length}if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n<=state.length)return n;if(!state.ended){state.needReadable=true;return 0}return state.length}Readable.prototype.read=function(n){debug("read",n);n=parseInt(n,10);var state=this._readableState;var nOrig=n;if(n!==0)state.emittedReadable=false;if(n===0&&state.needReadable&&(state.length>=state.highWaterMark||state.ended)){debug("read: emitReadable",state.length,state.ended);if(state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}n=howMuchToRead(n,state);if(n===0&&state.ended){if(state.length===0)endReadable(this);return null}var doRead=state.needReadable;debug("need readable",doRead);if(state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(ret===null){state.needReadable=true;n=0}else{state.length-=n}if(state.length===0){if(!state.ended)state.needReadable=true;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null)this.emit("data",ret);return ret};function chunkInvalid(state,chunk){var er=null;if(!Buffer.isBuffer(chunk)&&typeof chunk!=="string"&&chunk!==null&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}return er}function onEofChunk(stream,state){if(state.ended)return;if(state.decoder){var chunk=state.decoder.end();if(chunk&&chunk.length){state.buffer.push(chunk);state.length+=state.objectMode?1:chunk.length}}state.ended=true;emitReadable(stream)}function emitReadable(stream){var state=stream._readableState;state.needReadable=false;if(!state.emittedReadable){debug("emitReadable",state.flowing);state.emittedReadable=true;if(state.sync)processNextTick(emitReadable_,stream);else emitReadable_(stream)}}function emitReadable_(stream){debug("emit readable");stream.emit("readable");flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore){state.readingMore=true;processNextTick(maybeReadMore_,stream,state)}}function maybeReadMore_(stream,state){var len=state.length;while(!state.reading&&!state.flowing&&!state.ended&&state.length1&&indexOf(state.pipes,dest)!==-1)&&!cleanedUp){debug("false write response, pause",src._readableState.awaitDrain);src._readableState.awaitDrain++;increasedAwaitDrain=true}src.pause()}}function onerror(er){debug("onerror",er);unpipe();dest.removeListener("error",onerror);if(EElistenerCount(dest,"error")===0)dest.emit("error",er)}prependListener(dest,"error",onerror);function onclose(){dest.removeListener("finish",onfinish);unpipe()}dest.once("close",onclose);function onfinish(){debug("onfinish");dest.removeListener("close",onclose);unpipe()}dest.once("finish",onfinish);function unpipe(){debug("unpipe");src.unpipe(dest)}dest.emit("pipe",src);if(!state.flowing){debug("pipe resume");src.resume()}return dest};function pipeOnDrain(src){return function(){var state=src._readableState;debug("pipeOnDrain",state.awaitDrain);if(state.awaitDrain)state.awaitDrain--;if(state.awaitDrain===0&&EElistenerCount(src,"data")){state.flowing=true;flow(src)}}}Readable.prototype.unpipe=function(dest){var state=this._readableState;if(state.pipesCount===0)return this;if(state.pipesCount===1){if(dest&&dest!==state.pipes)return this;if(!dest)dest=state.pipes;state.pipes=null;state.pipesCount=0;state.flowing=false;if(dest)dest.emit("unpipe",this);return this}if(!dest){var dests=state.pipes;var len=state.pipesCount;state.pipes=null;state.pipesCount=0;state.flowing=false;for(var _i=0;_i=state.length){if(state.decoder)ret=state.buffer.join("");else if(state.buffer.length===1)ret=state.buffer.head.data;else ret=state.buffer.concat(state.length);state.buffer.clear()}else{ret=fromListPartial(n,state.buffer,state.decoder)}return ret}function fromListPartial(n,list,hasStrings){var ret;if(nstr.length?str.length:n;if(nb===str.length)ret+=str;else ret+=str.slice(0,n);n-=nb;if(n===0){if(nb===str.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null}else{list.head=p;p.data=str.slice(nb)}break}++c}list.length-=c;return ret}function copyFromBuffer(n,list){var ret=bufferShim.allocUnsafe(n);var p=list.head;var c=1;p.data.copy(ret);n-=p.data.length;while(p=p.next){var buf=p.data;var nb=n>buf.length?buf.length:n;buf.copy(ret,ret.length-n,0,nb);n-=nb;if(n===0){if(nb===buf.length){++c;if(p.next)list.head=p.next;else list.head=list.tail=null}else{list.head=p;p.data=buf.slice(nb)}break}++c}list.length-=c;return ret}function endReadable(stream){var state=stream._readableState;if(state.length>0)throw new Error('"endReadable()" called on non-empty stream');if(!state.endEmitted){state.ended=true;processNextTick(endReadableNT,state,stream)}}function endReadableNT(state,stream){if(!state.endEmitted&&state.length===0){state.endEmitted=true;stream.readable=false;stream.emit("end")}}function forEach(xs,f){for(var i=0,l=xs.length;i-1?setImmediate:processNextTick;Writable.WritableState=WritableState;var util=require("core-util-is");util.inherits=require("inherits");var internalUtil={deprecate:require("util-deprecate")};var Stream;(function(){try{Stream=require("st"+"ream")}catch(_){}finally{if(!Stream)Stream=require("events").EventEmitter}})();var Buffer=require("buffer").Buffer;var bufferShim=require("buffer-shims");util.inherits(Writable,Stream);function nop(){}function WriteReq(chunk,encoding,cb){this.chunk=chunk;this.encoding=encoding;this.callback=cb;this.next=null}var Duplex;function WritableState(options,stream){Duplex=Duplex||require("./_stream_duplex");options=options||{};this.objectMode=!!options.objectMode;if(stream instanceof Duplex)this.objectMode=this.objectMode||!!options.writableObjectMode;var hwm=options.highWaterMark;var defaultHwm=this.objectMode?16:16*1024;this.highWaterMark=hwm||hwm===0?hwm:defaultHwm;this.highWaterMark=~~this.highWaterMark;this.needDrain=false;this.ending=false;this.ended=false;this.finished=false;var noDecode=options.decodeStrings===false;this.decodeStrings=!noDecode;this.defaultEncoding=options.defaultEncoding||"utf8";this.length=0;this.writing=false;this.corked=0;this.sync=true;this.bufferProcessing=false;this.onwrite=function(er){onwrite(stream,er)};this.writecb=null;this.writelen=0;this.bufferedRequest=null;this.lastBufferedRequest=null;this.pendingcb=0;this.prefinished=false;this.errorEmitted=false;this.bufferedRequestCount=0;this.corkedRequestsFree=new CorkedRequest(this)}WritableState.prototype.getBuffer=function writableStateGetBuffer(){var current=this.bufferedRequest;var out=[];while(current){out.push(current);current=current.next}return out};(function(){try{Object.defineProperty(WritableState.prototype,"buffer",{get:internalUtil.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer "+"instead.")})}catch(_){}})();var Duplex;function Writable(options){Duplex=Duplex||require("./_stream_duplex");if(!(this instanceof Writable)&&!(this instanceof Duplex))return new Writable(options);this._writableState=new WritableState(options,this);this.writable=true;if(options){if(typeof options.write==="function")this._write=options.write;if(typeof options.writev==="function")this._writev=options.writev}Stream.call(this)}Writable.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))};function writeAfterEnd(stream,cb){var er=new Error("write after end");stream.emit("error",er);processNextTick(cb,er)}function validChunk(stream,state,chunk,cb){var valid=true;var er=false;if(chunk===null){er=new TypeError("May not write null values to stream")}else if(!Buffer.isBuffer(chunk)&&typeof chunk!=="string"&&chunk!==undefined&&!state.objectMode){er=new TypeError("Invalid non-string/buffer chunk")}if(er){stream.emit("error",er);processNextTick(cb,er);valid=false}return valid}Writable.prototype.write=function(chunk,encoding,cb){var state=this._writableState;var ret=false;if(typeof encoding==="function"){cb=encoding;encoding=null}if(Buffer.isBuffer(chunk))encoding="buffer";else if(!encoding)encoding=state.defaultEncoding;if(typeof cb!=="function")cb=nop;if(state.ended)writeAfterEnd(this,cb);else if(validChunk(this,state,chunk,cb)){ -state.pendingcb++;ret=writeOrBuffer(this,state,chunk,encoding,cb)}return ret};Writable.prototype.cork=function(){var state=this._writableState;state.corked++};Writable.prototype.uncork=function(){var state=this._writableState;if(state.corked){state.corked--;if(!state.writing&&!state.corked&&!state.finished&&!state.bufferProcessing&&state.bufferedRequest)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=function setDefaultEncoding(encoding){if(typeof encoding==="string")encoding=encoding.toLowerCase();if(!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((encoding+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+encoding);this._writableState.defaultEncoding=encoding;return this};function decodeChunk(state,chunk,encoding){if(!state.objectMode&&state.decodeStrings!==false&&typeof chunk==="string"){chunk=bufferShim.from(chunk,encoding)}return chunk}function writeOrBuffer(stream,state,chunk,encoding,cb){chunk=decodeChunk(state,chunk,encoding);if(Buffer.isBuffer(chunk))encoding="buffer";var len=state.objectMode?1:chunk.length;state.length+=len;var ret=state.length0)this.tail.next=entry;else this.head=entry;this.tail=entry;++this.length};BufferList.prototype.unshift=function(v){var entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry;++this.length};BufferList.prototype.shift=function(){if(this.length===0)return;var ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return ret};BufferList.prototype.clear=function(){this.head=this.tail=null;this.length=0};BufferList.prototype.join=function(s){if(this.length===0)return"";var p=this.head;var ret=""+p.data;while(p=p.next){ret+=s+p.data}return ret};BufferList.prototype.concat=function(n){if(this.length===0)return bufferShim.alloc(0);if(this.length===1)return this.head.data;var ret=bufferShim.allocUnsafe(n>>>0);var p=this.head;var i=0;while(p){p.data.copy(ret,i);i+=p.data.length;p=p.next}return ret}},{buffer:5,"buffer-shims":4}],50:[function(require,module,exports){module.exports=require("./lib/_stream_passthrough.js")},{"./lib/_stream_passthrough.js":45}],51:[function(require,module,exports){(function(process){var Stream=function(){try{return require("st"+"ream")}catch(_){}}();exports=module.exports=require("./lib/_stream_readable.js");exports.Stream=Stream||exports;exports.Readable=exports;exports.Writable=require("./lib/_stream_writable.js");exports.Duplex=require("./lib/_stream_duplex.js");exports.Transform=require("./lib/_stream_transform.js");exports.PassThrough=require("./lib/_stream_passthrough.js");if(!process.browser&&process.env.READABLE_STREAM==="disable"&&Stream){module.exports=Stream}}).call(this,require("_process"))},{"./lib/_stream_duplex.js":44,"./lib/_stream_passthrough.js":45,"./lib/_stream_readable.js":46,"./lib/_stream_transform.js":47,"./lib/_stream_writable.js":48,_process:42}],52:[function(require,module,exports){module.exports=require("./lib/_stream_transform.js")},{"./lib/_stream_transform.js":47}],53:[function(require,module,exports){module.exports=require("./lib/_stream_writable.js")},{"./lib/_stream_writable.js":48}],54:[function(require,module,exports){module.exports=function(string){return string.replace(/[-\\^$*+?.()|[\]{}]/g,"\\$&")}},{}],55:[function(require,module,exports){module.exports=Stream;var EE=require("events").EventEmitter;var inherits=require("inherits");inherits(Stream,EE);Stream.Readable=require("readable-stream/readable.js");Stream.Writable=require("readable-stream/writable.js");Stream.Duplex=require("readable-stream/duplex.js");Stream.Transform=require("readable-stream/transform.js");Stream.PassThrough=require("readable-stream/passthrough.js");Stream.Stream=Stream;function Stream(){EE.call(this)}Stream.prototype.pipe=function(dest,options){var source=this;function ondata(chunk){if(dest.writable){if(false===dest.write(chunk)&&source.pause){source.pause()}}}source.on("data",ondata);function ondrain(){if(source.readable&&source.resume){source.resume()}}dest.on("drain",ondrain);if(!dest._isStdio&&(!options||options.end!==false)){source.on("end",onend);source.on("close",onclose)}var didOnEnd=false;function onend(){if(didOnEnd)return;didOnEnd=true;dest.end()}function onclose(){if(didOnEnd)return;didOnEnd=true;if(typeof dest.destroy==="function")dest.destroy()}function onerror(er){cleanup();if(EE.listenerCount(this,"error")===0){throw er}}source.on("error",onerror);dest.on("error",onerror);function cleanup(){source.removeListener("data",ondata);dest.removeListener("drain",ondrain);source.removeListener("end",onend);source.removeListener("close",onclose);source.removeListener("error",onerror);dest.removeListener("error",onerror);source.removeListener("end",cleanup);source.removeListener("close",cleanup);dest.removeListener("close",cleanup)}source.on("end",cleanup);source.on("close",cleanup);dest.on("close",cleanup);dest.emit("pipe",source);return dest}},{events:28,inherits:38,"readable-stream/duplex.js":43,"readable-stream/passthrough.js":50,"readable-stream/readable.js":51,"readable-stream/transform.js":52,"readable-stream/writable.js":53}],56:[function(require,module,exports){var Buffer=require("buffer").Buffer;var isBufferEncoding=Buffer.isEncoding||function(encoding){switch(encoding&&encoding.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function assertEncoding(encoding){if(encoding&&!isBufferEncoding(encoding)){throw new Error("Unknown encoding: "+encoding)}}var StringDecoder=exports.StringDecoder=function(encoding){this.encoding=(encoding||"utf8").toLowerCase().replace(/[-_]/,"");assertEncoding(encoding);switch(this.encoding){case"utf8":this.surrogateSize=3;break;case"ucs2":case"utf16le":this.surrogateSize=2;this.detectIncompleteChar=utf16DetectIncompleteChar;break;case"base64":this.surrogateSize=3;this.detectIncompleteChar=base64DetectIncompleteChar;break;default:this.write=passThroughWrite;return}this.charBuffer=new Buffer(6);this.charReceived=0;this.charLength=0};StringDecoder.prototype.write=function(buffer){var charStr="";while(this.charLength){var available=buffer.length>=this.charLength-this.charReceived?this.charLength-this.charReceived:buffer.length;buffer.copy(this.charBuffer,this.charReceived,0,available);this.charReceived+=available;if(this.charReceived=55296&&charCode<=56319){this.charLength+=this.surrogateSize;charStr="";continue}this.charReceived=this.charLength=0;if(buffer.length===0){return charStr}break}this.detectIncompleteChar(buffer);var end=buffer.length;if(this.charLength){buffer.copy(this.charBuffer,0,buffer.length-this.charReceived,end);end-=this.charReceived}charStr+=buffer.toString(this.encoding,0,end);var end=charStr.length-1;var charCode=charStr.charCodeAt(end);if(charCode>=55296&&charCode<=56319){var size=this.surrogateSize;this.charLength+=size;this.charReceived+=size;this.charBuffer.copy(this.charBuffer,size,0,size);buffer.copy(this.charBuffer,0,0,size);return charStr.substring(0,end)}return charStr};StringDecoder.prototype.detectIncompleteChar=function(buffer){var i=buffer.length>=3?3:buffer.length;for(;i>0;i--){var c=buffer[buffer.length-i];if(i==1&&c>>5==6){this.charLength=2;break}if(i<=2&&c>>4==14){this.charLength=3;break}if(i<=3&&c>>3==30){this.charLength=4;break}}this.charReceived=i};StringDecoder.prototype.end=function(buffer){var res="";if(buffer&&buffer.length)res=this.write(buffer);if(this.charReceived){var cr=this.charReceived;var buf=this.charBuffer;var enc=this.encoding;res+=buf.slice(0,cr).toString(enc)}return res};function passThroughWrite(buffer){return buffer.toString(this.encoding)}function utf16DetectIncompleteChar(buffer){this.charReceived=buffer.length%2;this.charLength=this.charReceived?2:0}function base64DetectIncompleteChar(buffer){this.charReceived=buffer.length%3;this.charLength=this.charReceived?3:0}},{buffer:5}],57:[function(require,module,exports){(function(global){module.exports=deprecate;function deprecate(fn,msg){if(config("noDeprecation")){return fn}var warned=false;function deprecated(){if(!warned){if(config("throwDeprecation")){throw new Error(msg)}else if(config("traceDeprecation")){console.trace(msg)}else{console.warn(msg)}warned=true}return fn.apply(this,arguments)}return deprecated}function config(name){try{if(!global.localStorage)return false}catch(_){return false}var val=global.localStorage[name];if(null==val)return false;return String(val).toLowerCase()==="true"}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],58:[function(require,module,exports){module.exports=extend;var hasOwnProperty=Object.prototype.hasOwnProperty;function extend(){var target={};for(var i=0;i 0) { - qp = obj.url.substring(obj.url.indexOf('?') + 1); - var parts = qp.split('&'); - if(parts && parts.length > 0) { - for(var i = 0; i < parts.length; i++) { - var kv = parts[i].split('='); - if(kv && kv.length > 0) { - if (kv[0] === this.name) { - // skip it - return false; - } - } - } - } - } - - if (obj.url.indexOf('?') > 0) { - obj.url = obj.url + '&' + this.name + '=' + this.value; - } else { - obj.url = obj.url + '?' + this.name + '=' + this.value; - } - - return true; - } else if (this.type === 'header') { - if(typeof obj.headers[this.name] === 'undefined') { - obj.headers[this.name] = this.value; - } - - return true; - } -}; - -var CookieAuthorization = module.exports.CookieAuthorization = function (cookie) { - this.cookie = cookie; -}; - -CookieAuthorization.prototype.apply = function (obj) { - obj.cookieJar = obj.cookieJar || new CookieJar(); - obj.cookieJar.setCookie(this.cookie); - - return true; -}; - -/** - * Password Authorization is a basic auth implementation - */ -var PasswordAuthorization = module.exports.PasswordAuthorization = function (username, password) { - if (arguments.length === 3) { - helpers.log('PasswordAuthorization: the \'name\' argument has been removed, pass only username and password'); - username = arguments[1]; - password = arguments[2]; - } - this.username = username; - this.password = password; -}; - -PasswordAuthorization.prototype.apply = function (obj) { - if(typeof obj.headers.Authorization === 'undefined') { - obj.headers.Authorization = 'Basic ' + btoa(this.username + ':' + this.password); - } - - return true; -}; - -},{"./helpers":4,"btoa":13,"cookiejar":18,"lodash-compat/collection/each":52,"lodash-compat/collection/includes":55,"lodash-compat/lang/isArray":140,"lodash-compat/lang/isObject":144}],3:[function(require,module,exports){ -'use strict'; - -var _ = { - bind: require('lodash-compat/function/bind'), - cloneDeep: require('lodash-compat/lang/cloneDeep'), - find: require('lodash-compat/collection/find'), - forEach: require('lodash-compat/collection/forEach'), - indexOf: require('lodash-compat/array/indexOf'), - isArray: require('lodash-compat/lang/isArray'), - isObject: require('lodash-compat/lang/isObject'), - isFunction: require('lodash-compat/lang/isFunction'), - isPlainObject: require('lodash-compat/lang/isPlainObject'), - isUndefined: require('lodash-compat/lang/isUndefined') -}; -var auth = require('./auth'); -var helpers = require('./helpers'); -var Model = require('./types/model'); -var Operation = require('./types/operation'); -var OperationGroup = require('./types/operationGroup'); -var Resolver = require('./resolver'); -var SwaggerHttp = require('./http'); -var SwaggerSpecConverter = require('./spec-converter'); -var Q = require('q'); - -// We have to keep track of the function/property names to avoid collisions for tag names which are used to allow the -// following usage: 'client.{tagName}' -var reservedClientTags = [ - 'apis', - 'authorizationScheme', - 'authorizations', - 'basePath', - 'build', - 'buildFrom1_1Spec', - 'buildFrom1_2Spec', - 'buildFromSpec', - 'clientAuthorizations', - 'convertInfo', - 'debug', - 'defaultErrorCallback', - 'defaultSuccessCallback', - 'enableCookies', - 'fail', - 'failure', - 'finish', - 'help', - 'host', - 'idFromOp', - 'info', - 'initialize', - 'isBuilt', - 'isValid', - 'modelPropertyMacro', - 'models', - 'modelsArray', - 'options', - 'parameterMacro', - 'parseUri', - 'progress', - 'resourceCount', - 'sampleModels', - 'selfReflect', - 'setConsolidatedModels', - 'spec', - 'supportedSubmitMethods', - 'swaggerRequestHeaders', - 'tagFromLabel', - 'title', - 'url', - 'useJQuery', - 'jqueryAjaxCache' -]; -// We have to keep track of the function/property names to avoid collisions for tag names which are used to allow the -// following usage: 'client.apis.{tagName}' -var reservedApiTags = [ - 'apis', - 'asCurl', - 'description', - 'externalDocs', - 'help', - 'label', - 'name', - 'operation', - 'operations', - 'operationsArray', - 'path', - 'tag' -]; -var supportedOperationMethods = ['delete', 'get', 'head', 'options', 'patch', 'post', 'put']; -var SwaggerClient = module.exports = function (url, options) { - this.authorizations = null; - this.authorizationScheme = null; - this.basePath = null; - this.debug = false; - this.enableCookies = false; - this.info = null; - this.isBuilt = false; - this.isValid = false; - this.modelsArray = []; - this.resourceCount = 0; - this.url = null; - this.useJQuery = false; - this.jqueryAjaxCache = false; - this.swaggerObject = {}; - this.deferredClient = undefined; - - this.clientAuthorizations = new auth.SwaggerAuthorizations(); - - if (typeof url !== 'undefined') { - return this.initialize(url, options); - } else { - return this; - } -}; - -SwaggerClient.prototype.initialize = function (url, options) { - this.models = {}; - this.sampleModels = {}; - - if (typeof url === 'string') { - this.url = url; - } else if (_.isObject(url)) { - options = url; - this.url = options.url; - } - - if(this.url && this.url.indexOf('http:') === -1 && this.url.indexOf('https:') === -1) { - // no protocol, so we can only use window if it exists - if(typeof(window) !== 'undefined' && window && window.location) { - this.url = window.location.origin + this.url; - } - } - - options = options || {}; - this.clientAuthorizations.add(options.authorizations); - this.swaggerRequestHeaders = options.swaggerRequestHeaders || 'application/json;charset=utf-8,*/*'; - this.defaultSuccessCallback = options.defaultSuccessCallback || null; - this.defaultErrorCallback = options.defaultErrorCallback || null; - this.modelPropertyMacro = options.modelPropertyMacro || null; - this.parameterMacro = options.parameterMacro || null; - this.usePromise = options.usePromise || null; - - - if(this.usePromise) { - this.deferredClient = Q.defer(); - } - - if (typeof options.success === 'function') { - this.success = options.success; - } - if (options.useJQuery) { - this.useJQuery = options.useJQuery; - } - - if (options.jqueryAjaxCache) { - this.jqueryAjaxCache = options.jqueryAjaxCache; - } - - if (options.enableCookies) { - this.enableCookies = options.enableCookies; - } - - this.options = options || {}; - - this.supportedSubmitMethods = options.supportedSubmitMethods || []; - this.failure = options.failure || function (err) { throw err; }; - this.progress = options.progress || function () {}; - this.spec = _.cloneDeep(options.spec); // Clone so we do not alter the provided document - - if (options.scheme) { - this.scheme = options.scheme; - } - - if (this.usePromise || typeof options.success === 'function') { - this.ready = true; - return this.build(); - } -}; - -SwaggerClient.prototype.build = function (mock) { - if (this.isBuilt) { - return this; - } - - var self = this; - - if (this.spec) { - this.progress('fetching resource list; Please wait.'); - } else { - this.progress('fetching resource list: ' + this.url + '; Please wait.'); - } - - var obj = { - useJQuery: this.useJQuery, - jqueryAjaxCache: this.jqueryAjaxCache, - url: this.url, - method: 'get', - headers: { - accept: this.swaggerRequestHeaders - }, - on: { - error: function (response) { - if (self.url.substring(0, 4) !== 'http') { - return self.fail('Please specify the protocol for ' + self.url); - } else if (response.status === 0) { - return self.fail('Can\'t read from server. It may not have the appropriate access-control-origin settings.'); - } else if (response.status === 404) { - return self.fail('Can\'t read swagger JSON from ' + self.url); - } else { - return self.fail(response.status + ' : ' + response.statusText + ' ' + self.url); - } - }, - response: function (resp) { - - var responseObj = resp.obj; - if(!responseObj) { - return self.fail('failed to parse JSON/YAML response'); - } - - self.swaggerVersion = responseObj.swaggerVersion; - self.swaggerObject = responseObj; - - if (responseObj.swagger && parseInt(responseObj.swagger) === 2) { - self.swaggerVersion = responseObj.swagger; - - new Resolver().resolve(responseObj, self.url, self.buildFromSpec, self); - - self.isValid = true; - } else { - var converter = new SwaggerSpecConverter(); - self.oldSwaggerObject = self.swaggerObject; - - converter.setDocumentationLocation(self.url); - converter.convert(responseObj, self.clientAuthorizations, self.options, function(spec) { - self.swaggerObject = spec; - new Resolver().resolve(spec, self.url, self.buildFromSpec, self); - self.isValid = true; - }); - } - } - } - }; - - if (this.spec) { - self.swaggerObject = this.spec; - setTimeout(function () { - new Resolver().resolve(self.spec, self.url, self.buildFromSpec, self); - }, 10); - } else { - this.clientAuthorizations.apply(obj); - - if (mock) { - return obj; - } - - new SwaggerHttp().execute(obj, this.options); - } - - return (this.usePromise) ? this.deferredClient.promise : this; -}; - -SwaggerClient.prototype.buildFromSpec = function (response) { - if (this.isBuilt) { - return this; - } - - this.apis = {}; - this.apisArray = []; - this.basePath = response.basePath || ''; - this.consumes = response.consumes; - this.host = response.host || ''; - this.info = response.info || {}; - this.produces = response.produces; - this.schemes = response.schemes || []; - this.securityDefinitions = response.securityDefinitions; - this.security = response.security; - this.title = response.title || ''; - - if (response.externalDocs) { - this.externalDocs = response.externalDocs; - } - - // legacy support - this.authSchemes = response.securityDefinitions; - - var definedTags = {}; - var k; - - if (Array.isArray(response.tags)) { - definedTags = {}; - - for (k = 0; k < response.tags.length; k++) { - var t = response.tags[k]; - definedTags[t.name] = t; - } - } - - var location; - - if (typeof this.url === 'string') { - location = this.parseUri(this.url); - if (typeof this.scheme === 'undefined' && typeof this.schemes === 'undefined' || this.schemes.length === 0) { - this.scheme = location.scheme || 'http'; - } else if (typeof this.scheme === 'undefined') { - this.scheme = this.schemes[0] || location.scheme; - } - - if (typeof this.host === 'undefined' || this.host === '') { - this.host = location.host; - - if (location.port) { - this.host = this.host + ':' + location.port; - } - } - } - else { - if (typeof this.schemes === 'undefined' || this.schemes.length === 0) { - this.scheme = 'http'; - } - else if (typeof this.scheme === 'undefined') { - this.scheme = this.schemes[0]; - } - } - - this.definitions = response.definitions; - - var key; - - for (key in this.definitions) { - var model = new Model(key, this.definitions[key], this.models, this.modelPropertyMacro); - - if (model) { - this.models[key] = model; - } - } - - // get paths, create functions for each operationId - var self = this; - - // Bind help to 'client.apis' - self.apis.help = _.bind(self.help, self); - - _.forEach(response.paths, function (pathObj, path) { - // Only process a path if it's an object - if (!_.isPlainObject(pathObj)) { - return; - } - - _.forEach(supportedOperationMethods, function (method) { - var operation = pathObj[method]; - - if (_.isUndefined(operation)) { - // Operation does not exist - return; - } else if (!_.isPlainObject(operation)) { - // Operation exists but it is not an Operation Object. Since this is invalid, log it. - helpers.log('The \'' + method + '\' operation for \'' + path + '\' path is not an Operation Object'); - - return; - } - - var tags = operation.tags; - - if (_.isUndefined(tags) || !_.isArray(tags) || tags.length === 0) { - tags = operation.tags = [ 'default' ]; - } - - var operationId = self.idFromOp(path, method, operation); - - var operationObject = new Operation(self, - operation.scheme, - operationId, - method, - path, - operation, - self.definitions, - self.models, - self.clientAuthorizations); - - // bind self operation's execute command to the api - _.forEach(tags, function (tag) { - var clientProperty = _.indexOf(reservedClientTags, tag) > -1 ? '_' + tag : tag; - var apiProperty = _.indexOf(reservedApiTags, tag) > -1 ? '_' + tag : tag; - var operationGroup = self[clientProperty]; - - if (clientProperty !== tag) { - helpers.log('The \'' + tag + '\' tag conflicts with a SwaggerClient function/property name. Use \'client.' + - clientProperty + '\' or \'client.apis.' + tag + '\' instead of \'client.' + tag + '\'.'); - } - - if (apiProperty !== tag) { - helpers.log('The \'' + tag + '\' tag conflicts with a SwaggerClient operation function/property name. Use ' + - '\'client.apis.' + apiProperty + '\' instead of \'client.apis.' + tag + '\'.'); - } - - if (_.indexOf(reservedApiTags, operationId) > -1) { - helpers.log('The \'' + operationId + '\' operationId conflicts with a SwaggerClient operation ' + - 'function/property name. Use \'client.apis.' + apiProperty + '._' + operationId + - '\' instead of \'client.apis.' + apiProperty + '.' + operationId + '\'.'); - - operationId = '_' + operationId; - operationObject.nickname = operationId; // So 'client.apis.[tag].operationId.help() works properly - } - - if (_.isUndefined(operationGroup)) { - operationGroup = self[clientProperty] = self.apis[apiProperty] = {}; - - operationGroup.operations = {}; - operationGroup.label = apiProperty; - operationGroup.apis = {}; - - var tagDef = definedTags[tag]; - - if (!_.isUndefined(tagDef)) { - operationGroup.description = tagDef.description; - operationGroup.externalDocs = tagDef.externalDocs; - } - - self[clientProperty].help = _.bind(self.help, operationGroup); - self.apisArray.push(new OperationGroup(tag, operationGroup.description, operationGroup.externalDocs, operationObject)); - } - - operationId = self.makeUniqueOperationId(operationId, self.apis[apiProperty]); - - // Bind tag help - if (!_.isFunction(operationGroup.help)) { - operationGroup.help = _.bind(self.help, operationGroup); - } - - // bind to the apis object - self.apis[apiProperty][operationId] = operationGroup[operationId] = _.bind(operationObject.execute, - operationObject); - self.apis[apiProperty][operationId].help = operationGroup[operationId].help = _.bind(operationObject.help, - operationObject); - self.apis[apiProperty][operationId].asCurl = operationGroup[operationId].asCurl = _.bind(operationObject.asCurl, - operationObject); - - operationGroup.apis[operationId] = operationGroup.operations[operationId] = operationObject; - - // legacy UI feature - var api = _.find(self.apisArray, function (api) { - return api.tag === tag; - }); - - if (api) { - api.operationsArray.push(operationObject); - } - }); - }); - }); - - // sort the apisArray according to the tags - var sortedApis = []; - _.forEach(Object.keys(definedTags), function (tag) { - var _apiToAdd; - var pos; - for(pos in self.apisArray) { - var _api = self.apisArray[pos]; - if(_api && tag === _api.name) { - sortedApis.push(_api); - self.apisArray[pos] = null; - } - } - }); - // add anything left - _.forEach(self.apisArray, function (api) { - if(api) { - sortedApis.push(api); - } - }); - self.apisArray = sortedApis; - - _.forEach(response.definitions, function (definitionObj, definition) { - definitionObj['id'] = definition.toLowerCase(); - definitionObj['name'] = definition; - self.modelsArray.push(definitionObj); - }); - - this.isBuilt = true; - - if (this.usePromise) { - this.isValid = true; - this.isBuilt = true; - this.deferredClient.resolve(this); - - return this.deferredClient.promise; - } - - if (this.success) { - this.success(); - } - - return this; -}; - -SwaggerClient.prototype.makeUniqueOperationId = function(operationId, api) { - var count = 0; - var name = operationId; - - // make unique across this operation group - while(true) { - var matched = false; - _.forEach(api.operations, function (operation) { - if(operation.nickname === name) { - matched = true; - } - }); - if(!matched) { - return name; - } - name = operationId + '_' + count; - count ++; - } - - return operationId; -}; - -SwaggerClient.prototype.parseUri = function (uri) { - var urlParseRE = /^(((([^:\/#\?]+:)?(?:(\/\/)((?:(([^:@\/#\?]+)(?:\:([^:@\/#\?]+))?)@)?(([^:\/#\?\]\[]+|\[[^\/\]@#?]+\])(?:\:([0-9]+))?))?)?)?((\/?(?:[^\/\?#]+\/+)*)([^\?#]*)))?(\?[^#]+)?)(#.*)?/; - var parts = urlParseRE.exec(uri); - - return { - scheme: parts[4] ? parts[4].replace(':','') : undefined, - host: parts[11], - port: parts[12], - path: parts[15] - }; -}; - -SwaggerClient.prototype.help = function (dontPrint) { - var output = ''; - - if (this instanceof SwaggerClient) { - _.forEach(this.apis, function (api, name) { - if (_.isPlainObject(api)) { - output += 'operations for the \'' + name + '\' tag\n'; - - _.forEach(api.operations, function (operation, name) { - output += ' * ' + name + ': ' + operation.summary + '\n'; - }); - } - }); - } else if (this instanceof OperationGroup || _.isPlainObject(this)) { - output += 'operations for the \'' + this.label + '\' tag\n'; - - _.forEach(this.apis, function (operation, name) { - output += ' * ' + name + ': ' + operation.summary + '\n'; - }); - } - - if (dontPrint) { - return output; - } else { - helpers.log(output); - - return output; - } -}; - -SwaggerClient.prototype.tagFromLabel = function (label) { - return label; -}; - -SwaggerClient.prototype.idFromOp = function (path, httpMethod, op) { - if(!op || !op.operationId) { - op = op || {}; - op.operationId = httpMethod + '_' + path; - } - var opId = op.operationId.replace(/[\s!@#$%^&*()_+=\[{\]};:<>|.\/?,\\'""-]/g, '_') || (path.substring(1) + '_' + httpMethod); - - opId = opId.replace(/((_){2,})/g, '_'); - opId = opId.replace(/^(_)*/g, ''); - opId = opId.replace(/([_])*$/g, ''); - - return opId; -}; - -SwaggerClient.prototype.setHost = function (host) { - this.host = host; - - if(this.apis) { - _.forEach(this.apis, function(api) { - if(api.operations) { - _.forEach(api.operations, function(operation) { - operation.host = host; - }); - } - }); - } -}; - -SwaggerClient.prototype.setBasePath = function (basePath) { - this.basePath = basePath; - - if(this.apis) { - _.forEach(this.apis, function(api) { - if(api.operations) { - _.forEach(api.operations, function(operation) { - operation.basePath = basePath; - }); - } - }); - } -}; - -SwaggerClient.prototype.setSchemes = function (schemes) { - this.schemes = schemes; - - if(schemes && schemes.length > 0) { - if(this.apis) { - _.forEach(this.apis, function (api) { - if (api.operations) { - _.forEach(api.operations, function (operation) { - operation.scheme = schemes[0]; - }); - } - }); - } - } -}; - - -SwaggerClient.prototype.fail = function (message) { - if (this.usePromise) { - this.deferredClient.reject(message); - return this.deferredClient.promise; - } else { - if (this.failure) { - this.failure(message); - } - else { - this.failure(message); - } - } -}; - -},{"./auth":2,"./helpers":4,"./http":5,"./resolver":6,"./spec-converter":8,"./types/model":9,"./types/operation":10,"./types/operationGroup":11,"lodash-compat/array/indexOf":49,"lodash-compat/collection/find":53,"lodash-compat/collection/forEach":54,"lodash-compat/function/bind":58,"lodash-compat/lang/cloneDeep":138,"lodash-compat/lang/isArray":140,"lodash-compat/lang/isFunction":142,"lodash-compat/lang/isObject":144,"lodash-compat/lang/isPlainObject":145,"lodash-compat/lang/isUndefined":148,"q":157}],4:[function(require,module,exports){ -(function (process){ -'use strict'; - -var _ = { - isPlainObject: require('lodash-compat/lang/isPlainObject'), - indexOf: require('lodash-compat/array/indexOf') -}; - -module.exports.__bind = function (fn, me) { - return function(){ - return fn.apply(me, arguments); - }; -}; - -var log = module.exports.log = function() { - // Only log if available and we're not testing - if (console && process.env.NODE_ENV !== 'test') { - console.log(Array.prototype.slice.call(arguments)[0]); - } -}; - -module.exports.fail = function (message) { - log(message); -}; - -var optionHtml = module.exports.optionHtml = function (label, value) { - return '' + label + ':' + value + ''; -}; - -var resolveSchema = module.exports.resolveSchema = function (schema) { - if (_.isPlainObject(schema.schema)) { - schema = resolveSchema(schema.schema); - } - - return schema; -}; - -var simpleRef = module.exports.simpleRef = function (name) { - if (typeof name === 'undefined') { - return null; - } - - if (name.indexOf('#/definitions/') === 0) { - return name.substring('#/definitions/'.length); - } else { - return name; - } -}; - - -}).call(this,require('_process')) -//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBzdHJpY3QnO1xuXG52YXIgXyA9IHtcbiAgaXNQbGFpbk9iamVjdDogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9sYW5nL2lzUGxhaW5PYmplY3QnKSxcbiAgaW5kZXhPZjogcmVxdWlyZSgnbG9kYXNoLWNvbXBhdC9hcnJheS9pbmRleE9mJylcbn07XG5cbm1vZHVsZS5leHBvcnRzLl9fYmluZCA9IGZ1bmN0aW9uIChmbiwgbWUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKCl7XG4gICAgcmV0dXJuIGZuLmFwcGx5KG1lLCBhcmd1bWVudHMpO1xuICB9O1xufTtcblxudmFyIGxvZyA9IG1vZHVsZS5leHBvcnRzLmxvZyA9IGZ1bmN0aW9uKCkge1xuICAvLyBPbmx5IGxvZyBpZiBhdmFpbGFibGUgYW5kIHdlJ3JlIG5vdCB0ZXN0aW5nXG4gIGlmIChjb25zb2xlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAndGVzdCcpIHtcbiAgICBjb25zb2xlLmxvZyhBcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbChhcmd1bWVudHMpWzBdKTtcbiAgfVxufTtcblxubW9kdWxlLmV4cG9ydHMuZmFpbCA9IGZ1bmN0aW9uIChtZXNzYWdlKSB7XG4gIGxvZyhtZXNzYWdlKTtcbn07XG5cbnZhciBvcHRpb25IdG1sID0gbW9kdWxlLmV4cG9ydHMub3B0aW9uSHRtbCA9IGZ1bmN0aW9uIChsYWJlbCwgdmFsdWUpIHtcbiAgcmV0dXJuICc8dHI+PHRkIGNsYXNzPVwib3B0aW9uTmFtZVwiPicgKyBsYWJlbCArICc6PC90ZD48dGQ+JyArIHZhbHVlICsgJzwvdGQ+PC90cj4nO1xufTtcblxudmFyIHJlc29sdmVTY2hlbWEgPSBtb2R1bGUuZXhwb3J0cy5yZXNvbHZlU2NoZW1hID0gZnVuY3Rpb24gKHNjaGVtYSkge1xuICBpZiAoXy5pc1BsYWluT2JqZWN0KHNjaGVtYS5zY2hlbWEpKSB7XG4gICAgc2NoZW1hID0gcmVzb2x2ZVNjaGVtYShzY2hlbWEuc2NoZW1hKTtcbiAgfVxuXG4gIHJldHVybiBzY2hlbWE7XG59O1xuXG52YXIgc2ltcGxlUmVmID0gbW9kdWxlLmV4cG9ydHMuc2ltcGxlUmVmID0gZnVuY3Rpb24gKG5hbWUpIHtcbiAgaWYgKHR5cGVvZiBuYW1lID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKG5hbWUuaW5kZXhPZignIy9kZWZpbml0aW9ucy8nKSA9PT0gMCkge1xuICAgIHJldHVybiBuYW1lLnN1YnN0cmluZygnIy9kZWZpbml0aW9ucy8nLmxlbmd0aCk7XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG5hbWU7XG4gIH1cbn07XG5cbiJdfQ== -},{"_process":12,"lodash-compat/array/indexOf":49,"lodash-compat/lang/isPlainObject":145}],5:[function(require,module,exports){ -'use strict'; - -var helpers = require('./helpers'); -var request = require('superagent'); -var jsyaml = require('js-yaml'); -var _ = { - isObject: require('lodash-compat/lang/isObject'), - keys: require('lodash-compat/object/keys') -}; - -/* - * JQueryHttpClient is a light-weight, node or browser HTTP client - */ -var JQueryHttpClient = function () { - this.type = 'JQueryHttpClient'; -}; - -/* - * SuperagentHttpClient is a light-weight, node or browser HTTP client - */ -var SuperagentHttpClient = function () { - this.type = 'SuperagentHttpClient'; -}; - -/** - * SwaggerHttp is a wrapper for executing requests - */ -var SwaggerHttp = module.exports = function () {}; - -SwaggerHttp.prototype.execute = function (obj, opts) { - var client; - - if(opts && opts.client) { - client = opts.client; - } - else { - client = new SuperagentHttpClient(opts); - } - client.opts = opts || {}; - - // legacy support - var hasJQuery = false; - if(typeof window !== 'undefined') { - if(typeof window.jQuery !== 'undefined') { - hasJQuery = true; - } - } - // OPTIONS support - if(obj.method.toLowerCase() === 'options' && client.type === 'SuperagentHttpClient') { - log('forcing jQuery as OPTIONS are not supported by SuperAgent'); - obj.useJQuery = true; - } - if(this.isInternetExplorer() && (obj.useJQuery === false || !hasJQuery )) { - throw new Error('Unsupported configuration! JQuery is required but not available'); - } - if ((obj && obj.useJQuery === true) || this.isInternetExplorer() && hasJQuery) { - client = new JQueryHttpClient(opts); - } - - var success = obj.on.response; - var error = obj.on.error; - - var requestInterceptor = function(data) { - if(opts && opts.requestInterceptor) { - data = opts.requestInterceptor.apply(data); - } - return data; - }; - - var responseInterceptor = function(data) { - if(opts && opts.responseInterceptor) { - data = opts.responseInterceptor.apply(data); - } - return success(data); - }; - - var errorInterceptor = function(data) { - if(opts && opts.responseInterceptor) { - data = opts.responseInterceptor.apply(data); - } - error(data); - }; - - obj.on.error = function(data) { - errorInterceptor(data); - }; - - obj.on.response = function(data) { - responseInterceptor(data); - }; - - if (_.isObject(obj) && _.isObject(obj.body)) { - // special processing for file uploads via jquery - if (obj.body.type && obj.body.type === 'formData'){ - if(opts.useJQuery) { - obj.contentType = false; - obj.processData = false; - delete obj.headers['Content-Type']; - } - } - } - - obj = requestInterceptor(obj) || obj; - if (obj.beforeSend) { - obj.beforeSend(function(_obj) { - client.execute(_obj || obj); - }); - } else { - client.execute(obj); - } - - return (obj.deferred) ? obj.deferred.promise : obj; -}; - -SwaggerHttp.prototype.isInternetExplorer = function () { - var detectedIE = false; - - if (typeof navigator !== 'undefined' && navigator.userAgent) { - var nav = navigator.userAgent.toLowerCase(); - - if (nav.indexOf('msie') !== -1) { - var version = parseInt(nav.split('msie')[1]); - - if (version <= 8) { - detectedIE = true; - } - } - } - - return detectedIE; -}; - -JQueryHttpClient.prototype.execute = function (obj) { - var jq = this.jQuery || (typeof window !== 'undefined' && window.jQuery); - var cb = obj.on; - var request = obj; - - if(typeof jq === 'undefined' || jq === false) { - throw new Error('Unsupported configuration! JQuery is required but not available'); - } - - obj.type = obj.method; - obj.cache = obj.jqueryAjaxCache; - obj.data = obj.body; - delete obj.jqueryAjaxCache; - delete obj.useJQuery; - delete obj.body; - - obj.complete = function (response) { - var headers = {}; - var headerArray = response.getAllResponseHeaders().split('\n'); - - for (var i = 0; i < headerArray.length; i++) { - var toSplit = headerArray[i].trim(); - - if (toSplit.length === 0) { - continue; - } - - var separator = toSplit.indexOf(':'); - - if (separator === -1) { - // Name but no value in the header - headers[toSplit] = null; - - continue; - } - - var name = toSplit.substring(0, separator).trim(); - var value = toSplit.substring(separator + 1).trim(); - - headers[name] = value; - } - - var out = { - url: request.url, - method: request.method, - status: response.status, - statusText: response.statusText, - data: response.responseText, - headers: headers - }; - - try { - var possibleObj = response.responseJSON || jsyaml.safeLoad(response.responseText); - out.obj = (typeof possibleObj === 'string') ? {} : possibleObj; - } catch (ex) { - // do not set out.obj - helpers.log('unable to parse JSON/YAML content'); - } - - // I can throw, or parse null? - out.obj = out.obj || null; - - if (response.status >= 200 && response.status < 300) { - cb.response(out); - } else if (response.status === 0 || (response.status >= 400 && response.status < 599)) { - cb.error(out); - } else { - return cb.response(out); - } - }; - - jq.support.cors = true; - - return jq.ajax(obj); -}; - -SuperagentHttpClient.prototype.execute = function (obj) { - var method = obj.method.toLowerCase(); - - if (method === 'delete') { - method = 'del'; - } - var headers = obj.headers || {}; - var r = request[method](obj.url); - - if (obj.enableCookies) { - r.withCredentials(); - } - - if(obj.body) { - if(_.isObject(obj.body)) { - var contentType = obj.headers['Content-Type'] || ''; - if (contentType.indexOf('multipart/form-data') === 0) { - delete headers['Content-Type']; - if({}.toString.apply(obj.body) === '[object FormData]') { - var itr = obj.body.keys(); - while(true) { - var v = itr.next(); - if(v.done) { - break; - } - var key = v.value; - var value = obj.body.get(key); - console.log({}.toString.apply(value)); - if({}.toString.apply(value) === '[object File]') { - r.attach(key, value); - } - else { - r.field(key, value); - } - } - } - else { - var keyname; - for (var keyname in obj.body) { - var value = obj.body[keyname]; - r.field(keyname, value); - } - } - } - else if (_.isObject(obj.body)) { - obj.body = JSON.stringify(obj.body); - r.send(obj.body); - } - } - else { - r.send(obj.body); - } - } - - var name; - for (name in headers) { - r.set(name, headers[name]); - } - - if(typeof r.buffer === 'function') { - r.buffer(); // force superagent to populate res.text with the raw response data - } - - r.end(function (err, res) { - res = res || { - status: 0, - headers: {error: 'no response from server'} - }; - var response = { - url: obj.url, - method: obj.method, - headers: res.headers - }; - var cb; - - if (!err && res.error) { - err = res.error; - } - - if (err && obj.on && obj.on.error) { - response.errObj = err; - response.status = res ? res.status : 500; - response.statusText = res ? res.text : err.message; - if(res.headers && res.headers['content-type']) { - if(res.headers['content-type'].indexOf('application/json') >= 0) { - try { - response.obj = JSON.parse(response.statusText); - } - catch (e) { - response.obj = null; - } - } - } - cb = obj.on.error; - } else if (res && obj.on && obj.on.response) { - var possibleObj; - - // Already parsed by by superagent? - if(res.body && _.keys(res.body).length > 0) { - possibleObj = res.body; - } else { - try { - possibleObj = jsyaml.safeLoad(res.text); - // can parse into a string... which we don't need running around in the system - possibleObj = (typeof possibleObj === 'string') ? null : possibleObj; - } catch(e) { - helpers.log('cannot parse JSON/YAML content'); - } - } - - // null means we can't parse into object - response.obj = (typeof possibleObj === 'object') ? possibleObj : null; - - response.status = res.status; - response.statusText = res.text; - cb = obj.on.response; - } - response.data = response.statusText; - - if (cb) { - cb(response); - } - }); -}; - -},{"./helpers":4,"js-yaml":19,"lodash-compat/lang/isObject":144,"lodash-compat/object/keys":149,"superagent":158}],6:[function(require,module,exports){ -'use strict'; - -var SwaggerHttp = require('./http'); -var _ = { - isObject: require('lodash-compat/lang/isObject'), - cloneDeep: require('lodash-compat/lang/cloneDeep'), - isArray: require('lodash-compat/lang/isArray'), - isString: require('lodash-compat/lang/isString') -}; - - -/** - * Resolves a spec's remote references - */ -var Resolver = module.exports = function () { - this.failedUrls = []; - this.resolverCache = {}; - this.pendingUrls = {}; -}; - -Resolver.prototype.processAllOf = function(root, name, definition, resolutionTable, unresolvedRefs, spec) { - var i, location, property; - - definition['x-resolved-from'] = [ '#/definitions/' + name ]; - var allOf = definition.allOf; - // the refs go first - allOf.sort(function(a, b) { - if(a.$ref && b.$ref) { return 0; } - else if(a.$ref) { return -1; } - else { return 1; } - }); - for (i = 0; i < allOf.length; i++) { - property = allOf[i]; - location = '/definitions/' + name + '/allOf'; - this.resolveInline(root, spec, property, resolutionTable, unresolvedRefs, location); - } -}; - -Resolver.prototype.resolve = function (spec, arg1, arg2, arg3) { - this.spec = spec; - var root = arg1, callback = arg2, scope = arg3, opts = {}, location, i; - if(typeof arg1 === 'function') { - root = null; - callback = arg1; - scope = arg2; - } - var _root = root; - this.scope = (scope || this); - this.iteration = this.iteration || 0; - - if(this.scope.options && this.scope.options.requestInterceptor){ - opts.requestInterceptor = this.scope.options.requestInterceptor; - } - - if(this.scope.options && this.scope.options.responseInterceptor){ - opts.responseInterceptor = this.scope.options.responseInterceptor; - } - - var name, path, property, propertyName; - var processedCalls = 0, resolvedRefs = {}, unresolvedRefs = {}; - var resolutionTable = []; // store objects for dereferencing - - spec.definitions = spec.definitions || {}; - // definitions - for (name in spec.definitions) { - var definition = spec.definitions[name]; - if(definition['$ref']) { - this.resolveInline(root, spec, definition, resolutionTable, unresolvedRefs, definition); - } - else { - for (propertyName in definition.properties) { - property = definition.properties[propertyName]; - if (_.isArray(property.allOf)) { - this.processAllOf(root, name, property, resolutionTable, unresolvedRefs, spec); - } - else { - this.resolveTo(root, property, resolutionTable, '/definitions'); - } - } - - if (definition.allOf) { - this.processAllOf(root, name, definition, resolutionTable, unresolvedRefs, spec); - } - } - } - - // shared parameters - spec.parameters = spec.parameters || {}; - for(name in spec.parameters) { - var parameter = spec.parameters[name]; - if (parameter.in === 'body' && parameter.schema) { - if(_.isArray(parameter.schema.allOf)) { - // move to a definition - var modelName = 'inline_model'; - var name = modelName; - var done = false; var counter = 0; - while(!done) { - if(typeof spec.definitions[name] === 'undefined') { - done = true; - break; - } - name = modelName + '_' + counter; - counter ++; - } - spec.definitions[name] = { allOf: parameter.schema.allOf }; - delete parameter.schema.allOf; - parameter.schema.$ref = '#/definitions/' + name; - this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec); - } - else { - this.resolveTo(root, parameter.schema, resolutionTable, location); - } - } - - if (parameter.$ref) { - // parameter reference - this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref); - } - } - - // operations - for (name in spec.paths) { - var method, operation, responseCode; - path = spec.paths[name]; - - for (method in path) { - // operation reference - if(method === '$ref') { - // location = path[method]; - location = '/paths' + name; - this.resolveInline(root, spec, path, resolutionTable, unresolvedRefs, location); - } - else { - operation = path[method]; - var sharedParameters = path.parameters || []; - var parameters = operation.parameters || []; - - for (i in sharedParameters) { - var parameter = sharedParameters[i]; - parameters.unshift(parameter); - } - if(method !== 'parameters' && _.isObject(operation)) { - operation.parameters = operation.parameters || parameters; - } - - for (i in parameters) { - var parameter = parameters[i]; - location = '/paths' + name + '/' + method + '/parameters'; - - if (parameter.in === 'body' && parameter.schema) { - if(_.isArray(parameter.schema.allOf)) { - // move to a definition - var modelName = 'inline_model'; - var name = modelName; - var done = false; var counter = 0; - while(!done) { - if(typeof spec.definitions[name] === 'undefined') { - done = true; - break; - } - name = modelName + '_' + counter; - counter ++; - } - spec.definitions[name] = { allOf: parameter.schema.allOf }; - delete parameter.schema.allOf; - parameter.schema.$ref = '#/definitions/' + name; - this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec); - } - else { - this.resolveTo(root, parameter.schema, resolutionTable, location); - } - } - - if (parameter.$ref) { - // parameter reference - this.resolveInline(root, spec, parameter, resolutionTable, unresolvedRefs, parameter.$ref); - } - } - - for (responseCode in operation.responses) { - var response = operation.responses[responseCode]; - location = '/paths' + name + '/' + method + '/responses/' + responseCode; - - if(_.isObject(response)) { - if(response.$ref) { - // response reference - this.resolveInline(root, spec, response, resolutionTable, unresolvedRefs, location); - } - if (response.schema) { - var responseObj = response; - if(_.isArray(responseObj.schema.allOf)) { - // move to a definition - var modelName = 'inline_model'; - var name = modelName; - var done = false; var counter = 0; - while(!done) { - if(typeof spec.definitions[name] === 'undefined') { - done = true; - break; - } - name = modelName + '_' + counter; - counter ++; - } - spec.definitions[name] = { allOf: responseObj.schema.allOf }; - delete responseObj.schema.allOf; - delete responseObj.schema.type; - responseObj.schema.$ref = '#/definitions/' + name; - this.processAllOf(root, name, spec.definitions[name], resolutionTable, unresolvedRefs, spec); - } - else if('array' === responseObj.schema.type) { - if(responseObj.schema.items && responseObj.schema.items.$ref) { - // response reference - this.resolveInline(root, spec, responseObj.schema.items, resolutionTable, unresolvedRefs, location); - } - } - else { - this.resolveTo(root, response.schema, resolutionTable, location); - } - } - } - } - } - } - // clear them out to avoid multiple resolutions - path.parameters = []; - } - - var expectedCalls = 0, toResolve = []; - // if the root is same as obj[i].root we can resolve locally - var all = resolutionTable; - - var parts; - for(i = 0; i < all.length; i++) { - var a = all[i]; - if(root === a.root) { - if(a.resolveAs === 'ref') { - // resolve any path walking - var joined = ((a.root || '') + '/' + a.key).split('/'); - var normalized = []; - var url = ''; - var k; - - if(a.key.indexOf('../') >= 0) { - for(var j = 0; j < joined.length; j++) { - if(joined[j] === '..') { - normalized = normalized.slice(0, normalized.length-1); - } - else { - normalized.push(joined[j]); - } - } - for(k = 0; k < normalized.length; k ++) { - if(k > 0) { - url += '/'; - } - url += normalized[k]; - } - // we now have to remote resolve this because the path has changed - a.root = url; - toResolve.push(a); - } - else { - parts = a.key.split('#'); - if(parts.length === 2) { - if(parts[0].indexOf('http:') === 0 || parts[0].indexOf('https:') === 0) { - a.root = parts[0]; - } - location = parts[1].split('/'); - var r; - var s = spec; - for(k = 0; k < location.length; k++) { - var part = location[k]; - if(part !== '') { - s = s[part]; - if(typeof s !== 'undefined') { - r = s; - } - else { - r = null; - break; - } - } - } - if(r === null) { - // must resolve this too - toResolve.push(a); - } - } - } - } - else { - if (a.resolveAs === 'inline') { - if(a.key && a.key.indexOf('#') === -1 && a.key.charAt(0) !== '/') { - // handle relative schema - parts = a.root.split('/'); - location = ''; - for(i = 0; i < parts.length - 1; i++) { - location += parts[i] + '/'; - } - location += a.key; - a.root = location; - a.location = ''; - } - toResolve.push(a); - } - } - } - else { - toResolve.push(a); - } - } - expectedCalls = toResolve.length; - - // resolve anything that is local - - var lock = {}; - for(var ii = 0; ii < toResolve.length; ii++) { - (function(item, spec, self, lock, ii) { - if(!item.root || item.root === root) { - // local resolve - self.resolveItem(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, item); - processedCalls += 1; - - if(processedCalls === expectedCalls) { - self.finish(spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback, true); - } - } - else if(self.failedUrls.indexOf(item.root) === -1) { - var obj = { - useJQuery: false, // TODO - url: item.root, - method: 'get', - headers: { - accept: self.scope.swaggerRequestHeaders || 'application/json' - }, - on: { - error: function (error) { - processedCalls += 1; - console.log('failed url: ' + obj.url); - self.failedUrls.push(obj.url); - if (lock) { - delete lock[item.root]; - } - unresolvedRefs[item.key] = { - root: item.root, - location: item.location - }; - - if (processedCalls === expectedCalls) { - self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); - } - }, // jshint ignore:line - response: function (response) { - var swagger = response.obj; - if (lock) { - delete lock[item.root]; - } - if (self.resolverCache) { - self.resolverCache[item.root] = swagger; - } - self.resolveItem(swagger, item.root, resolutionTable, resolvedRefs, unresolvedRefs, item); - processedCalls += 1; - - if (processedCalls === expectedCalls) { - self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); - } - } - } // jshint ignore:line - }; - - if (scope && scope.clientAuthorizations) { - scope.clientAuthorizations.apply(obj); - } - - (function waitForUnlock() { - setTimeout(function() { - if (lock[obj.url]) { - waitForUnlock(); - } - else { - var cached = self.resolverCache[obj.url]; - if (_.isObject(cached)) { - obj.on.response({obj: cached}), 1; - } - else { - lock[obj.url] = true; - new SwaggerHttp().execute(obj, opts); - } - } - }, 0); - })(); - } - - else { - processedCalls += 1; - unresolvedRefs[item.key] = { - root: item.root, - location: item.location - }; - if (processedCalls === expectedCalls) { - self.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); - } - } - }(toResolve[ii], spec, this, lock, ii)); - } - - if (Object.keys(toResolve).length === 0) { - this.finish(spec, _root, resolutionTable, resolvedRefs, unresolvedRefs, callback); - } -}; - -Resolver.prototype.resolveItem = function(spec, root, resolutionTable, resolvedRefs, unresolvedRefs, item) { - var path = item.location; - var location = spec, parts = path.split('/'); - if(path !== '') { - for (var j = 0; j < parts.length; j++) { - var segment = parts[j]; - if (segment.indexOf('~1') !== -1) { - segment = parts[j].replace(/~0/g, '~').replace(/~1/g, '/'); - if (segment.charAt(0) !== '/') { - segment = '/' + segment; - } - } - if (typeof location === 'undefined' || location === null) { - break; - } - if (segment === '' && j === (parts.length - 1) && parts.length > 1) { - location = null; - break; - } - if (segment.length > 0) { - location = location[segment]; - } - } - } - var resolved = item.key; - parts = item.key.split('/'); - var resolvedName = parts[parts.length-1]; - - if(resolvedName.indexOf('#') >= 0) { - resolvedName = resolvedName.split('#')[1]; - } - - if (location !== null && typeof location !== 'undefined') { - resolvedRefs[resolved] = { - name: resolvedName, - obj: location, - key: item.key, - root: item.root - }; - } else { - unresolvedRefs[resolved] = { - root: item.root, - location: item.location - }; - } -}; - -Resolver.prototype.finish = function (spec, root, resolutionTable, resolvedRefs, unresolvedRefs, callback, localResolve) { - // walk resolution table and replace with resolved refs - var ref; - for (ref in resolutionTable) { - var item = resolutionTable[ref]; - - var key = item.key; - var resolvedTo = resolvedRefs[key]; - if (resolvedTo) { - spec.definitions = spec.definitions || {}; - if (item.resolveAs === 'ref') { - if (localResolve !== true) { - // don't retain root for local definitions - for (key in resolvedTo.obj) { - var abs = this.retainRoot(key, resolvedTo.obj[key], item.root); - resolvedTo.obj[key] = abs; - } - } - spec.definitions[resolvedTo.name] = resolvedTo.obj; - item.obj.$ref = '#/definitions/' + resolvedTo.name; - } else if (item.resolveAs === 'inline') { - var targetObj = item.obj; - targetObj['x-resolved-from'] = [ item.key ]; - delete targetObj.$ref; - - for (key in resolvedTo.obj) { - var abs = resolvedTo.obj[key]; - - if (localResolve !== true) { - // don't retain root for local definitions - abs = this.retainRoot(key, resolvedTo.obj[key], item.root); - } - targetObj[key] = abs; - } - } - } - } - var existingUnresolved = this.countUnresolvedRefs(spec); - - if(existingUnresolved === 0 || this.iteration > 5) { - this.resolveAllOf(spec.definitions); - this.resolverCache = null; - callback.call(this.scope, spec, unresolvedRefs); - } - else { - this.iteration += 1; - this.resolve(spec, root, callback, this.scope); - } -}; - -Resolver.prototype.countUnresolvedRefs = function(spec) { - var i; - var refs = this.getRefs(spec); - var keys = []; - var unresolvedKeys = []; - for(i in refs) { - if(i.indexOf('#') === 0) { - keys.push(i.substring(1)); - } - else { - unresolvedKeys.push(i); - } - } - - // verify possible keys - for (i = 0; i < keys.length; i++) { - var part = keys[i]; - var parts = part.split('/'); - var obj = spec; - - for (var k = 0; k < parts.length; k++) { - var key = parts[k]; - if(key !== '') { - obj = obj[key]; - if(typeof obj === 'undefined') { - unresolvedKeys.push(part); - break; - } - } - } - } - return unresolvedKeys.length; -}; - -Resolver.prototype.getRefs = function(spec, obj) { - obj = obj || spec; - var output = {}; - for(var key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - var item = obj[key]; - if(key === '$ref' && typeof item === 'string') { - output[item] = null; - } - else if(_.isObject(item)) { - var o = this.getRefs(item); - for(var k in o) { - output[k] = null; - } - } - } - return output; -}; - -Resolver.prototype.retainRoot = function(origKey, obj, root) { - // walk object and look for relative $refs - if(_.isObject(obj)) { - for(var key in obj) { - var item = obj[key]; - if (key === '$ref' && typeof item === 'string') { - // stop and inspect - if (item.indexOf('http:') !== 0 && item.indexOf('https:') !== 0) { - // TODO: check if root ends in '/'. If not, AND item has no protocol, make relative - var appendHash = true; - var oldRoot = root; - if (root) { - var lastChar = root.slice(-1); - if (lastChar !== '/' && (item.indexOf('#') !== 0 && item.indexOf('http:') !== 0 && item.indexOf('https:'))) { - appendHash = false; - var parts = root.split('\/'); - parts = parts.splice(0, parts.length - 1); - root = ''; - for (var i = 0; i < parts.length; i++) { - root += parts[i] + '/'; - } - } - } - if (item.indexOf('#') !== 0 && appendHash) { - item = '#' + item; - } - - item = (root || '') + item; - obj[key] = item; - } - } - else if (_.isObject(item)) { - this.retainRoot(key, item, root); - } - } - } - else if(_.isString(obj) && origKey === '$ref') { - // look at the ref? - if(obj.indexOf('http:') === -1 && obj.indexOf('https:') === -1) { - obj = root + obj; - } - } - return obj; -}; - -/** - * immediately in-lines local refs, queues remote refs - * for inline resolution - */ -Resolver.prototype.resolveInline = function (root, spec, property, resolutionTable, unresolvedRefs, location) { - var key = property.$ref, ref = property.$ref, i, p, p2, rs; - var rootTrimmed = false; - - root = root || '' // Guard against .split. @fehguy, you'll need to check if this logic fits - // More imporantly is how do we gracefully handle relative urls, when provided just a 'spec', not a 'url' ? - - if (ref) { - if(ref.indexOf('../') === 0) { - // reset root - p = ref.split('../'); - p2 = root.split('/'); - ref = ''; - for(i = 0; i < p.length; i++) { - if(p[i] === '') { - p2 = p2.slice(0, p2.length-1); - } - else { - ref += p[i]; - } - } - root = ''; - for(i = 0; i < p2.length - 1; i++) { - if(i > 0) { root += '/'; } - root += p2[i]; - } - rootTrimmed = true; - } - if(ref.indexOf('#') >= 0) { - if(ref.indexOf('/') === 0) { - rs = ref.split('#'); - p = root.split('//'); - p2 = p[1].split('/'); - root = p[0] + '//' + p2[0] + rs[0]; - location = rs[1]; - } - else { - rs = ref.split('#'); - if(rs[0] !== '') { - p2 = root.split('/'); - p2 = p2.slice(0, p2.length - 1); - if(!rootTrimmed) { - root = ''; - for (var k = 0; k < p2.length; k++) { - if(k > 0) { root += '/'; } - root += p2[k]; - } - } - root += '/' + ref.split('#')[0]; - } - location = rs[1]; - } - } - if (ref.indexOf('http:') === 0 || ref.indexOf('https:') === 0) { - if(ref.indexOf('#') >= 0) { - root = ref.split('#')[0]; - location = ref.split('#')[1]; - } - else { - root = ref; - location = ''; - } - resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); - } else if (ref.indexOf('#') === 0) { - location = ref.split('#')[1]; - resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); - } else if (ref.indexOf('/') === 0 && ref.indexOf('#') === -1) { - location = ref; - var matches = root.match(/^https?\:\/\/([^\/?#]+)(?:[\/?#]|$)/i); - if(matches) { - root = matches[0] + ref.substring(1); - location = ''; - } - resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); - } - else { - resolutionTable.push({obj: property, resolveAs: 'inline', root: root, key: key, location: location}); - } - } - else if (property.type === 'array') { - this.resolveTo(root, property.items, resolutionTable, location); - } -}; - -Resolver.prototype.resolveTo = function (root, property, resolutionTable, location) { - var sp, i; - var ref = property.$ref; - var lroot = root; - if ((typeof ref !== 'undefined') && (ref !== null)) { - if(ref.indexOf('#') >= 0) { - var parts = ref.split('#'); - - // #/definitions/foo - // foo.json#/bar - if(parts[0] && ref.indexOf('/') === 0) { - - } - else if(parts[0] && (parts[0].indexOf('http:') === 0 || parts[0].indexOf('https:') === 0)) { - lroot = parts[0]; - ref = parts[1]; - } - else if(parts[0] && parts[0].length > 0) { - // relative file - sp = root.split('/'); - lroot = ''; - for(i = 0; i < sp.length - 1; i++) { - lroot += sp[i] + '/'; - } - lroot += parts[0]; - } - else { - - } - - location = parts[1]; - } - else if (ref.indexOf('http:') === 0 || ref.indexOf('https:') === 0) { - lroot = ref; - location = ''; - } - else { - // relative file - sp = root.split('/'); - lroot = ''; - for(i = 0; i < sp.length - 1; i++) { - lroot += sp[i] + '/'; - } - lroot += ref; - location = ''; - } - resolutionTable.push({ - obj: property, resolveAs: 'ref', root: lroot, key: ref, location: location - }); - } else if (property.type === 'array') { - var items = property.items; - this.resolveTo(root, items, resolutionTable, location); - } else { - if(property && (property.properties || property.additionalProperties)) { - var name = this.uniqueName('inline_model'); - if (property.title) { - name = this.uniqueName(property.title); - } - delete property.title; - this.spec.definitions[name] = _.cloneDeep(property); - property['$ref'] = '#/definitions/' + name; - delete property.type; - delete property.properties; - } - } -}; - -Resolver.prototype.uniqueName = function(base) { - var name = base; - var count = 0; - while(true) { - if(!_.isObject(this.spec.definitions[name])) { - return name; - } - name = base + '_' + count; - count++; - } -}; - -Resolver.prototype.resolveAllOf = function(spec, obj, depth) { - depth = depth || 0; - obj = obj || spec; - var name; - for(var key in obj) { - if (!obj.hasOwnProperty(key)) { - continue; - } - var item = obj[key]; - if(item === null) { - throw new TypeError('Swagger 2.0 does not support null types (' + obj + '). See https://github.com/swagger-api/swagger-spec/issues/229.'); - } - if(typeof item === 'object') { - this.resolveAllOf(spec, item, depth + 1); - } - if(item && typeof item.allOf !== 'undefined') { - var allOf = item.allOf; - if(_.isArray(allOf)) { - var output = _.cloneDeep(item); - delete output.allOf; - - output['x-composed'] = true; - if (typeof item['x-resolved-from'] !== 'undefined') { - output['x-resolved-from'] = item['x-resolved-from']; - } - - for(var i = 0; i < allOf.length; i++) { - var component = allOf[i]; - var source = 'self'; - if(typeof component['x-resolved-from'] !== 'undefined') { - source = component['x-resolved-from'][0]; - } - - for(var part in component) { - if(!output.hasOwnProperty(part)) { - output[part] = _.cloneDeep(component[part]); - if(part === 'properties') { - for(name in output[part]) { - output[part][name]['x-resolved-from'] = source; - } - } - } - else { - if(part === 'properties') { - var properties = component[part]; - for(name in properties) { - output.properties[name] = _.cloneDeep(properties[name]); - var resolvedFrom = properties[name]['x-resolved-from']; - if (typeof resolvedFrom === 'undefined' || resolvedFrom === 'self') { - resolvedFrom = source; - } - output.properties[name]['x-resolved-from'] = resolvedFrom; - } - } - else if(part === 'required') { - // merge & dedup the required array - var a = output.required.concat(component[part]); - for(var k = 0; k < a.length; ++k) { - for(var j = k + 1; j < a.length; ++j) { - if(a[k] === a[j]) { a.splice(j--, 1); } - } - } - output.required = a; - } - else if(part === 'x-resolved-from') { - output['x-resolved-from'].push(source); - } - else { - // TODO: need to merge this property - // console.log('what to do with ' + part) - } - } - } - } - obj[key] = output; - } - } - } -}; - -},{"./http":5,"lodash-compat/lang/cloneDeep":138,"lodash-compat/lang/isArray":140,"lodash-compat/lang/isObject":144,"lodash-compat/lang/isString":146}],7:[function(require,module,exports){ -'use strict'; - -var Helpers = require('./helpers'); - -var _ = { - isPlainObject: require('lodash-compat/lang/isPlainObject'), - isUndefined: require('lodash-compat/lang/isUndefined'), - isArray: require('lodash-compat/lang/isArray'), - isObject: require('lodash-compat/lang/isObject'), - isEmpty: require('lodash-compat/lang/isEmpty'), - map: require('lodash-compat/collection/map'), - indexOf: require('lodash-compat/array/indexOf'), - cloneDeep: require('lodash-compat/lang/cloneDeep'), - keys: require('lodash-compat/object/keys'), - forEach: require('lodash-compat/collection/forEach') -}; - -module.exports.optionHtml = optionHtml; -module.exports.typeFromJsonSchema = typeFromJsonSchema; -module.exports.getStringSignature = getStringSignature; -module.exports.schemaToHTML = schemaToHTML; -module.exports.schemaToJSON = schemaToJSON; - -function optionHtml(label, value) { - return '' + label + ':' + value + ''; -} - -function typeFromJsonSchema(type, format) { - var str; - - if (type === 'integer' && format === 'int32') { - str = 'integer'; - } else if (type === 'integer' && format === 'int64') { - str = 'long'; - } else if (type === 'integer' && typeof format === 'undefined') { - str = 'long'; - } else if (type === 'string' && format === 'date-time') { - str = 'date-time'; - } else if (type === 'string' && format === 'date') { - str = 'date'; - } else if (type === 'number' && format === 'float') { - str = 'float'; - } else if (type === 'number' && format === 'double') { - str = 'double'; - } else if (type === 'number' && typeof format === 'undefined') { - str = 'double'; - } else if (type === 'boolean') { - str = 'boolean'; - } else if (type === 'string') { - str = 'string'; - } - - return str; -} - -function getStringSignature(obj, baseComponent) { - var str = ''; - - if (typeof obj.$ref !== 'undefined') { - str += Helpers.simpleRef(obj.$ref); - } else if (typeof obj.type === 'undefined') { - str += 'object'; - } else if (obj.type === 'array') { - if (baseComponent) { - str += getStringSignature((obj.items || obj.$ref || {})); - } else { - str += 'Array['; - str += getStringSignature((obj.items || obj.$ref || {})); - str += ']'; - } - } else if (obj.type === 'integer' && obj.format === 'int32') { - str += 'integer'; - } else if (obj.type === 'integer' && obj.format === 'int64') { - str += 'long'; - } else if (obj.type === 'integer' && typeof obj.format === 'undefined') { - str += 'long'; - } else if (obj.type === 'string' && obj.format === 'date-time') { - str += 'date-time'; - } else if (obj.type === 'string' && obj.format === 'date') { - str += 'date'; - } else if (obj.type === 'string' && typeof obj.format === 'undefined') { - str += 'string'; - } else if (obj.type === 'number' && obj.format === 'float') { - str += 'float'; - } else if (obj.type === 'number' && obj.format === 'double') { - str += 'double'; - } else if (obj.type === 'number' && typeof obj.format === 'undefined') { - str += 'double'; - } else if (obj.type === 'boolean') { - str += 'boolean'; - } else if (obj.$ref) { - str += Helpers.simpleRef(obj.$ref); - } else { - str += obj.type; - } - - return str; -} - -function schemaToJSON(schema, models, modelsToIgnore, modelPropertyMacro) { - // Resolve the schema (Handle nested schemas) - schema = Helpers.resolveSchema(schema); - - if(typeof modelPropertyMacro !== 'function') { - modelPropertyMacro = function(prop){ - return (prop || {}).default; - }; - } - - modelsToIgnore= modelsToIgnore || {}; - - var type = schema.type || 'object'; - var format = schema.format; - var model; - var output; - - if (!_.isUndefined(schema.example)) { - output = schema.example; - } else if (_.isUndefined(schema.items) && _.isArray(schema.enum)) { - output = schema.enum[0]; - } - - if (_.isUndefined(output)) { - if (schema.$ref) { - model = models[Helpers.simpleRef(schema.$ref)]; - - if (!_.isUndefined(model)) { - if (_.isUndefined(modelsToIgnore[model.name])) { - modelsToIgnore[model.name] = model; - output = schemaToJSON(model.definition, models, modelsToIgnore, modelPropertyMacro); - delete modelsToIgnore[model.name]; - } else { - if (model.type === 'array') { - output = []; - } else { - output = {}; - } - } - } - } else if (!_.isUndefined(schema.default)) { - output = schema.default; - } else if (type === 'string') { - if (format === 'date-time') { - output = new Date().toISOString(); - } else if (format === 'date') { - output = new Date().toISOString().split('T')[0]; - } else { - output = 'string'; - } - } else if (type === 'integer') { - output = 0; - } else if (type === 'number') { - output = 0.0; - } else if (type === 'boolean') { - output = true; - } else if (type === 'object') { - output = {}; - - _.forEach(schema.properties, function (property, name) { - var cProperty = _.cloneDeep(property); - - // Allow macro to set the default value - cProperty.default = modelPropertyMacro(property); - - output[name] = schemaToJSON(cProperty, models, modelsToIgnore, modelPropertyMacro); - }); - } else if (type === 'array') { - output = []; - - if (_.isArray(schema.items)) { - _.forEach(schema.items, function (item) { - output.push(schemaToJSON(item, models, modelsToIgnore, modelPropertyMacro)); - }); - } else if (_.isPlainObject(schema.items)) { - output.push(schemaToJSON(schema.items, models, modelsToIgnore, modelPropertyMacro)); - } else if (_.isUndefined(schema.items)) { - output.push({}); - } else { - Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); - } - } - } - - return output; -} - -function schemaToHTML(name, schema, models, modelPropertyMacro) { - - var strongOpen = ''; - var strongClose = ''; - - // Allow for ignoring the 'name' argument.... shifting the rest - if(_.isObject(arguments[0])) { - name = void 0; - schema = arguments[0]; - models = arguments[1]; - modelPropertyMacro = arguments[2]; - } - - models = models || {}; - - // Resolve the schema (Handle nested schemas) - schema = Helpers.resolveSchema(schema); - - // Return for empty object - if(_.isEmpty(schema)) { - return strongOpen + 'Empty' + strongClose; - } - - // Dereference $ref from 'models' - if(typeof schema.$ref === 'string') { - name = Helpers.simpleRef(schema.$ref); - schema = models[name]; - if(typeof schema === 'undefined') - { - return strongOpen + name + ' is not defined!' + strongClose; - } - } - - if(typeof name !== 'string') { - name = schema.title || 'Inline Model'; - } - - // If we are a Model object... adjust accordingly - if(schema.definition) { - schema = schema.definition; - } - - if(typeof modelPropertyMacro !== 'function') { - modelPropertyMacro = function(prop){ - return (prop || {}).default; - }; - } - - var references = {}; - var seenModels = []; - var inlineModels = 0; - - - - // Generate current HTML - var html = processModel(schema, name); - - // Generate references HTML - while (_.keys(references).length > 0) { - /* jshint ignore:start */ - _.forEach(references, function (schema, name) { - var seenModel = _.indexOf(seenModels, name) > -1; - - delete references[name]; - - if (!seenModel) { - seenModels.push(name); - - html += '
      ' + processModel(schema, name); - } - }); - /* jshint ignore:end */ - } - - return html; - - ///////////////////////////////// - - function addReference(schema, name, skipRef) { - var modelName = name; - var model; - - if (schema.$ref) { - modelName = schema.title || Helpers.simpleRef(schema.$ref); - model = models[modelName]; - } else if (_.isUndefined(name)) { - modelName = schema.title || 'Inline Model ' + (++inlineModels); - model = {definition: schema}; - } - - if (skipRef !== true) { - references[modelName] = _.isUndefined(model) ? {} : model.definition; - } - - return modelName; - } - - function primitiveToHTML(schema) { - var html = ''; - var type = schema.type || 'object'; - - if (schema.$ref) { - html += addReference(schema, Helpers.simpleRef(schema.$ref)); - } else if (type === 'object') { - if (!_.isUndefined(schema.properties)) { - html += addReference(schema); - } else { - html += 'object'; - } - } else if (type === 'array') { - html += 'Array['; - - if (_.isArray(schema.items)) { - html += _.map(schema.items, addReference).join(','); - } else if (_.isPlainObject(schema.items)) { - if (_.isUndefined(schema.items.$ref)) { - if (!_.isUndefined(schema.items.type) && _.indexOf(['array', 'object'], schema.items.type) === -1) { - html += schema.items.type; - } else { - html += addReference(schema.items); - } - } else { - html += addReference(schema.items, Helpers.simpleRef(schema.items.$ref)); - } - } else { - Helpers.log('Array type\'s \'items\' schema is not an array or an object, cannot process'); - html += 'object'; - } - - html += ']'; - } else { - html += schema.type; - } - - html += ''; - - return html; - } - - function primitiveToOptionsHTML(schema, html) { - var options = ''; - var type = schema.type || 'object'; - var isArray = type === 'array'; - - if (isArray) { - if (_.isPlainObject(schema.items) && !_.isUndefined(schema.items.type)) { - type = schema.items.type; - } else { - type = 'object'; - } - } - - if (!_.isUndefined(schema.default)) { - options += optionHtml('Default', schema.default); - } - - switch (type) { - case 'string': - if (schema.minLength) { - options += optionHtml('Min. Length', schema.minLength); - } - - if (schema.maxLength) { - options += optionHtml('Max. Length', schema.maxLength); - } - - if (schema.pattern) { - options += optionHtml('Reg. Exp.', schema.pattern); - } - break; - case 'integer': - case 'number': - if (schema.minimum) { - options += optionHtml('Min. Value', schema.minimum); - } - - if (schema.exclusiveMinimum) { - options += optionHtml('Exclusive Min.', 'true'); - } - - if (schema.maximum) { - options += optionHtml('Max. Value', schema.maximum); - } - - if (schema.exclusiveMaximum) { - options += optionHtml('Exclusive Max.', 'true'); - } - - if (schema.multipleOf) { - options += optionHtml('Multiple Of', schema.multipleOf); - } - - break; - } - - if (isArray) { - if (schema.minItems) { - options += optionHtml('Min. Items', schema.minItems); - } - - if (schema.maxItems) { - options += optionHtml('Max. Items', schema.maxItems); - } - - if (schema.uniqueItems) { - options += optionHtml('Unique Items', 'true'); - } - - if (schema.collectionFormat) { - options += optionHtml('Coll. Format', schema.collectionFormat); - } - } - - if (_.isUndefined(schema.items)) { - if (_.isArray(schema.enum)) { - var enumString; - - if (type === 'number' || type === 'integer') { - enumString = schema.enum.join(', '); - } else { - enumString = '"' + schema.enum.join('", "') + '"'; - } - - options += optionHtml('Enum', enumString); - } - } - - if (options.length > 0) { - html = '' + html + '' + options + '
      ' + type + '
      '; - } - - return html; - } - - function processModel(schema, name) { - var type = schema.type || 'object'; - var isArray = schema.type === 'array'; - var html = strongOpen + name + ' ' + (isArray ? '[' : '{') + strongClose; - - if (name) { - seenModels.push(name); - } - - if (isArray) { - if (_.isArray(schema.items)) { - html += '
      ' + _.map(schema.items, function (item) { - var type = item.type || 'object'; - - if (_.isUndefined(item.$ref)) { - if (_.indexOf(['array', 'object'], type) > -1) { - if (type === 'object' && _.isUndefined(item.properties)) { - return 'object'; - } else { - return addReference(item); - } - } else { - return primitiveToOptionsHTML(item, type); - } - } else { - return addReference(item, Helpers.simpleRef(item.$ref)); - } - }).join(',
      '); - } else if (_.isPlainObject(schema.items)) { - if (_.isUndefined(schema.items.$ref)) { - if (_.indexOf(['array', 'object'], schema.items.type || 'object') > -1) { - if ((_.isUndefined(schema.items.type) || schema.items.type === 'object') && _.isUndefined(schema.items.properties)) { - html += '
      object
      '; - } else { - html += '
      ' + addReference(schema.items) + '
      '; - } - } else { - html += '
      ' + primitiveToOptionsHTML(schema.items, schema.items.type) + '
      '; - } - } else { - html += '
      ' + addReference(schema.items, Helpers.simpleRef(schema.items.$ref)) + '
      '; - } - } else { - Helpers.log('Array type\'s \'items\' property is not an array or an object, cannot process'); - html += '
      object
      '; - } - } else { - if (schema.$ref) { - html += '
      ' + addReference(schema, name) + '
      '; - } else if (type === 'object') { - if (_.isPlainObject(schema.properties)) { - var contents = _.map(schema.properties, function (property, name) { - var propertyIsRequired = (_.indexOf(schema.required, name) >= 0); - var cProperty = _.cloneDeep(property); - - var requiredClass = propertyIsRequired ? 'required' : ''; - var html = '' + name + ' ('; - var model; - var propDescription; - - // Allow macro to set the default value - cProperty.default = modelPropertyMacro(cProperty); - - // Resolve the schema (Handle nested schemas) - cProperty = Helpers.resolveSchema(cProperty); - - propDescription = property.description || cProperty.description; - - // We need to handle property references to primitives (Issue 339) - if (!_.isUndefined(cProperty.$ref)) { - model = models[Helpers.simpleRef(cProperty.$ref)]; - - if (!_.isUndefined(model) && _.indexOf([undefined, 'array', 'object'], model.definition.type) === -1) { - // Use referenced schema - cProperty = Helpers.resolveSchema(model.definition); - } - } - - html += primitiveToHTML(cProperty); - - if(!propertyIsRequired) { - html += ', optional'; - } - - if(property.readOnly) { - html += ', read only'; - } - - html += ')'; - - if (!_.isUndefined(propDescription)) { - html += ': ' + '' + propDescription + ''; - } - - if (cProperty.enum) { - html += ' = [\'' + cProperty.enum.join('\', \'') + '\']'; - } - - return '' + primitiveToOptionsHTML(cProperty, html); - }).join(',
      '); - - if (contents) { - html += contents + '
      '; - } - } - } else { - html += '
      ' + primitiveToOptionsHTML(schema, type) + '
      '; - } - } - - return html + strongOpen + (isArray ? ']' : '}') + strongClose; - } -} - -},{"./helpers":4,"lodash-compat/array/indexOf":49,"lodash-compat/collection/forEach":54,"lodash-compat/collection/map":56,"lodash-compat/lang/cloneDeep":138,"lodash-compat/lang/isArray":140,"lodash-compat/lang/isEmpty":141,"lodash-compat/lang/isObject":144,"lodash-compat/lang/isPlainObject":145,"lodash-compat/lang/isUndefined":148,"lodash-compat/object/keys":149}],8:[function(require,module,exports){ -'use strict'; - -var SwaggerHttp = require('./http'); -var _ = { - isObject: require('lodash-compat/lang/isObject') -}; - -var SwaggerSpecConverter = module.exports = function () { - this.errors = []; - this.warnings = []; - this.modelMap = {}; -}; - -SwaggerSpecConverter.prototype.setDocumentationLocation = function (location) { - this.docLocation = location; -}; - -/** - * converts a resource listing OR api declaration - **/ -SwaggerSpecConverter.prototype.convert = function (obj, clientAuthorizations, opts, callback) { - // not a valid spec - if(!obj || !Array.isArray(obj.apis)) { - return this.finish(callback, null); - } - this.clientAuthorizations = clientAuthorizations; - - // create a new swagger object to return - var swagger = { swagger: '2.0' }; - - swagger.originalVersion = obj.swaggerVersion; - - // add the info - this.apiInfo(obj, swagger); - - // add security definitions - this.securityDefinitions(obj, swagger); - - // take basePath into account - if (obj.basePath) { - this.setDocumentationLocation(obj.basePath); - } - - // see if this is a single-file swagger definition - var isSingleFileSwagger = false; - var i; - for(i = 0; i < obj.apis.length; i++) { - var api = obj.apis[i]; - if(Array.isArray(api.operations)) { - isSingleFileSwagger = true; - } - } - if(isSingleFileSwagger) { - this.declaration(obj, swagger); - this.finish(callback, swagger); - } - else { - this.resourceListing(obj, swagger, opts, callback); - } -}; - -SwaggerSpecConverter.prototype.declaration = function(obj, swagger) { - var name, i, p, pos; - if(!obj.apis) { - return; - } - - if (obj.basePath.indexOf('http://') === 0) { - p = obj.basePath.substring('http://'.length); - pos = p.indexOf('/'); - if (pos > 0) { - swagger.host = p.substring(0, pos); - swagger.basePath = p.substring(pos); - } - else { - swagger.host = p; - swagger.basePath = '/'; - } - } else if (obj.basePath.indexOf('https://') === 0) { - p = obj.basePath.substring('https://'.length); - pos = p.indexOf('/'); - if (pos > 0) { - swagger.host = p.substring(0, pos); - swagger.basePath = p.substring(pos); - } - else { - swagger.host = p; - swagger.basePath = '/'; - } - } else { - swagger.basePath = obj.basePath; - } - - var resourceLevelAuth; - if(obj.authorizations) { - resourceLevelAuth = obj.authorizations; - } - if(obj.consumes) { - swagger.consumes = obj.consumes; - } - if(obj.produces) { - swagger.produces = obj.produces; - } - - // build a mapping of id to name for 1.0 model resolutions - if(_.isObject(obj)) { - for(name in obj.models) { - var existingModel = obj.models[name]; - var key = (existingModel.id || name); - this.modelMap[key] = name; - } - } - - for(i = 0; i < obj.apis.length; i++) { - var api = obj.apis[i]; - var path = api.path; - var operations = api.operations; - this.operations(path, obj.resourcePath, operations, resourceLevelAuth, swagger); - } - - var models = obj.models || {}; - this.models(models, swagger); -}; - -SwaggerSpecConverter.prototype.models = function(obj, swagger) { - if(!_.isObject(obj)) { - return; - } - var name; - - swagger.definitions = swagger.definitions || {}; - for(name in obj) { - var existingModel = obj[name]; - var _required = []; - var schema = { properties: {}}; - var propertyName; - for(propertyName in existingModel.properties) { - var existingProperty = existingModel.properties[propertyName]; - var property = {}; - this.dataType(existingProperty, property); - if(existingProperty.description) { - property.description = existingProperty.description; - } - if(existingProperty['enum']) { - property['enum'] = existingProperty['enum']; - } - if(typeof existingProperty.required === 'boolean' && existingProperty.required === true) { - _required.push(propertyName); - } - if(typeof existingProperty.required === 'string' && existingProperty.required === 'true') { - _required.push(propertyName); - } - schema.properties[propertyName] = property; - } - if(_required.length > 0) { - schema.required = _required; - } else { - schema.required = existingModel.required; - } - swagger.definitions[name] = schema; - } -}; - -SwaggerSpecConverter.prototype.extractTag = function(resourcePath) { - var pathString = resourcePath || 'default'; - if(pathString.indexOf('http:') === 0 || pathString.indexOf('https:') === 0) { - pathString = pathString.split(['/']); - pathString = pathString[pathString.length -1].substring(); - } - if(pathString.endsWith('.json')) { - pathString = pathString.substring(0, pathString.length - '.json'.length); - } - return pathString.replace('/',''); -}; - -SwaggerSpecConverter.prototype.operations = function(path, resourcePath, obj, resourceLevelAuth, swagger) { - if(!Array.isArray(obj)) { - return; - } - var i; - - if(!swagger.paths) { - swagger.paths = {}; - } - - var pathObj = swagger.paths[path] || {}; - var tag = this.extractTag(resourcePath); - swagger.tags = swagger.tags || []; - var matched = false; - for(i = 0; i < swagger.tags.length; i++) { - var tagObject = swagger.tags[i]; - if(tagObject.name === tag) { - matched = true; - } - } - if(!matched) { - swagger.tags.push({name: tag}); - } - - for(i = 0; i < obj.length; i++) { - var existingOperation = obj[i]; - var method = (existingOperation.method || existingOperation.httpMethod).toLowerCase(); - var operation = {tags: [tag]}; - var existingAuthorizations = existingOperation.authorizations; - - if(existingAuthorizations && Object.keys(existingAuthorizations).length === 0) { - existingAuthorizations = resourceLevelAuth; - } - - if(typeof existingAuthorizations !== 'undefined') { - var scopesObject; - for(var key in existingAuthorizations) { - operation.security = operation.security || []; - var scopes = existingAuthorizations[key]; - if(scopes) { - var securityScopes = []; - for(var j in scopes) { - securityScopes.push(scopes[j].scope); - } - scopesObject = {}; - scopesObject[key] = securityScopes; - operation.security.push(scopesObject); - } - else { - scopesObject = {}; - scopesObject[key] = []; - operation.security.push(scopesObject); - } - } - } - - if(existingOperation.consumes) { - operation.consumes = existingOperation.consumes; - } - else if(swagger.consumes) { - operation.consumes = swagger.consumes; - } - if(existingOperation.produces) { - operation.produces = existingOperation.produces; - } - else if(swagger.produces) { - operation.produces = swagger.produces; - } - if(existingOperation.summary) { - operation.summary = existingOperation.summary; - } - if(existingOperation.notes) { - operation.description = existingOperation.notes; - } - if(existingOperation.nickname) { - operation.operationId = existingOperation.nickname; - } - if(existingOperation.deprecated) { - operation.deprecated = existingOperation.deprecated; - } - - this.authorizations(existingAuthorizations, swagger); - this.parameters(operation, existingOperation.parameters, swagger); - this.responseMessages(operation, existingOperation, swagger); - - pathObj[method] = operation; - } - - swagger.paths[path] = pathObj; -}; - -SwaggerSpecConverter.prototype.responseMessages = function(operation, existingOperation) { - if(!_.isObject(existingOperation)) { - return; - } - // build default response from the operation (1.x) - var defaultResponse = {}; - this.dataType(existingOperation, defaultResponse); - // TODO: look into the real problem of rendering responses in swagger-ui - // ....should reponseType have an implicit schema? - if(!defaultResponse.schema && defaultResponse.type) { - defaultResponse = {schema: defaultResponse}; - } - - operation.responses = operation.responses || {}; - - // grab from responseMessages (1.2) - var has200 = false; - if(Array.isArray(existingOperation.responseMessages)) { - var i; - var existingResponses = existingOperation.responseMessages; - for(i = 0; i < existingResponses.length; i++) { - var existingResponse = existingResponses[i]; - var response = { description: existingResponse.message }; - if(existingResponse.code === 200) { - has200 = true; - } - // Convert responseModel -> schema{$ref: responseModel} - if(existingResponse.responseModel) { - response.schema = {'$ref': '#/definitions/' + existingResponse.responseModel}; - } - operation.responses['' + existingResponse.code] = response; - } - } - - if(has200) { - operation.responses['default'] = defaultResponse; - } - else { - operation.responses['200'] = defaultResponse; - } -}; - -SwaggerSpecConverter.prototype.authorizations = function(obj) { - // TODO - if(!_.isObject(obj)) { - return; - } -}; - -SwaggerSpecConverter.prototype.parameters = function(operation, obj) { - if(!Array.isArray(obj)) { - return; - } - var i; - for(i = 0; i < obj.length; i++) { - var existingParameter = obj[i]; - var parameter = {}; - parameter.name = existingParameter.name; - parameter.description = existingParameter.description; - parameter.required = existingParameter.required; - parameter.in = existingParameter.paramType; - - // per #168 - if(parameter.in === 'body') { - parameter.name = 'body'; - } - if(parameter.in === 'form') { - parameter.in = 'formData'; - } - - if(existingParameter.enum) { - parameter.enum = existingParameter.enum; - } - - if(existingParameter.allowMultiple === true || existingParameter.allowMultiple === 'true') { - var innerType = {}; - this.dataType(existingParameter, innerType); - parameter.type = 'array'; - parameter.items = innerType; - - if(existingParameter.allowableValues) { - var av = existingParameter.allowableValues; - if(av.valueType === 'LIST') { - parameter['enum'] = av.values; - } - } - } - else { - this.dataType(existingParameter, parameter); - } - if(typeof existingParameter.defaultValue !== 'undefined') { - parameter.default = existingParameter.defaultValue; - } - - operation.parameters = operation.parameters || []; - operation.parameters.push(parameter); - } -}; - -SwaggerSpecConverter.prototype.dataType = function(source, target) { - if(!_.isObject(source)) { - return; - } - - if(source.minimum) { - target.minimum = source.minimum; - } - if(source.maximum) { - target.maximum = source.maximum; - } - if (source.format) { - target.format = source.format; - } - - // default can be 'false' - if(typeof source.defaultValue !== 'undefined') { - target.default = source.defaultValue; - } - - var jsonSchemaType = this.toJsonSchema(source); - if(jsonSchemaType) { - target = target || {}; - if(jsonSchemaType.type) { - target.type = jsonSchemaType.type; - } - if(jsonSchemaType.format) { - target.format = jsonSchemaType.format; - } - if(jsonSchemaType.$ref) { - target.schema = {$ref: jsonSchemaType.$ref}; - } - if(jsonSchemaType.items) { - target.items = jsonSchemaType.items; - } - } -}; - -SwaggerSpecConverter.prototype.toJsonSchema = function(source) { - if(!source) { - return 'object'; - } - var detectedType = (source.type || source.dataType || source.responseClass || ''); - var lcType = detectedType.toLowerCase(); - var format = (source.format || '').toLowerCase(); - - if(lcType.indexOf('list[') === 0) { - var innerType = detectedType.substring(5, detectedType.length - 1); - var jsonType = this.toJsonSchema({type: innerType}); - return {type: 'array', items: jsonType}; - } else if(lcType === 'int' || (lcType === 'integer' && format === 'int32')) { - {return {type: 'integer', format: 'int32'};} - } else if(lcType === 'long' || (lcType === 'integer' && format === 'int64')) { - {return {type: 'integer', format: 'int64'};} - } else if(lcType === 'integer') { - {return {type: 'integer', format: 'int64'};} - } else if(lcType === 'float' || (lcType === 'number' && format === 'float')) { - {return {type: 'number', format: 'float'};} - } else if(lcType === 'double' || (lcType === 'number' && format === 'double')) { - {return {type: 'number', format: 'double'};} - } else if((lcType === 'string' && format === 'date-time') || (lcType === 'date')) { - {return {type: 'string', format: 'date-time'};} - } else if(lcType === 'string') { - {return {type: 'string'};} - } else if(lcType === 'file') { - {return {type: 'file'};} - } else if(lcType === 'boolean') { - {return {type: 'boolean'};} - } else if(lcType === 'boolean') { - {return {type: 'boolean'};} - } else if(lcType === 'array' || lcType === 'list') { - if(source.items) { - var it = this.toJsonSchema(source.items); - return {type: 'array', items: it}; - } - else { - return {type: 'array', items: {type: 'object'}}; - } - } else if(source.$ref) { - return {$ref: this.modelMap[source.$ref] ? '#/definitions/' + this.modelMap[source.$ref] : source.$ref}; - } else if(lcType === 'void' || lcType === '') { - {return {};} - } else if (this.modelMap[source.type]) { - // If this a model using `type` instead of `$ref`, that's fine. - return {$ref: '#/definitions/' + this.modelMap[source.type]}; - } else { - // Unknown model type or 'object', pass it along. - return {type: source.type}; - } -}; - -SwaggerSpecConverter.prototype.resourceListing = function(obj, swagger, opts, callback) { - var i; - var processedCount = 0; // jshint ignore:line - var self = this; // jshint ignore:line - var expectedCount = obj.apis.length; - var _swagger = swagger; // jshint ignore:line - var _opts = {}; - - if(opts && opts.requestInterceptor){ - _opts.requestInterceptor = opts.requestInterceptor; - } - - if(opts && opts.responseInterceptor){ - _opts.responseInterceptor = opts.responseInterceptor; - } - - var swaggerRequestHeaders = 'application/json'; - - if(opts && opts.swaggerRequestHeaders) { - swaggerRequestHeaders = opts.swaggerRequestHeaders; - } - - if(expectedCount === 0) { - this.finish(callback, swagger); - } - - for(i = 0; i < expectedCount; i++) { - var api = obj.apis[i]; - var path = api.path; - var absolutePath = this.getAbsolutePath(obj.swaggerVersion, this.docLocation, path); - - if(api.description) { - swagger.tags = swagger.tags || []; - swagger.tags.push({ - name : this.extractTag(api.path), - description : api.description || '' - }); - } - var http = { - url: absolutePath, - headers: { accept: swaggerRequestHeaders }, - on: {}, - method: 'get' - }; - /* jshint ignore:start */ - http.on.response = function(data) { - processedCount += 1; - var obj = data.obj; - if(obj) { - self.declaration(obj, _swagger); - } - if(processedCount === expectedCount) { - self.finish(callback, _swagger); - } - }; - http.on.error = function(data) { - console.error(data); - processedCount += 1; - if(processedCount === expectedCount) { - self.finish(callback, _swagger); - } - }; - /* jshint ignore:end */ - - if(this.clientAuthorizations && typeof this.clientAuthorizations.apply === 'function') { - this.clientAuthorizations.apply(http); - } - - new SwaggerHttp().execute(http, _opts); - } -}; - -SwaggerSpecConverter.prototype.getAbsolutePath = function(version, docLocation, path) { - if(version === '1.0') { - if(docLocation.endsWith('.json')) { - // get root path - var pos = docLocation.lastIndexOf('/'); - if(pos > 0) { - docLocation = docLocation.substring(0, pos); - } - } - } - - var location = docLocation; - if(path.indexOf('http:') === 0 || path.indexOf('https:') === 0) { - location = path; - } - else { - if(docLocation.endsWith('/')) { - location = docLocation.substring(0, docLocation.length - 1); - } - location += path; - } - location = location.replace('{format}', 'json'); - return location; -}; - -SwaggerSpecConverter.prototype.securityDefinitions = function(obj, swagger) { - if(obj.authorizations) { - var name; - for(name in obj.authorizations) { - var isValid = false; - var securityDefinition = {}; - var definition = obj.authorizations[name]; - if(definition.type === 'apiKey') { - securityDefinition.type = 'apiKey'; - securityDefinition.in = definition.passAs; - securityDefinition.name = definition.keyname || name; - isValid = true; - } - else if(definition.type === 'basicAuth') { - securityDefinition.type = 'basicAuth'; - isValid = true; - } - else if(definition.type === 'oauth2') { - var existingScopes = definition.scopes || []; - var scopes = {}; - var i; - for(i in existingScopes) { - var scope = existingScopes[i]; - scopes[scope.scope] = scope.description; - } - securityDefinition.type = 'oauth2'; - if(i > 0) { - securityDefinition.scopes = scopes; - } - if(definition.grantTypes) { - if(definition.grantTypes.implicit) { - var implicit = definition.grantTypes.implicit; - securityDefinition.flow = 'implicit'; - securityDefinition.authorizationUrl = implicit.loginEndpoint; - isValid = true; - } - /* jshint ignore:start */ - if(definition.grantTypes['authorization_code']) { - if(!securityDefinition.flow) { - // cannot set if flow is already defined - var authCode = definition.grantTypes['authorization_code']; - securityDefinition.flow = 'accessCode'; - securityDefinition.authorizationUrl = authCode.tokenRequestEndpoint.url; - securityDefinition.tokenUrl = authCode.tokenEndpoint.url; - isValid = true; - } - } - /* jshint ignore:end */ - } - } - if(isValid) { - swagger.securityDefinitions = swagger.securityDefinitions || {}; - swagger.securityDefinitions[name] = securityDefinition; - } - } - } -}; - -SwaggerSpecConverter.prototype.apiInfo = function(obj, swagger) { - // info section - if(obj.info) { - var info = obj.info; - swagger.info = {}; - - if(info.contact) { - swagger.info.contact = {}; - swagger.info.contact.email = info.contact; - } - if(info.description) { - swagger.info.description = info.description; - } - if(info.title) { - swagger.info.title = info.title; - } - if(info.termsOfServiceUrl) { - swagger.info.termsOfService = info.termsOfServiceUrl; - } - if(info.license || info.licenseUrl) { - swagger.license = {}; - if(info.license) { - swagger.license.name = info.license; - } - if(info.licenseUrl) { - swagger.license.url = info.licenseUrl; - } - } - } - else { - this.warnings.push('missing info section'); - } -}; - -SwaggerSpecConverter.prototype.finish = function (callback, obj) { - callback(obj); -}; - -},{"./http":5,"lodash-compat/lang/isObject":144}],9:[function(require,module,exports){ -'use strict'; - -var log = require('../helpers').log; -var _ = { - isPlainObject: require('lodash-compat/lang/isPlainObject'), - isString: require('lodash-compat/lang/isString'), -}; - -var SchemaMarkup = require('../schema-markup.js'); -var jsyaml = require('js-yaml'); - -var Model = module.exports = function (name, definition, models, modelPropertyMacro) { - this.definition = definition || {}; - this.isArray = definition.type === 'array'; - this.models = models || {}; - this.name = name || definition.title || 'Inline Model'; - this.modelPropertyMacro = modelPropertyMacro || function (property) { - return property.default; - }; - - return this; -}; - -// Note! This function will be removed in 2.2.x! -Model.prototype.createJSONSample = Model.prototype.getSampleValue = function (modelsToIgnore) { - modelsToIgnore = modelsToIgnore || {}; - - modelsToIgnore[this.name] = this; - - // Response support - if (this.examples && _.isPlainObject(this.examples) && this.examples['application/json']) { - this.definition.example = this.examples['application/json']; - - if (_.isString(this.definition.example)) { - this.definition.example = jsyaml.safeLoad(this.definition.example); - } - } else if (!this.definition.example) { - this.definition.example = this.examples; - } - - return SchemaMarkup.schemaToJSON(this.definition, this.models, modelsToIgnore, this.modelPropertyMacro); -}; - -Model.prototype.getMockSignature = function () { - return SchemaMarkup.schemaToHTML(this.name, this.definition, this.models, this.modelPropertyMacro); -}; - -},{"../helpers":4,"../schema-markup.js":7,"js-yaml":19,"lodash-compat/lang/isPlainObject":145,"lodash-compat/lang/isString":146}],10:[function(require,module,exports){ -'use strict'; - -var _ = { - cloneDeep: require('lodash-compat/lang/cloneDeep'), - isUndefined: require('lodash-compat/lang/isUndefined'), - isEmpty: require('lodash-compat/lang/isEmpty'), - isObject: require('lodash-compat/lang/isObject') -}; -var helpers = require('../helpers'); -var Model = require('./model'); -var SwaggerHttp = require('../http'); -var Q = require('q'); - -var Operation = module.exports = function (parent, scheme, operationId, httpMethod, path, args, definitions, models, clientAuthorizations) { - var errors = []; - - parent = parent || {}; - args = args || {}; - - if(parent && parent.options) { - this.client = parent.options.client || null; - this.requestInterceptor = parent.options.requestInterceptor || null; - this.responseInterceptor = parent.options.responseInterceptor || null; - } - this.authorizations = args.security; - this.basePath = parent.basePath || '/'; - this.clientAuthorizations = clientAuthorizations; - this.consumes = args.consumes || parent.consumes || ['application/json']; - this.produces = args.produces || parent.produces || ['application/json']; - this.deprecated = args.deprecated; - this.description = args.description; - this.host = parent.host || 'localhost'; - this.method = (httpMethod || errors.push('Operation ' + operationId + ' is missing method.')); - this.models = models || {}; - this.nickname = (operationId || errors.push('Operations must have a nickname.')); - this.operation = args; - this.operations = {}; - this.parameters = args !== null ? (args.parameters || []) : {}; - this.parent = parent; - this.path = (path || errors.push('Operation ' + this.nickname + ' is missing path.')); - this.responses = (args.responses || {}); - this.scheme = scheme || parent.scheme || 'http'; - this.schemes = args.schemes || parent.schemes; - this.security = args.security || parent.security; - this.summary = args.summary || ''; - this.type = null; - this.useJQuery = parent.useJQuery; - this.jqueryAjaxCache = parent.jqueryAjaxCache; - this.enableCookies = parent.enableCookies; - this.parameterMacro = parent.parameterMacro || function (operation, parameter) { - return parameter.default; - }; - - this.inlineModels = []; - - if(this.basePath !== '/' && this.basePath.slice(-1) === '/') { - this.basePath = this.basePath.slice(0, -1); - } - - if (typeof this.deprecated === 'string') { - switch(this.deprecated.toLowerCase()) { - case 'true': case 'yes': case '1': { - this.deprecated = true; - break; - } - - case 'false': case 'no': case '0': case null: { - this.deprecated = false; - break; - } - - default: this.deprecated = Boolean(this.deprecated); - } - } - - var i, model; - - if (definitions) { - // add to global models - var key; - - for (key in definitions) { - model = new Model(key, definitions[key], this.models, parent.modelPropertyMacro); - - if (model) { - this.models[key] = model; - } - } - } - else { - definitions = {}; - } - - for (i = 0; i < this.parameters.length; i++) { - var param = this.parameters[i]; - - // Allow macro to set the default value - param.default = this.parameterMacro(this, param); - - if (param.type === 'array') { - param.isList = true; - param.allowMultiple = true; - // the enum can be defined at the items level - //if (param.items && param.items.enum) { - // param['enum'] = param.items.enum; - //} - } - - var innerType = this.getType(param); - - if (innerType && innerType.toString().toLowerCase() === 'boolean') { - param.allowableValues = {}; - param.isList = true; - param['enum'] = [true, false]; // use actual primitives - } - - if(typeof param['x-example'] !== 'undefined') { - var d = param['x-example']; - param.default = d; - } - if(param['x-examples']) { - var d = param['x-examples'].default; - if(typeof d !== 'undefined') { - param.default = d; - } - } - - var enumValues = param['enum'] || (param.items && param.items['enum']); - - if (typeof enumValues !== 'undefined') { - var id; - - param.allowableValues = {}; - param.allowableValues.values = []; - param.allowableValues.descriptiveValues = []; - - for (id = 0; id < enumValues.length; id++) { - var value = enumValues[id]; - var isDefault = (value === param.default || value+'' === param.default); - - param.allowableValues.values.push(value); - // Always have string for descriptive values.... - param.allowableValues.descriptiveValues.push({value : value+'', isDefault: isDefault}); - } - } - - if (param.type === 'array') { - innerType = [innerType]; - - if (typeof param.allowableValues === 'undefined') { - // can't show as a list if no values to select from - delete param.isList; - delete param.allowMultiple; - } - } - - param.modelSignature = {type: innerType, definitions: this.models}; - param.signature = this.getModelSignature(innerType, this.models).toString(); - param.sampleJSON = this.getModelSampleJSON(innerType, this.models); - param.responseClassSignature = param.signature; - } - - var defaultResponseCode, response, responses = this.responses; - - if (responses['200']) { - response = responses['200']; - defaultResponseCode = '200'; - } else if (responses['201']) { - response = responses['201']; - defaultResponseCode = '201'; - } else if (responses['202']) { - response = responses['202']; - defaultResponseCode = '202'; - } else if (responses['203']) { - response = responses['203']; - defaultResponseCode = '203'; - } else if (responses['204']) { - response = responses['204']; - defaultResponseCode = '204'; - } else if (responses['205']) { - response = responses['205']; - defaultResponseCode = '205'; - } else if (responses['206']) { - response = responses['206']; - defaultResponseCode = '206'; - } else if (responses['default']) { - response = responses['default']; - defaultResponseCode = 'default'; - } - - if (response && response.schema) { - var resolvedModel = this.resolveModel(response.schema, definitions); - var successResponse; - - delete responses[defaultResponseCode]; - - if (resolvedModel) { - this.successResponse = {}; - successResponse = this.successResponse[defaultResponseCode] = resolvedModel; - } else if (!response.schema.type || response.schema.type === 'object' || response.schema.type === 'array') { - // Inline model - this.successResponse = {}; - successResponse = this.successResponse[defaultResponseCode] = new Model(undefined, response.schema || {}, this.models, parent.modelPropertyMacro); - } else { - // Primitive - this.successResponse = {}; - successResponse = this.successResponse[defaultResponseCode] = response.schema; - } - - if (successResponse) { - // Attach response properties - if (response.description) { - successResponse.description = response.description; - } - - if (response.examples) { - successResponse.examples = response.examples; - } - - if (response.headers) { - successResponse.headers = response.headers; - } - } - - this.type = response; - } - - if (errors.length > 0) { - if (this.resource && this.resource.api && this.resource.api.fail) { - this.resource.api.fail(errors); - } - } - - return this; -}; - -Operation.prototype.isDefaultArrayItemValue = function(value, param) { - if (param.default && Array.isArray(param.default)) { - return param.default.indexOf(value) !== -1; - } - return value === param.default; -}; - -Operation.prototype.getType = function (param) { - var type = param.type; - var format = param.format; - var isArray = false; - var str; - - if (type === 'integer' && format === 'int32') { - str = 'integer'; - } else if (type === 'integer' && format === 'int64') { - str = 'long'; - } else if (type === 'integer') { - str = 'integer'; - } else if (type === 'string') { - if (format === 'date-time') { - str = 'date-time'; - } else if (format === 'date') { - str = 'date'; - } else { - str = 'string'; - } - } else if (type === 'number' && format === 'float') { - str = 'float'; - } else if (type === 'number' && format === 'double') { - str = 'double'; - } else if (type === 'number') { - str = 'double'; - } else if (type === 'boolean') { - str = 'boolean'; - } else if (type === 'array') { - isArray = true; - - if (param.items) { - str = this.getType(param.items); - } - } else if (type === 'file') { - str = 'file'; - } - - if (param.$ref) { - str = helpers.simpleRef(param.$ref); - } - - var schema = param.schema; - - if (schema) { - var ref = schema.$ref; - - if (ref) { - ref = helpers.simpleRef(ref); - - if (isArray) { - return [ ref ]; - } else { - return ref; - } - } else { - // If inline schema, we add it our interal hash -> which gives us it's ID (int) - if(schema.type === 'object') { - return this.addInlineModel(schema); - } - return this.getType(schema); - } - } - if (isArray) { - return [ str ]; - } else { - return str; - } -}; - -/** - * adds an inline schema (model) to a hash, where we can ref it later - * @param {object} schema a schema - * @return {number} the ID of the schema being added, or null - **/ -Operation.prototype.addInlineModel = function (schema) { - var len = this.inlineModels.length; - var model = this.resolveModel(schema, {}); - if(model) { - this.inlineModels.push(model); - return 'Inline Model '+len; // return string ref of the inline model (used with #getInlineModel) - } - return null; // report errors? -}; - -/** - * gets the internal ref to an inline model - * @param {string} inline_str a string reference to an inline model - * @return {Model} the model being referenced. Or null - **/ -Operation.prototype.getInlineModel = function(inlineStr) { - if(/^Inline Model \d+$/.test(inlineStr)) { - var id = parseInt(inlineStr.substr('Inline Model'.length).trim(),10); // - var model = this.inlineModels[id]; - return model; - } - // I'm returning null here, should I rather throw an error? - return null; -}; - -Operation.prototype.resolveModel = function (schema, definitions) { - if (typeof schema.$ref !== 'undefined') { - var ref = schema.$ref; - - if (ref.indexOf('#/definitions/') === 0) { - ref = ref.substring('#/definitions/'.length); - } - - if (definitions[ref]) { - return new Model(ref, definitions[ref], this.models, this.parent.modelPropertyMacro); - } - // schema must at least be an object to get resolved to an inline Model - } else if (schema && typeof schema === 'object' && - (schema.type === 'object' || _.isUndefined(schema.type))) { - return new Model(undefined, schema, this.models, this.parent.modelPropertyMacro); - } - - return null; -}; - -Operation.prototype.help = function (dontPrint) { - var out = this.nickname + ': ' + this.summary + '\n'; - - for (var i = 0; i < this.parameters.length; i++) { - var param = this.parameters[i]; - var typeInfo = param.signature; - - out += '\n * ' + param.name + ' (' + typeInfo + '): ' + param.description; - } - - if (typeof dontPrint === 'undefined') { - helpers.log(out); - } - - return out; -}; - -Operation.prototype.getModelSignature = function (type, definitions) { - var isPrimitive, listType; - - if (type instanceof Array) { - listType = true; - type = type[0]; - } - - // Convert undefined to string of 'undefined' - if (typeof type === 'undefined') { - type = 'undefined'; - isPrimitive = true; - - } else if (definitions[type]){ - // a model def exists? - type = definitions[type]; /* Model */ - isPrimitive = false; - - } else if (this.getInlineModel(type)) { - type = this.getInlineModel(type); /* Model */ - isPrimitive = false; - - } else { - // We default to primitive - isPrimitive = true; - } - - if (isPrimitive) { - if (listType) { - return 'Array[' + type + ']'; - } else { - return type.toString(); - } - } else { - if (listType) { - return 'Array[' + type.getMockSignature() + ']'; - } else { - return type.getMockSignature(); - } - } -}; - -Operation.prototype.supportHeaderParams = function () { - return true; -}; - -Operation.prototype.supportedSubmitMethods = function () { - return this.parent.supportedSubmitMethods; -}; - -Operation.prototype.getHeaderParams = function (args) { - var headers = this.setContentTypes(args, {}); - - for (var i = 0; i < this.parameters.length; i++) { - var param = this.parameters[i]; - - if (typeof args[param.name] !== 'undefined') { - if (param.in === 'header') { - var value = args[param.name]; - - if (Array.isArray(value)) { - value = value.toString(); - } - - headers[param.name] = value; - } - } - } - - return headers; -}; - -Operation.prototype.urlify = function (args) { - var formParams = {}; - var requestUrl = this.path.replace(/#.*/, ''); // remove URL fragment - var querystring = ''; // grab params from the args, build the querystring along the way - - for (var i = 0; i < this.parameters.length; i++) { - var param = this.parameters[i]; - - if (typeof args[param.name] !== 'undefined') { - if (param.in === 'path') { - var reg = new RegExp('\{' + param.name + '\}', 'gi'); - var value = args[param.name]; - - if (Array.isArray(value)) { - value = this.encodePathCollection(param.collectionFormat, param.name, value); - } else { - value = this.encodePathParam(value); - } - - requestUrl = requestUrl.replace(reg, value); - } else if (param.in === 'query' && typeof args[param.name] !== 'undefined') { - if (querystring === '' && requestUrl.indexOf('?') < 0) { - querystring += '?'; - } else { - querystring += '&'; - } - - if (typeof param.collectionFormat !== 'undefined') { - var qp = args[param.name]; - - if (Array.isArray(qp)) { - querystring += this.encodeQueryCollection(param.collectionFormat, param.name, qp); - } else { - querystring += this.encodeQueryKey(param.name) + '=' + this.encodeQueryParam(args[param.name]); - } - } else { - querystring += this.encodeQueryKey(param.name) + '=' + this.encodeQueryParam(args[param.name]); - } - } else if (param.in === 'formData') { - formParams[param.name] = args[param.name]; - } - } - } - var url = this.scheme + '://' + this.host; - - if (this.basePath !== '/') { - url += this.basePath; - } - return url + requestUrl + querystring; -}; - -Operation.prototype.getMissingParams = function (args) { - var missingParams = []; // check required params, track the ones that are missing - var i; - - for (i = 0; i < this.parameters.length; i++) { - var param = this.parameters[i]; - - if (param.required === true) { - if (typeof args[param.name] === 'undefined') { - missingParams = param.name; - } - } - } - - return missingParams; -}; - -Operation.prototype.getBody = function (headers, args, opts) { - var formParams = {}, hasFormParams, body, key, value, hasBody = false; - - // look at each param and put form params in an object - for (var i = 0; i < this.parameters.length; i++) { - var param = this.parameters[i]; - if (typeof args[param.name] !== 'undefined') { - if (param.in === 'body') { - body = args[param.name]; - } else if (param.in === 'formData') { - formParams[param.name] = { - param: param, - value: args[param.name] - }; - hasFormParams = true; - } - } - else { - if(param.in === 'body') { - hasBody = true; - } - } - } - - // if body is null and hasBody is true, AND a JSON body is requested, send empty {} - if(hasBody && typeof body === 'undefined') { - var contentType = headers['Content-Type']; - if(contentType && contentType.indexOf('application/json') === 0) { - body = '{}'; - } - } - - var isMultiPart = false; - if(headers['Content-Type'] && headers['Content-Type'].indexOf('multipart/form-data') >= 0) { - isMultiPart = true; - } - - // handle form params - if (hasFormParams && !isMultiPart) { - var encoded = ''; - - for (key in formParams) { - var param = formParams[key].param; - value = formParams[key].value; - - if (typeof value !== 'undefined') { - if (Array.isArray(value)) { - if (encoded !== '') { - encoded += '&'; - } - encoded += this.encodeQueryCollection(param.collectionFormat, key, value); - } - else { - if (encoded !== '') { - encoded += '&'; - } - - encoded += encodeURIComponent(key) + '=' + encodeURIComponent(value); - } - } - } - - body = encoded; - } else if (isMultiPart) { - if (typeof FormData === 'function') { - var bodyParam = new FormData(); - - bodyParam.type = 'formData'; - - for (key in formParams) { - value = args[key]; - - if (typeof value !== 'undefined') { - if({}.toString.apply(value) === '[object File]') { - bodyParam.append(key, value); - } - else if (value.type === 'file' && value.value) { - bodyParam.append(key, value.value); - } else { - if (Array.isArray(value)) { - bodyParam.append(key, this.encodeQueryCollection(param.collectionFormat, key, value)); - } - else { - bodyParam.append(key, value); - } - } - } - } - body = bodyParam; - } - else { - bodyParam = {}; - for (key in formParams) { - value = args[key]; - if (Array.isArray(value)) { - var delimeter; - var format = param.collectionFormat || 'multi'; - if(format === 'ssv') { - delimeter = ' '; - } - else if(format === 'pipes') { - delimeter = '|'; - } - else if(format === 'tsv') { - delimeter = '\t'; - } - else { - delimeter = ','; - } - var data; - value.forEach(function(v) { - if(data) { - data += delimeter; - } - else { - data = ''; - } - data += v; - }); - bodyParam[key] = data; - } - else { - bodyParam[key] = value; - } - } - body = bodyParam; - } - headers['Content-Type'] = 'multipart/form-data'; - } - - return body; -}; - -/** - * gets sample response for a single operation - **/ -Operation.prototype.getModelSampleJSON = function (type, models) { - var listType, sampleJson, innerType; - models = models || {}; - - listType = (type instanceof Array); - innerType = listType ? type[0] : type; - - if(models[innerType]) { - sampleJson = models[innerType].createJSONSample(); - } else if (this.getInlineModel(innerType)){ - sampleJson = this.getInlineModel(innerType).createJSONSample(); // may return null, if type isn't correct - } - - - if (sampleJson) { - sampleJson = listType ? [sampleJson] : sampleJson; - - if (typeof sampleJson === 'string') { - return sampleJson; - } else if (_.isObject(sampleJson)) { - var t = sampleJson; - - if (sampleJson instanceof Array && sampleJson.length > 0) { - t = sampleJson[0]; - } - - if (t.nodeName && typeof t === 'Node') { - var xmlString = new XMLSerializer().serializeToString(t); - - return this.formatXml(xmlString); - } else { - return JSON.stringify(sampleJson, null, 2); - } - } else { - return sampleJson; - } - } -}; - -/** - * legacy binding - **/ -Operation.prototype.do = function (args, opts, callback, error, parent) { - return this.execute(args, opts, callback, error, parent); -}; - -/** - * executes an operation - **/ -Operation.prototype.execute = function (arg1, arg2, arg3, arg4, parent) { - var args = arg1 || {}; - var opts = {}, success, error, deferred; - - if (_.isObject(arg2)) { - opts = arg2; - success = arg3; - error = arg4; - } - - if(this.client) { - opts.client = this.client; - } - - // add the request interceptor from parent, if none sent from client - if(!opts.requestInterceptor && this.requestInterceptor ) { - opts.requestInterceptor = this.requestInterceptor ; - } - - if(!opts.responseInterceptor && this.responseInterceptor) { - opts.responseInterceptor = this.responseInterceptor; - } - - if (typeof arg2 === 'function') { - success = arg2; - error = arg3; - } - - if (this.parent.usePromise) { - deferred = Q.defer(); - } else { - success = (success || this.parent.defaultSuccessCallback || helpers.log); - error = (error || this.parent.defaultErrorCallback || helpers.log); - } - - if (typeof opts.useJQuery === 'undefined') { - opts.useJQuery = this.useJQuery; - } - - if (typeof opts.jqueryAjaxCache === 'undefined') { - opts.jqueryAjaxCache = this.jqueryAjaxCache; - } - - if (typeof opts.enableCookies === 'undefined') { - opts.enableCookies = this.enableCookies; - } - - var missingParams = this.getMissingParams(args); - - if (missingParams.length > 0) { - var message = 'missing required params: ' + missingParams; - - helpers.fail(message); - - if (this.parent.usePromise) { - deferred.reject(message); - return deferred.promise; - } else { - error(message, parent); - return {}; - } - } - - var allHeaders = this.getHeaderParams(args); - var contentTypeHeaders = this.setContentTypes(args, opts); - var headers = {}, attrname; - - for (attrname in allHeaders) { headers[attrname] = allHeaders[attrname]; } - for (attrname in contentTypeHeaders) { headers[attrname] = contentTypeHeaders[attrname]; } - - var body = this.getBody(contentTypeHeaders, args, opts); - var url = this.urlify(args); - - if(url.indexOf('.{format}') > 0) { - if(headers) { - var format = headers.Accept || headers.accept; - if(format && format.indexOf('json') > 0) { - url = url.replace('.{format}', '.json'); - } - else if(format && format.indexOf('xml') > 0) { - url = url.replace('.{format}', '.xml'); - } - } - } - - var obj = { - url: url, - method: this.method.toUpperCase(), - body: body, - enableCookies: opts.enableCookies, - useJQuery: opts.useJQuery, - jqueryAjaxCache: opts.jqueryAjaxCache, - deferred: deferred, - headers: headers, - clientAuthorizations: opts.clientAuthorizations, - on: { - response: function (response) { - if (deferred) { - deferred.resolve(response); - return deferred.promise; - } else { - return success(response, parent); - } - }, - error: function (response) { - if (deferred) { - deferred.reject(response); - return deferred.promise; - } else { - return error(response, parent); - } - } - } - }; - - this.clientAuthorizations.apply(obj, this.operation.security); - if (opts.mock === true) { - return obj; - } else { - return new SwaggerHttp().execute(obj, opts); - } -}; - -function itemByPriority(col, itemPriority) { - - // No priorities? return first... - if(_.isEmpty(itemPriority)) { - return col[0]; - } - - for (var i = 0, len = itemPriority.length; i < len; i++) { - if(col.indexOf(itemPriority[i]) > -1) { - return itemPriority[i]; - } - } - - // Otherwise return first - return col[0]; -} - -Operation.prototype.setContentTypes = function (args, opts) { - // default type - var allDefinedParams = this.parameters; - var body; - var consumes = args.parameterContentType || itemByPriority(this.consumes, ['application/json', 'application/yaml']); - var accepts = opts.responseContentType || itemByPriority(this.produces, ['application/json', 'application/yaml']); - var definedFileParams = []; - var definedFormParams = []; - var headers = {}; - var i; - - // get params from the operation and set them in definedFileParams, definedFormParams, headers - for (i = 0; i < allDefinedParams.length; i++) { - var param = allDefinedParams[i]; - - if (param.in === 'formData') { - if (param.type === 'file') { - definedFileParams.push(param); - } else { - definedFormParams.push(param); - } - } else if (param.in === 'header' && opts) { - var key = param.name; - var headerValue = opts[param.name]; - - if (typeof opts[param.name] !== 'undefined') { - headers[key] = headerValue; - } - } else if (param.in === 'body' && typeof args[param.name] !== 'undefined') { - body = args[param.name]; - } - } - - // if there's a body, need to set the consumes header via requestContentType - var hasBody = body || definedFileParams.length || definedFormParams.length; - if (this.method === 'post' || this.method === 'put' || this.method === 'patch' || - ((this.method === 'delete' || this.method === 'get') && hasBody)) { - if (opts.requestContentType) { - consumes = opts.requestContentType; - } - // if any form params, content type must be set - if (definedFormParams.length > 0) { - consumes = undefined; - if (opts.requestContentType) { // override if set - consumes = opts.requestContentType; - } else if (definedFileParams.length > 0) { // if a file, must be multipart/form-data - consumes = 'multipart/form-data'; - } else { - if (this.consumes && this.consumes.length > 0) { - // use the consumes setting - for(var c in this.consumes) { - var chk = this.consumes[c]; - if(chk.indexOf('application/x-www-form-urlencoded') === 0 || chk.indexOf('multipart/form-data') === 0) { - consumes = chk; - } - } - } - } - if(typeof consumes === 'undefined') { - // default to x-www-from-urlencoded - consumes = 'application/x-www-form-urlencoded'; - } - } - } - else { - consumes = null; - } - - if (consumes && this.consumes) { - if (this.consumes.indexOf(consumes) === -1) { - helpers.log('server doesn\'t consume ' + consumes + ', try ' + JSON.stringify(this.consumes)); - } - } - - if (!this.matchesAccept(accepts)) { - helpers.log('server can\'t produce ' + accepts); - } - - if ((consumes && body !== '') || (consumes === 'application/x-www-form-urlencoded')) { - headers['Content-Type'] = consumes; - } - else if(this.consumes && this.consumes.length > 0 && this.consumes[0] === 'application/x-www-form-urlencoded') { - headers['Content-Type'] = this.consumes[0]; - } - - if (accepts) { - headers.Accept = accepts; - } - - return headers; -}; - -/** - * Returns true if the request accepts header matches anything in this.produces. - * If this.produces contains * / *, ignore the accept header. - * @param {string=} accepts The client request accept header. - * @return {boolean} - */ -Operation.prototype.matchesAccept = function(accepts) { - // no accepts or produces, no problem! - if (!accepts || !this.produces) { - return true; - } - return this.produces.indexOf(accepts) !== -1 || this.produces.indexOf('*/*') !== -1; -}; - -Operation.prototype.asCurl = function (args1, args2) { - var opts = {mock: true}; - if (typeof args2 === 'object') { - for (var argKey in args2) { - opts[argKey] = args2[argKey]; - } - } - var obj = this.execute(args1, opts); - - this.clientAuthorizations.apply(obj, this.operation.security); - - var results = []; - - results.push('-X ' + this.method.toUpperCase()); - - if (typeof obj.headers !== 'undefined') { - var key; - - for (key in obj.headers) { - var value = obj.headers[key]; - if(typeof value === 'string'){ - value = value.replace(/\'/g, '\\u0027'); - } - results.push('--header \'' + key + ': ' + value + '\''); - } - } - var isFormData = false; - var isMultipart = false; - - var type = obj.headers['Content-Type']; - if(type && type.indexOf('application/x-www-form-urlencoded') === 0) { - isFormData = true; - } - else if (type && type.indexOf('multipart/form-data') === 0) { - isFormData = true; - isMultipart = true; - } - - if (obj.body) { - var body; - if (_.isObject(obj.body)) { - if(isMultipart) { - isMultipart = true; - // add the form data - for(var i = 0; i < this.parameters.length; i++) { - var parameter = this.parameters[i]; - if(parameter.in === 'formData') { - if (!body) { - body = ''; - } - - var paramValue; - if(typeof FormData === 'function' && obj.body instanceof FormData) { - paramValue = obj.body.get(parameter.name); - } - else { - paramValue = obj.body[parameter.name]; - } - if (paramValue) { - if (parameter.type === 'file') { - if(paramValue.name) { - body += '-F ' + parameter.name + '=@"' + paramValue.name + '" '; - } - } - else { - body += '-F '; - if (Array.isArray(paramValue)) { - body += this.encodeQueryCollection(parameter.collectionFormat, parameter.name, paramValue); - } else { - body += this.encodeQueryKey(parameter.name) + '=' + paramValue; - } - body += ' '; - } - } - } - - } - } - if(!body) { - body = JSON.stringify(obj.body); - } - } else { - body = obj.body; - } - // escape @ => %40, ' => %27 - body = body.replace(/\'/g, '%27').replace(/\n/g, ' \\ \n '); - - if(!isFormData) { - // escape & => %26 - body = body.replace(/&/g, '%26'); - } - if(isMultipart) { - results.push(body); - } - else { - results.push('-d \'' + body.replace(/@/g, '%40') + '\''); - } - } - - return 'curl ' + (results.join(' ')) + ' \'' + obj.url + '\''; -}; - -Operation.prototype.encodePathCollection = function (type, name, value) { - var encoded = ''; - var i; - var separator = ''; - - if (type === 'ssv') { - separator = '%20'; - } else if (type === 'tsv') { - separator = '%09'; - } else if (type === 'pipes') { - separator = '|'; - } else { - separator = ','; - } - - for (i = 0; i < value.length; i++) { - if (i === 0) { - encoded = this.encodeQueryParam(value[i]); - } else { - encoded += separator + this.encodeQueryParam(value[i]); - } - } - - return encoded; -}; - -Operation.prototype.encodeQueryCollection = function (type, name, value) { - var encoded = ''; - var i; - - type = type || 'default'; - if (type === 'default' || type === 'multi') { - for (i = 0; i < value.length; i++) { - if (i > 0) {encoded += '&';} - - encoded += this.encodeQueryKey(name) + '=' + this.encodeQueryParam(value[i]); - } - } else { - var separator = ''; - - if (type === 'csv') { - separator = ','; - } else if (type === 'ssv') { - separator = '%20'; - } else if (type === 'tsv') { - separator = '%09'; - } else if (type === 'pipes') { - separator = '|'; - } else if (type === 'brackets') { - for (i = 0; i < value.length; i++) { - if (i !== 0) { - encoded += '&'; - } - - encoded += this.encodeQueryKey(name) + '[]=' + this.encodeQueryParam(value[i]); - } - } - - if (separator !== '') { - for (i = 0; i < value.length; i++) { - if (i === 0) { - encoded = this.encodeQueryKey(name) + '=' + this.encodeQueryParam(value[i]); - } else { - encoded += separator + this.encodeQueryParam(value[i]); - } - } - } - } - - return encoded; -}; - -Operation.prototype.encodeQueryKey = function (arg) { - return encodeURIComponent(arg) - .replace('%5B','[').replace('%5D', ']').replace('%24', '$'); -}; - -Operation.prototype.encodeQueryParam = function (arg) { - return encodeURIComponent(arg); -}; - -/** - * TODO revisit, might not want to leave '/' - **/ -Operation.prototype.encodePathParam = function (pathParam) { - return encodeURIComponent(pathParam); -}; - -},{"../helpers":4,"../http":5,"./model":9,"lodash-compat/lang/cloneDeep":138,"lodash-compat/lang/isEmpty":141,"lodash-compat/lang/isObject":144,"lodash-compat/lang/isUndefined":148,"q":157}],11:[function(require,module,exports){ -'use strict'; - -var OperationGroup = module.exports = function (tag, description, externalDocs, operation) { - this.description = description; - this.externalDocs = externalDocs; - this.name = tag; - this.operation = operation; - this.operationsArray = []; - this.path = tag; - this.tag = tag; -}; - -OperationGroup.prototype.sort = function () { - -}; - - -},{}],12:[function(require,module,exports){ -// shim for using process in browser - -var process = module.exports = {}; -var queue = []; -var draining = false; - -function drainQueue() { - if (draining) { - return; - } - draining = true; - var currentQueue; - var len = queue.length; - while(len) { - currentQueue = queue; - queue = []; - var i = -1; - while (++i < len) { - currentQueue[i](); - } - len = queue.length; - } - draining = false; -} -process.nextTick = function (fun) { - queue.push(fun); - if (!draining) { - setTimeout(drainQueue, 0); - } -}; - -process.title = 'browser'; -process.browser = true; -process.env = {}; -process.argv = []; -process.version = ''; // empty string to avoid regexp issues -process.versions = {}; - -function noop() {} - -process.on = noop; -process.addListener = noop; -process.once = noop; -process.off = noop; -process.removeListener = noop; -process.removeAllListeners = noop; -process.emit = noop; - -process.binding = function (name) { - throw new Error('process.binding is not supported'); -}; - -// TODO(shtylman) -process.cwd = function () { return '/' }; -process.chdir = function (dir) { - throw new Error('process.chdir is not supported'); -}; -process.umask = function() { return 0; }; - -},{}],13:[function(require,module,exports){ -(function (Buffer){ -(function () { - "use strict"; - - function btoa(str) { - var buffer - ; - - if (str instanceof Buffer) { - buffer = str; - } else { - buffer = new Buffer(str.toString(), 'binary'); - } - - return buffer.toString('base64'); - } - - module.exports = btoa; -}()); - -}).call(this,require("buffer").Buffer) -//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9idG9hL2luZGV4LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiKGZ1bmN0aW9uICgpIHtcbiAgXCJ1c2Ugc3RyaWN0XCI7XG5cbiAgZnVuY3Rpb24gYnRvYShzdHIpIHtcbiAgICB2YXIgYnVmZmVyXG4gICAgICA7XG5cbiAgICBpZiAoc3RyIGluc3RhbmNlb2YgQnVmZmVyKSB7XG4gICAgICBidWZmZXIgPSBzdHI7XG4gICAgfSBlbHNlIHtcbiAgICAgIGJ1ZmZlciA9IG5ldyBCdWZmZXIoc3RyLnRvU3RyaW5nKCksICdiaW5hcnknKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYnVmZmVyLnRvU3RyaW5nKCdiYXNlNjQnKTtcbiAgfVxuXG4gIG1vZHVsZS5leHBvcnRzID0gYnRvYTtcbn0oKSk7XG4iXX0= -},{"buffer":14}],14:[function(require,module,exports){ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.SwaggerUICore=t():e.SwaggerUICore=t()}(window,function(){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/dist",n(n.s=330)}([function(e,t){e.exports=require("react")},function(e,t){e.exports=require("immutable")},function(e,t,n){var r=n(43);e.exports=function(e,t,n){return t in e?r(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";(function(e){n.d(t,"t",function(){return V}),n.d(t,"A",function(){return U}),n.d(t,"i",function(){return q}),n.d(t,"w",function(){return z}),n.d(t,"r",function(){return B}),n.d(t,"u",function(){return F}),n.d(t,"s",function(){return J}),n.d(t,"q",function(){return W}),n.d(t,"v",function(){return H}),n.d(t,"y",function(){return Y}),n.d(t,"z",function(){return K}),n.d(t,"J",function(){return G}),n.d(t,"f",function(){return $}),n.d(t,"n",function(){return Z}),n.d(t,"p",function(){return X}),n.d(t,"h",function(){return Q}),n.d(t,"E",function(){return ee}),n.d(t,"K",function(){return de}),n.d(t,"o",function(){return he}),n.d(t,"D",function(){return me}),n.d(t,"a",function(){return ve}),n.d(t,"H",function(){return ge}),n.d(t,"b",function(){return ye}),n.d(t,"G",function(){return be}),n.d(t,"F",function(){return Ee}),n.d(t,"k",function(){return Se}),n.d(t,"d",function(){return xe}),n.d(t,"g",function(){return we}),n.d(t,"m",function(){return _e}),n.d(t,"l",function(){return Oe}),n.d(t,"e",function(){return Ce}),n.d(t,"I",function(){return je}),n.d(t,"x",function(){return Ae}),n.d(t,"B",function(){return ke}),n.d(t,"C",function(){return Pe}),n.d(t,"j",function(){return Ie}),n.d(t,"c",function(){return Te});var r=n(23),o=n.n(r),a=(n(13),n(79),n(15)),i=n.n(a),u=n(17),c=n.n(u),s=n(14),l=n.n(s),p=n(22),f=n.n(p),d=n(1),h=n.n(d),m=n(310),v=n(311),g=n.n(v),y=n(184),b=n.n(y),E=n(185),S=n.n(E),x=n(312),w=n.n(x),_=(n(313),n(66)),O=n.n(_),C=n(81),j=n(16),A=n.n(j),k=n(315),P=n.n(k),I=n(84),T=n(316),N=n.n(T),R=n(317),M=n.n(R),L="default",D=function(e){return h.a.Iterable.isIterable(e)};function V(e){try{var t=JSON.parse(e);if(t&&"object"===f()(t))return t}catch(e){}return!1}function U(e){return F(e)?D(e)?e.toJS():e:{}}function q(e){return D(e)?e:e instanceof A.a.File?e:F(e)?l()(e)?h.a.Seq(e).map(q).toList():h.a.OrderedMap(e).map(q):e}function z(e){return l()(e)?e:[e]}function B(e){return"function"==typeof e}function F(e){return!!e&&"object"===f()(e)}function J(e){return"function"==typeof e}function W(e){return l()(e)}var H=S.a;function Y(e,t){return c()(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}function K(e,t){return c()(e).reduce(function(n,r){var o=t(e[r],r);return o&&"object"===f()(o)&&i()(n,o),n},{})}function G(e){return function(t){t.dispatch,t.getState;return function(t){return function(n){return"function"==typeof n?n(e()):t(n)}}}}function $(e){var t=e.keySeq();return t.contains(L)?L:t.filter(function(e){return"2"===(e+"")[0]}).sort().first()}function Z(e,t){if(!h.a.Iterable.isIterable(e))return h.a.List();var n=e.getIn(l()(t)?t:[t]);return h.a.List.isList(n)?n:h.a.List()}function X(e){var t=document;if(!e)return"";if(e.textContent.length>5e3)return e.textContent;return function(e){for(var n,r,o,a,i,u=e.textContent,c=0,s=u[0],l=1,p=e.innerHTML="",f=0;r=n,n=f<7&&"\\"==n?1:l;){if(l=s,s=u[++c],a=p.length>1,!l||f>8&&"\n"==l||[/\S/.test(l),1,1,!/[$\w]/.test(l),("/"==n||"\n"==n)&&a,'"'==n&&a,"'"==n&&a,u[c-4]+r+n=="--\x3e",r+n=="*/"][f])for(p&&(e.appendChild(i=t.createElement("span")).setAttribute("style",["color: #555; font-weight: bold;","","","color: #555;",""][f?f<3?2:f>6?4:f>3?3:+/^(a(bstract|lias|nd|rguments|rray|s(m|sert)?|uto)|b(ase|egin|ool(ean)?|reak|yte)|c(ase|atch|har|hecked|lass|lone|ompl|onst|ontinue)|de(bugger|cimal|clare|f(ault|er)?|init|l(egate|ete)?)|do|double|e(cho|ls?if|lse(if)?|nd|nsure|num|vent|x(cept|ec|p(licit|ort)|te(nds|nsion|rn)))|f(allthrough|alse|inal(ly)?|ixed|loat|or(each)?|riend|rom|unc(tion)?)|global|goto|guard|i(f|mp(lements|licit|ort)|n(it|clude(_once)?|line|out|stanceof|t(erface|ernal)?)?|s)|l(ambda|et|ock|ong)|m(icrolight|odule|utable)|NaN|n(amespace|ative|ext|ew|il|ot|ull)|o(bject|perator|r|ut|verride)|p(ackage|arams|rivate|rotected|rotocol|ublic)|r(aise|e(adonly|do|f|gister|peat|quire(_once)?|scue|strict|try|turn))|s(byte|ealed|elf|hort|igned|izeof|tatic|tring|truct|ubscript|uper|ynchronized|witch)|t(emplate|hen|his|hrows?|ransient|rue|ry|ype(alias|def|id|name|of))|u(n(checked|def(ined)?|ion|less|signed|til)|se|sing)|v(ar|irtual|oid|olatile)|w(char_t|hen|here|hile|ith)|xor|yield)$/.test(p):0]),i.appendChild(t.createTextNode(p))),o=f&&f<7?f:o,p="",f=11;![1,/[\/{}[(\-+*=<>:;|\\.,?!&@~]/.test(l),/[\])]/.test(l),/[$\w]/.test(l),"/"==l&&o<2&&"<"!=n,'"'==l,"'"==l,l+s+u[c+1]+u[c+2]=="\x3c!--",l+s=="/*",l+s=="//","#"==l][--f];);p+=l}}(e)}function Q(e){var t;if([/filename\*=[^']+'\w*'"([^"]+)";?/i,/filename\*=[^']+'\w*'([^;]+);?/i,/filename="([^;]*);?"/i,/filename=([^;]*);?/i].some(function(n){return null!==(t=n.exec(e))}),null!==t&&t.length>1)try{return decodeURIComponent(t[1])}catch(e){console.error(e)}return null}function ee(e){return t=e.replace(/\.[^.\/]*$/,""),b()(g()(t));var t}var te=function(e,t){if(e>t)return"Value must be less than Maximum"},ne=function(e,t){if(et)return"Value must be less than MaxLength"},pe=function(e,t){if(e.length2&&void 0!==arguments[2]?arguments[2]:{},r=n.isOAS3,o=void 0!==r&&r,a=n.bypassRequiredCheck,i=void 0!==a&&a,u=[],c=e.get("required"),s=Object(I.a)(e,{isOAS3:o}),p=s.schema,d=s.parameterContentMediaType;if(!p)return u;var m=p.get("required"),v=p.get("maximum"),g=p.get("minimum"),y=p.get("type"),b=p.get("format"),E=p.get("maxLength"),S=p.get("minLength"),x=p.get("pattern");if(y&&(c||m||t)){var w="string"===y&&t,_="array"===y&&l()(t)&&t.length,O="array"===y&&h.a.List.isList(t)&&t.count(),C="array"===y&&"string"==typeof t&&t,j="file"===y&&t instanceof A.a.File,k="boolean"===y&&(t||!1===t),P="number"===y&&(t||0===t),T="integer"===y&&(t||0===t),N="object"===y&&"object"===f()(t)&&null!==t,R="object"===y&&"string"==typeof t&&t,M=[w,_,O,C,j,k,P,T,N,R],L=M.some(function(e){return!!e});if((c||m)&&!L&&!i)return u.push("Required field is not provided"),u;if("object"===y&&"string"==typeof t&&(null===d||"application/json"===d))try{JSON.parse(t)}catch(e){return u.push("Parameter string value must be valid JSON"),u}if(x){var D=fe(t,x);D&&u.push(D)}if(E||0===E){var V=le(t,E);V&&u.push(V)}if(S){var U=pe(t,S);U&&u.push(U)}if(v||0===v){var q=te(t,v);q&&u.push(q)}if(g||0===g){var z=ne(t,g);z&&u.push(z)}if("string"===y){var B;if(!(B="date-time"===b?ce(t):"uuid"===b?se(t):ue(t)))return u;u.push(B)}else if("boolean"===y){var F=ie(t);if(!F)return u;u.push(F)}else if("number"===y){var J=re(t);if(!J)return u;u.push(J)}else if("integer"===y){var W=oe(t);if(!W)return u;u.push(W)}else if("array"===y){var H;if(!O||!t.count())return u;H=p.getIn(["items","type"]),t.forEach(function(e,t){var n;"number"===H?n=re(e):"integer"===H?n=oe(e):"string"===H&&(n=ue(e)),n&&u.push({index:t,error:n})})}else if("file"===y){var Y=ae(t);if(!Y)return u;u.push(Y)}}return u},he=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if(/xml/.test(t)){if(!e.xml||!e.xml.name){if(e.xml=e.xml||{},!e.$$ref)return e.type||e.items||e.properties||e.additionalProperties?'\n\x3c!-- XML example cannot be generated; root element name is undefined --\x3e':null;var r=e.$$ref.match(/\S*\/(\S+)$/);e.xml.name=r[1]}return Object(C.memoizedCreateXMLExample)(e,n)}var a=Object(C.memoizedSampleFromSchema)(e,n);return"object"===f()(a)?o()(a,null,2):a},me=function(){var e={},t=A.a.location.search;if(!t)return{};if(""!=t){var n=t.substr(1).split("&");for(var r in n)n.hasOwnProperty(r)&&(r=n[r].split("="),e[decodeURIComponent(r[0])]=r[1]&&decodeURIComponent(r[1])||"")}return e},ve=function(t){return(t instanceof e?t:new e(t.toString(),"utf-8")).toString("base64")},ge={operationsSorter:{alpha:function(e,t){return e.get("path").localeCompare(t.get("path"))},method:function(e,t){return e.get("method").localeCompare(t.get("method"))}},tagsSorter:{alpha:function(e,t){return e.localeCompare(t)}}},ye=function(e){var t=[];for(var n in e){var r=e[n];void 0!==r&&""!==r&&t.push([n,"=",encodeURIComponent(r).replace(/%20/g,"+")].join(""))}return t.join("&")},be=function(e,t,n){return!!w()(n,function(n){return O()(e[n],t[n])})};function Ee(e){return"string"!=typeof e||""===e?"":Object(m.sanitizeUrl)(e)}function Se(e){if(!h.a.OrderedMap.isOrderedMap(e))return null;if(!e.size)return null;var t=e.find(function(e,t){return t.startsWith("2")&&c()(e.get("content")||{}).length>0}),n=e.get("default")||h.a.OrderedMap(),r=(n.get("content")||h.a.OrderedMap()).keySeq().toJS().length?n:null;return t||r}var xe=function(e){return"string"==typeof e||e instanceof String?e.trim().replace(/\s/g,"%20"):""},we=function(e){return P()(xe(e).replace(/%20/g,"_"))},_e=function(e){return e.filter(function(e,t){return/^x-/.test(t)})},Oe=function(e){return e.filter(function(e,t){return/^pattern|maxLength|minLength|maximum|minimum/.test(t)})};function Ce(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){return!0};if("object"!==f()(e)||l()(e)||null===e||!t)return e;var r=i()({},e);return c()(r).forEach(function(e){e===t&&n(r[e],e)?delete r[e]:r[e]=Ce(r[e],t,n)}),r}function je(e){if("string"==typeof e)return e;if(e&&e.toJS&&(e=e.toJS()),"object"===f()(e)&&null!==e)try{return o()(e,null,2)}catch(t){return String(e)}return null==e?"":e.toString()}function Ae(e){return"number"==typeof e?e.toString():e}function ke(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.returnAll,r=void 0!==n&&n,o=t.allowHashes,a=void 0===o||o;if(!h.a.Map.isMap(e))throw new Error("paramToIdentifier: received a non-Im.Map parameter as input");var i=e.get("name"),u=e.get("in"),c=[];return e&&e.hashCode&&u&&i&&a&&c.push("".concat(u,".").concat(i,".hash-").concat(e.hashCode())),u&&i&&c.push("".concat(u,".").concat(i)),c.push(i),r?c:c[0]||""}function Pe(e,t){return ke(e,{returnAll:!0}).map(function(e){return t[e]}).filter(function(e){return void 0!==e})[0]}function Ie(){return Ne(N()(32).toString("base64"))}function Te(e){return Ne(M()("sha256").update(e).digest("base64"))}function Ne(e){return e.replace(/\+/g,"-").replace(/\//g,"_").replace(/=/g,"")}}).call(this,n(418).Buffer)},function(e,t){e.exports=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}},function(e,t,n){var r=n(43);function o(e,t){for(var n=0;n4)}function c(e){var t=e.get("swagger");return"string"==typeof t&&t.startsWith("2.0")}function s(e){return function(t,n){return function(r){return n&&n.specSelectors&&n.specSelectors.specJson?u(n.specSelectors.specJson())?i.a.createElement(e,o()({},r,n,{Ori:t})):i.a.createElement(t,r):(console.warn("OAS3 wrapper: couldn't get spec"),null)}}}},function(e,t,n){var r=n(399),o=n(405);function a(e){return(a="function"==typeof o&&"symbol"==typeof r?function(e){return typeof e}:function(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":typeof e})(e)}function i(t){return"function"==typeof o&&"symbol"===a(r)?e.exports=i=function(e){return a(e)}:e.exports=i=function(e){return e&&"function"==typeof o&&e.constructor===o&&e!==o.prototype?"symbol":a(e)},i(t)}e.exports=i},function(e,t,n){e.exports=n(394)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SPEC",function(){return G}),n.d(t,"UPDATE_URL",function(){return $}),n.d(t,"UPDATE_JSON",function(){return Z}),n.d(t,"UPDATE_PARAM",function(){return X}),n.d(t,"UPDATE_EMPTY_PARAM_INCLUSION",function(){return Q}),n.d(t,"VALIDATE_PARAMS",function(){return ee}),n.d(t,"SET_RESPONSE",function(){return te}),n.d(t,"SET_REQUEST",function(){return ne}),n.d(t,"SET_MUTATED_REQUEST",function(){return re}),n.d(t,"LOG_REQUEST",function(){return oe}),n.d(t,"CLEAR_RESPONSE",function(){return ae}),n.d(t,"CLEAR_REQUEST",function(){return ie}),n.d(t,"CLEAR_VALIDATE_PARAMS",function(){return ue}),n.d(t,"UPDATE_OPERATION_META_VALUE",function(){return ce}),n.d(t,"UPDATE_RESOLVED",function(){return se}),n.d(t,"UPDATE_RESOLVED_SUBTREE",function(){return le}),n.d(t,"SET_SCHEME",function(){return pe}),n.d(t,"updateSpec",function(){return de}),n.d(t,"updateResolved",function(){return he}),n.d(t,"updateUrl",function(){return me}),n.d(t,"updateJsonSpec",function(){return ve}),n.d(t,"parseToJson",function(){return ge}),n.d(t,"resolveSpec",function(){return be}),n.d(t,"requestResolvedSubtree",function(){return xe}),n.d(t,"changeParam",function(){return we}),n.d(t,"changeParamByIdentity",function(){return _e}),n.d(t,"updateResolvedSubtree",function(){return Oe}),n.d(t,"invalidateResolvedSubtreeCache",function(){return Ce}),n.d(t,"validateParams",function(){return je}),n.d(t,"updateEmptyParamInclusion",function(){return Ae}),n.d(t,"clearValidateParams",function(){return ke}),n.d(t,"changeConsumesValue",function(){return Pe}),n.d(t,"changeProducesValue",function(){return Ie}),n.d(t,"setResponse",function(){return Te}),n.d(t,"setRequest",function(){return Ne}),n.d(t,"setMutatedRequest",function(){return Re}),n.d(t,"logRequest",function(){return Me}),n.d(t,"executeRequest",function(){return Le}),n.d(t,"execute",function(){return De}),n.d(t,"clearResponse",function(){return Ve}),n.d(t,"clearRequest",function(){return Ue}),n.d(t,"setScheme",function(){return qe});var r=n(82),o=n.n(r),a=n(50),i=n.n(a),u=n(51),c=n.n(u),s=n(45),l=n.n(s),p=n(2),f=n.n(p),d=n(33),h=n.n(d),m=n(244),v=n.n(m),g=n(15),y=n.n(g),b=n(17),E=n.n(b),S=n(196),x=n.n(S),w=n(104),_=n.n(w),O=n(245),C=n.n(O),j=n(43),A=n.n(j),k=n(14),P=n.n(k),I=n(22),T=n.n(I),N=n(129),R=n.n(N),M=n(1),L=n(67),D=n.n(L),V=n(78),U=n.n(V),q=n(319),z=n.n(q),B=n(320),F=n.n(B),J=n(246),W=n.n(J),H=n(3);function Y(e,t){var n=E()(e);if(l.a){var r=l()(e);t&&(r=r.filter(function(t){return c()(e,t).enumerable})),n.push.apply(n,r)}return n}function K(e){for(var t=1;t0){var o=n.map(function(e){return console.error(e),e.line=e.fullPath?g(y,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",A()(e,"message",{enumerable:!0,value:e.message}),e});a.newThrownErrBatch(o)}return r.updateResolved(t)})}},Ee=[],Se=F()(C()(_.a.mark(function e(){var t,n,r,o,a,i,u,c,s,l,p,f,d,h,m,v,g;return _.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:if(t=Ee.system){e.next=4;break}return console.error("debResolveSubtrees: don't have a system to operate on, aborting."),e.abrupt("return");case 4:if(n=t.errActions,r=t.errSelectors,o=t.fn,a=o.resolveSubtree,i=o.AST,u=void 0===i?{}:i,c=t.specSelectors,s=t.specActions,a){e.next=8;break}return console.error("Error: Swagger-Client did not provide a `resolveSubtree` method, doing nothing."),e.abrupt("return");case 8:return l=u.getLineNumberForPath?u.getLineNumberForPath:function(){},p=c.specStr(),f=t.getConfigs(),d=f.modelPropertyMacro,h=f.parameterMacro,m=f.requestInterceptor,v=f.responseInterceptor,e.prev=11,e.next=14,Ee.reduce(function(){var e=C()(_.a.mark(function e(t,o){var i,u,s,f,g,y,b;return _.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t;case 2:return i=e.sent,u=i.resultMap,s=i.specWithCurrentSubtrees,e.next=7,a(s,o,{baseDoc:c.url(),modelPropertyMacro:d,parameterMacro:h,requestInterceptor:m,responseInterceptor:v});case 7:return f=e.sent,g=f.errors,y=f.spec,r.allErrors().size&&n.clearBy(function(e){return"thrown"!==e.get("type")||"resolver"!==e.get("source")||!e.get("fullPath").every(function(e,t){return e===o[t]||void 0===o[t]})}),P()(g)&&g.length>0&&(b=g.map(function(e){return e.line=e.fullPath?l(p,e.fullPath):null,e.path=e.fullPath?e.fullPath.join("."):null,e.level="error",e.type="thrown",e.source="resolver",A()(e,"message",{enumerable:!0,value:e.message}),e}),n.newThrownErrBatch(b)),W()(u,o,y),W()(s,o,y),e.abrupt("return",{resultMap:u,specWithCurrentSubtrees:s});case 15:case"end":return e.stop()}},e)}));return function(t,n){return e.apply(this,arguments)}}(),x.a.resolve({resultMap:(c.specResolvedSubtree([])||Object(M.Map)()).toJS(),specWithCurrentSubtrees:c.specJson().toJS()}));case 14:g=e.sent,delete Ee.system,Ee=[],e.next=22;break;case 19:e.prev=19,e.t0=e.catch(11),console.error(e.t0);case 22:s.updateResolvedSubtree([],g.resultMap);case 23:case"end":return e.stop()}},e,null,[[11,19]])})),35),xe=function(e){return function(t){Ee.map(function(e){return e.join("@@")}).indexOf(e.join("@@"))>-1||(Ee.push(e),Ee.system=t,Se())}};function we(e,t,n,r,o){return{type:X,payload:{path:e,value:r,paramName:t,paramIn:n,isXml:o}}}function _e(e,t,n,r){return{type:X,payload:{path:e,param:t,value:n,isXml:r}}}var Oe=function(e,t){return{type:le,payload:{path:e,value:t}}},Ce=function(){return{type:le,payload:{path:[],value:Object(M.Map)()}}},je=function(e,t){return{type:ee,payload:{pathMethod:e,isOAS3:t}}},Ae=function(e,t,n,r){return{type:Q,payload:{pathMethod:e,paramName:t,paramIn:n,includeEmptyValue:r}}};function ke(e){return{type:ue,payload:{pathMethod:e}}}function Pe(e,t){return{type:ce,payload:{path:e,value:t,key:"consumes_value"}}}function Ie(e,t){return{type:ce,payload:{path:e,value:t,key:"produces_value"}}}var Te=function(e,t,n){return{payload:{path:e,method:t,res:n},type:te}},Ne=function(e,t,n){return{payload:{path:e,method:t,req:n},type:ne}},Re=function(e,t,n){return{payload:{path:e,method:t,req:n},type:re}},Me=function(e){return{payload:e,type:oe}},Le=function(e){return function(t){var n=t.fn,r=t.specActions,o=t.specSelectors,a=t.getConfigs,i=t.oas3Selectors,u=e.pathName,c=e.method,s=e.operation,l=a(),p=l.requestInterceptor,f=l.responseInterceptor,d=s.toJS();if(s&&s.get("parameters")&&s.get("parameters").filter(function(e){return e&&!0===e.get("allowEmptyValue")}).forEach(function(t){if(o.parameterInclusionSettingFor([u,c],t.get("name"),t.get("in"))){e.parameters=e.parameters||{};var n=Object(H.C)(t,e.parameters);(!n||n&&0===n.size)&&(e.parameters[t.get("name")]="")}}),e.contextUrl=D()(o.url()).toString(),d&&d.operationId?e.operationId=d.operationId:d&&u&&c&&(e.operationId=n.opId(d,u,c)),o.isOAS3()){var h="".concat(u,":").concat(c);e.server=i.selectedServer(h)||i.selectedServer();var m=i.serverVariables({server:e.server,namespace:h}).toJS(),g=i.serverVariables({server:e.server}).toJS();e.serverVariables=E()(m).length?m:g,e.requestContentType=i.requestContentType(u,c),e.responseContentType=i.responseContentType(u,c)||"*/*";var b=i.requestBodyValue(u,c);Object(H.t)(b)?e.requestBody=JSON.parse(b):b&&b.toJS?e.requestBody=b.toJS():e.requestBody=b}var S=y()({},e);S=n.buildRequest(S),r.setRequest(e.pathName,e.method,S);e.requestInterceptor=function(t){var n=p.apply(this,[t]),o=y()({},n);return r.setMutatedRequest(e.pathName,e.method,o),n},e.responseInterceptor=f;var x=v()();return n.execute(e).then(function(t){t.duration=v()()-x,r.setResponse(e.pathName,e.method,t)}).catch(function(t){console.error(t),r.setResponse(e.pathName,e.method,{error:!0,err:U()(t)})})}},De=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.path,n=e.method,r=h()(e,["path","method"]);return function(e){var o=e.fn.fetch,a=e.specSelectors,i=e.specActions,u=a.specJsonWithResolvedSubtrees().toJS(),c=a.operationScheme(t,n),s=a.contentTypeValues([t,n]).toJS(),l=s.requestContentType,p=s.responseContentType,f=/xml/i.test(l),d=a.parameterValues([t,n],f).toJS();return i.executeRequest(K({},r,{fetch:o,spec:u,pathName:t,method:n,parameters:d,requestContentType:l,scheme:c,responseContentType:p}))}};function Ve(e,t){return{type:ae,payload:{path:e,method:t}}}function Ue(e,t){return{type:ie,payload:{path:e,method:t}}}function qe(e,t,n){return{type:pe,payload:{scheme:e,path:t,method:n}}}},function(e,t,n){var r=n(27),o=n(20),a=n(47),i=n(57),u=n(62),c=function(e,t,n){var s,l,p,f=e&c.F,d=e&c.G,h=e&c.S,m=e&c.P,v=e&c.B,g=e&c.W,y=d?o:o[t]||(o[t]={}),b=y.prototype,E=d?r:h?r[t]:(r[t]||{}).prototype;for(s in d&&(n=t),n)(l=!f&&E&&void 0!==E[s])&&u(y,s)||(p=l?E[s]:n[s],y[s]=d&&"function"!=typeof E[s]?n[s]:v&&l?a(p,r):g&&E[s]==p?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(p):m&&"function"==typeof p?a(Function.call,p):p,m&&((y.virtual||(y.virtual={}))[s]=p,e&c.R&&b&&!b[s]&&i(b,s,p)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var r=n(134)("wks"),o=n(136),a=n(30).Symbol,i="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)("Symbol."+e))}).store=r},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(151)("wks"),o=n(114),a=n(27).Symbol,i="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=i&&a[e]||(i?a:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(30),o=n(53),a=n(61),i=n(69),u=n(108),c=function(e,t,n){var s,l,p,f,d=e&c.F,h=e&c.G,m=e&c.S,v=e&c.P,g=e&c.B,y=h?r:m?r[t]||(r[t]={}):(r[t]||{}).prototype,b=h?o:o[t]||(o[t]={}),E=b.prototype||(b.prototype={});for(s in h&&(n=t),n)p=((l=!d&&y&&void 0!==y[s])?y:n)[s],f=g&&l?u(p,r):v&&"function"==typeof p?u(Function.call,p):p,y&&i(y,s,p,e&c.U),b[s]!=p&&a(b,s,f),v&&E[s]!=p&&(E[s]=p)};r.core=o,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t){var n=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(29),o=n(71),a=n(54),i=/"/g,u=function(e,t,n,r){var o=String(a(e)),u="<"+t;return""!==n&&(u+=" "+n+'="'+String(r).replace(i,""")+'"'),u+">"+o+""};e.exports=function(e,t){var n={};n[e]=t(u),r(r.P+r.F*o(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(45),o=n(534);e.exports=function(e,t){if(null==e)return{};var n,a,i=o(e,t);if(r){var u=r(e);for(a=0;a=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}},function(e,t,n){"use strict";n.r(t),n.d(t,"NEW_THROWN_ERR",function(){return a}),n.d(t,"NEW_THROWN_ERR_BATCH",function(){return i}),n.d(t,"NEW_SPEC_ERR",function(){return u}),n.d(t,"NEW_SPEC_ERR_BATCH",function(){return c}),n.d(t,"NEW_AUTH_ERR",function(){return s}),n.d(t,"CLEAR",function(){return l}),n.d(t,"CLEAR_BY",function(){return p}),n.d(t,"newThrownErr",function(){return f}),n.d(t,"newThrownErrBatch",function(){return d}),n.d(t,"newSpecErr",function(){return h}),n.d(t,"newSpecErrBatch",function(){return m}),n.d(t,"newAuthErr",function(){return v}),n.d(t,"clear",function(){return g}),n.d(t,"clearBy",function(){return y});var r=n(78),o=n.n(r),a="err_new_thrown_err",i="err_new_thrown_err_batch",u="err_new_spec_err",c="err_new_spec_err_batch",s="err_new_auth_err",l="err_clear",p="err_clear_by";function f(e){return{type:a,payload:o()(e)}}function d(e){return{type:i,payload:e}}function h(e){return{type:u,payload:e}}function m(e){return{type:c,payload:e}}function v(e){return{type:s,payload:e}}function g(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return{type:l,payload:e}}function y(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(){return!0};return{type:p,payload:e}}},function(e,t,n){var r=n(70);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var r=n(37),o=n(262),a=n(155),i=Object.defineProperty;t.f=n(39)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),o)try{return i(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){var r=n(38);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){e.exports=!n(63)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){var r=n(270),o="object"==typeof self&&self&&self.Object===Object&&self,a=r||o||Function("return this")();e.exports=a},function(e,t){e.exports=require("swagger-client")},function(e,t){e.exports=function(e){var t=typeof e;return null!=e&&("object"==t||"function"==t)}},function(e,t,n){e.exports=n(413)},function(e,t){e.exports=require("classnames")},function(e,t,n){e.exports=n(533)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_SELECTED_SERVER",function(){return r}),n.d(t,"UPDATE_REQUEST_BODY_VALUE",function(){return o}),n.d(t,"UPDATE_ACTIVE_EXAMPLES_MEMBER",function(){return a}),n.d(t,"UPDATE_REQUEST_CONTENT_TYPE",function(){return i}),n.d(t,"UPDATE_RESPONSE_CONTENT_TYPE",function(){return u}),n.d(t,"UPDATE_SERVER_VARIABLE_VALUE",function(){return c}),n.d(t,"setSelectedServer",function(){return s}),n.d(t,"setRequestBodyValue",function(){return l}),n.d(t,"setActiveExamplesMember",function(){return p}),n.d(t,"setRequestContentType",function(){return f}),n.d(t,"setResponseContentType",function(){return d}),n.d(t,"setServerVariableValue",function(){return h});var r="oas3_set_servers",o="oas3_set_request_body_value",a="oas3_set_active_examples_member",i="oas3_set_request_content_type",u="oas3_set_response_content_type",c="oas3_set_server_variable_value";function s(e,t){return{type:r,payload:{selectedServerUrl:e,namespace:t}}}function l(e){var t=e.value,n=e.pathMethod;return{type:o,payload:{value:t,pathMethod:n}}}function p(e){var t=e.name,n=e.pathMethod,r=e.contextType,o=e.contextName;return{type:a,payload:{name:t,pathMethod:n,contextType:r,contextName:o}}}function f(e){var t=e.value,n=e.pathMethod;return{type:i,payload:{value:t,pathMethod:n}}}function d(e){var t=e.value,n=e.path,r=e.method;return{type:u,payload:{value:t,path:n,method:r}}}function h(e){var t=e.server,n=e.namespace,r=e.key,o=e.val;return{type:c,payload:{server:t,namespace:n,key:r,val:o}}}},function(e,t,n){var r=n(92);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){return null!=e&&"object"==typeof e}},function(e,t,n){"use strict";n.r(t),n.d(t,"lastError",function(){return h}),n.d(t,"url",function(){return m}),n.d(t,"specStr",function(){return v}),n.d(t,"specSource",function(){return g}),n.d(t,"specJson",function(){return y}),n.d(t,"specResolved",function(){return b}),n.d(t,"specResolvedSubtree",function(){return E}),n.d(t,"specJsonWithResolvedSubtrees",function(){return x}),n.d(t,"spec",function(){return w}),n.d(t,"isOAS3",function(){return _}),n.d(t,"info",function(){return O}),n.d(t,"externalDocs",function(){return C}),n.d(t,"version",function(){return j}),n.d(t,"semver",function(){return A}),n.d(t,"paths",function(){return k}),n.d(t,"operations",function(){return P}),n.d(t,"consumes",function(){return I}),n.d(t,"produces",function(){return T}),n.d(t,"security",function(){return N}),n.d(t,"securityDefinitions",function(){return R}),n.d(t,"findDefinition",function(){return M}),n.d(t,"definitions",function(){return L}),n.d(t,"basePath",function(){return D}),n.d(t,"host",function(){return V}),n.d(t,"schemes",function(){return U}),n.d(t,"operationsWithRootInherited",function(){return q}),n.d(t,"tags",function(){return z}),n.d(t,"tagDetails",function(){return B}),n.d(t,"operationsWithTags",function(){return F}),n.d(t,"taggedOperations",function(){return J}),n.d(t,"responses",function(){return W}),n.d(t,"requests",function(){return H}),n.d(t,"mutatedRequests",function(){return Y}),n.d(t,"responseFor",function(){return K}),n.d(t,"requestFor",function(){return G}),n.d(t,"mutatedRequestFor",function(){return $}),n.d(t,"allowTryItOutFor",function(){return Z}),n.d(t,"parameterWithMetaByIdentity",function(){return X}),n.d(t,"parameterInclusionSettingFor",function(){return Q}),n.d(t,"parameterWithMeta",function(){return ee}),n.d(t,"operationWithMeta",function(){return te}),n.d(t,"getParameter",function(){return ne}),n.d(t,"hasHost",function(){return re}),n.d(t,"parameterValues",function(){return oe}),n.d(t,"parametersIncludeIn",function(){return ae}),n.d(t,"parametersIncludeType",function(){return ie}),n.d(t,"contentTypeValues",function(){return ue}),n.d(t,"currentProducesFor",function(){return ce}),n.d(t,"producesOptionsFor",function(){return se}),n.d(t,"consumesOptionsFor",function(){return le}),n.d(t,"operationScheme",function(){return pe}),n.d(t,"canExecuteScheme",function(){return fe}),n.d(t,"validateBeforeExecute",function(){return de});var r=n(14),o=n.n(r),a=n(13),i=n.n(a),u=n(12),c=n.n(u),s=n(11),l=n(3),p=n(1),f=["get","put","post","delete","options","head","patch","trace"],d=function(e){return e||Object(p.Map)()},h=Object(s.createSelector)(d,function(e){return e.get("lastError")}),m=Object(s.createSelector)(d,function(e){return e.get("url")}),v=Object(s.createSelector)(d,function(e){return e.get("spec")||""}),g=Object(s.createSelector)(d,function(e){return e.get("specSource")||"not-editor"}),y=Object(s.createSelector)(d,function(e){return e.get("json",Object(p.Map)())}),b=Object(s.createSelector)(d,function(e){return e.get("resolved",Object(p.Map)())}),E=function(e,t){return e.getIn(["resolvedSubtrees"].concat(c()(t)),void 0)},S=function e(t,n){return p.Map.isMap(t)&&p.Map.isMap(n)?n.get("$$ref")?n:Object(p.OrderedMap)().mergeWith(e,t,n):n},x=Object(s.createSelector)(d,function(e){return Object(p.OrderedMap)().mergeWith(S,e.get("json"),e.get("resolvedSubtrees"))}),w=function(e){return y(e)},_=Object(s.createSelector)(w,function(){return!1}),O=Object(s.createSelector)(w,function(e){return he(e&&e.get("info"))}),C=Object(s.createSelector)(w,function(e){return he(e&&e.get("externalDocs"))}),j=Object(s.createSelector)(O,function(e){return e&&e.get("version")}),A=Object(s.createSelector)(j,function(e){return/v?([0-9]*)\.([0-9]*)\.([0-9]*)/i.exec(e).slice(1)}),k=Object(s.createSelector)(x,function(e){return e.get("paths")}),P=Object(s.createSelector)(k,function(e){if(!e||e.size<1)return Object(p.List)();var t=Object(p.List)();return e&&e.forEach?(e.forEach(function(e,n){if(!e||!e.forEach)return{};e.forEach(function(e,r){f.indexOf(r)<0||(t=t.push(Object(p.fromJS)({path:n,method:r,operation:e,id:"".concat(r,"-").concat(n)})))})}),t):Object(p.List)()}),I=Object(s.createSelector)(w,function(e){return Object(p.Set)(e.get("consumes"))}),T=Object(s.createSelector)(w,function(e){return Object(p.Set)(e.get("produces"))}),N=Object(s.createSelector)(w,function(e){return e.get("security",Object(p.List)())}),R=Object(s.createSelector)(w,function(e){return e.get("securityDefinitions")}),M=function(e,t){var n=e.getIn(["resolvedSubtrees","definitions",t],null),r=e.getIn(["json","definitions",t],null);return n||r||null},L=Object(s.createSelector)(w,function(e){var t=e.get("definitions");return p.Map.isMap(t)?t:Object(p.Map)()}),D=Object(s.createSelector)(w,function(e){return e.get("basePath")}),V=Object(s.createSelector)(w,function(e){return e.get("host")}),U=Object(s.createSelector)(w,function(e){return e.get("schemes",Object(p.Map)())}),q=Object(s.createSelector)(P,I,T,function(e,t,n){return e.map(function(e){return e.update("operation",function(e){if(e){if(!p.Map.isMap(e))return;return e.withMutations(function(e){return e.get("consumes")||e.update("consumes",function(e){return Object(p.Set)(e).merge(t)}),e.get("produces")||e.update("produces",function(e){return Object(p.Set)(e).merge(n)}),e})}return Object(p.Map)()})})}),z=Object(s.createSelector)(w,function(e){var t=e.get("tags",Object(p.List)());return p.List.isList(t)?t.filter(function(e){return p.Map.isMap(e)}):Object(p.List)()}),B=function(e,t){return(z(e)||Object(p.List)()).filter(p.Map.isMap).find(function(e){return e.get("name")===t},Object(p.Map)())},F=Object(s.createSelector)(q,z,function(e,t){return e.reduce(function(e,t){var n=Object(p.Set)(t.getIn(["operation","tags"]));return n.count()<1?e.update("default",Object(p.List)(),function(e){return e.push(t)}):n.reduce(function(e,n){return e.update(n,Object(p.List)(),function(e){return e.push(t)})},e)},t.reduce(function(e,t){return e.set(t.get("name"),Object(p.List)())},Object(p.OrderedMap)()))}),J=function(e){return function(t){var n=(0,t.getConfigs)(),r=n.tagsSorter,o=n.operationsSorter;return F(e).sortBy(function(e,t){return t},function(e,t){var n="function"==typeof r?r:l.H.tagsSorter[r];return n?n(e,t):null}).map(function(t,n){var r="function"==typeof o?o:l.H.operationsSorter[o],a=r?t.sort(r):t;return Object(p.Map)({tagDetails:B(e,n),operations:a})})}},W=Object(s.createSelector)(d,function(e){return e.get("responses",Object(p.Map)())}),H=Object(s.createSelector)(d,function(e){return e.get("requests",Object(p.Map)())}),Y=Object(s.createSelector)(d,function(e){return e.get("mutatedRequests",Object(p.Map)())}),K=function(e,t,n){return W(e).getIn([t,n],null)},G=function(e,t,n){return H(e).getIn([t,n],null)},$=function(e,t,n){return Y(e).getIn([t,n],null)},Z=function(){return!0},X=function(e,t,n){var r=x(e).getIn(["paths"].concat(c()(t),["parameters"]),Object(p.OrderedMap)()),o=e.getIn(["meta","paths"].concat(c()(t),["parameters"]),Object(p.OrderedMap)());return r.map(function(e){var t=o.get("".concat(n.get("in"),".").concat(n.get("name"))),r=o.get("".concat(n.get("in"),".").concat(n.get("name"),".hash-").concat(n.hashCode()));return Object(p.OrderedMap)().merge(e,t,r)}).find(function(e){return e.get("in")===n.get("in")&&e.get("name")===n.get("name")},Object(p.OrderedMap)())},Q=function(e,t,n,r){var o="".concat(r,".").concat(n);return e.getIn(["meta","paths"].concat(c()(t),["parameter_inclusions",o]),!1)},ee=function(e,t,n,r){var o=x(e).getIn(["paths"].concat(c()(t),["parameters"]),Object(p.OrderedMap)()).find(function(e){return e.get("in")===r&&e.get("name")===n},Object(p.OrderedMap)());return X(e,t,o)},te=function(e,t,n){var r=x(e).getIn(["paths",t,n],Object(p.OrderedMap)()),o=e.getIn(["meta","paths",t,n],Object(p.OrderedMap)()),a=r.get("parameters",Object(p.List)()).map(function(r){return X(e,[t,n],r)});return Object(p.OrderedMap)().merge(r,o).set("parameters",a)};function ne(e,t,n,r){return t=t||[],e.getIn(["meta","paths"].concat(c()(t),["parameters"]),Object(p.fromJS)([])).find(function(e){return p.Map.isMap(e)&&e.get("name")===n&&e.get("in")===r})||Object(p.Map)()}var re=Object(s.createSelector)(w,function(e){var t=e.get("host");return"string"==typeof t&&t.length>0&&"/"!==t[0]});function oe(e,t,n){return t=t||[],te.apply(void 0,[e].concat(c()(t))).get("parameters",Object(p.List)()).reduce(function(e,t){var r=n&&"body"===t.get("in")?t.get("value_xml"):t.get("value");return e.set(Object(l.B)(t,{allowHashes:!1}),r)},Object(p.fromJS)({}))}function ae(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(p.List.isList(e))return e.some(function(e){return p.Map.isMap(e)&&e.get("in")===t})}function ie(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";if(p.List.isList(e))return e.some(function(e){return p.Map.isMap(e)&&e.get("type")===t})}function ue(e,t){t=t||[];var n=x(e).getIn(["paths"].concat(c()(t)),Object(p.fromJS)({})),r=e.getIn(["meta","paths"].concat(c()(t)),Object(p.fromJS)({})),o=ce(e,t),a=n.get("parameters")||new p.List,i=r.get("consumes_value")?r.get("consumes_value"):ie(a,"file")?"multipart/form-data":ie(a,"formData")?"application/x-www-form-urlencoded":void 0;return Object(p.fromJS)({requestContentType:i,responseContentType:o})}function ce(e,t){t=t||[];var n=x(e).getIn(["paths"].concat(c()(t)),null);if(null!==n){var r=e.getIn(["meta","paths"].concat(c()(t),["produces_value"]),null),o=n.getIn(["produces",0],null);return r||o||"application/json"}}function se(e,t){t=t||[];var n=x(e),r=n.getIn(["paths"].concat(c()(t)),null);if(null!==r){var o=t,a=i()(o,1)[0],u=r.get("produces",null),s=n.getIn(["paths",a,"produces"],null),l=n.getIn(["produces"],null);return u||s||l}}function le(e,t){t=t||[];var n=x(e),r=n.getIn(["paths"].concat(c()(t)),null);if(null!==r){var o=t,a=i()(o,1)[0],u=r.get("consumes",null),s=n.getIn(["paths",a,"consumes"],null),l=n.getIn(["consumes"],null);return u||s||l}}var pe=function(e,t,n){var r=e.get("url").match(/^([a-z][a-z0-9+\-.]*):/),a=o()(r)?r[1]:null;return e.getIn(["scheme",t,n])||e.getIn(["scheme","_defaultScheme"])||a||""},fe=function(e,t,n){return["http","https"].indexOf(pe(e,t,n))>-1},de=function(e,t){t=t||[];var n=e.getIn(["meta","paths"].concat(c()(t),["parameters"]),Object(p.fromJS)([])),r=!0;return n.forEach(function(e){var t=e.get("errors");t&&t.count()&&(r=!1)}),r};function he(e){return p.Map.isMap(e)?e:new p.Map}},function(e,t,n){e.exports=n(528)},function(e,t,n){e.exports=n(531)},function(e,t,n){"use strict";n.r(t),n.d(t,"SHOW_AUTH_POPUP",function(){return h}),n.d(t,"AUTHORIZE",function(){return m}),n.d(t,"LOGOUT",function(){return v}),n.d(t,"PRE_AUTHORIZE_OAUTH2",function(){return g}),n.d(t,"AUTHORIZE_OAUTH2",function(){return y}),n.d(t,"VALIDATE",function(){return b}),n.d(t,"CONFIGURE_AUTH",function(){return E}),n.d(t,"showDefinitions",function(){return S}),n.d(t,"authorize",function(){return x}),n.d(t,"logout",function(){return w}),n.d(t,"preAuthorizeImplicit",function(){return _}),n.d(t,"authorizeOauth2",function(){return O}),n.d(t,"authorizePassword",function(){return C}),n.d(t,"authorizeApplication",function(){return j}),n.d(t,"authorizeAccessCodeWithFormParams",function(){return A}),n.d(t,"authorizeAccessCodeWithBasicAuthentication",function(){return k}),n.d(t,"authorizeRequest",function(){return P}),n.d(t,"configureAuth",function(){return I});var r=n(22),o=n.n(r),a=n(15),i=n.n(a),u=n(23),c=n.n(u),s=n(67),l=n.n(s),p=n(16),f=n.n(p),d=n(3),h="show_popup",m="authorize",v="logout",g="pre_authorize_oauth2",y="authorize_oauth2",b="validate",E="configure_auth";function S(e){return{type:h,payload:e}}function x(e){return{type:m,payload:e}}function w(e){return{type:v,payload:e}}var _=function(e){return function(t){var n=t.authActions,r=t.errActions,o=e.auth,a=e.token,i=e.isValid,u=o.schema,s=o.name,l=u.get("flow");delete f.a.swaggerUIRedirectOauth2,"accessCode"===l||i||r.newAuthErr({authId:s,source:"auth",level:"warning",message:"Authorization may be unsafe, passed state was changed in server Passed state wasn't returned from auth server"}),a.error?r.newAuthErr({authId:s,source:"auth",level:"error",message:c()(a)}):n.authorizeOauth2({auth:o,token:a})}};function O(e){return{type:y,payload:e}}var C=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.name,a=e.username,u=e.password,c=e.passwordType,s=e.clientId,l=e.clientSecret,p={grant_type:"password",scope:e.scopes.join(" "),username:a,password:u},f={};switch(c){case"request-body":!function(e,t,n){t&&i()(e,{client_id:t});n&&i()(e,{client_secret:n})}(p,s,l);break;case"basic":f.Authorization="Basic "+Object(d.a)(s+":"+l);break;default:console.warn("Warning: invalid passwordType ".concat(c," was passed, not including client id and secret"))}return n.authorizeRequest({body:Object(d.b)(p),url:r.get("tokenUrl"),name:o,headers:f,query:{},auth:e})}};var j=function(e){return function(t){var n=t.authActions,r=e.schema,o=e.scopes,a=e.name,i=e.clientId,u=e.clientSecret,c={Authorization:"Basic "+Object(d.a)(i+":"+u)},s={grant_type:"client_credentials",scope:o.join(" ")};return n.authorizeRequest({body:Object(d.b)(s),name:a,url:r.get("tokenUrl"),auth:e,headers:c})}},A=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,a=t.name,i=t.clientId,u=t.clientSecret,c=t.codeVerifier,s={grant_type:"authorization_code",code:t.code,client_id:i,client_secret:u,redirect_uri:n,code_verifier:c};return r.authorizeRequest({body:Object(d.b)(s),name:a,url:o.get("tokenUrl"),auth:t})}},k=function(e){var t=e.auth,n=e.redirectUrl;return function(e){var r=e.authActions,o=t.schema,a=t.name,i=t.clientId,u=t.clientSecret,c={Authorization:"Basic "+Object(d.a)(i+":"+u)},s={grant_type:"authorization_code",code:t.code,client_id:i,redirect_uri:n};return r.authorizeRequest({body:Object(d.b)(s),name:a,url:o.get("tokenUrl"),auth:t,headers:c})}},P=function(e){return function(t){var n,r=t.fn,a=t.getConfigs,u=t.authActions,s=t.errActions,p=t.oas3Selectors,f=t.specSelectors,d=t.authSelectors,h=e.body,m=e.query,v=void 0===m?{}:m,g=e.headers,y=void 0===g?{}:g,b=e.name,E=e.url,S=e.auth,x=(d.getConfigs()||{}).additionalQueryStringParams;n=f.isOAS3()?l()(E,p.selectedServer(),!0):l()(E,f.url(),!0),"object"===o()(x)&&(n.query=i()({},n.query,x));var w=n.toString(),_=i()({Accept:"application/json, text/plain, */*","Content-Type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},y);r.fetch({url:w,method:"post",headers:_,query:v,body:h,requestInterceptor:a().requestInterceptor,responseInterceptor:a().responseInterceptor}).then(function(e){var t=JSON.parse(e.data),n=t&&(t.error||""),r=t&&(t.parseError||"");e.ok?n||r?s.newAuthErr({authId:b,level:"error",source:"auth",message:c()(t)}):u.authorizeOauth2({auth:S,token:t}):s.newAuthErr({authId:b,level:"error",source:"auth",message:e.statusText})}).catch(function(e){var t=new Error(e).message;if(e.response&&e.response.data){var n=e.response.data;try{var r="string"==typeof n?JSON.parse(n):n;r.error&&(t+=", error: ".concat(r.error)),r.error_description&&(t+=", description: ".concat(r.error_description))}catch(e){}}s.newAuthErr({authId:b,level:"error",source:"auth",message:t})})}};function I(e){return{type:E,payload:e}}},function(e,t){var n=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=n)},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(87),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t,n){var r=n(148),o=n(147);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(36),o=n(93);e.exports=n(39)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){var r=n(428);e.exports=function(e){return null==e?"":r(e)}},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_LAYOUT",function(){return o}),n.d(t,"UPDATE_FILTER",function(){return a}),n.d(t,"UPDATE_MODE",function(){return i}),n.d(t,"SHOW",function(){return u}),n.d(t,"updateLayout",function(){return c}),n.d(t,"updateFilter",function(){return s}),n.d(t,"show",function(){return l}),n.d(t,"changeMode",function(){return p});var r=n(3),o="layout_update_layout",a="layout_update_filter",i="layout_update_mode",u="layout_show";function c(e){return{type:o,payload:e}}function s(e){return{type:a,payload:e}}function l(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=Object(r.w)(e),{type:u,payload:{thing:e,shown:t}}}function p(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";return e=Object(r.w)(e),{type:i,payload:{thing:e,mode:t}}}},function(e,t){e.exports=require("deep-extend")},function(e,t,n){var r=n(106),o=n(249);e.exports=n(86)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(75),o=n(429),a=n(430),i="[object Null]",u="[object Undefined]",c=r?r.toStringTag:void 0;e.exports=function(e){return null==e?void 0===e?u:i:c&&c in Object(e)?o(e):a(e)}},function(e,t,n){var r=n(447),o=n(450);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t){e.exports=function(e,t){return e===t||e!=e&&t!=t}},function(e,t){e.exports=require("url-parse")},function(e,t,n){"use strict";n.r(t),n.d(t,"default",function(){return i});var r=n(318),o=n.n(r),a=[n(188),n(189)];function i(e,t){var n={jsSpec:t.specSelectors.specJson().toJS()};return o()(a,function(e,t){try{return t.transform(e,n).filter(function(e){return!!e})}catch(t){return console.error("Transformer error:",t),e}},e).filter(function(e){return!!e}).map(function(e){return!e.get("line")&&e.get("path"),e})}},function(e,t,n){var r=n(30),o=n(61),a=n(107),i=n(136)("src"),u=n(336),c=(""+u).split("toString");n(53).inspectSource=function(e){return u.call(e)},(e.exports=function(e,t,n,u){var s="function"==typeof n;s&&(a(n,"name")||o(n,"name",t)),e[t]!==n&&(s&&(a(n,i)||o(n,i,e[t]?""+e[t]:c.join(String(t)))),e===r?e[t]=n:u?e[t]?e[t]=n:o(e,t,n):(delete e[t],o(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[i]||u.call(this)})},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(147);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(401)(!0);n(156)(String,"String",function(e){this._t=String(e),this._i=0},function(){var e,t=this._t,n=this._i;return n>=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})})},function(e,t){e.exports={}},function(e,t,n){var r=n(40).Symbol;e.exports=r},function(e,t,n){var r=n(284),o=n(487),a=n(96);e.exports=function(e){return a(e)?r(e):o(e)}},function(e,t,n){var r=n(120),o=1/0;e.exports=function(e){if("string"==typeof e||r(e))return e;var t=e+"";return"0"==t&&1/e==-o?"-0":t}},function(e,t){e.exports=require("serialize-error")},function(e,t,n){e.exports=n(424)},function(e,t,n){var r=n(176);e.exports=function(e,t,n){var o=null==e?void 0:r(e,t);return void 0===o?n:o}},function(e,t,n){"use strict";n.r(t),n.d(t,"sampleFromSchema",function(){return h}),n.d(t,"inferSchema",function(){return m}),n.d(t,"sampleXmlFromSchema",function(){return v}),n.d(t,"createXMLExample",function(){return g}),n.d(t,"memoizedCreateXMLExample",function(){return y}),n.d(t,"memoizedSampleFromSchema",function(){return b});var r=n(14),o=n.n(r),a=n(3),i=n(314),u=n.n(i),c=n(243),s=n.n(c),l=n(128),p=n.n(l),f={string:function(){return"string"},string_email:function(){return"user@example.com"},"string_date-time":function(){return(new Date).toISOString()},string_date:function(){return(new Date).toISOString().substring(0,10)},string_uuid:function(){return"3fa85f64-5717-4562-b3fc-2c963f66afa6"},string_hostname:function(){return"example.com"},string_ipv4:function(){return"198.51.100.42"},string_ipv6:function(){return"2001:0db8:5b96:0000:0000:426f:8e17:642a"},number:function(){return 0},number_float:function(){return 0},integer:function(){return 0},boolean:function(e){return"boolean"!=typeof e.default||e.default}},d=function(e){var t=e=Object(a.A)(e),n=t.type,r=t.format,o=f["".concat(n,"_").concat(r)]||f[n];return Object(a.s)(o)?o(e):"Unknown Type: "+e.type},h=function e(t){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=Object(a.A)(t),i=r.type,u=r.example,c=r.properties,s=r.additionalProperties,l=r.items,p=n.includeReadOnly,f=n.includeWriteOnly;if(void 0!==u)return Object(a.e)(u,"$$ref",function(e){return"string"==typeof e&&e.indexOf("#")>-1});if(!i)if(c)i="object";else{if(!l)return;i="array"}if("object"===i){var h=Object(a.A)(c),m={};for(var v in h)h[v]&&h[v].deprecated||h[v]&&h[v].readOnly&&!p||h[v]&&h[v].writeOnly&&!f||(m[v]=e(h[v],n));if(!0===s)m.additionalProp1={};else if(s)for(var g=Object(a.A)(s),y=e(g,n),b=1;b<4;b++)m["additionalProp"+b]=y;return m}return"array"===i?o()(l.anyOf)?l.anyOf.map(function(t){return e(t,n)}):o()(l.oneOf)?l.oneOf.map(function(t){return e(t,n)}):[e(l,n)]:t.enum?t.default?t.default:Object(a.w)(t.enum)[0]:"file"!==i?d(t):void 0},m=function(e){return e.schema&&(e=e.schema),e.properties&&(e.type="object"),e},v=function e(t){var n,r,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},u=p()({},Object(a.A)(t)),c=u.type,s=u.properties,l=u.additionalProperties,f=u.items,h=u.example,m=i.includeReadOnly,v=i.includeWriteOnly,g=u.default,y={},b={},E=t.xml,S=E.name,x=E.prefix,w=E.namespace,_=u.enum;if(!c)if(s||l)c="object";else{if(!f)return;c="array"}if(n=(x?x+":":"")+(S=S||"notagname"),w){var O=x?"xmlns:"+x:"xmlns";b[O]=w}if("array"===c&&f){if(f.xml=f.xml||E||{},f.xml.name=f.xml.name||E.name,E.wrapped)return y[n]=[],o()(h)?h.forEach(function(t){f.example=t,y[n].push(e(f,i))}):o()(g)?g.forEach(function(t){f.default=t,y[n].push(e(f,i))}):y[n]=[e(f,i)],b&&y[n].push({_attr:b}),y;var C=[];return o()(h)?(h.forEach(function(t){f.example=t,C.push(e(f,i))}),C):o()(g)?(g.forEach(function(t){f.default=t,C.push(e(f,i))}),C):e(f,i)}if("object"===c){var j=Object(a.A)(s);for(var A in y[n]=[],h=h||{},j)if(j.hasOwnProperty(A)&&(!j[A].readOnly||m)&&(!j[A].writeOnly||v))if(j[A].xml=j[A].xml||{},j[A].xml.attribute){var k=o()(j[A].enum)&&j[A].enum[0],P=j[A].example,I=j[A].default;b[j[A].xml.name||A]=void 0!==P&&P||void 0!==h[A]&&h[A]||void 0!==I&&I||k||d(j[A])}else{j[A].xml.name=j[A].xml.name||A,void 0===j[A].example&&void 0!==h[A]&&(j[A].example=h[A]);var T=e(j[A]);o()(T)?y[n]=y[n].concat(T):y[n].push(T)}return!0===l?y[n].push({additionalProp:"Anything can be here"}):l&&y[n].push({additionalProp:d(l)}),b&&y[n].push({_attr:b}),y}return r=void 0!==h?h:void 0!==g?g:o()(_)?_[0]:d(t),y[n]=b?[{_attr:b},r]:r,y};function g(e,t){var n=v(e,t);if(n)return u()(n,{declaration:!0,indent:"\t"})}var y=s()(g),b=s()(h)},function(e,t,n){e.exports=n(526)},function(e,t,n){"use strict";n.r(t),n.d(t,"UPDATE_CONFIGS",function(){return a}),n.d(t,"TOGGLE_CONFIGS",function(){return i}),n.d(t,"update",function(){return u}),n.d(t,"toggle",function(){return c}),n.d(t,"loaded",function(){return s});var r=n(2),o=n.n(r),a="configs_update",i="configs_toggle";function u(e,t){return{type:a,payload:o()({},e,t)}}function c(e){return{type:i,payload:e}}var s=function(){return function(){}}},function(e,t,n){"use strict";n.d(t,"a",function(){return i});var r=n(1),o=n.n(r),a=o.a.Set.of("type","format","items","default","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","maxItems","minItems","uniqueItems","enum","multipleOf");function i(e){var t=(arguments.length>1&&void 0!==arguments[1]?arguments[1]:{}).isOAS3;if(!o.a.Map.isMap(e))return{schema:o.a.Map(),parameterContentMediaType:null};if(!t)return"body"===e.get("in")?{schema:e.get("schema",o.a.Map()),parameterContentMediaType:null}:{schema:e.filter(function(e,t){return a.includes(t)}),parameterContentMediaType:null};if(e.get("content")){var n=e.get("content",o.a.Map({})).keySeq().first();return{schema:e.getIn(["content",n,"schema"],o.a.Map()),parameterContentMediaType:n}}return{schema:e.get("schema",o.a.Map()),parameterContentMediaType:null}}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){e.exports=!n(71)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t){e.exports={}},function(e,t,n){var r=n(261),o=n(152);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t){e.exports=!0},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(36).f,o=n(62),a=n(28)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t,n){n(403);for(var r=n(27),o=n(57),a=n(74),i=n(28)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;cb;b++)if((v=t?y(i(h=e[b])[0],h[1]):y(e[b]))===s||v===l)return v}else for(m=g.call(e);!(h=m.next()).done;)if((v=o(m,y,h.value,t))===s||v===l)return v}).BREAK=s,t.RETURN=l},function(e,t,n){var r=n(181),o=n(301);e.exports=function(e,t,n,a){var i=!n;n||(n={});for(var u=-1,c=t.length;++u5&&void 0!==arguments[5]?arguments[5]:{};if("string"!=typeof r)throw new TypeError("Need a string, to fetch a component. Was given a "+o()(r));var u=n(r);return u?a?"root"===a?A(e,u,t()):A(e,N(u)):N(u):(i.failSilently||e().log.warn("Could not find component:",r),null)}},function(e,t,n){"use strict";n.r(t),n.d(t,"setHash",function(){return r});var r=function(e){return e?history.pushState(null,null,"#".concat(e)):window.location.hash=""}},function(e,t){e.exports=require("redux")},function(e,t,n){e.exports=n(544)},function(e,t,n){var r=n(85),o=n(26)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,i;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?n:a?r(t):"Object"==(i=r(t))&&"function"==typeof t.callee?"Arguments":i}},function(e,t,n){var r=n(35),o=n(334),a=n(335),i=Object.defineProperty;t.f=n(86)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),o)try{return i(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(109);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(341),o=n(54);e.exports=function(e){return r(o(e))}},function(e,t,n){"use strict";var r=n(105),o=RegExp.prototype.exec;e.exports=function(e,t){var n=e.exec;if("function"==typeof n){var a=n.call(e,t);if("object"!=typeof a)throw new TypeError("RegExp exec method returned something other than an Object or null");return a}if("RegExp"!==r(e))throw new TypeError("RegExp#exec called on incompatible receiver");return o.call(e,t)}},function(e,t,n){"use strict";n(388);var r=n(69),o=n(61),a=n(71),i=n(54),u=n(26),c=n(146),s=u("species"),l=!a(function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$")}),p=function(){var e=/(?:)/,t=e.exec;e.exec=function(){return t.apply(this,arguments)};var n="ab".split(e);return 2===n.length&&"a"===n[0]&&"b"===n[1]}();e.exports=function(e,t,n){var f=u(e),d=!a(function(){var t={};return t[f]=function(){return 7},7!=""[e](t)}),h=d?!a(function(){var t=!1,n=/a/;return n.exec=function(){return t=!0,null},"split"===e&&(n.constructor={},n.constructor[s]=function(){return n}),n[f](""),!t}):void 0;if(!d||!h||"replace"===e&&!l||"split"===e&&!p){var m=/./[f],v=n(i,f,""[e],function(e,t,n,r,o){return t.exec===c?d&&!o?{done:!0,value:m.call(t,n,r)}:{done:!0,value:e.call(n,t,r)}:{done:!1}}),g=v[0],y=v[1];r(String.prototype,e,g),o(RegExp.prototype,f,2==t?function(e,t){return y.call(e,this,t)}:function(e){return y.call(e,this)})}}},function(e,t,n){var r=n(149),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){var r=n(37),o=n(264),a=n(152),i=n(150)("IE_PROTO"),u=function(){},c=function(){var e,t=n(154)("iframe"),r=a.length;for(t.style.display="none",n(265).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" + +``` + +See [unpkg's main page](https://unpkg.com/) for more information on how to use unpkg. + +### Static files without HTTP or HTML + +Once swagger-ui has successfully generated the `/dist` directory, you can copy this to your own file system and host from there. \ No newline at end of file diff --git a/docs/usage/limitations.md b/docs/usage/limitations.md new file mode 100644 index 00000000000..9eed49815c5 --- /dev/null +++ b/docs/usage/limitations.md @@ -0,0 +1,38 @@ +# Limitations + +### Forbidden header names + +Some header names cannot be controlled by web applications, due to security +features built into web browsers. + +Forbidden headers include: + +> - Accept-Charset +> - Accept-Encoding +> - Access-Control-Request-Headers +> - Access-Control-Request-Method +> - Connection +> - Content-Length +> - Cookie +> - Cookie2 +> - Date +> - DNT +> - Expect +> - Host +> - Keep-Alive +> - Origin +> - Proxy-* +> - Sec-* +> - Referer +> - TE +> - Trailer +> - Transfer-Encoding +> - Upgrade +> - Via +> +> _[Forbidden header names (developer.mozilla.org)](https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name)_ + +The biggest impact of this is that OpenAPI 3.0 Cookie parameters cannot be +controlled when running Swagger UI in a browser. + +For more context, see [#3956](https://github.com/swagger-api/swagger-ui/issues/3956). diff --git a/docs/usage/oauth2.md b/docs/usage/oauth2.md new file mode 100644 index 00000000000..8bd8fbc60d6 --- /dev/null +++ b/docs/usage/oauth2.md @@ -0,0 +1,28 @@ +# OAuth 2.0 configuration +You can configure OAuth 2.0 authorization by calling the `initOAuth` method. + +Property name | Docker variable | Description +--- | --- | ------ +clientId | `OAUTH_CLIENT_ID` | Default clientId. MUST be a string +clientSecret | `OAUTH_CLIENT_SECRET` | **🚨 Never use this parameter in your production environment. It exposes cruicial security information. This feature is intended for dev/test environments only. 🚨**
      Default clientSecret. MUST be a string +realm | `OAUTH_REALM` |realm query parameter (for oauth1) added to `authorizationUrl` and `tokenUrl`. MUST be a string +appName | `OAUTH_APP_NAME` |application name, displayed in authorization popup. MUST be a string +scopeSeparator | `OAUTH_SCOPE_SEPARATOR` |scope separator for passing scopes, encoded before calling, default value is a space (encoded value `%20`). MUST be a string +additionalQueryStringParams | `OAUTH_ADDITIONAL_PARAMS` |Additional query parameters added to `authorizationUrl` and `tokenUrl`. MUST be an object +useBasicAuthenticationWithAccessCodeGrant | _Unavailable_ |Only activated for the `accessCode` flow. During the `authorization_code` request to the `tokenUrl`, pass the [Client Password](https://tools.ietf.org/html/rfc6749#section-2.3.1) using the HTTP Basic Authentication scheme (`Authorization` header with `Basic base64encode(client_id + client_secret)`). The default is `false` +usePkceWithAuthorizationCodeGrant | `OAUTH_USE_PKCE` | Only applies to `authorizatonCode` flows. [Proof Key for Code Exchange](https://tools.ietf.org/html/rfc7636) brings enhanced security for OAuth public clients. The default is `false` + +```javascript +const ui = SwaggerUI({...}) + +// Method can be called in any place after calling constructor SwaggerUIBundle +ui.initOAuth({ + clientId: "your-client-id", + clientSecret: "your-client-secret-if-required", + realm: "your-realms", + appName: "your-app-name", + scopeSeparator: " ", + additionalQueryStringParams: {test: "hello"}, + usePkceWithAuthorizationCodeGrant: true + }) +``` diff --git a/docs/usage/version-detection.md b/docs/usage/version-detection.md new file mode 100644 index 00000000000..82a702f3dc6 --- /dev/null +++ b/docs/usage/version-detection.md @@ -0,0 +1,54 @@ +# Detecting your Swagger UI version + +At times, you're going to need to know which version of Swagger UI you use. + +The first step would be to detect which major version you currently use, as the method of detecting the version has changed. If your Swagger UI has been heavily modified and you cannot detect from the look and feel which major version you use, you'd have to try both methods to get the exact version. + +To help you visually detect which version you're using, we've included supporting images. + + +# Swagger UI 3.x + +![Swagger UI 3](/docs/images/swagger-ui3.png) + +Some distinct identifiers to Swagger UI 3.x: +- The API version appears as a badge next to its title. +- If there are schemes or authorizations, they'd appear in a bar above the operations. +- Try it out functionality is not enabled by default. +- All the response codes in the operations appear at after the parameters. +- There's a models section after the operations. + +If you've determined this is the version you have, to find the exact version: +- Open your browser's web console (changes between browsers) +- Type `JSON.stringify(versions)` in the console and execute the call. +- The result should look similar to `swaggerUi : Object { version: "3.1.6", gitRevision: "g786cd47", gitDirty: true, … }`. +- The version taken from that example would be `3.1.6`. + +Note: This functionality was added in 3.0.8. If you're unable to execute it, you're likely to use an older version, and in that case the first step would be to upgrade. + + +# Swagger UI 2.x and under + +![Swagger UI 2](/docs/images/swagger-ui2.png) + +Some distinct identifiers to Swagger UI 3.x: +- The API version appears at the bottom of the page. +- Schemes are not rendered. +- Authorization, if rendered, will appear next to the navigation bar. +- Try it out functionality is enabled by default. +- The successful response code would appear above the parameters, the rest below them. +- There's no models section after the operations. + +If you've determined this is the version you have, to find the exact version: +- Navigate to the sources of the UI. Either on your disk or via the view page source functionality in your browser. +- Find an open the `swagger-ui.js` +- At the top of the page, there would be a comment containing the exact version of Swagger UI. This example shows version `2.2.9`: + +``` +/** + * swagger-ui - Swagger UI is a dependency-free collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API + * @version v2.2.9 + * @link http://swagger.io + * @license Apache-2.0 + */ + ``` diff --git a/flavors/swagger-ui-react/README.md b/flavors/swagger-ui-react/README.md new file mode 100644 index 00000000000..8a026e9f12d --- /dev/null +++ b/flavors/swagger-ui-react/README.md @@ -0,0 +1,108 @@ +# `swagger-ui-react` + +[![NPM version](https://badge.fury.io/js/swagger-ui-react.svg)](http://badge.fury.io/js/swagger-ui-react) + +`swagger-ui-react` is a flavor of Swagger UI suitable for use in React applications. + +It has a few differences from the main version of Swagger UI: +* Declares `react` and `react-dom` as peerDependencies instead of production dependencies +* Exports a component instead of a constructor function + +Versions of this module mirror the version of Swagger UI included in the distribution. + +## Quick start + +Install `swagger-ui-react`: + +``` +$ npm i --save swagger-ui-react +``` + +Use it in your React application: + +```js +import SwaggerUI from "swagger-ui-react" +import "swagger-ui-react/swagger-ui.css" + +export default App = () => +``` + +## Props + +These props map to [Swagger UI configuration options](https://github.com/swagger-api/swagger-ui/blob/master/docs/usage/configuration.md) of the same name. + +#### `spec`: PropTypes.object + +An OpenAPI document respresented as a JavaScript object, JSON string, or YAML string for Swagger UI to display. + +⚠️ Don't use this in conjunction with `url` - unpredictable behavior may occur. + +#### `url`: PropTypes.string + +Remote URL to an OpenAPI document that Swagger UI will fetch, parse, and display. + +⚠️ Don't use this in conjunction with `spec` - unpredictable behavior may occur. + +#### `onComplete`: PropTypes.func + +> `(system) => void` + +A callback function that is triggered when Swagger-UI finishes rendering an OpenAPI document. + +Swagger UI's `system` object is passed as an argument. + +#### `requestInterceptor`: PropTypes.func + +> `req => req` or `req => Promise`. + +A function that accepts a request object, and returns either a request object +or a Promise that resolves to a request object. + +#### `responseInterceptor`: PropTypes.func + +> `res => res` or `res => Promise`. + +A function that accepts a response object, and returns either a response object +or a Promise that resolves to a response object. + +#### `docExpansion`: PropTypes.oneOf(['list', 'full', 'none']) + +Controls the default expansion setting for the operations and tags. It can be 'list' (expands only the tags), 'full' (expands the tags and operations) or 'none' (expands nothing). The default value is 'list'. + +⚠️ This prop is currently only applied once, on mount. Changes to this prop's value will not be propagated to the underlying Swagger UI instance. A future version of this module will remove this limitation, and the change will not be considered a breaking change. + +#### `defaultModelExpandDepth`: PropTypes.number + +The default expansion depth for models (set to -1 completely hide the models). + +⚠️ This prop is currently only applied once, on mount. Changes to this prop's value will not be propagated to the underlying Swagger UI instance. A future version of this module will remove this limitation, and the change will not be considered a breaking change. + +#### `plugins`: PropTypes.arrayOf(PropTypes.object), + +An array of objects that augment and modify Swagger UI's functionality. See Swagger UI's [Plugin API](https://github.com/swagger-api/swagger-ui/blob/master/docs/customization/plugin-api.md) for more details. + +⚠️ This prop is currently only applied once, on mount. Changes to this prop's value will not be propagated to the underlying Swagger UI instance. A future version of this module will remove this limitation, and the change will not be considered a breaking change. + +#### `supportedSubmitMethods`: PropTypes.arrayOf(PropTypes.oneOf(['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace'])) + +HTTP methods that have the Try it out feature enabled. An empty array disables Try it out for all operations. This does not filter the operations from the display. + +⚠️ This prop is currently only applied once, on mount. Changes to this prop's value will not be propagated to the underlying Swagger UI instance. A future version of this module will remove this limitation, and the change will not be considered a breaking change. + +## Limitations + +* Not all configuration bindings are available. +* Some props are only applied on mount, and cannot be updated reliably. +* OAuth redirection handling is not supported. +* Topbar/Standalone mode is not supported. +* Custom plugins are not supported. + +We intend to address these limitations based on user demand, so please open an issue or pull request if you have a specific request. + +## Notes + +* The `package.json` in the same folder as this README is _not_ the manifest that should be used for releases - another manifest is generated at build-time and can be found in `./dist/`. + +--- + +For anything else, check the [Swagger-UI](https://github.com/swagger-api/swagger-ui) repository. diff --git a/flavors/swagger-ui-react/dist/.npmrc b/flavors/swagger-ui-react/dist/.npmrc new file mode 100644 index 00000000000..ae643592e76 --- /dev/null +++ b/flavors/swagger-ui-react/dist/.npmrc @@ -0,0 +1 @@ +//registry.npmjs.org/:_authToken=${NPM_TOKEN} diff --git a/flavors/swagger-ui-react/index.js b/flavors/swagger-ui-react/index.js new file mode 100644 index 00000000000..fd2ed1bde8f --- /dev/null +++ b/flavors/swagger-ui-react/index.js @@ -0,0 +1,93 @@ +import React from "react" +import PropTypes from "prop-types" +import swaggerUIConstructor from "./swagger-ui" + +export default class SwaggerUI extends React.Component { + constructor (props) { + super(props) + this.SwaggerUIComponent = null + this.system = null + } + + componentDidMount() { + const ui = swaggerUIConstructor({ + plugins: this.props.plugins, + spec: this.props.spec, + url: this.props.url, + requestInterceptor: this.requestInterceptor, + responseInterceptor: this.responseInterceptor, + onComplete: this.onComplete, + docExpansion: this.props.docExpansion, + supportedSubmitMethods: this.props.supportedSubmitMethods, + defaultModelExpandDepth: this.props.defaultModelExpandDepth, + }) + + this.system = ui + this.SwaggerUIComponent = ui.getComponent("App", "root") + + this.forceUpdate() + } + + render() { + return this.SwaggerUIComponent ? : null + } + + componentDidUpdate(prevProps) { + if(this.props.url !== prevProps.url) { + // flush current content + this.system.specActions.updateSpec("") + + if(this.props.url) { + // update the internal URL + this.system.specActions.updateUrl(this.props.url) + // trigger remote definition fetch + this.system.specActions.download(this.props.url) + } + } + + if(this.props.spec !== prevProps.spec && this.props.spec) { + if(typeof this.props.spec === "object") { + this.system.specActions.updateSpec(JSON.stringify(this.props.spec)) + } else { + this.system.specActions.updateSpec(this.props.spec) + } + } + } + + requestInterceptor = (req) => { + if (typeof this.props.requestInterceptor === "function") { + return this.props.requestInterceptor(req) + } + return req + } + + responseInterceptor = (res) => { + if (typeof this.props.responseInterceptor === "function") { + return this.props.responseInterceptor(res) + } + return res + } + + onComplete = () => { + if (typeof this.props.onComplete === "function") { + return this.props.onComplete(this.system) + } + } +} + +SwaggerUI.propTypes = { + spec: PropTypes.oneOf([ + PropTypes.string, + PropTypes.object, + ]), + url: PropTypes.string, + requestInterceptor: PropTypes.func, + responseInterceptor: PropTypes.func, + onComplete: PropTypes.func, + docExpansion: PropTypes.oneOf(['list', 'full', 'none']), + supportedSubmitMethods: PropTypes.arrayOf( + PropTypes.oneOf(['get', 'put', 'post', 'delete', 'options', 'head', 'patch', 'trace']) + ), + defaultModelExpandDepth: PropTypes.number, + plugins: PropTypes.arrayOf(PropTypes.object), +} diff --git a/flavors/swagger-ui-react/release/create-manifest.js b/flavors/swagger-ui-react/release/create-manifest.js new file mode 100644 index 00000000000..e7f196ee8ce --- /dev/null +++ b/flavors/swagger-ui-react/release/create-manifest.js @@ -0,0 +1,9 @@ +var jsonMerger = require("json-merger") +var fs = require("fs") +var result = jsonMerger.mergeFiles(["../../../package.json", "template.json"]) + +if(process.env.REACT_FLAVOR_VERSION_IDENTIFIER) { + result.version = process.env.REACT_FLAVOR_VERSION_IDENTIFIER +} + +process.stdout.write(JSON.stringify(result, null, 2)) diff --git a/flavors/swagger-ui-react/release/run.sh b/flavors/swagger-ui-react/release/run.sh new file mode 100755 index 00000000000..b711daafd7a --- /dev/null +++ b/flavors/swagger-ui-react/release/run.sh @@ -0,0 +1,31 @@ +# Deploy `swagger-ui-react` to npm. + +# https://www.peterbe.com/plog/set-ex +set -ex + +# Parameter Expansion: http://stackoverflow.com/questions/6393551/what-is-the-meaning-of-0-in-a-bash-script +cd "${0%/*}" + +mkdir -p ../dist + +# Copy UI's dist files to our directory +cp ../../../dist/swagger-ui.js ../dist +cp ../../../dist/swagger-ui.css ../dist + +# Create a releasable package manifest +node create-manifest.js > ../dist/package.json + +# Transpile our top-level component +../../../node_modules/.bin/babel --config-file ../../../.babelrc ../index.js > ../dist/index.js + +# Copy our README into the dist folder for npm +cp ../README.md ../dist + +# Run the release from the dist folder +cd ../dist + +if [ "$PUBLISH_FLAVOR_REACT" = "true" ] ; then + npm publish . +else + npm pack . +fi diff --git a/flavors/swagger-ui-react/release/template.json b/flavors/swagger-ui-react/release/template.json new file mode 100644 index 00000000000..822d906aad4 --- /dev/null +++ b/flavors/swagger-ui-react/release/template.json @@ -0,0 +1,45 @@ +{ + "dependencies": { + "react": { + "$remove": true + }, + "react-dom": { + "$remove": true + } + }, + "scripts": { + "$remove": true + }, + "devDependencies": { + "$remove": true + }, + "bundlesize": { + "$remove": true + }, + "nyc": { + "$remove": true + }, + "browserslist": { + "$remove": true + }, + "config": { + "$remove": true + }, + "name": "swagger-ui-react", + "main": "index.js", + "repository": "git@github.com:swagger-api/swagger-ui.git", + "contributors": [ + "(in alphabetical order)", + "Anna Bodnia ", + "Buu Nguyen ", + "Josh Ponelat ", + "Kyle Shockey ", + "Robert Barnwell ", + "Sahar Jafari " + ], + "license": "Apache-2.0", + "peerDependencies": { + "react": ">=15.6.2", + "react-dom": ">=15.6.2" + } +} \ No newline at end of file diff --git a/gulpfile.js b/gulpfile.js deleted file mode 100644 index a74cadcce87..00000000000 --- a/gulpfile.js +++ /dev/null @@ -1,169 +0,0 @@ -'use strict'; - -var gulp = require('gulp'); -var es = require('event-stream'); -var clean = require('gulp-clean'); -var concat = require('gulp-concat'); -var uglify = require('gulp-uglify'); -var rename = require('gulp-rename'); -var less = require('gulp-less'); -var wrap = require('gulp-wrap'); -var watch = require('gulp-watch'); -var connect = require('gulp-connect'); -var header = require('gulp-header'); -var order = require('gulp-order'); -var jshint = require('gulp-jshint'); -var pkg = require('./package.json'); - -var banner = ['/**', - ' * <%= pkg.name %> - <%= pkg.description %>', - ' * @version v<%= pkg.version %>', - ' * @link <%= pkg.homepage %>', - ' * @license <%= pkg.license %>', - ' */', - ''].join('\n'); - -/** - * Clean ups ./dist folder - */ -gulp.task('clean', function() { - return gulp - .src('./dist', {read: false}) - .pipe(clean({force: true})) - .on('error', log); -}); - -/** - * JShint all *.js files - */ -gulp.task('lint', function () { - return gulp.src('./src/main/javascript/**/*.js') - .pipe(jshint()) - .pipe(jshint.reporter('jshint-stylish')); -}); - -/** - * Build a distribution - */ -gulp.task('dist', ['clean', 'lint'], _dist); -function _dist() { - return es.merge( - gulp.src([ - './node_modules/es5-shim/es5-shim.js', - './lib/sanitize-html.min.js', - './src/main/javascript/**/*.js', - './node_modules/swagger-client/browser/swagger-client.js' - ]), - gulp - .src(['./src/main/template/templates.js']) - .on('error', log) - ) - .pipe(order(['scripts.js', 'templates.js'])) - .pipe(concat('swagger-ui.js')) - .pipe(wrap('(function(){<%= contents %>}).call(this);')) - .pipe(header(banner, { pkg: pkg })) - .pipe(gulp.dest('./dist')) - .pipe(uglify()) - .on('error', log) - .pipe(rename({extname: '.min.js'})) - .on('error', log) - .pipe(gulp.dest('./dist')) - .pipe(connect.reload()); -} -gulp.task('dev-dist', ['lint', 'dev-copy'], _dist); - -/** - * Processes less files into CSS files - */ -gulp.task('less', ['clean'], _less); -function _less() { - return gulp - .src([ - './src/main/less/screen.less', - './src/main/less/print.less', - './src/main/less/reset.less', - './src/main/less/style.less' - ]) - .pipe(less()) - .on('error', function(err){ log(err); this.emit('end');}) - .pipe(gulp.dest('./src/main/html/css/')) - .pipe(connect.reload()); -} -gulp.task('dev-less', _less); - -/** - * Copy lib and html folders - */ -gulp.task('copy', ['less'], _copy); -function _copy() { - // copy JavaScript files inside lib folder - gulp - .src(['./lib/**/*.{js,map}', - './node_modules/es5-shim/es5-shim.js' - ]) - .pipe(gulp.dest('./dist/lib')) - .on('error', log); - - // copy `lang` for translations - gulp - .src(['./lang/**/*.js']) - .pipe(gulp.dest('./dist/lang')) - .on('error', log); - - // copy all files inside html folder - gulp - .src(['./src/main/html/**/*']) - .pipe(gulp.dest('./dist')) - .on('error', log); -} -gulp.task('dev-copy', ['dev-less', 'copy-local-specs'], _copy); - -gulp.task('copy-local-specs', function () { - // copy the test specs - return gulp - .src(['./test/specs/**/*']) - .pipe(gulp.dest('./dist/specs')) - .on('error', log); -}); - -/** - * Watch for changes and recompile - */ -gulp.task('watch', ['copy-local-specs'], function() { - return watch([ - './src/**/*.{js,less,handlebars}', - './src/main/html/*.html', - './test/specs/**/*.{json,yaml}' - ], - function() { - gulp.start('dev-dist'); - }); -}); - -/** - * Live reload web server of `dist` - */ -gulp.task('connect', function() { - connect.server({ - root: 'dist', - livereload: true - }); -}); - -function log(error) { - console.error(error.toString && error.toString()); -} - -gulp.task('handlebars', function () { - gulp - .src(['./src/main/template/templates.js']) - .pipe(wrap('/* jshint ignore:start */ \n {<%= contents %>} \n /* jshint ignore:end */')) - .pipe(gulp.dest('./src/main/template/')) - .on('error', log); -}); - -gulp.task('default', ['dist', 'copy']); -gulp.task('serve', ['connect', 'watch']); -gulp.task('dev', ['default'], function () { - gulp.start('serve'); -}); diff --git a/index.js b/index.js deleted file mode 100644 index 278a379a473..00000000000 --- a/index.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var pack = require('./package'); -var path = require('path'); - -module.exports = { - version: pack.version, - dist: path.resolve(__dirname, 'dist') -}; diff --git a/karma.conf.js b/karma.conf.js deleted file mode 100644 index b0c3b5c4d8a..00000000000 --- a/karma.conf.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -module.exports = function(config) { - config.set({ - frameworks: [ 'mocha', 'sinon-chai' ], - - 'plugins' : [ - 'karma-mocha', - 'karma-sinon-chai', - 'karma-phantomjs-launcher' - ], - - files: [ - 'dist/lib/jquery-1.8.0.min.js', - 'dist/lib/jquery.slideto.min.js', - 'dist/lib/jquery.wiggle.min.js', - 'dist/lib/jquery.ba-bbq.min.js', - 'dist/lib/handlebars-2.0.0.js', - 'dist/lib/js-yaml.min.js', - 'dist/lib/lodash.min.js', - 'dist/lib/backbone-min.js', - 'dist/swagger-ui.js', - 'dist/lib/highlight.9.1.0.pack.js', - 'dist/lib/highlight.9.1.0.pack_extended.js', - 'dist/lib/jsoneditor.min.js', - 'dist/lib/marked.js', - 'dist/lib/swagger-oauth.js', - 'test/unit/mock.js', - 'test/unit/**/*.js' - ], - - //singleRun: true, - - browsers: [ 'PhantomJS'/*, 'Chrome' */] - }); -}; diff --git a/lang/ca.js b/lang/ca.js deleted file mode 100644 index f8c815aa92c..00000000000 --- a/lang/ca.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Advertència: Obsolet", - "Implementation Notes":"Notes d'implementació", - "Response Class":"Classe de la Resposta", - "Status":"Estatus", - "Parameters":"Paràmetres", - "Parameter":"Paràmetre", - "Value":"Valor", - "Description":"Descripció", - "Parameter Type":"Tipus del Paràmetre", - "Data Type":"Tipus de la Dada", - "Response Messages":"Missatges de la Resposta", - "HTTP Status Code":"Codi d'Estatus HTTP", - "Reason":"Raó", - "Response Model":"Model de la Resposta", - "Request URL":"URL de la Sol·licitud", - "Response Body":"Cos de la Resposta", - "Response Code":"Codi de la Resposta", - "Response Headers":"Capçaleres de la Resposta", - "Hide Response":"Amagar Resposta", - "Try it out!":"Prova-ho!", - "Show/Hide":"Mostrar/Amagar", - "List Operations":"Llista Operacions", - "Expand Operations":"Expandir Operacions", - "Raw":"Cru", - "can't parse JSON. Raw result":"no puc analitzar el JSON. Resultat cru", - "Example Value":"Valor d'Exemple", - "Model Schema":"Esquema del Model", - "Model":"Model", - "apply":"aplicar", - "Username":"Nom d'usuari", - "Password":"Contrasenya", - "Terms of service":"Termes del servei", - "Created by":"Creat per", - "See more at":"Veure més en", - "Contact the developer":"Contactar amb el desenvolupador", - "api version":"versió de la api", - "Response Content Type":"Tipus de Contingut de la Resposta", - "fetching resource":"recollint recurs", - "fetching resource list":"recollins llista de recursos", - "Explore":"Explorant", - "Show Swagger Petstore Example Apis":"Mostrar API d'Exemple Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"No es pot llegir del servidor. Potser no teniu la configuració de control d'accés apropiada.", - "Please specify the protocol for":"Si us plau, especifiqueu el protocol per a", - "Can't read swagger JSON from":"No es pot llegir el JSON de swagger des de", - "Finished Loading Resource Information. Rendering Swagger UI":"Finalitzada la càrrega del recurs informatiu. Renderitzant Swagger UI", - "Unable to read api":"No es pot llegir l'api", - "from path":"des de la ruta", - "server returned":"el servidor ha retornat" -}); diff --git a/lang/en.js b/lang/en.js deleted file mode 100644 index 918313665db..00000000000 --- a/lang/en.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Warning: Deprecated", - "Implementation Notes":"Implementation Notes", - "Response Class":"Response Class", - "Status":"Status", - "Parameters":"Parameters", - "Parameter":"Parameter", - "Value":"Value", - "Description":"Description", - "Parameter Type":"Parameter Type", - "Data Type":"Data Type", - "Response Messages":"Response Messages", - "HTTP Status Code":"HTTP Status Code", - "Reason":"Reason", - "Response Model":"Response Model", - "Request URL":"Request URL", - "Response Body":"Response Body", - "Response Code":"Response Code", - "Response Headers":"Response Headers", - "Hide Response":"Hide Response", - "Headers":"Headers", - "Try it out!":"Try it out!", - "Show/Hide":"Show/Hide", - "List Operations":"List Operations", - "Expand Operations":"Expand Operations", - "Raw":"Raw", - "can't parse JSON. Raw result":"can't parse JSON. Raw result", - "Example Value":"Example Value", - "Model Schema":"Model Schema", - "Model":"Model", - "Click to set as parameter value":"Click to set as parameter value", - "apply":"apply", - "Username":"Username", - "Password":"Password", - "Terms of service":"Terms of service", - "Created by":"Created by", - "See more at":"See more at", - "Contact the developer":"Contact the developer", - "api version":"api version", - "Response Content Type":"Response Content Type", - "Parameter content type:":"Parameter content type:", - "fetching resource":"fetching resource", - "fetching resource list":"fetching resource list", - "Explore":"Explore", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", - "Please specify the protocol for":"Please specify the protocol for", - "Can't read swagger JSON from":"Can't read swagger JSON from", - "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", - "Unable to read api":"Unable to read api", - "from path":"from path", - "server returned":"server returned" -}); diff --git a/lang/es.js b/lang/es.js deleted file mode 100644 index 13fa015e6df..00000000000 --- a/lang/es.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Advertencia: Obsoleto", - "Implementation Notes":"Notas de implementación", - "Response Class":"Clase de la Respuesta", - "Status":"Status", - "Parameters":"Parámetros", - "Parameter":"Parámetro", - "Value":"Valor", - "Description":"Descripción", - "Parameter Type":"Tipo del Parámetro", - "Data Type":"Tipo del Dato", - "Response Messages":"Mensajes de la Respuesta", - "HTTP Status Code":"Código de Status HTTP", - "Reason":"Razón", - "Response Model":"Modelo de la Respuesta", - "Request URL":"URL de la Solicitud", - "Response Body":"Cuerpo de la Respuesta", - "Response Code":"Código de la Respuesta", - "Response Headers":"Encabezados de la Respuesta", - "Hide Response":"Ocultar Respuesta", - "Try it out!":"Pruébalo!", - "Show/Hide":"Mostrar/Ocultar", - "List Operations":"Listar Operaciones", - "Expand Operations":"Expandir Operaciones", - "Raw":"Crudo", - "can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo", - "Example Value":"Valor de Ejemplo", - "Model Schema":"Esquema del Modelo", - "Model":"Modelo", - "apply":"aplicar", - "Username":"Nombre de usuario", - "Password":"Contraseña", - "Terms of service":"Términos de Servicio", - "Created by":"Creado por", - "See more at":"Ver más en", - "Contact the developer":"Contactar al desarrollador", - "api version":"versión de la api", - "Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta", - "fetching resource":"buscando recurso", - "fetching resource list":"buscando lista del recurso", - "Explore":"Explorar", - "Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.", - "Please specify the protocol for":"Por favor, especificar el protocola para", - "Can't read swagger JSON from":"No se puede leer el JSON de swagger desde", - "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI", - "Unable to read api":"No se puede leer la api", - "from path":"desde ruta", - "server returned":"el servidor retornó" -}); diff --git a/lang/fr.js b/lang/fr.js deleted file mode 100644 index 388dff14bac..00000000000 --- a/lang/fr.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Avertissement : Obsolète", - "Implementation Notes":"Notes d'implémentation", - "Response Class":"Classe de la réponse", - "Status":"Statut", - "Parameters":"Paramètres", - "Parameter":"Paramètre", - "Value":"Valeur", - "Description":"Description", - "Parameter Type":"Type du paramètre", - "Data Type":"Type de données", - "Response Messages":"Messages de la réponse", - "HTTP Status Code":"Code de statut HTTP", - "Reason":"Raison", - "Response Model":"Modèle de réponse", - "Request URL":"URL appelée", - "Response Body":"Corps de la réponse", - "Response Code":"Code de la réponse", - "Response Headers":"En-têtes de la réponse", - "Hide Response":"Cacher la réponse", - "Headers":"En-têtes", - "Try it out!":"Testez !", - "Show/Hide":"Afficher/Masquer", - "List Operations":"Liste des opérations", - "Expand Operations":"Développer les opérations", - "Raw":"Brut", - "can't parse JSON. Raw result":"impossible de décoder le JSON. Résultat brut", - "Example Value":"Exemple la valeur", - "Model Schema":"Définition du modèle", - "Model":"Modèle", - "apply":"appliquer", - "Username":"Nom d'utilisateur", - "Password":"Mot de passe", - "Terms of service":"Conditions de service", - "Created by":"Créé par", - "See more at":"Voir plus sur", - "Contact the developer":"Contacter le développeur", - "api version":"version de l'api", - "Response Content Type":"Content Type de la réponse", - "fetching resource":"récupération de la ressource", - "fetching resource list":"récupération de la liste de ressources", - "Explore":"Explorer", - "Show Swagger Petstore Example Apis":"Montrer les Apis de l'exemple Petstore de Swagger", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Impossible de lire à partir du serveur. Il se peut que les réglages access-control-origin ne soient pas appropriés.", - "Please specify the protocol for":"Veuillez spécifier un protocole pour", - "Can't read swagger JSON from":"Impossible de lire le JSON swagger à partir de", - "Finished Loading Resource Information. Rendering Swagger UI":"Chargement des informations terminé. Affichage de Swagger UI", - "Unable to read api":"Impossible de lire l'api", - "from path":"à partir du chemin", - "server returned":"réponse du serveur" -}); diff --git a/lang/geo.js b/lang/geo.js deleted file mode 100644 index 609c20d9c86..00000000000 --- a/lang/geo.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"ყურადღება: აღარ გამოიყენება", - "Implementation Notes":"იმპლემენტაციის აღწერა", - "Response Class":"რესპონს კლასი", - "Status":"სტატუსი", - "Parameters":"პარამეტრები", - "Parameter":"პარამეტრი", - "Value":"მნიშვნელობა", - "Description":"აღწერა", - "Parameter Type":"პარამეტრის ტიპი", - "Data Type":"მონაცემის ტიპი", - "Response Messages":"პასუხი", - "HTTP Status Code":"HTTP სტატუსი", - "Reason":"მიზეზი", - "Response Model":"რესპონს მოდელი", - "Request URL":"მოთხოვნის URL", - "Response Body":"პასუხის სხეული", - "Response Code":"პასუხის კოდი", - "Response Headers":"პასუხის ჰედერები", - "Hide Response":"დამალე პასუხი", - "Headers":"ჰედერები", - "Try it out!":"ცადე !", - "Show/Hide":"გამოჩენა/დამალვა", - "List Operations":"ოპერაციების სია", - "Expand Operations":"ოპერაციები ვრცლად", - "Raw":"ნედლი", - "can't parse JSON. Raw result":"JSON-ის დამუშავება ვერ მოხერხდა. ნედლი პასუხი", - "Example Value":"მაგალითი", - "Model Schema":"მოდელის სტრუქტურა", - "Model":"მოდელი", - "Click to set as parameter value":"პარამეტრისთვის მნიშვნელობის მისანიჭებლად, დააკლიკე", - "apply":"გამოყენება", - "Username":"მოხმარებელი", - "Password":"პაროლი", - "Terms of service":"მომსახურების პირობები", - "Created by":"შექმნა", - "See more at":"ნახე ვრცლად", - "Contact the developer":"დაუკავშირდი დეველოპერს", - "api version":"api ვერსია", - "Response Content Type":"პასუხის კონტენტის ტიპი", - "Parameter content type:":"პარამეტრის კონტენტის ტიპი:", - "fetching resource":"რესურსების მიღება", - "fetching resource list":"რესურსების სიის მიღება", - "Explore":"ნახვა", - "Show Swagger Petstore Example Apis":"ნახე Swagger Petstore სამაგალითო Api", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"სერვერთან დაკავშირება ვერ ხერხდება. შეამოწმეთ access-control-origin.", - "Please specify the protocol for":"მიუთითეთ პროტოკოლი", - "Can't read swagger JSON from":"swagger JSON წაკითხვა ვერ მოხერხდა", - "Finished Loading Resource Information. Rendering Swagger UI":"რესურსების ჩატვირთვა სრულდება. Swagger UI რენდერდება", - "Unable to read api":"api წაკითხვა ვერ მოხერხდა", - "from path":"მისამართიდან", - "server returned":"სერვერმა დააბრუნა" -}); diff --git a/lang/it.js b/lang/it.js deleted file mode 100644 index 8529c2a90bc..00000000000 --- a/lang/it.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Attenzione: Deprecato", - "Implementation Notes":"Note di implementazione", - "Response Class":"Classe della risposta", - "Status":"Stato", - "Parameters":"Parametri", - "Parameter":"Parametro", - "Value":"Valore", - "Description":"Descrizione", - "Parameter Type":"Tipo di parametro", - "Data Type":"Tipo di dato", - "Response Messages":"Messaggi della risposta", - "HTTP Status Code":"Codice stato HTTP", - "Reason":"Motivo", - "Response Model":"Modello di risposta", - "Request URL":"URL della richiesta", - "Response Body":"Corpo della risposta", - "Response Code":"Oggetto della risposta", - "Response Headers":"Intestazioni della risposta", - "Hide Response":"Nascondi risposta", - "Try it out!":"Provalo!", - "Show/Hide":"Mostra/Nascondi", - "List Operations":"Mostra operazioni", - "Expand Operations":"Espandi operazioni", - "Raw":"Grezzo (raw)", - "can't parse JSON. Raw result":"non è possibile parsare il JSON. Risultato grezzo (raw).", - "Model Schema":"Schema del modello", - "Model":"Modello", - "apply":"applica", - "Username":"Nome utente", - "Password":"Password", - "Terms of service":"Condizioni del servizio", - "Created by":"Creato da", - "See more at":"Informazioni aggiuntive:", - "Contact the developer":"Contatta lo sviluppatore", - "api version":"versione api", - "Response Content Type":"Tipo di contenuto (content type) della risposta", - "fetching resource":"recuperando la risorsa", - "fetching resource list":"recuperando lista risorse", - "Explore":"Esplora", - "Show Swagger Petstore Example Apis":"Mostra le api di esempio di Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Non è possibile leggere dal server. Potrebbe non avere le impostazioni di controllo accesso origine (access-control-origin) appropriate.", - "Please specify the protocol for":"Si prega di specificare il protocollo per", - "Can't read swagger JSON from":"Impossibile leggere JSON swagger da:", - "Finished Loading Resource Information. Rendering Swagger UI":"Lettura informazioni risorse termianta. Swagger UI viene mostrata", - "Unable to read api":"Impossibile leggere la api", - "from path":"da cartella", - "server returned":"il server ha restituito" -}); diff --git a/lang/ja.js b/lang/ja.js deleted file mode 100755 index 3207bfc0baf..00000000000 --- a/lang/ja.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"警告: 廃止予定", - "Implementation Notes":"実装メモ", - "Response Class":"レスポンスクラス", - "Status":"ステータス", - "Parameters":"パラメータ群", - "Parameter":"パラメータ", - "Value":"値", - "Description":"説明", - "Parameter Type":"パラメータタイプ", - "Data Type":"データタイプ", - "Response Messages":"レスポンスメッセージ", - "HTTP Status Code":"HTTPステータスコード", - "Reason":"理由", - "Response Model":"レスポンスモデル", - "Request URL":"リクエストURL", - "Response Body":"レスポンスボディ", - "Response Code":"レスポンスコード", - "Response Headers":"レスポンスヘッダ", - "Hide Response":"レスポンスを隠す", - "Headers":"ヘッダ", - "Try it out!":"実際に実行!", - "Show/Hide":"表示/非表示", - "List Operations":"操作一覧", - "Expand Operations":"操作の展開", - "Raw":"Raw", - "can't parse JSON. Raw result":"JSONへ解釈できません. 未加工の結果", - "Model Schema":"モデルスキーマ", - "Model":"モデル", - "apply":"実行", - "Username":"ユーザ名", - "Password":"パスワード", - "Terms of service":"サービス利用規約", - "Created by":"Created by", - "See more at":"See more at", - "Contact the developer":"開発者に連絡", - "api version":"APIバージョン", - "Response Content Type":"レスポンス コンテンツタイプ", - "fetching resource":"リソースの取得", - "fetching resource list":"リソース一覧の取得", - "Explore":"Explore", - "Show Swagger Petstore Example Apis":"SwaggerペットストアAPIの表示", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"サーバから読み込めません. 適切なaccess-control-origin設定を持っていない可能性があります.", - "Please specify the protocol for":"プロトコルを指定してください", - "Can't read swagger JSON from":"次からswagger JSONを読み込めません", - "Finished Loading Resource Information. Rendering Swagger UI":"リソース情報の読み込みが完了しました. Swagger UIを描画しています", - "Unable to read api":"APIを読み込めません", - "from path":"次のパスから", - "server returned":"サーバからの返答" -}); diff --git a/lang/ko-kr.js b/lang/ko-kr.js deleted file mode 100644 index 03c7626d7f9..00000000000 --- a/lang/ko-kr.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"경고:폐기예정됨", - "Implementation Notes":"구현 노트", - "Response Class":"응답 클래스", - "Status":"상태", - "Parameters":"매개변수들", - "Parameter":"매개변수", - "Value":"값", - "Description":"설명", - "Parameter Type":"매개변수 타입", - "Data Type":"데이터 타입", - "Response Messages":"응답 메세지", - "HTTP Status Code":"HTTP 상태 코드", - "Reason":"원인", - "Response Model":"응답 모델", - "Request URL":"요청 URL", - "Response Body":"응답 본문", - "Response Code":"응답 코드", - "Response Headers":"응답 헤더", - "Hide Response":"응답 숨기기", - "Headers":"헤더", - "Try it out!":"써보기!", - "Show/Hide":"보이기/숨기기", - "List Operations":"목록 작업", - "Expand Operations":"전개 작업", - "Raw":"원본", - "can't parse JSON. Raw result":"JSON을 파싱할수 없음. 원본결과:", - "Model Schema":"모델 스키마", - "Model":"모델", - "apply":"적용", - "Username":"사용자 이름", - "Password":"암호", - "Terms of service":"이용약관", - "Created by":"작성자", - "See more at":"추가정보:", - "Contact the developer":"개발자에게 문의", - "api version":"api버전", - "Response Content Type":"응답Content Type", - "fetching resource":"리소스 가져오기", - "fetching resource list":"리소스 목록 가져오기", - "Explore":"탐색", - "Show Swagger Petstore Example Apis":"Swagger Petstore 예제 보기", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"서버로부터 읽어들일수 없습니다. access-control-origin 설정이 올바르지 않을수 있습니다.", - "Please specify the protocol for":"다음을 위한 프로토콜을 정하세요", - "Can't read swagger JSON from":"swagger JSON 을 다음으로 부터 읽을수 없습니다", - "Finished Loading Resource Information. Rendering Swagger UI":"리소스 정보 불러오기 완료. Swagger UI 랜더링", - "Unable to read api":"api를 읽을 수 없습니다.", - "from path":"다음 경로로 부터", - "server returned":"서버 응답함." -}); diff --git a/lang/pl.js b/lang/pl.js deleted file mode 100644 index ce41e91799d..00000000000 --- a/lang/pl.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Uwaga: Wycofane", - "Implementation Notes":"Uwagi Implementacji", - "Response Class":"Klasa Odpowiedzi", - "Status":"Status", - "Parameters":"Parametry", - "Parameter":"Parametr", - "Value":"Wartość", - "Description":"Opis", - "Parameter Type":"Typ Parametru", - "Data Type":"Typ Danych", - "Response Messages":"Wiadomości Odpowiedzi", - "HTTP Status Code":"Kod Statusu HTTP", - "Reason":"Przyczyna", - "Response Model":"Model Odpowiedzi", - "Request URL":"URL Wywołania", - "Response Body":"Treść Odpowiedzi", - "Response Code":"Kod Odpowiedzi", - "Response Headers":"Nagłówki Odpowiedzi", - "Hide Response":"Ukryj Odpowiedź", - "Headers":"Nagłówki", - "Try it out!":"Wypróbuj!", - "Show/Hide":"Pokaż/Ukryj", - "List Operations":"Lista Operacji", - "Expand Operations":"Rozwiń Operacje", - "Raw":"Nieprzetworzone", - "can't parse JSON. Raw result":"nie można przetworzyć pliku JSON. Nieprzetworzone dane", - "Model Schema":"Schemat Modelu", - "Model":"Model", - "apply":"użyj", - "Username":"Nazwa użytkownika", - "Password":"Hasło", - "Terms of service":"Warunki używania", - "Created by":"Utworzone przez", - "See more at":"Zobacz więcej na", - "Contact the developer":"Kontakt z deweloperem", - "api version":"wersja api", - "Response Content Type":"Typ Zasobu Odpowiedzi", - "fetching resource":"ładowanie zasobu", - "fetching resource list":"ładowanie listy zasobów", - "Explore":"Eksploruj", - "Show Swagger Petstore Example Apis":"Pokaż Przykładowe Api Swagger Petstore", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Brak połączenia z serwerem. Może on nie mieć odpowiednich ustawień access-control-origin.", - "Please specify the protocol for":"Proszę podać protokół dla", - "Can't read swagger JSON from":"Nie można odczytać swagger JSON z", - "Finished Loading Resource Information. Rendering Swagger UI":"Ukończono Ładowanie Informacji o Zasobie. Renderowanie Swagger UI", - "Unable to read api":"Nie można odczytać api", - "from path":"ze ścieżki", - "server returned":"serwer zwrócił" -}); diff --git a/lang/pt.js b/lang/pt.js deleted file mode 100644 index f2e7c13d413..00000000000 --- a/lang/pt.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Aviso: Depreciado", - "Implementation Notes":"Notas de Implementação", - "Response Class":"Classe de resposta", - "Status":"Status", - "Parameters":"Parâmetros", - "Parameter":"Parâmetro", - "Value":"Valor", - "Description":"Descrição", - "Parameter Type":"Tipo de parâmetro", - "Data Type":"Tipo de dados", - "Response Messages":"Mensagens de resposta", - "HTTP Status Code":"Código de status HTTP", - "Reason":"Razão", - "Response Model":"Modelo resposta", - "Request URL":"URL requisição", - "Response Body":"Corpo da resposta", - "Response Code":"Código da resposta", - "Response Headers":"Cabeçalho da resposta", - "Headers":"Cabeçalhos", - "Hide Response":"Esconder resposta", - "Try it out!":"Tente agora!", - "Show/Hide":"Mostrar/Esconder", - "List Operations":"Listar operações", - "Expand Operations":"Expandir operações", - "Raw":"Cru", - "can't parse JSON. Raw result":"Falha ao analisar JSON. Resulto cru", - "Model Schema":"Modelo esquema", - "Model":"Modelo", - "apply":"Aplicar", - "Username":"Usuário", - "Password":"Senha", - "Terms of service":"Termos do serviço", - "Created by":"Criado por", - "See more at":"Veja mais em", - "Contact the developer":"Contate o desenvolvedor", - "api version":"Versão api", - "Response Content Type":"Tipo de conteúdo da resposta", - "fetching resource":"busca recurso", - "fetching resource list":"buscando lista de recursos", - "Explore":"Explorar", - "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Não é possível ler do servidor. Pode não ter as apropriadas configurações access-control-origin", - "Please specify the protocol for":"Por favor especifique o protocolo", - "Can't read swagger JSON from":"Não é possível ler o JSON Swagger de", - "Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI", - "Unable to read api":"Não foi possível ler api", - "from path":"do caminho", - "server returned":"servidor retornou" -}); diff --git a/lang/ru.js b/lang/ru.js deleted file mode 100644 index 592744e957f..00000000000 --- a/lang/ru.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Предупреждение: Устарело", - "Implementation Notes":"Заметки", - "Response Class":"Пример ответа", - "Status":"Статус", - "Parameters":"Параметры", - "Parameter":"Параметр", - "Value":"Значение", - "Description":"Описание", - "Parameter Type":"Тип параметра", - "Data Type":"Тип данных", - "HTTP Status Code":"HTTP код", - "Reason":"Причина", - "Response Model":"Структура ответа", - "Request URL":"URL запроса", - "Response Body":"Тело ответа", - "Response Code":"HTTP код ответа", - "Response Headers":"Заголовки ответа", - "Hide Response":"Спрятать ответ", - "Headers":"Заголовки", - "Response Messages":"Что может прийти в ответ", - "Try it out!":"Попробовать!", - "Show/Hide":"Показать/Скрыть", - "List Operations":"Операции кратко", - "Expand Operations":"Операции подробно", - "Raw":"В сыром виде", - "can't parse JSON. Raw result":"Не удается распарсить ответ:", - "Example Value":"Пример", - "Model Schema":"Структура", - "Model":"Описание", - "Click to set as parameter value":"Нажмите, чтобы испльзовать в качестве значения параметра", - "apply":"применить", - "Username":"Имя пользователя", - "Password":"Пароль", - "Terms of service":"Условия использования", - "Created by":"Разработано", - "See more at":"Еще тут", - "Contact the developer":"Связаться с разработчиком", - "api version":"Версия API", - "Response Content Type":"Content Type ответа", - "Parameter content type:":"Content Type параметра:", - "fetching resource":"Получение ресурса", - "fetching resource list":"Получение ресурсов", - "Explore":"Показать", - "Show Swagger Petstore Example Apis":"Показать примеры АПИ", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Не удается получить ответ от сервера. Возможно, проблема с настройками доступа", - "Please specify the protocol for":"Пожалуйста, укажите протокол для", - "Can't read swagger JSON from":"Не получается прочитать swagger json из", - "Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ресурсах завершена. Рендерим", - "Unable to read api":"Не удалось прочитать api", - "from path":"по адресу", - "server returned":"сервер сказал" -}); diff --git a/lang/tr.js b/lang/tr.js deleted file mode 100644 index 16426a9c34b..00000000000 --- a/lang/tr.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"Uyarı: Deprecated", - "Implementation Notes":"Gerçekleştirim Notları", - "Response Class":"Dönen Sınıf", - "Status":"Statü", - "Parameters":"Parametreler", - "Parameter":"Parametre", - "Value":"Değer", - "Description":"Açıklama", - "Parameter Type":"Parametre Tipi", - "Data Type":"Veri Tipi", - "Response Messages":"Dönüş Mesajı", - "HTTP Status Code":"HTTP Statü Kodu", - "Reason":"Gerekçe", - "Response Model":"Dönüş Modeli", - "Request URL":"İstek URL", - "Response Body":"Dönüş İçeriği", - "Response Code":"Dönüş Kodu", - "Response Headers":"Dönüş Üst Bilgileri", - "Hide Response":"Dönüşü Gizle", - "Headers":"Üst Bilgiler", - "Try it out!":"Dene!", - "Show/Hide":"Göster/Gizle", - "List Operations":"Operasyonları Listele", - "Expand Operations":"Operasyonları Aç", - "Raw":"Ham", - "can't parse JSON. Raw result":"JSON çözümlenemiyor. Ham sonuç", - "Model Schema":"Model Şema", - "Model":"Model", - "apply":"uygula", - "Username":"Kullanıcı Adı", - "Password":"Parola", - "Terms of service":"Servis şartları", - "Created by":"Oluşturan", - "See more at":"Daha fazlası için", - "Contact the developer":"Geliştirici ile İletişime Geçin", - "api version":"api versiyon", - "Response Content Type":"Dönüş İçerik Tipi", - "fetching resource":"kaynak getiriliyor", - "fetching resource list":"kaynak listesi getiriliyor", - "Explore":"Keşfet", - "Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.", - "Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz", - "Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor", - "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor", - "Unable to read api":"api okunamadı", - "from path":"yoldan", - "server returned":"sunucuya dönüldü" -}); diff --git a/lang/translator.js b/lang/translator.js deleted file mode 100644 index ffb879f9a27..00000000000 --- a/lang/translator.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -/** - * Translator for documentation pages. - * - * To enable translation you should include one of language-files in your index.html - * after . - * For example - - * - * If you wish to translate some new texts you should do two things: - * 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too. - * 2. Mark that text it templates this way New Phrase or . - * The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate. - * - */ -window.SwaggerTranslator = { - - _words:[], - - translate: function(sel) { - var $this = this; - sel = sel || '[data-sw-translate]'; - - $(sel).each(function() { - $(this).html($this._tryTranslate($(this).html())); - - $(this).val($this._tryTranslate($(this).val())); - $(this).attr('title', $this._tryTranslate($(this).attr('title'))); - }); - }, - - _tryTranslate: function(word) { - return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word; - }, - - learn: function(wordsMap) { - this._words = wordsMap; - } -}; diff --git a/lang/zh-cn.js b/lang/zh-cn.js deleted file mode 100644 index 570319ba156..00000000000 --- a/lang/zh-cn.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -/* jshint quotmark: double */ -window.SwaggerTranslator.learn({ - "Warning: Deprecated":"警告:已过时", - "Implementation Notes":"实现备注", - "Response Class":"响应类", - "Status":"状态", - "Parameters":"参数", - "Parameter":"参数", - "Value":"值", - "Description":"描述", - "Parameter Type":"参数类型", - "Data Type":"数据类型", - "Response Messages":"响应消息", - "HTTP Status Code":"HTTP状态码", - "Reason":"原因", - "Response Model":"响应模型", - "Request URL":"请求URL", - "Response Body":"响应体", - "Response Code":"响应码", - "Response Headers":"响应头", - "Hide Response":"隐藏响应", - "Headers":"头", - "Try it out!":"试一下!", - "Show/Hide":"显示/隐藏", - "List Operations":"显示操作", - "Expand Operations":"展开操作", - "Raw":"原始", - "can't parse JSON. Raw result":"无法解析JSON. 原始结果", - "Model Schema":"模型架构", - "Model":"模型", - "apply":"应用", - "Username":"用户名", - "Password":"密码", - "Terms of service":"服务条款", - "Created by":"创建者", - "See more at":"查看更多:", - "Contact the developer":"联系开发者", - "api version":"api版本", - "Response Content Type":"响应Content Type", - "fetching resource":"正在获取资源", - "fetching resource list":"正在获取资源列表", - "Explore":"浏览", - "Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis", - "Can't read from server. It may not have the appropriate access-control-origin settings.":"无法从服务器读取。可能没有正确设置access-control-origin。", - "Please specify the protocol for":"请指定协议:", - "Can't read swagger JSON from":"无法读取swagger JSON于", - "Finished Loading Resource Information. Rendering Swagger UI":"已加载资源信息。正在渲染Swagger UI", - "Unable to read api":"无法读取api", - "from path":"从路径", - "server returned":"服务器返回" -}); diff --git a/lib/backbone-min.js b/lib/backbone-min.js deleted file mode 100644 index a3f544be6d9..00000000000 --- a/lib/backbone-min.js +++ /dev/null @@ -1,15 +0,0 @@ -// Backbone.js 1.1.2 - -(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('