diff --git a/Dockerfile b/Dockerfile index 0859854..0a142ad 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN wget https://github.com/jwilder/dockerize/releases/download/$DOCKERIZE_VERSI && tar -C /usr/local/bin -xzvf dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz \ && rm dockerize-linux-amd64-$DOCKERIZE_VERSION.tar.gz -WORKDIR /usr/aurad/ +WORKDIR /usr/idexd/ COPY package*.json ./ RUN npm install -g pm2 RUN npm install -g sequelize diff --git a/README.md b/README.md index 7dc1b37..c89a430 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,24 @@ -# AuraD: IDEX Staking Tier 3 [beta] +# IDEXd: IDEX Staking Tier 3 [beta] + +**Note: IDEXd is the [official successor](https://idex.market/staking) of AuraD and provides the same functionality and services based on the IDEX token. AuraD is no longer supported. Please [see below](#Upgrading-from-AuraD-to-IDEXd) for instructions on upgrading from AuraD to IDEXd.** ## Introduction -AuraD is software that enables the [IDEX](https://idex.market/) community to stake AURA, serve parts of the IDEX production infrastructure, and earn fees for participation. AuraD is the first part of a comprehensive plan to decentralize the centralized components of IDEX. For complete coverage, motivation, and roadmap, see our most recent post on [AURA Staking](https://medium.com/aurora-dao/aura-staking-pos-earn-trade-fees-36319229ceae). +IDEXd is software that enables the [IDEX](https://idex.market/) community to stake IDEX tokens, serve parts of the IDEX production infrastructure, and earn fees for participation. IDEXd is the first part of a comprehensive plan to decentralize the centralized components of IDEX. For complete coverage, motivation, and roadmap, see our most recent post on [IDEX Staking](https://medium.com/idex/aura-staking-pos-earn-trade-fees-36319229ceae). #### A note about versions -**AuraD is currently beta software.** It is under development and subject to frequent changes, upgrades, and bug fixes. We appreciate your help in providing feedback and working around rough edges as we build towards 1.0. +**IDEXd is currently beta software.** It is under development and subject to frequent changes, upgrades, and bug fixes. We appreciate your help in providing feedback and working around rough edges as we build towards 1.0. ## Requirements ### Staking -In order to be eligible to participate in Aura Staking, you must have a wallet that holds a minimum of 10,000 AURA for a minimum of 7 days. Dropping below a 10,000 AURA balance, even for a brief period, will reset the incubation period. +In order to be eligible to participate in IDEX Staking, you must have a wallet that holds a minimum of 10,000 IDEX for a minimum of 7 days. Dropping below a 10,000 IDEX balance, even for a brief period, will reset the incubation period. ### Hardware / VPS -AuraD is designed to run on a computer or VPS that is continually connected to the internet with a stable IP address and inbound connectivity. +IDEXd is designed to run on a computer or VPS that is continually connected to the internet with a stable IP address and inbound connectivity. * 2GB+ memory * 20GB+ storage @@ -30,11 +32,11 @@ AuraD is designed to run on a computer or VPS that is continually connected to t * Node.js 10.15.0, npm 6.4.1 ([Installation Guide](https://github.com/creationix/nvm#usage)) * Git 17.1 ([Installation Guide](https://git-scm.com/downloads)) -AuraD is designed to support a wide range of systems, but for the beta we recommend sticking to these requirements and versions. +IDEXd is designed to support a wide range of systems, but for the beta we recommend sticking to these requirements and versions. -## Getting AuraD +## Getting IDEXd -AuraD is distrbuted via the @auroradao/aurad-cli npm package with dependencies on Docker and Docker Compose. +IDEXd is distrbuted via the @idexio/idexd-cli npm package with dependencies on Docker and Docker Compose. ## Getting Started @@ -42,7 +44,7 @@ All of the requrements provide first-rate installation documentation, but we've #### A note on users -Some VPS providers, such as Digital Ocean, set up new Ubuntu 18.04 instances with only the `root` user account configured. We recommend running AuraD as a regular user account rather than `root`. When you first log in, run `whoami` to check which user you are currently acting as. If the response is `root`, follow Digital Ocean's [instructions](https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-ubuntu-16-04) on adding a user and adding sudo privileges in order to run AuraD. +Some VPS providers, such as Digital Ocean, set up new Ubuntu 18.04 instances with only the `root` user account configured. We recommend running IDEXd as a regular user account rather than `root`. When you first log in, run `whoami` to check which user you are currently acting as. If the response is `root`, follow Digital Ocean's [instructions](https://www.digitalocean.com/community/tutorials/how-to-add-and-delete-users-on-ubuntu-16-04) on adding a user and adding sudo privileges in order to run IDEXd. Log out and log in to the new, non-`root` user account before proceeding. @@ -116,42 +118,42 @@ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | nvm install 10.15 ``` -### Install and launch AuraD +### Install and launch IDEXd -1. Install `aurad-cli` to start and manage AuraD +1. Install `idexd-cli` to start and manage IDEXd ``` -npm install -g @auroradao/aurad-cli +npm install -g @idexio/idexd-cli ``` 2. Configure a staking wallet ``` -aura config +idex config ``` -AuraD provides prompts asking for a staking wallet that contains at least 10,000 AURA for 7 days. Go to [MyEtherWallet](https://www.myetherwallet.com/interface/sign-message) or your preferred wallet software to sign the challenge and provide the `sig` value to prove that you control the wallet. +IDEXd provides prompts asking for a staking wallet that contains at least 10,000 IDEX for 7 days. Go to [MyEtherWallet](https://www.myetherwallet.com/interface/sign-message) or your preferred wallet software to sign the challenge and provide the `sig` value to prove that you control the wallet. -AuraD employs a cold-wallet design so that staked funds never need to leave the staking wallet for maximum security. +IDEXd employs a cold-wallet design so that staked funds never need to leave the staking wallet for maximum security. -3. Sync your Aura Node and start serving traffic +3. Sync your IDEX Node and start serving traffic ``` -aura start +idex start ``` -AuraD connects to the Ethereum network and downloads IDEX trade history data to serve to IDEX users. Depending on the resources of the underlying computer or VPS and network, the initial syncing process may take a few minutes to several hours. +IDEXd connects to the Ethereum network and downloads IDEX trade history data to serve to IDEX users. Depending on the resources of the underlying computer or VPS and network, the initial syncing process may take a few minutes to several hours. TODO: documentation on forcing a full sync vs fast sync #### A note on connectivity -In order to serve data to IDEX users, AuraD Nodes must be reachable from the public internet. Most home and office connections are not publicly reachable by default, so you may need to take steps like opening up specific ports on your router. AuraD requires public TCP access to port 8443, and has limits on how frequently a node can change IP addresses. +In order to serve data to IDEX users, IDEXd Nodes must be reachable from the public internet. Most home and office connections are not publicly reachable by default, so you may need to take steps like opening up specific ports on your router. IDEXd requires public TCP access to port 8443, and has limits on how frequently a node can change IP addresses. -We recommend running AuraD on an always-on, contected machine or a cloud-hosted compute instance. +We recommend running IDEXd on an always-on, contected machine or a cloud-hosted compute instance. -## Managing AuraD +## Managing IDEXd -AuraD is design to require minimal maintenance once it is live. For details on managing AuraD +IDEXd is design to require minimal maintenance once it is live. For details on managing IDEXd ``` -aura +idex ``` -to display documentation on the `aurad-cli`'s capabilities. +to display documentation on the `idexd-cli`'s capabilities. ### Common management tasks @@ -162,18 +164,18 @@ https://reporting.idex.market/aurad/staked #### Examining logs -Logs are the best source of information to understand what's happening with AuraD under the hood. To follow the AuraD logs +Logs are the best source of information to understand what's happening with IDEXd under the hood. To follow the IDEXd logs ``` -docker logs -f docker_aurad_1 +docker logs -f docker_idexd_1 ``` #### Checking your staking status Display your node's current status and earnings history ``` -aura status +idex status ``` -*Aurad-cli* +*idexd-cli* The currently running version of the client @@ -183,17 +185,17 @@ Latest version of the client available. If different than the currently running *Cold Wallet* -Ethereum address of the wallet holding AURA tokens for staking +Ethereum address of the wallet holding IDEX tokens for staking -*Staked AURA* +*Staked IDEX* -The current AURA balance you are staking to earn credits. If you are staking > 10,000 AURA it will reflect immediately as long as your 10k minimum has incubated for 7+ days. +The current IDEX balance you are staking to earn credits. If you are staking > 10,000 IDEX it will reflect immediately as long as your 10k minimum has incubated for 7+ days. -Notice: Any delays in updating your balance will be fixed at payout time based on the timestamp of the block in which you added the AURA. +Notice: Any delays in updating your balance will be fixed at payout time based on the timestamp of the block in which you added the IDEX. -*Total Staking AURA* +*Total Staking IDEX* -The current staked AURA balance across all active stakers (updated approximately once per minute) +The current staked IDEX balance across all active stakers (updated approximately once per minute) *Staking* @@ -205,7 +207,7 @@ Date and times of the current staking period. Periods run for 14 days starting o *My Period Credits/ Total Period Credits* -The number of credits earned by the staker this period, over the total amount of credits earned by ALL stakers this period. 1 credit = 10k AURA staked for 5 minutes while your node is “online”. +The number of credits earned by the staker this period, over the total amount of credits earned by ALL stakers this period. 1 credit = 10k IDEX staked for 5 minutes while your node is “online”. *Last Period Earnings* @@ -225,41 +227,53 @@ URL to view the earnings history of the staker in CSV format. This file can be o URL to view this documentation. -#### Stopping AuraD +#### Stopping IDEXd + +``` +idex stop +``` + +#### Restarting IDEXd ``` -aura stop +idex restart ``` -#### Restarting AuraD +#### Upgrading IDEXd +To upgrade IDEXd, stop the service, upgrade `@idexio/idexd-cli`, and restart the service. ``` -aura restart +$ idex stop +$ npm install -g @idexio/idexd-cli +$ idex start ``` +Occasionally an upgrade may require running `idex config` before it can start serving traffic. + +#### Upgrading from AuraD to IDEXd -#### Upgrading AuraD +Before upgrading to IDEXd, swap AURA tokens for IDEX tokens using the [token swap tool](https://idex.market/aura-token-swap). -To upgrade AuraD, stop the service, upgrade `@auroradao/aurad-cli`, and restart the service. +To upgrade from AuraD to IDEXd, stop and uninstall AuraD then install and start IDEXd. ``` $ aura stop -$ npm install -g @auroradao/aurad-cli -$ aura start +$ npm uninstall -g @auroradao/aurad-cli +$ npm install -g @idexio/idexd-cli +$ idex start ``` -Occasionally an upgrade may require running `aura config` before it can start serving traffic. -#### Running AuraD with a custom RPC endpoint +#### Running IDEXd with a custom RPC endpoint -AuraD ships with its own copy of the [Parity Ethereum Client](https://www.parity.io/ethereum/) and uses Parity to load data from the Ethereum blockchain. To use a different Etheruem node, you can specify a custom RPC endpoint +IDEXd ships with its own copy of the [Parity Ethereum Client](https://www.parity.io/ethereum/) and uses Parity to load data from the Ethereum blockchain. To use a different Etheruem node, you can specify a custom RPC endpoint ``` -aura start --rpc +idex start --rpc ``` ## Getting Help and Reporting Issues For questions about getting started and help if you're stuck, please [reach out to our team on Discord](https://discord.gg/tQa9CAB). -If you believe you have identified a bug in AuraD, please [file an issue](https://github.com/auroradao/aurad/issues). +If you believe you have identified a bug in IDEXd, please [file an issue](https://github.com/idexio/idexd/issues). ## License -AuraD is licensed under the [GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html). +IDEXd is licensed under the [GNU Lesser General Public License v3.0](https://www.gnu.org/licenses/lgpl-3.0.en.html). diff --git a/aurad-cli/README.md b/aurad-cli/README.md index 355b489..108628d 100644 --- a/aurad-cli/README.md +++ b/aurad-cli/README.md @@ -1,4 +1,4 @@ -aura +idex ===== @@ -12,46 +12,46 @@ aura # Usage ```sh-session -$ npm install -g @auroradao/aurad-cli -$ aura COMMAND +$ npm install -g @idexio/idexd-cli +$ idex COMMAND running command... -$ aura (-v|--version|version) -@auroradao/aurad-cli/0.1.5 darwin-x64 node-v11.14.0 -$ aura --help [COMMAND] +$ idex (-v|--version|version) +@idexio/idexd-cli/0.2.0 darwin-x64 node-v11.14.0 +$ idex --help [COMMAND] USAGE - $ aura COMMAND + $ idex COMMAND ... ``` # Commands -* [`aura config`](#aura-config) -* [`aura help [COMMAND]`](#aura-help-command) -* [`aura logs`](#aura-logs) -* [`aura restart`](#aura-restart) -* [`aura start`](#aura-start) -* [`aura status`](#aura-status) -* [`aura stop`](#aura-stop) -* [`aura up`](#aura-up) +* [`idex config`](#idex-config) +* [`idex help [COMMAND]`](#idex-help-command) +* [`idex logs`](#idex-logs) +* [`idex restart`](#idex-restart) +* [`idex start`](#idex-start) +* [`idex status`](#idex-status) +* [`idex stop`](#idex-stop) +* [`idex up`](#idex-up) -## `aura config` +## `idex config` Configure your staking wallet ``` USAGE - $ aura config + $ idex config ``` -_See code: [src/commands/config.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/config.js)_ +_See code: [src/commands/config.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/config.js)_ -## `aura help [COMMAND]` +## `idex help [COMMAND]` -display help for aura +display help for idex ``` USAGE - $ aura help [COMMAND] + $ idex help [COMMAND] ARGUMENTS COMMAND command to show help for @@ -62,78 +62,78 @@ OPTIONS _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v2.1.4/src/commands/help.ts)_ -## `aura logs` +## `idex logs` Print raw logs ``` USAGE - $ aura logs + $ idex logs OPTIONS - -n, --name=name name of log to print (aura, parity or mysql) + -n, --name=name name of log to print (idexd, parity or mysql) ``` -_See code: [src/commands/logs.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/logs.js)_ +_See code: [src/commands/logs.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/logs.js)_ -## `aura restart` +## `idex restart` Restart aura background services ``` USAGE - $ aura restart + $ idex restart OPTIONS -r, --rpc=rpc rpc server ``` -_See code: [src/commands/restart.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/restart.js)_ +_See code: [src/commands/restart.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/restart.js)_ -## `aura start` +## `idex start` -Start the aura staking app +Start the idex staking app ``` USAGE - $ aura start + $ idex start OPTIONS -r, --rpc=rpc rpc server ``` -_See code: [src/commands/start.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/start.js)_ +_See code: [src/commands/start.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/start.js)_ -## `aura status` +## `idex status` Check status for your staking node ``` USAGE - $ aura status + $ idex status ``` -_See code: [src/commands/status.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/status.js)_ +_See code: [src/commands/status.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/status.js)_ -## `aura stop` +## `idex stop` Stop aura background services ``` USAGE - $ aura stop + $ idex stop ``` -_See code: [src/commands/stop.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/stop.js)_ +_See code: [src/commands/stop.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/stop.js)_ -## `aura up` +## `idex up` Launch aura services in background ``` USAGE - $ aura up + $ idex up ``` -_See code: [src/commands/up.js](https://github.com/auroradao/aurad/blob/v0.1.5/src/commands/up.js)_ +_See code: [src/commands/up.js](https://github.com/idexio/idexd/blob/v0.2.0/src/commands/up.js)_ diff --git a/aurad-cli/package-lock.json b/aurad-cli/package-lock.json index 1d3ea74..4ce45a2 100644 --- a/aurad-cli/package-lock.json +++ b/aurad-cli/package-lock.json @@ -1,6 +1,6 @@ { - "name": "@auroradao/aurad-cli", - "version": "0.1.5", + "name": "@idexio/idexd-cli", + "version": "0.2.0-beta.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -497,7 +497,7 @@ }, "array-flatten": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "array-union": { @@ -810,7 +810,7 @@ }, "browserify-aes": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", "requires": { "buffer-xor": "^1.0.3", @@ -844,7 +844,7 @@ }, "browserify-rsa": { "version": "4.0.1", - "resolved": "http://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", "requires": { "bn.js": "^4.1.0", @@ -1246,7 +1246,7 @@ }, "content-disposition": { "version": "0.5.2", - "resolved": "http://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz", "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ=" }, "content-type": { @@ -1300,7 +1300,7 @@ }, "create-hash": { "version": "1.2.0", - "resolved": "http://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", "requires": { "cipher-base": "^1.0.1", @@ -1312,7 +1312,7 @@ }, "create-hmac": { "version": "1.1.7", - "resolved": "http://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", "requires": { "cipher-base": "^1.0.3", @@ -1403,7 +1403,7 @@ "dependencies": { "pify": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } @@ -1468,12 +1468,12 @@ "dependencies": { "file-type": { "version": "3.9.0", - "resolved": "http://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", + "resolved": "https://registry.npmjs.org/file-type/-/file-type-3.9.0.tgz", "integrity": "sha1-JXoHg4TR24CHvESdEH1SpSZyuek=" }, "get-stream": { "version": "2.3.1", - "resolved": "http://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-2.3.1.tgz", "integrity": "sha1-Xzj5PzRgCWZu4BUKBUFn+Rvdld4=", "requires": { "object-assign": "^4.0.1", @@ -1482,7 +1482,7 @@ }, "pify": { "version": "2.3.0", - "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" } } @@ -1502,6 +1502,14 @@ "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", "dev": true }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", + "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "requires": { + "object-keys": "^1.0.12" + } + }, "define-property": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", @@ -1581,7 +1589,7 @@ }, "diffie-hellman": { "version": "5.0.3", - "resolved": "http://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", "requires": { "bn.js": "^4.1.0", @@ -1678,6 +1686,29 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.13.0.tgz", + "integrity": "sha512-vDZfg/ykNxQVwup/8E1BZhVzFfBxs9NqMzGcvIJrqg5k2/5Za2bWo40dK2J1pgLngZ7c+Shh8lwYtLGyrwPutg==", + "requires": { + "es-to-primitive": "^1.2.0", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "is-callable": "^1.1.4", + "is-regex": "^1.0.4", + "object-keys": "^1.0.12" + } + }, + "es-to-primitive": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", + "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -1971,7 +2002,7 @@ }, "uuid": { "version": "2.0.1", - "resolved": "http://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" } } @@ -2342,7 +2373,7 @@ }, "finalhandler": { "version": "1.1.1", - "resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz", "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==", "requires": { "debug": "2.6.9", @@ -2466,7 +2497,7 @@ }, "jsonfile": { "version": "2.4.0", - "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" @@ -2490,6 +2521,11 @@ "rimraf": "2" } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", @@ -2655,6 +2691,14 @@ "har-schema": "^2.0.0" } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -2680,6 +2724,11 @@ "resolved": "https://registry.npmjs.org/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz", "integrity": "sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw==" }, + "has-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.0.tgz", + "integrity": "sha1-uhqPGvKg/DllD1yFA2dwQSIGO0Q=" + }, "has-to-string-tag-x": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz", @@ -2789,7 +2838,7 @@ }, "http-errors": { "version": "1.6.3", - "resolved": "http://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", "requires": { "depd": "~1.1.2", @@ -2919,9 +2968,9 @@ } }, "ipaddr.js": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz", - "integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4=" + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz", + "integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA==" }, "is-accessor-descriptor": { "version": "0.1.6", @@ -2989,6 +3038,11 @@ } } }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, "is-descriptor": { "version": "0.1.6", "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", @@ -3101,6 +3155,14 @@ "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "requires": { + "has": "^1.0.1" + } + }, "is-retry-allowed": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz", @@ -3111,6 +3173,14 @@ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" }, + "is-symbol": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.2.tgz", + "integrity": "sha512-HS8bZ9ox60yCJLH9snBpIwv9pYUAkcuLhSA1oero1UB5y9aiQpRA8y2ex945AOtCZL1lJDeIk3G5LthswI46Lw==", + "requires": { + "has-symbols": "^1.0.0" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -3569,7 +3639,7 @@ }, "media-typer": { "version": "0.3.0", - "resolved": "http://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" }, "merge-descriptors": { @@ -3776,9 +3846,9 @@ } }, "mock-fs": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.7.0.tgz", - "integrity": "sha512-WlQNtUlzMRpvLHf8dqeUmNqfdPjGY29KrJF50Ldb4AcL+vQeR8QH3wQcFMgrhTwb1gHjZn9xggho+84tBskLgA==" + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/mock-fs/-/mock-fs-4.9.0.tgz", + "integrity": "sha512-aUj0qIniTNxzGqAC61Bvro7YD37tIBnMw3wpClucUVgNBS7r6YQn/M4wuoH7SGteKz4SvC1OBeDsfpG0MYC+1Q==" }, "mock-stdin": { "version": "0.3.1", @@ -3818,7 +3888,7 @@ }, "nan": { "version": "2.10.0", - "resolved": "http://registry.npmjs.org/nan/-/nan-2.10.0.tgz", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==" }, "nano-json-stream-parser": { @@ -3952,6 +4022,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -4321,7 +4392,8 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true + "dev": true, + "optional": true }, "is-builtin-module": { "version": "1.0.0", @@ -4417,6 +4489,7 @@ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, + "optional": true, "requires": { "is-buffer": "^1.1.5" } @@ -4469,7 +4542,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", @@ -4772,7 +4846,8 @@ "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true + "dev": true, + "optional": true }, "require-directory": { "version": "2.1.1", @@ -5245,6 +5320,11 @@ } } }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, "object-visit": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", @@ -5346,24 +5426,25 @@ } }, "parse-asn1": { - "version": "5.1.1", - "resolved": "http://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.1.tgz", - "integrity": "sha512-KPx7flKXg775zZpnp9SxJlz00gTd4BmJ2yJufSc44gMCRrRQ7NSzAcSJQfifuOLgW6bEi+ftrALtsgALeB2Adw==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.4.tgz", + "integrity": "sha512-Qs5duJcuvNExRfFZ99HDD3z4mAi3r9Wl/FOjEOijlxwCZs7E7mW2vjTpgQ4J8LpTF8x5v+1Vn5UQFejmWT11aw==", "requires": { "asn1.js": "^4.0.0", "browserify-aes": "^1.0.0", "create-hash": "^1.1.0", "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3" + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" } }, "parse-headers": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", - "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.2.tgz", + "integrity": "sha512-/LypJhzFmyBIDYP9aDVgeyEb5sQfbfY5mnDq4hVhlQ69js87wXfmEI5V3xI6vvXasqebp0oCytYFLxsBVfCzSg==", "requires": { - "for-each": "^0.3.2", - "trim": "0.0.1" + "for-each": "^0.3.3", + "string.prototype.trim": "^1.1.2" } }, "parse-json": { @@ -5377,9 +5458,9 @@ } }, "parseurl": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", - "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" }, "pascalcase": { "version": "0.1.1", @@ -5584,12 +5665,12 @@ "dev": true }, "proxy-addr": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz", - "integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", + "integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==", "requires": { "forwarded": "~0.1.2", - "ipaddr.js": "1.8.0" + "ipaddr.js": "1.9.0" } }, "psl": { @@ -5680,7 +5761,7 @@ }, "query-string": { "version": "5.1.1", - "resolved": "http://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", + "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", "integrity": "sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw==", "requires": { "decode-uri-component": "^0.2.0", @@ -5701,9 +5782,9 @@ "dev": true }, "randombytes": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.6.tgz", - "integrity": "sha512-CIQ5OFxf4Jou6uOKe9t1AOgqpeU5fd70A8NPdHSGeYXqXsPe6peOwI0cUl88RWZ6sP1vPMV3avd/R6cZ5/sP1A==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "requires": { "safe-buffer": "^5.1.0" } @@ -5893,11 +5974,11 @@ "dev": true }, "rimraf": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", - "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "version": "2.6.3", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", + "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", "requires": { - "glob": "^7.0.5" + "glob": "^7.1.3" } }, "ripemd160": { @@ -5960,12 +6041,12 @@ }, "scrypt-js": { "version": "2.0.3", - "resolved": "http://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-2.0.3.tgz", "integrity": "sha1-uwBAvgMEPamgEqLOqfyfhSz8h9Q=" }, "scrypt.js": { "version": "0.2.0", - "resolved": "http://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", "requires": { "scrypt": "^6.0.2", @@ -5990,7 +6071,7 @@ "dependencies": { "commander": { "version": "2.8.1", - "resolved": "http://registry.npmjs.org/commander/-/commander-2.8.1.tgz", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.8.1.tgz", "integrity": "sha1-Br42f+v9oMMwqh4qBy09yXYkJdQ=", "requires": { "graceful-readlink": ">= 1.0.0" @@ -6096,7 +6177,7 @@ }, "sha.js": { "version": "2.4.11", - "resolved": "http://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", "requires": { "inherits": "^2.0.1", @@ -6451,6 +6532,16 @@ "strip-ansi": "^4.0.0" } }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "requires": { + "define-properties": "^1.1.2", + "es-abstract": "^1.5.0", + "function-bind": "^1.0.2" + } + }, "string_decoder": { "version": "1.1.1", "resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", @@ -6565,7 +6656,7 @@ }, "jsonfile": { "version": "2.4.0", - "resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", "requires": { "graceful-fs": "^4.1.6" @@ -6592,7 +6683,7 @@ }, "tar": { "version": "2.2.1", - "resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz", + "resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz", "integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=", "requires": { "block-stream": "*", @@ -6639,7 +6730,7 @@ "dependencies": { "bluebird": { "version": "2.11.0", - "resolved": "http://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-2.11.0.tgz", "integrity": "sha1-U0uQM8AiyVecVro7Plpcqvu2UOE=" } } @@ -6758,11 +6849,6 @@ "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==" }, - "trim": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" - }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", @@ -6825,34 +6911,28 @@ "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==" }, "unbzip2-stream": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.1.tgz", - "integrity": "sha512-fIZnvdjblYs7Cru/xC6tCPVhz7JkYcVQQkePwMLyQELzYTds2Xn8QefPVnvdVhhZqubxNA1cASXEH5wcK0Bucw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.3.3.tgz", + "integrity": "sha512-fUlAF7U9Ah1Q6EieQ4x4zLNejrRvDWUYmxXUpN3uziFYCHapjWFaCAnreY9bGgxzaMCFAPPpYNng57CypwJVhg==", "requires": { - "buffer": "^3.0.1", - "through": "^2.3.6" + "buffer": "^5.2.1", + "through": "^2.3.8" }, "dependencies": { - "base64-js": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", - "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=" - }, "buffer": { - "version": "3.6.0", - "resolved": "http://registry.npmjs.org/buffer/-/buffer-3.6.0.tgz", - "integrity": "sha1-pyyTb3e5a/UvX357RnGAYoVR3vs=", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", "requires": { - "base64-js": "0.0.8", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" } } } }, "underscore": { "version": "1.8.3", - "resolved": "http://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", + "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, "union-value": { @@ -6998,7 +7078,7 @@ }, "utf8": { "version": "2.1.1", - "resolved": "http://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", "integrity": "sha1-LgHbAvfY0JRPdxBPFgnrDDBM92g=" }, "util-deprecate": { @@ -7188,7 +7268,7 @@ }, "uuid": { "version": "2.0.1", - "resolved": "http://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.1.tgz", "integrity": "sha1-wqMN7bPlNdcsz4LjQ5QaULqFM6w=" } } @@ -7287,7 +7367,7 @@ "requires": { "underscore": "1.8.3", "web3-core-helpers": "1.0.0-beta.37", - "websocket": "git://github.com/frozeman/WebSocket-Node.git#6c72925e3f8aaaea8dc8450f97627e85263999f2" + "websocket": "git://github.com/frozeman/WebSocket-Node.git#browserifyCompatible" } }, "web3-shh": { diff --git a/aurad-cli/package.json b/aurad-cli/package.json index 6cb97f4..ffe85b4 100644 --- a/aurad-cli/package.json +++ b/aurad-cli/package.json @@ -1,10 +1,10 @@ { - "name": "@auroradao/aurad-cli", - "version": "0.1.5", + "name": "@idexio/idexd-cli", + "version": "0.2.0", "bin": { - "aura": "./bin/run" + "idex": "./bin/run" }, - "bugs": "https://github.com/auroradao/aurad/issues", + "bugs": "https://github.com/idexio/idexd/issues", "dependencies": { "@oclif/command": "^1", "@oclif/config": "^1", @@ -25,9 +25,10 @@ "opn": "^5.4.0", "request": "^2.88.0", "request-promise": "^4.2.2", + "rimraf": "^2.6.3", "rxjs": "^6.3.3", "semver": "^5.6.0", - "web3": "^1.0.0-beta.41" + "web3": "1.0.0-beta.37" }, "devDependencies": { "@oclif/dev-cli": "^1", @@ -50,7 +51,7 @@ "/oclif.manifest.json", "/src" ], - "homepage": "https://github.com/auroradao/aurad", + "homepage": "https://github.com/idexio/idexd", "keywords": [ "oclif" ], @@ -58,16 +59,16 @@ "main": "src/index.js", "oclif": { "commands": "./src/commands", - "bin": "aura", + "bin": "idex", "plugins": [ "@oclif/plugin-help" ], "macos": { - "identifier": "com.auroradao.aura.cli" + "identifier": "com.idexio.idex.cli" }, "update": { "s3": { - "bucket": "aurad-cli-staging", + "bucket": "idexd-cli-staging", "templates": { "target": { "unversioned": "tarballs/<%- bin %>/<%- channel === 'stable' ? '' : 'channels/' + channel + '/' %><%- bin %>-<%- platform %>-<%- arch %><%- ext %>", @@ -91,7 +92,7 @@ } } }, - "repository": "github:auroradao/aurad", + "repository": "github:idexio/idexd", "scripts": { "postpack": "rm -f oclif.manifest.json", "posttest": "eslint .", diff --git a/aurad-cli/src/commands/config.js b/aurad-cli/src/commands/config.js index 5104a52..e88fd7c 100644 --- a/aurad-cli/src/commands/config.js +++ b/aurad-cli/src/commands/config.js @@ -18,7 +18,6 @@ const { STAKING_HOST } = require('../shared/config'); const parity = new Parity('http://offline'); const docker = new Docker(); -docker.ensureDirs(); async function getChallenge(address) { return new Promise((resolve, reject) => { @@ -65,12 +64,17 @@ async function anykey(cli, message) { class ConfigCommand extends Command { async run() { + await docker.ensureDirs(); const {flags} = this.parse(ConfigCommand); console.log(messages.WALLET_EXPLAINER); const containers = await docker.getRunningContainerIds(); + if (containers['idexd']) { + console.log(`Error: idexd is running, please run 'idex stop' before updating your config`); + return; + } if (containers['aurad']) { - console.log(`Error: aurad is running, please run 'aura stop' before updating your config`); + console.log(`Error: an older version of aurad is running, please run 'idex stop' before updating your config`); return; } @@ -93,7 +97,7 @@ class ConfigCommand extends Command { let balanceFormatted = (new BigNumber(balance)).dividedBy(new BigNumber('1000000000000000000')).toString(); - console.log(`\n Your staked ${chalk.cyan('AURA')} balance is ${balanceFormatted}.`); + console.log(`\n Your staked ${chalk.cyan('IDEX')} balance is ${balanceFormatted}.`); console.log(` Use https://www.myetherwallet.com/interface/sign-message or your preferred wallet software to sign this *exact* message:\n ${chalk.blue.bgWhite(challenge)}${chalk.white.bgBlack(' ')}\n`); let signature = await cli.prompt(' "sig" value', {type: 'mask'}); @@ -129,8 +133,8 @@ class ConfigCommand extends Command { hotWallet: keystore, }; - fs.writeFileSync(`${homedir}/.aurad/ipc/settings.json`, JSON.stringify(settings)); - console.log('\n Staking wallet confirmed. Run \'aura start\' to download IDEX trade history and begin staking.\n'); + fs.writeFileSync(`${homedir}/.idexd/ipc/settings.json`, JSON.stringify(settings)); + console.log('\n Staking wallet confirmed. Run \'idex start\' to download IDEX trade history and begin staking.\n'); } catch(e) { console.log('\n Error submitting cold wallet challenge'); } diff --git a/aurad-cli/src/commands/logs.js b/aurad-cli/src/commands/logs.js index 77d0002..390b16f 100644 --- a/aurad-cli/src/commands/logs.js +++ b/aurad-cli/src/commands/logs.js @@ -6,12 +6,12 @@ const docker = new Docker(); class LogsCommand extends Command { async run() { const {flags} = this.parse(LogsCommand) - let name = flags.name || 'aurad' - if (name == 'aura') name = 'aurad'; + let name = flags.name || 'idexd' + if (name == 'idex') name = 'idexd'; name = name.toLowerCase(); - if (['aurad', 'mysql', 'parity'].indexOf(name) === -1) { - console.log(`Invalid log name, choose one of 'aurad' (default), 'mysql' or 'parity'`); + if (['idexd', 'mysql', 'parity'].indexOf(name) === -1) { + console.log(`Invalid log name, choose one of 'idexd' (default), 'mysql' or 'parity'`); return; } @@ -34,7 +34,7 @@ class LogsCommand extends Command { LogsCommand.description = `Print raw logs` LogsCommand.flags = { - name: flags.string({char: 'n', description: 'name of log to print (aura, parity or mysql)'}) + name: flags.string({char: 'n', description: 'name of log to print (idexd, parity or mysql)'}) } module.exports = LogsCommand diff --git a/aurad-cli/src/commands/start.js b/aurad-cli/src/commands/start.js index 8360bd1..997934b 100644 --- a/aurad-cli/src/commands/start.js +++ b/aurad-cli/src/commands/start.js @@ -18,14 +18,13 @@ let parity = null; const start = new Listr([ { - title: 'Starting AuraD', + title: 'Starting IDEXd', task: () => { return new Listr([ { title: 'Launching Local Services', task: async () => { await docker.up(['parity', 'mysql']); - await docker.autoheal(); } } ]); @@ -48,7 +47,7 @@ const start = new Listr([ { title: 'Writing IDEX Trades', task: async () => { - await docker.up(['aurad']); + await docker.up(['idexd']); return new rxjs.Observable(observer => { let progress = 0; let timer = setInterval(async () => { @@ -85,6 +84,10 @@ class StartCommand extends Command { const {flags} = this.parse(StartCommand) let rpc = flags.rpc || '' + // copy paste from Infura drops the protocol, which must be https + if (rpc.indexOf('mainnet.infura.io') === 0) { + rpc = 'https://' + rpc; + } parity = new Parity(rpc || 'http://localhost:8545'); docker = new Docker(rpc || 'http://parity:8545'); docker.requireDocker(); @@ -93,20 +96,25 @@ class StartCommand extends Command { if (rpc) { console.log('Using custom RPC = ' + rpc); } - + try { - const settings = fs.readFileSync(`${homedir}/.aurad/ipc/settings.json`); - const json = JSON.parse(settings); + await docker.ensureDirs(); + try { + const settings = fs.readFileSync(`${homedir}/.idexd/ipc/settings.json`); + const json = JSON.parse(settings); + } catch(e) { + console.log("Error loading wallet, please run 'idex config' first"); + return; + } + await start.run(); } catch(e) { - console.log("Error loading wallet, please run 'aura config' first"); + console.log(e.message); return; } - - await start.run(); } } -StartCommand.description = `Start the aura staking app` +StartCommand.description = `Start the idex staking app` StartCommand.flags = { rpc: flags.string({char: 'r', description: 'rpc server'}), diff --git a/aurad-cli/src/commands/status.js b/aurad-cli/src/commands/status.js index 44cf906..d3b75f4 100644 --- a/aurad-cli/src/commands/status.js +++ b/aurad-cli/src/commands/status.js @@ -17,14 +17,14 @@ class StatusCommand extends Command { let json; try { - const settings = fs.readFileSync(`${homedir}/.aurad/ipc/settings.json`); + const settings = fs.readFileSync(`${homedir}/.idexd/ipc/settings.json`); json = JSON.parse(settings); } catch(e) { - console.log("Error loading wallet, please run 'aura config' first"); + console.log("Error loading wallet, please run 'idex config' first"); return; } - console.log(`aurad-cli v${package_json.version}`); + console.log(`idexd-cli v${package_json.version}`); const packageInfo = await request({ uri: registryUri, json: true }); const latestVersion = packageInfo['dist-tags'].latest; @@ -40,8 +40,8 @@ class StatusCommand extends Command { const { balance, total, isQualified, dateAvailable } = await request({uri, json:true}); const description = (isQualified === true) ? '' : ` (eligible for staking at ${dateAvailable})`; - console.log(`Staked AURA: ${Number(balance).toFixed(2)} AURA ${description}`); - console.log(`Total Staked AURA: ${Number(total).toFixed(2)} AURA`); + console.log(`Staked IDEX: ${Number(balance).toFixed(2)} IDEX ${description}`); + console.log(`Total Staked IDEX: ${Number(total).toFixed(2)} IDEX`); try { const { keepAlive } = await cliUtil.getAuradStatus(docker); diff --git a/aurad-cli/src/containers/docker/aurad_config.env b/aurad-cli/src/containers/docker/aurad_config.env index a4cdb0f..c68eaaa 100644 --- a/aurad-cli/src/containers/docker/aurad_config.env +++ b/aurad-cli/src/containers/docker/aurad_config.env @@ -14,5 +14,3 @@ SSL=1 DEBUG=0 SNAPSHOT_HOST=https://s3.ca-central-1.amazonaws.com/aura-snapshots-prod -SSL_PRIVATE_KEY_PATH=ssl/production/key.pem -SSL_CERT_PATH=ssl/production/cert.pem diff --git a/aurad-cli/src/containers/docker/docker-compose.yml b/aurad-cli/src/containers/docker/docker-compose.yml index 96aab9c..c40b6da 100644 --- a/aurad-cli/src/containers/docker/docker-compose.yml +++ b/aurad-cli/src/containers/docker/docker-compose.yml @@ -17,8 +17,6 @@ services: interval: 1m timeout: 10s retries: 3 - labels: - - "autoheal" stop_signal: SIGINT stop_grace_period: 20s working_dir: /eth @@ -29,23 +27,23 @@ services: env_file: aurad_config.env volumes: - type: bind - source: ${HOME}/.aurad/db + source: ${HOME}/.idexd/db target: /var/lib/mysql stop_signal: SIGINT stop_grace_period: 20s ports: - "127.0.0.1:33006:3306" - aurad: - image: auroradao/aurad:0.1.4 + idexd: + image: idexio/idexd:0.2.0 depends_on: - "mysql" volumes: - type: bind - source: ${HOME}/.aurad/downloads - target: /usr/aurad/downloads + source: ${HOME}/.idexd/downloads + target: /usr/idexd/downloads - type: bind - source: ${HOME}/.aurad/ipc - target: /usr/aurad/ipc + source: ${HOME}/.idexd/ipc + target: /usr/idexd/ipc stop_signal: SIGINT stop_grace_period: 20s command: ["start", "pm2.config.js", "--no-daemon", "--only", "worker", "--kill-timeout", "5000"] @@ -54,8 +52,6 @@ services: interval: 1m timeout: 10s retries: 3 - labels: - - "autoheal" ports: - "8080:8080" - "8443:8443" @@ -65,7 +61,12 @@ services: - RPC_PROTOCOL - RPC_PORT - STAKING_HOST + - SSL_PRIVATE_KEY_PATH + - SSL_CERT_PATH links: - "mysql:db.local" + aurad: + image: auroradao/aurad:0.1.4 + entrypoint: ["echo", "aurad is now idexd, exiting"] volumes: parity: diff --git a/aurad-cli/src/shared/docker.js b/aurad-cli/src/shared/docker.js index c5677df..f88067c 100644 --- a/aurad-cli/src/shared/docker.js +++ b/aurad-cli/src/shared/docker.js @@ -9,6 +9,7 @@ const homedir = require('os').homedir(); const mkdirp = require('mkdirp'); const Promise = require('bluebird'); const url = require('url'); +const rimraf = require("rimraf"); const { STAKING_HOST } = require('../shared/config'); module.exports = class Docker { @@ -21,8 +22,9 @@ module.exports = class Docker { const RPC_HOST = `${rpc.hostname}${rpc.pathname}`; const RPC_PROTOCOL = rpc.protocol.slice(0,-1); const RPC_PORT = rpc.port || (RPC_PROTOCOL === 'http' ? '80' : (RPC_PROTOCOL === 'https' ? '443' : '')); - - return `HOME=${homedir} RPC_HOST=${RPC_HOST} RPC_PROTOCOL=${RPC_PROTOCOL} RPC_PORT=${RPC_PORT} STAKING_HOST=${STAKING_HOST}`; + const SSL_CERT_PATH = process.env.IS_STAGING === '1' ? 'ssl/staging/cert.pem' : 'ssl/production/cert.pem'; + const SSL_PRIVATE_KEY_PATH = process.env.IS_STAGING === '1' ? 'ssl/staging/key.pem' : 'ssl/production/key.pem'; + return `HOME=${homedir} SSL_CERT_PATH=${SSL_CERT_PATH} SSL_PRIVATE_KEY_PATH=${SSL_PRIVATE_KEY_PATH} RPC_HOST=${RPC_HOST} RPC_PROTOCOL=${RPC_PROTOCOL} RPC_PORT=${RPC_PORT} STAKING_HOST=${STAKING_HOST}`; } rpcIsCustom() { @@ -30,18 +32,39 @@ module.exports = class Docker { } async ensureDirs() { - await mkdirp(`${homedir}/.aurad`); - + await mkdirp(`${homedir}/.idexd`); + await this.migrateDirs(); const dirs = [ - `${homedir}/.aurad/db`, - `${homedir}/.aurad/ipc`, - `${homedir}/.aurad/downloads` + `${homedir}/.idexd/db`, + `${homedir}/.idexd/ipc`, + `${homedir}/.idexd/downloads` ]; await Promise.map(dirs, dir => mkdirp(dir)); if (process.getuid && process.getuid() === 0) { - console.warn('[WARNING] running `aura` as root is not recommended'); + console.warn('[WARNING] running `idex` as root is not recommended'); + } + } + + async migrateDirs() { + if (fs.existsSync(`${homedir}/.aurad`)) { + const runningContainers = await this.getRunningContainerIds(); + if (runningContainers['aurad'] || runningContainers['mysql']) { + throw new Error('Cannot migrate .aurad data while containers are running. Please run `idex stop` first.'); + } + if (fs.existsSync(`${homedir}/.aurad/db`)) { + fs.renameSync(`${homedir}/.aurad/db`, `${homedir}/.idexd/db`); + } + if (fs.existsSync(`${homedir}/.aurad/ipc`)) { + fs.renameSync(`${homedir}/.aurad/ipc`, `${homedir}/.idexd/ipc`); + } + if (fs.existsSync(`${homedir}/.aurad/downloads`)) { + fs.renameSync(`${homedir}/.aurad/downloads`, `${homedir}/.idexd/downloads`); + } + if (fs.existsSync(`${homedir}/.aurad`)) { + rimraf.sync(`${homedir}/.aurad`, {}, () => {}); + } } } @@ -66,7 +89,7 @@ module.exports = class Docker { } statusFile() { - return `${homedir}/.aurad/ipc/status.json`; + return `${homedir}/.idexd/ipc/status.json`; } async pull(services = []) { @@ -74,13 +97,8 @@ module.exports = class Docker { let {stdout} = await exec(`${this.env()} ${cmd} -f ${this.composeFile()} pull ${services.join(' ')}`); return(stdout); } - - async autoheal() { - let [cmd, version] = await this.hasDocker(); - let {stdout} = await exec(`${cmd} run -d --name autoheal --restart=always -e AUTOHEAL_CONTAINER_LABEL=autoheal -v /var/run/docker.sock:/var/run/docker.sock willfarrell/autoheal || ${cmd} start autoheal`); - } - async up(services = ['parity', 'mysql', 'aurad']) { + async up(services = ['parity', 'mysql', 'idexd']) { this.ensureDirs(); let [cmd, version] = await this.hasCompose(); @@ -105,7 +123,7 @@ module.exports = class Docker { try { await exec(`${dcmd} stop autoheal`); } catch(e){ - console.log(e); + // ok to fail -- only for systems still running autoheal } if (containers['aurad']) { console.log('Stopping AuraD'); @@ -116,6 +134,15 @@ module.exports = class Docker { console.log(e); } } + if (containers['idexd']) { + console.log('Stopping IDEXd'); + try { + await exec(`${dcmd} exec ${containers['idexd']} pm2 stop worker`); + await exec(`${cmd} -f ${this.composeFile()} stop -t 20 idexd`); + } catch(e){ + console.log(e); + } + } if (containers['mysql']) { console.log('Stopping MySQL'); try {await exec(`${cmd} -f ${this.composeFile()} stop mysql`)} catch(e){console.log(e)} @@ -138,6 +165,8 @@ module.exports = class Docker { ids['parity'] = result.stdout.toString().split('\n')[0]; result = await exec (`${cmd} -f ${this.composeFile()} ps -q aurad`); ids['aurad'] = result.stdout.toString().split('\n')[0]; + result = await exec (`${cmd} -f ${this.composeFile()} ps -q idexd`); + ids['idexd'] = result.stdout.toString().split('\n')[0]; return(ids); } @@ -149,7 +178,7 @@ module.exports = class Docker { async dbMigrate() { let [cmd, version] = await this.hasCompose(); - const {stdio} = await exec(`${cmd} -f ${this.composeFile()} run --entrypoint /usr/aurad/node_modules/.bin/sequelize aurad db:migrate`); + const {stdio} = await exec(`${cmd} -f ${this.composeFile()} run --entrypoint /usr/idexd/node_modules/.bin/sequelize idexd db:migrate`); return(stdio); } diff --git a/aurad-cli/src/shared/messages.js b/aurad-cli/src/shared/messages.js index 89a33ee..76968a9 100644 --- a/aurad-cli/src/shared/messages.js +++ b/aurad-cli/src/shared/messages.js @@ -12,12 +12,12 @@ const padding = (str, f) => { } module.exports = { - WELCOME_MESSAGE: `AuraD v${version}`, + WELCOME_MESSAGE: `IDEXd v${version}`, WALLET_EXPLAINER: ` - For AuraD staking, you need a wallet with a minimum of 10,000 AURA held for 7 days. + For IDEXd staking, you need a wallet with a minimum of 10,000 IDEX held for 7 days. We recommend using a cold wallet for security purposes. - Once we verify ownership of your cold wallet, AuraD will generate a local hot wallet for you. + Once we verify ownership of your cold wallet, IDEXd will generate a local hot wallet for you. `, WALLET_PROMPT: 'Cold wallet address' } diff --git a/package.json b/package.json index 6dd3ff6..c753fc3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { - "name": "aurad", + "name": "idexd", "version": "0.1.4", - "description": "Staking software for the AURA token", + "description": "Staking software for the IDEX token", "main": "lib/shared.js", "scripts": { "prepublish": "babel server -d lib", @@ -13,10 +13,10 @@ "integration-tests:watch": "NODE_ENV=test PORT=8888 DB_NAME=staking_coordinator_test mocha --watch --require @babel/register --require @babel/polyfill --recursive test/integration --timeout 10000" }, "author": "", - "repository": "github:auroradao/aurad", + "repository": "github:idexio/idexd", "license": "LGPL-v3", - "homepage": "https://github.com/auroradao/aurad", - "bugs": "https://github.com/auroradao/aurad/issues", + "homepage": "https://github.com/idexio/idexd", + "bugs": "https://github.com/idexio/idexd/issues", "dependencies": { "@babel/polyfill": "^7.0.0", "@sentry/node": "^4.4.1", diff --git a/server/index.js b/server/index.js index 792c257..5de5fdd 100644 --- a/server/index.js +++ b/server/index.js @@ -128,7 +128,6 @@ const keepalive = async () => { previousWorkerBlock = worker.currentBlock; previousWorkerBlockTime = Date.now(); } - console.log(timeSinceLastBlockUpdate); if (timeSinceLastBlockUpdate > MAX_OFFLINE_TIME) { await fs.appendFile('downtime.log', `Downtime detected at ${Date.now()}, last block was processed at ${previousWorkerBlockTime}\n`); } diff --git a/server/shared.js b/server/shared.js index cb74053..8983c19 100644 --- a/server/shared.js +++ b/server/shared.js @@ -9,12 +9,12 @@ const keepAliveHeaders = (web3, coldWallet, account, timestamp, json, challenge) const authorization = account.sign(payload); return { - 'x-aurad-id': coldWallet, - 'x-aurad-address': account.address, - 'x-aurad-date': timestamp, - 'x-aurad-digest': digest, - 'x-aurad-authorization': authorization.signature, - 'x-aurad-challenge': challenge, + 'x-idexd-id': coldWallet, + 'x-idexd-address': account.address, + 'x-idexd-date': timestamp, + 'x-idexd-digest': digest, + 'x-idexd-authorization': authorization.signature, + 'x-idexd-challenge': challenge, }; }; @@ -23,20 +23,20 @@ const reportError = (msg) => { }; const keepAliveVerify = async (web3, req, res, body) => { - const requiredHeaders = ['x-aurad-id', 'x-aurad-address', 'x-aurad-date', 'x-aurad-digest', 'x-aurad-authorization']; + const requiredHeaders = ['x-idexd-id', 'x-idexd-address', 'x-idexd-date', 'x-idexd-digest', 'x-idexd-authorization']; requiredHeaders.forEach(header => { if (!req.get(header)) reportError(`${header} is required`); }); - const coldWallet = req.get('x-aurad-id'); + const coldWallet = req.get('x-idexd-id'); if (!web3.utils.isAddress(coldWallet)) reportError('invalid ethereum address'); - const hotWallet = req.get('x-aurad-address'); + const hotWallet = req.get('x-idexd-address'); if (!web3.utils.isAddress(hotWallet)) reportError('invalid ethereum address'); - const timestamp = req.get('x-aurad-date'); - const digest = req.get('x-aurad-digest'); - const signature = req.get('x-aurad-authorization'); + const timestamp = req.get('x-idexd-date'); + const digest = req.get('x-idexd-digest'); + const signature = req.get('x-idexd-authorization'); const payload = formPayload(timestamp, coldWallet, hotWallet, body); const expectedHash = crypto.createHash('sha256').update(payload).digest('hex'); diff --git a/ssl/production/cert.pem b/ssl/production/cert.pem index 7ddcd01..584d7e0 100644 --- a/ssl/production/cert.pem +++ b/ssl/production/cert.pem @@ -1,104 +1,102 @@ -----BEGIN CERTIFICATE----- -MIIGdTCCBV2gAwIBAgIRAI0N9vjDUK8jGe04O1JZRKUwDQYJKoZIhvcNAQELBQAw -gZAxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO -BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMTYwNAYD -VQQDEy1DT01PRE8gUlNBIERvbWFpbiBWYWxpZGF0aW9uIFNlY3VyZSBTZXJ2ZXIg -Q0EwHhcNMTgxMjIzMDAwMDAwWhcNMTkxMjIzMjM1OTU5WjBlMSEwHwYDVQQLExhE -b21haW4gQ29udHJvbCBWYWxpZGF0ZWQxHjAcBgNVBAsTFUVzc2VudGlhbFNTTCBX -aWxkY2FyZDEgMB4GA1UEAwwXKi50aWVyMy5hdXJhc3Rha2luZy5uZXQwggEiMA0G -CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmfeL254fhOZIqNEXe2aEI4MXLbtxo -gKWK2U1tfjnCmWJaj2w9Ix4e4FaeBkxOB9LB6klvRz+WoRXi27xw2/NXL95yx5HO -tIIgj5WjHGGR2nWNTSgCFmhV7TzDxgjDaud5vwOvy5GRVy+swSjAvTwmQFEjjcFi -PPwoY9tojv90lZT4FPwhq14ZScAYj2UcPV8oklRqkwar1iLMFEKuwhcinh7Ciu5w -IlLB0exnF6UmNhcHEq5SGserYEUPVFbgcsmzaHZCBZLg6jC6uqTcclGkHG1u7hNV -hOvqTTa/EQNGq6FxxixllXefy4HnJt9Y3x/dkpE7QdphepfPYCwTM3idAgMBAAGj -ggLyMIIC7jAfBgNVHSMEGDAWgBSQr2o6lFoL2JDqElZz30O0Oija5zAdBgNVHQ4E -FgQUFrFy0URbwHFbMMIpQMcRDliX7BMwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB -/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCME8GA1UdIARIMEYw -OgYLKwYBBAGyMQECAgcwKzApBggrBgEFBQcCARYdaHR0cHM6Ly9zZWN1cmUuY29t -b2RvLmNvbS9DUFMwCAYGZ4EMAQIBMFQGA1UdHwRNMEswSaBHoEWGQ2h0dHA6Ly9j -cmwuY29tb2RvY2EuY29tL0NPTU9ET1JTQURvbWFpblZhbGlkYXRpb25TZWN1cmVT -ZXJ2ZXJDQS5jcmwwgYUGCCsGAQUFBwEBBHkwdzBPBggrBgEFBQcwAoZDaHR0cDov -L2NydC5jb21vZG9jYS5jb20vQ09NT0RPUlNBRG9tYWluVmFsaWRhdGlvblNlY3Vy -ZVNlcnZlckNBLmNydDAkBggrBgEFBQcwAYYYaHR0cDovL29jc3AuY29tb2RvY2Eu -Y29tMDkGA1UdEQQyMDCCFyoudGllcjMuYXVyYXN0YWtpbmcubmV0ghV0aWVyMy5h -dXJhc3Rha2luZy5uZXQwggEDBgorBgEEAdZ5AgQCBIH0BIHxAO8AdQC72d+8H4px -tZOUI5eqkntHOFeVCqtS6BqQlmQ2jh7RhQAAAWfZtJWvAAAEAwBGMEQCIAvEDCqZ -VlnG+9Clk5mGyZ4HRDzvP8W73OaIi+U6PSq/AiAVJ0i8bYEeM+k3eoPHwX7VL1wz -/F6q+ioRD7weMOpSGQB2AHR+2oMxrTMQkSGcziVPQnDCv/1eQiAIxjc1eeYQe8xW -AAABZ9m0leEAAAQDAEcwRQIhAK6CGI9qaVIjeUeWGB5gfhDdyRTMM8BlQ1K3of8T -mPVIAiBxNfDLZf8ZKOv+0ZkM7ImMdxeaB4jD404dIP9u3aTYKTANBgkqhkiG9w0B -AQsFAAOCAQEAcJeaX+THdLHnmc1Ig4StUSQF7P4OY1LVIHM8J3e2b9C5Gv4rtIa2 -Xcj8RfY94uxWO25bPNGiPie0zqDhgHQKmm+8wOeGpy1BU6cI9av1QoUfzdOYSMbu -7fcn+wfYzbTFk5xhZ08OrGz3aZnieGsB8EK42GAAO6AN6T/rnOvEZl2RtAp6+Aj2 -1oL5rTtx0rexlrJL42fc5MhbND5cEJEhNZbHZslgNqN2IIZat+1xr//aXX2xDJE1 -SKBD8AzuH5+srg3crOP7xbmyAQi37x7suWo8F3kpfBqJSIhBlLIFXxL5ctPKp3NM -MhPxJ0YdvARrhhVtYWh8UDqEPbXV10CHRA== +MIIGFzCCBP+gAwIBAgIRAIJ8sTfi1iB6rHQOCwZ5vkgwDQYJKoZIhvcNAQELBQAw +gY8xCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO +BgNVBAcTB1NhbGZvcmQxGDAWBgNVBAoTD1NlY3RpZ28gTGltaXRlZDE3MDUGA1UE +AxMuU2VjdGlnbyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD +QTAeFw0xOTA0MjkwMDAwMDBaFw0yMDA0MjgyMzU5NTlaMGUxITAfBgNVBAsTGERv +bWFpbiBDb250cm9sIFZhbGlkYXRlZDEeMBwGA1UECxMVRXNzZW50aWFsU1NMIFdp +bGRjYXJkMSAwHgYDVQQDDBcqLm5vZGVzLmlkZXhzdGFraW5nLm5ldDCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAOKcl46w+gxqTV5iyOR83tP6KUNG9uRw +I6fVs+GBwr0bMqFlNvBwP9wF2q5IdNFkYt71o/IJgjWdDrfMnlEhTvOBjpnEpTQz +/TplUfA3R7ABA8hCXgqTSKqgHFzfi45HSJcvIt2JVpDJLLW+DHURP39hooKxHRJV +0SrfCaXbrRlBQXDIR0HEZytoSVijGBJx9KankTyf1Bmkm1Qnq9hOpkq1JOxE1ouu +2sUdBplKYqomKxFUj1n53kikac6K1v5XGjQ92SMyNSpCyVCK3dh7MpXvvYnrQd9T +Jxe7/7rqxe7WIgI3+ZSWnb/Ighix8Qrf1q6ZvTQw+/OnHw37+SpOdwUCAwEAAaOC +ApUwggKRMB8GA1UdIwQYMBaAFI2MXsRUrYrhd+mb+ZsF4bgBjWHhMB0GA1UdDgQW +BBQmwt0fVCEtI0z8xklvnaiwTeVMijAOBgNVHQ8BAf8EBAMCBaAwDAYDVR0TAQH/ +BAIwADAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwSQYDVR0gBEIwQDA0 +BgsrBgEEAbIxAQICBzAlMCMGCCsGAQUFBwIBFhdodHRwczovL3NlY3RpZ28uY29t +L0NQUzAIBgZngQwBAgEwgYQGCCsGAQUFBwEBBHgwdjBPBggrBgEFBQcwAoZDaHR0 +cDovL2NydC5zZWN0aWdvLmNvbS9TZWN0aWdvUlNBRG9tYWluVmFsaWRhdGlvblNl +Y3VyZVNlcnZlckNBLmNydDAjBggrBgEFBQcwAYYXaHR0cDovL29jc3Auc2VjdGln +by5jb20wOQYDVR0RBDIwMIIXKi5ub2Rlcy5pZGV4c3Rha2luZy5uZXSCFW5vZGVz +LmlkZXhzdGFraW5nLm5ldDCCAQMGCisGAQQB1nkCBAIEgfQEgfEA7wB1ALvZ37wf +inG1k5Qjl6qSe0c4V5UKq1LoGpCWZDaOHtGFAAABamuIsHEAAAQDAEYwRAIgUooA +b3/UyisaaybOwZgBrzwW5EQZ4k1RFnnt8VMqEHECIE5b5M7W9v1CL9Z6O5FKJO3I +4STWx+pZ8TaBPr2qKcWMAHYAXqdz+d9WwOe1Nkh90EngMnqRmgyEoRIShBh1loFx +RVgAAAFqa4iwjwAABAMARzBFAiEAmfXYFITX7ccHpsJ5d1UAGMTsXMUQgebZKPyS +7m4FqdsCIBEeG6y5rw/HlkY4gYa+OFP9hs8EQRi2IOpLbCCFcrH0MA0GCSqGSIb3 +DQEBCwUAA4IBAQAA7BhZ1HFsrcYLrLK5cmjoVlGuLWiB0FhEeAG7PPTyHyGxJxCJ +2V8AYbUxpPnpQf+fsJtOVLqxOsRJXlOv9jQCgkVi/r+s36W8nQbHFPDs73wH9/AJ +xo/HAnqyJ4JuXKLQDDoQhsViJsgAtdEHmEQo9LexLFrh+gC/KMd0An9zQW0TGjdG +gg5f0HF4JOXY4vPrej6Wgoz8APls+XfG14iEdSbKlLkoxjS7drmT9EabEr5M68Sz +LfwSIx9g70b1daQzq/Lgbixt0Dm4V5tUbkc1GKVaKr2s3/bYB75L5uBV+yn9tBC/ +QT5PMTQXsamWf+7UbMbG8OLx/fH9CtqNkTzb -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB -hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV -BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy -MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT -EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh -bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh -bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0 -Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6 -ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51 -UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n -c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY -MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz -30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV -HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG -BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv -bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB -AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E -T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v -ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p -mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/ -e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps -P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY -dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc -2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG -V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4 -HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX -j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII -0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap -lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf -+AZxAeKCINT+b72x +MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx +MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV +BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE +ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g +VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N +TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj +eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E +oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk +Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY +uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j +BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb ++ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G +A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw +CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0 +LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr +BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv +bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov +L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H +ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH +7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi +H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx +RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv +xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38 +sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL +l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq +6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY +LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5 +yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K +00u/I5sUKUErmgQfky3xxzlIPK1aEn8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv +MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow -gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO -BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD -VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw -AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6 -2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr -ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt -4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq -m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/ -vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT -8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE -IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO -KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO -GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/ -s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g -JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD -AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9 -MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy -bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6 -Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ -zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj -Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY -Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5 -B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx -PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR -pu/xO28QOG8= +gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK +ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD +VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt +UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC +tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf +jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM +8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm +AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV +Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9 +N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF +qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9 +HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ ++gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX +HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv +A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/ +BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud +HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4 +dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0 +dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD +lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn +RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ +YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8 +Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf +Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p +0fKtirOMxyHNwu8= -----END CERTIFICATE----- diff --git a/ssl/production/key.pem b/ssl/production/key.pem index ba48d0e..535452e 100644 --- a/ssl/production/key.pem +++ b/ssl/production/key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY----- diff --git a/ssl/staging/cert.pem b/ssl/staging/cert.pem index 837f57c..4e0c363 100644 --- a/ssl/staging/cert.pem +++ b/ssl/staging/cert.pem @@ -1,104 +1,103 @@ -----BEGIN CERTIFICATE----- -MIIGjDCCBXSgAwIBAgIQIZEhNnoEU43Wn6IS6lOYzTANBgkqhkiG9w0BAQsFADCB -kDELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxNjA0BgNV -BAMTLUNPTU9ETyBSU0EgRG9tYWluIFZhbGlkYXRpb24gU2VjdXJlIFNlcnZlciBD -QTAeFw0xODEyMjUwMDAwMDBaFw0xOTEyMjUyMzU5NTlaMG0xITAfBgNVBAsTGERv -bWFpbiBDb250cm9sIFZhbGlkYXRlZDEeMBwGA1UECxMVRXNzZW50aWFsU1NMIFdp -bGRjYXJkMSgwJgYDVQQDDB8qLnN0YWdpbmcudGllcjMuYXVyYXN0YWtpbmcubmV0 -MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAn3GenhYu7EHcRyC3cjwc -jZTRc0RZZ8rqsDBG4K4AXFLqrmsnQJNIQYomBRRd1epS6VZJlQxmgyl8DoxeJCww -hsAreIIpxn0rGNB1BJty+SqU3tIAJc+vW9Zq3CFEL/tX3O1M9ANIdqakNo3fbF+o -pvSvznA6zGLHXxWkT2V6rfEJmM+s1slcEIgLd/t9nkvNShqXLAcO1B+BlLv3lCXm -fmy2cWoybjN0FhgM0mvYK8LPnXjMi0/q595JEZO7Pfbr/tUomyg1Se5mW2mllrCZ -1CyKK1+KOB2Nj+bgwGyHz73X5WFyfLWEVBgBCzhta6LaruYyAefaKanlr+7PQaY3 -UQIDAQABo4IDAjCCAv4wHwYDVR0jBBgwFoAUkK9qOpRaC9iQ6hJWc99DtDoo2ucw -HQYDVR0OBBYEFMEGKzcVkSTdBzbBsCIePl2aA1tDMA4GA1UdDwEB/wQEAwIFoDAM -BgNVHRMBAf8EAjAAMB0GA1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjBPBgNV -HSAESDBGMDoGCysGAQQBsjEBAgIHMCswKQYIKwYBBQUHAgEWHWh0dHBzOi8vc2Vj -dXJlLmNvbW9kby5jb20vQ1BTMAgGBmeBDAECATBUBgNVHR8ETTBLMEmgR6BFhkNo -dHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9SU0FEb21haW5WYWxpZGF0aW9u -U2VjdXJlU2VydmVyQ0EuY3JsMIGFBggrBgEFBQcBAQR5MHcwTwYIKwYBBQUHMAKG -Q2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9ET1JTQURvbWFpblZhbGlkYXRp -b25TZWN1cmVTZXJ2ZXJDQS5jcnQwJAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmNv -bW9kb2NhLmNvbTBJBgNVHREEQjBAgh8qLnN0YWdpbmcudGllcjMuYXVyYXN0YWtp -bmcubmV0gh1zdGFnaW5nLnRpZXIzLmF1cmFzdGFraW5nLm5ldDCCAQMGCisGAQQB -1nkCBAIEgfQEgfEA7wB2ALvZ37wfinG1k5Qjl6qSe0c4V5UKq1LoGpCWZDaOHtGF -AAABZ+S2h+YAAAQDAEcwRQIhAJxT/7UKQnahsZ5O1EbPtJ5wHUcT/V6wKlFPaDWU -K1g2AiAhH/P0i9u8iRUsAu206ZoCqWeBiaB7Jl6fMNCqv2fxdQB1AHR+2oMxrTMQ -kSGcziVPQnDCv/1eQiAIxjc1eeYQe8xWAAABZ+S2iFEAAAQDAEYwRAIgBf/8stkM -AeINTAYPwkJreba9LfX6Xj5hFxepol7QZUoCIAN1N2lcFD17NEeUo7G6q4ffkuxc -BUuKjoNu2WLPj6HfMA0GCSqGSIb3DQEBCwUAA4IBAQBhwoamsp6aCGYrFYxnqw24 -jYiBqNqulAdbiHdtX0VXiXwISmguLcofYmDO7iiWoHg323JNePJGR5FJAb8VjSPp -Mw+prmvtmP1kyPVZC0ZjuAQoILdThCtA5jqmaRJkCpCwqXE2Jg2FeV3C7hg08fDF -mFKu3hK5y4Kd1QEXNyKTjIUwXHf2vQv/Q/VLEMnG5DiXcz/RUIyA6rqQ2Fx1+8l2 -yBfnd/2BxcAJfMSvZXIwBec4J4GFfF+DWsKDeK5uy0fACLfdKVjvKQdw06beIIMT -qsZ0GQIBOadkWIthWnJ+YquIM5q7/lHMGnve+ZMUkzawiYK0a8bwduGk3ygHH+Nd +MIIGLzCCBRegAwIBAgIQGuF0I+fublnjta9kk7ScXDANBgkqhkiG9w0BAQsFADCB +jzELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQD +Ey5TZWN0aWdvIFJTQSBEb21haW4gVmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENB +MB4XDTE5MDQzMDAwMDAwMFoXDTIwMDQyOTIzNTk1OVowbTEhMB8GA1UECxMYRG9t +YWluIENvbnRyb2wgVmFsaWRhdGVkMR4wHAYDVQQLExVFc3NlbnRpYWxTU0wgV2ls +ZGNhcmQxKDAmBgNVBAMMHyouc3RhZ2luZy5ub2Rlcy5pZGV4c3Rha2luZy5uZXQw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCktBsPJIqj1gsJDfFf0vWH +sjLywDvxXsVK+p9B5h5JyVN2GZ7Gd1lyZx3Lngso8nlvmZkhMd4MgqM1spC0oKqC +QmZGWYZfAQVQqkRyhgtGtKX3wni6X+u5uv6JfX6WYPWCO3DQjn8NglfqceKQx6M4 +W4YSW7atqFhMruTaws/F67m8mOWPuzWs8zYQPlMVEgoWwoxfiwMyL0I2y0oQlVdq +vLPY/P+Jyy9oIAttRl3fsl81ZML1NAoS+KPkY6Uo/Z2XPcc/qFupdViGQrrRdQZ1 +mqApSzq9P2bvRijv5QesAlXOnIeATCQUSegPStPNSf1Ac+AvWHuHCXvG3pkaChHZ +AgMBAAGjggKmMIICojAfBgNVHSMEGDAWgBSNjF7EVK2K4Xfpm/mbBeG4AY1h4TAd +BgNVHQ4EFgQUbbWaftbS1EBmwLVowtxpXG4wpicwDgYDVR0PAQH/BAQDAgWgMAwG +A1UdEwEB/wQCMAAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMEkGA1Ud +IARCMEAwNAYLKwYBBAGyMQECAgcwJTAjBggrBgEFBQcCARYXaHR0cHM6Ly9zZWN0 +aWdvLmNvbS9DUFMwCAYGZ4EMAQIBMIGEBggrBgEFBQcBAQR4MHYwTwYIKwYBBQUH +MAKGQ2h0dHA6Ly9jcnQuc2VjdGlnby5jb20vU2VjdGlnb1JTQURvbWFpblZhbGlk +YXRpb25TZWN1cmVTZXJ2ZXJDQS5jcnQwIwYIKwYBBQUHMAGGF2h0dHA6Ly9vY3Nw +LnNlY3RpZ28uY29tMEkGA1UdEQRCMECCHyouc3RhZ2luZy5ub2Rlcy5pZGV4c3Rh +a2luZy5uZXSCHXN0YWdpbmcubm9kZXMuaWRleHN0YWtpbmcubmV0MIIBBAYKKwYB +BAHWeQIEAgSB9QSB8gDwAHYAu9nfvB+KcbWTlCOXqpJ7RzhXlQqrUugakJZkNo4e +0YUAAAFqa8UCowAABAMARzBFAiEAp+WTDdJE/znRn+QM9Cq6TR501PqwzdCwgJJf +ginfT6MCIFlJQAb/bc9ElIIsxnEjhs7A33MD3QXeaPF3eb9SFORaAHYAXqdz+d9W +wOe1Nkh90EngMnqRmgyEoRIShBh1loFxRVgAAAFqa8T73gAABAMARzBFAiEA7Tri +5Dl/b3zu0ErbiKyNrHv86G0OEpiNj7+O4gr5aF8CIFIuYxjIc56rqiobPGfzeJ8S +SFw9bnTbigo4ZZAo6rHIMA0GCSqGSIb3DQEBCwUAA4IBAQAc/6ZZstna3vE4eC7q +fd9MOlhysAxE1/4hb3wucuNnAZuOGXAdpZsdiaLOL7tVXWI5y/pgzSGIjkxCCFNJ +mMWiVCgKUEMp/hev6rfzQsqSS4HpuL13tJ81XekzmsWemNO/4UtrRBHNYRZapyPe +0n4kz3nc0VfryIFgZ0s0l3tsLglW5AwR3m+s+eUhI4/aCGF4nrQPJGSsOXtgbk6Y +vlzPm/Equ684xUBD9ecVe37dhqXoPFQzkHO9WM3MdU0A3ibtrCBRsBSfpWQ19uIK +63/5XGaxSlrpbSOxOaw1r3iyyeL7NiGsnOpCHASKV3PffCP1UvGiN1TJ8dd/7wRi +1Prm -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIGCDCCA/CgAwIBAgIQKy5u6tl1NmwUim7bo3yMBzANBgkqhkiG9w0BAQwFADCB -hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G -A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV -BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQwMjEy -MDAwMDAwWhcNMjkwMjExMjM1OTU5WjCBkDELMAkGA1UEBhMCR0IxGzAZBgNVBAgT -EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR -Q09NT0RPIENBIExpbWl0ZWQxNjA0BgNVBAMTLUNPTU9ETyBSU0EgRG9tYWluIFZh -bGlkYXRpb24gU2VjdXJlIFNlcnZlciBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEP -ADCCAQoCggEBAI7CAhnhoFmk6zg1jSz9AdDTScBkxwtiBUUWOqigwAwCfx3M28Sh -bXcDow+G+eMGnD4LgYqbSRutA776S9uMIO3Vzl5ljj4Nr0zCsLdFXlIvNN5IJGS0 -Qa4Al/e+Z96e0HqnU4A7fK31llVvl0cKfIWLIpeNs4TgllfQcBhglo/uLQeTnaG6 -ytHNe+nEKpooIZFNb5JPJaXyejXdJtxGpdCsWTWM/06RQ1A/WZMebFEh7lgUq/51 -UHg+TLAchhP6a5i84DuUHoVS3AOTJBhuyydRReZw3iVDpA3hSqXttn7IzW3uLh0n -c13cRTCAquOyQQuvvUSH2rnlG51/ruWFgqUCAwEAAaOCAWUwggFhMB8GA1UdIwQY -MBaAFLuvfgI9+qbxPISOre44mOzZMjLUMB0GA1UdDgQWBBSQr2o6lFoL2JDqElZz -30O0Oija5zAOBgNVHQ8BAf8EBAMCAYYwEgYDVR0TAQH/BAgwBgEB/wIBADAdBgNV -HSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwGwYDVR0gBBQwEjAGBgRVHSAAMAgG -BmeBDAECATBMBgNVHR8ERTBDMEGgP6A9hjtodHRwOi8vY3JsLmNvbW9kb2NhLmNv -bS9DT01PRE9SU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDBxBggrBgEFBQcB -AQRlMGMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9jcnQuY29tb2RvY2EuY29tL0NPTU9E -T1JTQUFkZFRydXN0Q0EuY3J0MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5jb21v -ZG9jYS5jb20wDQYJKoZIhvcNAQEMBQADggIBAE4rdk+SHGI2ibp3wScF9BzWRJ2p -mj6q1WZmAT7qSeaiNbz69t2Vjpk1mA42GHWx3d1Qcnyu3HeIzg/3kCDKo2cuH1Z/ -e+FE6kKVxF0NAVBGFfKBiVlsit2M8RKhjTpCipj4SzR7JzsItG8kO3KdY3RYPBps -P0/HEZrIqPW1N+8QRcZs2eBelSaz662jue5/DJpmNXMyYE7l3YphLG5SEXdoltMY -dVEVABt0iN3hxzgEQyjpFv3ZBdRdRydg1vs4O2xyopT4Qhrf7W8GjEXCBgCq5Ojc -2bXhc3js9iPc0d1sjhqPpepUfJa3w/5Vjo1JXvxku88+vZbrac2/4EjxYoIQ5QxG -V/Iz2tDIY+3GH5QFlkoakdH368+PUq4NCNk+qKBR6cGHdNXJ93SrLlP7u3r7l+L4 -HyaPs9Kg4DdbKDsx5Q5XLVq4rXmsXiBmGqW5prU5wfWYQ//u+aen/e7KJD2AFsQX -j4rBYKEMrltDR5FL1ZoXX/nUh8HCjLfn4g8wGTeGrODcQgPmlKidrv0PJFGUzpII -0fxQ8ANAe4hZ7Q7drNJ3gjTcBpUC2JD5Leo31Rpg0Gcg19hCC0Wvgmje3WYkN5Ap -lBlGGSW4gNfL1IYoakRwJiNiqZ+Gb7+6kHDSVneFeO/qJakXzlByjAA6quPbYzSf -+AZxAeKCINT+b72x +MIIGEzCCA/ugAwIBAgIQfVtRJrR2uhHbdBYLvFMNpzANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTgx +MTAyMDAwMDAwWhcNMzAxMjMxMjM1OTU5WjCBjzELMAkGA1UEBhMCR0IxGzAZBgNV +BAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEYMBYGA1UE +ChMPU2VjdGlnbyBMaW1pdGVkMTcwNQYDVQQDEy5TZWN0aWdvIFJTQSBEb21haW4g +VmFsaWRhdGlvbiBTZWN1cmUgU2VydmVyIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA1nMz1tc8INAA0hdFuNY+B6I/x0HuMjDJsGz99J/LEpgPLT+N +TQEMgg8Xf2Iu6bhIefsWg06t1zIlk7cHv7lQP6lMw0Aq6Tn/2YHKHxYyQdqAJrkj +eocgHuP/IJo8lURvh3UGkEC0MpMWCRAIIz7S3YcPb11RFGoKacVPAXJpz9OTTG0E +oKMbgn6xmrntxZ7FN3ifmgg0+1YuWMQJDgZkW7w33PGfKGioVrCSo1yfu4iYCBsk +Haswha6vsC6eep3BwEIc4gLw6uBK0u+QDrTBQBbwb4VCSmT3pDCg/r8uoydajotY +uK3DGReEY+1vVv2Dy2A0xHS+5p3b4eTlygxfFQIDAQABo4IBbjCCAWowHwYDVR0j +BBgwFoAUU3m/WqorSs9UgOHYm8Cd8rIDZsswHQYDVR0OBBYEFI2MXsRUrYrhd+mb ++ZsF4bgBjWHhMA4GA1UdDwEB/wQEAwIBhjASBgNVHRMBAf8ECDAGAQH/AgEAMB0G +A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjAbBgNVHSAEFDASMAYGBFUdIAAw +CAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNlcnRydXN0 +LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDB2Bggr +BgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRydXN0LmNv +bS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZaHR0cDov +L29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAMr9hvQ5Iw0/H +ukdN+Jx4GQHcEx2Ab/zDcLRSmjEzmldS+zGea6TvVKqJjUAXaPgREHzSyrHxVYbH +7rM2kYb2OVG/Rr8PoLq0935JxCo2F57kaDl6r5ROVm+yezu/Coa9zcV3HAO4OLGi +H19+24rcRki2aArPsrW04jTkZ6k4Zgle0rj8nSg6F0AnwnJOKf0hPHzPE/uWLMUx +RP0T7dWbqWlod3zu4f+k+TY4CFM5ooQ0nBnzvg6s1SQ36yOoeNDT5++SR2RiOSLv +xvcRviKFxmZEJCaOEDKNyJOuB56DPi/Z+fVGjmO+wea03KbNIaiGCpXZLoUmGv38 +sbZXQm2V0TP2ORQGgkE49Y9Y3IBbpNV9lXj9p5v//cWoaasm56ekBYdbqbe4oyAL +l6lFhd2zi+WJN44pDfwGF/Y4QA5C5BIG+3vzxhFoYt/jmPQT2BVPi7Fp2RBgvGQq +6jG35LWjOhSbJuMLe/0CjraZwTiXWTb2qHSihrZe68Zk6s+go/lunrotEbaGmAhY +LcmsJWTyXnW0OMGuf1pGg+pRyrbxmRE1a6Vqe8YAsOf4vmSyrcjC8azjUeqkk+B5 +yOGBQMkKW+ESPMFgKuOXwIlCypTPRpgSabuY0MLTDXJLR27lk8QyKGOHQ+SwMj4K +00u/I5sUKUErmgQfky3xxzlIPK1aEn8= -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- -MIIFdDCCBFygAwIBAgIQJ2buVutJ846r13Ci/ITeIjANBgkqhkiG9w0BAQwFADBv +MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow -gYUxCzAJBgNVBAYTAkdCMRswGQYDVQQIExJHcmVhdGVyIE1hbmNoZXN0ZXIxEDAO -BgNVBAcTB1NhbGZvcmQxGjAYBgNVBAoTEUNPTU9ETyBDQSBMaW1pdGVkMSswKQYD -VQQDEyJDT01PRE8gUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkq -hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkehUktIKVrGsDSTdxc9EZ3SZKzejfSNw -AHG8U9/E+ioSj0t/EFa9n3Byt2F/yUsPF6c947AEYe7/EZfH9IY+Cvo+XPmT5jR6 -2RRr55yzhaCCenavcZDX7P0N+pxs+t+wgvQUfvm+xKYvT3+Zf7X8Z0NyvQwA1onr -ayzT7Y+YHBSrfuXjbvzYqOSSJNpDa2K4Vf3qwbxstovzDo2a5JtsaZn4eEgwRdWt -4Q08RWD8MpZRJ7xnw8outmvqRsfHIKCxH2XeSAi6pE6p8oNGN4Tr6MyBSENnTnIq -m1y9TBsoilwie7SrmNnu4FGDwwlGTm0+mfqVF9p8M1dBPI1R7Qu2XK8sYxrfV8g/ -vOldxJuvRZnio1oktLqpVj3Pb6r/SVi+8Kj/9Lit6Tf7urj0Czr56ENCHonYhMsT -8dm74YlguIwoVqwUHZwK53Hrzw7dPamWoUi9PPevtQ0iTMARgexWO/bTouJbt7IE -IlKVgJNp6I5MZfGRAy1wdALqi2cVKWlSArvX31BqVUa/oKMoYX9w0MOiqiwhqkfO -KJwGRXa/ghgntNWutMtQ5mv0TIZxMOmm3xaG4Nj/QN370EKIf6MzOi5cHkERgWPO -GHFrK+ymircxXDpqR+DDeVnWIBqv8mqYqnK8V0rSS527EPywTEHl7R09XiidnMy/ -s1Hap0flhFMCAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTvA73g -JMtUGjAdBgNVHQ4EFgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQD -AgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1UdHwQ9 -MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4dGVy -bmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0dHA6 -Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAGS/g/FfmoXQ -zbihKVcN6Fr30ek+8nYEbvFScLsePP9NDXRqzIGCJdPDoCpdTPW6i6FtxFQJdcfj -Jw5dhHk3QBN39bSsHNA7qxcS1u80GH4r6XnTq1dFDK8o+tDb5VCViLvfhVdpfZLY -Uspzgb8c8+a4bmYRBbMelC1/kZWSWfFMzqORcUx8Rww7Cxn2obFshj5cqsQugsv5 -B5a6SE2Q8pTIqXOi6wZ7I53eovNNVZ96YUWYGGjHXkBrI/V5eu+MtWuLt29G9Hvx -PUsE2JOAWVrgQSQdso8VYFhH2+9uRv0V9dlfmrPb2LjkQLPNlzmuhbsdjrzch5vR -pu/xO28QOG8= +gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK +ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD +VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt +UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC +tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf +jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM +8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm +AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV +Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9 +N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF +qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9 +HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ ++gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX +HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv +A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/ +BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud +HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4 +dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0 +dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD +lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn +RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ +YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8 +Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf +Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p +0fKtirOMxyHNwu8= -----END CERTIFICATE----- diff --git a/ssl/staging/key.pem b/ssl/staging/key.pem index 15ca17c..c75ca5b 100644 --- a/ssl/staging/key.pem +++ b/ssl/staging/key.pem @@ -1,27 +1,27 @@ -----BEGIN RSA PRIVATE KEY----- -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 -----END RSA PRIVATE KEY-----