Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Version bumps packages #249

Merged
merged 20 commits into from
Mar 25, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 29 additions & 23 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ jobs:
# Job(s) with Linux OS
venv_build:
docker:
- image: circleci/python:3.8
- image: cimg/python:3.10
working_directory: ~/repo
steps:
- checkout
Expand All @@ -40,7 +40,7 @@ jobs:
- ./venv
venv_pytest:
docker:
- image: circleci/python:3.8
- image: cimg/python:3.10
working_directory: ~/repo
steps:
- checkout
Expand All @@ -56,7 +56,7 @@ jobs:
path: test-reports/
venv_lint:
docker:
- image: circleci/python:3.8
- image: cimg/python:3.10
working_directory: ~/repo
steps:
- checkout
Expand All @@ -65,37 +65,40 @@ jobs:
- run:
name: Run linter with venv
command: make venv_lint
tox-py37-core:
tox-py310-core:
<<: *tox_common
docker:
- image: circleci/python:3.7
- image: cimg/python:3.10
environment:
TOXENV: py37-core
TOXENV: py310-core
tox-py38-core:
<<: *tox_common
docker:
- image: circleci/python:3.8
- image: cimg/python:3.8
environment:
TOXENV: py38-core
tox-py37-script:
tox-py310-script:
<<: *tox_common
docker:
- image: circleci/python:3.7
- image: cimg/python:3.10
environment:
TOXENV: py37-script
TOXENV: py310-script
tox-py38-script:
<<: *tox_common
docker:
- image: circleci/python:3.8
- image: cimg/python:3.8
environment:
TOXENV: py38-script
# Job(s) with Windows OS
win-py37-script:
win-py310-script:
executor:
name: win/default
shell: powershell.exe
steps:
- checkout
- run:
name: "Install Python"
command: choco install python --version=3.10.3
- run:
name: Install testing requirements on Windows
command: python -m pip install -r requirements_test.txt
Expand All @@ -104,15 +107,15 @@ jobs:
command: python ./test_deposit_script.py
build-linux-amd64:
machine:
image: ubuntu-1604:202007-01
image: ubuntu-2004:202201-02
working_directory: ~/repo
steps:
- checkout
- run:
name: Install building requirements on Linux
command: |
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.5;
pyenv global 3.7.5;
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -f 3.10.2;
pyenv global 3.10.2;
pip install -r ./build_configs/linux/requirements.txt;
- run:
name: Build with build.spec
Expand All @@ -121,7 +124,7 @@ jobs:
export CIRCLE_SHORT_SHA1=$(eval echo $CIRCLE_SHA1 | cut -c -7)
export BUILD_FILE_NAME=staking_deposit-cli-${CIRCLE_SHORT_SHA1}-linux-amd64;
mkdir ${BUILD_FILE_NAME};
pyenv global 3.7.5;
pyenv global 3.10.2;
pyinstaller --distpath ./${BUILD_FILE_NAME} ./build_configs/linux/build.spec;
- run:
name: Test executable binaries
Expand Down Expand Up @@ -149,16 +152,16 @@ jobs:
path: /tmp/artifacts
build-linux-arm64:
machine:
image: ubuntu-2004:202101-01
image: ubuntu-2004:202201-02
resource_class: arm.medium
working_directory: ~/repo
steps:
- checkout
- run:
name: Install building requirements on Linux ARM64
command: |
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install 3.7.5;
pyenv global 3.7.5;
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install -f 3.10.2;
pyenv global 3.10.2;
pip install -r ./build_configs/linux/requirements.txt;
- run:
name: Build with build.spec
Expand All @@ -167,7 +170,7 @@ jobs:
export CIRCLE_SHORT_SHA1=$(eval echo $CIRCLE_SHA1 | cut -c -7)
export BUILD_FILE_NAME=staking_deposit-cli-${CIRCLE_SHORT_SHA1}-linux-arm64;
mkdir ${BUILD_FILE_NAME};
pyenv global 3.7.5;
pyenv global 3.10.2;
pyinstaller --distpath ./${BUILD_FILE_NAME} ./build_configs/linux/build.spec;
- run:
name: Test executable binaries
Expand Down Expand Up @@ -198,6 +201,9 @@ jobs:
shell: powershell.exe
steps:
- checkout
- run:
name: "Install Python"
command: choco install python --version=3.10.3
- run:
name: Install building requirements on Windows
command: pip install -r ./build_configs/windows/requirements.txt
Expand Down Expand Up @@ -292,11 +298,11 @@ workflows:
- venv_lint:
requires:
- venv_build
- tox-py37-core
- tox-py310-core
- tox-py38-core
- tox-py37-script
- tox-py310-script
- tox-py38-script
- win-py37-script
- win-py310-script
build_linux:
jobs:
- build-linux-amd64
Expand Down
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM python:3.7-alpine
FROM python:alpine3.14

