plot(cars)
Hello world!
No non-system installation of Python could be found.
Would you like to download and install Miniconda?
Miniconda is an open source environment management system for Python.
See https://docs.conda.io/en/latest/miniconda.html for more details.
Would you like to install Miniconda? [Y/n]: y
* Downloading 'https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh' ...
trying URL 'https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-x86_64.sh'
Content type 'application/x-sh' length 52755183 bytes (50.3 MB)
==================================================
downloaded 50.3 MB
* Installing Miniconda -- please wait a moment ...
PREFIX=/Users/johnqu/Library/r-miniconda
Unpacking payload ...
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
## Package Plan ##
environment location: /Users/johnqu/Library/r-miniconda
added / updated specs:
- asn1crypto==1.3.0=py37_0
- ca-certificates==2020.1.1=0
- certifi==2019.11.28=py37_0
- cffi==1.14.0=py37hb5b8e2f_0
- chardet==3.0.4=py37_1003
- conda-package-handling==1.6.0=py37h1de35cc_0
- conda==4.8.2=py37_0
- cryptography==2.8=py37ha12b0ac_0
- idna==2.8=py37_0
- libcxx==4.0.1=hcfea43d_1
- libcxxabi==4.0.1=hcfea43d_1
- libedit==3.1.20181209=hb402a30_0
- libffi==3.2.1=h475c297_4
- ncurses==6.2=h0a44026_0
- openssl==1.1.1d=h1de35cc_4
- pip==20.0.2=py37_1
- pycosat==0.6.3=py37h1de35cc_0
- pycparser==2.19=py37_0
- pyopenssl==19.1.0=py37_0
- pysocks==1.7.1=py37_0
- python.app==2=py37_10
- python==3.7.6=h359304d_2
- readline==7.0=h1de35cc_5
- requests==2.22.0=py37_1
- ruamel_yaml==0.15.87=py37h1de35cc_0
- setuptools==45.2.0=py37_0
- six==1.14.0=py37_0
- sqlite==3.31.1=ha441bb4_0
- tk==8.6.8=ha441bb4_0
- tqdm==4.42.1=py_0
- urllib3==1.25.8=py37_0
- wheel==0.34.2=py37_0
- xz==5.2.4=h1de35cc_4
- yaml==0.1.7=hc338f04_2
- zlib==1.2.11=h1de35cc_3
The following NEW packages will be INSTALLED:
asn1crypto pkgs/main/osx-64::asn1crypto-1.3.0-py37_0
ca-certificates pkgs/main/osx-64::ca-certificates-2020.1.1-0
certifi pkgs/main/osx-64::certifi-2019.11.28-py37_0
cffi pkgs/main/osx-64::cffi-1.14.0-py37hb5b8e2f_0
chardet pkgs/main/osx-64::chardet-3.0.4-py37_1003
conda pkgs/main/osx-64::conda-4.8.2-py37_0
conda-package-han~ pkgs/main/osx-64::conda-package-handling-1.6.0-py37h1de35cc_0
cryptography pkgs/main/osx-64::cryptography-2.8-py37ha12b0ac_0
idna pkgs/main/osx-64::idna-2.8-py37_0
libcxx pkgs/main/osx-64::libcxx-4.0.1-hcfea43d_1
libcxxabi pkgs/main/osx-64::libcxxabi-4.0.1-hcfea43d_1
libedit pkgs/main/osx-64::libedit-3.1.20181209-hb402a30_0
libffi pkgs/main/osx-64::libffi-3.2.1-h475c297_4
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_0
openssl pkgs/main/osx-64::openssl-1.1.1d-h1de35cc_4
pip pkgs/main/osx-64::pip-20.0.2-py37_1
pycosat pkgs/main/osx-64::pycosat-0.6.3-py37h1de35cc_0
pycparser pkgs/main/osx-64::pycparser-2.19-py37_0
pyopenssl pkgs/main/osx-64::pyopenssl-19.1.0-py37_0
pysocks pkgs/main/osx-64::pysocks-1.7.1-py37_0
python pkgs/main/osx-64::python-3.7.6-h359304d_2
python.app pkgs/main/osx-64::python.app-2-py37_10
readline pkgs/main/osx-64::readline-7.0-h1de35cc_5
requests pkgs/main/osx-64::requests-2.22.0-py37_1
ruamel_yaml pkgs/main/osx-64::ruamel_yaml-0.15.87-py37h1de35cc_0
setuptools pkgs/main/osx-64::setuptools-45.2.0-py37_0
six pkgs/main/osx-64::six-1.14.0-py37_0
sqlite pkgs/main/osx-64::sqlite-3.31.1-ha441bb4_0
tk pkgs/main/osx-64::tk-8.6.8-ha441bb4_0
tqdm pkgs/main/noarch::tqdm-4.42.1-py_0
urllib3 pkgs/main/osx-64::urllib3-1.25.8-py37_0
wheel pkgs/main/osx-64::wheel-0.34.2-py37_0
xz pkgs/main/osx-64::xz-5.2.4-h1de35cc_4
yaml pkgs/main/osx-64::yaml-0.1.7-hc338f04_2
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Preparing transaction: ...working... done
Executing transaction: ...working... done
installation finished.
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
## Package Plan ##
environment location: /Users/johnqu/Library/r-miniconda
added / updated specs:
- conda
The following packages will be downloaded:
package | build
---------------------------|-----------------
certifi-2020.4.5.1 | py37_0 155 KB
conda-4.8.3 | py37_0 2.8 MB
conda-package-handling-1.6.1| py37h1de35cc_0 1.3 MB
cryptography-2.9.2 | py37ha12b0ac_0 547 KB
idna-2.9 | py_1 49 KB
libcxx-10.0.0 | 1 760 KB
libffi-3.2.1 | h0a44026_6 39 KB
ncurses-6.2 | h0a44026_1 749 KB
openssl-1.1.1g | h1de35cc_0 2.2 MB
pip-20.0.2 | py37_3 1.7 MB
pycparser-2.20 | py_0 92 KB
requests-2.23.0 | py37_0 92 KB
setuptools-46.4.0 | py37_0 522 KB
sqlite-3.31.1 | h5c1f38d_1 1.3 MB
tqdm-4.46.0 | py_0 60 KB
xz-5.2.5 | h1de35cc_0 240 KB
------------------------------------------------------------
Total: 12.5 MB
The following packages will be REMOVED:
asn1crypto-1.3.0-py37_0
libcxxabi-4.0.1-hcfea43d_1
The following packages will be UPDATED:
certifi 2019.11.28-py37_0 --> 2020.4.5.1-py37_0
conda 4.8.2-py37_0 --> 4.8.3-py37_0
conda-package-han~ 1.6.0-py37h1de35cc_0 --> 1.6.1-py37h1de35cc_0
cryptography 2.8-py37ha12b0ac_0 --> 2.9.2-py37ha12b0ac_0
idna pkgs/main/osx-64::idna-2.8-py37_0 --> pkgs/main/noarch::idna-2.9-py_1
libcxx 4.0.1-hcfea43d_1 --> 10.0.0-1
libffi 3.2.1-h475c297_4 --> 3.2.1-h0a44026_6
ncurses 6.2-h0a44026_0 --> 6.2-h0a44026_1
openssl 1.1.1d-h1de35cc_4 --> 1.1.1g-h1de35cc_0
pip 20.0.2-py37_1 --> 20.0.2-py37_3
pycparser pkgs/main/osx-64::pycparser-2.19-py37~ --> pkgs/main/noarch::pycparser-2.20-py_0
requests 2.22.0-py37_1 --> 2.23.0-py37_0
setuptools 45.2.0-py37_0 --> 46.4.0-py37_0
sqlite 3.31.1-ha441bb4_0 --> 3.31.1-h5c1f38d_1
tqdm 4.42.1-py_0 --> 4.46.0-py_0
xz 5.2.4-h1de35cc_4 --> 5.2.5-h1de35cc_0
Downloading and Extracting Packages
setuptools-46.4.0 | 522 KB | ########## | 100%
conda-package-handli | 1.3 MB | ########## | 100%
pycparser-2.20 | 92 KB | ########## | 100%
pip-20.0.2 | 1.7 MB | ########## | 100%
openssl-1.1.1g | 2.2 MB | ########## | 100%
xz-5.2.5 | 240 KB | ########## | 100%
idna-2.9 | 49 KB | ########## | 100%
sqlite-3.31.1 | 1.3 MB | ########## | 100%
certifi-2020.4.5.1 | 155 KB | ########## | 100%
ncurses-6.2 | 749 KB | ########## | 100%
libcxx-10.0.0 | 760 KB | ########## | 100%
tqdm-4.46.0 | 60 KB | ########## | 100%
requests-2.23.0 | 92 KB | ########## | 100%
cryptography-2.9.2 | 547 KB | ########## | 100%
conda-4.8.3 | 2.8 MB | ########## | 100%
libffi-3.2.1 | 39 KB | ########## | 100%
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
## Package Plan ##
environment location: /Users/johnqu/Library/r-miniconda/envs/r-reticulate
added / updated specs:
- numpy
- python=3.6
The following packages will be downloaded:
package | build
---------------------------|-----------------
blas-1.0 | mkl 6 KB
certifi-2020.4.5.1 | py36_0 155 KB
intel-openmp-2019.4 | 233 887 KB
libffi-3.3 | h0a44026_1 45 KB
libgfortran-3.0.1 | h93005f0_2 426 KB
mkl-2019.4 | 233 101.9 MB
mkl-service-2.3.0 | py36hfbe908c_0 202 KB
mkl_fft-1.0.15 | py36h5e564d8_0 139 KB
mkl_random-1.1.0 | py36ha771720_0 287 KB
numpy-1.18.1 | py36h7241aed_0 5 KB
numpy-base-1.18.1 | py36h3304bdc_1 4.0 MB
pip-20.0.2 | py36_3 1.7 MB
python-3.6.10 | hf48f09d_2 17.1 MB
readline-8.0 | h1de35cc_0 326 KB
setuptools-46.4.0 | py36_0 513 KB
six-1.14.0 | py36_0 26 KB
wheel-0.34.2 | py36_0 50 KB
------------------------------------------------------------
Total: 127.7 MB
The following NEW packages will be INSTALLED:
blas pkgs/main/osx-64::blas-1.0-mkl
ca-certificates pkgs/main/osx-64::ca-certificates-2020.1.1-0
certifi pkgs/main/osx-64::certifi-2020.4.5.1-py36_0
intel-openmp pkgs/main/osx-64::intel-openmp-2019.4-233
libcxx pkgs/main/osx-64::libcxx-10.0.0-1
libedit pkgs/main/osx-64::libedit-3.1.20181209-hb402a30_0
libffi pkgs/main/osx-64::libffi-3.3-h0a44026_1
libgfortran pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2
mkl pkgs/main/osx-64::mkl-2019.4-233
mkl-service pkgs/main/osx-64::mkl-service-2.3.0-py36hfbe908c_0
mkl_fft pkgs/main/osx-64::mkl_fft-1.0.15-py36h5e564d8_0
mkl_random pkgs/main/osx-64::mkl_random-1.1.0-py36ha771720_0
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_1
numpy pkgs/main/osx-64::numpy-1.18.1-py36h7241aed_0
numpy-base pkgs/main/osx-64::numpy-base-1.18.1-py36h3304bdc_1
openssl pkgs/main/osx-64::openssl-1.1.1g-h1de35cc_0
pip pkgs/main/osx-64::pip-20.0.2-py36_3
python pkgs/main/osx-64::python-3.6.10-hf48f09d_2
readline pkgs/main/osx-64::readline-8.0-h1de35cc_0
setuptools pkgs/main/osx-64::setuptools-46.4.0-py36_0
six pkgs/main/osx-64::six-1.14.0-py36_0
sqlite pkgs/main/osx-64::sqlite-3.31.1-h5c1f38d_1
tk pkgs/main/osx-64::tk-8.6.8-ha441bb4_0
wheel pkgs/main/osx-64::wheel-0.34.2-py36_0
xz pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Downloading and Extracting Packages
mkl-2019.4 | 101.9 MB | #######6 | 77%
libgfortran-3.0.1 | 426 KB | ########## | 100%
libffi-3.3 | 45 KB | ########## | 100%
python-3.6.10 | 17.1 MB | ########## | 100%
wheel-0.34.2 | 50 KB | ########## | 100%
mkl_fft-1.0.15 | 139 KB | ########## | 100%
mkl-service-2.3.0 | 202 KB | ########## | 100%
blas-1.0 | 6 KB | ########## | 100%
numpy-1.18.1 | 5 KB | ########## | 100%
numpy-base-1.18.1 | 4.0 MB | ########## | 100%
pip-20.0.2 | 1.7 MB | ########## | 100%
readline-8.0 | 326 KB | ########## | 100%
setuptools-46.4.0 | 513 KB | ########## | 100%
six-1.14.0 | 26 KB | ########## | 100%
intel-openmp-2019.4 | 887 KB | ########## | 100%
certifi-2020.4.5.1 | 155 KB | ########## | 100%
mkl_random-1.1.0 | 287 KB | ########## | 100%
CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/osx-64/mkl-2019.4-233.conda>
Elapsed: -
An HTTP error occurred when trying to retrieve this URL.
HTTP errors are often intermittent, and a simple retry will get you on your way.
Error: Error 1 occurred creating conda environment r-reticulate
Collecting package metadata (current_repodata.json): ...working... done
Solving environment: ...working... done
## Package Plan ##
environment location: /Users/johnqu/Library/r-miniconda/envs/r-reticulate
added / updated specs:
- numpy
- python=3.6
The following packages will be downloaded:
package | build
---------------------------|-----------------
mkl-2019.4 | 233 101.9 MB
------------------------------------------------------------
Total: 101.9 MB
The following NEW packages will be INSTALLED:
blas pkgs/main/osx-64::blas-1.0-mkl
ca-certificates pkgs/main/osx-64::ca-certificates-2020.1.1-0
certifi pkgs/main/osx-64::certifi-2020.4.5.1-py36_0
intel-openmp pkgs/main/osx-64::intel-openmp-2019.4-233
libcxx pkgs/main/osx-64::libcxx-10.0.0-1
libedit pkgs/main/osx-64::libedit-3.1.20181209-hb402a30_0
libffi pkgs/main/osx-64::libffi-3.3-h0a44026_1
libgfortran pkgs/main/osx-64::libgfortran-3.0.1-h93005f0_2
mkl pkgs/main/osx-64::mkl-2019.4-233
mkl-service pkgs/main/osx-64::mkl-service-2.3.0-py36hfbe908c_0
mkl_fft pkgs/main/osx-64::mkl_fft-1.0.15-py36h5e564d8_0
mkl_random pkgs/main/osx-64::mkl_random-1.1.0-py36ha771720_0
ncurses pkgs/main/osx-64::ncurses-6.2-h0a44026_1
numpy pkgs/main/osx-64::numpy-1.18.1-py36h7241aed_0
numpy-base pkgs/main/osx-64::numpy-base-1.18.1-py36h3304bdc_1
openssl pkgs/main/osx-64::openssl-1.1.1g-h1de35cc_0
pip pkgs/main/osx-64::pip-20.0.2-py36_3
python pkgs/main/osx-64::python-3.6.10-hf48f09d_2
readline pkgs/main/osx-64::readline-8.0-h1de35cc_0
setuptools pkgs/main/osx-64::setuptools-46.4.0-py36_0
six pkgs/main/osx-64::six-1.14.0-py36_0
sqlite pkgs/main/osx-64::sqlite-3.31.1-h5c1f38d_1
tk pkgs/main/osx-64::tk-8.6.8-ha441bb4_0
wheel pkgs/main/osx-64::wheel-0.34.2-py36_0
xz pkgs/main/osx-64::xz-5.2.5-h1de35cc_0
zlib pkgs/main/osx-64::zlib-1.2.11-h1de35cc_3
Downloading and Extracting Packages
mkl-2019.4 | 101.9 MB | ########## | 100%
Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done
#
# To activate this environment, use
#
# $ conda activate /Users/johnqu/Library/r-miniconda/envs/r-reticulate
#
# To deactivate an active environment, use
#
# $ conda deactivate
LS0tCnRpdGxlOiBJbnN0YWxsIG1pbmljb25kYSB3aXRoaW4gcnN0dWRpbwpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKYXV0aG9yOiDmm7LmlL8KZGF0ZTogJzIwMjAtMDUtMjMnCnNsdWc6IGluc3RhbGwtbWluaWNvbmRhLXdpdGhpbi1yc3R1ZGlvCmNhdGVnb3JpZXM6IFtdCnRhZ3M6IFtdCgotLS0KYGBge3J9CnBsb3QoY2FycykKYGBgCgpgYGB7cHl0aG9ufQp4ID0gIkhlbGxvIHdvcmxkIgpwcmludCh4ICsgIiEiKQpgYGAKCmBgYHtjb25zb2xlfQpObyBub24tc3lzdGVtIGluc3RhbGxhdGlvbiBvZiBQeXRob24gY291bGQgYmUgZm91bmQuCldvdWxkIHlvdSBsaWtlIHRvIGRvd25sb2FkIGFuZCBpbnN0YWxsIE1pbmljb25kYT8KTWluaWNvbmRhIGlzIGFuIG9wZW4gc291cmNlIGVudmlyb25tZW50IG1hbmFnZW1lbnQgc3lzdGVtIGZvciBQeXRob24uClNlZSBodHRwczovL2RvY3MuY29uZGEuaW8vZW4vbGF0ZXN0L21pbmljb25kYS5odG1sIGZvciBtb3JlIGRldGFpbHMuCgoKV291bGQgeW91IGxpa2UgdG8gaW5zdGFsbCBNaW5pY29uZGE/IFtZL25dOiB5CiogRG93bmxvYWRpbmcgJ2h0dHBzOi8vcmVwby5hbmFjb25kYS5jb20vbWluaWNvbmRhL01pbmljb25kYTMtbGF0ZXN0LU1hY09TWC14ODZfNjQuc2gnIC4uLgp0cnlpbmcgVVJMICdodHRwczovL3JlcG8uYW5hY29uZGEuY29tL21pbmljb25kYS9NaW5pY29uZGEzLWxhdGVzdC1NYWNPU1gteDg2XzY0LnNoJwpDb250ZW50IHR5cGUgJ2FwcGxpY2F0aW9uL3gtc2gnIGxlbmd0aCA1Mjc1NTE4MyBieXRlcyAoNTAuMyBNQikKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KZG93bmxvYWRlZCA1MC4zIE1CCgoqIEluc3RhbGxpbmcgTWluaWNvbmRhIC0tIHBsZWFzZSB3YWl0IGEgbW9tZW50IC4uLgpQUkVGSVg9L1VzZXJzL2pvaG5xdS9MaWJyYXJ5L3ItbWluaWNvbmRhClVucGFja2luZyBwYXlsb2FkIC4uLgpDb2xsZWN0aW5nIHBhY2thZ2UgbWV0YWRhdGEgKGN1cnJlbnRfcmVwb2RhdGEuanNvbik6IC4uLndvcmtpbmcuLi4gZG9uZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApTb2x2aW5nIGVudmlyb25tZW50OiAuLi53b3JraW5nLi4uIGRvbmUKCiMjIFBhY2thZ2UgUGxhbiAjIwoKICBlbnZpcm9ubWVudCBsb2NhdGlvbjogL1VzZXJzL2pvaG5xdS9MaWJyYXJ5L3ItbWluaWNvbmRhCgogIGFkZGVkIC8gdXBkYXRlZCBzcGVjczoKICAgIC0gYXNuMWNyeXB0bz09MS4zLjA9cHkzN18wCiAgICAtIGNhLWNlcnRpZmljYXRlcz09MjAyMC4xLjE9MAogICAgLSBjZXJ0aWZpPT0yMDE5LjExLjI4PXB5MzdfMAogICAgLSBjZmZpPT0xLjE0LjA9cHkzN2hiNWI4ZTJmXzAKICAgIC0gY2hhcmRldD09My4wLjQ9cHkzN18xMDAzCiAgICAtIGNvbmRhLXBhY2thZ2UtaGFuZGxpbmc9PTEuNi4wPXB5MzdoMWRlMzVjY18wCiAgICAtIGNvbmRhPT00LjguMj1weTM3XzAKICAgIC0gY3J5cHRvZ3JhcGh5PT0yLjg9cHkzN2hhMTJiMGFjXzAKICAgIC0gaWRuYT09Mi44PXB5MzdfMAogICAgLSBsaWJjeHg9PTQuMC4xPWhjZmVhNDNkXzEKICAgIC0gbGliY3h4YWJpPT00LjAuMT1oY2ZlYTQzZF8xCiAgICAtIGxpYmVkaXQ9PTMuMS4yMDE4MTIwOT1oYjQwMmEzMF8wCiAgICAtIGxpYmZmaT09My4yLjE9aDQ3NWMyOTdfNAogICAgLSBuY3Vyc2VzPT02LjI9aDBhNDQwMjZfMAogICAgLSBvcGVuc3NsPT0xLjEuMWQ9aDFkZTM1Y2NfNAogICAgLSBwaXA9PTIwLjAuMj1weTM3XzEKICAgIC0gcHljb3NhdD09MC42LjM9cHkzN2gxZGUzNWNjXzAKICAgIC0gcHljcGFyc2VyPT0yLjE5PXB5MzdfMAogICAgLSBweW9wZW5zc2w9PTE5LjEuMD1weTM3XzAKICAgIC0gcHlzb2Nrcz09MS43LjE9cHkzN18wCiAgICAtIHB5dGhvbi5hcHA9PTI9cHkzN18xMAogICAgLSBweXRob249PTMuNy42PWgzNTkzMDRkXzIKICAgIC0gcmVhZGxpbmU9PTcuMD1oMWRlMzVjY181CiAgICAtIHJlcXVlc3RzPT0yLjIyLjA9cHkzN18xCiAgICAtIHJ1YW1lbF95YW1sPT0wLjE1Ljg3PXB5MzdoMWRlMzVjY18wCiAgICAtIHNldHVwdG9vbHM9PTQ1LjIuMD1weTM3XzAKICAgIC0gc2l4PT0xLjE0LjA9cHkzN18wCiAgICAtIHNxbGl0ZT09My4zMS4xPWhhNDQxYmI0XzAKICAgIC0gdGs9PTguNi44PWhhNDQxYmI0XzAKICAgIC0gdHFkbT09NC40Mi4xPXB5XzAKICAgIC0gdXJsbGliMz09MS4yNS44PXB5MzdfMAogICAgLSB3aGVlbD09MC4zNC4yPXB5MzdfMAogICAgLSB4ej09NS4yLjQ9aDFkZTM1Y2NfNAogICAgLSB5YW1sPT0wLjEuNz1oYzMzOGYwNF8yCiAgICAtIHpsaWI9PTEuMi4xMT1oMWRlMzVjY18zCgoKVGhlIGZvbGxvd2luZyBORVcgcGFja2FnZXMgd2lsbCBiZSBJTlNUQUxMRUQ6CgogIGFzbjFjcnlwdG8gICAgICAgICBwa2dzL21haW4vb3N4LTY0Ojphc24xY3J5cHRvLTEuMy4wLXB5MzdfMAogIGNhLWNlcnRpZmljYXRlcyAgICBwa2dzL21haW4vb3N4LTY0OjpjYS1jZXJ0aWZpY2F0ZXMtMjAyMC4xLjEtMAogIGNlcnRpZmkgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpjZXJ0aWZpLTIwMTkuMTEuMjgtcHkzN18wCiAgY2ZmaSAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNmZmktMS4xNC4wLXB5MzdoYjViOGUyZl8wCiAgY2hhcmRldCAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNoYXJkZXQtMy4wLjQtcHkzN18xMDAzCiAgY29uZGEgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNvbmRhLTQuOC4yLXB5MzdfMAogIGNvbmRhLXBhY2thZ2UtaGFufiBwa2dzL21haW4vb3N4LTY0Ojpjb25kYS1wYWNrYWdlLWhhbmRsaW5nLTEuNi4wLXB5MzdoMWRlMzVjY18wCiAgY3J5cHRvZ3JhcGh5ICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNyeXB0b2dyYXBoeS0yLjgtcHkzN2hhMTJiMGFjXzAKICBpZG5hICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6aWRuYS0yLjgtcHkzN18wCiAgbGliY3h4ICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmN4eC00LjAuMS1oY2ZlYTQzZF8xCiAgbGliY3h4YWJpICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmN4eGFiaS00LjAuMS1oY2ZlYTQzZF8xCiAgbGliZWRpdCAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmVkaXQtMy4xLjIwMTgxMjA5LWhiNDAyYTMwXzAKICBsaWJmZmkgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bGliZmZpLTMuMi4xLWg0NzVjMjk3XzQKICBuY3Vyc2VzICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bmN1cnNlcy02LjItaDBhNDQwMjZfMAogIG9wZW5zc2wgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpvcGVuc3NsLTEuMS4xZC1oMWRlMzVjY180CiAgcGlwICAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnBpcC0yMC4wLjItcHkzN18xCiAgcHljb3NhdCAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5Y29zYXQtMC42LjMtcHkzN2gxZGUzNWNjXzAKICBweWNwYXJzZXIgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6cHljcGFyc2VyLTIuMTktcHkzN18wCiAgcHlvcGVuc3NsICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5b3BlbnNzbC0xOS4xLjAtcHkzN18wCiAgcHlzb2NrcyAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5c29ja3MtMS43LjEtcHkzN18wCiAgcHl0aG9uICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5dGhvbi0zLjcuNi1oMzU5MzA0ZF8yCiAgcHl0aG9uLmFwcCAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5dGhvbi5hcHAtMi1weTM3XzEwCiAgcmVhZGxpbmUgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnJlYWRsaW5lLTcuMC1oMWRlMzVjY181CiAgcmVxdWVzdHMgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnJlcXVlc3RzLTIuMjIuMC1weTM3XzEKICBydWFtZWxfeWFtbCAgICAgICAgcGtncy9tYWluL29zeC02NDo6cnVhbWVsX3lhbWwtMC4xNS44Ny1weTM3aDFkZTM1Y2NfMAogIHNldHVwdG9vbHMgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpzZXR1cHRvb2xzLTQ1LjIuMC1weTM3XzAKICBzaXggICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6c2l4LTEuMTQuMC1weTM3XzAKICBzcWxpdGUgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6c3FsaXRlLTMuMzEuMS1oYTQ0MWJiNF8wCiAgdGsgICAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnRrLTguNi44LWhhNDQxYmI0XzAKICB0cWRtICAgICAgICAgICAgICAgcGtncy9tYWluL25vYXJjaDo6dHFkbS00LjQyLjEtcHlfMAogIHVybGxpYjMgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0Ojp1cmxsaWIzLTEuMjUuOC1weTM3XzAKICB3aGVlbCAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6d2hlZWwtMC4zNC4yLXB5MzdfMAogIHh6ICAgICAgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0Ojp4ei01LjIuNC1oMWRlMzVjY180CiAgeWFtbCAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnlhbWwtMC4xLjctaGMzMzhmMDRfMgogIHpsaWIgICAgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0Ojp6bGliLTEuMi4xMS1oMWRlMzVjY18zCgoKUHJlcGFyaW5nIHRyYW5zYWN0aW9uOiAuLi53b3JraW5nLi4uIGRvbmUKRXhlY3V0aW5nIHRyYW5zYWN0aW9uOiAuLi53b3JraW5nLi4uIGRvbmUKaW5zdGFsbGF0aW9uIGZpbmlzaGVkLgpDb2xsZWN0aW5nIHBhY2thZ2UgbWV0YWRhdGEgKGN1cnJlbnRfcmVwb2RhdGEuanNvbik6IC4uLndvcmtpbmcuLi4gZG9uZQpTb2x2aW5nIGVudmlyb25tZW50OiAuLi53b3JraW5nLi4uIGRvbmUKCiMjIFBhY2thZ2UgUGxhbiAjIwoKICBlbnZpcm9ubWVudCBsb2NhdGlvbjogL1VzZXJzL2pvaG5xdS9MaWJyYXJ5L3ItbWluaWNvbmRhCgogIGFkZGVkIC8gdXBkYXRlZCBzcGVjczoKICAgIC0gY29uZGEKCgpUaGUgZm9sbG93aW5nIHBhY2thZ2VzIHdpbGwgYmUgZG93bmxvYWRlZDoKCiAgICBwYWNrYWdlICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgYnVpbGQKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLQogICAgY2VydGlmaS0yMDIwLjQuNS4xICAgICAgICAgfCAgICAgICAgICAgcHkzN18wICAgICAgICAgMTU1IEtCCiAgICBjb25kYS00LjguMyAgICAgICAgICAgICAgICB8ICAgICAgICAgICBweTM3XzAgICAgICAgICAyLjggTUIKICAgIGNvbmRhLXBhY2thZ2UtaGFuZGxpbmctMS42LjF8ICAgcHkzN2gxZGUzNWNjXzAgICAgICAgICAxLjMgTUIKICAgIGNyeXB0b2dyYXBoeS0yLjkuMiAgICAgICAgIHwgICBweTM3aGExMmIwYWNfMCAgICAgICAgIDU0NyBLQgogICAgaWRuYS0yLjkgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICBweV8xICAgICAgICAgIDQ5IEtCCiAgICBsaWJjeHgtMTAuMC4wICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgIDEgICAgICAgICA3NjAgS0IKICAgIGxpYmZmaS0zLjIuMSAgICAgICAgICAgICAgIHwgICAgICAgaDBhNDQwMjZfNiAgICAgICAgICAzOSBLQgogICAgbmN1cnNlcy02LjIgICAgICAgICAgICAgICAgfCAgICAgICBoMGE0NDAyNl8xICAgICAgICAgNzQ5IEtCCiAgICBvcGVuc3NsLTEuMS4xZyAgICAgICAgICAgICB8ICAgICAgIGgxZGUzNWNjXzAgICAgICAgICAyLjIgTUIKICAgIHBpcC0yMC4wLjIgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHB5MzdfMyAgICAgICAgIDEuNyBNQgogICAgcHljcGFyc2VyLTIuMjAgICAgICAgICAgICAgfCAgICAgICAgICAgICBweV8wICAgICAgICAgIDkyIEtCCiAgICByZXF1ZXN0cy0yLjIzLjAgICAgICAgICAgICB8ICAgICAgICAgICBweTM3XzAgICAgICAgICAgOTIgS0IKICAgIHNldHVwdG9vbHMtNDYuNC4wICAgICAgICAgIHwgICAgICAgICAgIHB5MzdfMCAgICAgICAgIDUyMiBLQgogICAgc3FsaXRlLTMuMzEuMSAgICAgICAgICAgICAgfCAgICAgICBoNWMxZjM4ZF8xICAgICAgICAgMS4zIE1CCiAgICB0cWRtLTQuNDYuMCAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgIHB5XzAgICAgICAgICAgNjAgS0IKICAgIHh6LTUuMi41ICAgICAgICAgICAgICAgICAgIHwgICAgICAgaDFkZTM1Y2NfMCAgICAgICAgIDI0MCBLQgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbDogICAgICAgIDEyLjUgTUIKClRoZSBmb2xsb3dpbmcgcGFja2FnZXMgd2lsbCBiZSBSRU1PVkVEOgoKICBhc24xY3J5cHRvLTEuMy4wLXB5MzdfMAogIGxpYmN4eGFiaS00LjAuMS1oY2ZlYTQzZF8xCgpUaGUgZm9sbG93aW5nIHBhY2thZ2VzIHdpbGwgYmUgVVBEQVRFRDoKCiAgY2VydGlmaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwMTkuMTEuMjgtcHkzN18wIC0tPiAyMDIwLjQuNS4xLXB5MzdfMAogIGNvbmRhICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuOC4yLXB5MzdfMCAtLT4gNC44LjMtcHkzN18wCiAgY29uZGEtcGFja2FnZS1oYW5+ICAgICAgICAgICAgICAgICAgIDEuNi4wLXB5MzdoMWRlMzVjY18wIC0tPiAxLjYuMS1weTM3aDFkZTM1Y2NfMAogIGNyeXB0b2dyYXBoeSAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuOC1weTM3aGExMmIwYWNfMCAtLT4gMi45LjItcHkzN2hhMTJiMGFjXzAKICBpZG5hICAgICAgICAgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjppZG5hLTIuOC1weTM3XzAgLS0+IHBrZ3MvbWFpbi9ub2FyY2g6OmlkbmEtMi45LXB5XzEKICBsaWJjeHggICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuMC4xLWhjZmVhNDNkXzEgLS0+IDEwLjAuMC0xCiAgbGliZmZpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLjIuMS1oNDc1YzI5N180IC0tPiAzLjIuMS1oMGE0NDAyNl82CiAgbmN1cnNlcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDYuMi1oMGE0NDAyNl8wIC0tPiA2LjItaDBhNDQwMjZfMQogIG9wZW5zc2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxLjEuMWQtaDFkZTM1Y2NfNCAtLT4gMS4xLjFnLWgxZGUzNWNjXzAKICBwaXAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIwLjAuMi1weTM3XzEgLS0+IDIwLjAuMi1weTM3XzMKICBweWNwYXJzZXIgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6cHljcGFyc2VyLTIuMTktcHkzN34gLS0+IHBrZ3MvbWFpbi9ub2FyY2g6OnB5Y3BhcnNlci0yLjIwLXB5XzAKICByZXF1ZXN0cyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuMjIuMC1weTM3XzEgLS0+IDIuMjMuMC1weTM3XzAKICBzZXR1cHRvb2xzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQ1LjIuMC1weTM3XzAgLS0+IDQ2LjQuMC1weTM3XzAKICBzcWxpdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4zMS4xLWhhNDQxYmI0XzAgLS0+IDMuMzEuMS1oNWMxZjM4ZF8xCiAgdHFkbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDQuNDIuMS1weV8wIC0tPiA0LjQ2LjAtcHlfMAogIHh6ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4yLjQtaDFkZTM1Y2NfNCAtLT4gNS4yLjUtaDFkZTM1Y2NfMAoKCgpEb3dubG9hZGluZyBhbmQgRXh0cmFjdGluZyBQYWNrYWdlcwpzZXR1cHRvb2xzLTQ2LjQuMCAgICB8IDUyMiBLQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApjb25kYS1wYWNrYWdlLWhhbmRsaSB8IDEuMyBNQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApweWNwYXJzZXItMi4yMCAgICAgICB8IDkyIEtCICAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApwaXAtMjAuMC4yICAgICAgICAgICB8IDEuNyBNQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApvcGVuc3NsLTEuMS4xZyAgICAgICB8IDIuMiBNQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIAp4ei01LjIuNSAgICAgICAgICAgICB8IDI0MCBLQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIAppZG5hLTIuOSAgICAgICAgICAgICB8IDQ5IEtCICAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApzcWxpdGUtMy4zMS4xICAgICAgICB8IDEuMyBNQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApjZXJ0aWZpLTIwMjAuNC41LjEgICB8IDE1NSBLQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApuY3Vyc2VzLTYuMiAgICAgICAgICB8IDc0OSBLQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApsaWJjeHgtMTAuMC4wICAgICAgICB8IDc2MCBLQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIAp0cWRtLTQuNDYuMCAgICAgICAgICB8IDYwIEtCICAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApyZXF1ZXN0cy0yLjIzLjAgICAgICB8IDkyIEtCICAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApjcnlwdG9ncmFwaHktMi45LjIgICB8IDU0NyBLQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApjb25kYS00LjguMyAgICAgICAgICB8IDIuOCBNQiAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApsaWJmZmktMy4yLjEgICAgICAgICB8IDM5IEtCICAgICB8ICMjIyMjIyMjIyMgfCAxMDAlIApQcmVwYXJpbmcgdHJhbnNhY3Rpb246IC4uLndvcmtpbmcuLi4gZG9uZQpWZXJpZnlpbmcgdHJhbnNhY3Rpb246IC4uLndvcmtpbmcuLi4gZG9uZQpFeGVjdXRpbmcgdHJhbnNhY3Rpb246IC4uLndvcmtpbmcuLi4gZG9uZQpDb2xsZWN0aW5nIHBhY2thZ2UgbWV0YWRhdGEgKGN1cnJlbnRfcmVwb2RhdGEuanNvbik6IC4uLndvcmtpbmcuLi4gZG9uZQpTb2x2aW5nIGVudmlyb25tZW50OiAuLi53b3JraW5nLi4uIGRvbmUKCiMjIFBhY2thZ2UgUGxhbiAjIwoKICBlbnZpcm9ubWVudCBsb2NhdGlvbjogL1VzZXJzL2pvaG5xdS9MaWJyYXJ5L3ItbWluaWNvbmRhL2VudnMvci1yZXRpY3VsYXRlCgogIGFkZGVkIC8gdXBkYXRlZCBzcGVjczoKICAgIC0gbnVtcHkKICAgIC0gcHl0aG9uPTMuNgoKClRoZSBmb2xsb3dpbmcgcGFja2FnZXMgd2lsbCBiZSBkb3dubG9hZGVkOgoKICAgIHBhY2thZ2UgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICBidWlsZAogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tCiAgICBibGFzLTEuMCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICBta2wgICAgICAgICAgIDYgS0IKICAgIGNlcnRpZmktMjAyMC40LjUuMSAgICAgICAgIHwgICAgICAgICAgIHB5MzZfMCAgICAgICAgIDE1NSBLQgogICAgaW50ZWwtb3Blbm1wLTIwMTkuNCAgICAgICAgfCAgICAgICAgICAgICAgMjMzICAgICAgICAgODg3IEtCCiAgICBsaWJmZmktMy4zICAgICAgICAgICAgICAgICB8ICAgICAgIGgwYTQ0MDI2XzEgICAgICAgICAgNDUgS0IKICAgIGxpYmdmb3J0cmFuLTMuMC4xICAgICAgICAgIHwgICAgICAgaDkzMDA1ZjBfMiAgICAgICAgIDQyNiBLQgogICAgbWtsLTIwMTkuNCAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgMjMzICAgICAgIDEwMS45IE1CCiAgICBta2wtc2VydmljZS0yLjMuMCAgICAgICAgICB8ICAgcHkzNmhmYmU5MDhjXzAgICAgICAgICAyMDIgS0IKICAgIG1rbF9mZnQtMS4wLjE1ICAgICAgICAgICAgIHwgICBweTM2aDVlNTY0ZDhfMCAgICAgICAgIDEzOSBLQgogICAgbWtsX3JhbmRvbS0xLjEuMCAgICAgICAgICAgfCAgIHB5MzZoYTc3MTcyMF8wICAgICAgICAgMjg3IEtCCiAgICBudW1weS0xLjE4LjEgICAgICAgICAgICAgICB8ICAgcHkzNmg3MjQxYWVkXzAgICAgICAgICAgIDUgS0IKICAgIG51bXB5LWJhc2UtMS4xOC4xICAgICAgICAgIHwgICBweTM2aDMzMDRiZGNfMSAgICAgICAgIDQuMCBNQgogICAgcGlwLTIwLjAuMiAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgcHkzNl8zICAgICAgICAgMS43IE1CCiAgICBweXRob24tMy42LjEwICAgICAgICAgICAgICB8ICAgICAgIGhmNDhmMDlkXzIgICAgICAgIDE3LjEgTUIKICAgIHJlYWRsaW5lLTguMCAgICAgICAgICAgICAgIHwgICAgICAgaDFkZTM1Y2NfMCAgICAgICAgIDMyNiBLQgogICAgc2V0dXB0b29scy00Ni40LjAgICAgICAgICAgfCAgICAgICAgICAgcHkzNl8wICAgICAgICAgNTEzIEtCCiAgICBzaXgtMS4xNC4wICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBweTM2XzAgICAgICAgICAgMjYgS0IKICAgIHdoZWVsLTAuMzQuMiAgICAgICAgICAgICAgIHwgICAgICAgICAgIHB5MzZfMCAgICAgICAgICA1MCBLQgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbDogICAgICAgMTI3LjcgTUIKClRoZSBmb2xsb3dpbmcgTkVXIHBhY2thZ2VzIHdpbGwgYmUgSU5TVEFMTEVEOgoKICBibGFzICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6Ymxhcy0xLjAtbWtsCiAgY2EtY2VydGlmaWNhdGVzICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNhLWNlcnRpZmljYXRlcy0yMDIwLjEuMS0wCiAgY2VydGlmaSAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNlcnRpZmktMjAyMC40LjUuMS1weTM2XzAKICBpbnRlbC1vcGVubXAgICAgICAgcGtncy9tYWluL29zeC02NDo6aW50ZWwtb3Blbm1wLTIwMTkuNC0yMzMKICBsaWJjeHggICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bGliY3h4LTEwLjAuMC0xCiAgbGliZWRpdCAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmVkaXQtMy4xLjIwMTgxMjA5LWhiNDAyYTMwXzAKICBsaWJmZmkgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bGliZmZpLTMuMy1oMGE0NDAyNl8xCiAgbGliZ2ZvcnRyYW4gICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmdmb3J0cmFuLTMuMC4xLWg5MzAwNWYwXzIKICBta2wgICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsLTIwMTkuNC0yMzMKICBta2wtc2VydmljZSAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsLXNlcnZpY2UtMi4zLjAtcHkzNmhmYmU5MDhjXzAKICBta2xfZmZ0ICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsX2ZmdC0xLjAuMTUtcHkzNmg1ZTU2NGQ4XzAKICBta2xfcmFuZG9tICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsX3JhbmRvbS0xLjEuMC1weTM2aGE3NzE3MjBfMAogIG5jdXJzZXMgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpuY3Vyc2VzLTYuMi1oMGE0NDAyNl8xCiAgbnVtcHkgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6Om51bXB5LTEuMTguMS1weTM2aDcyNDFhZWRfMAogIG51bXB5LWJhc2UgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpudW1weS1iYXNlLTEuMTguMS1weTM2aDMzMDRiZGNfMQogIG9wZW5zc2wgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpvcGVuc3NsLTEuMS4xZy1oMWRlMzVjY18wCiAgcGlwICAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnBpcC0yMC4wLjItcHkzNl8zCiAgcHl0aG9uICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5dGhvbi0zLjYuMTAtaGY0OGYwOWRfMgogIHJlYWRsaW5lICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpyZWFkbGluZS04LjAtaDFkZTM1Y2NfMAogIHNldHVwdG9vbHMgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpzZXR1cHRvb2xzLTQ2LjQuMC1weTM2XzAKICBzaXggICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6c2l4LTEuMTQuMC1weTM2XzAKICBzcWxpdGUgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6c3FsaXRlLTMuMzEuMS1oNWMxZjM4ZF8xCiAgdGsgICAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnRrLTguNi44LWhhNDQxYmI0XzAKICB3aGVlbCAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6d2hlZWwtMC4zNC4yLXB5MzZfMAogIHh6ICAgICAgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0Ojp4ei01LjIuNS1oMWRlMzVjY18wCiAgemxpYiAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnpsaWItMS4yLjExLWgxZGUzNWNjXzMKCgoKRG93bmxvYWRpbmcgYW5kIEV4dHJhY3RpbmcgUGFja2FnZXMKbWtsLTIwMTkuNCAgICAgICAgICAgfCAxMDEuOSBNQiAgfCAjIyMjIyMjNiAgIHwgIDc3JSAKbGliZ2ZvcnRyYW4tMy4wLjEgICAgfCA0MjYgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKbGliZmZpLTMuMyAgICAgICAgICAgfCA0NSBLQiAgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKcHl0aG9uLTMuNi4xMCAgICAgICAgfCAxNy4xIE1CICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKd2hlZWwtMC4zNC4yICAgICAgICAgfCA1MCBLQiAgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKbWtsX2ZmdC0xLjAuMTUgICAgICAgfCAxMzkgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKbWtsLXNlcnZpY2UtMi4zLjAgICAgfCAyMDIgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKYmxhcy0xLjAgICAgICAgICAgICAgfCA2IEtCICAgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKbnVtcHktMS4xOC4xICAgICAgICAgfCA1IEtCICAgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKbnVtcHktYmFzZS0xLjE4LjEgICAgfCA0LjAgTUIgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKcGlwLTIwLjAuMiAgICAgICAgICAgfCAxLjcgTUIgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKcmVhZGxpbmUtOC4wICAgICAgICAgfCAzMjYgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKc2V0dXB0b29scy00Ni40LjAgICAgfCA1MTMgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKc2l4LTEuMTQuMCAgICAgICAgICAgfCAyNiBLQiAgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKaW50ZWwtb3Blbm1wLTIwMTkuNCAgfCA4ODcgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKY2VydGlmaS0yMDIwLjQuNS4xICAgfCAxNTUgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKbWtsX3JhbmRvbS0xLjEuMCAgICAgfCAyODcgS0IgICAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKCkNvbmRhSFRUUEVycm9yOiBIVFRQIDAwMCBDT05ORUNUSU9OIEZBSUxFRCBmb3IgdXJsIDxodHRwczovL3JlcG8uYW5hY29uZGEuY29tL3BrZ3MvbWFpbi9vc3gtNjQvbWtsLTIwMTkuNC0yMzMuY29uZGE+CkVsYXBzZWQ6IC0KCkFuIEhUVFAgZXJyb3Igb2NjdXJyZWQgd2hlbiB0cnlpbmcgdG8gcmV0cmlldmUgdGhpcyBVUkwuCkhUVFAgZXJyb3JzIGFyZSBvZnRlbiBpbnRlcm1pdHRlbnQsIGFuZCBhIHNpbXBsZSByZXRyeSB3aWxsIGdldCB5b3Ugb24geW91ciB3YXkuCgoKRXJyb3I6IEVycm9yIDEgb2NjdXJyZWQgY3JlYXRpbmcgY29uZGEgZW52aXJvbm1lbnQgci1yZXRpY3VsYXRlCkNvbGxlY3RpbmcgcGFja2FnZSBtZXRhZGF0YSAoY3VycmVudF9yZXBvZGF0YS5qc29uKTogLi4ud29ya2luZy4uLiBkb25lClNvbHZpbmcgZW52aXJvbm1lbnQ6IC4uLndvcmtpbmcuLi4gZG9uZQoKIyMgUGFja2FnZSBQbGFuICMjCgogIGVudmlyb25tZW50IGxvY2F0aW9uOiAvVXNlcnMvam9obnF1L0xpYnJhcnkvci1taW5pY29uZGEvZW52cy9yLXJldGljdWxhdGUKCiAgYWRkZWQgLyB1cGRhdGVkIHNwZWNzOgogICAgLSBudW1weQogICAgLSBweXRob249My42CgoKVGhlIGZvbGxvd2luZyBwYWNrYWdlcyB3aWxsIGJlIGRvd25sb2FkZWQ6CgogICAgcGFja2FnZSAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgIGJ1aWxkCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0KICAgIG1rbC0yMDE5LjQgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgIDIzMyAgICAgICAxMDEuOSBNQgogICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUb3RhbDogICAgICAgMTAxLjkgTUIKClRoZSBmb2xsb3dpbmcgTkVXIHBhY2thZ2VzIHdpbGwgYmUgSU5TVEFMTEVEOgoKICBibGFzICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6Ymxhcy0xLjAtbWtsCiAgY2EtY2VydGlmaWNhdGVzICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNhLWNlcnRpZmljYXRlcy0yMDIwLjEuMS0wCiAgY2VydGlmaSAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmNlcnRpZmktMjAyMC40LjUuMS1weTM2XzAKICBpbnRlbC1vcGVubXAgICAgICAgcGtncy9tYWluL29zeC02NDo6aW50ZWwtb3Blbm1wLTIwMTkuNC0yMzMKICBsaWJjeHggICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bGliY3h4LTEwLjAuMC0xCiAgbGliZWRpdCAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmVkaXQtMy4xLjIwMTgxMjA5LWhiNDAyYTMwXzAKICBsaWJmZmkgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bGliZmZpLTMuMy1oMGE0NDAyNl8xCiAgbGliZ2ZvcnRyYW4gICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OmxpYmdmb3J0cmFuLTMuMC4xLWg5MzAwNWYwXzIKICBta2wgICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsLTIwMTkuNC0yMzMKICBta2wtc2VydmljZSAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsLXNlcnZpY2UtMi4zLjAtcHkzNmhmYmU5MDhjXzAKICBta2xfZmZ0ICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsX2ZmdC0xLjAuMTUtcHkzNmg1ZTU2NGQ4XzAKICBta2xfcmFuZG9tICAgICAgICAgcGtncy9tYWluL29zeC02NDo6bWtsX3JhbmRvbS0xLjEuMC1weTM2aGE3NzE3MjBfMAogIG5jdXJzZXMgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpuY3Vyc2VzLTYuMi1oMGE0NDAyNl8xCiAgbnVtcHkgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6Om51bXB5LTEuMTguMS1weTM2aDcyNDFhZWRfMAogIG51bXB5LWJhc2UgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpudW1weS1iYXNlLTEuMTguMS1weTM2aDMzMDRiZGNfMQogIG9wZW5zc2wgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpvcGVuc3NsLTEuMS4xZy1oMWRlMzVjY18wCiAgcGlwICAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnBpcC0yMC4wLjItcHkzNl8zCiAgcHl0aG9uICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnB5dGhvbi0zLjYuMTAtaGY0OGYwOWRfMgogIHJlYWRsaW5lICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpyZWFkbGluZS04LjAtaDFkZTM1Y2NfMAogIHNldHVwdG9vbHMgICAgICAgICBwa2dzL21haW4vb3N4LTY0OjpzZXR1cHRvb2xzLTQ2LjQuMC1weTM2XzAKICBzaXggICAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6c2l4LTEuMTQuMC1weTM2XzAKICBzcWxpdGUgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6c3FsaXRlLTMuMzEuMS1oNWMxZjM4ZF8xCiAgdGsgICAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnRrLTguNi44LWhhNDQxYmI0XzAKICB3aGVlbCAgICAgICAgICAgICAgcGtncy9tYWluL29zeC02NDo6d2hlZWwtMC4zNC4yLXB5MzZfMAogIHh6ICAgICAgICAgICAgICAgICBwa2dzL21haW4vb3N4LTY0Ojp4ei01LjIuNS1oMWRlMzVjY18wCiAgemxpYiAgICAgICAgICAgICAgIHBrZ3MvbWFpbi9vc3gtNjQ6OnpsaWItMS4yLjExLWgxZGUzNWNjXzMKCgoKRG93bmxvYWRpbmcgYW5kIEV4dHJhY3RpbmcgUGFja2FnZXMKbWtsLTIwMTkuNCAgICAgICAgICAgfCAxMDEuOSBNQiAgfCAjIyMjIyMjIyMjIHwgMTAwJSAKUHJlcGFyaW5nIHRyYW5zYWN0aW9uOiAuLi53b3JraW5nLi4uIGRvbmUKVmVyaWZ5aW5nIHRyYW5zYWN0aW9uOiAuLi53b3JraW5nLi4uIGRvbmUKRXhlY3V0aW5nIHRyYW5zYWN0aW9uOiAuLi53b3JraW5nLi4uIGRvbmUKIwojIFRvIGFjdGl2YXRlIHRoaXMgZW52aXJvbm1lbnQsIHVzZQojCiMgICAgICQgY29uZGEgYWN0aXZhdGUgL1VzZXJzL2pvaG5xdS9MaWJyYXJ5L3ItbWluaWNvbmRhL2VudnMvci1yZXRpY3VsYXRlCiMKIyBUbyBkZWFjdGl2YXRlIGFuIGFjdGl2ZSBlbnZpcm9ubWVudCwgdXNlCiMKIyAgICAgJCBjb25kYSBkZWFjdGl2YXRlCmBgYA==