WORKDIR /app

Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ You can find the audit report by Trail of Bits [here](https://github.com/trailof

### Build requirements

- [Python **3.7+**](https://www.python.org/about/gettingstarted/)
- [Python **3.8+**](https://www.python.org/about/gettingstarted/)
- [pip3](https://pip.pypa.io/en/stable/installing/)

### For Linux or MacOS users
Expand Down Expand Up @@ -170,7 +170,7 @@ Your keys can be found at: <YOUR_FOLDER_PATH>

##### Step 0. Python version checking

Ensure you are using Python version >= Python3.7:
Ensure you are using Python version >= Python3.8:

```sh
python3 -V
Expand Down Expand Up @@ -234,7 +234,7 @@ See [here](#successful-message)

##### Step 0. Python version checking

Ensure you are using Python version >= Python3.7:
Ensure you are using Python version >= Python3.8:

```sh
python3 -V
Expand Down Expand Up @@ -381,7 +381,7 @@ See [here](#existing-mnemonic-arguments) for `existing-mnemonic` arguments

##### Step 0. Python version checking

Ensure you are using Python version >= Python3.7 (Assume that you've installed Python 3 as the main Python):
Ensure you are using Python version >= Python3.8 (Assume that you've installed Python 3 as the main Python):

```sh
python -V
Expand Down Expand Up @@ -443,7 +443,7 @@ See [here](#existing-mnemonic-arguments) for `existing-mnemonic` arguments

##### Step 0. Python version checking

Ensure you are using Python version >= Python3.7 (Assume that you've installed Python 3 as the main Python):
Ensure you are using Python version >= Python3.8 (Assume that you've installed Python 3 as the main Python):

```cmd
python -V
Expand Down Expand Up @@ -531,5 +531,5 @@ python3 -m pytest .
👋This is not the section you are looking for.👋
If you are trying to **build the binary** on macos with an M1 Mac and you are using pyenv to manage your python version. You'll probably need to reinstall a given python version using:
```
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.10.2
env PYTHON_CONFIGURE_OPTS="--enable-framework" pyenv install 3.10.3
```
73 changes: 36 additions & 37 deletions build_configs/linux/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
-r ../../requirements.txt

# Build tools for binary distribution
pyinstaller==4.8 \
--hash=sha256:15d9266d78dc757c103962826e62bce1513825078160be580534ead2ef53087c \
--hash=sha256:44783d58ac4cb0a74a4f2180da4dacbe6a7a013a62b3aa10be6082252e296954 \
--hash=sha256:4c848720a65a5bd41249bc804d1bd3dd089bb56aef7f1c5e11f774f11e649443 \
--hash=sha256:53ed05214dd67624756fe4e82e861857921a79d0392debf8c9f5bb0ba5a479b6 \
--hash=sha256:5c2fd5f18c0397f3d9160446035556afc7f6446fd88048887fdf46eadf85c5ec \
--hash=sha256:6f5cdc39fbdec7b2e0c46cc0f5bd0071bb85e592e324bf4e15375c5ff19e55fc \
--hash=sha256:7ae868bbcc502832a2c802c84a1dbb9f48b44445c50144c29bfcd7b760140e13 \
--hash=sha256:9fbb05f5f67862005234da8c7eac69ef87e086f90e345749260051b031774c52 \
--hash=sha256:b0b3a31aa60292469f9595f298e2c147cba29c30edcd92a38fdce27727809625 \
--hash=sha256:b720853a00bd9547b7d6403d85f23b7f7e451e41bc907673d9fc7f8d9d274594 \
--hash=sha256:f00e1296abac71f3b5bb9fdc2e0d4c079201d62faeeeb894ccadd0616179fee3
setuptools==49.2.0 \
--hash=sha256:272c7f48f5cddc5af5901f4265274c421c7eede5c8bc454ac2903d3f8fc365e9 \
--hash=sha256:afe9e81fee0270d3f60d52608549cc8ec4c46dada8c95640c1a00160f577acf2
pyinstaller==4.10 \
--hash=sha256:05c21117b84199272ebd355b556af4714f6e79245e1c435d6f16653786d7d17e \
--hash=sha256:0dcaf6557cdb2da763c46e06e95a94a7634ab03fb09d91bc77988b01ee05c907 \
--hash=sha256:15557cd1a79d182967f0a5040750e6902e13ebd6cab41e3ed84d7b28a306357b \
--hash=sha256:581620bdcd32f01e89b13231256b807bb090e7eadf40c81c864ec402afa4758a \
--hash=sha256:70c71e827f4b34602cbc7a0947a067b662c1cbdc4db51832e13b97cca3c54dd7 \
--hash=sha256:714c4dcc319a41416744d1e30c6317405dfaed80d2adc45f8bfa70dc7367e664 \
--hash=sha256:7749c868d2e2dc84df7d6f65437226183c8a366f3a99bb2737785625c3a3cca1 \
--hash=sha256:7d94518ba1f8e9a8577345312276891ad7d6cd9785e453e9951b35647e2c7078 \
--hash=sha256:cfed0b3a43e73550a43a094610328109564710b9514afa093ef7199d072cae87 \
--hash=sha256:d4f79c0a774451f12baca4e476376418f011fa3039dde8fd172ea2aa8ff67bad \
--hash=sha256:f2166ff2cd95eefb0d377ae8d1071f186fa25edd410ede65b376162d5ec41909
setuptools==60.9.3 \
--hash=sha256:2347b2b432c891a863acadca2da9ac101eae6169b1d3dfee2ec605ecd50dbfe5 \
--hash=sha256:e4f30b9f84e5ab3decf945113119649fec09c1fc3507c6ebffec75646c56e62b
cffi==1.15.0 \
--hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \
--hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \
Expand Down Expand Up @@ -68,25 +68,24 @@ cffi==1.15.0 \
--hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \
--hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \
--hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796
pycparser==2.20 \
--hash=sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0 \
--hash=sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705
altgraph==0.17 \
--hash=sha256:1f05a47122542f97028caf78775a095fbe6a2699b5089de8477eb583167d69aa \
--hash=sha256:c623e5f3408ca61d4016f23a681b9adb100802ca3e3da5e718915a9e4052cebe
macholib==1.14 \
--hash=sha256:0c436bc847e7b1d9bda0560351bf76d7caf930fb585a828d13608839ef42c432 \
--hash=sha256:c500f02867515e6c60a27875b408920d18332ddf96b4035ef03beddd782d4281
pyinstaller-hooks-contrib==2022.0 \
--hash=sha256:29f0bd8fbb2ff6f2df60a0c147e5b5ad65ae5c1a982d90641a5f712de03fa161 \
--hash=sha256:61b667f51b2525377fae30793f38fd9752a08032c72b209effabf707c840cc38
importlib-metadata==3.10.0 \
--hash=sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a \
--hash=sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe
zipp==3.4.1 \
--hash=sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76 \
--hash=sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098
typing-extensions==3.7.4.3 \
--hash=sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918 \
--hash=sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c \
--hash=sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f
pycparser==2.21 \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
altgraph==0.17.2 \
--hash=sha256:743628f2ac6a7c26f5d9223c91ed8ecbba535f506f4b6f558885a8a56a105857 \
--hash=sha256:ebf2269361b47d97b3b88e696439f6e4cbc607c17c51feb1754f90fb79839158
macholib==1.15.2 \
--hash=sha256:1542c41da3600509f91c165cb897e7e54c0e74008bd8da5da7ebbee519d593d2 \
--hash=sha256:885613dd02d3e26dbd2b541eb4cc4ce611b841f827c0958ab98656e478b9e6f6
pyinstaller-hooks-contrib==2022.2 \
--hash=sha256:7605e440ccb55904cb2a87d72e83642ef176fb7030c77e52ac4d9679bb3d1537 \
--hash=sha256:ab1d14fe053016fff7b0c6aea51d980bac6d02114b04063b46ef7dac70c70e1e
importlib-metadata==4.11.3 \
--hash=sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6 \
--hash=sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539
zipp==3.7.0 \
--hash=sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d \
--hash=sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375
typing-extensions==4.1.1 \
--hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \
--hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2
73 changes: 36 additions & 37 deletions build_configs/macos/requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,21 @@
-r ../../requirements.txt

# Build tools for binary distribution
pyinstaller==4.8 \
--hash=sha256:15d9266d78dc757c103962826e62bce1513825078160be580534ead2ef53087c \
--hash=sha256:44783d58ac4cb0a74a4f2180da4dacbe6a7a013a62b3aa10be6082252e296954 \
--hash=sha256:4c848720a65a5bd41249bc804d1bd3dd089bb56aef7f1c5e11f774f11e649443 \
--hash=sha256:53ed05214dd67624756fe4e82e861857921a79d0392debf8c9f5bb0ba5a479b6 \
--hash=sha256:5c2fd5f18c0397f3d9160446035556afc7f6446fd88048887fdf46eadf85c5ec \
--hash=sha256:6f5cdc39fbdec7b2e0c46cc0f5bd0071bb85e592e324bf4e15375c5ff19e55fc \
--hash=sha256:7ae868bbcc502832a2c802c84a1dbb9f48b44445c50144c29bfcd7b760140e13 \
--hash=sha256:9fbb05f5f67862005234da8c7eac69ef87e086f90e345749260051b031774c52 \
--hash=sha256:b0b3a31aa60292469f9595f298e2c147cba29c30edcd92a38fdce27727809625 \
--hash=sha256:b720853a00bd9547b7d6403d85f23b7f7e451e41bc907673d9fc7f8d9d274594 \
--hash=sha256:f00e1296abac71f3b5bb9fdc2e0d4c079201d62faeeeb894ccadd0616179fee3
setuptools==49.2.0 \
--hash=sha256:272c7f48f5cddc5af5901f4265274c421c7eede5c8bc454ac2903d3f8fc365e9 \
--hash=sha256:afe9e81fee0270d3f60d52608549cc8ec4c46dada8c95640c1a00160f577acf2
pyinstaller==4.10 \
--hash=sha256:05c21117b84199272ebd355b556af4714f6e79245e1c435d6f16653786d7d17e \
--hash=sha256:0dcaf6557cdb2da763c46e06e95a94a7634ab03fb09d91bc77988b01ee05c907 \
--hash=sha256:15557cd1a79d182967f0a5040750e6902e13ebd6cab41e3ed84d7b28a306357b \
--hash=sha256:581620bdcd32f01e89b13231256b807bb090e7eadf40c81c864ec402afa4758a \
--hash=sha256:70c71e827f4b34602cbc7a0947a067b662c1cbdc4db51832e13b97cca3c54dd7 \
--hash=sha256:714c4dcc319a41416744d1e30c6317405dfaed80d2adc45f8bfa70dc7367e664 \
--hash=sha256:7749c868d2e2dc84df7d6f65437226183c8a366f3a99bb2737785625c3a3cca1 \
--hash=sha256:7d94518ba1f8e9a8577345312276891ad7d6cd9785e453e9951b35647e2c7078 \
--hash=sha256:cfed0b3a43e73550a43a094610328109564710b9514afa093ef7199d072cae87 \
--hash=sha256:d4f79c0a774451f12baca4e476376418f011fa3039dde8fd172ea2aa8ff67bad \
--hash=sha256:f2166ff2cd95eefb0d377ae8d1071f186fa25edd410ede65b376162d5ec41909
setuptools==60.9.3 \
--hash=sha256:2347b2b432c891a863acadca2da9ac101eae6169b1d3dfee2ec605ecd50dbfe5 \
--hash=sha256:e4f30b9f84e5ab3decf945113119649fec09c1fc3507c6ebffec75646c56e62b
cffi==1.15.0 \
--hash=sha256:00c878c90cb53ccfaae6b8bc18ad05d2036553e6d9d1d9dbcf323bbe83854ca3 \
--hash=sha256:0104fb5ae2391d46a4cb082abdd5c69ea4eab79d8d44eaaf79f1b1fd806ee4c2 \
Expand Down Expand Up @@ -68,25 +68,24 @@ cffi==1.15.0 \
--hash=sha256:f6f824dc3bce0edab5f427efcfb1d63ee75b6fcb7282900ccaf925be84efb0fc \
--hash=sha256:fd8a250edc26254fe5b33be00402e6d287f562b6a5b2152dec302fa15bb3e997 \
--hash=sha256:ffaa5c925128e29efbde7301d8ecaf35c8c60ffbcd6a1ffd3a552177c8e5e796
pycparser==2.20 \
--hash=sha256:2d475327684562c3a96cc71adf7dc8c4f0565175cf86b6d7a404ff4c771f15f0 \
--hash=sha256:7582ad22678f0fcd81102833f60ef8d0e57288b6b5fb00323d101be910e35705
altgraph==0.17 \
--hash=sha256:1f05a47122542f97028caf78775a095fbe6a2699b5089de8477eb583167d69aa \
--hash=sha256:c623e5f3408ca61d4016f23a681b9adb100802ca3e3da5e718915a9e4052cebe
macholib==1.14 \
--hash=sha256:0c436bc847e7b1d9bda0560351bf76d7caf930fb585a828d13608839ef42c432 \
--hash=sha256:c500f02867515e6c60a27875b408920d18332ddf96b4035ef03beddd782d4281
pyinstaller-hooks-contrib==2022.0 \
--hash=sha256:29f0bd8fbb2ff6f2df60a0c147e5b5ad65ae5c1a982d90641a5f712de03fa161 \
--hash=sha256:61b667f51b2525377fae30793f38fd9752a08032c72b209effabf707c840cc38
importlib-metadata==3.10.0 \
--hash=sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a \
--hash=sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe
zipp==3.4.1 \
--hash=sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76 \
--hash=sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098
typing-extensions==3.7.4.3 \
--hash=sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918 \
--hash=sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c \
--hash=sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f
pycparser==2.21 \
--hash=sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9 \
--hash=sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206
altgraph==0.17.2 \
--hash=sha256:743628f2ac6a7c26f5d9223c91ed8ecbba535f506f4b6f558885a8a56a105857 \
--hash=sha256:ebf2269361b47d97b3b88e696439f6e4cbc607c17c51feb1754f90fb79839158
macholib==1.15.2 \
--hash=sha256:1542c41da3600509f91c165cb897e7e54c0e74008bd8da5da7ebbee519d593d2 \
--hash=sha256:885613dd02d3e26dbd2b541eb4cc4ce611b841f827c0958ab98656e478b9e6f6
pyinstaller-hooks-contrib==2022.2 \
--hash=sha256:7605e440ccb55904cb2a87d72e83642ef176fb7030c77e52ac4d9679bb3d1537 \
--hash=sha256:ab1d14fe053016fff7b0c6aea51d980bac6d02114b04063b46ef7dac70c70e1e
importlib-metadata==4.11.3 \
--hash=sha256:1208431ca90a8cca1a6b8af391bb53c1a2db74e5d1cef6ddced95d4b2062edc6 \
--hash=sha256:ea4c597ebf37142f827b8f39299579e31685c31d3a438b59f469406afd0f2539
zipp==3.7.0 \
--hash=sha256:9f50f446828eb9d45b267433fd3e9da8d801f614129124863f9c51ebceafb87d \
--hash=sha256:b47250dd24f92b7dd6a0a8fc5244da14608f3ca90a5efcd37a3b1642fac9a375
typing-extensions==4.1.1 \
--hash=sha256:1a9462dcc3347a79b1f1c0271fbe79e844580bb598bafa1ed208b94da3cdcd42 \
--hash=sha256:21c85e0fe4b9a155d0799430b0ad741cdce7e359660ccbd8b530613e8df88ce2
Loading