Showing preview only (1,387K chars total). Download the full file or copy to clipboard to get everything.
Repository: vinthony/video-retalking
Branch: main
Commit: d32e8e582482
Files: 211
Total size: 1.3 MB
Directory structure:
gitextract_oysdhwag/
├── .gitignore
├── CODE_OF_CONDUCT.md
├── LICENSE
├── README.md
├── cog.yaml
├── docs/
│ ├── index.html
│ └── static/
│ ├── css/
│ │ ├── bulma.css.map.txt
│ │ └── index.css
│ └── js/
│ ├── bulma-carousel.js
│ ├── bulma-slider.js
│ └── index.js
├── inference.py
├── inference_videoretalking.sh
├── models/
│ ├── DNet.py
│ ├── ENet.py
│ ├── LNet.py
│ ├── __init__.py
│ ├── base_blocks.py
│ ├── ffc.py
│ └── transformer.py
├── predict.py
├── quick_demo.ipynb
├── requirements.txt
├── third_part/
│ ├── GFPGAN/
│ │ ├── LICENSE
│ │ ├── gfpgan/
│ │ │ ├── __init__.py
│ │ │ ├── archs/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── arcface_arch.py
│ │ │ │ ├── gfpgan_bilinear_arch.py
│ │ │ │ ├── gfpganv1_arch.py
│ │ │ │ ├── gfpganv1_clean_arch.py
│ │ │ │ ├── stylegan2_bilinear_arch.py
│ │ │ │ └── stylegan2_clean_arch.py
│ │ │ ├── data/
│ │ │ │ ├── __init__.py
│ │ │ │ └── ffhq_degradation_dataset.py
│ │ │ ├── models/
│ │ │ │ ├── __init__.py
│ │ │ │ └── gfpgan_model.py
│ │ │ ├── train.py
│ │ │ ├── utils.py
│ │ │ ├── version.py
│ │ │ └── weights/
│ │ │ └── README.md
│ │ └── options/
│ │ ├── train_gfpgan_v1.yml
│ │ └── train_gfpgan_v1_simple.yml
│ ├── GPEN/
│ │ ├── align_faces.py
│ │ ├── face_detect/
│ │ │ ├── data/
│ │ │ │ ├── FDDB/
│ │ │ │ │ └── img_list.txt
│ │ │ │ ├── __init__.py
│ │ │ │ ├── config.py
│ │ │ │ ├── data_augment.py
│ │ │ │ └── wider_face.py
│ │ │ ├── facemodels/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── net.py
│ │ │ │ └── retinaface.py
│ │ │ ├── layers/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── functions/
│ │ │ │ │ └── prior_box.py
│ │ │ │ └── modules/
│ │ │ │ ├── __init__.py
│ │ │ │ └── multibox_loss.py
│ │ │ ├── retinaface_detection.py
│ │ │ └── utils/
│ │ │ ├── __init__.py
│ │ │ ├── box_utils.py
│ │ │ ├── nms/
│ │ │ │ ├── __init__.py
│ │ │ │ └── py_cpu_nms.py
│ │ │ └── timer.py
│ │ ├── face_model/
│ │ │ ├── face_gan.py
│ │ │ ├── gpen_model.py
│ │ │ └── op/
│ │ │ ├── __init__.py
│ │ │ ├── fused_act.py
│ │ │ ├── fused_bias_act.cpp
│ │ │ ├── fused_bias_act_kernel.cu
│ │ │ ├── upfirdn2d.cpp
│ │ │ ├── upfirdn2d.py
│ │ │ └── upfirdn2d_kernel.cu
│ │ ├── face_morpher/
│ │ │ ├── .gitignore
│ │ │ ├── README.rst
│ │ │ ├── facemorpher/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── aligner.py
│ │ │ │ ├── averager.py
│ │ │ │ ├── blender.py
│ │ │ │ ├── locator.py
│ │ │ │ ├── morpher.py
│ │ │ │ ├── plotter.py
│ │ │ │ ├── videoer.py
│ │ │ │ └── warper.py
│ │ │ ├── requirements.txt
│ │ │ ├── scripts/
│ │ │ │ ├── make_docs.sh
│ │ │ │ └── publish_ghpages.sh
│ │ │ ├── setup.cfg
│ │ │ └── setup.py
│ │ ├── face_parse/
│ │ │ ├── blocks.py
│ │ │ ├── face_parsing.py
│ │ │ ├── model.py
│ │ │ ├── parse_model.py
│ │ │ └── resnet.py
│ │ └── gpen_face_enhancer.py
│ ├── face3d/
│ │ ├── checkpoints/
│ │ │ └── model_name/
│ │ │ └── test_opt.txt
│ │ ├── coeff_detector.py
│ │ ├── data/
│ │ │ ├── __init__.py
│ │ │ ├── base_dataset.py
│ │ │ ├── flist_dataset.py
│ │ │ ├── image_folder.py
│ │ │ └── template_dataset.py
│ │ ├── data_preparation.py
│ │ ├── extract_kp_videos.py
│ │ ├── face_recon_videos.py
│ │ ├── models/
│ │ │ ├── __init__.py
│ │ │ ├── arcface_torch/
│ │ │ │ ├── README.md
│ │ │ │ ├── backbones/
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── iresnet.py
│ │ │ │ │ ├── iresnet2060.py
│ │ │ │ │ └── mobilefacenet.py
│ │ │ │ ├── configs/
│ │ │ │ │ ├── 3millions.py
│ │ │ │ │ ├── 3millions_pfc.py
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ ├── base.py
│ │ │ │ │ ├── glint360k_mbf.py
│ │ │ │ │ ├── glint360k_r100.py
│ │ │ │ │ ├── glint360k_r18.py
│ │ │ │ │ ├── glint360k_r34.py
│ │ │ │ │ ├── glint360k_r50.py
│ │ │ │ │ ├── ms1mv3_mbf.py
│ │ │ │ │ ├── ms1mv3_r18.py
│ │ │ │ │ ├── ms1mv3_r2060.py
│ │ │ │ │ ├── ms1mv3_r34.py
│ │ │ │ │ ├── ms1mv3_r50.py
│ │ │ │ │ └── speed.py
│ │ │ │ ├── dataset.py
│ │ │ │ ├── docs/
│ │ │ │ │ ├── eval.md
│ │ │ │ │ ├── install.md
│ │ │ │ │ ├── modelzoo.md
│ │ │ │ │ └── speed_benchmark.md
│ │ │ │ ├── eval/
│ │ │ │ │ ├── __init__.py
│ │ │ │ │ └── verification.py
│ │ │ │ ├── eval_ijbc.py
│ │ │ │ ├── inference.py
│ │ │ │ ├── losses.py
│ │ │ │ ├── onnx_helper.py
│ │ │ │ ├── onnx_ijbc.py
│ │ │ │ ├── partial_fc.py
│ │ │ │ ├── requirement.txt
│ │ │ │ ├── run.sh
│ │ │ │ ├── torch2onnx.py
│ │ │ │ ├── train.py
│ │ │ │ └── utils/
│ │ │ │ ├── __init__.py
│ │ │ │ ├── plot.py
│ │ │ │ ├── utils_amp.py
│ │ │ │ ├── utils_callbacks.py
│ │ │ │ ├── utils_config.py
│ │ │ │ ├── utils_logging.py
│ │ │ │ └── utils_os.py
│ │ │ ├── base_model.py
│ │ │ ├── bfm.py
│ │ │ ├── facerecon_model.py
│ │ │ ├── losses.py
│ │ │ ├── networks.py
│ │ │ └── template_model.py
│ │ ├── options/
│ │ │ ├── __init__.py
│ │ │ ├── base_options.py
│ │ │ ├── inference_options.py
│ │ │ ├── test_options.py
│ │ │ └── train_options.py
│ │ └── util/
│ │ ├── BBRegressorParam_r.mat
│ │ ├── __init__.py
│ │ ├── detect_lm68.py
│ │ ├── generate_list.py
│ │ ├── html.py
│ │ ├── load_mats.py
│ │ ├── nvdiffrast.py
│ │ ├── preprocess.py
│ │ ├── skin_mask.py
│ │ ├── test_mean_face.txt
│ │ ├── util.py
│ │ └── visualizer.py
│ ├── face_detection/
│ │ ├── README.md
│ │ ├── __init__.py
│ │ ├── api.py
│ │ ├── detection/
│ │ │ ├── __init__.py
│ │ │ ├── core.py
│ │ │ └── sfd/
│ │ │ ├── __init__.py
│ │ │ ├── bbox.py
│ │ │ ├── detect.py
│ │ │ ├── net_s3fd.py
│ │ │ └── sfd_detector.py
│ │ ├── models.py
│ │ └── utils.py
│ └── ganimation_replicate/
│ ├── LICENSE
│ ├── checkpoints/
│ │ ├── opt.txt
│ │ └── run_script.sh
│ ├── ckpts/
│ │ ├── ganimation/
│ │ │ ├── 220419_183211/
│ │ │ │ ├── opt.txt
│ │ │ │ └── run_script.sh
│ │ │ └── 220419_183229/
│ │ │ ├── opt.txt
│ │ │ └── run_script.sh
│ │ ├── opt.txt
│ │ └── run_script.sh
│ ├── data/
│ │ ├── __init__.py
│ │ ├── base_dataset.py
│ │ ├── celeba.py
│ │ └── data_loader.py
│ ├── main.py
│ ├── model/
│ │ ├── __init__.py
│ │ ├── base_model.py
│ │ ├── ganimation.py
│ │ ├── model_utils.py
│ │ └── stargan.py
│ ├── options.py
│ ├── solvers.py
│ └── visualizer.py
├── utils/
│ ├── alignment_stit.py
│ ├── audio.py
│ ├── ffhq_preprocess.py
│ ├── flow_util.py
│ ├── hparams.py
│ └── inference_utils.py
└── webUI.py
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
*.pkl
*.jpg
*.pth
*.pyc
__pycache__
*.h5
*.pyc
*.mkv
*.gif
*.webm
checkpoints/*
results/*
temp/*
segments.txt
.DS_Store
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to make participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment include:
- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
- The use of sexualized language or imagery and unwelcome sexual attention or advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic address, without explicit permission
- Other conduct that could reasonably be considered inappropriate in a professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned with this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project email address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team All complaints will be reviewed and investigated and will result in a response that is deemed necessary and appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident.
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the Contributor Covenant, version 2.0, available at [https://www.contributor-covenant.org/version/2/0/code_of_conduct.html](https://www.contributor-covenant.org/version/2/0/code_of_conduct.html).
================================================
FILE: LICENSE
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
<div align="center">
<h2>VideoReTalking <br/> <span style="font-size:12px">Audio-based Lip Synchronization for Talking Head Video Editing in the Wild</span> </h2>
<a href='https://arxiv.org/abs/2211.14758'><img src='https://img.shields.io/badge/ArXiv-2211.14758-red'></a> <a href='https://vinthony.github.io/video-retalking/'><img src='https://img.shields.io/badge/Project-Page-Green'></a> [](https://colab.research.google.com/github/vinthony/video-retalking/blob/main/quick_demo.ipynb)
[](https://replicate.com/cjwbw/video-retalking)
<div>
<a target='_blank'>Kun Cheng <sup>*,1,2</sup> </a> 
<a href='https://vinthony.github.io/' target='_blank'>Xiaodong Cun <sup>*,2</a> 
<a href='https://yzhang2016.github.io/yongnorriszhang.github.io/' target='_blank'>Yong Zhang <sup>2</sup></a> 
<a href='https://menghanxia.github.io/' target='_blank'>Menghan Xia <sup>2</sup></a> 
<a href='https://feiiyin.github.io/' target='_blank'>Fei Yin <sup>2,3</sup></a> <br/>
<a href='https://web.xidian.edu.cn/mrzhu/en/index.html' target='_blank'>Mingrui Zhu <sup>1</sup></a> 
<a href='https://xuanwangvc.github.io/' target='_blank'>Xuan Wang <sup>2</sup></a> 
<a href='https://juewang725.github.io/' target='_blank'>Jue Wang <sup>2</sup></a> 
<a href='https://web.xidian.edu.cn/nnwang/en/index.html' target='_blank'>Nannan Wang <sup>1</sup></a>
</div>
<br>
<div>
<sup>1</sup> Xidian University   <sup>2</sup> Tencent AI Lab   <sup>3</sup> Tsinghua University
</div>
<br>
<i><strong><a href='https://sa2022.siggraph.org/' target='_blank'>SIGGRAPH Asia 2022 Conference Track</a></strong></i>
<br>
<br>
<img src="https://opentalker.github.io/video-retalking/static/images/teaser.png" width="768px">
<div align="justify"> <BR> We present VideoReTalking, a new system to edit the faces of a real-world talking head video according to input audio, producing a high-quality and lip-syncing output video even with a different emotion. Our system disentangles this objective into three sequential tasks:
<BR> (1) face video generation with a canonical expression
<BR> (2) audio-driven lip-sync and
<BR> (3) face enhancement for improving photo-realism.
<BR> Given a talking-head video, we first modify the expression of each frame according to the same expression template using the expression editing network, resulting in a video with the canonical expression. This video, together with the given audio, is then fed into the lip-sync network to generate a lip-syncing video. Finally, we improve the photo-realism of the synthesized faces through an identity-aware face enhancement network and post-processing. We use learning-based approaches for all three steps and all our modules can be tackled in a sequential pipeline without any user intervention.</div>
<BR>
<p>
<img alt='pipeline' src="./docs/static/images/pipeline.png?raw=true" width="768px"><br>
<em align='center'>Pipeline</em>
</p>
</div>
## Results in the Wild (contains audio)
https://user-images.githubusercontent.com/4397546/224310754-665eb2dd-aadc-47dc-b1f9-2029a937b20a.mp4
## Environment
```
git clone https://github.com/vinthony/video-retalking.git
cd video-retalking
conda create -n video_retalking python=3.8
conda activate video_retalking
conda install ffmpeg
# Please follow the instructions from https://pytorch.org/get-started/previous-versions/
# This installation command only works on CUDA 11.1
pip install torch==1.9.0+cu111 torchvision==0.10.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
```
## Quick Inference
#### Pretrained Models
Please download our [pre-trained models](https://drive.google.com/drive/folders/18rhjMpxK8LVVxf7PI6XwOidt8Vouv_H0?usp=share_link) and put them in `./checkpoints`.
<!-- We also provide some [example videos and audio](https://drive.google.com/drive/folders/14OwbNGDCAMPPdY-l_xO1axpUjkPxI9Dv?usp=share_link). Please put them in `./examples`. -->
#### Inference
```
python3 inference.py \
--face examples/face/1.mp4 \
--audio examples/audio/1.wav \
--outfile results/1_1.mp4
```
This script includes data preprocessing steps. You can test any talking face videos without manual alignment. But it is worth noting that DNet cannot handle extreme poses.
You can also control the expression by adding the following parameters:
```--exp_img```: Pre-defined expression template. The default is "neutral". You can choose "smile" or an image path.
```--up_face```: You can choose "surprise" or "angry" to modify the expression of upper face with [GANimation](https://github.com/donydchen/ganimation_replicate).
## Citation
If you find our work useful in your research, please consider citing:
```
@misc{cheng2022videoretalking,
title={VideoReTalking: Audio-based Lip Synchronization for Talking Head Video Editing In the Wild},
author={Kun Cheng and Xiaodong Cun and Yong Zhang and Menghan Xia and Fei Yin and Mingrui Zhu and Xuan Wang and Jue Wang and Nannan Wang},
year={2022},
eprint={2211.14758},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
```
## Acknowledgement
Thanks to
[Wav2Lip](https://github.com/Rudrabha/Wav2Lip),
[PIRenderer](https://github.com/RenYurui/PIRender),
[GFP-GAN](https://github.com/TencentARC/GFPGAN),
[GPEN](https://github.com/yangxy/GPEN),
[ganimation_replicate](https://github.com/donydchen/ganimation_replicate),
[STIT](https://github.com/rotemtzaban/STIT)
for sharing their code.
## Related Work
- [StyleHEAT: One-Shot High-Resolution Editable Talking Face Generation via Pre-trained StyleGAN (ECCV 2022)](https://github.com/FeiiYin/StyleHEAT)
- [CodeTalker: Speech-Driven 3D Facial Animation with Discrete Motion Prior (CVPR 2023)](https://github.com/Doubiiu/CodeTalker)
- [SadTalker: Learning Realistic 3D Motion Coefficients for Stylized Audio-Driven Single Image Talking Face Animation (CVPR 2023)](https://github.com/Winfredy/SadTalker)
- [DPE: Disentanglement of Pose and Expression for General Video Portrait Editing (CVPR 2023)](https://github.com/Carlyx/DPE)
- [3D GAN Inversion with Facial Symmetry Prior (CVPR 2023)](https://github.com/FeiiYin/SPI/)
- [T2M-GPT: Generating Human Motion from Textual Descriptions with Discrete Representations (CVPR 2023)](https://github.com/Mael-zys/T2M-GPT)
## Disclaimer
This is not an official product of Tencent.
```
1. Please carefully read and comply with the open-source license applicable to this code before using it.
2. Please carefully read and comply with the intellectual property declaration applicable to this code before using it.
3. This open-source code runs completely offline and does not collect any personal information or other data. If you use this code to provide services to end-users and collect related data, please take necessary compliance measures according to applicable laws and regulations (such as publishing privacy policies, adopting necessary data security strategies, etc.). If the collected data involves personal information, user consent must be obtained (if applicable). Any legal liabilities arising from this are unrelated to Tencent.
4. Without Tencent's written permission, you are not authorized to use the names or logos legally owned by Tencent, such as "Tencent." Otherwise, you may be liable for your legal responsibilities.
5. This open-source code does not have the ability to directly provide services to end-users. If you need to use this code for further model training or demos, as part of your product to provide services to end-users, or for similar use, please comply with applicable laws and regulations for your product or service. Any legal liabilities arising from this are unrelated to Tencent.
6. It is prohibited to use this open-source code for activities that harm the legitimate rights and interests of others (including but not limited to fraud, deception, infringement of others' portrait rights, reputation rights, etc.), or other behaviors that violate applicable laws and regulations or go against social ethics and good customs (including providing incorrect or false information, spreading pornographic, terrorist, and violent information, etc.). Otherwise, you may be liable for your legal responsibilities.
```
## All Thanks To Our Contributors
<a href="https://github.com/OpenTalker/video-retalking/graphs/contributors">
<img src="https://contrib.rocks/image?repo=OpenTalker/video-retalking" />
</a>
================================================
FILE: cog.yaml
================================================
# Configuration for Cog ⚙️
# Reference: https://github.com/replicate/cog/blob/main/docs/yaml.md
build:
gpu: true
system_packages:
- "libgl1-mesa-glx"
- "libglib2.0-0"
- "ffmpeg"
python_version: "3.11"
python_packages:
- "torch==2.0.1"
- "torchvision==0.15.2"
- "basicsr==1.4.2"
- "kornia==0.5.1"
- "face-alignment==1.3.4"
- "ninja==1.10.2.3"
- "einops==0.4.1"
- "facexlib==0.2.5"
- "librosa==0.9.2"
- "cmake==3.27.7"
- "numpy==1.23.4"
run:
- pip install dlib
- mkdir -p /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/facexlib/weights/ && wget --output-document "/root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/facexlib/weights/detection_Resnet50_Final.pth" "https://github.com/xinntao/facexlib/releases/download/v0.1.0/detection_Resnet50_Final.pth"
- mkdir -p /root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/facexlib/weights/ && wget --output-document "/root/.pyenv/versions/3.11.6/lib/python3.11/site-packages/facexlib/weights/parsing_parsenet.pth" "https://github.com/xinntao/facexlib/releases/download/v0.2.2/parsing_parsenet.pth"
- mkdir -p /root/.cache/torch/hub/checkpoints/ && wget --output-document "/root/.cache/torch/hub/checkpoints/s3fd-619a316812.pth" "https://www.adrianbulat.com/downloads/python-fan/s3fd-619a316812.pth"
- mkdir -p /root/.cache/torch/hub/checkpoints/ && wget --output-document "/root/.cache/torch/hub/checkpoints/2DFAN4-cd938726ad.zip" "https://www.adrianbulat.com/downloads/python-fan/2DFAN4-cd938726ad.zip"
predict: "predict.py:Predictor"
================================================
FILE: docs/index.html
================================================
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<!-- Meta tags for social media banners, these should be filled in appropriately as they are your "business card" -->
<!-- Replace the content tag with appropriate information -->
<meta content="VideoReTalking: Audio-based Lip Synchronization for Talking Head Video Editing In the Wild"
property="og:title">
<meta content="VideoReTalking: Audio-based Lip Synchronization for Talking Head Video Editing In the Wild"
name="description" property="og:description">
<meta content="https://vinthony.github.io/video-retalking/" property="og:url">
<!-- Path to banner image, should be in the path listed below. Optimal dimenssions are 1200X630-->
<meta property="og:image" content="static/image/your_banner_image.png" />
<meta property="og:image:width" content="1200"/>
<meta property="og:image:height" content="630"/>
<meta name="twitter:title" content="TWITTER BANNER TITLE META TAG">
<meta name="twitter:description" content="TWITTER BANNER DESCRIPTION META TAG">
<!-- Path to banner image, should be in the path listed below. Optimal dimenssions are 1200X600-->
<meta name="twitter:image" content="static/images/your_twitter_banner_image.png">
<meta name="twitter:card" content="summary_large_image">
<!-- Keywords for your paper to be indexed by-->
<meta name="keywords" content="KEYWORDS SHOULD BE PLACED HERE">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>VideoRetalking</title>
<link rel="icon" type="image/x-icon" href="static/images/favicon.ico">
<link href="https://fonts.googleapis.com/css?family=Google+Sans|Noto+Sans|Castoro"
rel="stylesheet">
<link rel="stylesheet" href="static/css/bulma.min.css">
<link rel="stylesheet" href="static/css/bulma-carousel.min.css">
<link rel="stylesheet" href="static/css/bulma-slider.min.css">
<link rel="stylesheet" href="static/css/fontawesome.all.min.css">
<link rel="stylesheet"
href="https://cdn.jsdelivr.net/gh/jpswalsh/academicons@1/css/academicons.min.css">
<link rel="stylesheet" href="static/css/index.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script src="https://documentcloud.adobe.com/view-sdk/main.js"></script>
<script defer src="static/js/fontawesome.all.min.js"></script>
<script src="static/js/bulma-carousel.min.js"></script>
<script src="static/js/bulma-slider.min.js"></script>
<script src="static/js/index.js"></script>
</head>
<body>
<section class="hero">
<div class="hero-body">
<div class="container is-max-desktop">
<div class="columns is-centered">
<div class="column has-text-centered">
<h1 class="xtitle is-1 publication-title">VideoReTalking: Audio-based Lip Synchronization for Talking Head Video Editing In the Wild</h1>
<br/>
<div class="is-size-5 publication-authors">
<!-- Paper authors -->
<span class="author-block">
<a href="#" target="_blank">Kun Cheng</a><sup>*,1,2</sup></span>
<span class="author-block">
<a href="https://vinthony.github.io" target="_blank">Xiaodong Cun</a><sup>*,2</sup></span>
<span class="author-block">
<a href="https://yzhang2016.github.io" target="_blank">Yong Zhang</a><sup>2</sup>
</span>
<span class="author-block">
<a href="https://menghanxia.github.io/" target="_blank">Menghan Xia</a><sup>2</sup>
</span>
<span class="author-block">
<a href="https://feiiyin.github.io/" target="_blank">Fei Yin</a><sup>2,3</sup>
</span>
</br>
<span class="author-block">
<a href="https://web.xidian.edu.cn/mrzhu/en/index.html" target="_blank">Mingrui Zhu</a><sup>1</sup>
</span>
<span class="author-block">
<a href="https://xuanwangvc.github.io/" target="_blank">Xuan Wang</a><sup>2</sup>
</span>
<span class="author-block">
<a href="https://juewang725.github.io/" target="_blank">Jue Wang</a><sup>2</sup>
</span>
<span class="author-block">
<a href="https://web.xidian.edu.cn/nnwang/en/index.html" target="_blank">Nannan Wang</a><sup>1</sup>
</span>
</div>
<br/>
<div class="is-size-5 publication-authors">
<span class="author-block">
<sup>1</sup> Xidian University
<sup>2</sup> Tencent AI Lab
<sup>3</sup> Tsinghua University
<br>SIGGRAPH Asia 2022 (Conference Track)</span>
<span class="eql-cntrb"><small><br><sup>*</sup>Indicates Equal Contribution</small></span>
</div>
<div class="column has-text-centered">
<div class="publication-links">
<!-- Arxiv PDF link -->
<span class="link-block">
<a href="https://arxiv.org/pdf/2211.14758.pdf" target="_blank"
class="external-link ">
<span class="icon">
<i class="fas fa-file-pdf"></i>
</span>
<span>Paper</span>
</a>
</span>
<!-- Github link -->
<span class="link-block">
<a href="https://github.com/vinthony/video-retalking/" target="_blank"
class="external-link ">
<span class="icon">
<i class="fab fa-github"></i>
</span>
<span>Code</span>
</a>
</span>
<!-- ArXiv abstract Link -->
<span class="link-block">
<a href="https://arxiv.org/abs/2211.14758" target="_blank"
class="external-link ">
<span class="icon">
<i class="ai ai-arxiv"></i>
</span>
<span>arXiv</span>
</a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- Teaser video-->
<section class="hero teaser">
<div class="container is-max-desktop">
<div class="hero-body-img">
<img src="./static/images/teaser.png" width="80%">
</div>
</div>
</section>
<!-- End teaser video -->
<!-- Paper abstract -->
<section class="section hero is-light">
<div class="container is-max-desktop">
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<h2 class="title is-3">Abstract</h2>
<div class="content has-text-justified">
<p>
We present VideoReTalking, a new system to edit the faces of a real-world talking head video according to input audio,
producing a high-quality and lip-syncing output video even with a different emotion. Our system disentangles this objective
into three sequential tasks: (1) face video generation with a canonical expression; (2) audio-driven lip-sync; and
(3) face enhancement for improving photo-realism. Given a talking-head video, we first modify the expression of each frame
according to the same expression template using the expression editing network, resulting in a video with the canonical
expression. This video, together with the given audio, is then fed into the lip-sync network to generate a lip-syncing video.
Finally, we improve the photo-realism of the synthesized faces through an identity-aware face enhancement network and
post-processing. We use learning-based approaches for all three steps and all our modules can be tackled in a sequential
pipeline without any user intervention.
</p>
</div>
</div>
</div>
</div>
</section>
<!-- End paper abstract -->
<!-- Youtube video -->
<section class="hero is-small is-light">
<div class="hero-body">
<div class="container">
<!-- Paper video. -->
<h2 class="title is-3">Pipeline</h2>
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<div class="hero-body-img">
<!-- Youtube embed code here -->
<img width='80%' src="static/images/pipeline.png">
</div>
</div>
</div>
</div>
</div>
</section>
<!-- End youtube video -->
<!-- Youtube video -->
<section class="hero is-small is-light">
<div class="hero-body">
<div class="container">
<!-- Paper video. -->
<h2 class="title is-3"><strong>Video1</strong>: Video Results in the Wild.</h2>
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<video controls="" width="100%">
<!-- t=0.001 is a hack to make iPhone show video thumbnail -->
<source src="./static/videos/Results_in_the_wild.mp4#t=0.001" type="video/mp4">
</video>
</div>
</div>
</div>
</div>
</section>
<!-- End youtube video
!-- Youtube video -->
<section class="hero is-small is-light">
<div class="hero-body">
<div class="container">
<!-- Paper video. -->
<h2 class="title is-3"><strong>Video2</strong>: Comparison with SOTA Methods.</h2>
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<video controls="" width="100%">
<!-- t=0.001 is a hack to make iPhone show video thumbnail -->
<source src="./static/videos/Comparison.mp4#t=0.001" type="video/mp4">
</video>
</div>
</div>
</div>
</div>
</section>
<section class="hero is-small is-light">
<div class="hero-body">
<div class="container">
<!-- Paper video. -->
<h2 class="title is-3"><strong>Video3</strong>: Ablation Study on Different Modules. </h2>
<div class="columns is-centered has-text-centered">
<div class="column is-four-fifths">
<video controls="" width="100%">
<!-- t=0.001 is a hack to make iPhone show video thumbnail -->
<source src="./static/videos/Ablation.mp4#0.001" type="video/mp4">
</video>
</div>
</div>
</div>
</div>
</section>
<!--BibTex citation -->
<section class="section" id="BibTeX">
<div class="container is-max-desktop content">
<h2 class="title">BibTeX</h2>
<pre><code>@misc{videoretalking,
title={VideoReTalking: Audio-based Lip Synchronization for Talking Head Video Editing In the Wild},
author={Kun Cheng and Xiaodong Cun and Yong Zhang and Menghan Xia and Fei Yin and Mingrui Zhu and Xuan Wang and Jue Wang and Nannan Wang},
year={2022},
eprint={2211.14758},
archivePrefix={arXiv},
primaryClass={cs.CV}
}</code></pre>
</div>
</section>
<!--End BibTex citation -->
<footer class="footer">
<div class="container">
<div class="columns is-centered">
<div class="column is-8">
<div class="content">
<p>
This page was built using the <a href="https://github.com/vinthony/project-page-template">modification version</a> of <a href="https://github.com/eliahuhorwitz/Academic-project-page-template" target="_blank">Academic Project Page Template</a> from <a href="https://github.com/vinthony">vinthony</a>.
You are free to borrow the of this website, we just ask that you link back to this page in the footer. <br> This website is licensed under a <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/" target="_blank">Creative
Commons Attribution-ShareAlike 4.0 International License</a>.
</p>
</div>
</div>
</div>
</div>
</footer>
<!-- Statcounter tracking code -->
<!-- You can add a tracker to track page visits by creating an account at statcounter.com -->
<!-- End of Statcounter Code -->
</body>
</html>
================================================
FILE: docs/static/css/bulma.css.map.txt
================================================
{"version":3,"sources":["../bulma.sass","../sass/utilities/_all.sass","../sass/utilities/animations.sass","bulma.css","../sass/utilities/mixins.sass","../sass/utilities/initial-variables.sass","../sass/utilities/controls.sass","../sass/base/_all.sass","../sass/base/minireset.sass","../sass/base/generic.sass","../sass/utilities/derived-variables.sass","../sass/elements/_all.sass","../sass/elements/box.sass","../sass/elements/button.sass","../sass/utilities/functions.sass","../sass/elements/container.sass","../sass/elements/content.sass","../sass/elements/icon.sass","../sass/elements/image.sass","../sass/elements/notification.sass","../sass/elements/progress.sass","../sass/elements/table.sass","../sass/elements/tag.sass","../sass/elements/title.sass","../sass/elements/other.sass","../sass/form/_all.sass","../sass/form/shared.sass","../sass/form/input-textarea.sass","../sass/form/checkbox-radio.sass","../sass/form/select.sass","../sass/form/file.sass","../sass/form/tools.sass","../sass/components/_all.sass","../sass/components/breadcrumb.sass","../sass/components/card.sass","../sass/components/dropdown.sass","../sass/components/level.sass","../sass/components/media.sass","../sass/components/menu.sass","../sass/components/message.sass","../sass/components/modal.sass","../sass/components/navbar.sass","../sass/components/pagination.sass","../sass/components/panel.sass","../sass/components/tabs.sass","../sass/grid/_all.sass","../sass/grid/columns.sass","../sass/grid/tiles.sass","../sass/helpers/_all.sass","../sass/helpers/color.sass","../sass/helpers/flexbox.sass","../sass/helpers/float.sass","../sass/helpers/other.sass","../sass/helpers/overflow.sass","../sass/helpers/position.sass","../sass/helpers/spacing.sass","../sass/helpers/typography.sass","../sass/helpers/visibility.sass","../sass/layout/_all.sass","../sass/layout/hero.sass","../sass/layout/section.sass","../sass/layout/footer.sass"],"names":[],"mappings":"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BJ3BiB;EI4BjB,gBA1DoB;ANkVtB;;AMpRA;EACE,cJpDgC;EIqDhC,eAAe;EACf,qBAAqB;ANuRvB;;AM1RA;EAKI,mBAAmB;ANyRvB;;AM9RA;EAOI,cJ1E0B;AFqW9B;;AMzRA;EACE,4BJtE4B;EIuE5B,cCpBsB;EDqBtB,kBArEiB;EAsEjB,mBAvEkB;EAwElB,4BAzEgC;ANqWlC;;AM1RA;EACE,4BJ7E4B;EI8E5B,YAAY;EACZ,cAAc;EACd,WAxEa;EAyEb,gBAxEkB;ANqWpB;;AM3RA;EACE,YAAY;EACZ,eAAe;AN8RjB;;AM5RA;;EAEE,wBAAwB;AN+R1B;;AM7RA;EACE,kBAvFuB;ANuXzB;;AM9RA;EACE,mBAAmB;EACnB,oBAAoB;ANiStB;;AM/RA;EACE,cJ1G4B;EI2G5B,gBJrEe;AFuWjB;;AM9RA;EACE,YAAY;ANiSd;;AM/RA;EL1DE,iCAAiC;EK4DjC,4BJ7G4B;EI8G5B,cJpH4B;EIqH5B,kBAjGqB;EAkGrB,gBAAgB;EAChB,uBAlG0B;EAmG1B,gBAAgB;EAChB,iBAAiB;ANkSnB;;AM1SA;EAUI,6BAA6B;EAC7B,mBAAmB;EACnB,cAvGoB;EAwGpB,UAAU;ANoSd;;AMlSA;;EAGI,mBAAmB;ANoSvB;;AMvSA;;EAKM,mBAAmB;ANuSzB;;AM5SA;EAOI,cJxI0B;AFib9B;;AQvbA,mBAAA;ACSA;EAEE,uBPI6B;EOH7B,kBP0DgB;EOzDhB,0FPX2B;EOY3B,cPP4B;EOQ5B,cAAc;EACd,gBAZmB;AT6brB;;AS/aA;EAGI,yEPC8B;AF+alC;;ASnbA;EAKI,oEPD8B;AFmblC;;AUzZA;EAGE,uBRpC6B;EQqC7B,qBR1C4B;EQ2C5B,iBPlDwB;EOmDxB,cRhD4B;EQiD5B,eAAe;EAGf,uBAAuB;EACvB,iCApD6D;EAqD7D,iBApD6B;EAqD7B,kBArD6B;EAsD7B,8BAvD6D;EAwD7D,kBAAkB;EAClB,mBAAmB;AVwZrB;;AUxaA;EAkBI,cAAc;AV0ZlB;;AU5aA;EAwBM,aAAa;EACb,YAAY;AVwZlB;;AUjbA;ETgGI,+BSrEwG;ETqExG,oBSpEgE;AV0ZpE;;AUtbA;ETgGI,mBSlEgE;ETkEhE,gCSjEwG;AV4Z5G;;AU3bA;EAiCM,+BAAmF;EACnF,gCAAoF;AV8Z1F;;AUhcA;EAsCI,qBR7E0B;EQ8E1B,cRjF0B;AF+e9B;;AUrcA;EA0CI,qBRpE8B;EQqE9B,cRrF0B;AFof9B;;AU1cA;EA6CM,kDRvE4B;AFwelC;;AU9cA;EAgDI,qBRzF0B;EQ0F1B,cR3F0B;AF6f9B;;AUndA;EAoDI,6BAA6B;EAC7B,yBAAyB;EACzB,cR/F0B;EQgG1B,0BAjF8B;AVoflC;;AU1dA;EA4DM,4BR/FwB;EQgGxB,cRvGwB;AFygB9B;;AU/dA;EAgEM,yBCH2B;EDI3B,cR3GwB;AF8gB9B;;AUpeA;;EAoEM,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;AVqatB;;AU3eA;EA2EM,uBR5GyB;EQ6GzB,yBAAyB;EACzB,cR3HuB;AF+hB7B;;AUjfA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,cRhIqB;AFqiB7B;;AUvfA;EAqFQ,yBAAyB;EACzB,cRpIqB;AF0iB7B;;AU5fA;EAwFU,mDRzHqB;AFiiB/B;;AUhgBA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,cR3IqB;AFojB7B;;AUtgBA;;EAgGQ,uBRjIuB;EQkIvB,yBAAyB;EACzB,gBAAgB;AV2axB;;AU7gBA;EAoGQ,yBRlJqB;EQmJrB,YRtIuB;AFmjB/B;;AUlhBA;EAwGU,uBC3CuB;AXydjC;;AUthBA;;EA2GU,yBRzJmB;EQ0JnB,yBAAyB;EACzB,gBAAgB;EAChB,YR/IqB;AF+jB/B;;AU9hBA;EAiHU,gEAA4E;AVibtF;;AUliBA;EAmHQ,6BAA6B;EAC7B,mBRrJuB;EQsJvB,YRtJuB;AFykB/B;;AUxiBA;EA0HU,uBR3JqB;EQ4JrB,mBR5JqB;EQ6JrB,cR1KmB;AF4lB7B;;AU9iBA;EA+HY,4DAA8D;AVmb1E;;AUljBA;EAqIc,gEAA4E;AVib1F;;AUtjBA;;EAwIU,6BAA6B;EAC7B,mBR1KqB;EQ2KrB,gBAAgB;EAChB,YR5KqB;AF+lB/B;;AU9jBA;EA6IQ,6BAA6B;EAC7B,qBR5LqB;EQ6LrB,cR7LqB;AFknB7B;;AUpkBA;EAoJU,yBRlMmB;EQmMnB,YRtLqB;AF0mB/B;;AUzkBA;EA4Jc,4DAA8D;AVib5E;;AU7kBA;;EA+JU,6BAA6B;EAC7B,qBR9MmB;EQ+MnB,gBAAgB;EAChB,cRhNmB;AFmoB7B;;AUrlBA;EA2EM,yBRzHuB;EQ0HvB,yBAAyB;EACzB,YR9GyB;AF4nB/B;;AU3lBA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,YRnHuB;AFkoB/B;;AUjmBA;EAqFQ,yBAAyB;EACzB,YRvHuB;AFuoB/B;;AUtmBA;EAwFU,gDRtImB;AFwpB7B;;AU1mBA;EA2FQ,uBC9ByB;ED+BzB,yBAAyB;EACzB,YR9HuB;AFipB/B;;AUhnBA;;EAgGQ,yBR9IqB;EQ+IrB,yBAAyB;EACzB,gBAAgB;AVqhBxB;;AUvnBA;EAoGQ,uBRrIuB;EQsIvB,cRnJqB;AF0qB7B;;AU5nBA;EAwGU,yBC3CuB;AXmkBjC;;AUhoBA;;EA2GU,uBR5IqB;EQ6IrB,yBAAyB;EACzB,gBAAgB;EAChB,cR5JmB;AFsrB7B;;AUxoBA;EAiHU,4DAA4E;AV2hBtF;;AU5oBA;EAmHQ,6BAA6B;EAC7B,qBRlKqB;EQmKrB,cRnKqB;AFgsB7B;;AUlpBA;EA0HU,yBRxKmB;EQyKnB,qBRzKmB;EQ0KnB,YR7JqB;AFyrB/B;;AUxpBA;EA+HY,gEAA8D;AV6hB1E;;AU5pBA;EAqIc,4DAA4E;AV2hB1F;;AUhqBA;;EAwIU,6BAA6B;EAC7B,qBRvLmB;EQwLnB,gBAAgB;EAChB,cRzLmB;AFstB7B;;AUxqBA;EA6IQ,6BAA6B;EAC7B,mBR/KuB;EQgLvB,YRhLuB;AF+sB/B;;AU9qBA;EAoJU,uBRrLqB;EQsLrB,cRnMmB;AFiuB7B;;AUnrBA;EA4Jc,gEAA8D;AV2hB5E;;AUvrBA;;EA+JU,6BAA6B;EAC7B,mBRjMqB;EQkMrB,gBAAgB;EAChB,YRnMqB;AFguB/B;;AU/rBA;EA2EM,4BR9GwB;EQ+GxB,yBAAyB;EACzB,yBC7Ce;AXqqBrB;;AUrsBA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,yBClDa;AX2qBrB;;AU3sBA;EAqFQ,yBAAyB;EACzB,yBCtDa;AXgrBrB;;AUhtBA;EAwFU,mDR3HoB;AFuvB9B;;AUptBA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,yBC7Da;AX0rBrB;;AU1tBA;;EAgGQ,4BRnIsB;EQoItB,yBAAyB;EACzB,gBAAgB;AV+nBxB;;AUjuBA;EAoGQ,oCCpEa;EDqEb,iBRxIsB;AFywB9B;;AUtuBA;EAwGU,oCC3CuB;AX6qBjC;;AU1uBA;;EA2GU,oCC3EW;ED4EX,yBAAyB;EACzB,gBAAgB;EAChB,iBRjJoB;AFqxB9B;;AUlvBA;EAiHU,sFAA4E;AVqoBtF;;AUtvBA;EAmHQ,6BAA6B;EAC7B,wBRvJsB;EQwJtB,iBRxJsB;AF+xB9B;;AU5vBA;EA0HU,4BR7JoB;EQ8JpB,wBR9JoB;EQ+JpB,yBC5FW;AXkuBrB;;AUlwBA;EA+HY,sEAA8D;AVuoB1E;;AUtwBA;EAqIc,sFAA4E;AVqoB1F;;AU1wBA;;EAwIU,6BAA6B;EAC7B,wBR5KoB;EQ6KpB,gBAAgB;EAChB,iBR9KoB;AFqzB9B;;AUlxBA;EA6IQ,6BAA6B;EAC7B,gCC9Ga;ED+Gb,yBC/Ga;AXwvBrB;;AUxxBA;EAoJU,oCCpHW;EDqHX,iBRxLoB;AFg0B9B;;AU7xBA;EA4Jc,sEAA8D;AVqoB5E;;AUjyBA;;EA+JU,6BAA6B;EAC7B,gCChIW;EDiIX,gBAAgB;EAChB,yBClIW;AXywBrB;;AUzyBA;EA2EM,yBRrHwB;EQsHxB,yBAAyB;EACzB,WC3CU;AX6wBhB;;AU/yBA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,WChDQ;AXmxBhB;;AUrzBA;EAqFQ,yBAAyB;EACzB,WCpDQ;AXwxBhB;;AU1zBA;EAwFU,gDRlIoB;AFw2B9B;;AU9zBA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,WC3DQ;AXkyBhB;;AUp0BA;;EAgGQ,yBR1IsB;EQ2ItB,yBAAyB;EACzB,gBAAgB;AVyuBxB;;AU30BA;EAoGQ,sBClEQ;EDmER,cR/IsB;AF03B9B;;AUh1BA;EAwGU,yBC3CuB;AXuxBjC;;AUp1BA;;EA2GU,sBCzEM;ED0EN,yBAAyB;EACzB,gBAAgB;EAChB,cRxJoB;AFs4B9B;;AU51BA;EAiHU,0DAA4E;AV+uBtF;;AUh2BA;EAmHQ,6BAA6B;EAC7B,qBR9JsB;EQ+JtB,cR/JsB;AFg5B9B;;AUt2BA;EA0HU,yBRpKoB;EQqKpB,qBRrKoB;EQsKpB,WC1FM;AX00BhB;;AU52BA;EA+HY,gEAA8D;AVivB1E;;AUh3BA;EAqIc,0DAA4E;AV+uB1F;;AUp3BA;;EAwIU,6BAA6B;EAC7B,qBRnLoB;EQoLpB,gBAAgB;EAChB,cRrLoB;AFs6B9B;;AU53BA;EA6IQ,6BAA6B;EAC7B,kBC5GQ;ED6GR,WC7GQ;AXg2BhB;;AUl4BA;EAoJU,sBClHM;EDmHN,cR/LoB;AFi7B9B;;AUv4BA;EA4Jc,gEAA8D;AV+uB5E;;AU34BA;;EA+JU,6BAA6B;EAC7B,kBC9HM;ED+HN,gBAAgB;EAChB,WChIM;AXi3BhB;;AUn5BA;EA2EM,yBRvG4B;EQwG5B,yBAAyB;EACzB,WC3CU;AXu3BhB;;AUz5BA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,WChDQ;AX63BhB;;AU/5BA;EAqFQ,yBAAyB;EACzB,WCpDQ;AXk4BhB;;AUp6BA;EAwFU,iDRpHwB;AFo8BlC;;AUx6BA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,WC3DQ;AX44BhB;;AU96BA;;EAgGQ,yBR5H0B;EQ6H1B,yBAAyB;EACzB,gBAAgB;AVm1BxB;;AUr7BA;EAoGQ,sBClEQ;EDmER,cRjI0B;AFs9BlC;;AU17BA;EAwGU,yBC3CuB;AXi4BjC;;AU97BA;;EA2GU,sBCzEM;ED0EN,yBAAyB;EACzB,gBAAgB;EAChB,cR1IwB;AFk+BlC;;AUt8BA;EAiHU,0DAA4E;AVy1BtF;;AU18BA;EAmHQ,6BAA6B;EAC7B,qBRhJ0B;EQiJ1B,cRjJ0B;AF4+BlC;;AUh9BA;EA0HU,yBRtJwB;EQuJxB,qBRvJwB;EQwJxB,WC1FM;AXo7BhB;;AUt9BA;EA+HY,gEAA8D;AV21B1E;;AU19BA;EAqIc,0DAA4E;AVy1B1F;;AU99BA;;EAwIU,6BAA6B;EAC7B,qBRrKwB;EQsKxB,gBAAgB;EAChB,cRvKwB;AFkgClC;;AUt+BA;EA6IQ,6BAA6B;EAC7B,kBC5GQ;ED6GR,WC7GQ;AX08BhB;;AU5+BA;EAoJU,sBClHM;EDmHN,cRjLwB;AF6gClC;;AUj/BA;EA4Jc,gEAA8D;AVy1B5E;;AUr/BA;;EA+JU,6BAA6B;EAC7B,kBC9HM;ED+HN,gBAAgB;EAChB,WChIM;AX29BhB;;AU7/BA;EAwKU,yBC/HsC;EDgItC,cCvH2D;AXg9BrE;;AUlgCA;EA4KY,yBC/GqB;EDgHrB,yBAAyB;EACzB,cC5HyD;AXs9BrE;;AUxgCA;EAiLY,yBCpHqB;EDqHrB,yBAAyB;EACzB,cCjIyD;AX49BrE;;AU9gCA;EA2EM,yBRrG4B;EQsG5B,yBAAyB;EACzB,WC3CU;AXk/BhB;;AUphCA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,WChDQ;AXw/BhB;;AU1hCA;EAqFQ,yBAAyB;EACzB,WCpDQ;AX6/BhB;;AU/hCA;EAwFU,kDRlHwB;AF6jClC;;AUniCA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,WC3DQ;AXugChB;;AUziCA;;EAgGQ,yBR1H0B;EQ2H1B,yBAAyB;EACzB,gBAAgB;AV88BxB;;AUhjCA;EAoGQ,sBClEQ;EDmER,cR/H0B;AF+kClC;;AUrjCA;EAwGU,yBC3CuB;AX4/BjC;;AUzjCA;;EA2GU,sBCzEM;ED0EN,yBAAyB;EACzB,gBAAgB;EAChB,cRxIwB;AF2lClC;;AUjkCA;EAiHU,0DAA4E;AVo9BtF;;AUrkCA;EAmHQ,6BAA6B;EAC7B,qBR9I0B;EQ+I1B,cR/I0B;AFqmClC;;AU3kCA;EA0HU,yBRpJwB;EQqJxB,qBRrJwB;EQsJxB,WC1FM;AX+iChB;;AUjlCA;EA+HY,gEAA8D;AVs9B1E;;AUrlCA;EAqIc,0DAA4E;AVo9B1F;;AUzlCA;;EAwIU,6BAA6B;EAC7B,qBRnKwB;EQoKxB,gBAAgB;EAChB,cRrKwB;AF2nClC;;AUjmCA;EA6IQ,6BAA6B;EAC7B,kBC5GQ;ED6GR,WC7GQ;AXqkChB;;AUvmCA;EAoJU,sBClHM;EDmHN,cR/KwB;AFsoClC;;AU5mCA;EA4Jc,gEAA8D;AVo9B5E;;AUhnCA;;EA+JU,6BAA6B;EAC7B,kBC9HM;ED+HN,gBAAgB;EAChB,WChIM;AXslChB;;AUxnCA;EAwKU,yBC/HsC;EDgItC,cCvH2D;AX2kCrE;;AU7nCA;EA4KY,yBC/GqB;EDgHrB,yBAAyB;EACzB,cC5HyD;AXilCrE;;AUnoCA;EAiLY,yBCpHqB;EDqHrB,yBAAyB;EACzB,cCjIyD;AXulCrE;;AUzoCA;EA2EM,yBRtG4B;EQuG5B,yBAAyB;EACzB,WC3CU;AX6mChB;;AU/oCA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,WChDQ;AXmnChB;;AUrpCA;EAqFQ,yBAAyB;EACzB,WCpDQ;AXwnChB;;AU1pCA;EAwFU,kDRnHwB;AFyrClC;;AU9pCA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,WC3DQ;AXkoChB;;AUpqCA;;EAgGQ,yBR3H0B;EQ4H1B,yBAAyB;EACzB,gBAAgB;AVykCxB;;AU3qCA;EAoGQ,sBClEQ;EDmER,cRhI0B;AF2sClC;;AUhrCA;EAwGU,yBC3CuB;AXunCjC;;AUprCA;;EA2GU,sBCzEM;ED0EN,yBAAyB;EACzB,gBAAgB;EAChB,cRzIwB;AFutClC;;AU5rCA;EAiHU,0DAA4E;AV+kCtF;;AUhsCA;EAmHQ,6BAA6B;EAC7B,qBR/I0B;EQgJ1B,cRhJ0B;AFiuClC;;AUtsCA;EA0HU,yBRrJwB;EQsJxB,qBRtJwB;EQuJxB,WC1FM;AX0qChB;;AU5sCA;EA+HY,gEAA8D;AVilC1E;;AUhtCA;EAqIc,0DAA4E;AV+kC1F;;AUptCA;;EAwIU,6BAA6B;EAC7B,qBRpKwB;EQqKxB,gBAAgB;EAChB,cRtKwB;AFuvClC;;AU5tCA;EA6IQ,6BAA6B;EAC7B,kBC5GQ;ED6GR,WC7GQ;AXgsChB;;AUluCA;EAoJU,sBClHM;EDmHN,cRhLwB;AFkwClC;;AUvuCA;EA4Jc,gEAA8D;AV+kC5E;;AU3uCA;;EA+JU,6BAA6B;EAC7B,kBC9HM;ED+HN,gBAAgB;EAChB,WChIM;AXitChB;;AUnvCA;EAwKU,yBC/HsC;EDgItC,cCvH2D;AXssCrE;;AUxvCA;EA4KY,yBC/GqB;EDgHrB,yBAAyB;EACzB,cC5HyD;AX4sCrE;;AU9vCA;EAiLY,yBCpHqB;EDqHrB,yBAAyB;EACzB,cCjIyD;AXktCrE;;AUpwCA;EA2EM,yBRxG4B;EQyG5B,yBAAyB;EACzB,WC3CU;AXwuChB;;AU1wCA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,WChDQ;AX8uChB;;AUhxCA;EAqFQ,yBAAyB;EACzB,WCpDQ;AXmvChB;;AUrxCA;EAwFU,kDRrHwB;AFszClC;;AUzxCA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,WC3DQ;AX6vChB;;AU/xCA;;EAgGQ,yBR7H0B;EQ8H1B,yBAAyB;EACzB,gBAAgB;AVosCxB;;AUtyCA;EAoGQ,sBClEQ;EDmER,cRlI0B;AFw0ClC;;AU3yCA;EAwGU,yBC3CuB;AXkvCjC;;AU/yCA;;EA2GU,sBCzEM;ED0EN,yBAAyB;EACzB,gBAAgB;EAChB,cR3IwB;AFo1ClC;;AUvzCA;EAiHU,0DAA4E;AV0sCtF;;AU3zCA;EAmHQ,6BAA6B;EAC7B,qBRjJ0B;EQkJ1B,cRlJ0B;AF81ClC;;AUj0CA;EA0HU,yBRvJwB;EQwJxB,qBRxJwB;EQyJxB,WC1FM;AXqyChB;;AUv0CA;EA+HY,gEAA8D;AV4sC1E;;AU30CA;EAqIc,0DAA4E;AV0sC1F;;AU/0CA;;EAwIU,6BAA6B;EAC7B,qBRtKwB;EQuKxB,gBAAgB;EAChB,cRxKwB;AFo3ClC;;AUv1CA;EA6IQ,6BAA6B;EAC7B,kBC5GQ;ED6GR,WC7GQ;AX2zChB;;AU71CA;EAoJU,sBClHM;EDmHN,cRlLwB;AF+3ClC;;AUl2CA;EA4Jc,gEAA8D;AV0sC5E;;AUt2CA;;EA+JU,6BAA6B;EAC7B,kBC9HM;ED+HN,gBAAgB;EAChB,WChIM;AX40ChB;;AU92CA;EAwKU,yBC/HsC;EDgItC,cCvH2D;AXi0CrE;;AUn3CA;EA4KY,yBC/GqB;EDgHrB,yBAAyB;EACzB,cC5HyD;AXu0CrE;;AUz3CA;EAiLY,yBCpHqB;EDqHrB,yBAAyB;EACzB,cCjIyD;AX60CrE;;AU/3CA;EA2EM,yBRzG4B;EQ0G5B,yBAAyB;EACzB,yBC7Ce;AXq2CrB;;AUr4CA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,yBClDa;AX22CrB;;AU34CA;EAqFQ,yBAAyB;EACzB,yBCtDa;AXg3CrB;;AUh5CA;EAwFU,kDRtHwB;AFk7ClC;;AUp5CA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,yBC7Da;AX03CrB;;AU15CA;;EAgGQ,yBR9H0B;EQ+H1B,yBAAyB;EACzB,gBAAgB;AV+zCxB;;AUj6CA;EAoGQ,oCCpEa;EDqEb,cRnI0B;AFo8ClC;;AUt6CA;EAwGU,oCC3CuB;AX62CjC;;AU16CA;;EA2GU,oCC3EW;ED4EX,yBAAyB;EACzB,gBAAgB;EAChB,cR5IwB;AFg9ClC;;AUl7CA;EAiHU,sFAA4E;AVq0CtF;;AUt7CA;EAmHQ,6BAA6B;EAC7B,qBRlJ0B;EQmJ1B,cRnJ0B;AF09ClC;;AU57CA;EA0HU,yBRxJwB;EQyJxB,qBRzJwB;EQ0JxB,yBC5FW;AXk6CrB;;AUl8CA;EA+HY,gEAA8D;AVu0C1E;;AUt8CA;EAqIc,sFAA4E;AVq0C1F;;AU18CA;;EAwIU,6BAA6B;EAC7B,qBRvKwB;EQwKxB,gBAAgB;EAChB,cRzKwB;AFg/ClC;;AUl9CA;EA6IQ,6BAA6B;EAC7B,gCC9Ga;ED+Gb,yBC/Ga;AXw7CrB;;AUx9CA;EAoJU,oCCpHW;EDqHX,cRnLwB;AF2/ClC;;AU79CA;EA4Jc,gEAA8D;AVq0C5E;;AUj+CA;;EA+JU,6BAA6B;EAC7B,gCChIW;EDiIX,gBAAgB;EAChB,yBClIW;AXy8CrB;;AUz+CA;EAwKU,yBC/HsC;EDgItC,cCvH2D;AX47CrE;;AU9+CA;EA4KY,yBC/GqB;EDgHrB,yBAAyB;EACzB,cC5HyD;AXk8CrE;;AUp/CA;EAiLY,yBCpHqB;EDqHrB,yBAAyB;EACzB,cCjIyD;AXw8CrE;;AU1/CA;EA2EM,yBRnG2B;EQoG3B,yBAAyB;EACzB,WC3CU;AX89ChB;;AUhgDA;EAgFQ,yBCnByB;EDoBzB,yBAAyB;EACzB,WChDQ;AXo+ChB;;AUtgDA;EAqFQ,yBAAyB;EACzB,WCpDQ;AXy+ChB;;AU3gDA;EAwFU,kDRhHuB;AFuiDjC;;AU/gDA;EA2FQ,yBC9ByB;ED+BzB,yBAAyB;EACzB,WC3DQ;AXm/ChB;;AUrhDA;;EAgGQ,yBRxHyB;EQyHzB,yBAAyB;EACzB,gBAAgB;AV07CxB;;AU5hDA;EAoGQ,sBClEQ;EDmER,cR7HyB;AFyjDjC;;AUjiDA;EAwGU,yBC3CuB;AXw+CjC;;AUriDA;;EA2GU,sBCzEM;ED0EN,yBAAyB;EACzB,gBAAgB;EAChB,cRtIuB;AFqkDjC;;AU7iDA;EAiHU,0DAA4E;AVg8CtF;;AUjjDA;EAmHQ,6BAA6B;EAC7B,qBR5IyB;EQ6IzB,cR7IyB;AF+kDjC;;AUvjDA;EA0HU,yBRlJuB;EQmJvB,qBRnJuB;EQoJvB,WC1FM;AX2hDhB;;AU7jDA;EA+HY,gEAA8D;AVk8C1E;;AUjkDA;EAqIc,0DAA4E;AVg8C1F;;AUrkDA;;EAwIU,6BAA6B;EAC7B,qBRjKuB;EQkKvB,gBAAgB;EAChB,cRnKuB;AFqmDjC;;AU7kDA;EA6IQ,6BAA6B;EAC7B,kBC5GQ;ED6GR,WC7GQ;AXijDhB;;AUnlDA;EAoJU,sBClHM;EDmHN,cR7KuB;AFgnDjC;;AUxlDA;EA4Jc,gEAA8D;AVg8C5E;;AU5lDA;;EA+JU,6BAA6B;EAC7B,kBC9HM;ED+HN,gBAAgB;EAChB,WChIM;AXkkDhB;;AUpmDA;EAwKU,yBC/HsC;EDgItC,cCvH2D;AXujDrE;;AUzmDA;EA4KY,yBC/GqB;EDgHrB,yBAAyB;EACzB,cC5HyD;AX6jDrE;;AU/mDA;EAiLY,yBCpHqB;EDqHrB,yBAAyB;EACzB,cCjIyD;AXmkDrE;;AUrnDA;EATE,kBR6BgB;EQ5BhB,kBRFc;AFooDhB;;AU1nDA;EANE,eRLW;AFyoDb;;AU9nDA;EAJE,kBRRc;AF8oDhB;;AUloDA;EAFE,iBRXa;AFmpDf;;AUtoDA;;EAgMI,uBRjO2B;EQkO3B,qBRvO0B;EQwO1B,gBAtNyB;EAuNzB,YAtNyB;AViqD7B;;AU9oDA;EAqMI,aAAa;EACb,WAAW;AV68Cf;;AUnpDA;EAwMI,6BAA6B;EAC7B,oBAAoB;AV+8CxB;;AUxpDA;ETvCE,kBAAkB;EAKhB,2BAAiC;EACjC,0BAAgC;ES8O9B,6BAA6B;AVk9CnC;;AU/pDA;EA+MI,4BRlP0B;EQmP1B,qBRtP0B;EQuP1B,cRzP0B;EQ0P1B,gBAAgB;EAChB,oBAAoB;AVo9CxB;;AUvqDA;EAqNI,uBR9LqB;EQ+LrB,gCAA0D;EAC1D,iCAA2D;AVs9C/D;;AUp9CA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AVu9C7B;;AU39CA;EAMI,qBAAqB;AVy9CzB;;AU/9CA;ETzHI,oBSiIwC;AV29C5C;;AUn+CA;EAUI,sBAAsB;AV69C1B;;AUv+CA;EAYI,mBAAmB;AV+9CvB;;AU3+CA;EAlOE,kBR6BgB;EQ5BhB,kBRFc;AFmtDhB;;AUh/CA;EA7NE,kBRRc;AFytDhB;;AUp/CA;EA3NE,iBRXa;AF8tDf;;AUx/CA;EA0BQ,4BAA4B;EAC5B,yBAAyB;AVk+CjC;;AU7/CA;EA6BQ,6BAA6B;EAC7B,0BAA0B;ETvJ9B,kBSwJwC;AVo+C5C;;AUngDA;ETzHI,eS0JqC;AVs+CzC;;AUvgDA;EAoCQ,UAAU;AVu+ClB;;AU3gDA;EA0CQ,UAAU;AVq+ClB;;AU/gDA;EA4CU,UAAU;AVu+CpB;;AUnhDA;EA8CQ,YAAY;EACZ,cAAc;AVy+CtB;;AUxhDA;EAiDI,uBAAuB;AV2+C3B;;AU5hDA;EAoDQ,oBAAoB;EACpB,qBAAqB;AV4+C7B;;AUjiDA;EAuDI,yBAAyB;AV8+C7B;;AUriDA;EA0DQ,oBAAoB;EACpB,qBAAqB;AV++C7B;;AYhzDA;EACE,YAAY;EACZ,cAAc;EACd,kBAAkB;EAClB,WAAW;AZmzDb;;AYvzDA;EAMI,0BAA0B;EAC1B,kBV2CM;EU1CN,mBV0CM;EUzCN,WAAW;AZqzDf;;AChuDE;EW9FF;IAWI,gBAAuC;EZwzDzC;AACF;;AC5tDI;EWxGJ;IAcM,iBAAqE;EZ2zDzE;AACF;;ACntDI;EWvHJ;IAiBM,iBAAiE;EZ8zDrE;AACF;;ACnuDI;EW7GJ;IAoBM,iBAAqE;EZi0DzE;AACF;;AC1tDI;EW5HJ;IAuBM,iBAAiE;EZo0DrE;AACF;;Aa50DA;EAII,kBAAkB;Ab40DtB;;Aah1DA;;;;;;;EAcM,kBAAkB;Ab40DxB;;Aa11DA;;;;;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AAuB;AfinE7B;;AerrEA;EAmEM,YAAwB;EACxB,WAAuB;AfsnE7B;;Ae1rEA;EAmEM,YAAwB;EACxB,WAAuB;Af2nE7B;;Ae/rEA;EAmEM,YAAwB;EACxB,WAAuB;AfgoE7B;;AepsEA;EAmEM,aAAwB;EACxB,YAAuB;AfqoE7B;;AgBlsEA;EAEE,4BdE4B;EcD5B,kBdyDU;EcxDV,kBAAkB;EAEhB,sCAXoD;AhB8sExD;;AgBzsEA;EAUI,mBAAmB;EACnB,0BAA0B;AhBmsE9B;;AgB9sEA;EAaI,mBAAmB;AhBqsEvB;;AgBltEA;;EAgBI,iBdV2B;AFitE/B;;AgBvtEA;EAkBI,uBAAuB;AhBysE3B;;AgB3tEA;Ef+II,ae3H4B;EAC5B,kBAAkB;EAClB,WAAW;AhB2sEf;;AgBjuEA;;;EA0BI,mBAAmB;AhB6sEvB;;AgBvuEA;EAgCM,uBd1ByB;Ec2BzB,cdxCuB;AFmvE7B;;AgB5uEA;EAgCM,yBdvCuB;EcwCvB,Yd3ByB;AF2uE/B;;AgBjvEA;EAgCM,4Bd5BwB;Ec6BxB,yBLsCe;AX+qErB;;AgBtvEA;EAgCM,yBdnCwB;EcoCxB,WLwCU;AXkrEhB;;AgB3vEA;EAgCM,yBdrB4B;EcsB5B,WLwCU;AXurEhB;;AgBhwEA;EAuCU,yBLyCsC;EKxCtC,cLiD2D;AX4qErE;;AgBrwEA;EAgCM,yBdnB4B;EcoB5B,WLwCU;AXisEhB;;AgB1wEA;EAuCU,yBLyCsC;EKxCtC,cLiD2D;AXsrErE;;AgB/wEA;EAgCM,yBdpB4B;EcqB5B,WLwCU;AX2sEhB;;AgBpxEA;EAuCU,yBLyCsC;EKxCtC,cLiD2D;AXgsErE;;AgBzxEA;EAgCM,yBdtB4B;EcuB5B,WLwCU;AXqtEhB;;AgB9xEA;EAuCU,yBLyCsC;EKxCtC,cLiD2D;AX0sErE;;AgBnyEA;EAgCM,yBdvB4B;EcwB5B,yBLsCe;AXiuErB;;AgBxyEA;EAuCU,yBLyCsC;EKxCtC,cLiD2D;AXotErE;;AgB7yEA;EAgCM,yBdjB2B;EckB3B,WLwCU;AXyuEhB;;AgBlzEA;EAuCU,yBLyCsC;EKxCtC,cLiD2D;AX8tErE;;AiBxzEA;EAEE,qBAAqB;EACrB,wBAAwB;EACxB,YAAY;EACZ,uBf0DuB;EezDvB,cAAc;EACd,YfsBW;EerBX,gBAAgB;EAChB,UAAU;EACV,WAAW;AjB0zEb;;AiBp0EA;EAYI,yBfT2B;AFq0E/B;;AiBx0EA;EAcI,yBff0B;AF60E9B;;AiB50EA;EAgBI,yBfjB0B;AFi1E9B;;AiBh1EA;EAkBI,yBfnB0B;EeoB1B,YAAY;AjBk0EhB;;AiBr1EA;EAyBQ,uBflBuB;AFk1E/B;;AiBz1EA;EA2BQ,uBfpBuB;AFs1E/B;;AiB71EA;EA6BQ,uBftBuB;AF01E/B;;AiBj2EA;EA+BQ,mEAA2F;AjBs0EnG;;AiBr2EA;EAyBQ,yBf/BqB;AF+2E7B;;AiBz2EA;EA2BQ,yBfjCqB;AFm3E7B;;AiB72EA;EA6BQ,yBfnCqB;AFu3E7B;;AiBj3EA;EA+BQ,qEAA2F;AjBs1EnG;;AiBr3EA;EAyBQ,4BfpBsB;AFo3E9B;;AiBz3EA;EA2BQ,4BftBsB;AFw3E9B;;AiB73EA;EA6BQ,4BfxBsB;AF43E9B;;AiBj4EA;EA+BQ,wEAA2F;AjBs2EnG;;AiBr4EA;EAyBQ,yBf3BsB;AF24E9B;;AiBz4EA;EA2BQ,yBf7BsB;AF+4E9B;;AiB74EA;EA6BQ,yBf/BsB;AFm5E9B;;AiBj5EA;EA+BQ,qEAA2F;AjBs3EnG;;AiBr5EA;EAyBQ,yBfb0B;AF64ElC;;AiBz5EA;EA2BQ,yBff0B;AFi5ElC;;AiB75EA;EA6BQ,yBfjB0B;AFq5ElC;;AiBj6EA;EA+BQ,qEAA2F;AjBs4EnG;;AiBr6EA;EAyBQ,yBfX0B;AF25ElC;;AiBz6EA;EA2BQ,yBfb0B;AF+5ElC;;AiB76EA;EA6BQ,yBff0B;AFm6ElC;;AiBj7EA;EA+BQ,qEAA2F;AjBs5EnG;;AiBr7EA;EAyBQ,yBfZ0B;AF46ElC;;AiBz7EA;EA2BQ,yBfd0B;AFg7ElC;;AiB77EA;EA6BQ,yBfhB0B;AFo7ElC;;AiBj8EA;EA+BQ,qEAA2F;AjBs6EnG;;AiBr8EA;EAyBQ,yBfd0B;AF87ElC;;AiBz8EA;EA2BQ,yBfhB0B;AFk8ElC;;AiB78EA;EA6BQ,yBflB0B;AFs8ElC;;AiBj9EA;EA+BQ,qEAA2F;AjBs7EnG;;AiBr9EA;EAyBQ,yBff0B;AF+8ElC;;AiBz9EA;EA2BQ,yBfjB0B;AFm9ElC;;AiB79EA;EA6BQ,yBfnB0B;AFu9ElC;;AiBj+EA;EA+BQ,qEAA2F;AjBs8EnG;;AiBr+EA;EAyBQ,yBfTyB;AFy9EjC;;AiBz+EA;EA2BQ,yBfXyB;AF69EjC;;AiB7+EA;EA6BQ,yBfbyB;AFi+EjC;;AiBj/EA;EA+BQ,qEAA2F;AjBs9EnG;;AiBr/EA;EAkCI,gCAtCkC;UAsClC,wBAtCkC;EAuClC,2CAAmC;UAAnC,mCAAmC;EACnC,yCAAiC;UAAjC,iCAAiC;EACjC,yCAAiC;UAAjC,iCAAiC;EACjC,yBfnC2B;EeoC3B,qEAA0F;EAC1F,6BAA6B;EAC7B,4BAA4B;EAC5B,0BAA0B;AjBu9E9B;;AiBjgFA;EA4CM,6BAA6B;AjBy9EnC;;AiBrgFA;EA8CM,6BAA6B;AjB29EnC;;AiBzgFA;EAgDM,oBAAoB;AjB69E1B;;AiB7gFA;EAoDI,eftBY;AFm/EhB;;AiBjhFA;EAsDI,ef1BY;AFy/EhB;;AiBrhFA;EAwDI,cf7BW;AF8/Ef;;AiB/9EA;EACE;IACE,2BAA2B;EjBk+E7B;EiBj+EA;IACE,4BAA4B;EjBm+E9B;AACF;;AiBx+EA;EACE;IACE,2BAA2B;EjBk+E7B;EiBj+EA;IACE,4BAA4B;EjBm+E9B;AACF;;AkB/gFA;EAEE,uBhBd6B;EgBe7B,chBxB4B;AFyiF9B;;AkBphFA;;EAMI,yBhBvB0B;EgBwB1B,qBA9B6B;EA+B7B,qBA9B6B;EA+B7B,mBAAmB;AlBmhFvB;;AkB5hFA;;EAeQ,uBhB3BuB;EgB4BvB,mBhB5BuB;EgB6BvB,chB1CqB;AF4jF7B;;AkBniFA;;EAeQ,yBhBxCqB;EgByCrB,qBhBzCqB;EgB0CrB,YhB7BuB;AFsjF/B;;AkB1iFA;;EAeQ,4BhB7BsB;EgB8BtB,wBhB9BsB;EgB+BtB,yBPoCa;AX4/ErB;;AkBjjFA;;EAeQ,yBhBpCsB;EgBqCtB,qBhBrCsB;EgBsCtB,WPsCQ;AXigFhB;;AkBxjFA;;EAeQ,yBhBtB0B;EgBuB1B,qBhBvB0B;EgBwB1B,WPsCQ;AXwgFhB;;AkB/jFA;;EAeQ,yBhBpB0B;EgBqB1B,qBhBrB0B;EgBsB1B,WPsCQ;AX+gFhB;;AkBtkFA;;EAeQ,yBhBrB0B;EgBsB1B,qBhBtB0B;EgBuB1B,WPsCQ;AXshFhB;;AkB7kFA;;EAeQ,yBhBvB0B;EgBwB1B,qBhBxB0B;EgByB1B,WPsCQ;AX6hFhB;;AkBplFA;;EAeQ,yBhBxB0B;EgByB1B,qBhBzB0B;EgB0B1B,yBPoCa;AXsiFrB;;AkB3lFA;;EAeQ,yBhBlByB;EgBmBzB,qBhBnByB;EgBoBzB,WPsCQ;AX2iFhB;;AkBlmFA;;EAoBM,mBAAmB;EACnB,SAAS;AlBmlFf;;AkBxmFA;;EAuBM,yBhB9B4B;EgB+B5B,WP+BU;AXujFhB;;AkB9mFA;;;;EA2BQ,mBAAmB;AlB0lF3B;;AkBrnFA;;EA6BM,sBAAsB;AlB6lF5B;;AkB1nFA;EA+BI,chBpD0B;AFmpF9B;;AkB9nFA;EAiCM,mBAAmB;AlBimFzB;;AkBloFA;EAoCM,yBhB3C4B;EgB4C5B,WPkBU;AXglFhB;;AkBvoFA;;EAwCQ,mBAAmB;AlBomF3B;;AkB5oFA;;EA2CQ,kBPYQ;EOXR,mBAAmB;AlBsmF3B;;AkBlpFA;EA8CI,6BA5DqC;AlBoqFzC;;AkBtpFA;;EAiDM,qBApEgC;EAqEhC,chBvEwB;AFirF9B;;AkB5pFA;EAoDI,6BAhEqC;AlB4qFzC;;AkBhqFA;;EAuDM,qBAxEgC;EAyEhC,chB7EwB;AF2rF9B;;AkBtqFA;EA0DI,6BAvEqC;AlBurFzC;;AkB1qFA;;EA+DU,sBAAsB;AlBgnFhC;;AkB/qFA;;EAoEM,iBAAiB;AlBgnFvB;;AkBprFA;;EAyEU,wBAAwB;AlBgnFlC;;AkBzrFA;EA2EI,WAAW;AlBknFf;;AkB7rFA;EAgFU,yBhB7FoB;AF8sF9B;;AkBjsFA;EAqFY,yBhBlGkB;AFktF9B;;AkBrsFA;EAuFc,4BhBrGgB;AFutF9B;;AkBzsFA;;EA2FM,qBAAqB;AlBmnF3B;;AkB9sFA;EAgGU,yBhB7GoB;AF+tF9B;;AkBhnFA;EjB/DE,iCAAiC;EiBkEjC,cAAc;EACd,kBAAkB;EAClB,eAAe;AlBknFjB;;AmB7uFA;EACE,mBAAmB;EACnB,aAAa;EACb,eAAe;EACf,2BAA2B;AnBgvF7B;;AmBpvFA;EAMI,qBAAqB;AnBkvFzB;;AmBxvFA;ElByII,oBkBjIwC;AnBovF5C;;AmB5vFA;EAUI,sBAAsB;AnBsvF1B;;AmBhwFA;EAYI,mBAAmB;AnBwvFvB;;AmBpwFA;EAgBM,ejBcO;AF0uFb;;AmBxwFA;EAmBM,kBjBUU;AF+uFhB;;AmB5wFA;EAqBI,uBAAuB;AnB2vF3B;;AmBhxFA;EAuBM,qBAAqB;EACrB,oBAAoB;AnB6vF1B;;AmBrxFA;EA0BI,yBAAyB;AnB+vF7B;;AmBzxFA;EA6BQ,mBAAmB;AnBgwF3B;;AmB7xFA;EA+BQ,eAAe;AnBkwFvB;;AmBjyFA;ElByII,ekBvGmC;AnBmwFvC;;AmBryFA;ElByII,ckBrGqC;EAE/B,yBAAyB;EACzB,4BAA4B;AnBowFtC;;AmB3yFA;EA6CU,0BAA0B;EAC1B,6BAA6B;AnBkwFvC;;AmB7vFA;EACE,mBAAmB;EACnB,4BjB/C4B;EiBgD5B,kBjBQU;EiBPV,cjBvD4B;EiBwD5B,oBAAoB;EACpB,kBjB1Bc;EiB2Bd,WAAW;EACX,uBAAuB;EACvB,gBAAgB;EAChB,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AnBgwFrB;;AmB5wFA;ElBsFI,oBkBxEuC;ElBwEvC,uBkBvEyC;AnBkwF7C;;AmBjxFA;EAqBM,uBjBhEyB;EiBiEzB,cjB9EuB;AF80F7B;;AmBtxFA;EAqBM,yBjB7EuB;EiB8EvB,YjBjEyB;AFs0F/B;;AmB3xFA;EAqBM,4BjBlEwB;EiBmExB,yBRAe;AX0wFrB;;AmBhyFA;EAqBM,yBjBzEwB;EiB0ExB,WREU;AX6wFhB;;AmBryFA;EAqBM,yBjB3D4B;EiB4D5B,WREU;AXkxFhB;;AmB1yFA;EA4BU,yBRGsC;EQFtC,cRW2D;AXuwFrE;;AmB/yFA;EAqBM,yBjBzD4B;EiB0D5B,WREU;AX4xFhB;;AmBpzFA;EA4BU,yBRGsC;EQFtC,cRW2D;AXixFrE;;AmBzzFA;EAqBM,yBjB1D4B;EiB2D5B,WREU;AXsyFhB;;AmB9zFA;EA4BU,yBRGsC;EQFtC,cRW2D;AX2xFrE;;AmBn0FA;EAqBM,yBjB5D4B;EiB6D5B,WREU;AXgzFhB;;AmBx0FA;EA4BU,yBRGsC;EQFtC,cRW2D;AXqyFrE;;AmB70FA;EAqBM,yBjB7D4B;EiB8D5B,yBRAe;AX4zFrB;;AmBl1FA;EA4BU,yBRGsC;EQFtC,cRW2D;AX+yFrE;;AmBv1FA;EAqBM,yBjBvD2B;EiBwD3B,WREU;AXo0FhB;;AmB51FA;EA4BU,yBRGsC;EQFtC,cRW2D;AXyzFrE;;AmBj2FA;EAgCI,kBjBpDY;AFy3FhB;;AmBr2FA;EAkCI,ejBvDS;AF83Fb;;AmBz2FA;EAoCI,kBjB1DY;AFm4FhB;;AmB72FA;ElBsFI,qBkB/C0C;ElB+C1C,sBkB9C0C;AnB00F9C;;AmBl3FA;ElBsFI,qBkB5C0C;ElB4C1C,sBkB3C0C;AnB40F9C;;AmBv3FA;ElBsFI,qBkBzC0C;ElByC1C,sBkBxC0C;AnB80F9C;;AmB53FA;ElBsFI,gBkB7ImB;EAyGnB,UAAU;EACV,kBAAkB;EAClB,UAAU;AnB+0Fd;;AmBn4FA;EAuDM,8BAA8B;EAC9B,WAAW;EACX,cAAc;EACd,SAAS;EACT,kBAAkB;EAClB,QAAQ;EACR,0DAA0D;EAC1D,+BAA+B;AnBg1FrC;;AmB94FA;EAgEM,WAAW;EACX,UAAU;AnBk1FhB;;AmBn5FA;EAmEM,WAAW;EACX,UAAU;AnBo1FhB;;AmBx5FA;EAuEM,yBAAmD;AnBq1FzD;;AmB55FA;EAyEM,yBAAoD;AnBu1F1D;;AmBh6FA;EA2EI,uBjB9DqB;AFu5FzB;;AmBv1FA;EAEI,0BAA0B;AnBy1F9B;;AoB/8FA;;EAGE,sBAAsB;ApBi9FxB;;AoBp9FA;;;;EAMI,oBAAoB;ApBq9FxB;;AoB39FA;;EAQI,iBApBmB;ApB4+FvB;;AoBh+FA;;EAUI,iBArBmB;ApBg/FvB;;AoBr+FA;;EAYI,sBAAsB;ApB89F1B;;AoB59FA;EACE,clB5B4B;EkB+B5B,elBHW;EkBIX,gBlBKmB;EkBJnB,kBAnCuB;ApBggGzB;;AoBn+FA;EAQI,cApCwB;EAqCxB,oBApCyB;ApBmgG7B;;AoBx+FA;EAWI,oBAAoB;ApBi+FxB;;AoB5+FA;EAaI,oBA7B+B;ApBggGnC;;AoBh/FA;EAkBM,elBnBO;AFq/Fb;;AoBp/FA;EAkBM,iBlBlBS;AFw/Ff;;AoBx/FA;EAkBM,elBjBO;AF2/Fb;;AoB5/FA;EAkBM,iBlBhBS;AF8/Ff;;AoBhgGA;EAkBM,kBlBfU;AFigGhB;;AoBpgGA;EAkBM,elBdO;AFogGb;;AoBxgGA;EAkBM,kBlBbU;AFugGhB;;AoBx/FA;EACE,clB/C4B;EkBkD5B,kBlBrBc;EkBsBd,gBlBjBiB;EkBkBjB,iBA7CyB;ApBsiG3B;;AoB//FA;EAQI,clBvD0B;EkBwD1B,gBlBnBiB;AF8gGrB;;AoBpgGA;EAWI,oBA/C+B;ApB4iGnC;;AoBxgGA;EAgBM,elBrCO;AFiiGb;;AoB5gGA;EAgBM,iBlBpCS;AFoiGf;;AoBhhGA;EAgBM,elBnCO;AFuiGb;;AoBphGA;EAgBM,iBlBlCS;AF0iGf;;AoBxhGA;EAgBM,kBlBjCU;AF6iGhB;;AoB5hGA;EAgBM,elBhCO;AFgjGb;;AoBhiGA;EAgBM,kBlB/BU;AFmjGhB;;AqBnlGA;EACE,cAAc;EACd,eAAe;EACf,mBAAmB;EACnB,kBAAkB;EAClB,yBAAyB;ArBslG3B;;AqBplGA;EAEE,gBnB0BiB;EmBzBjB,eAAe;EACf,gBAAgB;EAChB,UAAU;ArBslGZ;;AqB3lGA;EAOI,cAAc;EACd,eAAe;ArBwlGnB;;AqBnlGA;EACE,mBAAmB;EACnB,4BnBf4B;EmBgB5B,uBnB0CuB;EmBzCvB,oBAAoB;EACpB,kBnBKc;EmBJd,WAAW;EACX,uBAAuB;EACvB,oBAAoB;EACpB,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;EAClB,mBAAmB;ArBslGrB;;AsB5nGA,eAAA;ACuDA;EAxBE,uBrBhB6B;EqBiB7B,qBrBtB4B;EqBuB5B,kBrBoCU;EqBnCV,crB5B4B;AF8nG9B;;ACjkGI;EsB/BA,4BrB9B0B;AFkoG9B;;ACrkGI;EsB/BA,4BrB9B0B;AFsoG9B;;ACzkGI;EsB/BA,4BrB9B0B;AF0oG9B;;AC7kGI;EsB/BA,4BrB9B0B;AF8oG9B;;AuB/mGE;EAEE,qBrB9B0B;AF+oG9B;;AuBhnGE;EAIE,qBrBtB8B;EqBuB9B,kDrBvB8B;AFuoGlC;;AuB/mGE;;;;;EAEE,4BrBnC0B;EqBoC1B,wBrBpC0B;EqBqC1B,gBAAgB;EAChB,crB3C0B;AFgqG9B;;ACrmGI;;;;;EsBdE,+BrB7CwB;AFwqG9B;;AC7mGI;;;;;EsBdE,+BrB7CwB;AFgrG9B;;ACrnGI;;;;;EsBdE,+BrB7CwB;AFwrG9B;;AC7nGI;;;;;EsBdE,+BrB7CwB;AFgsG9B;;AwBlsGA;EAEE,2DtBN2B;EsBO3B,eAAe;EACf,WAAW;AxBosGb;;AwBnsGE;EACE,gBAAgB;AxBssGpB;;AwBlsGI;EACE,mBtBFyB;AFusG/B;;AwBtsGK;EAMG,mDtBPuB;AF2sG/B;;AwB1sGI;EACE,qBtBfuB;AF4tG7B;;AwB9sGK;EAMG,gDtBpBqB;AFguG7B;;AwBltGI;EACE,wBtBJwB;AFytG9B;;AwBttGK;EAMG,mDtBTsB;AF6tG9B;;AwB1tGI;EACE,qBtBXwB;AFwuG9B;;AwB9tGK;EAMG,gDtBhBsB;AF4uG9B;;AwBluGI;EACE,qBtBG4B;AFkuGlC;;AwBtuGK;EAMG,iDtBF0B;AFsuGlC;;AwB1uGI;EACE,qBtBK4B;AFwuGlC;;AwB9uGK;EAMG,kDtBA0B;AF4uGlC;;AwBlvGI;EACE,qBtBI4B;AFivGlC;;AwBtvGK;EAMG,kDtBD0B;AFqvGlC;;AwB1vGI;EACE,qBtBE4B;AF2vGlC;;AwB9vGK;EAMG,kDtBH0B;AF+vGlC;;AwBlwGI;EACE,qBtBC4B;AFowGlC;;AwBtwGK;EAMG,kDtBJ0B;AFwwGlC;;AwB1wGI;EACE,qBtBO2B;AFswGjC;;AwB9wGK;EAMG,kDtBEyB;AF0wGjC;;AwB1wGE;ErBoBA,kBDwBgB;ECvBhB,kBDPc;AFiwGhB;;AwB7wGE;ErBqBA,kBDXc;AFuwGhB;;AwB/wGE;ErBqBA,iBDda;AF4wGf;;AwBhxGE;EACE,cAAc;EACd,WAAW;AxBmxGf;;AwBlxGE;EACE,eAAe;EACf,WAAW;AxBqxGf;;AwBnxGA;EAGI,uBtB8BqB;EsB7BrB,gDAA4D;EAC5D,iDAA6D;AxBoxGjE;;AwBzxGA;EAOI,6BAA6B;EAC7B,yBAAyB;EACzB,gBAAgB;EAChB,eAAe;EACf,gBAAgB;AxBsxGpB;;AwBpxGA;EAEE,cAAc;EACd,eAAe;EACf,eAAe;EACf,2BrB/CkE;EqBgDlE,gBAAgB;AxBsxGlB;;AwB5xGA;EAQI,gBA1DsB;EA2DtB,eA1DqB;AxBk1GzB;;AwBjyGA;EAWI,eAAe;AxB0xGnB;;AwBryGA;EAcI,YAAY;AxB2xGhB;;AyB51GA;EACE,eAAe;EACf,qBAAqB;EACrB,iBAAiB;EACjB,kBAAkB;AzB+1GpB;;AyB91GE;EACE,eAAe;AzBi2GnB;;AyBh2GE;EACE,cvBF0B;AFq2G9B;;AyBl2GE;;;;;EAGE,cvBJ0B;EuBK1B,mBAAmB;AzBu2GvB;;AyBl2GA;ExB8HI,kBwB3HqC;AzBm2GzC;;A0Bt3GA;EACE,qBAAqB;EACrB,eAAe;EACf,kBAAkB;EAClB,mBAAmB;A1By3GrB;;A0B73GA;EAMI,avBHkB;AH83GtB;;A0Bj4GA;EAUM,qBxBU4B;EDkI9B,cyB3I+B;EAC7B,UAAU;A1B23GhB;;A0Bv4GA;EAeM,uBxBsDmB;EDyErB,iByB9HsC;A1B43G1C;;A0B54GA;EAmBI,eAAe;EACf,cAAc;EACd,cAAc;EACd,eAAe;EACf,aAAa;A1B63GjB;;A0Bp5GA;EAyBM,aAAa;A1B+3GnB;;A0Bx5GA;;EA4BM,wBxBjBwB;AFk5G9B;;A0B75GA;EzB8II,oByBhHwC;A1Bm4G5C;;A0Bj6GA;EAgCM,YAAY;EACZ,UAAU;A1Bq4GhB;;A0Bt6GA;EAmCQ,kBAAkB;A1Bu4G1B;;A0B16GA;EAuCM,qBxBnCwB;AF06G9B;;A0B96GA;EA6CQ,mBxBhCuB;AFq6G/B;;A0Bl7GA;EA+CQ,mBxBlCuB;AFy6G/B;;A0Bt7GA;EAkDU,qBfyDuB;AX+0GjC;;A0B17GA;EAuDU,mDxB1CqB;AFi7G/B;;A0B97GA;EA6CQ,qBxB7CqB;AFk8G7B;;A0Bl8GA;EA+CQ,qBxB/CqB;AFs8G7B;;A0Bt8GA;EAkDU,mBfyDuB;AX+1GjC;;A0B18GA;EAuDU,gDxBvDmB;AF88G7B;;A0B98GA;EA6CQ,wBxBlCsB;AFu8G9B;;A0Bl9GA;EA+CQ,wBxBpCsB;AF28G9B;;A0Bt9GA;EAkDU,qBfyDuB;AX+2GjC;;A0B19GA;EAuDU,mDxB5CoB;AFm9G9B;;A0B99GA;EA6CQ,qBxBzCsB;AF89G9B;;A0Bl+GA;EA+CQ,qBxB3CsB;AFk+G9B;;A0Bt+GA;EAkDU,qBfyDuB;AX+3GjC;;A0B1+GA;EAuDU,gDxBnDoB;AF0+G9B;;A0B9+GA;EA6CQ,qBxB3B0B;AFg+GlC;;A0Bl/GA;EA+CQ,qBxB7B0B;AFo+GlC;;A0Bt/GA;EAkDU,qBfyDuB;AX+4GjC;;A0B1/GA;EAuDU,iDxBrCwB;AF4+GlC;;A0B9/GA;EA6CQ,qBxBzB0B;AF8+GlC;;A0BlgHA;EA+CQ,qBxB3B0B;AFk/GlC;;A0BtgHA;EAkDU,qBfyDuB;AX+5GjC;;A0B1gHA;EAuDU,kDxBnCwB;AF0/GlC;;A0B9gHA;EA6CQ,qBxB1B0B;AF+/GlC;;A0BlhHA;EA+CQ,qBxB5B0B;AFmgHlC;;A0BthHA;EAkDU,qBfyDuB;AX+6GjC;;A0B1hHA;EAuDU,kDxBpCwB;AF2gHlC;;A0B9hHA;EA6CQ,qBxB5B0B;AFihHlC;;A0BliHA;EA+CQ,qBxB9B0B;AFqhHlC;;A0BtiHA;EAkDU,qBfyDuB;AX+7GjC;;A0B1iHA;EAuDU,kDxBtCwB;AF6hHlC;;A0B9iHA;EA6CQ,qBxB7B0B;AFkiHlC;;A0BljHA;EA+CQ,qBxB/B0B;AFsiHlC;;A0BtjHA;EAkDU,qBfyDuB;AX+8GjC;;A0B1jHA;EAuDU,kDxBvCwB;AF8iHlC;;A0B9jHA;EA6CQ,qBxBvByB;AF4iHjC;;A0BlkHA;EA+CQ,qBxBzByB;AFgjHjC;;A0BtkHA;EAkDU,qBfyDuB;AX+9GjC;;A0B1kHA;EAuDU,kDxBjCuB;AFwjHjC;;A0B9kHA;EvB0CE,kBDwBgB;ECvBhB,kBDPc;AF+iHhB;;A0BnlHA;EvB6CE,kBDXc;AFqjHhB;;A0BvlHA;EvB+CE,iBDda;AF0jHf;;A0B3lHA;EAkEM,qBxB5DwB;AFylH9B;;A0B/lHA;EAoEI,WAAW;A1B+hHf;;A0BnmHA;EAsEM,WAAW;A1BiiHjB;;A0BvmHA;EA0EM,aAAa;EACb,kBAAkB;EzB2EpB,cyB1E+B;EAC7B,YAAY;EACZ,eAAe;A1BiiHrB;;A0B/mHA;EAgFM,kBxB5CU;AF+kHhB;;A0BnnHA;EAkFM,kBxBhDU;AFqlHhB;;A0BvnHA;EAoFM,iBxBnDS;AF0lHf;;A2B9mHA;EAEE,oBAAoB;EACpB,aAAa;EACb,2BAA2B;EAC3B,kBAAkB;A3BgnHpB;;A2BrnHA;EAYQ,uBzBZuB;EyBavB,yBAAyB;EACzB,czB3BqB;AFwoH7B;;A2B3nHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,czBjCmB;AF8oH7B;;A2BjoHA;EAwBU,yBAAyB;EACzB,+CzBzBqB;EyB0BrB,czBvCmB;AFopH7B;;A2BvoHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,czB7CmB;AF0pH7B;;A2B7oHA;EAYQ,yBzBzBqB;EyB0BrB,yBAAyB;EACzB,YzBduB;AFmpH/B;;A2BnpHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,YzBpBqB;AFypH/B;;A2BzpHA;EAwBU,yBAAyB;EACzB,4CzBtCmB;EyBuCnB,YzB1BqB;AF+pH/B;;A2B/pHA;EA8BU,uBhBgEuB;EgB/DvB,yBAAyB;EACzB,YzBhCqB;AFqqH/B;;A2BrqHA;EAYQ,4BzBdsB;EyBetB,yBAAyB;EACzB,yBhBmDa;AX0mHrB;;A2B3qHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,yBhB6CW;AXgnHrB;;A2BjrHA;EAwBU,yBAAyB;EACzB,+CzB3BoB;EyB4BpB,yBhBuCW;AXsnHrB;;A2BvrHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,yBhBiCW;AX4nHrB;;A2B7rHA;EAYQ,yBzBrBsB;EyBsBtB,yBAAyB;EACzB,WhBqDQ;AXgoHhB;;A2BnsHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AXsoHhB;;A2BzsHA;EAwBU,yBAAyB;EACzB,4CzBlCoB;EyBmCpB,WhByCM;AX4oHhB;;A2B/sHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AXkpHhB;;A2BrtHA;EAYQ,yBzBP0B;EyBQ1B,yBAAyB;EACzB,WhBqDQ;AXwpHhB;;A2B3tHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AX8pHhB;;A2BjuHA;EAwBU,yBAAyB;EACzB,6CzBpBwB;EyBqBxB,WhByCM;AXoqHhB;;A2BvuHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AX0qHhB;;A2B7uHA;EAYQ,yBzBL0B;EyBM1B,yBAAyB;EACzB,WhBqDQ;AXgrHhB;;A2BnvHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AXsrHhB;;A2BzvHA;EAwBU,yBAAyB;EACzB,8CzBlBwB;EyBmBxB,WhByCM;AX4rHhB;;A2B/vHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AXksHhB;;A2BrwHA;EAYQ,yBzBN0B;EyBO1B,yBAAyB;EACzB,WhBqDQ;AXwsHhB;;A2B3wHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AX8sHhB;;A2BjxHA;EAwBU,yBAAyB;EACzB,8CzBnBwB;EyBoBxB,WhByCM;AXotHhB;;A2BvxHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AX0tHhB;;A2B7xHA;EAYQ,yBzBR0B;EyBS1B,yBAAyB;EACzB,WhBqDQ;AXguHhB;;A2BnyHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AXsuHhB;;A2BzyHA;EAwBU,yBAAyB;EACzB,8CzBrBwB;EyBsBxB,WhByCM;AX4uHhB;;A2B/yHA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AXkvHhB;;A2BrzHA;EAYQ,yBzBT0B;EyBU1B,yBAAyB;EACzB,yBhBmDa;AX0vHrB;;A2B3zHA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,yBhB6CW;AXgwHrB;;A2Bj0HA;EAwBU,yBAAyB;EACzB,8CzBtBwB;EyBuBxB,yBhBuCW;AXswHrB;;A2Bv0HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,yBhBiCW;AX4wHrB;;A2B70HA;EAYQ,yBzBHyB;EyBIzB,yBAAyB;EACzB,WhBqDQ;AXgxHhB;;A2Bn1HA;EAkBU,yBhB4EuB;EgB3EvB,yBAAyB;EACzB,WhB+CM;AXsxHhB;;A2Bz1HA;EAwBU,yBAAyB;EACzB,8CzBhBuB;EyBiBvB,WhByCM;AX4xHhB;;A2B/1HA;EA8BU,yBhBgEuB;EgB/DvB,yBAAyB;EACzB,WhBmCM;AXkyHhB;;A2Br2HA;EAmCI,kBzBZY;AFk1HhB;;A2Bz2HA;EAqCI,kBzBhBY;AFw1HhB;;A2B72HA;EAwCQ,eAAe;A3By0HvB;;A2Bj3HA;EA0CI,iBzBtBW;AFi2Hf;;A2Br3HA;EA6CQ,eAAe;A3B40HvB;;A2Bz3HA;EAiDM,6BAA6B;EAC7B,0BAA0B;A3B40HhC;;A2B93HA;EAoDM,4BAA4B;EAC5B,yBAAyB;A3B80H/B;;A2Bn4HA;EAwDQ,kBzBFI;AFi1HZ;;A2Bv4HA;EA0DQ,aAAa;A3Bi1HrB;;A2B34HA;EA6DM,sBAAsB;A3Bk1H5B;;A2B/4HA;EA+DM,sBAAsB;EACtB,YAAY;EACZ,gBAAgB;A3Bo1HtB;;A2Br5HA;EAmEM,uBAAuB;A3Bs1H7B;;A2Bz5HA;EAqEM,aAAa;EACb,YAAY;A3Bw1HlB;;A2B95HA;EAwEQ,eAAe;A3B01HvB;;A2Bl6HA;EA2EQ,eAAe;A3B21HvB;;A2Bt6HA;EA8EQ,eAAe;A3B41HvB;;A2B16HA;EAiFQ,eAAe;A3B61HvB;;A2B96HA;EAoFQ,0BAA4C;A3B81HpD;;A2Bl7HA;EAsFQ,0BzBhCI;EyBiCJ,uBAAuB;A3Bg2H/B;;A2Bv7HA;EAyFI,uBAAuB;A3Bk2H3B;;A2B37HA;EA4FM,WAAW;A3Bm2HjB;;A2B/7HA;EA8FM,YAAY;EACZ,eAAe;A3Bq2HrB;;A2Bp8HA;EAiGI,yBAAyB;A3Bu2H7B;;A2Bx8HA;EAmGM,0BAA4C;A3By2HlD;;A2B58HA;EAqGM,0BzB/CM;EyBgDN,2BAA2B;EAC3B,SAAS;A3B22Hf;;A2Bz2HA;EACE,oBAAoB;EACpB,aAAa;EACb,eAAe;EACf,2BAA2B;EAC3B,gBAAgB;EAChB,kBAAkB;A3B42HpB;;A2Bl3HA;EASM,yBhBpB2B;EgBqB3B,czB5HwB;AFy+H9B;;A2Bv3HA;EAYM,qBhBvB2B;AXs4HjC;;A2B33HA;EAeM,yBhB1B2B;EgB2B3B,czBlIwB;AFk/H9B;;A2Bh4HA;EAkBM,qBhB7B2B;AX+4HjC;;A2Bh3HA;EACE,YAAY;EACZ,OAAO;EACP,UAAU;EACV,aAAa;EACb,kBAAkB;EAClB,MAAM;EACN,WAAW;A3Bm3Hb;;A2Bj3HA;;EAGE,qBzB9I4B;EyB+I5B,kBzBpFU;EyBqFV,cAAc;EACd,iBAAiB;EACjB,kBAAkB;EAClB,mBAAmB;A3Bm3HrB;;A2Bj3HA;EACE,4BzBnJ4B;EyBoJ5B,czB1J4B;AF8gI9B;;A2Bl3HA;EACE,qBzB1J4B;EyB2J5B,mBA5J4B;EA6J5B,2BA5JoC;EA6JpC,cAAc;EACd,eA7JwB;EA8JxB,gBAAgB;EAChB,mBAAmB;EACnB,uBAAuB;A3Bq3HzB;;A2Bn3HA;EACE,mBAAmB;EACnB,aAAa;EACb,WAAW;EACX,uBAAuB;E1BjCrB,mB0BkCmC;EACrC,UAAU;A3Bs3HZ;;A2B53HA;EAQI,eAAe;A3Bw3HnB;;A4BtiIA;EACE,c1BF4B;E0BG5B,cAAc;EACd,e1B2BW;E0B1BX,gB1BiCe;AFwgIjB;;A4B7iIA;EAMI,oBAAoB;A5B2iIxB;;A4BjjIA;EASI,kB1BsBY;AFshIhB;;A4BrjIA;EAWI,kB1BkBY;AF4hIhB;;A4BzjIA;EAaI,iB1BeW;AFiiIf;;A4B9iIA;EACE,cAAc;EACd,kB1Bcc;E0Bbd,mBAAmB;A5BijIrB;;A4BpjIA;EAOM,Y1BdyB;AF+jI/B;;A4BxjIA;EAOM,c1B3BuB;AFglI7B;;A4B5jIA;EAOM,iB1BhBwB;AFykI9B;;A4BhkIA;EAOM,c1BvBwB;AFolI9B;;A4BpkIA;EAOM,c1BT4B;AF0kIlC;;A4BxkIA;EAOM,c1BP4B;AF4kIlC;;A4B5kIA;EAOM,c1BR4B;AFilIlC;;A4BhlIA;EAOM,c1BV4B;AFulIlC;;A4BplIA;EAOM,c1BX4B;AF4lIlC;;A4BxlIA;EAOM,c1BL2B;AF0lIjC;;A4BjlIA;EAEI,sBAAsB;A5BmlI1B;;A4BrlIA;EAKI,aAAa;EACb,2BAA2B;A5BolI/B;;A4B1lIA;E3B+GI,kB2BtGwC;A5BqlI5C;;A4B9lIA;;;EAcU,gBAAgB;A5BslI1B;;A4BpmIA;;;EAoBY,6BAA6B;EAC7B,0BAA0B;A5BslItC;;A4B3mIA;;;EA8BY,4BAA4B;EAC5B,yBAAyB;A5BmlIrC;;A4BlnIA;;;;;EAyCY,UAAU;A5BilItB;;A4B1nIA;;;;;;;;;EA8CY,UAAU;A5BwlItB;;A4BtoIA;;;;;;;;;EAgDc,UAAU;A5BkmIxB;;A4BlpIA;EAkDQ,YAAY;EACZ,cAAc;A5BomItB;;A4BvpIA;EAqDM,uBAAuB;A5BsmI7B;;A4B3pIA;EAuDM,yBAAyB;A5BwmI/B;;A4B/pIA;EA0DQ,YAAY;EACZ,cAAc;A5BymItB;;A4BpqIA;EA6DI,aAAa;EACb,2BAA2B;A5B2mI/B;;A4BzqIA;EAgEM,cAAc;A5B6mIpB;;A4B7qIA;EAkEQ,gBAAgB;E3B6CpB,qB2B5C2C;A5B+mI/C;;A4BlrIA;EAqEQ,YAAY;EACZ,cAAc;A5BinItB;;A4BvrIA;EAwEM,uBAAuB;A5BmnI7B;;A4B3rIA;EA0EM,yBAAyB;A5BqnI/B;;A4B/rIA;EA4EM,eAAe;A5BunIrB;;A4BnsIA;EAgFU,sBAAsB;A5BunIhC;;A4BvsIA;EAkFQ,uBAAuB;A5BynI/B;;A4B3sIA;EAoFQ,gBAAgB;A5B2nIxB;;AC3pIE;E2BpDF;IAuFM,aAAa;E5B6nIjB;AACF;;A4B5nIA;EAEI,kBAAkB;A5B8nItB;;ACzqIE;E2ByCF;IAII,qBAAqB;E5BioIvB;AACF;;AC3qIE;E2BqCF;IAMI,aAAa;IACb,YAAY;IACZ,cAAc;I3Bcd,oB2BbsC;IACtC,iBAAiB;E5BqoInB;E4B/oIF;IAYM,kB1BhGU;I0BiGV,oBAAoB;E5BsoIxB;E4BnpIF;IAeM,oBAAoB;E5BuoIxB;E4BtpIF;IAiBM,kB1BvGU;I0BwGV,oBAAoB;E5BwoIxB;E4B1pIF;IAoBM,iB1B3GS;I0B4GT,oBAAoB;E5ByoIxB;AACF;;A4BxoIA;EAEI,gBAAgB;A5B0oIpB;;ACxsIE;E2B4DF;IAII,aAAa;IACb,aAAa;IACb,YAAY;IACZ,cAAc;E5B6oIhB;E4BppIF;IASM,gBAAgB;E5B8oIpB;E4BvpIF;IAWM,cAAc;E5B+oIlB;E4B1pIF;IAaQ,YAAY;E5BgpIlB;E4B7pIF;I3BDI,qB2BgB2C;E5BipI7C;AACF;;A4BhpIA;EACE,sBAAsB;EACtB,WAAW;EACX,e1BhIW;E0BiIX,kBAAkB;EAClB,mBAAmB;A5BmpIrB;;A4BxpIA;;;EAaU,c1BxKoB;AFyzI9B;;A4B9pIA;;;EAeQ,kB1B3IQ;AFgyIhB;;A4BpqIA;;;EAiBQ,kB1B/IQ;AFwyIhB;;A4B1qIA;;;EAmBQ,iB1BlJO;AF+yIf;;A4BhrIA;EAqBM,c1B7KwB;E0B8KxB,azBnLgB;EyBoLhB,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,YzBvLgB;EyBwLhB,UAAU;A5B+pIhB;;A4B1rIA;;EA+BM,mBzB5LgB;AH41ItB;;A4B/rIA;EAiCM,OAAO;A5BkqIb;;A4BnsIA;;EAqCM,oBzBlMgB;AHq2ItB;;A4BxsIA;EAuCM,QAAQ;A5BqqId;;A4B5sIA;EA2CM,6BAA6B;E3BrD/B,c2BsD+B;EAC7B,YAAY;EACZ,UAAU;A5BqqIhB;;A4BntIA;EAgDM,kB1B5KU;AFm1IhB;;A4BvtIA;EAkDM,kB1BhLU;AFy1IhB;;A4B3tIA;EAoDM,iB1BnLS;AF81If;;A6Bj4IA,qBAAA;ACSA;EAGE,e5ByBW;E4BxBX,mBAAmB;A9B03IrB;;A8B93IA;EAMI,mBAAmB;EACnB,c5BM8B;E4BL9B,aAAa;EACb,uBAAuB;EACvB,iBAduC;A9B04I3C;;A8Bt4IA;EAYM,c5BfwB;AF64I9B;;A8B14IA;EAcI,mBAAmB;EACnB,aAAa;A9Bg4IjB;;A8B/4IA;E7BuII,e6BtHoC;A9Bk4IxC;;A8Bn5IA;EAoBQ,c5BvBsB;E4BwBtB,eAAe;EACf,oBAAoB;A9Bm4I5B;;A8Bz5IA;EAwBM,c5BxBwB;E4ByBxB,iBAAiB;A9Bq4IvB;;A8B95IA;;EA4BI,uBAAuB;EACvB,aAAa;EACb,eAAe;EACf,2BAA2B;A9Bu4I/B;;A8Bt6IA;E7BuII,mB6BrGuC;A9Bw4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mBAAmB;EACnB,2BAA2B;AjC6oJ7B;;AC3nJE;EgCpBF;IAMM,kBAAkB;EjC8oJtB;AACF;;AC7nJE;EgCxBF;IAQI,aAAa;EjCkpJf;AACF;;AiCjpJA;EACE,mBAAmB;EACnB,yBAAyB;AjCopJ3B;;ACxoJE;EgCdF;IAKI,aAAa;EjCspJf;AACF;;AkC/tJA;EACE,uBAAuB;EACvB,aAAa;EACb,mBAAmB;AlCkuJrB;;AkCruJA;EAKI,sBAAsB;AlCouJ1B;;AkCzuJA;EAOI,8ChCD0B;EgCE1B,aAAa;EACb,oBAAoB;AlCsuJxB;;AkC/uJA;;EAYM,qBAAqB;AlCwuJ3B;;AkCpvJA;EAcM,mBAAmB;AlC0uJzB;;AkCxvJA;EAgBQ,kBAAkB;AlC4uJ1B;;AkC5vJA;EAkBI,8ChCZ0B;EgCa1B,gBAtBgB;EAuBhB,iBAvBgB;AlCqwJpB;;AkClwJA;EAwBM,kBA1BsB;EA2BtB,mBA3BsB;AlCywJ5B;;AkC5uJA;;EAEE,gBAAgB;EAChB,YAAY;EACZ,cAAc;AlC+uJhB;;AkC7uJA;EjC2GI,kBiC/IgB;AlCqxJpB;;AkC9uJA;EjCwGI,iBiC/IgB;AlCyxJpB;;AkC/uJA;EACE,gBAAgB;EAChB,YAAY;EACZ,cAAc;EACd,mBAAmB;AlCkvJrB;;AChtJE;EiCtCF;IAQI,gBAAgB;ElCmvJlB;AACF;;AmCrxJA;EACE,ejCkBW;AFswJb;;AmCzxJA;EAII,kBjCgBY;AFywJhB;;AmC7xJA;EAMI,kBjCYY;AF+wJhB;;AmCjyJA;EAQI,iBjCSW;AFoxJf;;AmC3xJA;EACE,iBArB0B;AnCmzJ5B;;AmC/xJA;EAGI,kBjCqCc;EiCpCd,cjCzB0B;EiC0B1B,cAAc;EACd,qBAzBiC;AnCyzJrC;;AmCtyJA;EAQM,4BjCvBwB;EiCwBxB,cjC/BwB;AFi0J9B;;AmC3yJA;EAYM,yBjClB4B;EiCmB5B,WxByCU;AX0vJhB;;AmChzJA;ElCoHI,8BCtI0B;EiCmCxB,cAnC0B;ElCsI5B,oBkCrIkC;AnCu0JtC;;AmClyJA;EACE,cjCzC4B;EiC0C5B,iBApC2B;EAqC3B,qBApC+B;EAqC/B,yBAAyB;AnCqyJ3B;;AmCzyJA;EAMI,eAtCoB;AnC60JxB;;AmC7yJA;EAQI,kBAxCoB;AnCi1JxB;;AoC50JA;EAEE,4BlCV4B;EkCW5B,kBlC6CU;EkC5CV,elCYW;AFk0Jb;;AoCl1JA;EAMI,mBAAmB;ApCg1JvB;;AoCt1JA;EAQI,mBAAmB;EACnB,0BAA0B;ApCk1J9B;;AoC31JA;EAYI,kBlCKY;AF80JhB;;AoC/1JA;EAcI,kBlCCY;AFo1JhB;;AoCn2JA;EAgBI,iBlCFW;AFy1Jf;;AoCv2JA;EAsCM,uBAH+C;ApCw0JrD;;AoC32JA;EAwCQ,uBlC9CuB;EkC+CvB,clC5DqB;AFm4J7B;;AoCh3JA;EA2CQ,mBlCjDuB;AF03J/B;;AoCp3JA;EAsCM,yBAH+C;ApCq1JrD;;AoCx3JA;EAwCQ,yBlC3DqB;EkC4DrB,YlC/CuB;AFm4J/B;;AoC73JA;EA2CQ,qBlC9DqB;AFo5J7B;;AoCj4JA;EAsCM,yBAH+C;ApCk2JrD;;AoCr4JA;EAwCQ,4BlChDsB;EkCiDtB,yBzBkBa;AX+0JrB;;AoC14JA;EA2CQ,wBlCnDsB;AFs5J9B;;AoC94JA;EAsCM,yBAH+C;ApC+2JrD;;AoCl5JA;EAwCQ,yBlCvDsB;EkCwDtB,WzBoBQ;AX01JhB;;AoCv5JA;EA2CQ,qBlC1DsB;AF06J9B;;AoC35JA;EAsCM,yBzB8B0C;AX21JhD;;AoC/5JA;EAwCQ,yBlCzC0B;EkC0C1B,WzBoBQ;AXu2JhB;;AoCp6JA;EA2CQ,qBlC5C0B;EkC6C1B,czBiC6D;AX41JrE;;AoCz6JA;EAsCM,yBzB8B0C;AXy2JhD;;AoC76JA;EAwCQ,yBlCvC0B;EkCwC1B,WzBoBQ;AXq3JhB;;AoCl7JA;EA2CQ,qBlC1C0B;EkC2C1B,czBiC6D;AX02JrE;;AoCv7JA;EAsCM,yBzB8B0C;AXu3JhD;;AoC37JA;EAwCQ,yBlCxC0B;EkCyC1B,WzBoBQ;AXm4JhB;;AoCh8JA;EA2CQ,qBlC3C0B;EkC4C1B,czBiC6D;AXw3JrE;;AoCr8JA;EAsCM,yBzB8B0C;AXq4JhD;;AoCz8JA;EAwCQ,yBlC1C0B;EkC2C1B,WzBoBQ;AXi5JhB;;AoC98JA;EA2CQ,qBlC7C0B;EkC8C1B,czBiC6D;AXs4JrE;;AoCn9JA;EAsCM,yBzB8B0C;AXm5JhD;;AoCv9JA;EAwCQ,yBlC3C0B;EkC4C1B,yBzBkBa;AXi6JrB;;AoC59JA;EA2CQ,qBlC9C0B;EkC+C1B,czBiC6D;AXo5JrE;;AoCj+JA;EAsCM,yBzB8B0C;AXi6JhD;;AoCr+JA;EAwCQ,yBlCrCyB;EkCsCzB,WzBoBQ;AX66JhB;;AoC1+JA;EA2CQ,qBlCxCyB;EkCyCzB,czBiC6D;AXk6JrE;;AoCj8JA;EACE,mBAAmB;EACnB,yBlC9D4B;EkC+D5B,0BAAgE;EAChE,WzBWc;EyBVd,aAAa;EACb,gBlC7Be;EkC8Bf,8BAA8B;EAC9B,iBAAiB;EACjB,mBAtEiC;EAuEjC,kBAAkB;ApCo8JpB;;AoC98JA;EAYI,YAAY;EACZ,cAAc;EnCgEd,mBmC/DsC;ApCs8J1C;;AoCp9JA;EAgBI,eAjEgC;EAkEhC,yBAAyB;EACzB,0BAA0B;ApCw8J9B;;AoCt8JA;EACE,qBlC9E4B;EkC+E5B,kBlCpBU;EkCqBV,mBAAmB;EACnB,uBAjFmC;EAkFnC,clCrF4B;EkCsF5B,qBAjFiC;ApC0hKnC;;AoC/8JA;;EASI,uBlCjF2B;AF4hK/B;;AoCp9JA;EAWI,6BAlFgD;ApC+hKpD;;AqC/gKA;EAEE,mBAAmB;EACnB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,eAAe;EACf,WAxCU;ArCyjKZ;;AqCzhKA;EAWI,aAAa;ArCkhKjB;;AqChhKA;EAEE,wCnC7C2B;AF+jK7B;;AqChhKA;;EAEE,cA9CgC;EA+ChC,+BAA0D;EAC1D,cAAc;EACd,kBAAkB;EAClB,WAAW;ArCmhKb;;ACjgKE;EoCxBF;;IASI,cAAc;IACd,8BAA0D;IAC1D,YAxDuB;ErC8kKzB;AACF;;AqCrhKA;EAEE,gBAAgB;EAChB,YAxD2B;EAyD3B,eAAe;EpCsFb,WoC9IoB;EA0DtB,SAzDoB;EA0DpB,WA5D2B;ArCmlK7B;;AqCrhKA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAAgD;EAChD,gBAAgB;EAChB,uBAAuB;ArCwhKzB;;AqCthKA;;EAEE,mBAAmB;EACnB,4BnCpE4B;EmCqE5B,aAAa;EACb,cAAc;EACd,2BAA2B;EAC3B,aApE4B;EAqE5B,kBAAkB;ArCyhKpB;;AqCvhKA;EACE,gCnC/E4B;EmCgF5B,2BnCpBgB;EmCqBhB,4BnCrBgB;AF+iKlB;;AqCxhKA;EACE,cnCxF4B;EmCyF5B,YAAY;EACZ,cAAc;EACd,iBnC9Da;EmC+Db,cA7E8B;ArCwmKhC;;AqCzhKA;EACE,8BnC/BgB;EmCgChB,+BnChCgB;EmCiChB,6BnC7F4B;AFynK9B;;AqC/hKA;EpC4CI,mBoCtCuC;ArC6hK3C;;AqC3hKA;EpC9CE,iCAAiC;EoCgDjC,uBnC/F6B;EmCgG7B,YAAY;EACZ,cAAc;EACd,cAAc;EACd,aAtF4B;ArConK9B;;AsCxlKA;EACE,uBpC1C6B;EoC2C7B,mBAvDqB;EAwDrB,kBAAkB;EAClB,WAtDW;AtCipKb;;AsC/lKA;EASM,uBpClDyB;EoCmDzB,cpChEuB;AF0pK7B;;AsCpmKA;;EAcU,cpCpEmB;AF+pK7B;;AsCzmKA;;;;EAoBY,yB3BiCqB;E2BhCrB,cpC3EiB;AFuqK7B;;AsCjnKA;EAwBY,qBpC9EiB;AF2qK7B;;AsCrnKA;EA0BQ,cpChFqB;AF+qK7B;;ACxmKE;EqCjBF;;;;IAgCY,cpCtFiB;EFurK3B;EsCjoKF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,cpC7Fe;EFosK3B;EsC9oKF;;IA0Cc,qBpChGe;EFwsK3B;EsClpKF;;;IA8CU,yB3BOuB;I2BNvB,cpCrGmB;EF8sK3B;EsCxpKF;IAmDc,uBpC5FiB;IoC6FjB,cpC1Ge;EFktK3B;AACF;;AsC7pKA;EASM,yBpC/DuB;EoCgEvB,YpCnDyB;AF2sK/B;;AsClqKA;;EAcU,YpCvDqB;AFgtK/B;;AsCvqKA;;;;EAoBY,uB3BiCqB;E2BhCrB,YpC9DmB;AFwtK/B;;AsC/qKA;EAwBY,mBpCjEmB;AF4tK/B;;AsCnrKA;EA0BQ,YpCnEuB;AFguK/B;;ACtqKE;EqCjBF;;;;IAgCY,YpCzEmB;EFwuK7B;EsC/rKF;;;;;;;;;;IAsCc,uB3BemB;I2BdnB,YpChFiB;EFqvK7B;EsC5sKF;;IA0Cc,mBpCnFiB;EFyvK7B;EsChtKF;;;IA8CU,uB3BOuB;I2BNvB,YpCxFqB;EF+vK7B;EsCttKF;IAmDc,yBpCzGe;IoC0Gf,YpC7FiB;EFmwK7B;AACF;;AsC3tKA;EASM,4BpCpDwB;EoCqDxB,yB3Bce;AXwsKrB;;AsChuKA;;EAcU,yB3BUW;AX6sKrB;;AsCruKA;;;;EAoBY,yB3BiCqB;E2BhCrB,yB3BGS;AXqtKrB;;AsC7uKA;EAwBY,gC3BAS;AXytKrB;;AsCjvKA;EA0BQ,yB3BFa;AX6tKrB;;ACpuKE;EqCjBF;;;;IAgCY,yB3BRS;EXquKnB;EsC7vKF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,yB3BfO;EXkvKnB;EsC1wKF;;IA0Cc,gC3BlBO;EXsvKnB;EsC9wKF;;;IA8CU,yB3BOuB;I2BNvB,yB3BvBW;EX4vKnB;EsCpxKF;IAmDc,4BpC9FgB;IoC+FhB,yB3B5BO;EXgwKnB;AACF;;AsCzxKA;EASM,yBpC3DwB;EoC4DxB,W3BgBU;AXowKhB;;AsC9xKA;;EAcU,W3BYM;AXywKhB;;AsCnyKA;;;;EAoBY,yB3BiCqB;E2BhCrB,W3BKI;AXixKhB;;AsC3yKA;EAwBY,kB3BEI;AXqxKhB;;AsC/yKA;EA0BQ,W3BAQ;AXyxKhB;;AClyKE;EqCjBF;;;;IAgCY,W3BNI;EXiyKd;EsC3zKF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,W3BbE;EX8yKd;EsCx0KF;;IA0Cc,kB3BhBE;EXkzKd;EsC50KF;;;IA8CU,yB3BOuB;I2BNvB,W3BrBM;EXwzKd;EsCl1KF;IAmDc,yBpCrGgB;IoCsGhB,W3B1BE;EX4zKd;AACF;;AsCv1KA;EASM,yBpC7C4B;EoC8C5B,W3BgBU;AXk0KhB;;AsC51KA;;EAcU,W3BYM;AXu0KhB;;AsCj2KA;;;;EAoBY,yB3BiCqB;E2BhCrB,W3BKI;AX+0KhB;;AsCz2KA;EAwBY,kB3BEI;AXm1KhB;;AsC72KA;EA0BQ,W3BAQ;AXu1KhB;;ACh2KE;EqCjBF;;;;IAgCY,W3BNI;EX+1Kd;EsCz3KF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,W3BbE;EX42Kd;EsCt4KF;;IA0Cc,kB3BhBE;EXg3Kd;EsC14KF;;;IA8CU,yB3BOuB;I2BNvB,W3BrBM;EXs3Kd;EsCh5KF;IAmDc,yBpCvFoB;IoCwFpB,W3B1BE;EX03Kd;AACF;;AsCr5KA;EASM,yBpC3C4B;EoC4C5B,W3BgBU;AXg4KhB;;AsC15KA;;EAcU,W3BYM;AXq4KhB;;AsC/5KA;;;;EAoBY,yB3BiCqB;E2BhCrB,W3BKI;AX64KhB;;AsCv6KA;EAwBY,kB3BEI;AXi5KhB;;AsC36KA;EA0BQ,W3BAQ;AXq5KhB;;AC95KE;EqCjBF;;;;IAgCY,W3BNI;EX65Kd;EsCv7KF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,W3BbE;EX06Kd;EsCp8KF;;IA0Cc,kB3BhBE;EX86Kd;EsCx8KF;;;IA8CU,yB3BOuB;I2BNvB,W3BrBM;EXo7Kd;EsC98KF;IAmDc,yBpCrFoB;IoCsFpB,W3B1BE;EXw7Kd;AACF;;AsCn9KA;EASM,yBpC5C4B;EoC6C5B,W3BgBU;AX87KhB;;AsCx9KA;;EAcU,W3BYM;AXm8KhB;;AsC79KA;;;;EAoBY,yB3BiCqB;E2BhCrB,W3BKI;AX28KhB;;AsCr+KA;EAwBY,kB3BEI;AX+8KhB;;AsCz+KA;EA0BQ,W3BAQ;AXm9KhB;;AC59KE;EqCjBF;;;;IAgCY,W3BNI;EX29Kd;EsCr/KF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,W3BbE;EXw+Kd;EsClgLF;;IA0Cc,kB3BhBE;EX4+Kd;EsCtgLF;;;IA8CU,yB3BOuB;I2BNvB,W3BrBM;EXk/Kd;EsC5gLF;IAmDc,yBpCtFoB;IoCuFpB,W3B1BE;EXs/Kd;AACF;;AsCjhLA;EASM,yBpC9C4B;EoC+C5B,W3BgBU;AX4/KhB;;AsCthLA;;EAcU,W3BYM;AXigLhB;;AsC3hLA;;;;EAoBY,yB3BiCqB;E2BhCrB,W3BKI;AXygLhB;;AsCniLA;EAwBY,kB3BEI;AX6gLhB;;AsCviLA;EA0BQ,W3BAQ;AXihLhB;;AC1hLE;EqCjBF;;;;IAgCY,W3BNI;EXyhLd;EsCnjLF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,W3BbE;EXsiLd;EsChkLF;;IA0Cc,kB3BhBE;EX0iLd;EsCpkLF;;;IA8CU,yB3BOuB;I2BNvB,W3BrBM;EXgjLd;EsC1kLF;IAmDc,yBpCxFoB;IoCyFpB,W3B1BE;EXojLd;AACF;;AsC/kLA;EASM,yBpC/C4B;EoCgD5B,yB3Bce;AX4jLrB;;AsCplLA;;EAcU,yB3BUW;AXikLrB;;AsCzlLA;;;;EAoBY,yB3BiCqB;E2BhCrB,yB3BGS;AXykLrB;;AsCjmLA;EAwBY,gC3BAS;AX6kLrB;;AsCrmLA;EA0BQ,yB3BFa;AXilLrB;;ACxlLE;EqCjBF;;;;IAgCY,yB3BRS;EXylLnB;EsCjnLF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,yB3BfO;EXsmLnB;EsC9nLF;;IA0Cc,gC3BlBO;EX0mLnB;EsCloLF;;;IA8CU,yB3BOuB;I2BNvB,yB3BvBW;EXgnLnB;EsCxoLF;IAmDc,yBpCzFoB;IoC0FpB,yB3B5BO;EXonLnB;AACF;;AsC7oLA;EASM,yBpCzC2B;EoC0C3B,W3BgBU;AXwnLhB;;AsClpLA;;EAcU,W3BYM;AX6nLhB;;AsCvpLA;;;;EAoBY,yB3BiCqB;E2BhCrB,W3BKI;AXqoLhB;;AsC/pLA;EAwBY,kB3BEI;AXyoLhB;;AsCnqLA;EA0BQ,W3BAQ;AX6oLhB;;ACtpLE;EqCjBF;;;;IAgCY,W3BNI;EXqpLd;EsC/qLF;;;;;;;;;;IAsCc,yB3BemB;I2BdnB,W3BbE;EXkqLd;EsC5rLF;;IA0Cc,kB3BhBE;EXsqLd;EsChsLF;;;IA8CU,yB3BOuB;I2BNvB,W3BrBM;EX4qLd;EsCtsLF;IAmDc,yBpCnFmB;IoCoFnB,W3B1BE;EXgrLd;AACF;;AsC3sLA;EAsDI,oBAAoB;EACpB,aAAa;EACb,mBA7GmB;EA8GnB,WAAW;AtCypLf;;AsCltLA;EA2DI,gCpCtG0B;AFiwL9B;;AsCttLA;EALE,OAAO;EACP,eAAe;EACf,QAAQ;EACR,WA/CiB;AtC8wLnB;;AsC7tLA;EAgEI,SAAS;AtCiqLb;;AsCjuLA;EAkEM,iCpC7GwB;AFgxL9B;;AsCruLA;EAoEI,MAAM;AtCqqLV;;AsCnqLA;;EAGI,oBA9HmB;AtCmyLvB;;AsCxqLA;;EAKI,uBAhImB;AtCwyLvB;;AsCtqLA;;EAEE,oBAAoB;EACpB,aAAa;EACb,cAAc;EACd,mBAvIqB;AtCgzLvB;;AsCvqLA;EAIM,6BAA6B;AtCuqLnC;;AsCrqLA;ErCpFE,iCAAiC;EqCsFjC,gBAAgB;EAChB,gBAAgB;EAChB,kBAAkB;AtCwqLpB;;AsCtqLA;EACE,cpClJ4B;EDoB5B,eAAe;EACf,cAAc;EACd,eqC1BqB;ErC2BrB,kBAAkB;EAClB,cqC5BqB;ErC6InB,iBqCWkC;AtC6qLtC;;ACxyLE;EACE,8BAA8B;EAC9B,cAAc;EACd,WAAW;EACX,qBAAqB;EACrB,kBAAkB;EAClB,wBAAwB;EACxB,yBCiCQ;EDhCR,yDAAyD;EACzD,oCC0Ba;EDzBb,WAAW;AD2yLf;;AC1yLI;EACE,oBAAoB;AD6yL1B;;AC5yLI;EACE,oBAAoB;AD+yL1B;;AC9yLI;EACE,oBAAoB;ADizL1B;;AChzLE;EACE,qCAAiC;ADmzLrC;;AC/yLM;EACE,wCAAwC;ADkzLhD;;ACjzLM;EACE,UAAU;ADozLlB;;ACnzLM;EACE,0CAA0C;ADszLlD;;AsCptLA;EACE,aAAa;AtCutLf;;AsCrtLA;;EAEE,cpC3J4B;EoC4J5B,cAAc;EACd,gBAAgB;EAChB,uBAAuB;EACvB,kBAAkB;AtCwtLpB;;AsC9tLA;;EASM,qBAAqB;EACrB,sBAAsB;AtC0tL5B;;AsCxtLA;;EAEE,eAAe;AtC2tLjB;;AsC7tLA;;;;;EAOI,yBpCrK0B;EoCsK1B,cpC9J8B;AF43LlC;;AsC5tLA;EACE,YAAY;EACZ,cAAc;AtC+tLhB;;AsCjuLA;EAII,mBA5KgC;AtC64LpC;;AsCruLA;EAMI,UAAU;AtCmuLd;;AsCzuLA;EAQI,YAAY;EACZ,cAAc;AtCquLlB;;AsC9uLA;EAWI,oCAAoC;EACpC,mBA/LmB;EAgMnB,kCAAkC;AtCuuLtC;;AsCpvLA;EAgBM,6BApLyC;EAqLzC,4BpCjL4B;AFy5LlC;;AsCzvLA;EAmBM,6BApL0C;EAqL1C,4BpCpL4B;EoCqL5B,0BApLuC;EAqLvC,wBApLqC;EAqLrC,cpCvL4B;EoCwL5B,kCAAwE;AtC0uL9E;;AsCxuLA;EACE,YAAY;EACZ,cAAc;AtC2uLhB;;AsCzuLA;ErCpEI,oBqCqEoC;AtC4uLxC;;AsC7uLA;EAII,qBpClM8B;EoCmM9B,oBAAoB;ErCjEpB,cqCkE6B;AtC6uLjC;;AsC3uLA;EACE,mBAAmB;EACnB,sBAAsB;EACtB,mBAAmB;AtC8uLrB;;AsCjvLA;EAKI,oBAAoB;EACpB,qBAAqB;AtCgvLzB;;AsC9uLA;EACE,4BpCxN4B;EoCyN5B,YAAY;EACZ,aAAa;EACb,WA9LyB;EA+LzB,gBAAgB;AtCivLlB;;AC74LE;EqCrBF;IAqLI,cAAc;EtCkvLhB;EsCjvLA;;IAGI,mBAAmB;IACnB,aAAa;EtCkvLjB;EsCjvLA;IAEI,aAAa;EtCkvLjB;EsC10LF;IA0FI,uBpCxO2B;IoCyO3B,4CpCtPyB;IoCuPzB,iBAAiB;EtCmvLnB;EsCtvLA;IAKI,cAAc;EtCovLlB;EsClvLA;IA1MA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;EtC8+LjB;EsCxvLA;IAKI,SAAS;EtCsvLb;EsC3vLA;IAOM,4CpClQqB;EFy/L3B;EsC9vLA;IASI,MAAM;EtCwvLV;EsCjwLA;IrC/LA,iCAAiC;IqC6M3B,iCAA2C;IAC3C,cAAc;EtCuvLpB;EsCtvLA;;IAGI,oBA7QiB;EtCogMrB;EsC1vLA;;IAKI,uBA/QiB;EtCwgMrB;AACF;;ACn8LE;EqC4MA;;;;IAIE,oBAAoB;IACpB,aAAa;EtC2vLf;EsC79LF;IAoOI,mBAzRmB;EtCqhMrB;EsC7vLA;IAGI,kBAzR0B;EtCshM9B;EsChwLA;;IAMM,mBAAmB;EtC8vLzB;EsCpwLA;;IASM,kBpC/NI;EF89LV;EsCxwLA;;;;IAgBQ,wCAAwC;EtC8vLhD;EsC9wLA;IAuBU,wCAAwC;EtC0vLlD;EsCjxLA;IA4BU,4BpC1SkB;IoC2SlB,cpCtTiB;EF8iM3B;EsCrxLA;IA+BU,4BpC7SkB;IoC8SlB,cpCrSsB;EF8hMhC;EsC55LF;IAqKI,aAAa;EtC0vLf;EsCv5LF;;IAgKI,mBAAmB;IACnB,aAAa;EtC2vLf;EsCt4LF;IA8IM,oBAAoB;EtC2vLxB;EsC7vLA;IAKM,oDAAoD;EtC2vL1D;EsChwLA;IAOM,gCpC/TsB;IoCgUtB,0BAAkE;IAClE,gBAAgB;IAChB,YAAY;IACZ,4CpC3UqB;IoC4UrB,SAAS;EtC4vLf;EsCxwLA;IAkBM,cAAc;EtCyvLpB;EsCxvLM;IAEE,UAAU;IACV,oBAAoB;IACpB,wBAAwB;EtCyvLhC;EsCr7LF;IA8LI,YAAY;IACZ,cAAc;EtC0vLhB;EsCzvLA;IACE,2BAA2B;IrC9M3B,kBqC+MoC;EtC2vLtC;EsC1vLA;IACE,yBAAyB;IrCjNzB,iBqCkNoC;EtC4vLtC;EsCl4LF;IAwII,uBpCrV2B;IoCsV3B,8BpC/Rc;IoCgSd,+BpChSc;IoCiSd,6BpC7V0B;IoC8V1B,2CpCtWyB;IoCuWzB,aAAa;IACb,mBAAmB;IrClNnB,OqCmNuB;IACvB,eAAe;IACf,kBAAkB;IAClB,SAAS;IACT,WAhVkB;EtC6kMpB;EsCh5LF;IAqJM,sBAAsB;IACtB,mBAAmB;EtC8vLvB;EsC7wLA;IrCnNE,mBqCoOuC;EtC+vLzC;EsChxLA;IAoBM,4BpC1WsB;IoC2WtB,cpCtXqB;EFqnM3B;EsCpxLA;IAuBM,4BpC7WsB;IoC8WtB,cpCrW0B;EFqmMhC;EsC/vLE;IAEE,kBpCxTY;IoCyTZ,gBAAgB;IAChB,4EpC9XuB;IoC+XvB,cAAc;IACd,UAAU;IACV,oBAAoB;IACpB,wBAA8C;IAC9C,2BAA2B;IAC3B,yBpC9TM;IoC+TN,uCAAuC;EtCgwL3C;EsCpyLA;IAsCI,UAAU;IACV,QAAQ;EtCiwLZ;EsCv6LF;IAwKI,cAAc;EtCkwLhB;EsCjwLA;;IrC7PE,qBqCgQyC;EtCkwL3C;EsCrwLA;;IrC7PE,sBqCkQyC;EtCowL3C;EsClwLA;IAjWA,OAAO;IACP,eAAe;IACf,QAAQ;IACR,WA/CiB;EtCqpMjB;EsCxwLA;IAKI,SAAS;EtCswLb;EsC3wLA;IAOM,4CpCzZqB;EFgqM3B;EsC9wLA;IASI,MAAM;EtCwwLV;EsCvwLA;;IAGI,oBA9ZiB;EtCsqMrB;EsC3wLA;;IAKI,uBAhaiB;EtC0qMrB;EsC/wLA;;IAOI,oBAA4D;EtC4wLhE;EsCnxLA;;IASI,uBAA+D;EtC8wLnE;EsC5wLA;;IAGI,cpC1auB;EFurM3B;EsChxLA;;IAKI,6BAja2C;EtCgrM/C;EsC9wLA;IAKM,yBpCtasB;EFkrM5B;AACF;;AsCzwLA;EAEI,iCAA2C;AtC2wL/C;;AuCtqMA;EAEE,erCIW;EqCHX,gBAhC0B;AvCwsM5B;;AuC3qMA;EAMI,kBrCCY;AFwqMhB;;AuC/qMA;EAQI,kBrCHY;AF8qMhB;;AuCnrMA;EAUI,iBrCNW;AFmrMf;;AuCvrMA;;EAcM,iBAAiB;EACjB,kBAAkB;EAClB,uBrCwBmB;AFspMzB;;AuC9rMA;EAkBM,uBrCsBmB;AF0pMzB;;AuC9qMA;;EAEE,mBAAmB;EACnB,aAAa;EACb,uBAAuB;EACvB,kBAAkB;AvCirMpB;;AuC/qMA;;;;EAME,cA3D6B;EA4D7B,uBAAuB;EACvB,eA5D8B;EA6D9B,mBA5DkC;EA6DlC,oBA5DmC;EA6DnC,kBAAkB;AvCgrMpB;;AuC9qMA;;;EAGE,qBrChE4B;EqCiE5B,crCrE4B;EqCsE5B,gBpCvEoB;AHwvMtB;;AuCtrMA;;;EAOI,qBrCrE0B;EqCsE1B,crCzE0B;AF8vM9B;;AuC7rMA;;;EAUI,qBrC3D8B;AFovMlC;;AuCnsMA;;;EAYI,iDrCjFyB;AF8wM7B;;AuCzsMA;;;EAcI,yBrC3E0B;EqC4E1B,qBrC5E0B;EqC6E1B,gBAAgB;EAChB,crChF0B;EqCiF1B,YAAY;AvCisMhB;;AuC/rMA;;EAEE,oBAAoB;EACpB,qBAAqB;EACrB,mBAAmB;AvCksMrB;;AuChsMA;EAEI,yBrC7E8B;EqC8E9B,qBrC9E8B;EqC+E9B,W5BnBY;AXqtMhB;;AuChsMA;EACE,crC/F4B;EqCgG5B,oBAAoB;AvCmsMtB;;AuCjsMA;EACE,eAAe;AvCosMjB;;AC/tME;EsClDF;IAiFI,eAAe;EvCqsMjB;EuC1tMF;;IAwBI,YAAY;IACZ,cAAc;EvCssMhB;EuCrsMA;IAEI,YAAY;IACZ,cAAc;EvCssMlB;AACF;;AC1uME;EsCsBF;IAiBI,YAAY;IACZ,cAAc;IACd,2BAA2B;IAC3B,QAAQ;EvCwsMV;EuCvsMA;IACE,QAAQ;EvCysMV;EuCxsMA;IACE,QAAQ;EvC0sMV;EuC9yMF;IAsGI,8BAA8B;EvC2sMhC;EuC5sMA;IAIM,QAAQ;EvC2sMd;EuC/sMA;IAMM,uBAAuB;IACvB,QAAQ;EvC4sMd;EuCntMA;IASM,QAAQ;EvC6sMd;EuCttMA;IAYM,QAAQ;EvC6sMd;EuCztMA;IAcM,QAAQ;EvC8sMd;EuC5tMA;IAgBM,yBAAyB;IACzB,QAAQ;EvC+sMd;AACF;;AwCv0MA;EACE,kBtCuCgB;EsCtChB,0FtC9B2B;EsC+B3B,etCIW;AFs0Mb;;AwC70MA;EAKI,qBtCakB;AF+zMtB;;AwCj1MA;EAYQ,uBtC3BuB;EsC4BvB,ctCzCqB;AFk3M7B;;AwCt1MA;EAeQ,0BtC9BuB;AFy2M/B;;AwC11MA;EAiBQ,YtChCuB;AF62M/B;;AwC91MA;EAYQ,yBtCxCqB;EsCyCrB,YtC5BuB;AFk3M/B;;AwCn2MA;EAeQ,4BtC3CqB;AFm4M7B;;AwCv2MA;EAiBQ,ctC7CqB;AFu4M7B;;AwC32MA;EAYQ,4BtC7BsB;EsC8BtB,yB7BqCa;AX8zMrB;;AwCh3MA;EAeQ,+BtChCsB;AFq4M9B;;AwCp3MA;EAiBQ,iBtClCsB;AFy4M9B;;AwCx3MA;EAYQ,yBtCpCsB;EsCqCtB,W7BuCQ;AXy0MhB;;AwC73MA;EAeQ,4BtCvCsB;AFy5M9B;;AwCj4MA;EAiBQ,ctCzCsB;AF65M9B;;AwCr4MA;EAYQ,yBtCtB0B;EsCuB1B,W7BuCQ;AXs1MhB;;AwC14MA;EAeQ,4BtCzB0B;AFw5MlC;;AwC94MA;EAiBQ,ctC3B0B;AF45MlC;;AwCl5MA;EAYQ,yBtCpB0B;EsCqB1B,W7BuCQ;AXm2MhB;;AwCv5MA;EAeQ,4BtCvB0B;AFm6MlC;;AwC35MA;EAiBQ,ctCzB0B;AFu6MlC;;AwC/5MA;EAYQ,yBtCrB0B;EsCsB1B,W7BuCQ;AXg3MhB;;AwCp6MA;EAeQ,4BtCxB0B;AFi7MlC;;AwCx6MA;EAiBQ,ctC1B0B;AFq7MlC;;AwC56MA;EAYQ,yBtCvB0B;EsCwB1B,W7BuCQ;AX63MhB;;AwCj7MA;EAeQ,4BtC1B0B;AFg8MlC;;AwCr7MA;EAiBQ,ctC5B0B;AFo8MlC;;AwCz7MA;EAYQ,yBtCxB0B;EsCyB1B,yB7BqCa;AX44MrB;;AwC97MA;EAeQ,4BtC3B0B;AF88MlC;;AwCl8MA;EAiBQ,ctC7B0B;AFk9MlC;;AwCt8MA;EAYQ,yBtClByB;EsCmBzB,W7BuCQ;AXu5MhB;;AwC38MA;EAeQ,4BtCrByB;AFq9MjC;;AwC/8MA;EAiBQ,ctCvByB;AFy9MjC;;AwCh8MA;;EAGI,gCtCzC2B;AF2+M/B;;AwCh8MA;EACE,yBtC5C6B;EsC6C7B,0BAA8C;EAC9C,ctCnD4B;EsCoD5B,iBAhDyB;EAiDzB,gBtCfe;EsCgBf,iBArD8B;EAsD9B,mBArDgC;AxCw/MlC;;AwCj8MA;EACE,qBAAqB;EACrB,aAAa;EACb,kBArD4B;EAsD5B,uBAAuB;AxCo8MzB;;AwCx8MA;EAMI,gCtC3D0B;EsC4D1B,mBAAmB;EACnB,cAAc;AxCs8MlB;;AwC98MA;EAWM,4BtCnEwB;EsCoExB,ctCrEwB;AF4gN9B;;AwCr8MA;EAEI,ctCxE0B;AF+gN9B;;AwCz8MA;EAIM,ctC3D4B;AFogNlC;;AwCv8MA;EACE,mBAAmB;EACnB,ctC/E4B;EsCgF5B,aAAa;EACb,2BAA2B;EAC3B,qBAAqB;AxC08MvB;;AwC/8MA;EvC6DI,oBuCtDsC;AxC48M1C;;AwCn9MA;EASI,YAAY;EACZ,cAAc;EACd,WAAW;AxC88Mf;;AwCz9MA;EAaI,eAAe;AxCg9MnB;;AwC79MA;EAeI,0BtC5E8B;EsC6E9B,ctC7F0B;AF+iN9B;;AwCl+MA;EAkBM,ctC/E4B;AFmiNlC;;AwCt+MA;EAoBI,8BtCjCc;EsCkCd,+BtClCc;AFw/MlB;;AwCp9MA;;EAEE,eAAe;AxCu9MjB;;AwCz9MA;;EAII,4BtCjG0B;AF2jN9B;;AwCx9MA;EvC9FE,qBAAqB;EACrB,euC8FgB;EvC7FhB,WuC6FqB;EvC5FrB,gBuC4FqB;EvC3FrB,kBAAkB;EAClB,mBAAmB;EACnB,UuCyFqB;EACrB,ctC1G4B;EDwI1B,oBuC7BoC;AxCi+MxC;;AwCp+MA;EAKI,kBAAkB;EAClB,oBAAoB;AxCm+MxB;;AyC7jNA;ExCkCE,iCAAiC;EwC9BjC,oBAAoB;EACpB,aAAa;EACb,evCGW;EuCFX,8BAA8B;EAC9B,gBAAgB;EAChB,gBAAgB;EAChB,mBAAmB;AzC8jNrB;;AyCxkNA;EAYI,mBAAmB;EACnB,4BvC/B0B;EuCgC1B,0BAzC4B;EA0C5B,wBAzC0B;EA0C1B,cvCrC0B;EuCsC1B,aAAa;EACb,uBAAuB;EACvB,mBAA6C;EAC7C,kBAxCyB;EAyCzB,mBAAmB;AzCgkNvB;;AyCrlNA;EAuBM,4BvC7CwB;EuC8CxB,cvC9CwB;AFgnN9B;;AyC1lNA;EA0BI,cAAc;AzCokNlB;;AyC9lNA;EA6BQ,4BvCnC0B;EuCoC1B,cvCpC0B;AFymNlC;;AyCnmNA;EAgCI,mBAAmB;EACnB,4BvCnD0B;EuCoD1B,0BA7D4B;EA8D5B,wBA7D0B;EA8D1B,aAAa;EACb,YAAY;EACZ,cAAc;EACd,2BAA2B;AzCukN/B;;AyC9mNA;EAyCM,qBAAqB;AzCykN3B;;AyClnNA;EA2CM,UAAU;EACV,uBAAuB;EACvB,oBAAoB;EACpB,qBAAqB;AzC2kN3B;;AyCznNA;EAgDM,yBAAyB;EACzB,oBAAoB;AzC6kN1B;;AyC9nNA;ExCoHI,mBwChEuC;AzC8kN3C;;AyCloNA;ExCoHI,kBwC9DuC;AzCglN3C;;AyCtoNA;EA0DM,uBAAuB;AzCglN7B;;AyC1oNA;EA6DM,yBAAyB;AzCilN/B;;AyC9oNA;EAiEM,6BAA6B;EAE3B,0BAAkE;AzCglN1E;;AyCnpNA;EAuEQ,4BvCtFsB;EuCuFtB,4BvC1FsB;AF0qN9B;;AyCxpNA;EA4EU,uBvCzFqB;EuC0FrB,qBvC/FoB;EuCgGpB,2CAA2E;AzCglNrF;;AyC9pNA;EAiFM,YAAY;EACZ,cAAc;AzCilNpB;;AyCnqNA;EAqFM,qBvCvGwB;EuCwGxB,mBA/F+B;EAgG/B,iBA/F6B;EAgG7B,gBAAgB;EAChB,kBAAkB;AzCklNxB;;AyC3qNA;EA2FQ,4BvC1GsB;EuC2GtB,qBvC/GsB;EuCgHtB,UAAU;AzColNlB;;AyCjrNA;ExCoHI,iBwCpBuE;AzCqlN3E;;AyCrrNA;EAmGU,2BvC1DE;EuC2DF,8BvC3DE;AFipNZ;;AyC1rNA;EA0GU,4BvCjEE;EuCkEF,+BvClEE;AFspNZ;;AyC/rNA;EAiHU,yBvCvHwB;EuCwHxB,qBvCxHwB;EuCyHxB,W9B7DM;E8B8DN,UAAU;AzCklNpB;;AyCtsNA;EAsHM,mBAAmB;AzColNzB;;AyC1sNA;EA2HY,mCvChFa;EuCiFb,gCvCjFa;EuCkFb,oBAAoB;AzCmlNhC;;AyChtNA;EAoIY,oCvCzFa;EuC0Fb,iCvC1Fa;EuC2Fb,qBAAqB;AzCglNjC;;AyCttNA;EA6II,kBvCnIY;AFgtNhB;;AyC1tNA;EA+II,kBvCvIY;AFstNhB;;AyC9tNA;EAiJI,iBvC1IW;AF2tNf;;A0C9vNA,eAAA;ACEA;EACE,cAAc;EACd,aAAa;EACb,YAAY;EACZ,cAAc;EACd,gBAPkB;A3CuwNpB;;A2C/vNE;EACE,UAAU;A3CkwNd;;A2CjwNE;EACE,UAAU;EACV,WAAW;A3CowNf;;A2CnwNE;EACE,UAAU;EACV,UAAU;A3CswNd;;A2CrwNE;EACE,UAAU;EACV,eAAe;A3CwwNnB;;A2CvwNE;EACE,UAAU;EACV,UAAU;A3C0wNd;;A2CzwNE;EACE,UAAU;EACV,eAAe;A3C4wNnB;;A2C3wNE;EACE,UAAU;EACV,UAAU;A3C8wNd;;A2C7wNE;EACE,UAAU;EACV,UAAU;A3CgxNd;;A2C/wNE;EACE,UAAU;EACV,UAAU;A3CkxNd;;A2CjxNE;EACE,UAAU;EACV,UAAU;A3CoxNd;;A2CnxNE;EACE,UAAU;EACV,UAAU;A3CsxNd;;A2CrxNE;E1CwGE,gB0CvGmC;A3CwxNvC;;A2CvxNE;E1CsGE,qB0CrGwC;A3C0xN5C;;A2CzxNE;E1CoGE,gB0CnGmC;A3C4xNvC;;A2C3xNE;E1CkGE,qB0CjGwC;A3C8xN5C;;A2C7xNE;E1CgGE,gB0C/FmC;A3CgyNvC;;A2C/xNE;E1C8FE,gB0C7FmC;A3CkyNvC;;A2CjyNE;E1C4FE,gB0C3FmC;A3CoyNvC;;A2CnyNE;E1C0FE,gB0CzFmC;A3CsyNvC;;A2CryNE;E1CwFE,gB0CvFmC;A3CwyNvC;;A2CtyNI;EACE,UAAU;EACV,SAA0B;A3CyyNhC;;A2CxyNI;E1CkFA,e0CjFqD;A3C2yNzD;;A2C/yNI;EACE,UAAU;EACV,eAA0B;A3CkzNhC;;A2CjzNI;E1CkFA,qB0CjFqD;A3CozNzD;;A2CxzNI;EACE,UAAU;EACV,gBAA0B;A3C2zNhC;;A2C1zNI;E1CkFA,sB0CjFqD;A3C6zNzD;;A2Cj0NI;EACE,UAAU;EACV,UAA0B;A3Co0NhC;;A2Cn0NI;E1CkFA,gB0CjFqD;A3Cs0NzD;;A2C10NI;EACE,UAAU;EACV,gBAA0B;A3C60NhC;;A2C50NI;E1CkFA,sB0CjFqD;A3C+0NzD;;A2Cn1NI;EACE,UAAU;EACV,gBAA0B;A3Cs1NhC;;A2Cr1NI;E1CkFA,sB0CjFqD;A3Cw1NzD;;A2C51NI;EACE,UAAU;EACV,UAA0B;A3C+1NhC;;A2C91NI;E1CkFA,gB0CjFqD;A3Ci2NzD;;A2Cr2NI;EACE,UAAU;EACV,gBAA0B;A3Cw2NhC;;A2Cv2NI;E1CkFA,sB0CjFqD;A3C02NzD;;A2C92NI;EACE,UAAU;EACV,gBAA0B;A3Ci3NhC;;A2Ch3NI;E1CkFA,sB0CjFqD;A3Cm3NzD;;A2Cv3NI;EACE,UAAU;EACV,UAA0B;A3C03NhC;;A2Cz3NI;E1CkFA,gB0CjFqD;A3C43NzD;;A2Ch4NI;EACE,UAAU;EACV,gBAA0B;A3Cm4NhC;;A2Cl4NI;E1CkFA,sB0CjFqD;A3Cq4NzD;;A2Cz4NI;EACE,UAAU;EACV,gBAA0B;A3C44NhC;;A2C34NI;E1CkFA,sB0CjFqD;A3C84NzD;;A2Cl5NI;EACE,UAAU;EACV,WAA0B;A3Cq5NhC;;A2Cp5NI;E1CkFA,iB0CjFqD;A3Cu5NzD;;ACr4NE;E0C/EF;IAgEM,UAAU;E3Cy5Nd;E2Cz9NF;IAkEM,UAAU;IACV,WAAW;E3C05Nf;E2C79NF;IAqEM,UAAU;IACV,UAAU;E3C25Nd;E2Cj+NF;IAwEM,UAAU;IACV,eAAe;E3C45NnB;E2Cr+NF;IA2EM,UAAU;IACV,UAAU;E3C65Nd;E2Cz+NF;IA8EM,UAAU;IACV,eAAe;E3C85NnB;E2C7+NF;IAiFM,UAAU;IACV,UAAU;E3C+5Nd;E2Cj/NF;IAoFM,UAAU;IACV,UAAU;E3Cg6Nd;E2Cr/NF;IAuFM,UAAU;IACV,UAAU;E3Ci6Nd;E2Cz/NF;IA0FM,UAAU;IACV,UAAU;E3Ck6Nd;E2C7/NF;IA6FM,UAAU;IACV,UAAU;E3Cm6Nd;E2CjgOF;I1C8II,gB0C9CqC;E3Co6NvC;E2CpgOF;I1C8II,qB0C5C0C;E3Cq6N5C;E2CvgOF;I1C8II,gB0C1CqC;E3Cs6NvC;E2C1gOF;I1C8II,qB0CxC0C;E3Cu6N5C;E2C7gOF;I1C8II,gB0CtCqC;E3Cw6NvC;E2ChhOF;I1C8II,gB0CpCqC;E3Cy6NvC;E2CnhOF;I1C8II,gB0ClCqC;E3C06NvC;E2CthOF;I1C8II,gB0ChCqC;E3C26NvC;E2CzhOF;I1C8II,gB0C9BqC;E3C46NvC;E2C5hOF;IAmHQ,UAAU;IACV,SAA0B;E3C46NhC;E2ChiOF;I1C8II,e0CxBuD;E3C66NzD;E2CniOF;IAmHQ,UAAU;IACV,eAA0B;E3Cm7NhC;E2CviOF;I1C8II,qB0CxBuD;E3Co7NzD;E2C1iOF;IAmHQ,UAAU;IACV,gBAA0B;E3C07NhC;E2C9iOF;I1C8II,sB0CxBuD;E3C27NzD;E2CjjOF;IAmHQ,UAAU;IACV,UAA0B;E3Ci8NhC;E2CrjOF;I1C8II,gB0CxBuD;E3Ck8NzD;E2CxjOF;IAmHQ,UAAU;IACV,gBAA0B;E3Cw8NhC;E2C5jOF;I1C8II,sB0CxBuD;E3Cy8NzD;E2C/jOF;IAmHQ,UAAU;IACV,gBAA0B;E3C+8NhC;E2CnkOF;I1C8II,sB0CxBuD;E3Cg9NzD;E2CtkOF;IAmHQ,UAAU;IACV,UAA0B;E3Cs9NhC;E2C1kOF;I1C8II,gB0CxBuD;E3Cu9NzD;E2C7kOF;IAmHQ,UAAU;IACV,gBAA0B;E3C69NhC;E2CjlOF;I1C8II,sB0CxBuD;E3C89NzD;E2CplOF;IAmHQ,UAAU;IACV,gBAA0B;E3Co+NhC;E2CxlOF;I1C8II,sB0CxBuD;E3Cq+NzD;E2C3lOF;IAmHQ,UAAU;IACV,UAA0B;E3C2+NhC;E2C/lOF;I1C8II,gB0CxBuD;E3C4+NzD;E2ClmOF;IAmHQ,UAAU;IACV,gBAA0B;E3Ck/NhC;E2CtmOF;I1C8II,sB0CxBuD;E3Cm/NzD;E2CzmOF;IAmHQ,UAAU;IACV,gBAA0B;E3Cy/NhC;E2C7mOF;I1C8II,sB0CxBuD;E3C0/NzD;E2ChnOF;IAmHQ,UAAU;IACV,WAA0B;E3CggOhC;E2CpnOF;I1C8II,iB0CxBuD;E3CigOzD;AACF;;ACriOE;E0CnFF;IA0HM,UAAU;E3CmgOd;E2C7nOF;IA6HM,UAAU;IACV,WAAW;E3CmgOf;E2CjoOF;IAiIM,UAAU;IACV,UAAU;E3CmgOd;E2CroOF;IAqIM,UAAU;IACV,eAAe;E3CmgOnB;E2CzoOF;IAyIM,UAAU;IACV,UAAU;E3CmgOd;E2C7oOF;IA6IM,UAAU;IACV,eAAe;E3CmgOnB;E2CjpOF;IAiJM,UAAU;IACV,UAAU;E3CmgOd;E2CrpOF;IAqJM,UAAU;IACV,UAAU;E3CmgOd;E2CzpOF;IAyJM,UAAU;IACV,UAAU;E3CmgOd;E2C7pOF;IA6JM,UAAU;IACV,UAAU;E3CmgOd;E2CjqOF;IAiKM,UAAU;IACV,UAAU;E3CmgOd;E2CrqOF;I1C8II,gB0CuBqC;E3CmgOvC;E2CxqOF;I1C8II,qB0C0B0C;E3CmgO5C;E2C3qOF;I1C8II,gB0C6BqC;E3CmgOvC;E2C9qOF;I1C8II,qB0CgC0C;E3CmgO5C;E2CjrOF;I1C8II,gB0CmCqC;E3CmgOvC;E2CprOF;I1C8II,gB0CsCqC;E3CmgOvC;E2CvrOF;I1C8II,gB0CyCqC;E3CmgOvC;E2C1rOF;I1C8II,gB0C4CqC;E3CmgOvC;E2C7rOF;I1C8II,gB0C+CqC;E3CmgOvC;E2ChsOF;IAiMQ,UAAU;IACV,SAA0B;E3CkgOhC;E2CpsOF;I1C8II,e0CuDuD;E3CkgOzD;E2CvsOF;IAiMQ,UAAU;IACV,eAA0B;E3CygOhC;E2C3sOF;I1C8II,qB0CuDuD;E3CygOzD;E2C9sOF;IAiMQ,UAAU;IACV,gBAA0B;E3CghOhC;E2CltOF;I1C8II,sB0CuDuD;E3CghOzD;E2CrtOF;IAiMQ,UAAU;IACV,UAA0B;E3CuhOhC;E2CztOF;I1C8II,gB0CuDuD;E3CuhOzD;E2C5tOF;IAiMQ,UAAU;IACV,gBAA0B;E3C8hOhC;E2ChuOF;I1C8II,sB0CuDuD;E3C8hOzD;E2CnuOF;IAiMQ,UAAU;IACV,gBAA0B;E3CqiOhC;E2CvuOF;I1C8II,sB0CuDuD;E3CqiOzD;E2C1uOF;IAiMQ,UAAU;IACV,UAA0B;E3C4iOhC;E2C9uOF;I1C8II,gB0CuDuD;E3C4iOzD;E2CjvOF;IAiMQ,UAAU;IACV,gBAA0B;E3CmjOhC;E2CrvOF;I1C8II,sB0CuDuD;E3CmjOzD;E2CxvOF;IAiMQ,UAAU;IACV,gBAA0B;E3C0jOhC;E2C5vOF;I1C8II,sB0CuDuD;E3C0jOzD;E2C/vOF;IAiMQ,UAAU;IACV,UAA0B;E3CikOhC;E2CnwOF;I1C8II,gB0CuDuD;E3CikOzD;E2CtwOF;IAiMQ,UAAU;IACV,gBAA0B;E3CwkOhC;E2C1wOF;I1C8II,sB0CuDuD;E3CwkOzD;E2C7wOF;IAiMQ,UAAU;IACV,gBAA0B;E3C+kOhC;E2CjxOF;I1C8II,sB0CuDuD;E3C+kOzD;E2CpxOF;IAiMQ,UAAU;IACV,WAA0B;E3CslOhC;E2CxxOF;I1C8II,iB0CuDuD;E3CslOzD;AACF;;ACjsOE;E0C3FF;IAwMM,UAAU;E3CylOd;E2CjyOF;IA0MM,UAAU;IACV,WAAW;E3C0lOf;E2CryOF;IA6MM,UAAU;IACV,UAAU;E3C2lOd;E2CzyOF;IAgNM,UAAU;IACV,eAAe;E3C4lOnB;E2C7yOF;IAmNM,UAAU;IACV,UAAU;E3C6lOd;E2CjzOF;IAsNM,UAAU;IACV,eAAe;E3C8lOnB;E2CrzOF;IAyNM,UAAU;IACV,UAAU;E3C+lOd;E2CzzOF;IA4NM,UAAU;IACV,UAAU;E3CgmOd;E2C7zOF;IA+NM,UAAU;IACV,UAAU;E3CimOd;E2Cj0OF;IAkOM,UAAU;IACV,UAAU;E3CkmOd;E2Cr0OF;IAqOM,UAAU;IACV,UAAU;E3CmmOd;E2Cz0OF;I1C8II,gB0C0FqC;E3ComOvC;E2C50OF;I1C8II,qB0C4F0C;E3CqmO5C;E2C/0OF;I1C8II,gB0C8FqC;E3CsmOvC;E2Cl1OF;I1C8II,qB0CgG0C;E3CumO5C;E2Cr1OF;I1C8II,gB0CkGqC;E3CwmOvC;E2Cx1OF;I1C8II,gB0CoGqC;E3CymOvC;E2C31OF;I1C8II,gB0CsGqC;E3C0mOvC;E2C91OF;I1C8II,gB0CwGqC;E3C2mOvC;E2Cj2OF;I1C8II,gB0C0GqC;E3C4mOvC;E2Cp2OF;IA2PQ,UAAU;IACV,SAA0B;E3C4mOhC;E2Cx2OF;I1C8II,e0CgHuD;E3C6mOzD;E2C32OF;IA2PQ,UAAU;IACV,eAA0B;E3CmnOhC;E2C/2OF;I1C8II,qB0CgHuD;E3ConOzD;E2Cl3OF;IA2PQ,UAAU;IACV,gBAA0B;E3C0nOhC;E2Ct3OF;I1C8II,sB0CgHuD;E3C2nOzD;E2Cz3OF;IA2PQ,UAAU;IACV,UAA0B;E3CioOhC;E2C73OF;I1C8II,gB0CgHuD;E3CkoOzD;E2Ch4OF;IA2PQ,UAAU;IACV,gBAA0B;E3CwoOhC;E2Cp4OF;I1C8II,sB0CgHuD;E3CyoOzD;E2Cv4OF;IA2PQ,UAAU;IACV,gBAA0B;E3C+oOhC;E2C34OF;I1C8II,sB0CgHuD;E3CgpOzD;E2C94OF;IA2PQ,UAAU;IACV,UAA0B;E3CspOhC;E2Cl5OF;I1C8II,gB0CgHuD;E3CupOzD;E2Cr5OF;IA2PQ,UAAU;IACV,gBAA0B;E3C6pOhC;E2Cz5OF;I1C8II,sB0CgHuD;E3C8pOzD;E2C55OF;IA2PQ,UAAU;IACV,gBAA0B;E3CoqOhC;E2Ch6OF;I1C8II,sB0CgHuD;E3CqqOzD;E2Cn6OF;IA2PQ,UAAU;IACV,UAA0B;E3C2qOhC;E2Cv6OF;I1C8II,gB0CgHuD;E3C4qOzD;E2C16OF;IA2PQ,UAAU;IACV,gBAA0B;E3CkrOhC;E2C96OF;I1C8II,sB0CgHuD;E3CmrOzD;E2Cj7OF;IA2PQ,UAAU;IACV,gBAA0B;E3CyrOhC;E2Cr7OF;I1C8II,sB0CgHuD;E3C0rOzD;E2Cx7OF;IA2PQ,UAAU;IACV,WAA0B;E3CgsOhC;E2C57OF;I1C8II,iB0CgHuD;E3CisOzD;AACF;;ACj2OE;E0C/FF;IAiQM,UAAU;E3CosOd;E2Cr8OF;IAmQM,UAAU;IACV,WAAW;E3CqsOf;E2Cz8OF;IAsQM,UAAU;IACV,UAAU;E3CssOd;E2C78OF;IAyQM,UAAU;IACV,eAAe;E3CusOnB;E2Cj9OF;IA4QM,UAAU;IACV,UAAU;E3CwsOd;E2Cr9OF;IA+QM,UAAU;IACV,eAAe;E3CysOnB;E2Cz9OF;IAkRM,UAAU;IACV,UAAU;E3C0sOd;E2C79OF;IAqRM,UAAU;IACV,UAAU;E3C2sOd;E2Cj+OF;IAwRM,UAAU;IACV,UAAU;E3C4sOd;E2Cr+OF;IA2RM,UAAU;IACV,UAAU;E3C6sOd;E2Cz+OF;IA8RM,UAAU;IACV,UAAU;E3C8sOd;E2C7+OF;I1C8II,gB0CmJqC;E3C+sOvC;E2Ch/OF;I1C8II,qB0CqJ0C;E3CgtO5C;E2Cn/OF;I1C8II,gB0CuJqC;E3CitOvC;E2Ct/OF;I1C8II,qB0CyJ0C;E3CktO5C;E2Cz/OF;I1C8II,gB0C2JqC;E3CmtOvC;E2C5/OF;I1C8II,gB0C6JqC;E3CotOvC;E2C//OF;I1C8II,gB0C+JqC;E3CqtOvC;E2ClgPF;I1C8II,gB0CiKqC;E3CstOvC;E2CrgPF;I1C8II,gB0CmKqC;E3CutOvC;E2CxgPF;IAoTQ,UAAU;IACV,SAA0B;E3CutOhC;E2C5gPF;I1C8II,e0CyKuD;E3CwtOzD;E2C/gPF;IAoTQ,UAAU;IACV,eAA0B;E3C8tOhC;E2CnhPF;I1C8II,qB0CyKuD;E3C+tOzD;E2CthPF;IAoTQ,UAAU;IACV,gBAA0B;E3CquOhC;E2C1hPF;I1C8II,sB0CyKuD;E3CsuOzD;E2C7hPF;IAoTQ,UAAU;IACV,UAA0B;E3C4uOhC;E2CjiPF;I1C8II,gB0CyKuD;E3C6uOzD;E2CpiPF;IAoTQ,UAAU;IACV,gBAA0B;E3CmvOhC;E2CxiPF;I1C8II,sB0CyKuD;E3CovOzD;E2C3iPF;IAoTQ,UAAU;IACV,gBAA0B;E3C0vOhC;E2C/iPF;I1C8II,sB0CyKuD;E3C2vOzD;E2CljPF;IAoTQ,UAAU;IACV,UAA0B;E3CiwOhC;E2CtjPF;I1C8II,gB0CyKuD;E3CkwOzD;E2CzjPF;IAoTQ,UAAU;IACV,gBAA0B;E3CwwOhC;E2C7jPF;I1C8II,sB0CyKuD;E3CywOzD;E2ChkPF;IAoTQ,UAAU;IACV,gBAA0B;E3C+wOhC;E2CpkPF;I1C8II,sB0CyKuD;E3CgxOzD;E2CvkPF;IAoTQ,UAAU;IACV,UAA0B;E3CsxOhC;E2C3kPF;I1C8II,gB0CyKuD;E3CuxOzD;E2C9kPF;IAoTQ,UAAU;IACV,gBAA0B;E3C6xOhC;E2CllPF;I1C8II,sB0CyKuD;E3C8xOzD;E2CrlPF;IAoTQ,UAAU;IACV,gBAA0B;E3CoyOhC;E2CzlPF;I1C8II,sB0CyKuD;E3CqyOzD;E2C5lPF;IAoTQ,UAAU;IACV,WAA0B;E3C2yOhC;E2ChmPF;I1C8II,iB0CyKuD;E3C4yOzD;AACF;;ACt/OI;E0C9GJ;IA0TM,UAAU;E3C+yOd;E2CzmPF;IA4TM,UAAU;IACV,WAAW;E3CgzOf;E2C7mPF;IA+TM,UAAU;IACV,UAAU;E3CizOd;E2CjnPF;IAkUM,UAAU;IACV,eAAe;E3CkzOnB;E2CrnPF;IAqUM,UAAU;IACV,UAAU;E3CmzOd;E2CznPF;IAwUM,UAAU;IACV,eAAe;E3CozOnB;E2C7nPF;IA2UM,UAAU;IACV,UAAU;E3CqzOd;E2CjoPF;IA8UM,UAAU;IACV,UAAU;E3CszOd;E2CroPF;IAiVM,UAAU;IACV,UAAU;E3CuzOd;E2CzoPF;IAoVM,UAAU;IACV,UAAU;E3CwzOd;E2C7oPF;IAuVM,UAAU;IACV,UAAU;E3CyzOd;E2CjpPF;I1C8II,gB0C4MqC;E3C0zOvC;E2CppPF;I1C8II,qB0C8M0C;E3C2zO5C;E2CvpPF;I1C8II,gB0CgNqC;E3C4zOvC;E2C1pPF;I1C8II,qB0CkN0C;E3C6zO5C;E2C7pPF;I1C8II,gB0CoNqC;E3C8zOvC;E2ChqPF;I1C8II,gB0CsNqC;E3C+zOvC;E2CnqPF;I1C8II,gB0CwNqC;E3Cg0OvC;E2CtqPF;I1C8II,gB0C0NqC;E3Ci0OvC;E2CzqPF;I1C8II,gB0C4NqC;E3Ck0OvC;E2C5qPF;IA6WQ,UAAU;IACV,SAA0B;E3Ck0OhC;E2ChrPF;I1C8II,e0CkOuD;E3Cm0OzD;E2CnrPF;IA6WQ,UAAU;IACV,eAA0B;E3Cy0OhC;E2CvrPF;I1C8II,qB0CkOuD;E3C00OzD;E2C1rPF;IA6WQ,UAAU;IACV,gBAA0B;E3Cg1OhC;E2C9rPF;I1C8II,sB0CkOuD;E3Ci1OzD;E2CjsPF;IA6WQ,UAAU;IACV,UAA0B;E3Cu1OhC;E2CrsPF;I1C8II,gB0CkOuD;E3Cw1OzD;E2CxsPF;IA6WQ,UAAU;IACV,gBAA0B;E3C81OhC;E2C5sPF;I1C8II,sB0CkOuD;E3C+1OzD;E2C/sPF;IA6WQ,UAAU;IACV,gBAA0B;E3Cq2OhC;E2CntPF;I1C8II,sB0CkOuD;E3Cs2OzD;E2CttPF;IA6WQ,UAAU;IACV,UAA0B;E3C42OhC;E2C1tPF;I1C8II,gB0CkOuD;E3C62OzD;E2C7tPF;IA6WQ,UAAU;IACV,gBAA0B;E3Cm3OhC;E2CjuPF;I1C8II,sB0CkOuD;E3Co3OzD;E2CpuPF;IA6WQ,UAAU;IACV,gBAA0B;E3C03OhC;E2CxuPF;I1C8II,sB0CkOuD;E3C23OzD;E2C3uPF;IA6WQ,UAAU;IACV,UAA0B;E3Ci4OhC;E2C/uPF;I1C8II,gB0CkOuD;E3Ck4OzD;E2ClvPF;IA6WQ,UAAU;IACV,gBAA0B;E3Cw4OhC;E2CtvPF;I1C8II,sB0CkOuD;E3Cy4OzD;E2CzvPF;IA6WQ,UAAU;IACV,gBAA0B;E3C+4OhC;E2C7vPF;I1C8II,sB0CkOuD;E3Cg5OzD;E2ChwPF;IA6WQ,UAAU;IACV,WAA0B;E3Cs5OhC;E2CpwPF;I1C8II,iB0CkOuD;E3Cu5OzD;AACF;;AC3oPI;E0C7HJ;IAmXM,UAAU;E3C05Od;E2C7wPF;IAqXM,UAAU;IACV,WAAW;E3C25Of;E2CjxPF;IAwXM,UAAU;IACV,UAAU;E3C45Od;E2CrxPF;IA2XM,UAAU;IACV,eAAe;E3C65OnB;E2CzxPF;IA8XM,UAAU;IACV,UAAU;E3C85Od;E2C7xPF;IAiYM,UAAU;IACV,eAAe;E3C+5OnB;E2CjyPF;IAoYM,UAAU;IACV,UAAU;E3Cg6Od;E2CryPF;IAuYM,UAAU;IACV,UAAU;E3Ci6Od;E2CzyPF;IA0YM,UAAU;IACV,UAAU;E3Ck6Od;E2C7yPF;IA6YM,UAAU;IACV,UAAU;E3Cm6Od;E2CjzPF;IAgZM,UAAU;IACV,UAAU;E3Co6Od;E2CrzPF;I1C8II,gB0CqQqC;E3Cq6OvC;E2CxzPF;I1C8II,qB0CuQ0C;E3Cs6O5C;E2C3zPF;I1C8II,gB0CyQqC;E3Cu6OvC;E2C9zPF;I1C8II,qB0C2Q0C;E3Cw6O5C;E2Cj0PF;I1C8II,gB0C6QqC;E3Cy6OvC;E2Cp0PF;I1C8II,gB0C+QqC;E3C06OvC;E2Cv0PF;I1C8II,gB0CiRqC;E3C26OvC;E2C10PF;I1C8II,gB0CmRqC;E3C46OvC;E2C70PF;I1C8II,gB0CqRqC;E3C66OvC;E2Ch1PF;IAsaQ,UAAU;IACV,SAA0B;E3C66OhC;E2Cp1PF;I1C8II,e0C2RuD;E3C86OzD;E2Cv1PF;IAsaQ,UAAU;IACV,eAA0B;E3Co7OhC;E2C31PF;I1C8II,qB0C2RuD;E3Cq7OzD;E2C91PF;IAsaQ,UAAU;IACV,gBAA0B;E3C27OhC;E2Cl2PF;I1C8II,sB0C2RuD;E3C47OzD;E2Cr2PF;IAsaQ,UAAU;IACV,UAA0B;E3Ck8OhC;E2Cz2PF;I1C8II,gB0C2RuD;E3Cm8OzD;E2C52PF;IAsaQ,UAAU;IACV,gBAA0B;E3Cy8OhC;E2Ch3PF;I1C8II,sB0C2RuD;E3C08OzD;E2Cn3PF;IAsaQ,UAAU;IACV,gBAA0B;E3Cg9OhC;E2Cv3PF;I1C8II,sB0C2RuD;E3Ci9OzD;E2C13PF;IAsaQ,UAAU;IACV,UAA0B;E3Cu9OhC;E2C93PF;I1C8II,gB0C2RuD;E3Cw9OzD;E2Cj4PF;IAsaQ,UAAU;IACV,gBAA0B;E3C89OhC;E2Cr4PF;I1C8II,sB0C2RuD;E3C+9OzD;E2Cx4PF;IAsaQ,UAAU;IACV,gBAA0B;E3Cq+OhC;E2C54PF;I1C8II,sB0C2RuD;E3Cs+OzD;E2C/4PF;IAsaQ,UAAU;IACV,UAA0B;E3C4+OhC;E2Cn5PF;I1C8II,gB0C2RuD;E3C6+OzD;E2Ct5PF;IAsaQ,UAAU;IACV,gBAA0B;E3Cm/OhC;E2C15PF;I1C8II,sB0C2RuD;E3Co/OzD;E2C75PF;IAsaQ,UAAU;IACV,gBAA0B;E3C0/OhC;E2Cj6PF;I1C8II,sB0C2RuD;E3C2/OzD;E2Cp6PF;IAsaQ,UAAU;IACV,WAA0B;E3CigPhC;E2Cx6PF;I1C8II,iB0C2RuD;E3CkgPzD;AACF;;A2CjgPA;E1C7RI,qB0ChJgB;E1CgJhB,sB0ChJgB;EAgblB,oBAhbkB;A3Co7PpB;;A2CvgPA;EAKI,uBAlbgB;A3Cw7PpB;;A2C3gPA;EAOI,qCAA4C;A3CwgPhD;;A2C/gPA;EAUI,uBAAuB;A3CygP3B;;A2CnhPA;E1C7RI,c0CySiC;E1CzSjC,e0C0SiC;EACjC,aAAa;A3C2gPjB;;A2CzhPA;EAgBM,SAAS;EACT,qBAAqB;A3C6gP3B;;A2C9hPA;EAmBM,qBAAqB;A3C+gP3B;;A2CliPA;EAqBM,gBAAgB;A3CihPtB;;A2CtiPA;EAuBI,aAAa;A3CmhPjB;;A2C1iPA;EAyBI,eAAe;A3CqhPnB;;A2C9iPA;EA2BI,mBAAmB;A3CuhPvB;;AC14PE;E0CwVF;IA+BM,aAAa;E3CwhPjB;AACF;;ACp4PE;E0C4UF;IAmCM,aAAa;E3C0hPjB;AACF;;A2CxhPE;EACE,oBAAY;E1CpUZ,wC0CqU2D;E1CrU3D,yC0CsU2D;A3C2hP/D;;A2C9hPE;EAKI,8BAA8B;EAC9B,+BAA+B;A3C6hPrC;;A2CniPE;EASM,iBAAY;A3C8hPpB;;ACz6PE;E0CkYA;IAYQ,iBAAY;E3CgiPpB;AACF;;AC36PE;E0C8XA;IAeQ,iBAAY;E3CmiPpB;AACF;;AC76PE;E0C0XA;IAkBQ,iBAAY;E3CsiPpB;AACF;;AC/6PE;E0CsXA;IAqBQ,iBAAY;E3CyiPpB;AACF;;ACj7PE;E0CkXA;IAwBQ,iBAAY;E3C4iPpB;AACF;;ACl7PI;E0C6WF;IA2BQ,iBAAY;E3C+iPpB;AACF;;AC96PI;E0CmWF;IA8BQ,iBAAY;E3CkjPpB;AACF;;AC/6PI;E0C8VF;IAiCQ,iBAAY;E3CqjPpB;AACF;;AC36PI;E0CoVF;IAoCQ,iBAAY;E3CwjPpB;AACF;;A2C7lPE;EASM,oBAAY;A3CwlPpB;;ACn+PE;E0CkYA;IAYQ,oBAAY;E3C0lPpB;AACF;;ACr+PE;E0C8XA;IAeQ,oBAAY;E3C6lPpB;AACF;;ACv+PE;E0C0XA;IAkBQ,oBAAY;E3CgmPpB;AACF;;ACz+PE;E0CsXA;IAqBQ,oBAAY;E3CmmPpB;AACF;;AC3+PE;E0CkXA;IAwBQ,oBAAY;E3CsmPpB;AACF;;AC5+PI;E0C6WF;IA2BQ,oBAAY;E3CymPpB;AACF;;ACx+PI;E0CmWF;IA8BQ,oBAAY;E3C4mPpB;AACF;;ACz+PI;E0C8VF;IAiCQ,oBAAY;E3C+mPpB;AACF;;ACr+PI;E0CoVF;IAoCQ,oBAAY;E3CknPpB;AACF;;A2CvpPE;EASM,mBAAY;A3CkpPpB;;AC7hQE;E0CkYA;IAYQ,mBAAY;E3CopPpB;AACF;;AC/hQE;E0C8XA;IAeQ,mBAAY;E3CupPpB;AACF;;ACjiQE;E0C0XA;IAkBQ,mBAAY;E3C0pPpB;AACF;;ACniQE;E0CsXA;IAqBQ,mBAAY;E3C6pPpB;AACF;;ACriQE;E0CkXA;IAwBQ,mBAAY;E3CgqPpB;AACF;;ACtiQI;E0C6WF;IA2BQ,mBAAY;E3CmqPpB;AACF;;ACliQI;E0CmWF;IA8BQ,mBAAY;E3CsqPpB;AACF;;ACniQI;E0C8VF;IAiCQ,mBAAY;E3CyqPpB;AACF;;AC/hQI;E0CoVF;IAoCQ,mBAAY;E3C4qPpB;AACF;;A2CjtPE;EASM,oBAAY;A3C4sPpB;;ACvlQE;E0CkYA;IAYQ,oBAAY;E3C8sPpB;AACF;;ACzlQE;E0C8XA;IAeQ,oBAAY;E3CitPpB;AACF;;AC3lQE;E0C0XA;IAkBQ,oBAAY;E3CotPpB;AACF;;AC7lQE;E0CsXA;IAqBQ,oBAAY;E3CutPpB;AACF;;AC/lQE;E0CkXA;IAwBQ,oBAAY;E3C0tPpB;AACF;;AChmQI;E0C6WF;IA2BQ,oBAAY;E3C6tPpB;AACF;;AC5lQI;E0CmWF;IA8BQ,oBAAY;E3CguPpB;AACF;;AC7lQI;E0C8VF;IAiCQ,oBAAY;E3CmuPpB;AACF;;ACzlQI;E0CoVF;IAoCQ,oBAAY;E3CsuPpB;AACF;;A2C3wPE;EASM,iBAAY;A3CswPpB;;ACjpQE;E0CkYA;IAYQ,iBAAY;E3CwwPpB;AACF;;ACnpQE;E0C8XA;IAeQ,iBAAY;E3C2wPpB;AACF;;ACrpQE;E0C0XA;IAkBQ,iBAAY;E3C8wPpB;AACF;;ACvpQE;E0CsXA;IAqBQ,iBAAY;E3CixPpB;AACF;;ACzpQE;E0CkXA;IAwBQ,iBAAY;E3CoxPpB;AACF;;AC1pQI;E0C6WF;IA2BQ,iBAAY;E3CuxPpB;AACF;;ACtpQI;E0CmWF;IA8BQ,iBAAY;E3C0xPpB;AACF;;ACvpQI;E0C8VF;IAiCQ,iBAAY;E3C6xPpB;AACF;;ACnpQI;E0CoVF;IAoCQ,iBAAY;E3CgyPpB;AACF;;A2Cr0PE;EASM,oBAAY;A3Cg0PpB;;AC3sQE;E0CkYA;IAYQ,oBAAY;E3Ck0PpB;AACF;;AC7sQE;E0C8XA;IAeQ,oBAAY;E3Cq0PpB;AACF;;AC/sQE;E0C0XA;IAkBQ,oBAAY;E3Cw0PpB;AACF;;ACjtQE;E0CsXA;IAqBQ,oBAAY;E3C20PpB;AACF;;ACntQE;E0CkXA;IAwBQ,oBAAY;E3C80PpB;AACF;;ACptQI;E0C6WF;IA2BQ,oBAAY;E3Ci1PpB;AACF;;AChtQI;E0CmWF;IA8BQ,oBAAY;E3Co1PpB;AACF;;ACjtQI;E0C8VF;IAiCQ,oBAAY;E3Cu1PpB;AACF;;AC7sQI;E0CoVF;IAoCQ,oBAAY;E3C01PpB;AACF;;A2C/3PE;EASM,mBAAY;A3C03PpB;;ACrwQE;E0CkYA;IAYQ,mBAAY;E3C43PpB;AACF;;ACvwQE;E0C8XA;IAeQ,mBAAY;E3C+3PpB;AACF;;ACzwQE;E0C0XA;IAkBQ,mBAAY;E3Ck4PpB;AACF;;AC3wQE;E0CsXA;IAqBQ,mBAAY;E3Cq4PpB;AACF;;AC7wQE;E0CkXA;IAwBQ,mBAAY;E3Cw4PpB;AACF;;AC9wQI;E0C6WF;IA2BQ,mBAAY;E3C24PpB;AACF;;AC1wQI;E0CmWF;IA8BQ,mBAAY;E3C84PpB;AACF;;AC3wQI;E0C8VF;IAiCQ,mBAAY;E3Ci5PpB;AACF;;ACvwQI;E0CoVF;IAoCQ,mBAAY;E3Co5PpB;AACF;;A2Cz7PE;EASM,oBAAY;A3Co7PpB;;AC/zQE;E0CkYA;IAYQ,oBAAY;E3Cs7PpB;AACF;;ACj0QE;E0C8XA;IAeQ,oBAAY;E3Cy7PpB;AACF;;ACn0QE;E0C0XA;IAkBQ,oBAAY;E3C47PpB;AACF;;ACr0QE;E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;A9CwrR9C;;A8CptRE;EACE,yBAAwB;A9CutR5B;;A8CttRE;EAGI,yBAA0C;A9CutRhD;;A8CttRE;EACE,oCAAmC;A9CytRvC;;A8CptRI;EACE,yBAA8B;A9CutRpC;;A8CttRI;EAGI,yBAAgD;A9CutRxD;;A8CttRI;EACE,oCAAyC;A9CytR/C;;A8CvtRI;EACE,yBAA6B;A9C0tRnC;;A8CztRI;EAGI,yBAAgD;A9C0tRxD;;A8CztRI;EACE,oCAAwC;A9C4tR9C;;A8CxvRE;EACE,yBAAwB;A9C2vR5B;;A8C1vRE;EAGI,yBAA0C;A9C2vRhD;;A8C1vRE;EACE,oCAAmC;A9C6vRvC;;A8CxvRI;EACE,yBAA8B;A9C2vRpC;;A8C1vRI;EAGI,yBAAgD;A9C2vRxD;;A8C1vRI;EACE,oCAAyC;A9C6vR/C;;A8C3vRI;EACE,yBAA6B;A9C8vRnC;;A8C7vRI;EAGI,yBAAgD;A9C8vRxD;;A8C7vRI;EACE,oCAAwC;A9CgwR9C;;A8C5xRE;EACE,yBAAwB;A9C+xR5B;;A8C9xRE;EAGI,yBAA0C;A9C+xRhD;;A8C9xRE;EACE,oCAAmC;A9CiyRvC;;A8C5xRI;EACE,yBAA8B;A9C+xRpC;;A8C9xRI;EAGI,yBAAgD;A9C+xRxD;;A8C9xRI;EACE,oCAAyC;A9CiyR/C;;A8C/xRI;EACE,yBAA6B;A9CkyRnC;;A8CjyRI;EAGI,yBAAgD;A9CkyRxD;;A8CjyRI;EACE,oCAAwC;A9CoyR9C;;A8Ch0RE;EACE,yBAAwB;A9Cm0R5B;;A8Cl0RE;EAGI,yBAA0C;A9Cm0RhD;;A8Cl0RE;EACE,oCAAmC;A9Cq0RvC;;A8Ch0RI;EACE,yBAA8B;A9Cm0RpC;;A8Cl0RI;EAGI,yBAAgD;A9Cm0RxD;;A8Cl0RI;EACE,oCAAyC;A9Cq0R/C;;A8Cn0RI;EACE,yBAA6B;A9Cs0RnC;;A8Cr0RI;EAGI,yBAAgD;A9Cs0RxD;;A8Cr0RI;EACE,oCAAwC;A9Cw0R9C;;A8Cr0RE;EACE,yBAAwB;A9Cw0R5B;;A8Cv0RE;EACE,oCAAmC;A9C00RvC;;A8C70RE;EACE,yBAAwB;A9Cg1R5B;;A8C/0RE;EACE,oCAAmC;A9Ck1RvC;;A8Cr1RE;EACE,yBAAwB;A9Cw1R5B;;A8Cv1RE;EACE,oCAAmC;A9C01RvC;;A8C71RE;EACE,yBAAwB;A9Cg2R5B;;A8C/1RE;EACE,oCAAmC;A9Ck2RvC;;A8Cr2RE;EACE,yBAAwB;A9Cw2R5B;;A8Cv2RE;EACE,oCAAmC;A9C02RvC;;A8C72RE;EACE,yBAAwB;A9Cg3R5B;;A8C/2RE;EACE,oCAAmC;A9Ck3RvC;;A8Cr3RE;EACE,yBAAwB;A9Cw3R5B;;A8Cv3RE;EACE,oCAAmC;A9C03RvC;;A8C73RE;EACE,4BAAwB;A9Cg4R5B;;A8C/3RE;EACE,uCAAmC;A9Ck4RvC;;A8Cr4RE;EACE,yBAAwB;A9Cw4R5B;;A8Cv4RE;EACE,oCAAmC;A9C04RvC;;A+C56RE;EACE,8BAAiC;A/C+6RrC;;A+Ch7RE;EACE,sCAAiC;A/Cm7RrC;;A+Cp7RE;EACE,iCAAiC;A/Cu7RrC;;A+Cx7RE;EACE,yCAAiC;A/C27RrC;;A+Cv7RE;EACE,4BAA4B;A/C07RhC;;A+C37RE;EACE,0BAA4B;A/C87RhC;;A+C/7RE;EACE,kCAA4B;A/Ck8RhC;;A+C97RE;EACE,sCAAkC;A/Ci8RtC;;A+Cl8RE;EACE,oCAAkC;A/Cq8RtC;;A+Ct8RE;EACE,kCAAkC;A/Cy8RtC;;A+C18RE;EACE,yCAAkC;A/C68RtC;;A+C98RE;EACE,wCAAkC;A/Ci9RtC;;A+Cl9RE;EACE,wCAAkC;A/Cq9RtC;;A+Ct9RE;EACE,iCAAkC;A/Cy9RtC;;A+C19RE;EACE,+BAAkC;A/C69RtC;;A+C99RE;EACE,gCAAkC;A/Ci+RtC;;A+Cl+RE;EACE,iCAAkC;A/Cq+RtC;;A+Cj+RE;EACE,oCAAgC;A/Co+RpC;;A+Cr+RE;EACE,kCAAgC;A/Cw+RpC;;A+Cz+RE;EACE,gCAAgC;A/C4+RpC;;A+C7+RE;EACE,uCAAgC;A/Cg/RpC;;A+Cj/RE;EACE,sCAAgC;A/Co/RpC;;A+Cr/RE;EACE,sCAAgC;A/Cw/RpC;;A+Cz/RE;EACE,iCAAgC;A/C4/RpC;;A+C7/RE;EACE,+BAAgC;A/CggSpC;;A+CjgSE;EACE,6BAAgC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/B;EqD3nTE;IACE,6BAA2B;ErD6nT/B;EqD9nTE;IACE,0BAA2B;ErDgoT/B;EqDjoTE;IACE,6BAA2B;ErDmoT/B;AACF;;ACnjTE;EoDlFE;IACE,0BAA2B;ErDyoT/B;EqD1oTE;IACE,4BAA2B;ErD4oT/B;EqD7oTE;IACE,0BAA2B;ErD+oT/B;EqDhpTE;IACE,4BAA2B;ErDkpT/B;EqDnpTE;IACE,6BAA2B;ErDqpT/B;EqDtpTE;IACE,0BAA2B;ErDwpT/B;EqDzpTE;IACE,6BAA2B;ErD2pT/B;AACF;;ACnkTE;EoD1FE;IACE,0BAA2B;ErDiqT/B;EqDlqTE;IACE,4BAA2B;ErDoqT/B;EqDrqTE;IACE,0BAA2B;ErDuqT/B;EqDxqTE;IACE,4BAA2B;ErD0qT/B;EqD3qTE;IACE,6BAA2B;ErD6qT/B;EqD9qTE;IACE,0BAA2B;ErDgrT/B;EqDjrTE;IACE,6BAA2B;ErDmrT/B;AACF;;ACvlTE;EoD9FE;IACE,0BAA2B;ErDyrT/B;EqD1rTE;IACE,4BAA2B;ErD4rT/B;EqD7rTE;IACE,0BAA2B;ErD+rT/B;EqDhsTE;IACE,4BAA2B;ErDksT/B;EqDnsTE;IACE,6BAA2B;ErDqsT/B;EqDtsTE;IACE,0BAA2B;ErDwsT/B;EqDzsTE;IACE,6BAA2B;ErD2sT/B;AACF;;AChmTI;EoD7GA;IACE,0BAA2B;ErDitT/B;EqDltTE;IACE,4BAA2B;ErDotT/B;EqDrtTE;IACE,0BAA2B;ErDutT/B;EqDxtTE;IACE,4BAA2B;ErD0tT/B;EqD3tTE;IACE,6BAA2B;ErD6tT/B;EqD9tTE;IACE,0BAA2B;ErDguT/B;EqDjuTE;IACE,6BAA2B;ErDmuT/B;AACF;;ACzmTI;EoD5HA;IACE,0BAA2B;ErDyuT/B;EqD1uTE;IACE,4BAA2B;ErD4uT/B;EqD7uTE;IACE,0BAA2B;ErD+uT/B;EqDhvTE;IACE,4BAA2B;ErDkvT/B;EqDnvTE;IACE,6BAA2B;ErDqvT/B;EqDtvTE;IACE,0BAA2B;ErDwvT/B;EqDzvTE;IACE,6BAA2B;ErD2vT/B;AACF;;AqDnuTE;EACE,6BAAqC;ArDsuTzC;;AqDvuTE;EACE,8BAAqC;ArD0uTzC;;AqD3uTE;EACE,2BAAqC;ArD8uTzC;;AqD/uTE;EACE,4BAAqC;ArDkvTzC;;AC/rTE;EoD/CE;IACE,6BAAqC;ErDkvTzC;AACF;;ACjsTE;EoDhDE;IACE,6BAAqC;ErDqvTzC;AACF;;ACnsTE;EoDjDE;IACE,6BAAqC;ErDwvTzC;AACF;;ACrsTE;EoDlDE;IACE,6BAAqC;ErD2vTzC;AACF;;ACvsTE;EoDnDE;IACE,6BAAqC;ErD8vTzC;AACF;;ACxsTI;EoDrDA;IACE,6BAAqC;ErDiwTzC;AACF;;ACpsTI;EoD5DA;IACE,6BAAqC;ErDowTzC;AACF;;ACrsTI;EoD9DA;IACE,6BAAqC;ErDuwTzC;AACF;;ACjsTI;EoDrEA;IACE,6BAAqC;ErD0wTzC;AACF;;ACrvTE;EoD/CE;IACE,8BAAqC;ErDwyTzC;AACF;;ACvvTE;EoDhDE;IACE,8BAAqC;ErD2yTzC;AACF;;ACzvTE;EoDjDE;IACE,8BAAqC;ErD8yTzC;AACF;;AC3vTE;EoDlDE;IACE,8BAAqC;ErDizTzC;AACF;;AC7vTE;EoDnDE;IACE,8BAAqC;ErDozTzC;AACF;;AC9vTI;EoDrDA;IACE,8BAAqC;ErDuzTzC;AACF;;AC1vTI;EoD5DA;IACE,8BAAqC;ErD0zTzC;AACF;;AC3vTI;EoD9DA;IACE,8BAAqC;ErD6zTzC;AACF;;ACvvTI;EoDrEA;IACE,8BAAqC;ErDg0TzC;AACF;;AC3yTE;EoD/CE;IACE,2BAAqC;ErD81TzC;AACF;;AC7yTE;EoDhDE;IACE,2BAAqC;ErDi2TzC;AACF;;AC/yTE;EoDjDE;IACE,2BAAqC;ErDo2TzC;AACF;;ACjzTE;EoDlDE;IACE,2BAAqC;ErDu2TzC;AACF;;ACnzTE;EoDnDE;IACE,2BAAqC;ErD02TzC;AACF;;ACpzTI;EoDrDA;IACE,2BAAqC;ErD62TzC;AACF;;AChzTI;EoD5DA;IACE,2BAAqC;ErDg3TzC;AACF;;ACjzTI;EoD9DA;IACE,2BAAqC;ErDm3TzC;AACF;;AC7yTI;EoDrEA;IACE,2BAAqC;ErDs3TzC;AACF;;ACj2TE;EoD/CE;IACE,4BAAqC;ErDo5TzC;AACF;;ACn2TE;EoDhDE;IACE,4BAAqC;ErDu5TzC;AACF;;ACr2TE;EoDjDE;IACE,4BAAqC;ErD05TzC;AACF;;ACv2TE;EoDlDE;IACE,4BAAqC;ErD65TzC;AACF;;ACz2TE;EoDnDE;IACE,4BAAqC;ErDg6TzC;AACF;;AC12TI;EoDrDA;IACE,4BAAqC;ErDm6TzC;AACF;;ACt2TI;EoD5DA;IACE,4BAAqC;ErDs6TzC;AACF;;ACv2TI;EoD9DA;IACE,4BAAqC;ErDy6TzC;AACF;;ACn2TI;EoDrEA;IACE,4BAAqC;ErD46TzC;AACF;;AqD36TA;EACE,qCAAqC;ArD86TvC;;AqD56TA;EACE,oCAAoC;ArD+6TtC;;AqD76TA;EACE,oCAAoC;ArDg7TtC;;AqD96TA;EACE,6BAA6B;ArDi7T/B;;AqD/6TA;EACE,2BAAqC;ArDk7TvC;;AqDj7TA;EACE,2BAAsC;ArDo7TxC;;AqDn7TA;EACE,2BAAsC;ArDs7TxC;;AqDr7TA;EACE,2BAAwC;ArDw7T1C;;AqDv7TA;EACE,2BAAoC;ArD07TtC;;AqDx7TA;EACE,+LAAuC;ArD27TzC;;AqDz7TA;EACE,+LAAyC;ArD47T3C;;AqD17TA;EACE,+LAA0C;ArD67T5C;;AqD37TA;EACE,iCAAyC;ArD87T3C;;AqD57TA;EACE,iCAAoC;ArD+7TtC;;AsD3hUE;EACE,yBAA+B;AtD8hUnC;;ACn9TE;EqDzEE;IACE,yBAA+B;EtDgiUnC;AACF;;ACr9TE;EqD1EE;IACE,yBAA+B;EtDmiUnC;AACF;;ACv9TE;EqD3EE;IACE,yBAA+B;EtDsiUnC;AACF;;ACz9TE;EqD5EE;IACE,yBAA+B;EtDyiUnC;AACF;;AC39TE;EqD7EE;IACE,yBAA+B;EtD4iUnC;AACF;;AC59TI;EqD/EA;IACE,yBAA+B;EtD+iUnC;AACF;;ACx9TI;EqDtFA;IACE,yBAA+B;EtDkjUnC;AACF;;ACz9TI;EqDxFA;IACE,yBAA+B;EtDqjUnC;AACF;;ACr9TI;EqD/FA;IACE,yBAA+B;EtDwjUnC;AACF;;AsDrlUE;EACE,wBAA+B;AtDwlUnC;;AC7gUE;EqDzEE;IACE,wBAA+B;EtD0lUnC;AACF;;AC/gUE;EqD1EE;IACE,wBAA+B;EtD6lUnC;AACF;;ACjhUE;EqD3EE;IACE,wBAA+B;EtDgmUnC;AACF;;ACnhUE;EqD5EE;IACE,wBAA+B;EtDmmUnC;AACF;;ACrhUE;EqD7EE;IACE,wBAA+B;EtDsmUnC;AACF;;ACthUI;EqD/EA;IACE,wBAA+B;EtDymUnC;AACF;;AClhUI;EqDtFA;IACE,wBAA+B;EtD4mUnC;AACF;;ACnhUI;EqDxFA;IACE,wBAA+B;EtD+mUnC;AACF;;AC/gUI;EqD/FA;IACE,wBAA+B;EtDknUnC;AACF;;AsD/oUE;EACE,0BAA+B;AtDkpUnC;;ACvkUE;EqDzEE;IACE,0BAA+B;EtDopUnC;AACF;;ACzkUE;EqD1EE;IACE,0BAA+B;EtDupUnC;AACF;;AC3kUE;EqD3EE;IACE,0BAA+B;EtD0pUnC;AACF;;AC7kUE;EqD5EE;IACE,0BAA+B;EtD6pUnC;AACF;;AC/kUE;EqD7EE;IACE,0BAA+B;EtDgqUnC;AACF;;AChlUI;EqD/EA;IACE,0BAA+B;EtDmqUnC;AACF;;AC5kUI;EqDtFA;IACE,0BAA+B;EtDsqUnC;AACF;;AC7kUI;EqDxFA;IACE,0BAA+B;EtDyqUnC;AACF;;ACzkUI;EqD/FA;IACE,0BAA+B;EtD4qUnC;AACF;;AsDzsUE;EACE,gCAA+B;AtD4sUnC;;ACjoUE;EqDzEE;IACE,gCAA+B;EtD8sUnC;AACF;;ACnoUE;EqD1EE;IACE,gCAA+B;EtDitUnC;AACF;;ACroUE;EqD3EE;IACE,gCAA+B;EtDotUnC;AACF;;ACvoUE;EqD5EE;IACE,gCAA+B;EtDutUnC;AACF;;ACzoUE;EqD7EE;IACE,gCAA+B;EtD0tUnC;AACF;;AC1oUI;EqD/EA;IACE,gCAA+B;EtD6tUnC;AACF;;ACtoUI;EqDtFA;IACE,gCAA+B;EtDguUnC;AACF;;ACvoUI;EqDxFA;IACE,gCAA+B;EtDmuUnC;AACF;;ACnoUI;EqD/FA;IACE,gCAA+B;EtDsuUnC;AACF;;AsDnwUE;EACE,+BAA+B;AtDswUnC;;AC3rUE;EqDzEE;IACE,+BAA+B;EtDwwUnC;AACF;;AC7rUE;EqD1EE;IACE,+BAA+B;EtD2wUnC;AACF;;AC/rUE;EqD3EE;IACE,+BAA+B;EtD8wUnC;AACF;;ACjsUE;EqD5EE;IACE,+BAA+B;EtDixUnC;AACF;;ACnsUE;EqD7EE;IACE,+BAA+B;EtDoxUnC;AACF;;ACpsUI;EqD/EA;IACE,+BAA+B;EtDuxUnC;AACF;;AChsUI;EqDtFA;IACE,+BAA+B;EtD0xUnC;AACF;;ACjsUI;EqDxFA;IACE,+BAA+B;EtD6xUnC;AACF;;AC7rUI;EqD/FA;IACE,+BAA+B;EtDgyUnC;AACF;;AsD/xUA;EACE,wBAAwB;AtDkyU1B;;AsDhyUA;EACE,uBAAuB;EACvB,iCAAiC;EACjC,yBAAyB;EACzB,2BAA2B;EAC3B,qBAAqB;EACrB,6BAA6B;EAC7B,8BAA8B;EAC9B,wBAAwB;AtDmyU1B;;AChwUE;EqDhCA;IACE,wBAAwB;EtDoyU1B;AACF;;AClwUE;EqDhCA;IACE,wBAAwB;EtDsyU1B;AACF;;ACpwUE;EqDhCA;IACE,wBAAwB;EtDwyU1B;AACF;;ACtwUE;EqDhCA;IACE,wBAAwB;EtD0yU1B;AACF;;ACxwUE;EqDhCA;IACE,wBAAwB;EtD4yU1B;AACF;;ACzwUI;EqDjCF;IACE,wBAAwB;EtD8yU1B;AACF;;ACrwUI;EqDvCF;IACE,wBAAwB;EtDgzU1B;AACF;;ACtwUI;EqDxCF;IACE,wBAAwB;EtDkzU1B;AACF;;AClwUI;EqD9CF;IACE,wBAAwB;EtDozU1B;AACF;;AsDnzUA;EACE,6BAA6B;AtDszU/B;;AC1zUE;EqDOA;IACE,6BAA6B;EtDuzU/B;AACF;;AC5zUE;EqDOA;IACE,6BAA6B;EtDyzU/B;AACF;;AC9zUE;EqDOA;IACE,6BAA6B;EtD2zU/B;AACF;;ACh0UE;EqDOA;IACE,6BAA6B;EtD6zU/B;AACF;;ACl0UE;EqDOA;IACE,6BAA6B;EtD+zU/B;AACF;;ACn0UI;EqDMF;IACE,6BAA6B;EtDi0U/B;AACF;;AC/zUI;EqDAF;IACE,6BAA6B;EtDm0U/B;AACF;;ACh0UI;EqDDF;IACE,6BAA6B;EtDq0U/B;AACF;;AC5zUI;EqDPF;IACE,6BAA6B;EtDu0U/B;AACF;;AuDj8UA,iBAAA;ACQA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AxD67UhC;;AwDj8UA;EAMI,gBAAgB;AxD+7UpB;;AwDr8UA;EASM,mBAAmB;AxDg8UzB;;AwDz8UA;EAeM,uBtDRyB;EsDSzB,ctDtBuB;AFo9U7B;;AwD98UA;;EAmBQ,cAAc;AxDg8UtB;;AwDn9UA;EAqBQ,ctD3BqB;AF69U7B;;AwDv9UA;EAuBQ,4BtD7BqB;AFi+U7B;;AwD39UA;;EA0BU,ctDhCmB;AFs+U7B;;AC34UE;EuDrFF;IA6BU,uBtDtBqB;EF89U7B;AACF;;AwDt+UA;;EAgCQ,4BtDtCqB;AFi/U7B;;AwD3+UA;;;EAqCU,yB7CgEuB;E6C/DvB,ctD5CmB;AFw/U7B;;AwDl/UA;EAyCU,ctD/CmB;EsDgDnB,YAAY;AxD68UtB;;AwDv/UA;EA4CY,UAAU;AxD+8UtB;;AwD3/UA;EA+CY,UAAU;AxDg9UtB;;AwD//UA;EAmDY,ctDzDiB;AFygV7B;;AwDngVA;EAqDc,uCtD3De;AF6gV7B;;AwDvgVA;EAyDc,yBtD/De;EsDgEf,qBtDhEe;EsDiEf,YtDpDiB;AFsgV/B;;AwD7gVA;EAiEU,4EAAyG;AxDg9UnH;;ACx8UE;EuDzEF;IAoEc,4EAAyG;ExDk9UrH;AACF;;AwDvhVA;EAeM,yBtDrBuB;EsDsBvB,YtDTyB;AFqhV/B;;AwD5hVA;;EAmBQ,cAAc;AxD8gVtB;;AwDjiVA;EAqBQ,YtDduB;AF8hV/B;;AwDriVA;EAuBQ,+BtDhBuB;AFkiV/B;;AwDziVA;;EA0BU,YtDnBqB;AFuiV/B;;ACz9UE;EuDrFF;IA6BU,yBtDnCmB;EFyjV3B;AACF;;AwDpjVA;;EAgCQ,+BtDzBuB;AFkjV/B;;AwDzjVA;;;EAqCU,uB7CgEuB;E6C/DvB,YtD/BqB;AFyjV/B;;AwDhkVA;EAyCU,YtDlCqB;EsDmCrB,YAAY;AxD2hVtB;;AwDrkVA;EA4CY,UAAU;AxD6hVtB;;AwDzkVA;EA+CY,UAAU;AxD8hVtB;;AwD7kVA;EAmDY,YtD5CmB;AF0kV/B;;AwDjlVA;EAqDc,uCtD3De;AF2lV7B;;AwDrlVA;EAyDc,uBtDlDiB;EsDmDjB,mBtDnDiB;EsDoDjB,ctDjEe;AFimV7B;;AwD3lVA;EAiEU,8EAAyG;AxD8hVnH;;ACthVE;EuDzEF;IAoEc,8EAAyG;ExDgiVrH;AACF;;AwDrmVA;EAeM,4BtDVwB;EsDWxB,yB7CwDe;AXkiVrB;;AwD1mVA;;EAmBQ,cAAc;AxD4lVtB;;AwD/mVA;EAqBQ,yB7CmDa;AX2iVrB;;AwDnnVA;EAuBQ,yB7CiDa;AX+iVrB;;AwDvnVA;;EA0BU,yB7C8CW;AXojVrB;;ACviVE;EuDrFF;IA6BU,4BtDxBoB;EF4nV5B;AACF;;AwDloVA;;EAgCQ,yB7CwCa;AX+jVrB;;AwDvoVA;;;EAqCU,yB7CgEuB;E6C/DvB,yB7CkCW;AXskVrB;;AwD9oVA;EAyCU,yB7C+BW;E6C9BX,YAAY;AxDymVtB;;AwDnpVA;EA4CY,UAAU;AxD2mVtB;;AwDvpVA;EA+CY,UAAU;AxD4mVtB;;AwD3pVA;EAmDY,yB7CqBS;AXulVrB;;AwD/pVA;EAqDc,uCtD3De;AFyqV7B;;AwDnqVA;EAyDc,oC7CeO;E6CdP,gC7CcO;E6CbP,iBtDtDgB;AFoqV9B;;AwDzqVA;EAiEU,iFAAyG;AxD4mVnH;;ACpmVE;EuDzEF;IAoEc,iFAAyG;ExD8mVrH;AACF;;AwDnrVA;EAeM,yBtDjBwB;EsDkBxB,W7C0DU;AX8mVhB;;AwDxrVA;;EAmBQ,cAAc;AxD0qVtB;;AwD7rVA;EAqBQ,W7CqDQ;AXunVhB;;AwDjsVA;EAuBQ,+B7CmDQ;AX2nVhB;;AwDrsVA;;EA0BU,W7CgDM;AXgoVhB;;ACrnVE;EuDrFF;IA6BU,yBtD/BoB;EFitV5B;AACF;;AwDhtVA;;EAgCQ,+B7C0CQ;AX2oVhB;;AwDrtVA;;;EAqCU,yB7CgEuB;E6C/DvB,W7CoCM;AXkpVhB;;AwD5tVA;EAyCU,W7CiCM;E6ChCN,YAAY;AxDurVtB;;AwDjuVA;EA4CY,UAAU;AxDyrVtB;;AwDruVA;EA+CY,UAAU;AxD0rVtB;;AwDzuVA;EAmDY,W7CuBI;AXmqVhB;;AwD7uVA;EAqDc,uCtD3De;AFuvV7B;;AwDjvVA;EAyDc,sB7CiBE;E6ChBF,kB7CgBE;E6CfF,ctD7DgB;AFyvV9B;;AwDvvVA;EAiEU,gFAAyG;AxD0rVnH;;AClrVE;EuDzEF;IAoEc,gFAAyG;ExD4rVrH;AACF;;AwDjwVA;EAeM,yBtDH4B;EsDI5B,W7C0DU;AX4rVhB;;AwDtwVA;;EAmBQ,cAAc;AxDwvVtB;;AwD3wVA;EAqBQ,W7CqDQ;AXqsVhB;;AwD/wVA;EAuBQ,+B7CmDQ;AXysVhB;;AwDnxVA;;EA0BU,W7CgDM;AX8sVhB;;ACnsVE;EuDrFF;IA6BU,yBtDjBwB;EFixVhC;AACF;;AwD9xVA;;EAgCQ,+B7C0CQ;AXytVhB;;AwDnyVA;;;EAqCU,yB7CgEuB;E6C/DvB,W7CoCM;AXguVhB;;AwD1yVA;EAyCU,W7CiCM;E6ChCN,YAAY;AxDqwVtB;;AwD/yVA;EA4CY,UAAU;AxDuwVtB;;AwDnzVA;EA+CY,UAAU;AxDwwVtB;;AwDvzVA;EAmDY,W7CuBI;AXivVhB;;AwD3zVA;EAqDc,uCtD3De;AFq0V7B;;AwD/zVA;EAyDc,sB7CiBE;E6ChBF,kB7CgBE;E6CfF,ctD/CoB;AFyzVlC;;AwDr0VA;EAiEU,gFAAyG;AxDwwVnH;;AChwVE;EuDzEF;IAoEc,gFAAyG;ExD0wVrH;AACF;;AwD/0VA;EAeM,yBtDD4B;EsDE5B,W7C0DU;AX0wVhB;;AwDp1VA;;EAmBQ,cAAc;AxDs0VtB;;AwDz1VA;EAqBQ,W7CqDQ;AXmxVhB;;AwD71VA;EAuBQ,+B7CmDQ;AXuxVhB;;AwDj2VA;;EA0BU,W7CgDM;AX4xVhB;;ACjxVE;EuDrFF;IA6BU,yBtDfwB;EF61VhC;AACF;;AwD52VA;;EAgCQ,+B7C0CQ;AXuyVhB;;AwDj3VA;;;EAqCU,yB7CgEuB;E6C/DvB,W7CoCM;AX8yVhB;;AwDx3VA;EAyCU,W7CiCM;E6ChCN,YAAY;AxDm1VtB;;AwD73VA;EA4CY,UAAU;AxDq1VtB;;AwDj4VA;EA+CY,UAAU;AxDs1VtB;;AwDr4VA;EAmDY,W7CuBI;AX+zVhB;;AwDz4VA;EAqDc,uCtD3De;AFm5V7B;;AwD74VA;EAyDc,sB7CiBE;E6ChBF,kB7CgBE;E6CfF,ctD7CoB;AFq4VlC;;AwDn5VA;EAiEU,gFAAyG;AxDs1VnH;;AC90VE;EuDzEF;IAoEc,gFAAyG;ExDw1VrH;AACF;;AwD75VA;EAeM,yBtDF4B;EsDG5B,W7C0DU;AXw1VhB;;AwDl6VA;;EAmBQ,cAAc;AxDo5VtB;;AwDv6VA;EAqBQ,W7CqDQ;AXi2VhB;;AwD36VA;EAuBQ,+B7CmDQ;AXq2VhB;;AwD/6VA;;EA0BU,W7CgDM;AX02VhB;;AC/1VE;EuDrFF;IA6BU,yBtDhBwB;EF46VhC;AACF;;AwD17VA;;EAgCQ,+B7C0CQ;AXq3VhB;;AwD/7VA;;;EAqCU,yB7CgEuB;E6C/DvB,W7CoCM;AX43VhB;;AwDt8VA;EAyCU,W7CiCM;E6ChCN,YAAY;AxDi6VtB;;AwD38VA;EA4CY,UAAU;AxDm6VtB;;AwD/8VA;EA+CY,UAAU;AxDo6VtB;;AwDn9VA;EAmDY,W7CuBI;AX64VhB;;AwDv9VA;EAqDc,uCtD3De;AFi+V7B;;AwD39VA;EAyDc,sB7CiBE;E6ChBF,kB7CgBE;E6CfF,ctD9CoB;AFo9VlC;;AwDj+VA;EAiEU,gFAAyG;AxDo6VnH;;AC55VE;EuDzEF;IAoEc,gFAAyG;ExDs6VrH;AACF;;AwD3+VA;EAeM,yBtDJ4B;EsDK5B,W7C0DU;AXs6VhB;;AwDh/VA;;EAmBQ,cAAc;AxDk+VtB;;AwDr/VA;EAqBQ,W7CqDQ;AX+6VhB;;AwDz/VA;EAuBQ,+B7CmDQ;AXm7VhB;;AwD7/VA;;EA0BU,W7CgDM;AXw7VhB;;AC76VE;EuDrFF;IA6BU,yBtDlBwB;EF4/VhC;AACF;;AwDxgWA;;EAgCQ,+B7C0CQ;AXm8VhB;;AwD7gWA;;;EAqCU,yB7CgEuB;E6C/DvB,W7CoCM;AX08VhB;;AwDphWA;EAyCU,W7CiCM;E6ChCN,YAAY;AxD++VtB;;AwDzhWA;EA4CY,UAAU;AxDi/VtB;;AwD7hWA;EA+CY,UAAU;AxDk/VtB;;AwDjiWA;EAmDY,W7CuBI;AX29VhB;;AwDriWA;EAqDc,uCtD3De;AF+iW7B;;AwDziWA;EAyDc,sB7CiBE;E6ChBF,kB7CgBE;E6CfF,ctDhDoB;AFoiWlC;;AwD/iWA;EAiEU,gFAAyG;AxDk/VnH;;AC1+VE;EuDzEF;IAoEc,gFAAyG;ExDo/VrH;AACF;;AwDzjWA;EAeM,yBtDL4B;EsDM5B,yB7CwDe;AXs/VrB;;AwD9jWA;;EAmBQ,cAAc;AxDgjWtB;;AwDnkWA;EAqBQ,yB7CmDa;AX+/VrB;;AwDvkWA;EAuBQ,yB7CiDa;AXmgWrB;;AwD3kWA;;EA0BU,yB7C8CW;AXwgWrB;;AC3/VE;EuDrFF;IA6BU,yBtDnBwB;EF2kWhC;AACF;;AwDtlWA;;EAgCQ,yB7CwCa;AXmhWrB;;AwD3lWA;;;EAqCU,yB7CgEuB;E6C/DvB,yB7CkCW;AX0hWrB;;AwDlmWA;EAyCU,yB7C+BW;E6C9BX,YAAY;AxD6jWtB;;AwDvmWA;EA4CY,UAAU;AxD+jWtB;;AwD3mWA;EA+CY,UAAU;AxDgkWtB;;AwD/mWA;EAmDY,yB7CqBS;AX2iWrB;;AwDnnWA;EAqDc,uCtD3De;AF6nW7B;;AwDvnWA;EAyDc,oC7CeO;E6CdP,gC7CcO;E6CbP,ctDjDoB;AFmnWlC;;AwD7nWA;EAiEU,gFAAyG;AxDgkWnH;;ACxjWE;EuDzEF;IAoEc,gFAAyG;ExDkkWrH;AACF;;AwDvoWA;EAeM,yBtDC2B;EsDA3B,W7C0DU;AXkkWhB;;AwD5oWA;;EAmBQ,cAAc;AxD8nWtB;;AwDjpWA;EAqBQ,W7CqDQ;AX2kWhB;;AwDrpWA;EAuBQ,+B7CmDQ;AX+kWhB;;AwDzpWA;;EA0BU,W7CgDM;AXolWhB;;ACzkWE;EuDrFF;IA6BU,yBtDbuB;EFmpW/B;AACF;;AwDpqWA;;EAgCQ,+B7C0CQ;AX+lWhB;;AwDzqWA;;;EAqCU,yB7CgEuB;E6C/DvB,W7CoCM;AXsmWhB;;AwDhrWA;EAyCU,W7CiCM;E6ChCN,YAAY;AxD2oWtB;;AwDrrWA;EA4CY,UAAU;AxD6oWtB;;AwDzrWA;EA+CY,UAAU;AxD8oWtB;;AwD7rWA;EAmDY,W7CuBI;AXunWhB;;AwDjsWA;EAqDc,uCtD3De;AF2sW7B;;AwDrsWA;EAyDc,sB7CiBE;E6ChBF,kB7CgBE;E6CfF,ctD3CmB;AF2rWjC;;AwD3sWA;EAiEU,gFAAyG;AxD8oWnH;;ACtoWE;EuDzEF;IAoEc,gFAAyG;ExDgpWrH;AACF;;AwDrtWA;EAwEM,eA/E0B;AxDguWhC;;AC5oWE;EuD7EF;IA4EQ,oBAlF8B;ExDouWpC;AACF;;AClpWE;EuD7EF;IAgFQ,qBArF8B;ExDyuWpC;AACF;;AwDruWA;EAqFM,mBAAmB;EACnB,aAAa;AxDopWnB;;AwD1uWA;EAwFQ,YAAY;EACZ,cAAc;AxDspWtB;;AwD/uWA;EA2FI,gBAAgB;AxDwpWpB;;AwDnvWA;EA6FI,iBAAiB;AxD0pWrB;;AwDtpWA;EAEE,gBAAgB;AxDwpWlB;;AwD1pWA;EAII,SAAS;EACT,gBAAgB;EAChB,eAAe;EACf,kBAAkB;EAClB,QAAQ;EACR,qCAAqC;AxD0pWzC;;AwDnqWA;EAYI,YAAY;AxD2pWhB;;AC/rWE;EuDwBF;IAeI,aAAa;ExD6pWf;AACF;;AwD5pWA;EACE,kBAAkB;AxD+pWpB;;ACzsWE;EuDyCF;IAKM,aAAa;ExDgqWjB;EwDrqWF;IAOQ,sBAAsB;ExDiqW5B;AACF;;AC9sWE;EuDqCF;IASI,aAAa;IACb,uBAAuB;ExDqqWzB;EwD/qWF;IvDsBI,oBuDVwC;ExDsqW1C;AACF;;AwDnqWA;;EAEE,YAAY;EACZ,cAAc;AxDsqWhB;;AwDpqWA;EACE,YAAY;EACZ,cAAc;EACd,oBAlJ6B;AxDyzW/B;;AyDrzWA;EACE,oBAL2B;AzD6zW7B;;AC5tWE;EwD7FF;IAMM,oBAT8B;EzDi0WlC;EyD9zWF;IAQM,qBAV8B;EzDm0WlC;AACF;;A0Dl0WA;EACE,yBxDS4B;EwDR5B,yBAJ+B;A1Dy0WjC","file":"bulma.css"}
================================================
FILE: docs/static/css/index.css
================================================
body {
font-family: 'Noto Sans', sans-serif;
}
.hero-body-img{
text-align: center;
}
.footer .icon-link {
font-size: 25px;
color: #000;
}
.link-block a {
margin-top: 5px;
margin-bottom: 5px;
}
.dnerf {
font-variant: small-caps;
}
.teaser .hero-body {
padding-top: 0;
padding-bottom: 3rem;
}
.teaser {
font-family: 'Google Sans', sans-serif;
}
.publication-title {
}
.publication-banner {
max-height: parent;
}
.publication-banner video {
position: relative;
left: auto;
top: auto;
transform: none;
object-fit: fit;
}
.publication-header .hero-body {
}
.publication-title {
font-family: 'Google Sans', sans-serif;
}
.publication-authors {
font-family: 'Google Sans', sans-serif;
}
.publication-venue {
color: #555;
width: fit-content;
font-weight: bold;
}
.publication-awards {
color: #ff3860;
width: fit-content;
font-weight: bolder;
}
.publication-authors {
}
.author-block {
font-size: 16px;
padding: 0 5px;
display: inline-block;
}
.publication-banner img {
}
.publication-authors {
/*color: #4286f4;*/
}
.publication-video {
position: relative;
width: 100%;
height: 0;
padding-bottom: 56.25%;
overflow: hidden;
border-radius: 10px !important;
}
.publication-video iframe {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.publication-body img {
}
.results-carousel {
overflow: hidden;
}
.results-carousel .item {
margin: 5px;
overflow: hidden;
padding: 20px;
font-size: 0;
}
.results-carousel video {
margin: 0;
}
.slider-pagination .slider-page {
background: #000000;
}
.eql-cntrb {
font-size: smaller;
}
body{
font-weight: 200;
font-size: 16px;
/*background-color: rgb(43, 60, 197);*/
/*color: rgb(0, 79, 241);*/
/*color: white;*/
border-top:5px solid rgb(255, 180, 240);
/*border-bottom:5px solid orange;*/
}
b{
color:rgb(0, 79, 241);
}
.title{
text-align: center;
}
.posts{
/*font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;*/
font-size: 14px;
}
.news{
line-height: 1.5em;
}
.post{
border-left: 5px solid rgb(255, 180, 240);
}
.xtitle{
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 30px;
text-align: center;
/* margin: 10px 0; */
/* font-weight: 400; */
/*color: rgb(0, 79, 241);*/
}
.posts .teaser{
width: 160px;
height: 120px;
float: left;
margin: 0 0 10px 10px;
}
.link-block{
margin: 0 10px;
}
a{
color: #111;
position: relative;
}
a:after{
content: '';
position: absolute;
top: 60%;
left: -0.1em;
right: -0.1em;
bottom: 0;
transition:top 200ms cubic-bezier(0, 0.8, 0.13, 1);
/*background-color: rgba(225, 166, 121, 0.5);*/
background-color: rgba(255,211,30, 0.4);
}
.emojilink:after{
background-color: rgba(255,211,30, 0.0)
/*rgba(225, 166, 121, 0.0);*/
}
a:hover{
color: black;
text-decoration: none;
}
a:hover:after{
color:black;
/*color: #111;*/
text-decoration: none;
top:0%;
}
.entry{
position: relative;
top:0;
left: 20px;
margin-top: 5px;
}
.posts > .post{
border-bottom: 0;
padding-bottom:0em;
padding-top: 10px;
margin-bottom: 5px;
}
.papertitle{
margin-top: 0px;
font-weight: 600;
font-size:16px;
font-style: italic;
/*font-style: italic;*/
/*height: 2.6em*/
}
================================================
FILE: docs/static/js/bulma-carousel.js
================================================
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["bulmaCarousel"] = factory();
else
root["bulmaCarousel"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 5);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export addClasses */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return removeClasses; });
/* unused harmony export show */
/* unused harmony export hide */
/* unused harmony export offset */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return width; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return height; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return outerHeight; });
/* unused harmony export outerWidth */
/* unused harmony export position */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return css; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__type__ = __webpack_require__(2);
var addClasses = function addClasses(element, classes) {
classes = Array.isArray(classes) ? classes : classes.split(' ');
classes.forEach(function (cls) {
element.classList.add(cls);
});
};
var removeClasses = function removeClasses(element, classes) {
classes = Array.isArray(classes) ? classes : classes.split(' ');
classes.forEach(function (cls) {
element.classList.remove(cls);
});
};
var show = function show(elements) {
elements = Array.isArray(elements) ? elements : [elements];
elements.forEach(function (element) {
element.style.display = '';
});
};
var hide = function hide(elements) {
elements = Array.isArray(elements) ? elements : [elements];
elements.forEach(function (element) {
element.style.display = 'none';
});
};
var offset = function offset(element) {
var rect = element.getBoundingClientRect();
return {
top: rect.top + document.body.scrollTop,
left: rect.left + document.body.scrollLeft
};
};
// returns an element's width
var width = function width(element) {
return element.getBoundingClientRect().width || element.offsetWidth;
};
// returns an element's height
var height = function height(element) {
return element.getBoundingClientRect().height || element.offsetHeight;
};
var outerHeight = function outerHeight(element) {
var withMargin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var height = element.offsetHeight;
if (withMargin) {
var style = window.getComputedStyle(element);
height += parseInt(style.marginTop) + parseInt(style.marginBottom);
}
return height;
};
var outerWidth = function outerWidth(element) {
var withMargin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var width = element.offsetWidth;
if (withMargin) {
var style = window.getComputedStyle(element);
width += parseInt(style.marginLeft) + parseInt(style.marginRight);
}
return width;
};
var position = function position(element) {
return {
left: element.offsetLeft,
top: element.offsetTop
};
};
var css = function css(element, obj) {
if (!obj) {
return window.getComputedStyle(element);
}
if (Object(__WEBPACK_IMPORTED_MODULE_0__type__["b" /* isObject */])(obj)) {
var style = '';
Object.keys(obj).forEach(function (key) {
style += key + ': ' + obj[key] + ';';
});
element.style.cssText += style;
}
};
/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (immutable) */ __webpack_exports__["a"] = detectSupportsPassive;
function detectSupportsPassive() {
var supportsPassive = false;
try {
var opts = Object.defineProperty({}, 'passive', {
get: function get() {
supportsPassive = true;
}
});
window.addEventListener('testPassive', null, opts);
window.removeEventListener('testPassive', null, opts);
} catch (e) {}
return supportsPassive;
}
/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isFunction; });
/* unused harmony export isNumber */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isString; });
/* unused harmony export isDate */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isObject; });
/* unused harmony export isEmptyObject */
/* unused harmony export isNode */
/* unused harmony export isVideo */
/* unused harmony export isHTML5 */
/* unused harmony export isIFrame */
/* unused harmony export isYoutube */
/* unused harmony export isVimeo */
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var isFunction = function isFunction(unknown) {
return typeof unknown === 'function';
};
var isNumber = function isNumber(unknown) {
return typeof unknown === "number";
};
var isString = function isString(unknown) {
return typeof unknown === 'string' || !!unknown && (typeof unknown === 'undefined' ? 'undefined' : _typeof(unknown)) === 'object' && Object.prototype.toString.call(unknown) === '[object String]';
};
var isDate = function isDate(unknown) {
return (Object.prototype.toString.call(unknown) === '[object Date]' || unknown instanceof Date) && !isNaN(unknown.valueOf());
};
var isObject = function isObject(unknown) {
return (typeof unknown === 'function' || (typeof unknown === 'undefined' ? 'undefined' : _typeof(unknown)) === 'object' && !!unknown) && !Array.isArray(unknown);
};
var isEmptyObject = function isEmptyObject(unknown) {
for (var name in unknown) {
if (unknown.hasOwnProperty(name)) {
return false;
}
}
return true;
};
var isNode = function isNode(unknown) {
return !!(unknown && unknown.nodeType === HTMLElement | SVGElement);
};
var isVideo = function isVideo(unknown) {
return isYoutube(unknown) || isVimeo(unknown) || isHTML5(unknown);
};
var isHTML5 = function isHTML5(unknown) {
return isNode(unknown) && unknown.tagName === 'VIDEO';
};
var isIFrame = function isIFrame(unknown) {
return isNode(unknown) && unknown.tagName === 'IFRAME';
};
var isYoutube = function isYoutube(unknown) {
return isIFrame(unknown) && !!unknown.src.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/);
};
var isVimeo = function isVimeo(unknown) {
return isIFrame(unknown) && !!unknown.src.match(/vimeo\.com\/video\/.*/);
};
/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var EventEmitter = function () {
function EventEmitter() {
var events = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
_classCallCheck(this, EventEmitter);
this.events = new Map(events);
}
_createClass(EventEmitter, [{
key: "on",
value: function on(name, cb) {
var _this = this;
this.events.set(name, [].concat(_toConsumableArray(this.events.has(name) ? this.events.get(name) : []), [cb]));
return function () {
return _this.events.set(name, _this.events.get(name).filter(function (fn) {
return fn !== cb;
}));
};
}
}, {
key: "emit",
value: function emit(name) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return this.events.has(name) && this.events.get(name).map(function (fn) {
return fn.apply(undefined, args);
});
}
}]);
return EventEmitter;
}();
/* harmony default export */ __webpack_exports__["a"] = (EventEmitter);
/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Coordinate = function () {
function Coordinate() {
var x = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var y = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
_classCallCheck(this, Coordinate);
this._x = x;
this._y = y;
}
_createClass(Coordinate, [{
key: 'add',
value: function add(coord) {
return new Coordinate(this._x + coord._x, this._y + coord._y);
}
}, {
key: 'sub',
value: function sub(coord) {
return new Coordinate(this._x - coord._x, this._y - coord._y);
}
}, {
key: 'distance',
value: function distance(coord) {
var deltaX = this._x - coord._x;
var deltaY = this._y - coord._y;
return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));
}
}, {
key: 'max',
value: function max(coord) {
var x = Math.max(this._x, coord._x);
var y = Math.max(this._y, coord._y);
return new Coordinate(x, y);
}
}, {
key: 'equals',
value: function equals(coord) {
if (this == coord) {
return true;
}
if (!coord || coord == null) {
return false;
}
return this._x == coord._x && this._y == coord._y;
}
}, {
key: 'inside',
value: function inside(northwest, southeast) {
if (this._x >= northwest._x && this._x <= southeast._x && this._y >= northwest._y && this._y <= southeast._y) {
return true;
}
return false;
}
}, {
key: 'constrain',
value: function constrain(min, max) {
if (min._x > max._x || min._y > max._y) {
return this;
}
var x = this._x,
y = this._y;
if (min._x !== null) {
x = Math.max(x, min._x);
}
if (max._x !== null) {
x = Math.min(x, max._x);
}
if (min._y !== null) {
y = Math.max(y, min._y);
}
if (max._y !== null) {
y = Math.min(y, max._y);
}
return new Coordinate(x, y);
}
}, {
key: 'reposition',
value: function reposition(element) {
element.style['top'] = this._y + 'px';
element.style['left'] = this._x + 'px';
}
}, {
key: 'toString',
value: function toString() {
return '(' + this._x + ',' + this._y + ')';
}
}, {
key: 'x',
get: function get() {
return this._x;
},
set: function set() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this._x = value;
return this;
}
}, {
key: 'y',
get: function get() {
return this._y;
},
set: function set() {
var value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
this._y = value;
return this;
}
}]);
return Coordinate;
}();
/* harmony default export */ __webpack_exports__["a"] = (Coordinate);
/***/ }),
/* 5 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_index__ = __webpack_require__(6);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_css__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_type__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__utils_eventEmitter__ = __webpack_require__(3);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__components_autoplay__ = __webpack_require__(7);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__components_breakpoint__ = __webpack_require__(9);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__components_infinite__ = __webpack_require__(10);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__components_loop__ = __webpack_require__(11);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__components_navigation__ = __webpack_require__(13);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__components_pagination__ = __webpack_require__(15);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__components_swipe__ = __webpack_require__(18);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__components_transitioner__ = __webpack_require__(19);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__defaultOptions__ = __webpack_require__(22);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__templates__ = __webpack_require__(23);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__templates_item__ = __webpack_require__(24);
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var bulmaCarousel = function (_EventEmitter) {
_inherits(bulmaCarousel, _EventEmitter);
function bulmaCarousel(selector) {
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
_classCallCheck(this, bulmaCarousel);
var _this = _possibleConstructorReturn(this, (bulmaCarousel.__proto__ || Object.getPrototypeOf(bulmaCarousel)).call(this));
_this.element = Object(__WEBPACK_IMPORTED_MODULE_2__utils_type__["c" /* isString */])(selector) ? document.querySelector(selector) : selector;
// An invalid selector or non-DOM node has been provided.
if (!_this.element) {
throw new Error('An invalid selector or non-DOM node has been provided.');
}
_this._clickEvents = ['click', 'touch'];
// Use Element dataset values to override options
var elementConfig = _this.element.dataset ? Object.keys(_this.element.dataset).filter(function (key) {
return Object.keys(__WEBPACK_IMPORTED_MODULE_12__defaultOptions__["a" /* default */]).includes(key);
}).reduce(function (obj, key) {
return _extends({}, obj, _defineProperty({}, key, _this.element.dataset[key]));
}, {}) : {};
// Set default options - dataset attributes are master
_this.options = _extends({}, __WEBPACK_IMPORTED_MODULE_12__defaultOptions__["a" /* default */], options, elementConfig);
_this._id = Object(__WEBPACK_IMPORTED_MODULE_0__utils_index__["a" /* uuid */])('slider');
_this.onShow = _this.onShow.bind(_this);
// Initiate plugin
_this._init();
return _this;
}
/**
* Initiate all DOM element containing datePicker class
* @method
* @return {Array} Array of all datePicker instances
*/
_createClass(bulmaCarousel, [{
key: '_init',
/****************************************************
* *
* PRIVATE FUNCTIONS *
* *
****************************************************/
/**
* Initiate plugin instance
* @method _init
* @return {Slider} Current plugin instance
*/
value: function _init() {
this._items = Array.from(this.element.children);
// Load plugins
this._breakpoint = new __WEBPACK_IMPORTED_MODULE_5__components_breakpoint__["a" /* default */](this);
this._autoplay = new __WEBPACK_IMPORTED_MODULE_4__components_autoplay__["a" /* default */](this);
this._navigation = new __WEBPACK_IMPORTED_MODULE_8__components_navigation__["a" /* default */](this);
this._pagination = new __WEBPACK_IMPORTED_MODULE_9__components_pagination__["a" /* default */](this);
this._infinite = new __WEBPACK_IMPORTED_MODULE_6__components_infinite__["a" /* default */](this);
this._loop = new __WEBPACK_IMPORTED_MODULE_7__components_loop__["a" /* default */](this);
this._swipe = new __WEBPACK_IMPORTED_MODULE_10__components_swipe__["a" /* default */](this);
this._build();
if (Object(__WEBPACK_IMPORTED_MODULE_2__utils_type__["a" /* isFunction */])(this.options.onReady)) {
this.options.onReady(this);
}
return this;
}
/**
* Build Slider HTML component and append it to the DOM
* @method _build
*/
}, {
key: '_build',
value: function _build() {
var _this2 = this;
// Generate HTML Fragment of template
this.node = document.createRange().createContextualFragment(Object(__WEBPACK_IMPORTED_MODULE_13__templates__["a" /* default */])(this.id));
// Save pointers to template parts
this._ui = {
wrapper: this.node.firstChild,
container: this.node.querySelector('.slider-container')
// Add slider to DOM
};this.element.appendChild(this.node);
this._ui.wrapper.classList.add('is-loading');
this._ui.container.style.opacity = 0;
this._transitioner = new __WEBPACK_IMPORTED_MODULE_11__components_transitioner__["a" /* default */](this);
// Wrap all items by slide element
this._slides = this._items.map(function (item, index) {
return _this2._createSlide(item, index);
});
this.reset();
this._bindEvents();
this._ui.container.style.opacity = 1;
this._ui.wrapper.classList.remove('is-loading');
}
/**
* Bind all events
* @method _bindEvents
* @return {void}
*/
}, {
key: '_bindEvents',
value: function _bindEvents() {
this.on('show', this.onShow);
}
}, {
key: '_unbindEvents',
value: function _unbindEvents() {
this.off('show', this.onShow);
}
}, {
key: '_createSlide',
value: function _createSlide(item, index) {
var slide = document.createRange().createContextualFragment(Object(__WEBPACK_IMPORTED_MODULE_14__templates_item__["a" /* default */])()).firstChild;
slide.dataset.sliderIndex = index;
slide.appendChild(item);
return slide;
}
/**
* Calculate slider dimensions
*/
}, {
key: '_setDimensions',
value: function _setDimensions() {
var _this3 = this;
if (!this.options.vertical) {
if (this.options.centerMode) {
this._ui.wrapper.style.padding = '0px ' + this.options.centerPadding;
}
} else {
this._ui.wrapper.style.height = Object(__WEBPACK_IMPORTED_MODULE_1__utils_css__["c" /* outerHeight */])(this._slides[0]) * this.slidesToShow;
if (this.options.centerMode) {
this._ui.wrapper.style.padding = this.options.centerPadding + ' 0px';
}
}
this._wrapperWidth = Object(__WEBPACK_IMPORTED_MODULE_1__utils_css__["e" /* width */])(this._ui.wrapper);
this._wrapperHeight = Object(__WEBPACK_IMPORTED_MODULE_1__utils_css__["c" /* outerHeight */])(this._ui.wrapper);
if (!this.options.vertical) {
this._slideWidth = Math.ceil(this._wrapperWidth / this.slidesToShow);
this._containerWidth = Math.ceil(this._slideWidth * this._slides.length);
this._ui.container.style.width = this._containerWidth + 'px';
} else {
this._slideWidth = Math.ceil(this._wrapperWidth);
this._containerHeight = Math.ceil(Object(__WEBPACK_IMPORTED_MODULE_1__utils_css__["c" /* outerHeight */])(this._slides[0]) * this._slides.length);
this._ui.container.style.height = this._containerHeight + 'px';
}
this._slides.forEach(function (slide) {
slide.style.width = _this3._slideWidth + 'px';
});
}
}, {
key: '_setHeight',
value: function _setHeight() {
if (this.options.effect !== 'translate') {
this._ui.container.style.height = Object(__WEBPACK_IMPORTED_MODULE_1__utils_css__["c" /* outerHeight */])(this._slides[this.state.index]) + 'px';
}
}
// Update slides classes
}, {
key: '_setClasses',
value: function _setClasses() {
var _this4 = this;
this._slides.forEach(function (slide) {
Object(__WEBPACK_IMPORTED_MODULE_1__utils_css__["d" /* removeClasses */])(slide, 'is-active is-current is-slide-previous is-slide-next');
if (Math.abs((_this4.state.index - 1) % _this4.state.length) === parseInt(slide.dataset.sliderIndex, 10)) {
slide.classList.add('is-slide-previous');
}
if (Math.abs(_this4.state.index % _this4.state.length) === parseInt(slide.dataset.sliderIndex, 10)) {
slide.classList.add('is-current');
}
if (Math.abs((_this4.state.index + 1) % _this4.state.length) === parseInt(slide.dataset.sliderIndex, 10)) {
slide.classList.add('is-slide-next');
}
});
}
/****************************************************
* *
* GETTERS and SETTERS *
* *
****************************************************/
/**
* Get id of current datePicker
*/
}, {
key: 'onShow',
/****************************************************
* *
* EVENTS FUNCTIONS *
* *
****************************************************/
value: function onShow(e) {
this._navigation.refresh();
this._pagination.refresh();
this._setClasses();
}
/****************************************************
* *
* PUBLIC FUNCTIONS *
* *
****************************************************/
}, {
key: 'next',
value: function next() {
if (!this.options.loop && !this.options.infinite && this.state.index + this.slidesToScroll > this.state.length - this.slidesToShow && !this.options.centerMode) {
this.state.next = this.state.index;
} else {
this.state.next = this.state.index + this.slidesToScroll;
}
this.show();
}
}, {
key: 'previous',
value: function previous() {
if (!this.options.loop && !this.options.infinite && this.state.index === 0) {
this.state.next = this.state.index;
} else {
this.state.next = this.state.index - this.slidesToScroll;
}
this.show();
}
}, {
key: 'start',
value: function start() {
this._autoplay.start();
}
}, {
key: 'pause',
value: function pause() {
this._autoplay.pause();
}
}, {
key: 'stop',
value: function stop() {
this._autoplay.stop();
}
}, {
key: 'show',
value: function show(index) {
var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
// If all slides are already visible then return
if (!this.state.length || this.state.length <= this.slidesToShow) {
return;
}
if (typeof index === 'Number') {
this.state.next = index;
}
if (this.options.loop) {
this._loop.apply();
}
if (this.options.infinite) {
this._infinite.apply();
}
// If new slide is already the current one then return
if (this.state.index === this.state.next) {
return;
}
this.emit('before:show', this.state);
this._transitioner.apply(force, this._setHeight.bind(this));
this.emit('after:show', this.state);
this.emit('show', this);
}
}, {
key: 'reset',
value: function reset() {
var _this5 = this;
this.state = {
length: this._items.length,
index: Math.abs(this.options.initialSlide),
next: Math.abs(this.options.initialSlide),
prev: undefined
};
// Fix options
if (this.options.loop && this.options.infinite) {
this.options.loop = false;
}
if (this.options.slidesToScroll > this.options.slidesToShow) {
this.options.slidesToScroll = this.slidesToShow;
}
this._breakpoint.init();
if (this.state.index >= this.state.length && this.state.index !== 0) {
this.state.index = this.state.index - this.slidesToScroll;
}
if (this.state.length <= this.slidesToShow) {
this.state.index = 0;
}
this._ui.wrapper.appendChild(this._navigation.init().render());
this._ui.wrapper.appendChild(this._pagination.init().render());
if (this.options.navigationSwipe) {
this._swipe.bindEvents();
} else {
this._swipe._bindEvents();
}
this._breakpoint.apply();
// Move all created slides into slider
this._slides.forEach(function (slide) {
return _this5._ui.container.appendChild(slide);
});
this._transitioner.init().apply(true, this._setHeight.bind(this));
if (this.options.autoplay) {
this._autoplay.init().start();
}
}
/**
* Destroy Slider
* @method destroy
*/
}, {
key: 'destroy',
value: function destroy() {
var _this6 = this;
this._unbindEvents();
this._items.forEach(function (item) {
_this6.element.appendChild(item);
});
this.node.remove();
}
}, {
key: 'id',
get: function get() {
return this._id;
}
}, {
key: 'index',
set: function set(index) {
this._index = index;
},
get: function get() {
return this._index;
}
}, {
key: 'length',
set: function set(length) {
this._length = length;
},
get: function get() {
return this._length;
}
}, {
key: 'slides',
get: function get() {
return this._slides;
},
set: function set(slides) {
this._slides = slides;
}
}, {
key: 'slidesToScroll',
get: function get() {
return this.options.effect === 'translate' ? this._breakpoint.getSlidesToScroll() : 1;
}
}, {
key: 'slidesToShow',
get: function get() {
return this.options.effect === 'translate' ? this._breakpoint.getSlidesToShow() : 1;
}
}, {
key: 'direction',
get: function get() {
return this.element.dir.toLowerCase() === 'rtl' || this.element.style.direction === 'rtl' ? 'rtl' : 'ltr';
}
}, {
key: 'wrapper',
get: function get() {
return this._ui.wrapper;
}
}, {
key: 'wrapperWidth',
get: function get() {
return this._wrapperWidth || 0;
}
}, {
key: 'container',
get: function get() {
return this._ui.container;
}
}, {
key: 'containerWidth',
get: function get() {
return this._containerWidth || 0;
}
}, {
key: 'slideWidth',
get: function get() {
return this._slideWidth || 0;
}
}, {
key: 'transitioner',
get: function get() {
return this._transitioner;
}
}], [{
key: 'attach',
value: function attach() {
var _this7 = this;
var selector = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '.slider';
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var instances = new Array();
var elements = Object(__WEBPACK_IMPORTED_MODULE_2__utils_type__["c" /* isString */])(selector) ? document.querySelectorAll(selector) : Array.isArray(selector) ? selector : [selector];
[].forEach.call(elements, function (element) {
if (typeof element[_this7.constructor.name] === 'undefined') {
var instance = new bulmaCarousel(element, options);
element[_this7.constructor.name] = instance;
instances.push(instance);
} else {
instances.push(element[_this7.constructor.name]);
}
});
return instances;
}
}]);
return bulmaCarousel;
}(__WEBPACK_IMPORTED_MODULE_3__utils_eventEmitter__["a" /* default */]);
/* harmony default export */ __webpack_exports__["default"] = (bulmaCarousel);
/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return uuid; });
/* unused harmony export isRtl */
/* unused harmony export defer */
/* unused harmony export getNodeIndex */
/* unused harmony export camelize */
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
var uuid = function uuid() {
var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
return prefix + ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, function (c) {
return (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16);
});
};
var isRtl = function isRtl() {
return document.documentElement.getAttribute('dir') === 'rtl';
};
var defer = function defer() {
this.promise = new Promise(function (resolve, reject) {
this.resolve = resolve;
this.reject = reject;
}.bind(this));
this.then = this.promise.then.bind(this.promise);
this.catch = this.promise.catch.bind(this.promise);
};
var getNodeIndex = function getNodeIndex(node) {
return [].concat(_toConsumableArray(node.parentNode.children)).indexOf(node);
};
var camelize = function camelize(str) {
return str.replace(/-(\w)/g, toUpper);
};
/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_eventEmitter__ = __webpack_require__(3);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_device__ = __webpack_require__(8);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var onVisibilityChange = Symbol('onVisibilityChange');
var onMouseEnter = Symbol('onMouseEnter');
var onMouseLeave = Symbol('onMouseLeave');
var defaultOptions = {
autoplay: false,
autoplaySpeed: 3000
};
var Autoplay = function (_EventEmitter) {
_inherits(Autoplay, _EventEmitter);
function Autoplay(slider) {
_classCallCheck(this, Autoplay);
var _this = _possibleConstructorReturn(this, (Autoplay.__proto__ || Object.getPrototypeOf(Autoplay)).call(this));
_this.slider = slider;
_this.onVisibilityChange = _this.onVisibilityChange.bind(_this);
_this.onMouseEnter = _this.onMouseEnter.bind(_this);
_this.onMouseLeave = _this.onMouseLeave.bind(_this);
return _this;
}
_createClass(Autoplay, [{
key: 'init',
value: function init() {
this._bindEvents();
return this;
}
}, {
key: '_bindEvents',
value: function _bindEvents() {
document.addEventListener('visibilitychange', this.onVisibilityChange);
if (this.slider.options.pauseOnHover) {
this.slider.container.addEventListener(__WEBPACK_IMPORTED_MODULE_1__utils_device__["a" /* pointerEnter */], this.onMouseEnter);
this.slider.container.addEventListener(__WEBPACK_IMPORTED_MODULE_1__utils_device__["b" /* pointerLeave */], this.onMouseLeave);
}
}
}, {
key: '_unbindEvents',
value: function _unbindEvents() {
document.removeEventListener('visibilitychange', this.onVisibilityChange);
this.slider.container.removeEventListener(__WEBPACK_IMPORTED_MODULE_1__utils_device__["a" /* pointerEnter */], this.onMouseEnter);
this.slider.container.removeEventListener(__WEBPACK_IMPORTED_MODULE_1__utils_device__["b" /* pointerLeave */], this.onMouseLeave);
}
}, {
key: 'start',
value: function start() {
var _this2 = this;
this.stop();
if (this.slider.options.autoplay) {
this.emit('start', this);
this._interval = setInterval(function () {
if (!(_this2._hovering && _this2.slider.options.pauseOnHover)) {
if (!_this2.slider.options.centerMode && _this2.slider.state.next >= _this2.slider.state.length - _this2.slider.slidesToShow && !_this2.slider.options.loop && !_this2.slider.options.infinite) {
_this2.stop();
} else {
_this2.slider.next();
}
}
}, this.slider.options.autoplaySpeed);
}
}
}, {
key: 'stop',
value: function stop() {
this._interval = clearInterval(this._interval);
this.emit('stop', this);
}
}, {
key: 'pause',
value: function pause() {
var _this3 = this;
var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
if (this.paused) {
return;
}
if (this.timer) {
this.stop();
}
this.paused = true;
if (speed === 0) {
this.paused = false;
this.start();
} else {
this.slider.on('transition:end', function () {
if (!_this3) {
return;
}
_this3.paused = false;
if (!_this3.run) {
_this3.stop();
} else {
_this3.start();
}
});
}
}
}, {
key: 'onVisibilityChange',
value: function onVisibilityChange(e) {
if (document.hidden) {
this.stop();
} else {
this.start();
}
}
}, {
key: 'onMouseEnter',
value: function onMouseEnter(e) {
this._hovering = true;
if (this.slider.options.pauseOnHover) {
this.pause();
}
}
}, {
key: 'onMouseLeave',
value: function onMouseLeave(e) {
this._hovering = false;
if (this.slider.options.pauseOnHover) {
this.pause();
}
}
}]);
return Autoplay;
}(__WEBPACK_IMPORTED_MODULE_0__utils_eventEmitter__["a" /* default */]);
/* harmony default export */ __webpack_exports__["a"] = (Autoplay);
/***/ }),
/* 8 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* unused harmony export isIE */
/* unused harmony export isIETouch */
/* unused harmony export isAndroid */
/* unused harmony export isiPad */
/* unused harmony export isiPod */
/* unused harmony export isiPhone */
/* unused harmony export isSafari */
/* unused harmony export isUiWebView */
/* unused harmony export supportsTouchEvents */
/* unused harmony export supportsPointerEvents */
/* unused harmony export supportsTouch */
/* unused harmony export pointerDown */
/* unused harmony export pointerMove */
/* unused harmony export pointerUp */
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return pointerEnter; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return pointerLeave; });
var isIE = window.navigator.pointerEnabled || window.navigator.msPointerEnabled;
var isIETouch = window.navigator.msPointerEnabled && window.navigator.msMaxTouchPoints > 1 || window.navigator.pointerEnabled && window.navigator.maxTouchPoints > 1;
var isAndroid = navigator.userAgent.match(/(Android);?[\s\/]+([\d.]+)?/);
var isiPad = navigator.userAgent.match(/(iPad).*OS\s([\d_]+)/);
var isiPod = navigator.userAgent.match(/(iPod)(.*OS\s([\d_]+))?/);
var isiPhone = !navigator.userAgent.match(/(iPad).*OS\s([\d_]+)/) && navigator.userAgent.match(/(iPhone\sOS)\s([\d_]+)/);
var isSafari = navigator.userAgent.toLowerCase().indexOf('safari') >= 0 && navigator.userAgent.toLowerCase().indexOf('chrome') < 0 && navigator.userAgent.toLowerCase().indexOf('android') < 0;
var isUiWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(navigator.userAgent);
var supportsTouchEvents = !!('ontouchstart' in window);
var supportsPointerEvents = !!('PointerEvent' in window);
var supportsTouch = supportsTouchEvents || window.DocumentTouch && document instanceof DocumentTouch || navigator.maxTouchPoints; // IE >=11
var pointerDown = !supportsTouch ? 'mousedown' : 'mousedown ' + (supportsTouchEvents ? 'touchstart' : 'pointerdown');
var pointerMove = !supportsTouch ? 'mousemove' : 'mousemove ' + (supportsTouchEvents ? 'touchmove' : 'pointermove');
var pointerUp = !supportsTouch ? 'mouseup' : 'mouseup ' + (supportsTouchEvents ? 'touchend' : 'pointerup');
var pointerEnter = supportsTouch && supportsPointerEvents ? 'pointerenter' : 'mouseenter';
var pointerLeave = supportsTouch && supportsPointerEvents ? 'pointerleave' : 'mouseleave';
/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var onResize = Symbol('onResize');
var Breakpoints = function () {
function Breakpoints(slider) {
_classCallCheck(this, Breakpoints);
this.slider = slider;
this.options = slider.options;
this[onResize] = this[onResize].bind(this);
this._bindEvents();
}
_createClass(Breakpoints, [{
key: 'init',
value: function init() {
this._defaultBreakpoint = {
slidesToShow: this.options.slidesToShow,
slidesToScroll: this.options.slidesToScroll
};
this.options.breakpoints.sort(function (a, b) {
return parseInt(a.changePoint, 10) > parseInt(b.changePoint, 10);
});
this._currentBreakpoint = this._getActiveBreakpoint();
return this;
}
}, {
key: 'destroy',
value: function destroy() {
this._unbindEvents();
}
}, {
key: '_bindEvents',
value: function _bindEvents() {
window.addEventListener('resize', this[onResize]);
window.addEventListener('orientationchange', this[onResize]);
}
}, {
key: '_unbindEvents',
value: function _unbindEvents() {
window.removeEventListener('resize', this[onResize]);
window.removeEventListener('orientationchange', this[onResize]);
}
}, {
key: '_getActiveBreakpoint',
value: function _getActiveBreakpoint() {
//Get breakpoint for window width
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = this.options.breakpoints[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var point = _step.value;
if (point.changePoint >= window.innerWidth) {
return point;
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
return this._defaultBreakpoint;
}
}, {
key: 'getSlidesToShow',
value: function getSlidesToShow() {
return this._currentBreakpoint ? this._currentBreakpoint.slidesToShow : this._defaultBreakpoint.slidesToShow;
}
}, {
key: 'getSlidesToScroll',
value: function getSlidesToScroll() {
return this._currentBreakpoint ? this._currentBreakpoint.slidesToScroll : this._defaultBreakpoint.slidesToScroll;
}
}, {
key: 'apply',
value: function apply() {
if (this.slider.state.index >= this.slider.state.length && this.slider.state.index !== 0) {
this.slider.state.index = this.slider.state.index - this._currentBreakpoint.slidesToScroll;
}
if (this.slider.state.length <= this._currentBreakpoint.slidesToShow) {
this.slider.state.index = 0;
}
if (this.options.loop) {
this.slider._loop.init().apply();
}
if (this.options.infinite) {
this.slider._infinite.init().apply();
}
this.slider._setDimensions();
this.slider._transitioner.init().apply(true, this.slider._setHeight.bind(this.slider));
this.slider._setClasses();
this.slider._navigation.refresh();
this.slider._pagination.refresh();
}
}, {
key: onResize,
value: function value(e) {
var newBreakPoint = this._getActiveBreakpoint();
if (newBreakPoint.slidesToShow !== this._currentBreakpoint.slidesToShow) {
this._currentBreakpoint = newBreakPoint;
this.apply();
}
}
}]);
return Breakpoints;
}();
/* harmony default export */ __webpack_exports__["a"] = (Breakpoints);
/***/ }),
/* 10 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Infinite = function () {
function Infinite(slider) {
_classCallCheck(this, Infinite);
this.slider = slider;
}
_createClass(Infinite, [{
key: 'init',
value: function init() {
if (this.slider.options.infinite && this.slider.options.effect === 'translate') {
if (this.slider.options.centerMode) {
this._infiniteCount = Math.ceil(this.slider.slidesToShow + this.slider.slidesToShow / 2);
} else {
this._infiniteCount = this.slider.slidesToShow;
}
var frontClones = [];
var slideIndex = 0;
for (var i = this.slider.state.length; i > this.slider.state.length - 1 - this._infiniteCount; i -= 1) {
slideIndex = i - 1;
frontClones.unshift(this._cloneSlide(this.slider.slides[slideIndex], slideIndex - this.slider.state.length));
}
var backClones = [];
for (var _i = 0; _i < this._infiniteCount + this.slider.state.length; _i += 1) {
backClones.push(this._cloneSlide(this.slider.slides[_i % this.slider.state.length], _i + this.slider.state.length));
}
this.slider.slides = [].concat(frontClones, _toConsumableArray(this.slider.slides), backClones);
}
return this;
}
}, {
key: 'apply',
value: function apply() {}
}, {
key: 'onTransitionEnd',
value: function onTransitionEnd(e) {
if (this.slider.options.infinite) {
if (this.slider.state.next >= this.slider.state.length) {
this.slider.state.index = this.slider.state.next = this.slider.state.next - this.slider.state.length;
this.slider.transitioner.apply(true);
} else if (this.slider.state.next < 0) {
this.slider.state.index = this.slider.state.next = this.slider.state.length + this.slider.state.next;
this.slider.transitioner.apply(true);
}
}
}
}, {
key: '_cloneSlide',
value: function _cloneSlide(slide, index) {
var newSlide = slide.cloneNode(true);
newSlide.dataset.sliderIndex = index;
newSlide.dataset.cloned = true;
var ids = newSlide.querySelectorAll('[id]') || [];
ids.forEach(function (id) {
id.setAttribute('id', '');
});
return newSlide;
}
}]);
return Infinite;
}();
/* harmony default export */ __webpack_exports__["a"] = (Infinite);
/***/ }),
/* 11 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__utils_dom__ = __webpack_require__(12);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Loop = function () {
function Loop(slider) {
_classCallCheck(this, Loop);
this.slider = slider;
}
_createClass(Loop, [{
key: "init",
value: function init() {
return this;
}
}, {
key: "apply",
value: function apply() {
if (this.slider.options.loop) {
if (this.slider.state.next > 0) {
if (this.slider.state.next < this.slider.state.length) {
if (this.slider.state.next > this.slider.state.length - this.slider.slidesToShow && Object(__WEBPACK_IMPORTED_MODULE_0__utils_dom__["a" /* isInViewport */])(this.slider._slides[this.slider.state.length - 1], this.slider.wrapper)) {
this.slider.state.next = 0;
} else {
this.slider.state.next = Math.min(Math.max(this.slider.state.next, 0), this.slider.state.length - this.slider.slidesToShow);
}
} else {
this.slider.state.next = 0;
}
} else {
if (this.slider.state.next <= 0 - this.slider.slidesToScroll) {
this.slider.state.next = this.slider.state.length - this.slider.slidesToShow;
} else {
this.slider.state.next = 0;
}
}
}
}
}]);
return Loop;
}();
/* harmony default export */ __webpack_exports__["a"] = (Loop);
/***/ }),
/* 12 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isInViewport; });
var isInViewport = function isInViewport(element, html) {
var rect = element.getBoundingClientRect();
html = html || document.documentElement;
return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || html.clientHeight) && rect.right <= (window.innerWidth || html.clientWidth);
};
/***/ }),
/* 13 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__templates_navigation__ = __webpack_require__(14);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__utils_detect_supportsPassive__ = __webpack_require__(1);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Navigation = function () {
function Navigation(slider) {
_classCallCheck(this, Navigation);
this.slider = slider;
this._clickEvents = ['click', 'touch'];
this._supportsPassive = Object(__WEBPACK_IMPORTED_MODULE_1__utils_detect_supportsPassive__["a" /* default */])();
this.onPreviousClick = this.onPreviousClick.bind(this);
this.onNextClick = this.onNextClick.bind(this);
this.onKeyUp = this.onKeyUp.bind(this);
}
_createClass(Navigation, [{
key: 'init',
value: function init() {
this.node = document.createRange().createContextualFragment(Object(__WEBPACK_IMPORTED_MODULE_0__templates_navigation__["a" /* default */])(this.slider.options.icons));
this._ui = {
previous: this.node.querySelector('.slider-navigation-previous'),
next: this.node.querySelector('.slider-navigation-next')
};
this._unbindEvents();
this._bindEvents();
this.refresh();
return this;
}
}, {
key: 'destroy',
value: function destroy() {
this._unbindEvents();
}
}, {
key: '_bindEvents',
value: function _bindEvents() {
var _this = this;
this.slider.wrapper.addEventListener('keyup', this.onKeyUp);
this._clickEvents.forEach(function (clickEvent) {
_this._ui.previous.addEventListener(clickEvent, _this.onPreviousClick);
_this._ui.next.addEventListener(clickEvent, _this.onNextClick);
});
}
}, {
key: '_unbindEvents',
value: function _unbindEvents() {
var _this2 = this;
this.slider.wrapper.removeEventListener('keyup', this.onKeyUp);
this._clickEvents.forEach(function (clickEvent) {
_this2._ui.previous.removeEventListener(clickEvent, _this2.onPreviousClick);
_this2._ui.next.removeEventListener(clickEvent, _this2.onNextClick);
});
}
}, {
key: 'onNextClick',
value: function onNextClick(e) {
if (!this._supportsPassive) {
e.preventDefault();
}
if (this.slider.options.navigation) {
this.slider.next();
}
}
}, {
key: 'onPreviousClick',
value: function onPreviousClick(e) {
if (!this._supportsPassive) {
e.preventDefault();
}
if (this.slider.options.navigation) {
this.slider.previous();
}
}
}, {
key: 'onKeyUp',
value: function onKeyUp(e) {
if (this.slider.options.keyNavigation) {
if (e.key === 'ArrowRight' || e.key === 'Right') {
this.slider.next();
} else if (e.key === 'ArrowLeft' || e.key === 'Left') {
this.slider.previous();
}
}
}
}, {
key: 'refresh',
value: function refresh() {
// let centerOffset = Math.floor(this.options.slidesToShow / 2);
if (!this.slider.options.loop && !this.slider.options.infinite) {
if (this.slider.options.navigation && this.slider.state.length > this.slider.slidesToShow) {
this._ui.previous.classList.remove('is-hidden');
this._ui.next.classList.remove('is-hidden');
if (this.slider.state.next === 0) {
this._ui.previous.classList.add('is-hidden');
this._ui.next.classList.remove('is-hidden');
} else if (this.slider.state.next >= this.slider.state.length - this.slider.slidesToShow && !this.slider.options.centerMode) {
this._ui.previous.classList.remove('is-hidden');
this._ui.next.classList.add('is-hidden');
} else if (this.slider.state.next >= this.slider.state.length - 1 && this.slider.options.centerMode) {
this._ui.previous.classList.remove('is-hidden');
this._ui.next.classList.add('is-hidden');
}
} else {
this._ui.previous.classList.add('is-hidden');
this._ui.next.classList.add('is-hidden');
}
}
}
}, {
key: 'render',
value: function render() {
return this.node;
}
}]);
return Navigation;
}();
/* harmony default export */ __webpack_exports__["a"] = (Navigation);
/***/ }),
/* 14 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony default export */ __webpack_exports__["a"] = (function (icons) {
return "<div class=\"slider-navigation-previous\">" + icons.previous + "</div>\n<div class=\"slider-navigation-next\">" + icons.next + "</div>";
});
/***/ }),
/* 15 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__templates_pagination__ = __webpack_require__(16);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__templates_pagination_page__ = __webpack_require__(17);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_detect_supportsPassive__ = __webpack_require__(1);
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Pagination = function () {
function Pagination(slider) {
_classCallCheck(this, Pagination);
this.slider = slider;
this._clickEvents = ['click', 'touch'];
this._supportsPassive = Object(__WEBPACK_IMPORTED_MODULE_2__utils_detect_supportsPassive__["a" /* default */])();
this.onPageClick = this.onPageClick.bind(this);
this.onResize = this.onResize.bind(this);
}
_createClass(Pagination, [{
key: 'init',
value: function init() {
this._pages = [];
this.node = document.createRange().createContextualFragment(Object(__WEBPACK_IMPORTED_MODULE_0__templates_pagination__["a" /* default */])());
this._ui = {
container: this.node.firstChild
};
this._count = Math.ceil((this.slider.state.length - this.slider.slidesToShow) / this.slider.slidesToScroll);
this._draw();
this.refresh();
return this;
}
}, {
key: 'destroy',
value: function destroy() {
this._unbindEvents();
}
}, {
key: '_bindEvents',
value: function _bindEvents() {
var _this = this;
window.addEventListener('resize', this.onResize);
window.addEventListener('orientationchange', this.onResize);
this._clickEvents.forEach(function (clickEvent) {
_this._pages.forEach(function (page) {
return page.addEventListener(clickEvent, _this.onPageClick);
});
});
}
}, {
key: '_unbindEvents',
value: function _unbindEvents() {
var _this2 = this;
window.removeEventListener('resize', this.onResize);
window.removeEventListener('orientationchange', this.onResize);
this._clickEvents.forEach(function (clickEvent) {
_this2._pages.forEach(function (page) {
return page.removeEventListener(clickEvent, _this2.onPageClick);
});
});
}
}, {
key: '_draw',
value: function _draw() {
this._ui.container.innerHTML = '';
if (this.slider.options.pagination && this.slider.state.length > this.slider.slidesToShow) {
for (var i = 0; i <= this._count; i++) {
var newPageNode = document.createRange().createContextualFragment(Object(__WEBPACK_IMPORTED_MODULE_1__templates_pagination_page__["a" /* default */])()).firstChild;
newPageNode.dataset.index = i * this.slider.slidesToScroll;
this._pages.push(newPageNode);
this._ui.container.appendChild(newPageNode);
}
gitextract_oysdhwag/ ├── .gitignore ├── CODE_OF_CONDUCT.md ├── LICENSE ├── README.md ├── cog.yaml ├── docs/ │ ├── index.html │ └── static/ │ ├── css/ │ │ ├── bulma.css.map.txt │ │ └── index.css │ └── js/ │ ├── bulma-carousel.js │ ├── bulma-slider.js │ └── index.js ├── inference.py ├── inference_videoretalking.sh ├── models/ │ ├── DNet.py │ ├── ENet.py │ ├── LNet.py │ ├── __init__.py │ ├── base_blocks.py │ ├── ffc.py │ └── transformer.py ├── predict.py ├── quick_demo.ipynb ├── requirements.txt ├── third_part/ │ ├── GFPGAN/ │ │ ├── LICENSE │ │ ├── gfpgan/ │ │ │ ├── __init__.py │ │ │ ├── archs/ │ │ │ │ ├── __init__.py │ │ │ │ ├── arcface_arch.py │ │ │ │ ├── gfpgan_bilinear_arch.py │ │ │ │ ├── gfpganv1_arch.py │ │ │ │ ├── gfpganv1_clean_arch.py │ │ │ │ ├── stylegan2_bilinear_arch.py │ │ │ │ └── stylegan2_clean_arch.py │ │ │ ├── data/ │ │ │ │ ├── __init__.py │ │ │ │ └── ffhq_degradation_dataset.py │ │ │ ├── models/ │ │ │ │ ├── __init__.py │ │ │ │ └── gfpgan_model.py │ │ │ ├── train.py │ │ │ ├── utils.py │ │ │ ├── version.py │ │ │ └── weights/ │ │ │ └── README.md │ │ └── options/ │ │ ├── train_gfpgan_v1.yml │ │ └── train_gfpgan_v1_simple.yml │ ├── GPEN/ │ │ ├── align_faces.py │ │ ├── face_detect/ │ │ │ ├── data/ │ │ │ │ ├── FDDB/ │ │ │ │ │ └── img_list.txt │ │ │ │ ├── __init__.py │ │ │ │ ├── config.py │ │ │ │ ├── data_augment.py │ │ │ │ └── wider_face.py │ │ │ ├── facemodels/ │ │ │ │ ├── __init__.py │ │ │ │ ├── net.py │ │ │ │ └── retinaface.py │ │ │ ├── layers/ │ │ │ │ ├── __init__.py │ │ │ │ ├── functions/ │ │ │ │ │ └── prior_box.py │ │ │ │ └── modules/ │ │ │ │ ├── __init__.py │ │ │ │ └── multibox_loss.py │ │ │ ├── retinaface_detection.py │ │ │ └── utils/ │ │ │ ├── __init__.py │ │ │ ├── box_utils.py │ │ │ ├── nms/ │ │ │ │ ├── __init__.py │ │ │ │ └── py_cpu_nms.py │ │ │ └── timer.py │ │ ├── face_model/ │ │ │ ├── face_gan.py │ │ │ ├── gpen_model.py │ │ │ └── op/ │ │ │ ├── __init__.py │ │ │ ├── fused_act.py │ │ │ ├── fused_bias_act.cpp │ │ │ ├── fused_bias_act_kernel.cu │ │ │ ├── upfirdn2d.cpp │ │ │ ├── upfirdn2d.py │ │ │ └── upfirdn2d_kernel.cu │ │ ├── face_morpher/ │ │ │ ├── .gitignore │ │ │ ├── README.rst │ │ │ ├── facemorpher/ │ │ │ │ ├── __init__.py │ │ │ │ ├── aligner.py │ │ │ │ ├── averager.py │ │ │ │ ├── blender.py │ │ │ │ ├── locator.py │ │ │ │ ├── morpher.py │ │ │ │ ├── plotter.py │ │ │ │ ├── videoer.py │ │ │ │ └── warper.py │ │ │ ├── requirements.txt │ │ │ ├── scripts/ │ │ │ │ ├── make_docs.sh │ │ │ │ └── publish_ghpages.sh │ │ │ ├── setup.cfg │ │ │ └── setup.py │ │ ├── face_parse/ │ │ │ ├── blocks.py │ │ │ ├── face_parsing.py │ │ │ ├── model.py │ │ │ ├── parse_model.py │ │ │ └── resnet.py │ │ └── gpen_face_enhancer.py │ ├── face3d/ │ │ ├── checkpoints/ │ │ │ └── model_name/ │ │ │ └── test_opt.txt │ │ ├── coeff_detector.py │ │ ├── data/ │ │ │ ├── __init__.py │ │ │ ├── base_dataset.py │ │ │ ├── flist_dataset.py │ │ │ ├── image_folder.py │ │ │ └── template_dataset.py │ │ ├── data_preparation.py │ │ ├── extract_kp_videos.py │ │ ├── face_recon_videos.py │ │ ├── models/ │ │ │ ├── __init__.py │ │ │ ├── arcface_torch/ │ │ │ │ ├── README.md │ │ │ │ ├── backbones/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── iresnet.py │ │ │ │ │ ├── iresnet2060.py │ │ │ │ │ └── mobilefacenet.py │ │ │ │ ├── configs/ │ │ │ │ │ ├── 3millions.py │ │ │ │ │ ├── 3millions_pfc.py │ │ │ │ │ ├── __init__.py │ │ │ │ │ ├── base.py │ │ │ │ │ ├── glint360k_mbf.py │ │ │ │ │ ├── glint360k_r100.py │ │ │ │ │ ├── glint360k_r18.py │ │ │ │ │ ├── glint360k_r34.py │ │ │ │ │ ├── glint360k_r50.py │ │ │ │ │ ├── ms1mv3_mbf.py │ │ │ │ │ ├── ms1mv3_r18.py │ │ │ │ │ ├── ms1mv3_r2060.py │ │ │ │ │ ├── ms1mv3_r34.py │ │ │ │ │ ├── ms1mv3_r50.py │ │ │ │ │ └── speed.py │ │ │ │ ├── dataset.py │ │ │ │ ├── docs/ │ │ │ │ │ ├── eval.md │ │ │ │ │ ├── install.md │ │ │ │ │ ├── modelzoo.md │ │ │ │ │ └── speed_benchmark.md │ │ │ │ ├── eval/ │ │ │ │ │ ├── __init__.py │ │ │ │ │ └── verification.py │ │ │ │ ├── eval_ijbc.py │ │ │ │ ├── inference.py │ │ │ │ ├── losses.py │ │ │ │ ├── onnx_helper.py │ │ │ │ ├── onnx_ijbc.py │ │ │ │ ├── partial_fc.py │ │ │ │ ├── requirement.txt │ │ │ │ ├── run.sh │ │ │ │ ├── torch2onnx.py │ │ │ │ ├── train.py │ │ │ │ └── utils/ │ │ │ │ ├── __init__.py │ │ │ │ ├── plot.py │ │ │ │ ├── utils_amp.py │ │ │ │ ├── utils_callbacks.py │ │ │ │ ├── utils_config.py │ │ │ │ ├── utils_logging.py │ │ │ │ └── utils_os.py │ │ │ ├── base_model.py │ │ │ ├── bfm.py │ │ │ ├── facerecon_model.py │ │ │ ├── losses.py │ │ │ ├── networks.py │ │ │ └── template_model.py │ │ ├── options/ │ │ │ ├── __init__.py │ │ │ ├── base_options.py │ │ │ ├── inference_options.py │ │ │ ├── test_options.py │ │ │ └── train_options.py │ │ └── util/ │ │ ├── BBRegressorParam_r.mat │ │ ├── __init__.py │ │ ├── detect_lm68.py │ │ ├── generate_list.py │ │ ├── html.py │ │ ├── load_mats.py │ │ ├── nvdiffrast.py │ │ ├── preprocess.py │ │ ├── skin_mask.py │ │ ├── test_mean_face.txt │ │ ├── util.py │ │ └── visualizer.py │ ├── face_detection/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── api.py │ │ ├── detection/ │ │ │ ├── __init__.py │ │ │ ├── core.py │ │ │ └── sfd/ │ │ │ ├── __init__.py │ │ │ ├── bbox.py │ │ │ ├── detect.py │ │ │ ├── net_s3fd.py │ │ │ └── sfd_detector.py │ │ ├── models.py │ │ └── utils.py │ └── ganimation_replicate/ │ ├── LICENSE │ ├── checkpoints/ │ │ ├── opt.txt │ │ └── run_script.sh │ ├── ckpts/ │ │ ├── ganimation/ │ │ │ ├── 220419_183211/ │ │ │ │ ├── opt.txt │ │ │ │ └── run_script.sh │ │ │ └── 220419_183229/ │ │ │ ├── opt.txt │ │ │ └── run_script.sh │ │ ├── opt.txt │ │ └── run_script.sh │ ├── data/ │ │ ├── __init__.py │ │ ├── base_dataset.py │ │ ├── celeba.py │ │ └── data_loader.py │ ├── main.py │ ├── model/ │ │ ├── __init__.py │ │ ├── base_model.py │ │ ├── ganimation.py │ │ ├── model_utils.py │ │ └── stargan.py │ ├── options.py │ ├── solvers.py │ └── visualizer.py ├── utils/ │ ├── alignment_stit.py │ ├── audio.py │ ├── ffhq_preprocess.py │ ├── flow_util.py │ ├── hparams.py │ └── inference_utils.py └── webUI.py
SYMBOL INDEX (1277 symbols across 125 files)
FILE: docs/static/js/bulma-carousel.js
function __webpack_require__ (line 16) | function __webpack_require__(moduleId) {
function detectSupportsPassive (line 189) | function detectSupportsPassive() {
function defineProperties (line 273) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _toConsumableArray (line 275) | function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i ...
function _classCallCheck (line 277) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function EventEmitter (line 280) | function EventEmitter() {
function defineProperties (line 324) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 326) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Coordinate (line 329) | function Coordinate() {
function defineProperties (line 473) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _defineProperty (line 475) | function _defineProperty(obj, key, value) { if (key in obj) { Object.def...
function _classCallCheck (line 477) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 479) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 481) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function bulmaCarousel (line 504) | function bulmaCarousel(selector) {
function _toConsumableArray (line 983) | function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i ...
function defineProperties (line 1019) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1021) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 1023) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 1025) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function Autoplay (line 1042) | function Autoplay(slider) {
function defineProperties (line 1209) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1211) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Breakpoints (line 1216) | function Breakpoints(slider) {
function defineProperties (line 1347) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _toConsumableArray (line 1349) | function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i ...
function _classCallCheck (line 1351) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Infinite (line 1354) | function Infinite(slider) {
function defineProperties (line 1427) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1429) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Loop (line 1434) | function Loop(slider) {
function defineProperties (line 1494) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1496) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Navigation (line 1502) | function Navigation(slider) {
function defineProperties (line 1644) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1646) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Pagination (line 1653) | function Pagination(slider) {
function defineProperties (line 1804) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1806) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Swipe (line 1812) | function Swipe(slider) {
function defineProperties (line 1946) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 1948) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Transitioner (line 1954) | function Transitioner(slider) {
function defineProperties (line 2047) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 2049) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Fade (line 2054) | function Fade(transitioner, slider) {
function defineProperties (line 2182) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 2184) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function Translate (line 2190) | function Translate(transitioner, slider) {
FILE: docs/static/js/bulma-slider.js
function __webpack_require__ (line 16) | function __webpack_require__(moduleId) {
function defineProperties (line 86) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 90) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function _possibleConstructorReturn (line 92) | function _possibleConstructorReturn(self, call) { if (!self) { throw new...
function _inherits (line 94) | function _inherits(subClass, superClass) { if (typeof superClass !== "fu...
function bulmaSlider (line 105) | function bulmaSlider(selector) {
function defineProperties (line 281) | function defineProperties(target, props) { for (var i = 0; i < props.len...
function _classCallCheck (line 283) | function _classCallCheck(instance, Constructor) { if (!(instance instanc...
function EventEmitter (line 286) | function EventEmitter() {
FILE: inference.py
function main (line 31) | def main():
function datagen (line 279) | def datagen(frames, mels, full_frames, frames_pil, cox):
FILE: models/DNet.py
class DNet (line 13) | class DNet(nn.Module):
method __init__ (line 14) | def __init__(self):
method forward (line 20) | def forward(self, input_image, driving_source, stage=None):
class MappingNet (line 30) | class MappingNet(nn.Module):
method __init__ (line 31) | def __init__(self, coeff_nc=73, descriptor_nc=256, layer=3):
method forward (line 48) | def forward(self, input_3dmm):
class WarpingNet (line 56) | class WarpingNet(nn.Module):
method __init__ (line 57) | def __init__(
method forward (line 83) | def forward(self, input_image, descriptor):
class EditingNet (line 93) | class EditingNet(nn.Module):
method __init__ (line 94) | def __init__(
method forward (line 114) | def forward(self, input_image, warp_image, descriptor):
FILE: models/ENet.py
class ENet (line 8) | class ENet(nn.Module):
method __init__ (line 9) | def __init__(
method forward (line 82) | def forward(self, audio_sequences, face_sequences, gt_sequences):
FILE: models/LNet.py
class Visual_Encoder (line 10) | class Visual_Encoder(nn.Module):
method __init__ (line 11) | def __init__(self, image_nc, ngf, img_f, layers, norm_layer=nn.BatchNo...
method forward (line 30) | def forward(self, maskGT, ref):
class Decoder (line 46) | class Decoder(nn.Module):
method __init__ (line 47) | def __init__(self, image_nc, feature_nc, ngf, img_f, layers, num_block...
method forward (line 67) | def forward(self, x, z):
class LNet (line 80) | class LNet(nn.Module):
method __init__ (line 81) | def __init__(
method forward (line 122) | def forward(self, audio_sequences, face_sequences):
FILE: models/__init__.py
function _load (line 7) | def _load(checkpoint_path):
function load_checkpoint (line 12) | def load_checkpoint(path, model):
function load_network (line 25) | def load_network(args):
function load_DNet (line 32) | def load_DNet(args):
FILE: models/base_blocks.py
class Conv2d (line 12) | class Conv2d(nn.Module):
method __init__ (line 13) | def __init__(self, cin, cout, kernel_size, stride, padding, residual=F...
method forward (line 22) | def forward(self, x):
class ResBlock (line 29) | class ResBlock(nn.Module):
method __init__ (line 30) | def __init__(self, in_channels, out_channels, mode='down'):
method forward (line 40) | def forward(self, x):
class LayerNorm2d (line 52) | class LayerNorm2d(nn.Module):
method __init__ (line 53) | def __init__(self, n_out, affine=True):
method forward (line 62) | def forward(self, x):
function spectral_norm (line 72) | def spectral_norm(module, use_spect=True):
class FirstBlock2d (line 79) | class FirstBlock2d(nn.Module):
method __init__ (line 80) | def __init__(self, input_nc, output_nc, norm_layer=nn.BatchNorm2d, non...
method forward (line 90) | def forward(self, x):
class DownBlock2d (line 95) | class DownBlock2d(nn.Module):
method __init__ (line 96) | def __init__(self, input_nc, output_nc, norm_layer=nn.BatchNorm2d, non...
method forward (line 107) | def forward(self, x):
class UpBlock2d (line 112) | class UpBlock2d(nn.Module):
method __init__ (line 113) | def __init__(self, input_nc, output_nc, norm_layer=nn.BatchNorm2d, non...
method forward (line 122) | def forward(self, x):
class ADAIN (line 127) | class ADAIN(nn.Module):
method __init__ (line 128) | def __init__(self, norm_nc, feature_nc):
method forward (line 143) | def forward(self, x, feature):
class FineADAINResBlock2d (line 160) | class FineADAINResBlock2d(nn.Module):
method __init__ (line 164) | def __init__(self, input_nc, feature_nc, norm_layer=nn.BatchNorm2d, no...
method forward (line 173) | def forward(self, x, z):
class FineADAINResBlocks (line 180) | class FineADAINResBlocks(nn.Module):
method __init__ (line 181) | def __init__(self, num_block, input_nc, feature_nc, norm_layer=nn.Batc...
method forward (line 188) | def forward(self, x, z):
class ADAINEncoderBlock (line 195) | class ADAINEncoderBlock(nn.Module):
method __init__ (line 196) | def __init__(self, input_nc, output_nc, feature_nc, nonlinearity=nn.Le...
method forward (line 209) | def forward(self, x, z):
class ADAINDecoderBlock (line 215) | class ADAINDecoderBlock(nn.Module):
method __init__ (line 216) | def __init__(self, input_nc, output_nc, hidden_nc, feature_nc, use_tra...
method forward (line 243) | def forward(self, x, z):
method shortcut (line 250) | def shortcut(self, x, z):
class FineEncoder (line 255) | class FineEncoder(nn.Module):
method __init__ (line 257) | def __init__(self, image_nc, ngf, img_f, layers, norm_layer=nn.BatchNo...
method forward (line 268) | def forward(self, x):
class FineDecoder (line 278) | class FineDecoder(nn.Module):
method __init__ (line 280) | def __init__(self, image_nc, feature_nc, ngf, img_f, layers, num_block...
method forward (line 295) | def forward(self, x, z):
class ADAINEncoder (line 308) | class ADAINEncoder(nn.Module):
method __init__ (line 309) | def __init__(self, image_nc, pose_nc, ngf, img_f, layers, nonlinearity...
method forward (line 320) | def forward(self, x, z):
class ADAINDecoder (line 330) | class ADAINDecoder(nn.Module):
method __init__ (line 332) | def __init__(self, pose_nc, ngf, img_f, encoder_layers, decoder_layers...
method forward (line 348) | def forward(self, x, z):
class ADAINHourglass (line 357) | class ADAINHourglass(nn.Module):
method __init__ (line 358) | def __init__(self, image_nc, pose_nc, ngf, img_f, encoder_layers, deco...
method forward (line 364) | def forward(self, x, z):
class FineADAINLama (line 368) | class FineADAINLama(nn.Module):
method __init__ (line 369) | def __init__(self, input_nc, feature_nc, norm_layer=nn.BatchNorm2d, no...
method forward (line 382) | def forward(self, x, z):
class FFCResnetBlock (line 389) | class FFCResnetBlock(nn.Module):
method __init__ (line 390) | def __init__(self, dim, feature_dim, padding_type='reflect', norm_laye...
method forward (line 397) | def forward(self, x, z):
class FFCADAINResBlocks (line 414) | class FFCADAINResBlocks(nn.Module):
method __init__ (line 415) | def __init__(self, num_block, input_nc, feature_nc, norm_layer=nn.Batc...
method forward (line 422) | def forward(self, x, z):
class Jump (line 429) | class Jump(nn.Module):
method __init__ (line 430) | def __init__(self, input_nc, norm_layer=nn.BatchNorm2d, nonlinearity=n...
method forward (line 439) | def forward(self, x):
class FinalBlock2d (line 444) | class FinalBlock2d(nn.Module):
method __init__ (line 445) | def __init__(self, input_nc, output_nc, use_spect=False, tanh_or_sigmo...
method forward (line 455) | def forward(self, x):
class ModulatedConv2d (line 460) | class ModulatedConv2d(nn.Module):
method __init__ (line 461) | def __init__(self,
method forward (line 487) | def forward(self, x, style):
method __repr__ (line 510) | def __repr__(self):
class StyleConv (line 515) | class StyleConv(nn.Module):
method __init__ (line 516) | def __init__(self, in_channels, out_channels, kernel_size, num_style_f...
method forward (line 524) | def forward(self, x, style, noise=None):
class ToRGB (line 539) | class ToRGB(nn.Module):
method __init__ (line 540) | def __init__(self, in_channels, num_style_feat, upsample=True):
method forward (line 547) | def forward(self, x, style, skip=None):
FILE: models/ffc.py
class SELayer (line 11) | class SELayer(nn.Module):
method __init__ (line 12) | def __init__(self, channel, reduction=16):
method forward (line 22) | def forward(self, x):
class FFCSE_block (line 30) | class FFCSE_block(nn.Module):
method __init__ (line 31) | def __init__(self, channels, ratio_g):
method forward (line 47) | def forward(self, x):
class FourierUnit (line 62) | class FourierUnit(nn.Module):
method __init__ (line 64) | def __init__(self, in_channels, out_channels, groups=1, spatial_scale_...
method forward (line 89) | def forward(self, x):
class SpectralTransform (line 129) | class SpectralTransform(nn.Module):
method __init__ (line 130) | def __init__(self, in_channels, out_channels, stride=1, groups=1, enab...
method forward (line 154) | def forward(self, x):
class FFC (line 176) | class FFC(nn.Module):
method __init__ (line 178) | def __init__(self, in_channels, out_channels, kernel_size,
method forward (line 213) | def forward(self, x):
FILE: models/transformer.py
class GELU (line 11) | class GELU(nn.Module):
method __init__ (line 12) | def __init__(self):
method forward (line 14) | def forward(self, x):
function pair (line 19) | def pair(t):
class PreNorm (line 24) | class PreNorm(nn.Module):
method __init__ (line 25) | def __init__(self, dim, fn):
method forward (line 29) | def forward(self, x, **kwargs):
class DualPreNorm (line 32) | class DualPreNorm(nn.Module):
method __init__ (line 33) | def __init__(self, dim, fn):
method forward (line 38) | def forward(self, x, y, **kwargs):
class FeedForward (line 41) | class FeedForward(nn.Module):
method __init__ (line 42) | def __init__(self, dim, hidden_dim, dropout = 0.):
method forward (line 51) | def forward(self, x):
class Attention (line 54) | class Attention(nn.Module):
method __init__ (line 55) | def __init__(self, dim, heads = 8, dim_head = 64, dropout = 0.):
method forward (line 75) | def forward(self, x, y):
class Transformer (line 89) | class Transformer(nn.Module):
method __init__ (line 90) | def __init__(self, dim, depth, heads, dim_head, mlp_dim, dropout = 0.):
method forward (line 100) | def forward(self, x, y): # x is the cropped, y is the foreign reference
class RETURNX (line 114) | class RETURNX(nn.Module):
method __init__ (line 115) | def __init__(self,):
method forward (line 118) | def forward(self, x, y): # x is the cropped, y is the foreign reference
FILE: predict.py
class Predictor (line 49) | class Predictor(BasePredictor):
method setup (line 50) | def setup(self) -> None:
method predict (line 77) | def predict(
function datagen (line 440) | def datagen(frames, mels, full_frames, args, cox):
FILE: third_part/GFPGAN/gfpgan/archs/arcface_arch.py
function conv3x3 (line 5) | def conv3x3(inplanes, outplanes, stride=1):
class BasicBlock (line 16) | class BasicBlock(nn.Module):
method __init__ (line 27) | def __init__(self, inplanes, planes, stride=1, downsample=None):
method forward (line 37) | def forward(self, x):
class IRBlock (line 56) | class IRBlock(nn.Module):
method __init__ (line 68) | def __init__(self, inplanes, planes, stride=1, downsample=None, use_se...
method forward (line 82) | def forward(self, x):
class Bottleneck (line 103) | class Bottleneck(nn.Module):
method __init__ (line 114) | def __init__(self, inplanes, planes, stride=1, downsample=None):
method forward (line 126) | def forward(self, x):
class SEBlock (line 149) | class SEBlock(nn.Module):
method __init__ (line 157) | def __init__(self, channel, reduction=16):
method forward (line 164) | def forward(self, x):
class ResNetArcFace (line 172) | class ResNetArcFace(nn.Module):
method __init__ (line 183) | def __init__(self, block, layers, use_se=True):
method _make_layer (line 214) | def _make_layer(self, block, planes, num_blocks, stride=1):
method forward (line 229) | def forward(self, x):
FILE: third_part/GFPGAN/gfpgan/archs/gfpgan_bilinear_arch.py
class StyleGAN2GeneratorBilinearSFT (line 12) | class StyleGAN2GeneratorBilinearSFT(StyleGAN2GeneratorBilinear):
method __init__ (line 28) | def __init__(self,
method forward (line 45) | def forward(self,
class GFPGANBilinear (line 132) | class GFPGANBilinear(nn.Module):
method __init__ (line 156) | def __init__(
method forward (line 264) | def forward(self, x, return_latents=False, return_rgb=True, randomize_...
FILE: third_part/GFPGAN/gfpgan/archs/gfpganv1_arch.py
class StyleGAN2GeneratorSFT (line 12) | class StyleGAN2GeneratorSFT(StyleGAN2Generator):
method __init__ (line 27) | def __init__(self,
method forward (line 46) | def forward(self,
class ConvUpLayer (line 132) | class ConvUpLayer(nn.Module):
method __init__ (line 146) | def __init__(self,
method forward (line 180) | def forward(self, x):
class ResUpBlock (line 197) | class ResUpBlock(nn.Module):
method __init__ (line 205) | def __init__(self, in_channels, out_channels):
method forward (line 212) | def forward(self, x):
class GFPGANv1 (line 221) | class GFPGANv1(nn.Module):
method __init__ (line 243) | def __init__(
method forward (line 353) | def forward(self, x, return_latents=False, return_rgb=True, randomize_...
class FacialComponentDiscriminator (line 405) | class FacialComponentDiscriminator(nn.Module):
method __init__ (line 409) | def __init__(self):
method forward (line 419) | def forward(self, x, return_feats=False):
FILE: third_part/GFPGAN/gfpgan/archs/gfpganv1_clean_arch.py
class StyleGAN2GeneratorCSFT (line 11) | class StyleGAN2GeneratorCSFT(StyleGAN2GeneratorClean):
method __init__ (line 25) | def __init__(self, out_size, num_style_feat=512, num_mlp=8, channel_mu...
method forward (line 34) | def forward(self,
class ResBlock (line 120) | class ResBlock(nn.Module):
method __init__ (line 129) | def __init__(self, in_channels, out_channels, mode='down'):
method forward (line 140) | def forward(self, x):
class GFPGANv1Clean (line 153) | class GFPGANv1Clean(nn.Module):
method __init__ (line 174) | def __init__(
method forward (line 277) | def forward(self, x, return_latents=False, return_rgb=True, randomize_...
FILE: third_part/GFPGAN/gfpgan/archs/stylegan2_bilinear_arch.py
class NormStyleCode (line 10) | class NormStyleCode(nn.Module):
method forward (line 12) | def forward(self, x):
class EqualLinear (line 24) | class EqualLinear(nn.Module):
method __init__ (line 38) | def __init__(self, in_channels, out_channels, bias=True, bias_init_val...
method forward (line 55) | def forward(self, x):
method __repr__ (line 67) | def __repr__(self):
class ModulatedConv2d (line 72) | class ModulatedConv2d(nn.Module):
method __init__ (line 90) | def __init__(self,
method forward (line 120) | def forward(self, x, style):
method __repr__ (line 155) | def __repr__(self):
class StyleConv (line 162) | class StyleConv(nn.Module):
method __init__ (line 175) | def __init__(self,
method forward (line 195) | def forward(self, x, style, noise=None):
class ToRGB (line 208) | class ToRGB(nn.Module):
method __init__ (line 217) | def __init__(self, in_channels, num_style_feat, upsample=True, interpo...
method forward (line 235) | def forward(self, x, style, skip=None):
class ConstantInput (line 256) | class ConstantInput(nn.Module):
method __init__ (line 264) | def __init__(self, num_channel, size):
method forward (line 268) | def forward(self, batch):
class StyleGAN2GeneratorBilinear (line 274) | class StyleGAN2GeneratorBilinear(nn.Module):
method __init__ (line 287) | def __init__(self,
method make_noise (line 369) | def make_noise(self):
method get_latent (line 380) | def get_latent(self, x):
method mean_latent (line 383) | def mean_latent(self, num_latent):
method forward (line 388) | def forward(self,
class ScaledLeakyReLU (line 465) | class ScaledLeakyReLU(nn.Module):
method __init__ (line 472) | def __init__(self, negative_slope=0.2):
method forward (line 476) | def forward(self, x):
class EqualConv2d (line 481) | class EqualConv2d(nn.Module):
method __init__ (line 496) | def __init__(self, in_channels, out_channels, kernel_size, stride=1, p...
method forward (line 511) | def forward(self, x):
method __repr__ (line 522) | def __repr__(self):
class ConvLayer (line 530) | class ConvLayer(nn.Sequential):
method __init__ (line 543) | def __init__(self,
class ResBlock (line 579) | class ResBlock(nn.Module):
method __init__ (line 587) | def __init__(self, in_channels, out_channels, interpolation_mode='bili...
method forward (line 608) | def forward(self, x):
FILE: third_part/GFPGAN/gfpgan/archs/stylegan2_clean_arch.py
class NormStyleCode (line 10) | class NormStyleCode(nn.Module):
method forward (line 12) | def forward(self, x):
class ModulatedConv2d (line 24) | class ModulatedConv2d(nn.Module):
method __init__ (line 39) | def __init__(self,
method forward (line 65) | def forward(self, x, style):
method __repr__ (line 101) | def __repr__(self):
class StyleConv (line 106) | class StyleConv(nn.Module):
method __init__ (line 118) | def __init__(self, in_channels, out_channels, kernel_size, num_style_f...
method forward (line 126) | def forward(self, x, style, noise=None):
class ToRGB (line 141) | class ToRGB(nn.Module):
method __init__ (line 150) | def __init__(self, in_channels, num_style_feat, upsample=True):
method forward (line 157) | def forward(self, x, style, skip=None):
class ConstantInput (line 177) | class ConstantInput(nn.Module):
method __init__ (line 185) | def __init__(self, num_channel, size):
method forward (line 189) | def forward(self, batch):
class StyleGAN2GeneratorClean (line 195) | class StyleGAN2GeneratorClean(nn.Module):
method __init__ (line 206) | def __init__(self, out_size, num_style_feat=512, num_mlp=8, channel_mu...
method make_noise (line 279) | def make_noise(self):
method get_latent (line 290) | def get_latent(self, x):
method mean_latent (line 293) | def mean_latent(self, num_latent):
method forward (line 298) | def forward(self,
FILE: third_part/GFPGAN/gfpgan/data/ffhq_degradation_dataset.py
class FFHQDegradationDataset (line 17) | class FFHQDegradationDataset(data.Dataset):
method __init__ (line 32) | def __init__(self, opt):
method color_jitter (line 91) | def color_jitter(img, shift):
method color_jitter_pt (line 99) | def color_jitter_pt(img, brightness, contrast, saturation, hue):
method get_component_coordinates (line 120) | def get_component_coordinates(self, index, status):
method __getitem__ (line 145) | def __getitem__(self, index):
method __len__ (line 229) | def __len__(self):
FILE: third_part/GFPGAN/gfpgan/models/gfpgan_model.py
class GFPGANModel (line 19) | class GFPGANModel(BaseModel):
method __init__ (line 22) | def __init__(self, opt):
method init_training_settings (line 42) | def init_training_settings(self):
method setup_optimizers (line 151) | def setup_optimizers(self):
method feed_data (line 202) | def feed_data(self, data):
method construct_img_pyramid (line 226) | def construct_img_pyramid(self):
method get_roi_regions (line 235) | def get_roi_regions(self, eye_out_size=80, mouth_out_size=120):
method _gram_mat (line 267) | def _gram_mat(self, x):
method gray_resize_for_identity (line 282) | def gray_resize_for_identity(self, out, size=128):
method optimize_parameters (line 288) | def optimize_parameters(self, current_iter):
method test (line 474) | def test(self):
method dist_validation (line 486) | def dist_validation(self, dataloader, current_iter, tb_logger, save_img):
method nondist_validation (line 490) | def nondist_validation(self, dataloader, current_iter, tb_logger, save...
method _log_validation_metric_values (line 555) | def _log_validation_metric_values(self, current_iter, dataset_name, tb...
method save (line 570) | def save(self, epoch, current_iter):
FILE: third_part/GFPGAN/gfpgan/utils.py
class GFPGANer (line 16) | class GFPGANer():
method __init__ (line 32) | def __init__(self, model_path, upscale=2, arch='clean', channel_multip...
method enhance (line 97) | def enhance(self, img, has_aligned=False, only_center_face=False, past...
FILE: third_part/GPEN/align_faces.py
function _umeyama (line 25) | def _umeyama(src, dst, estimate_scale=True, scale=1.0):
class FaceWarpException (line 96) | class FaceWarpException(Exception):
method __str__ (line 97) | def __str__(self):
function get_reference_facial_points (line 102) | def get_reference_facial_points(output_size=None,
function get_affine_transform_matrix (line 187) | def get_affine_transform_matrix(src_pts, dst_pts):
function warp_and_crop_face (line 210) | def warp_and_crop_face(src_img,
FILE: third_part/GPEN/face_detect/data/data_augment.py
function _crop (line 7) | def _crop(image, boxes, labels, landm, img_dim):
function _distort (line 80) | def _distort(image):
function _expand (line 141) | def _expand(image, boxes, fill, p):
function _mirror (line 167) | def _mirror(image, boxes, landms):
function _pad_to_square (line 189) | def _pad_to_square(image, rgb_mean, pad_image_flag):
function _resize_subtract_mean (line 200) | def _resize_subtract_mean(image, insize, rgb_mean):
class preproc (line 209) | class preproc(object):
method __init__ (line 211) | def __init__(self, img_dim, rgb_means):
method __call__ (line 215) | def __call__(self, image, targets):
FILE: third_part/GPEN/face_detect/data/wider_face.py
class WiderFaceDetection (line 9) | class WiderFaceDetection(data.Dataset):
method __init__ (line 10) | def __init__(self, txt_path, preproc=None):
method __len__ (line 37) | def __len__(self):
method __getitem__ (line 40) | def __getitem__(self, index):
function detection_collate (line 79) | def detection_collate(batch):
FILE: third_part/GPEN/face_detect/facemodels/net.py
function conv_bn (line 9) | def conv_bn(inp, oup, stride = 1, leaky = 0):
function conv_bn_no_relu (line 16) | def conv_bn_no_relu(inp, oup, stride):
function conv_bn1X1 (line 22) | def conv_bn1X1(inp, oup, stride, leaky=0):
function conv_dw (line 29) | def conv_dw(inp, oup, stride, leaky=0.1):
class SSH (line 40) | class SSH(nn.Module):
method __init__ (line 41) | def __init__(self, in_channel, out_channel):
method forward (line 55) | def forward(self, input):
class FPN (line 68) | class FPN(nn.Module):
method __init__ (line 69) | def __init__(self,in_channels_list,out_channels):
method forward (line 81) | def forward(self, input):
class MobileNetV1 (line 102) | class MobileNetV1(nn.Module):
method __init__ (line 103) | def __init__(self):
method forward (line 128) | def forward(self, x):
FILE: third_part/GPEN/face_detect/facemodels/retinaface.py
class ClassHead (line 14) | class ClassHead(nn.Module):
method __init__ (line 15) | def __init__(self,inchannels=512,num_anchors=3):
method forward (line 20) | def forward(self,x):
class BboxHead (line 26) | class BboxHead(nn.Module):
method __init__ (line 27) | def __init__(self,inchannels=512,num_anchors=3):
method forward (line 31) | def forward(self,x):
class LandmarkHead (line 37) | class LandmarkHead(nn.Module):
method __init__ (line 38) | def __init__(self,inchannels=512,num_anchors=3):
method forward (line 42) | def forward(self,x):
class RetinaFace (line 48) | class RetinaFace(nn.Module):
method __init__ (line 49) | def __init__(self, cfg = None, phase = 'train'):
method _make_class_head (line 89) | def _make_class_head(self,fpn_num=3,inchannels=64,anchor_num=2):
method _make_bbox_head (line 95) | def _make_bbox_head(self,fpn_num=3,inchannels=64,anchor_num=2):
method _make_landmark_head (line 101) | def _make_landmark_head(self,fpn_num=3,inchannels=64,anchor_num=2):
method forward (line 107) | def forward(self,inputs):
FILE: third_part/GPEN/face_detect/layers/functions/prior_box.py
class PriorBox (line 7) | class PriorBox(object):
method __init__ (line 8) | def __init__(self, cfg, image_size=None, phase='train'):
method forward (line 17) | def forward(self):
FILE: third_part/GPEN/face_detect/layers/modules/multibox_loss.py
class MultiBoxLoss (line 9) | class MultiBoxLoss(nn.Module):
method __init__ (line 32) | def __init__(self, num_classes, overlap_thresh, prior_for_matching, bk...
method forward (line 44) | def forward(self, predictions, priors, targets):
FILE: third_part/GPEN/face_detect/retinaface_detection.py
class RetinaFaceDetection (line 19) | class RetinaFaceDetection(object):
method __init__ (line 20) | def __init__(self, base_dir, device='cuda', network='RetinaFace-R50'):
method check_keys (line 32) | def check_keys(self, pretrained_state_dict):
method remove_prefix (line 41) | def remove_prefix(self, state_dict, prefix):
method load_model (line 46) | def load_model(self, load_to_cpu=False):
method detect (line 60) | def detect(self, img_raw, resize=1, confidence_threshold=0.9, nms_thre...
method detect_tensor (line 133) | def detect_tensor(self, img, resize=1, confidence_threshold=0.9, nms_t...
FILE: third_part/GPEN/face_detect/utils/box_utils.py
function point_form (line 5) | def point_form(boxes):
function center_size (line 17) | def center_size(boxes):
function intersect (line 29) | def intersect(box_a, box_b):
function jaccard (line 50) | def jaccard(box_a, box_b):
function matrix_iou (line 71) | def matrix_iou(a, b):
function matrix_iof (line 84) | def matrix_iof(a, b):
function match (line 96) | def match(threshold, truths, priors, variances, labels, landms, loc_t, c...
function encode (line 156) | def encode(matched, priors, variances):
function encode_landm (line 179) | def encode_landm(matched, priors, variances):
function decode (line 209) | def decode(loc, priors, variances):
function decode_landm (line 229) | def decode_landm(pre, priors, variances):
function log_sum_exp (line 250) | def log_sum_exp(x):
function nms (line 264) | def nms(boxes, scores, overlap=0.5, top_k=200):
FILE: third_part/GPEN/face_detect/utils/nms/py_cpu_nms.py
function py_cpu_nms (line 10) | def py_cpu_nms(dets, thresh):
FILE: third_part/GPEN/face_detect/utils/timer.py
class Timer (line 11) | class Timer(object):
method __init__ (line 13) | def __init__(self):
method tic (line 20) | def tic(self):
method toc (line 25) | def toc(self, average=True):
method clear (line 35) | def clear(self):
FILE: third_part/GPEN/face_model/face_gan.py
class FaceGAN (line 15) | class FaceGAN(object):
method __init__ (line 16) | def __init__(self, base_dir='./', size=512, model=None, channel_multip...
method load_model (line 24) | def load_model(self, channel_multiplier=2, narrow=1):
method process (line 31) | def process(self, img):
method img2tensor (line 42) | def img2tensor(self, img):
method tensor2img (line 49) | def tensor2img(self, img_t, pmax=255.0, imtype=np.uint8):
FILE: third_part/GPEN/face_model/gpen_model.py
class PixelNorm (line 18) | class PixelNorm(nn.Module):
method __init__ (line 19) | def __init__(self):
method forward (line 22) | def forward(self, input):
function make_kernel (line 26) | def make_kernel(k):
class Upsample (line 37) | class Upsample(nn.Module):
method __init__ (line 38) | def __init__(self, kernel, factor=2, device='cpu'):
method forward (line 53) | def forward(self, input):
class Downsample (line 59) | class Downsample(nn.Module):
method __init__ (line 60) | def __init__(self, kernel, factor=2, device='cpu'):
method forward (line 75) | def forward(self, input):
class Blur (line 81) | class Blur(nn.Module):
method __init__ (line 82) | def __init__(self, kernel, pad, upsample_factor=1, device='cpu'):
method forward (line 95) | def forward(self, input):
class EqualConv2d (line 101) | class EqualConv2d(nn.Module):
method __init__ (line 102) | def __init__(
method forward (line 121) | def forward(self, input):
method __repr__ (line 132) | def __repr__(self):
class EqualLinear (line 139) | class EqualLinear(nn.Module):
method __init__ (line 140) | def __init__(
method forward (line 159) | def forward(self, input):
method __repr__ (line 169) | def __repr__(self):
class ScaledLeakyReLU (line 175) | class ScaledLeakyReLU(nn.Module):
method __init__ (line 176) | def __init__(self, negative_slope=0.2):
method forward (line 181) | def forward(self, input):
class ModulatedConv2d (line 187) | class ModulatedConv2d(nn.Module):
method __init__ (line 188) | def __init__(
method __repr__ (line 237) | def __repr__(self):
method forward (line 243) | def forward(self, input, style):
class NoiseInjection (line 287) | class NoiseInjection(nn.Module):
method __init__ (line 288) | def __init__(self, isconcat=True):
method forward (line 294) | def forward(self, image, noise=None):
class ConstantInput (line 305) | class ConstantInput(nn.Module):
method __init__ (line 306) | def __init__(self, channel, size=4):
method forward (line 311) | def forward(self, input):
class StyledConv (line 318) | class StyledConv(nn.Module):
method __init__ (line 319) | def __init__(
method forward (line 350) | def forward(self, input, style, noise=None):
class ToRGB (line 359) | class ToRGB(nn.Module):
method __init__ (line 360) | def __init__(self, in_channel, style_dim, upsample=True, blur_kernel=[...
method forward (line 369) | def forward(self, input, style, skip=None):
class Generator (line 380) | class Generator(nn.Module):
method __init__ (line 381) | def __init__(
method make_noise (line 465) | def make_noise(self):
method mean_latent (line 476) | def mean_latent(self, n_latent):
method get_latent (line 484) | def get_latent(self, input):
method forward (line 487) | def forward(
class ConvLayer (line 557) | class ConvLayer(nn.Sequential):
method __init__ (line 558) | def __init__(
class ResBlock (line 607) | class ResBlock(nn.Module):
method __init__ (line 608) | def __init__(self, in_channel, out_channel, blur_kernel=[1, 3, 3, 1], ...
method forward (line 618) | def forward(self, input):
class FullGenerator (line 627) | class FullGenerator(nn.Module):
method __init__ (line 628) | def __init__(
method forward (line 669) | def forward(self,
class Discriminator (line 689) | class Discriminator(nn.Module):
method __init__ (line 690) | def __init__(self, size, channel_multiplier=2, blur_kernel=[1, 3, 3, 1...
method forward (line 729) | def forward(self, input):
FILE: third_part/GPEN/face_model/op/fused_act.py
class FusedLeakyReLUFunctionBackward (line 25) | class FusedLeakyReLUFunctionBackward(Function):
method forward (line 27) | def forward(ctx, grad_output, out, negative_slope, scale):
method backward (line 48) | def backward(ctx, gradgrad_input, gradgrad_bias):
class FusedLeakyReLUFunction (line 57) | class FusedLeakyReLUFunction(Function):
method forward (line 59) | def forward(ctx, input, bias, negative_slope, scale):
method backward (line 69) | def backward(ctx, grad_output):
class FusedLeakyReLU (line 79) | class FusedLeakyReLU(nn.Module):
method __init__ (line 80) | def __init__(self, channel, negative_slope=0.2, scale=2 ** 0.5, device...
method forward (line 88) | def forward(self, input):
function fused_leaky_relu (line 92) | def fused_leaky_relu(input, bias, negative_slope=0.2, scale=2 ** 0.5, de...
FILE: third_part/GPEN/face_model/op/fused_bias_act.cpp
function fused_bias_act (line 11) | torch::Tensor fused_bias_act(const torch::Tensor& input, const torch::Te...
function PYBIND11_MODULE (line 19) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
FILE: third_part/GPEN/face_model/op/upfirdn2d.cpp
function upfirdn2d (line 12) | torch::Tensor upfirdn2d(const torch::Tensor& input, const torch::Tensor&...
function PYBIND11_MODULE (line 21) | PYBIND11_MODULE(TORCH_EXTENSION_NAME, m) {
FILE: third_part/GPEN/face_model/op/upfirdn2d.py
class UpFirDn2dBackward (line 23) | class UpFirDn2dBackward(Function):
method forward (line 25) | def forward(
method backward (line 67) | def backward(ctx, gradgrad_input):
class UpFirDn2d (line 92) | class UpFirDn2d(Function):
method forward (line 94) | def forward(ctx, input, kernel, up, down, pad):
method backward (line 131) | def backward(ctx, grad_output):
function upfirdn2d (line 149) | def upfirdn2d(input, kernel, up=1, down=1, pad=(0, 0), device='cpu'):
function upfirdn2d_native (line 160) | def upfirdn2d_native(
FILE: third_part/GPEN/face_morpher/facemorpher/aligner.py
function positive_cap (line 7) | def positive_cap(num):
function roi_coordinates (line 18) | def roi_coordinates(rect, size, scale):
function scaling_factor (line 39) | def scaling_factor(rect, size):
function resize_image (line 60) | def resize_image(img, scale):
function resize_align (line 72) | def resize_align(img, points, size):
FILE: third_part/GPEN/face_morpher/facemorpher/averager.py
function list_imgpaths (line 38) | def list_imgpaths(imgfolder):
function sharpen (line 45) | def sharpen(img):
function load_image_points (line 49) | def load_image_points(path, size):
function averager (line 59) | def averager(imgpaths, dest_filename=None, width=500, height=600, backgr...
function main (line 112) | def main():
FILE: third_part/GPEN/face_morpher/facemorpher/blender.py
function mask_from_points (line 5) | def mask_from_points(size, points):
function overlay_image (line 21) | def overlay_image(foreground_image, mask, background_image):
function apply_mask (line 32) | def apply_mask(img, mask):
function weighted_average (line 45) | def weighted_average(img1, img2, percent=0.5):
function alpha_feathering (line 53) | def alpha_feathering(src_img, dest_img, img_mask, blur_radius=15):
function poisson_blend (line 63) | def poisson_blend(img_source, dest_img, img_mask, offset=(0, 0)):
FILE: third_part/GPEN/face_morpher/facemorpher/locator.py
function boundary_points (line 19) | def boundary_points(points, width_percent=0.1, height_percent=0.1):
function face_points (line 33) | def face_points(img, add_boundary_points=True):
function face_points_dlib (line 36) | def face_points_dlib(img, add_boundary_points=True):
function face_points_stasm (line 68) | def face_points_stasm(img, add_boundary_points=True):
function average_points (line 91) | def average_points(point_set):
function weighted_average_points (line 99) | def weighted_average_points(start_points, end_points, percent=0.5):
FILE: third_part/GPEN/face_morpher/facemorpher/morpher.py
function verify_args (line 41) | def verify_args(args):
function load_image_points (line 54) | def load_image_points(path, size):
function load_valid_image_points (line 64) | def load_valid_image_points(imgpaths, size):
function list_imgpaths (line 71) | def list_imgpaths(images_folder=None, src_image=None, dest_image=None):
function morph (line 82) | def morph(src_img, src_points, dest_img, dest_points,
function morpher (line 125) | def morpher(imgpaths, width=500, height=600, num_frames=20, fps=10,
function main (line 141) | def main():
FILE: third_part/GPEN/face_morpher/facemorpher/plotter.py
function bgr2rgb (line 11) | def bgr2rgb(img):
function check_do_plot (line 17) | def check_do_plot(func):
function check_do_save (line 24) | def check_do_save(func):
class Plotter (line 31) | class Plotter(object):
method __init__ (line 32) | def __init__(self, plot=True, rows=0, cols=0, num_images=0, out_folder...
method set_filepath (line 48) | def set_filepath(self, folder):
method save (line 59) | def save(self, img, filename=None):
method plot_one (line 70) | def plot_one(self, img):
method show (line 78) | def show(self):
method plot_mesh (line 86) | def plot_mesh(self, points, tri, color='k'):
FILE: third_part/GPEN/face_morpher/facemorpher/videoer.py
function check_write_video (line 9) | def check_write_video(func):
class Video (line 18) | class Video(object):
method __init__ (line 19) | def __init__(self, filename, fps, w, h):
method write (line 29) | def write(self, img, num_times=1):
method end (line 34) | def end(self):
FILE: third_part/GPEN/face_morpher/facemorpher/warper.py
function bilinear_interpolate (line 4) | def bilinear_interpolate(img, coords):
function grid_coordinates (line 28) | def grid_coordinates(points):
function process_warp (line 41) | def process_warp(src_img, result_img, tri_affines, dst_points, delaunay):
function triangular_affine_matrices (line 60) | def triangular_affine_matrices(vertices, src_points, dest_points):
function warp_image (line 77) | def warp_image(src_img, src_points, dest_points, dest_shape, dtype=np.ui...
function test_local (line 93) | def test_local():
FILE: third_part/GPEN/face_parse/blocks.py
class NormLayer (line 8) | class NormLayer(nn.Module):
method __init__ (line 15) | def __init__(self, channels, normalize_shape=None, norm_type='bn', ref...
method forward (line 34) | def forward(self, x, ref=None):
class ReluLayer (line 41) | class ReluLayer(nn.Module):
method __init__ (line 52) | def __init__(self, channels, relu_type='relu'):
method forward (line 68) | def forward(self, x):
class ConvLayer (line 72) | class ConvLayer(nn.Module):
method __init__ (line 73) | def __init__(self, in_channels, out_channels, kernel_size=3, scale='no...
method forward (line 92) | def forward(self, x):
class ResidualBlock (line 102) | class ResidualBlock(nn.Module):
method __init__ (line 106) | def __init__(self, c_in, c_out, relu_type='prelu', norm_type='bn', sca...
method forward (line 120) | def forward(self, x):
FILE: third_part/GPEN/face_parse/face_parsing.py
class FaceParse (line 15) | class FaceParse(object):
method __init__ (line 16) | def __init__(self, base_dir='./', model='ParseNet-latest', device='cud...
method load_model (line 37) | def load_model(self):
method process (line 43) | def process(self, im, masks=[0, 255, 255, 255, 255, 255, 255, 255, 255...
method process_tensor (line 52) | def process_tensor(self, imt):
method img2tensor (line 64) | def img2tensor(self, img):
method tenor2mask (line 70) | def tenor2mask(self, tensor, masks):
class FaceParse_v2 (line 88) | class FaceParse_v2(object):
method __init__ (line 89) | def __init__(self, device='cuda', mask_map = [0, 255, 255, 255, 255, 2...
method load_model (line 113) | def load_model(self):
method process (line 119) | def process(self, im, masks=[0, 255, 255, 255, 255, 255, 255, 255, 255...
method tenor2mask (line 134) | def tenor2mask(self, tensor, masks):
FILE: third_part/GPEN/face_parse/model.py
class ConvBNReLU (line 14) | class ConvBNReLU(nn.Module):
method __init__ (line 15) | def __init__(self, in_chan, out_chan, ks=3, stride=1, padding=1, *args...
method forward (line 26) | def forward(self, x):
method init_weight (line 31) | def init_weight(self):
class BiSeNetOutput (line 37) | class BiSeNetOutput(nn.Module):
method __init__ (line 38) | def __init__(self, in_chan, mid_chan, n_classes, *args, **kwargs):
method forward (line 44) | def forward(self, x):
method init_weight (line 49) | def init_weight(self):
method get_params (line 55) | def get_params(self):
class AttentionRefinementModule (line 67) | class AttentionRefinementModule(nn.Module):
method __init__ (line 68) | def __init__(self, in_chan, out_chan, *args, **kwargs):
method forward (line 76) | def forward(self, x):
method init_weight (line 85) | def init_weight(self):
class ContextPath (line 92) | class ContextPath(nn.Module):
method __init__ (line 93) | def __init__(self, *args, **kwargs):
method forward (line 104) | def forward(self, x):
method init_weight (line 127) | def init_weight(self):
method get_params (line 133) | def get_params(self):
class SpatialPath (line 146) | class SpatialPath(nn.Module):
method __init__ (line 147) | def __init__(self, *args, **kwargs):
method forward (line 155) | def forward(self, x):
method init_weight (line 162) | def init_weight(self):
method get_params (line 168) | def get_params(self):
class FeatureFusionModule (line 180) | class FeatureFusionModule(nn.Module):
method __init__ (line 181) | def __init__(self, in_chan, out_chan, *args, **kwargs):
method forward (line 200) | def forward(self, fsp, fcp):
method init_weight (line 212) | def init_weight(self):
method get_params (line 218) | def get_params(self):
class BiSeNet (line 230) | class BiSeNet(nn.Module):
method __init__ (line 231) | def __init__(self, n_classes, *args, **kwargs):
method forward (line 241) | def forward(self, x):
method init_weight (line 256) | def init_weight(self):
method get_params (line 262) | def get_params(self):
FILE: third_part/GPEN/face_parse/parse_model.py
function define_P (line 12) | def define_P(in_size=512, out_size=512, min_feat_size=32, relu_type='Lea...
class ParseNet (line 21) | class ParseNet(nn.Module):
method __init__ (line 22) | def __init__(self,
method forward (line 69) | def forward(self, x):
FILE: third_part/GPEN/face_parse/resnet.py
function conv3x3 (line 14) | def conv3x3(in_planes, out_planes, stride=1):
class BasicBlock (line 20) | class BasicBlock(nn.Module):
method __init__ (line 21) | def __init__(self, in_chan, out_chan, stride=1):
method forward (line 36) | def forward(self, x):
function create_layer_basic (line 51) | def create_layer_basic(in_chan, out_chan, bnum, stride=1):
class Resnet18 (line 58) | class Resnet18(nn.Module):
method __init__ (line 59) | def __init__(self):
method forward (line 71) | def forward(self, x):
method init_weight (line 82) | def init_weight(self):
method get_params (line 90) | def get_params(self):
FILE: third_part/GPEN/gpen_face_enhancer.py
class FaceEnhancement (line 13) | class FaceEnhancement(object):
method __init__ (line 14) | def __init__(self, base_dir='./', size=512, model=None, use_sr=True, s...
method mask_postprocess (line 42) | def mask_postprocess(self, mask, thres=20):
method process (line 49) | def process(self, img, ori_img, bbox=None, face_enhance=True, possion_...
FILE: third_part/face3d/coeff_detector.py
class CoeffDetector (line 18) | class CoeffDetector(nn.Module):
method __init__ (line 19) | def __init__(self, opt):
method forward (line 30) | def forward(self, img, lm):
method image_transform (line 53) | def image_transform(self, images, lm):
function get_data_path (line 74) | def get_data_path(root, keypoint_root):
FILE: third_part/face3d/data/__init__.py
function find_dataset_using_name (line 19) | def find_dataset_using_name(dataset_name):
function get_option_setter (line 42) | def get_option_setter(dataset_name):
function create_dataset (line 48) | def create_dataset(opt, rank=0):
class CustomDatasetDataLoader (line 62) | class CustomDatasetDataLoader():
method __init__ (line 65) | def __init__(self, opt, rank=0):
method set_epoch (line 99) | def set_epoch(self, epoch):
method load_data (line 104) | def load_data(self):
method __len__ (line 107) | def __len__(self):
method __iter__ (line 111) | def __iter__(self):
FILE: third_part/face3d/data/base_dataset.py
class BaseDataset (line 13) | class BaseDataset(data.Dataset, ABC):
method __init__ (line 23) | def __init__(self, opt):
method modify_commandline_options (line 34) | def modify_commandline_options(parser, is_train):
method __len__ (line 47) | def __len__(self):
method __getitem__ (line 52) | def __getitem__(self, index):
function get_transform (line 64) | def get_transform(grayscale=False):
function get_affine_mat (line 71) | def get_affine_mat(opt, size):
function apply_img_affine (line 98) | def apply_img_affine(img, affine_inv, method=Image.BICUBIC):
function apply_lm_affine (line 101) | def apply_lm_affine(landmark, affine, flip, size):
FILE: third_part/face3d/data/flist_dataset.py
function default_flist_reader (line 19) | def default_flist_reader(flist):
function jason_flist_reader (line 31) | def jason_flist_reader(flist):
function parse_label (line 36) | def parse_label(label):
class FlistDataset (line 40) | class FlistDataset(BaseDataset):
method __init__ (line 46) | def __init__(self, opt):
method __getitem__ (line 67) | def __getitem__(self, index):
method _augmentation (line 111) | def _augmentation(self, img, lm, opt, msk=None):
method __len__ (line 122) | def __len__(self):
FILE: third_part/face3d/data/image_folder.py
function is_image_file (line 20) | def is_image_file(filename):
function make_dataset (line 24) | def make_dataset(dir, max_dataset_size=float("inf")):
function default_loader (line 36) | def default_loader(path):
class ImageFolder (line 40) | class ImageFolder(data.Dataset):
method __init__ (line 42) | def __init__(self, root, transform=None, return_paths=False,
method __getitem__ (line 55) | def __getitem__(self, index):
method __len__ (line 65) | def __len__(self):
FILE: third_part/face3d/data/template_dataset.py
class TemplateDataset (line 19) | class TemplateDataset(BaseDataset):
method modify_commandline_options (line 22) | def modify_commandline_options(parser, is_train):
method __init__ (line 36) | def __init__(self, opt):
method __getitem__ (line 54) | def __getitem__(self, index):
method __len__ (line 73) | def __len__(self):
FILE: third_part/face3d/data_preparation.py
function data_prepare (line 21) | def data_prepare(folder_list,mode):
FILE: third_part/face3d/extract_kp_videos.py
class KeypointExtractor (line 15) | class KeypointExtractor():
method __init__ (line 16) | def __init__(self):
method extract_keypoint (line 20) | def extract_keypoint(self, images, name=None, info=True):
function read_video (line 59) | def read_video(filename):
function run (line 73) | def run(data):
FILE: third_part/face3d/face_recon_videos.py
function get_data_path (line 18) | def get_data_path(root, keypoint_root):
class VideoPathDataset (line 34) | class VideoPathDataset(torch.utils.data.Dataset):
method __init__ (line 35) | def __init__(self, filenames, txt_filenames, bfm_folder):
method __len__ (line 40) | def __len__(self):
method __getitem__ (line 43) | def __getitem__(self, index):
method read_video (line 61) | def read_video(self, filename):
method image_transform (line 75) | def image_transform(self, images, lm):
function main (line 92) | def main(opt, model):
FILE: third_part/face3d/models/__init__.py
function find_model_using_name (line 25) | def find_model_using_name(model_name):
function get_option_setter (line 48) | def get_option_setter(model_name):
function create_model (line 54) | def create_model(opt):
FILE: third_part/face3d/models/arcface_torch/backbones/__init__.py
function get_model (line 5) | def get_model(name, **kwargs):
FILE: third_part/face3d/models/arcface_torch/backbones/iresnet.py
function conv3x3 (line 7) | def conv3x3(in_planes, out_planes, stride=1, groups=1, dilation=1):
function conv1x1 (line 19) | def conv1x1(in_planes, out_planes, stride=1):
class IBasicBlock (line 28) | class IBasicBlock(nn.Module):
method __init__ (line 30) | def __init__(self, inplanes, planes, stride=1, downsample=None,
method forward (line 46) | def forward(self, x):
class IResNet (line 60) | class IResNet(nn.Module):
method __init__ (line 62) | def __init__(self,
method _make_layer (line 114) | def _make_layer(self, block, planes, blocks, stride=1, dilate=False):
method forward (line 140) | def forward(self, x):
function _iresnet (line 157) | def _iresnet(arch, block, layers, pretrained, progress, **kwargs):
function iresnet18 (line 164) | def iresnet18(pretrained=False, progress=True, **kwargs):
function iresnet34 (line 169) | def iresnet34(pretrained=False, progress=True, **kwargs):
function iresnet50 (line 174) | def iresnet50(pretrained=False, progress=True, **kwargs):
function iresnet100 (line 179) | def iresnet100(pretrained=False, progress=True, **kwargs):
function iresnet200 (line 184) | def iresnet200(pretrained=False, progress=True, **kwargs):
FILE: third_part/face3d/models/arcface_torch/backbones/iresnet2060.py
function conv3x3 (line 10) | def conv3x3(in_planes, out_planes, stride=1, groups=1, dilation=1):
function conv1x1 (line 22) | def conv1x1(in_planes, out_planes, stride=1):
class IBasicBlock (line 31) | class IBasicBlock(nn.Module):
method __init__ (line 34) | def __init__(self, inplanes, planes, stride=1, downsample=None,
method forward (line 50) | def forward(self, x):
class IResNet (line 64) | class IResNet(nn.Module):
method __init__ (line 67) | def __init__(self,
method _make_layer (line 119) | def _make_layer(self, block, planes, blocks, stride=1, dilate=False):
method checkpoint (line 145) | def checkpoint(self, func, num_seg, x):
method forward (line 151) | def forward(self, x):
function _iresnet (line 168) | def _iresnet(arch, block, layers, pretrained, progress, **kwargs):
function iresnet2060 (line 175) | def iresnet2060(pretrained=False, progress=True, **kwargs):
FILE: third_part/face3d/models/arcface_torch/backbones/mobilefacenet.py
class Flatten (line 11) | class Flatten(Module):
method forward (line 12) | def forward(self, x):
class ConvBlock (line 16) | class ConvBlock(Module):
method __init__ (line 17) | def __init__(self, in_c, out_c, kernel=(1, 1), stride=(1, 1), padding=...
method forward (line 25) | def forward(self, x):
class LinearBlock (line 29) | class LinearBlock(Module):
method __init__ (line 30) | def __init__(self, in_c, out_c, kernel=(1, 1), stride=(1, 1), padding=...
method forward (line 37) | def forward(self, x):
class DepthWise (line 41) | class DepthWise(Module):
method __init__ (line 42) | def __init__(self, in_c, out_c, residual=False, kernel=(3, 3), stride=...
method forward (line 51) | def forward(self, x):
class Residual (line 63) | class Residual(Module):
method __init__ (line 64) | def __init__(self, c, num_block, groups, kernel=(3, 3), stride=(1, 1),...
method forward (line 71) | def forward(self, x):
class GDC (line 75) | class GDC(Module):
method __init__ (line 76) | def __init__(self, embedding_size):
method forward (line 84) | def forward(self, x):
class MobileFaceNet (line 88) | class MobileFaceNet(Module):
method __init__ (line 89) | def __init__(self, fp16=False, num_features=512):
method _initialize_weights (line 107) | def _initialize_weights(self):
method forward (line 121) | def forward(self, x):
function get_mbf (line 129) | def get_mbf(fp16, num_features):
FILE: third_part/face3d/models/arcface_torch/dataset.py
class BackgroundGenerator (line 13) | class BackgroundGenerator(threading.Thread):
method __init__ (line 14) | def __init__(self, generator, local_rank, max_prefetch=6):
method run (line 22) | def run(self):
method next (line 28) | def next(self):
method __next__ (line 34) | def __next__(self):
method __iter__ (line 37) | def __iter__(self):
class DataLoaderX (line 41) | class DataLoaderX(DataLoader):
method __init__ (line 43) | def __init__(self, local_rank, **kwargs):
method __iter__ (line 48) | def __iter__(self):
method preload (line 54) | def preload(self):
method __next__ (line 62) | def __next__(self):
class MXFaceDataset (line 71) | class MXFaceDataset(Dataset):
method __init__ (line 72) | def __init__(self, root_dir, local_rank):
method __getitem__ (line 93) | def __getitem__(self, index):
method __len__ (line 106) | def __len__(self):
class SyntheticDataset (line 110) | class SyntheticDataset(Dataset):
method __init__ (line 111) | def __init__(self, local_rank):
method __getitem__ (line 120) | def __getitem__(self, index):
method __len__ (line 123) | def __len__(self):
FILE: third_part/face3d/models/arcface_torch/eval/verification.py
class LFold (line 41) | class LFold:
method __init__ (line 42) | def __init__(self, n_splits=2, shuffle=False):
method split (line 47) | def split(self, indices):
function calculate_roc (line 54) | def calculate_roc(thresholds,
function calculate_accuracy (line 109) | def calculate_accuracy(threshold, dist, actual_issame):
function calculate_val (line 124) | def calculate_val(thresholds,
function calculate_val_far (line 165) | def calculate_val_far(threshold, dist, actual_issame):
function evaluate (line 179) | def evaluate(embeddings, actual_issame, nrof_folds=10, pca=0):
function load_bin (line 200) | def load_bin(path, image_size):
function test (line 227) | def test(data_set, backbone, batch_size, nfolds=10):
function dumpR (line 275) | def dumpR(data_set,
FILE: third_part/face3d/models/arcface_torch/eval_ijbc.py
class Embedding (line 54) | class Embedding(object):
method __init__ (line 55) | def __init__(self, prefix, data_shape, batch_size=1):
method get (line 75) | def get(self, rimg, landmark):
method forward_db (line 104) | def forward_db(self, batch_data):
function divideIntoNstrand (line 113) | def divideIntoNstrand(listTemp, n):
function read_template_media_list (line 120) | def read_template_media_list(path):
function read_template_pair_list (line 131) | def read_template_pair_list(path):
function read_image_feature (line 145) | def read_image_feature(path):
function get_image_feature (line 154) | def get_image_feature(img_path, files_list, model_path, epoch, gpu_id):
function image2template_feature (line 212) | def image2template_feature(img_feats=None, templates=None, medias=None):
function verification (line 252) | def verification(template_norm_feats=None,
function verification2 (line 282) | def verification2(template_norm_feats=None,
function read_score (line 306) | def read_score(path):
FILE: third_part/face3d/models/arcface_torch/inference.py
function inference (line 11) | def inference(weight, name, img):
FILE: third_part/face3d/models/arcface_torch/losses.py
function get_loss (line 5) | def get_loss(name):
class CosFace (line 14) | class CosFace(nn.Module):
method __init__ (line 15) | def __init__(self, s=64.0, m=0.40):
method forward (line 20) | def forward(self, cosine, label):
class ArcFace (line 29) | class ArcFace(nn.Module):
method __init__ (line 30) | def __init__(self, s=64.0, m=0.5):
method forward (line 35) | def forward(self, cosine: torch.Tensor, label):
FILE: third_part/face3d/models/arcface_torch/onnx_helper.py
class ArcFaceORT (line 15) | class ArcFaceORT:
method __init__ (line 16) | def __init__(self, model_path, cpu=False):
method check (line 22) | def check(self, track='cfat', test_img = None):
method check_batch (line 184) | def check_batch(self, img):
method meta_info (line 202) | def meta_info(self):
method forward (line 206) | def forward(self, imgs):
method benchmark (line 222) | def benchmark(self, img):
FILE: third_part/face3d/models/arcface_torch/onnx_ijbc.py
class AlignedDataSet (line 28) | class AlignedDataSet(mx.gluon.data.Dataset):
method __init__ (line 29) | def __init__(self, root, lines, align=True):
method __len__ (line 34) | def __len__(self):
method __getitem__ (line 37) | def __getitem__(self, idx):
function extract (line 54) | def extract(model_root, dataset):
function read_template_media_list (line 78) | def read_template_media_list(path):
function read_template_pair_list (line 85) | def read_template_pair_list(path):
function read_image_feature (line 93) | def read_image_feature(path):
function image2template_feature (line 99) | def image2template_feature(img_feats=None,
function verification (line 125) | def verification(template_norm_feats=None,
function verification2 (line 147) | def verification2(template_norm_feats=None,
function main (line 169) | def main(args):
FILE: third_part/face3d/models/arcface_torch/partial_fc.py
class PartialFC (line 11) | class PartialFC(Module):
method __init__ (line 20) | def __init__(self, rank, local_rank, world_size, batch_size, resume,
method save_params (line 93) | def save_params(self):
method sample (line 100) | def sample(self, total_label):
method forward (line 125) | def forward(self, total_features, norm_weight):
method update (line 133) | def update(self):
method prepare (line 139) | def prepare(self, label, optimizer):
method forward_backward (line 159) | def forward_backward(self, label, features, optimizer):
FILE: third_part/face3d/models/arcface_torch/torch2onnx.py
function convert_onnx (line 6) | def convert_onnx(net, path_module, output, opset=11, simplify=False):
FILE: third_part/face3d/models/arcface_torch/train.py
function main (line 21) | def main(args):
FILE: third_part/face3d/models/arcface_torch/utils/plot.py
function read_template_pair_list (line 19) | def read_template_pair_list(path):
FILE: third_part/face3d/models/arcface_torch/utils/utils_amp.py
class _MultiDeviceReplicator (line 14) | class _MultiDeviceReplicator(object):
method __init__ (line 19) | def __init__(self, master_tensor: torch.Tensor) -> None:
method get (line 24) | def get(self, device) -> torch.Tensor:
class MaxClipGradScaler (line 32) | class MaxClipGradScaler(GradScaler):
method __init__ (line 33) | def __init__(self, init_scale, max_scale: float, growth_interval=100):
method scale_clip (line 37) | def scale_clip(self):
method scale (line 46) | def scale(self, outputs):
FILE: third_part/face3d/models/arcface_torch/utils/utils_callbacks.py
class CallBackVerification (line 12) | class CallBackVerification(object):
method __init__ (line 13) | def __init__(self, frequent, rank, val_targets, rec_prefix, image_size...
method ver_test (line 23) | def ver_test(self, backbone: torch.nn.Module, global_step: int):
method init_dataset (line 36) | def init_dataset(self, val_targets, data_dir, image_size):
method __call__ (line 44) | def __call__(self, num_update, backbone: torch.nn.Module):
class CallBackLogging (line 51) | class CallBackLogging(object):
method __init__ (line 52) | def __init__(self, frequent, rank, total_step, batch_size, world_size,...
method __call__ (line 64) | def __call__(self,
class CallBackModelCheckpoint (line 105) | class CallBackModelCheckpoint(object):
method __init__ (line 106) | def __init__(self, rank, output="./"):
method __call__ (line 110) | def __call__(self, global_step, backbone, partial_fc, ):
FILE: third_part/face3d/models/arcface_torch/utils/utils_config.py
function get_config (line 5) | def get_config(config_file):
FILE: third_part/face3d/models/arcface_torch/utils/utils_logging.py
class AverageMeter (line 6) | class AverageMeter(object):
method __init__ (line 10) | def __init__(self):
method reset (line 17) | def reset(self):
method update (line 23) | def update(self, val, n=1):
function init_logging (line 30) | def init_logging(rank, models_root):
FILE: third_part/face3d/models/base_model.py
class BaseModel (line 12) | class BaseModel(ABC):
method __init__ (line 22) | def __init__(self, opt):
method dict_grad_hook_factory (line 49) | def dict_grad_hook_factory(add_func=lambda x: x):
method modify_commandline_options (line 60) | def modify_commandline_options(parser, is_train):
method set_input (line 73) | def set_input(self, input):
method forward (line 82) | def forward(self):
method optimize_parameters (line 87) | def optimize_parameters(self):
method setup (line 91) | def setup(self, opt):
method parallelize (line 107) | def parallelize(self, convert_sync_batchnorm=True):
method data_dependent_initialize (line 138) | def data_dependent_initialize(self, data):
method train (line 141) | def train(self):
method eval (line 148) | def eval(self):
method test (line 155) | def test(self):
method compute_visuals (line 165) | def compute_visuals(self):
method get_image_paths (line 169) | def get_image_paths(self, name='A'):
method update_learning_rate (line 173) | def update_learning_rate(self):
method get_current_visuals (line 184) | def get_current_visuals(self):
method get_current_losses (line 192) | def get_current_losses(self):
method save_networks (line 200) | def save_networks(self, epoch):
method __patch_instance_norm_state_dict (line 230) | def __patch_instance_norm_state_dict(self, state_dict, module, keys, i...
method load_networks (line 244) | def load_networks(self, epoch):
method print_networks (line 284) | def print_networks(self, verbose):
method set_requires_grad (line 302) | def set_requires_grad(self, nets, requires_grad=False):
method generate_visuals_for_evaluation (line 315) | def generate_visuals_for_evaluation(self, data, mode):
FILE: third_part/face3d/models/bfm.py
function perspective_projection (line 11) | def perspective_projection(focal, center):
class SH (line 19) | class SH:
method __init__ (line 20) | def __init__(self):
class ParametricFaceModel (line 26) | class ParametricFaceModel:
method __init__ (line 27) | def __init__(self,
method to (line 79) | def to(self, device):
method compute_shape (line 86) | def compute_shape(self, id_coeff, exp_coeff):
method compute_texture (line 102) | def compute_texture(self, tex_coeff, normalize=True):
method compute_norm (line 117) | def compute_norm(self, face_shape):
method compute_color (line 140) | def compute_color(self, face_texture, face_norm, gamma):
method compute_rotation (line 174) | def compute_rotation(self, angles):
method to_camera (line 210) | def to_camera(self, face_shape):
method to_image (line 214) | def to_image(self, face_shape):
method transform (line 229) | def transform(self, face_shape, rot, trans):
method get_landmarks (line 242) | def get_landmarks(self, face_proj):
method split_coeff (line 252) | def split_coeff(self, coeffs):
method compute_for_render (line 274) | def compute_for_render(self, coeffs):
FILE: third_part/face3d/models/facerecon_model.py
class FaceReconModel (line 17) | class FaceReconModel(BaseModel):
method modify_commandline_options (line 20) | def modify_commandline_options(parser, is_train=True):
method __init__ (line 73) | def __init__(self, opt):
method set_input (line 121) | def set_input(self, input):
method forward (line 133) | def forward(self):
method compute_losses (line 144) | def compute_losses(self):
method optimize_parameters (line 176) | def optimize_parameters(self, isTrain=True):
method compute_visuals (line 185) | def compute_visuals(self):
method save_mesh (line 207) | def save_mesh(self, name):
method save_coeff (line 218) | def save_coeff(self,name):
FILE: third_part/face3d/models/losses.py
function resize_n_crop (line 7) | def resize_n_crop(image, M, dsize=112):
class PerceptualLoss (line 13) | class PerceptualLoss(nn.Module):
method __init__ (line 14) | def __init__(self, recog_net, input_size=112):
method forward (line 19) | def forward(imageA, imageB, M):
function perceptual_loss (line 39) | def perceptual_loss(id_featureA, id_featureB):
function photo_loss (line 45) | def photo_loss(imageA, imageB, mask, eps=1e-6):
function landmark_loss (line 56) | def landmark_loss(predict_lm, gt_lm, weight=None):
function reg_loss (line 76) | def reg_loss(coeffs_dict, opt=None):
function reflectance_loss (line 101) | def reflectance_loss(texture, mask):
FILE: third_part/face3d/models/networks.py
function resize_n_crop (line 21) | def resize_n_crop(image, M, dsize=112):
function filter_state_dict (line 26) | def filter_state_dict(state_dict, remove_name='fc'):
function get_scheduler (line 34) | def get_scheduler(optimizer, opt):
function define_net_recon (line 61) | def define_net_recon(net_recon, use_last_fc=False, init_path=None):
function define_net_recog (line 64) | def define_net_recog(net_recog, pretrained_path=None):
class ReconNetWrapper (line 69) | class ReconNetWrapper(nn.Module):
method __init__ (line 71) | def __init__(self, net_recon, use_last_fc=False, init_path=None):
method forward (line 97) | def forward(self, x):
class RecogNetWrapper (line 107) | class RecogNetWrapper(nn.Module):
method __init__ (line 108) | def __init__(self, net_recog, pretrained_path=None, input_size=112):
method forward (line 121) | def forward(self, image, M):
function conv3x3 (line 146) | def conv3x3(in_planes: int, out_planes: int, stride: int = 1, groups: in...
function conv1x1 (line 152) | def conv1x1(in_planes: int, out_planes: int, stride: int = 1, bias: bool...
class BasicBlock (line 157) | class BasicBlock(nn.Module):
method __init__ (line 160) | def __init__(
method forward (line 187) | def forward(self, x: Tensor) -> Tensor:
class Bottleneck (line 206) | class Bottleneck(nn.Module):
method __init__ (line 215) | def __init__(
method forward (line 241) | def forward(self, x: Tensor) -> Tensor:
class ResNet (line 264) | class ResNet(nn.Module):
method __init__ (line 266) | def __init__(
method _make_layer (line 331) | def _make_layer(self, block: Type[Union[BasicBlock, Bottleneck]], plan...
method _forward_impl (line 356) | def _forward_impl(self, x: Tensor) -> Tensor:
method forward (line 374) | def forward(self, x: Tensor) -> Tensor:
function _resnet (line 378) | def _resnet(
function resnet18 (line 394) | def resnet18(pretrained: bool = False, progress: bool = True, **kwargs: ...
function resnet34 (line 406) | def resnet34(pretrained: bool = False, progress: bool = True, **kwargs: ...
function resnet50 (line 418) | def resnet50(pretrained: bool = False, progress: bool = True, **kwargs: ...
function resnet101 (line 430) | def resnet101(pretrained: bool = False, progress: bool = True, **kwargs:...
function resnet152 (line 442) | def resnet152(pretrained: bool = False, progress: bool = True, **kwargs:...
function resnext50_32x4d (line 454) | def resnext50_32x4d(pretrained: bool = False, progress: bool = True, **k...
function resnext101_32x8d (line 468) | def resnext101_32x8d(pretrained: bool = False, progress: bool = True, **...
function wide_resnet50_2 (line 482) | def wide_resnet50_2(pretrained: bool = False, progress: bool = True, **k...
function wide_resnet101_2 (line 500) | def wide_resnet101_2(pretrained: bool = False, progress: bool = True, **...
FILE: third_part/face3d/models/template_model.py
class TemplateModel (line 24) | class TemplateModel(BaseModel):
method modify_commandline_options (line 26) | def modify_commandline_options(parser, is_train=True):
method __init__ (line 42) | def __init__(self, opt):
method set_input (line 73) | def set_input(self, input):
method forward (line 84) | def forward(self):
method backward (line 88) | def backward(self):
method optimize_parameters (line 95) | def optimize_parameters(self):
FILE: third_part/face3d/options/base_options.py
class BaseOptions (line 13) | class BaseOptions():
method __init__ (line 20) | def __init__(self, cmd_line=None):
method initialize (line 27) | def initialize(self, parser):
method gather_options (line 52) | def gather_options(self):
method print_options (line 93) | def print_options(self, opt):
method parse (line 122) | def parse(self):
FILE: third_part/face3d/options/inference_options.py
class InferenceOptions (line 4) | class InferenceOptions(BaseOptions):
method initialize (line 10) | def initialize(self, parser):
FILE: third_part/face3d/options/test_options.py
class TestOptions (line 7) | class TestOptions(BaseOptions):
method initialize (line 13) | def initialize(self, parser):
FILE: third_part/face3d/options/train_options.py
class TrainOptions (line 7) | class TrainOptions(BaseOptions):
method initialize (line 13) | def initialize(self, parser):
FILE: third_part/face3d/util/detect_lm68.py
function save_label (line 12) | def save_label(labels, save_path):
function draw_landmarks (line 15) | def draw_landmarks(img, landmark, save_name):
function load_data (line 35) | def load_data(img_name, txt_name):
function load_lm_graph (line 39) | def load_lm_graph(graph_filename):
function detect_68p (line 53) | def detect_68p(img_path,sess,input_op,output_op):
FILE: third_part/face3d/util/generate_list.py
function write_list (line 7) | def write_list(lms_list, imgs_list, msks_list, mode='train',save_folder=...
function check_list (line 21) | def check_list(rlms_list, rimgs_list, rmsks_list):
FILE: third_part/face3d/util/html.py
class HTML (line 6) | class HTML:
method __init__ (line 14) | def __init__(self, web_dir, title, refresh=0):
method get_image_dir (line 35) | def get_image_dir(self):
method add_header (line 39) | def add_header(self, text):
method add_images (line 48) | def add_images(self, ims, txts, links, width=400):
method save (line 68) | def save(self):
FILE: third_part/face3d/util/load_mats.py
function LoadExpBasis (line 11) | def LoadExpBasis(bfm_folder='BFM'):
function transferBFM09 (line 32) | def transferBFM09(bfm_folder='BFM'):
function load_lm3d (line 105) | def load_lm3d(bfm_folder):
FILE: third_part/face3d/util/nvdiffrast.py
function ndc_projection (line 15) | def ndc_projection(x=0.1, n=1.0, f=50.0):
class MeshRenderer (line 21) | class MeshRenderer(nn.Module):
method __init__ (line 22) | def __init__(self,
method forward (line 35) | def forward(self, vertex, tri, feat=None):
FILE: third_part/face3d/util/preprocess.py
function POS (line 18) | def POS(xp, x):
function BBRegression (line 43) | def BBRegression(points, params):
function img_padding (line 72) | def img_padding(img, box):
function crop (line 86) | def crop(img, bbox):
function scale_trans (line 99) | def scale_trans(img, lm, t, s):
function align_for_lm (line 126) | def align_for_lm(img, five_points):
function resize_n_crop_img (line 137) | def resize_n_crop_img(img, lm, t, s, target_size=224., mask=None):
function extract_5p (line 161) | def extract_5p(lm):
function align_img (line 169) | def align_img(img, lm, lm3D, mask=None, target_size=224., rescale_factor...
function estimate_norm (line 201) | def estimate_norm(lm_68p, H):
function estimate_norm_torch (line 224) | def estimate_norm_torch(lm_68p, H):
FILE: third_part/face3d/util/skin_mask.py
class GMM (line 9) | class GMM:
method __init__ (line 10) | def __init__(self, dim, num, w, mu, cov, cov_det, cov_inv):
method likelihood (line 23) | def likelihood(self, data):
function _rgb2ycbcr (line 42) | def _rgb2ycbcr(rgb):
function _bgr2ycbcr (line 54) | def _bgr2ycbcr(bgr):
function skinmask (line 90) | def skinmask(imbgr):
function get_skin_mask (line 111) | def get_skin_mask(img_path):
FILE: third_part/face3d/util/util.py
function str2bool (line 14) | def str2bool(v):
function copyconf (line 25) | def copyconf(default_opt, **kwargs):
function genvalconf (line 31) | def genvalconf(train_opt, **kwargs):
function find_class_in_module (line 43) | def find_class_in_module(target_cls_name, module):
function tensor2im (line 56) | def tensor2im(input_image, imtype=np.uint8):
function diagnose_network (line 77) | def diagnose_network(net, name='network'):
function save_image (line 96) | def save_image(image_numpy, image_path, aspect_ratio=1.0):
function print_numpy (line 116) | def print_numpy(x, val=True, shp=False):
function mkdirs (line 132) | def mkdirs(paths):
function mkdir (line 145) | def mkdir(path):
function correct_resize_label (line 155) | def correct_resize_label(t, size):
function correct_resize (line 169) | def correct_resize(t, size, mode=Image.BICUBIC):
function draw_landmarks (line 180) | def draw_landmarks(img, landmark, color='r', step=2):
FILE: third_part/face3d/util/visualizer.py
function save_images (line 13) | def save_images(webpage, visuals, image_path, aspect_ratio=1.0, width=256):
class Visualizer (line 44) | class Visualizer():
method __init__ (line 50) | def __init__(self, opt):
method reset (line 77) | def reset(self):
method display_current_results (line 82) | def display_current_results(self, visuals, total_iters, epoch, save_re...
method plot_current_losses (line 117) | def plot_current_losses(self, total_iters, losses):
method print_current_losses (line 131) | def print_current_losses(self, epoch, iters, losses, t_comp, t_data):
class MyVisualizer (line 150) | class MyVisualizer:
method __init__ (line 151) | def __init__(self, opt):
method display_current_results (line 174) | def display_current_results(self, visuals, total_iters, epoch, dataset...
method plot_current_losses (line 205) | def plot_current_losses(self, total_iters, losses, dataset='train'):
method print_current_losses (line 210) | def print_current_losses(self, epoch, iters, losses, t_comp, t_data, d...
FILE: third_part/face_detection/api.py
class LandmarksType (line 17) | class LandmarksType(Enum):
class NetworkSize (line 30) | class NetworkSize(Enum):
method __new__ (line 36) | def __new__(cls, value):
method __int__ (line 41) | def __int__(self):
class FaceAlignment (line 46) | class FaceAlignment:
method __init__ (line 47) | def __init__(self, landmarks_type, network_size=NetworkSize.LARGE,
method get_detections_for_batch (line 64) | def get_detections_for_batch(self, images):
FILE: third_part/face_detection/detection/core.py
class FaceDetector (line 9) | class FaceDetector(object):
method __init__ (line 18) | def __init__(self, device, verbose):
method detect_from_image (line 32) | def detect_from_image(self, tensor_or_path):
method detect_from_directory (line 54) | def detect_from_directory(self, path, extensions=['.jpg', '.png'], rec...
method reference_scale (line 104) | def reference_scale(self):
method reference_x_shift (line 108) | def reference_x_shift(self):
method reference_y_shift (line 112) | def reference_y_shift(self):
method tensor_or_path_to_ndarray (line 116) | def tensor_or_path_to_ndarray(tensor_or_path, rgb=True):
FILE: third_part/face_detection/detection/sfd/bbox.py
function IOU (line 17) | def IOU(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2):
function bboxlog (line 30) | def bboxlog(x1, y1, x2, y2, axc, ayc, aww, ahh):
function bboxloginv (line 37) | def bboxloginv(dx, dy, dw, dh, axc, ayc, aww, ahh):
function nms (line 44) | def nms(dets, thresh):
function encode (line 67) | def encode(matched, priors, variances):
function decode (line 91) | def decode(loc, priors, variances):
function batch_decode (line 111) | def batch_decode(loc, priors, variances):
FILE: third_part/face_detection/detection/sfd/detect.py
function detect (line 19) | def detect(net, img, device):
function batch_detect (line 58) | def batch_detect(net, imgs, device):
function flip_detect (line 99) | def flip_detect(net, img, device):
function pts_to_bb (line 112) | def pts_to_bb(pts):
FILE: third_part/face_detection/detection/sfd/net_s3fd.py
class L2Norm (line 6) | class L2Norm(nn.Module):
method __init__ (line 7) | def __init__(self, n_channels, scale=1.0):
method forward (line 16) | def forward(self, x):
class s3fd (line 22) | class s3fd(nn.Module):
method __init__ (line 23) | def __init__(self):
method forward (line 70) | def forward(self, x):
FILE: third_part/face_detection/detection/sfd/sfd_detector.py
class SFDDetector (line 16) | class SFDDetector(FaceDetector):
method __init__ (line 17) | def __init__(self, device, path_to_detector='/apdcephfs/share_1290939/...
method detect_from_image (line 31) | def detect_from_image(self, tensor_or_path):
method detect_from_batch (line 41) | def detect_from_batch(self, images):
method reference_scale (line 50) | def reference_scale(self):
method reference_x_shift (line 54) | def reference_x_shift(self):
method reference_y_shift (line 58) | def reference_y_shift(self):
FILE: third_part/face_detection/models.py
function conv3x3 (line 7) | def conv3x3(in_planes, out_planes, strd=1, padding=1, bias=False):
class ConvBlock (line 13) | class ConvBlock(nn.Module):
method __init__ (line 14) | def __init__(self, in_planes, out_planes):
method forward (line 33) | def forward(self, x):
class Bottleneck (line 58) | class Bottleneck(nn.Module):
method __init__ (line 62) | def __init__(self, inplanes, planes, stride=1, downsample=None):
method forward (line 75) | def forward(self, x):
class HourGlass (line 98) | class HourGlass(nn.Module):
method __init__ (line 99) | def __init__(self, num_modules, depth, num_features):
method _generate_network (line 107) | def _generate_network(self, level):
method _forward (line 119) | def _forward(self, level, inp):
method forward (line 141) | def forward(self, x):
class FAN (line 145) | class FAN(nn.Module):
method __init__ (line 147) | def __init__(self, num_modules=1):
method forward (line 174) | def forward(self, x):
class ResNetDepth (line 204) | class ResNetDepth(nn.Module):
method __init__ (line 206) | def __init__(self, block=Bottleneck, layers=[3, 8, 36, 3], num_classes...
method _make_layer (line 229) | def _make_layer(self, block, planes, blocks, stride=1):
method forward (line 246) | def forward(self, x):
FILE: third_part/face_detection/utils.py
function _gaussian (line 11) | def _gaussian(
function draw_gaussian (line 37) | def draw_gaussian(image, point, sigma):
function transform (line 56) | def transform(point, center, scale, resolution, invert=False):
function crop (line 92) | def crop(image, center, scale, resolution=256.0):
function get_preds_fromhm (line 132) | def get_preds_fromhm(hm, center=None, scale=None):
function get_preds_fromhm_batch (line 172) | def get_preds_fromhm_batch(hm, centers=None, scales=None):
function shuffle_lr (line 212) | def shuffle_lr(parts, pairs=None):
function flip (line 237) | def flip(tensor, is_label=False):
function appdata_dir (line 259) | def appdata_dir(appname=None, roaming=False):
FILE: third_part/ganimation_replicate/data/base_dataset.py
class BaseDataset (line 11) | class BaseDataset(torch.utils.data.Dataset):
method __init__ (line 13) | def __init__(self):
method name (line 16) | def name(self):
method initialize (line 19) | def initialize(self, opt):
method make_dataset (line 36) | def make_dataset(self):
method load_dict (line 39) | def load_dict(self, pkl_path):
method get_img_by_path (line 45) | def get_img_by_path(self, img_path):
method get_aus_by_path (line 50) | def get_aus_by_path(self, img_path):
method img_transformer (line 53) | def img_transformer(self):
method __len__ (line 75) | def __len__(self):
FILE: third_part/ganimation_replicate/data/celeba.py
class CelebADataset (line 7) | class CelebADataset(BaseDataset):
method __init__ (line 9) | def __init__(self):
method initialize (line 12) | def initialize(self, opt):
method get_aus_by_path (line 15) | def get_aus_by_path(self, img_path):
method make_dataset (line 20) | def make_dataset(self):
method __getitem__ (line 30) | def __getitem__(self, index):
FILE: third_part/ganimation_replicate/data/data_loader.py
function create_dataloader (line 12) | def create_dataloader(opt):
class DataLoader (line 18) | class DataLoader:
method name (line 19) | def name(self):
method create_datase (line 22) | def create_datase(self):
method initialize (line 32) | def initialize(self, opt):
method __len__ (line 42) | def __len__(self):
method __iter__ (line 45) | def __iter__(self):
FILE: third_part/ganimation_replicate/model/__init__.py
function create_model (line 7) | def create_model(opt):
FILE: third_part/ganimation_replicate/model/base_model.py
class BaseModel (line 8) | class BaseModel:
method __init__ (line 10) | def __init__(self):
method initialize (line 14) | def initialize(self, opt):
method setup (line 22) | def setup(self):
method set_eval (line 42) | def set_eval(self):
method set_train (line 54) | def set_train(self):
method set_requires_grad (line 63) | def set_requires_grad(self, parameters, requires_grad=False):
method get_latest_visuals (line 70) | def get_latest_visuals(self, visuals_name):
method get_latest_losses (line 77) | def get_latest_losses(self, losses_name):
method feed_batch (line 87) | def feed_batch(self, batch):
method forward (line 90) | def forward(self):
method optimize_paras (line 93) | def optimize_paras(self):
method update_learning_rate (line 96) | def update_learning_rate(self):
method save_ckpt (line 102) | def save_ckpt(self, epoch, models_name):
method load_ckpt (line 116) | def load_ckpt(self, epoch, models_name):
method clean_ckpt (line 140) | def clean_ckpt(self, epoch, models_name):
method gradient_penalty (line 148) | def gradient_penalty(self, input_img, generate_img):
FILE: third_part/ganimation_replicate/model/ganimation.py
class GANimationModel (line 6) | class GANimationModel(BaseModel):
method __init__ (line 8) | def __init__(self):
method initialize (line 12) | def initialize(self):
method setup (line 29) | def setup(self):
method feed_batch (line 43) | def feed_batch(self, batch):
method forward (line 50) | def forward(self):
method backward_dis (line 60) | def backward_dis(self):
method backward_gen (line 80) | def backward_gen(self):
method optimize_paras (line 104) | def optimize_paras(self, train_gen):
method save_ckpt (line 119) | def save_ckpt(self, epoch):
method load_ckpt (line 124) | def load_ckpt(self, epoch):
method clean_ckpt (line 131) | def clean_ckpt(self, epoch):
method get_latest_losses (line 136) | def get_latest_losses(self):
method get_latest_visuals (line 140) | def get_latest_visuals(self):
FILE: third_part/ganimation_replicate/model/model_utils.py
function get_norm_layer (line 14) | def get_norm_layer(norm_type='instance'):
function get_scheduler (line 34) | def get_scheduler(optimizer, opt):
function init_weights (line 49) | def init_weights(net, init_type='normal', gain=0.02):
function init_net (line 73) | def init_net(net, init_type='normal', init_gain=0.02, gpu_ids=[]):
function define_G (line 83) | def define_G(input_nc, output_nc, ngf, which_model_netG, norm='batch', u...
function define_D (line 100) | def define_D(input_nc, ndf, which_model_netD,
class GANLoss (line 126) | class GANLoss(nn.Module):
method __init__ (line 127) | def __init__(self, gan_type='wgan-gp', target_real_label=1.0, target_f...
method get_target_tensor (line 141) | def get_target_tensor(self, input, target_is_real):
method __call__ (line 148) | def __call__(self, input, target_is_real):
class ResnetGenerator (line 160) | class ResnetGenerator(nn.Module):
method __init__ (line 161) | def __init__(self, input_nc, output_nc, ngf=64, norm_layer=nn.BatchNor...
method forward (line 204) | def forward(self, input):
class ResnetBlock (line 209) | class ResnetBlock(nn.Module):
method __init__ (line 210) | def __init__(self, dim, padding_type, norm_layer, use_dropout, use_bias):
method build_conv_block (line 214) | def build_conv_block(self, dim, padding_type, norm_layer, use_dropout,...
method forward (line 246) | def forward(self, x):
class UnetGenerator (line 255) | class UnetGenerator(nn.Module):
method __init__ (line 256) | def __init__(self, input_nc, output_nc, num_downs, ngf=64,
method forward (line 271) | def forward(self, input):
class UnetSkipConnectionBlock (line 278) | class UnetSkipConnectionBlock(nn.Module):
method __init__ (line 279) | def __init__(self, outer_nc, inner_nc, input_nc=None,
method forward (line 324) | def forward(self, x):
class NLayerDiscriminator (line 332) | class NLayerDiscriminator(nn.Module):
method __init__ (line 333) | def __init__(self, input_nc, ndf=64, n_layers=3, norm_layer=nn.BatchNo...
method forward (line 375) | def forward(self, input):
class PixelDiscriminator (line 379) | class PixelDiscriminator(nn.Module):
method __init__ (line 380) | def __init__(self, input_nc, ndf=64, norm_layer=nn.BatchNorm2d, use_si...
method forward (line 400) | def forward(self, input):
function define_splitG (line 407) | def define_splitG(img_nc, aus_nc, ngf, use_dropout=False, norm='instance...
function define_splitD (line 413) | def define_splitD(input_nc, aus_nc, image_size, ndf, norm='instance', in...
class SplitGenerator (line 419) | class SplitGenerator(nn.Module):
method __init__ (line 420) | def __init__(self, img_nc, aus_nc, ngf=64, norm_layer=nn.BatchNorm2d, ...
method forward (line 474) | def forward(self, img, au):
class SplitDiscriminator (line 485) | class SplitDiscriminator(nn.Module):
method __init__ (line 486) | def __init__(self, input_nc, aus_nc, image_size=128, ndf=64, n_layers=...
method forward (line 519) | def forward(self, img):
class TVLoss (line 527) | class TVLoss(nn.Module):
method __init__ (line 528) | def __init__(self, TVLoss_weight=1):
method forward (line 532) | def forward(self,x):
method _tensor_size (line 542) | def _tensor_size(self,t):
FILE: third_part/ganimation_replicate/model/stargan.py
class StarGANModel (line 7) | class StarGANModel(BaseModel):
method __init__ (line 9) | def __init__(self):
method initialize (line 13) | def initialize(self, opt):
method setup (line 28) | def setup(self):
method feed_batch (line 42) | def feed_batch(self, batch):
method forward (line 49) | def forward(self):
method backward_dis (line 57) | def backward_dis(self):
method backward_gen (line 77) | def backward_gen(self):
method optimize_paras (line 93) | def optimize_paras(self, train_gen):
method save_ckpt (line 108) | def save_ckpt(self, epoch):
method load_ckpt (line 113) | def load_ckpt(self, epoch):
method clean_ckpt (line 120) | def clean_ckpt(self, epoch):
method get_latest_losses (line 125) | def get_latest_losses(self):
method get_latest_visuals (line 129) | def get_latest_visuals(self):
FILE: third_part/ganimation_replicate/options.py
class Options (line 13) | class Options(object):
method __init__ (line 15) | def __init__(self):
method initialize (line 18) | def initialize(self):
method parse (line 92) | def parse(self):
FILE: third_part/ganimation_replicate/solvers.py
function create_solver (line 17) | def create_solver(opt):
class Solver (line 24) | class Solver(object):
method __init__ (line 26) | def __init__(self):
method initialize (line 29) | def initialize(self, opt):
method run_solver (line 34) | def run_solver(self):
method train_networks (line 40) | def train_networks(self):
method init_train_setting (line 57) | def init_train_setting(self):
method train_epoch (line 65) | def train_epoch(self, epoch):
method test_networks (line 104) | def test_networks(self, opt):
method init_test_setting (line 108) | def init_test_setting(self, opt):
method test_ops (line 112) | def test_ops(self):
method test_save_imgs (line 133) | def test_save_imgs(self, faces_list, paths_list):
FILE: third_part/ganimation_replicate/visualizer.py
class Visualizer (line 10) | class Visualizer(object):
method __init__ (line 12) | def __init__(self):
method initialize (line 15) | def initialize(self, opt):
method throw_visdom_connection_error (line 28) | def throw_visdom_connection_error(self):
method print_losses_info (line 32) | def print_losses_info(self, info_dict):
method display_current_losses (line 44) | def display_current_losses(self, epoch, counter_ratio, losses_dict):
method display_online_results (line 62) | def display_online_results(self, visuals, epoch):
method tensor2im (line 80) | def tensor2im(self, input_image, imtype=np.uint8):
method numpy2im (line 89) | def numpy2im(self, image_numpy, imtype=np.uint8):
FILE: utils/alignment_stit.py
function paste_image (line 15) | def paste_image(inverse_transform, img, orig_image):
function get_landmark (line 21) | def get_landmark(filepath, predictor, detector=None, fa=None):
function align_face (line 53) | def align_face(filepath_or_image, predictor, output_size, detector=None,
function crop_image (line 69) | def crop_image(filepath, output_size, quad, enable_padding=False):
function compute_transform (line 117) | def compute_transform(lm, predictor, detector=None, scale=1.0, fa=None):
function crop_faces (line 150) | def crop_faces(IMAGE_SIZE, files, scale, center_sigma=0.0, xy_sigma=0.0,...
function crop_faces_by_quads (line 190) | def crop_faces_by_quads(IMAGE_SIZE, files, quads):
function calc_alignment_coefficients (line 201) | def calc_alignment_coefficients(pa, pb):
FILE: utils/audio.py
function load_wav (line 9) | def load_wav(path, sr):
function save_wav (line 12) | def save_wav(wav, path, sr):
function save_wavenet_wav (line 17) | def save_wavenet_wav(wav, path, sr):
function preemphasis (line 20) | def preemphasis(wav, k, preemphasize=True):
function inv_preemphasis (line 25) | def inv_preemphasis(wav, k, inv_preemphasize=True):
function get_hop_size (line 30) | def get_hop_size():
function linearspectrogram (line 37) | def linearspectrogram(wav):
function melspectrogram (line 45) | def melspectrogram(wav):
function _lws_processor (line 53) | def _lws_processor():
function _stft (line 57) | def _stft(y):
function num_frames (line 65) | def num_frames(length, fsize, fshift):
function pad_lr (line 76) | def pad_lr(x, fsize, fshift):
function librosa_pad_lr (line 86) | def librosa_pad_lr(x, fsize, fshift):
function _linear_to_mel (line 92) | def _linear_to_mel(spectogram):
function _build_mel_basis (line 98) | def _build_mel_basis():
function _amp_to_db (line 103) | def _amp_to_db(x):
function _db_to_amp (line 107) | def _db_to_amp(x):
function _normalize (line 110) | def _normalize(S):
function _denormalize (line 124) | def _denormalize(D):
FILE: utils/ffhq_preprocess.py
class Croper (line 34) | class Croper:
method __init__ (line 35) | def __init__(self, path_of_lm):
method get_landmark (line 39) | def get_landmark(self, img_np):
method align_face (line 57) | def align_face(self, img, lm, output_size=1024):
method crop (line 118) | def crop(self, img_np_list, xsize=512): # first frame for all video
FILE: utils/flow_util.py
function convert_flow_to_deformation (line 3) | def convert_flow_to_deformation(flow):
function make_coordinate_grid (line 17) | def make_coordinate_grid(flow):
function warp_image (line 41) | def warp_image(source_image, deformation):
FILE: utils/hparams.py
class HParams (line 3) | class HParams:
method __init__ (line 4) | def __init__(self, **kwargs):
method __getattr__ (line 10) | def __getattr__(self, key):
method set_hparam (line 15) | def set_hparam(self, key, value):
function hparams_debug_string (line 134) | def hparams_debug_string():
FILE: utils/inference_utils.py
function options (line 15) | def options():
function mask_postprocess (line 57) | def mask_postprocess(mask, thres=20):
function trans_image (line 64) | def trans_image(image):
function obtain_seq_index (line 71) | def obtain_seq_index(index, num_frames):
function transform_semantic (line 76) | def transform_semantic(semantic, frame_index, crop_norm_ratio=None):
function find_crop_norm_ratio (line 91) | def find_crop_norm_ratio(source_coeff, target_coeffs):
function get_smoothened_boxes (line 99) | def get_smoothened_boxes(boxes, T):
function face_detect (line 108) | def face_detect(images, args, jaw_correction=False, detector=None):
function _load (line 149) | def _load(checkpoint_path, device):
function split_coeff (line 157) | def split_coeff(coeffs):
function Laplacian_Pyramid_Blending_with_mask (line 180) | def Laplacian_Pyramid_Blending_with_mask(A, B, m, num_levels = 6):
function load_model (line 223) | def load_model(args, device):
function normalize_kp (line 228) | def normalize_kp(kp_source, kp_driving, kp_driving_initial, adapt_moveme...
function load_face3d_net (line 248) | def load_face3d_net(ckpt_path, device):
FILE: webUI.py
function convert (line 11) | def convert(segment_length, video, audio, progress=gradio.Progress()):
function cleanup_temp_files (line 42) | def cleanup_temp_files(file_list):
function cut_video_segments (line 48) | def cut_video_segments(video_file, segment_length):
function cut_audio_segments (line 62) | def cut_audio_segments(audio_file, segment_length):
function process_segment (line 76) | def process_segment(video_seg, audio_seg, i):
function concatenate_videos (line 85) | def concatenate_videos(video_segments, output_file):
Condensed preview — 211 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,401K chars).
[
{
"path": ".gitignore",
"chars": 120,
"preview": "*.pkl\n*.jpg\n*.pth\n*.pyc\n__pycache__\n*.h5\n*.pyc\n*.mkv\n*.gif\n*.webm\ncheckpoints/*\nresults/*\ntemp/*\nsegments.txt\n.DS_Store\n"
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3023,
"preview": "# Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as contributors and"
},
{
"path": "LICENSE",
"chars": 11357,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 8720,
"preview": "<div align=\"center\">\n\n<h2>VideoReTalking <br/> <span style=\"font-size:12px\">Audio-based Lip Synchronization for Talking "
},
{
"path": "cog.yaml",
"chars": 1590,
"preview": "# Configuration for Cog ⚙️\n# Reference: https://github.com/replicate/cog/blob/main/docs/yaml.md\n\nbuild:\n gpu: true\n sy"
},
{
"path": "docs/index.html",
"chars": 12568,
"preview": "<!DOCTYPE html>\n<html>\n<head>\n <meta charset=\"utf-8\">\n <!-- Meta tags for social media banners, these should be filled"
},
{
"path": "docs/static/css/bulma.css.map.txt",
"chars": 96528,
"preview": "{\"version\":3,\"sources\":[\"../bulma.sass\",\"../sass/utilities/_all.sass\",\"../sass/utilities/animations.sass\",\"bulma.css\",\"."
},
{
"path": "docs/static/css/index.css",
"chars": 3403,
"preview": "body {\n font-family: 'Noto Sans', sans-serif;\n}\n\n.hero-body-img{\n text-align: center;\n}\n\n.footer .icon-link {\n font"
},
{
"path": "docs/static/js/bulma-carousel.js",
"chars": 82823,
"preview": "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object"
},
{
"path": "docs/static/js/bulma-slider.js",
"chars": 16404,
"preview": "(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object"
},
{
"path": "docs/static/js/index.js",
"chars": 413,
"preview": "window.HELP_IMPROVE_VIDEOJS = false;\n\n\n$(document).ready(function() {\n // Check for click events on the navbar burger"
},
{
"path": "inference.py",
"chars": 17226,
"preview": "import numpy as np\nimport cv2, os, sys, subprocess, platform, torch\nfrom tqdm import tqdm\nfrom PIL import Image\nfrom sci"
},
{
"path": "inference_videoretalking.sh",
"chars": 118,
"preview": "python3 inference.py \\\n --face ./examples/face/1.mp4 \\\n --audio ./examples/audio/1.wav \\\n --outfile results/1_1.mp4"
},
{
"path": "models/DNet.py",
"chars": 4135,
"preview": "# TODO\nimport functools\nimport numpy as np\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom uti"
},
{
"path": "models/ENet.py",
"chars": 5270,
"preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\nfrom models.base_blocks import ResBlock, StyleConv, "
},
{
"path": "models/LNet.py",
"chars": 6114,
"preview": "import functools\nimport torch\nimport torch.nn as nn\n\nfrom models.transformer import RETURNX, Transformer\nfrom models.bas"
},
{
"path": "models/__init__.py",
"chars": 1182,
"preview": "import torch\nfrom models.DNet import DNet\nfrom models.LNet import LNet\nfrom models.ENet import ENet\n\n\ndef _load(checkpoi"
},
{
"path": "models/base_blocks.py",
"chars": 22371,
"preview": "import math\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom torch.nn.modules.batchnorm import Ba"
},
{
"path": "models/ffc.py",
"chars": 9263,
"preview": "# Fast Fourier Convolution NeurIPS 2020\n# original implementation https://github.com/pkumivision/FFC/blob/main/model_zoo"
},
{
"path": "models/transformer.py",
"chars": 3567,
"preview": "import torch\nfrom torch import nn\n\nfrom einops import rearrange\n\nimport torch.nn as nn\nimport torch.nn.functional as F\ni"
},
{
"path": "predict.py",
"chars": 20325,
"preview": "# Prediction interface for Cog ⚙️\n# https://github.com/replicate/cog/blob/main/docs/python.md\n\nimport os\nimport sys\nimpo"
},
{
"path": "quick_demo.ipynb",
"chars": 11409,
"preview": "{\n \"nbformat\": 4,\n \"nbformat_minor\": 0,\n \"metadata\": {\n \"colab\": {\n \"provenance\": [],\n \"authorship_tag\":"
},
{
"path": "requirements.txt",
"chars": 154,
"preview": "basicsr==1.4.2\nkornia==0.5.1\nface-alignment==1.3.4\nninja==1.10.2.3\neinops==0.4.1\nfacexlib==0.2.5\nlibrosa==0.9.2\ndlib==19"
},
{
"path": "third_part/GFPGAN/LICENSE",
"chars": 22911,
"preview": "Tencent is pleased to support the open source community by making GFPGAN available.\n\nCopyright (C) 2021 THL A29 Limited,"
},
{
"path": "third_part/GFPGAN/gfpgan/__init__.py",
"chars": 126,
"preview": "# flake8: noqa\n\nfrom .archs import *\nfrom .data import *\nfrom .models import *\nfrom .utils import *\n\n# from .version imp"
},
{
"path": "third_part/GFPGAN/gfpgan/archs/__init__.py",
"chars": 496,
"preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import arch modu"
},
{
"path": "third_part/GFPGAN/gfpgan/archs/arcface_arch.py",
"chars": 8075,
"preview": "import torch.nn as nn\nfrom basicsr.utils.registry import ARCH_REGISTRY\n\n\ndef conv3x3(inplanes, outplanes, stride=1):\n "
},
{
"path": "third_part/GFPGAN/gfpgan/archs/gfpgan_bilinear_arch.py",
"chars": 13436,
"preview": "import math\nimport random\nimport torch\nfrom basicsr.utils.registry import ARCH_REGISTRY\nfrom torch import nn\n\nfrom .gfpg"
},
{
"path": "third_part/GFPGAN/gfpgan/archs/gfpganv1_arch.py",
"chars": 18370,
"preview": "import math\nimport random\nimport torch\nfrom basicsr.archs.stylegan2_arch import (ConvLayer, EqualConv2d, EqualLinear, Re"
},
{
"path": "third_part/GFPGAN/gfpgan/archs/gfpganv1_clean_arch.py",
"chars": 13625,
"preview": "import math\nimport random\nimport torch\nfrom basicsr.utils.registry import ARCH_REGISTRY\nfrom torch import nn\nfrom torch."
},
{
"path": "third_part/GFPGAN/gfpgan/archs/stylegan2_bilinear_arch.py",
"chars": 22309,
"preview": "import math\nimport random\nimport torch\nfrom basicsr.ops.fused_act import FusedLeakyReLU, fused_leaky_relu\nfrom basicsr.u"
},
{
"path": "third_part/GFPGAN/gfpgan/archs/stylegan2_clean_arch.py",
"chars": 14317,
"preview": "import math\nimport random\nimport torch\nfrom basicsr.archs.arch_util import default_init_weights\nfrom basicsr.utils.regis"
},
{
"path": "third_part/GFPGAN/gfpgan/data/__init__.py",
"chars": 515,
"preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import dataset m"
},
{
"path": "third_part/GFPGAN/gfpgan/data/ffhq_degradation_dataset.py",
"chars": 10324,
"preview": "import cv2\nimport math\nimport numpy as np\nimport os.path as osp\nimport torch\nimport torch.utils.data as data\nfrom basics"
},
{
"path": "third_part/GFPGAN/gfpgan/models/__init__.py",
"chars": 506,
"preview": "import importlib\nfrom basicsr.utils import scandir\nfrom os import path as osp\n\n# automatically scan and import model mod"
},
{
"path": "third_part/GFPGAN/gfpgan/models/gfpgan_model.py",
"chars": 26424,
"preview": "import math\nimport os.path as osp\nimport torch\nfrom basicsr.archs import build_network\nfrom basicsr.losses import build_"
},
{
"path": "third_part/GFPGAN/gfpgan/train.py",
"chars": 269,
"preview": "# flake8: noqa\nimport os.path as osp\nfrom basicsr.train import train_pipeline\n\nimport gfpgan.archs\nimport gfpgan.data\nim"
},
{
"path": "third_part/GFPGAN/gfpgan/utils.py",
"chars": 6047,
"preview": "import cv2\nimport os\nimport torch\nfrom basicsr.utils import img2tensor, tensor2img\nfrom basicsr.utils.download_util impo"
},
{
"path": "third_part/GFPGAN/gfpgan/version.py",
"chars": 128,
"preview": "# GENERATED VERSION FILE\n# TIME: Wed Apr 20 14:43:06 2022\n__version__ = '1.3.2'\n__gitsha__ = '924ce47'\nversion_info = (1"
},
{
"path": "third_part/GFPGAN/gfpgan/weights/README.md",
"chars": 54,
"preview": "# Weights\n\nPut the downloaded weights to this folder.\n"
},
{
"path": "third_part/GFPGAN/options/train_gfpgan_v1.yml",
"chars": 4593,
"preview": "# general settings\nname: train_GFPGANv1_512\nmodel_type: GFPGANModel\nnum_gpu: auto # officially, we use 4 GPUs\nmanual_se"
},
{
"path": "third_part/GFPGAN/options/train_gfpgan_v1_simple.yml",
"chars": 3733,
"preview": "# general settings\nname: train_GFPGANv1_512_simple\nmodel_type: GFPGANModel\nnum_gpu: auto # officially, we use 4 GPUs\nma"
},
{
"path": "third_part/GPEN/align_faces.py",
"chars": 9400,
"preview": "# -*- coding: utf-8 -*-\n\"\"\"\nCreated on Mon Apr 24 15:43:29 2017\n@author: zhaoy\n\"\"\"\n\"\"\"\n@Modified by yangxy (yangtao9009@"
},
{
"path": "third_part/GPEN/face_detect/data/FDDB/img_list.txt",
"chars": 66253,
"preview": "2002/08/11/big/img_591\n2002/08/26/big/img_265\n2002/07/19/big/img_423\n2002/08/24/big/img_490\n2002/08/31/big/img_17676\n200"
},
{
"path": "third_part/GPEN/face_detect/data/__init__.py",
"chars": 112,
"preview": "from .wider_face import WiderFaceDetection, detection_collate\nfrom .data_augment import *\nfrom .config import *\n"
},
{
"path": "third_part/GPEN/face_detect/data/config.py",
"chars": 930,
"preview": "# config.py\n\ncfg_mnet = {\n 'name': 'mobilenet0.25',\n 'min_sizes': [[16, 32], [64, 128], [256, 512]],\n 'steps': "
},
{
"path": "third_part/GPEN/face_detect/data/data_augment.py",
"chars": 7088,
"preview": "import cv2\nimport numpy as np\nimport random\nfrom face_detect.utils.box_utils import matrix_iof\n\n\ndef _crop(image, boxes,"
},
{
"path": "third_part/GPEN/face_detect/data/wider_face.py",
"chars": 3395,
"preview": "import os\nimport os.path\nimport sys\nimport torch\nimport torch.utils.data as data\nimport cv2\nimport numpy as np\n\nclass Wi"
},
{
"path": "third_part/GPEN/face_detect/facemodels/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/GPEN/face_detect/facemodels/net.py",
"chars": 4598,
"preview": "import time\nimport torch\nimport torch.nn as nn\nimport torchvision.models._utils as _utils\nimport torchvision.models as m"
},
{
"path": "third_part/GPEN/face_detect/facemodels/retinaface.py",
"chars": 4913,
"preview": "import torch\nimport torch.nn as nn\nimport torchvision.models.detection.backbone_utils as backbone_utils\nimport torchvisi"
},
{
"path": "third_part/GPEN/face_detect/layers/__init__.py",
"chars": 48,
"preview": "from .functions import *\nfrom .modules import *\n"
},
{
"path": "third_part/GPEN/face_detect/layers/functions/prior_box.py",
"chars": 1327,
"preview": "import torch\nfrom itertools import product as product\nimport numpy as np\nfrom math import ceil\n\n\nclass PriorBox(object):"
},
{
"path": "third_part/GPEN/face_detect/layers/modules/__init__.py",
"chars": 68,
"preview": "from .multibox_loss import MultiBoxLoss\n\n__all__ = ['MultiBoxLoss']\n"
},
{
"path": "third_part/GPEN/face_detect/layers/modules/multibox_loss.py",
"chars": 5297,
"preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nfrom torch.autograd import Variable\nfrom face_detect."
},
{
"path": "third_part/GPEN/face_detect/retinaface_detection.py",
"chars": 7908,
"preview": "'''\n@paper: GAN Prior Embedded Network for Blind Face Restoration in the Wild (CVPR2021)\n@author: yangxy (yangtao9009@gm"
},
{
"path": "third_part/GPEN/face_detect/utils/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/GPEN/face_detect/utils/box_utils.py",
"chars": 13171,
"preview": "import torch\nimport numpy as np\n\n\ndef point_form(boxes):\n \"\"\" Convert prior_boxes to (xmin, ymin, xmax, ymax)\n rep"
},
{
"path": "third_part/GPEN/face_detect/utils/nms/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/GPEN/face_detect/utils/nms/py_cpu_nms.py",
"chars": 1051,
"preview": "# --------------------------------------------------------\n# Fast R-CNN\n# Copyright (c) 2015 Microsoft\n# Licensed under "
},
{
"path": "third_part/GPEN/face_detect/utils/timer.py",
"chars": 1106,
"preview": "# --------------------------------------------------------\n# Fast R-CNN\n# Copyright (c) 2015 Microsoft\n# Licensed under "
},
{
"path": "third_part/GPEN/face_model/face_gan.py",
"chars": 1897,
"preview": "'''\n@paper: GAN Prior Embedded Network for Blind Face Restoration in the Wild (CVPR2021)\n@author: yangxy (yangtao9009@gm"
},
{
"path": "third_part/GPEN/face_model/gpen_model.py",
"chars": 22067,
"preview": "'''\n@paper: GAN Prior Embedded Network for Blind Face Restoration in the Wild (CVPR2021)\n@author: yangxy (yangtao9009@gm"
},
{
"path": "third_part/GPEN/face_model/op/__init__.py",
"chars": 89,
"preview": "from .fused_act import FusedLeakyReLU, fused_leaky_relu\nfrom .upfirdn2d import upfirdn2d\n"
},
{
"path": "third_part/GPEN/face_model/op/fused_act.py",
"chars": 2985,
"preview": "import os\nimport platform\n\nimport torch\nfrom torch import nn\nimport torch.nn.functional as F\nfrom torch.autograd import "
},
{
"path": "third_part/GPEN/face_model/op/fused_bias_act.cpp",
"chars": 826,
"preview": "#include <torch/extension.h>\n\n\ntorch::Tensor fused_bias_act_op(const torch::Tensor& input, const torch::Tensor& bias, co"
},
{
"path": "third_part/GPEN/face_model/op/fused_bias_act_kernel.cu",
"chars": 2777,
"preview": "// Copyright (c) 2019, NVIDIA Corporation. All rights reserved.\n//\n// This work is made available under the Nvidia Sourc"
},
{
"path": "third_part/GPEN/face_model/op/upfirdn2d.cpp",
"chars": 966,
"preview": "#include <torch/extension.h>\n\n\ntorch::Tensor upfirdn2d_op(const torch::Tensor& input, const torch::Tensor& kernel,\n "
},
{
"path": "third_part/GPEN/face_model/op/upfirdn2d.py",
"chars": 5773,
"preview": "import os\nimport platform\n\nimport torch\nimport torch.nn.functional as F\nfrom torch.autograd import Function\nfrom torch.u"
},
{
"path": "third_part/GPEN/face_model/op/upfirdn2d_kernel.cu",
"chars": 8953,
"preview": "// Copyright (c) 2019, NVIDIA Corporation. All rights reserved.\n//\n// This work is made available under the Nvidia Sourc"
},
{
"path": "third_part/GPEN/face_morpher/.gitignore",
"chars": 21,
"preview": "*.pyc\n*.swp\nMANIFEST\n"
},
{
"path": "third_part/GPEN/face_morpher/README.rst",
"chars": 7597,
"preview": "Face Morpher\n============\n\n| Warp, average and morph human faces!\n| Scripts will automatically detect frontal faces and "
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/__init__.py",
"chars": 187,
"preview": "\"\"\"\nFace Morpher module init code\n\"\"\"\nfrom .morpher import morpher, list_imgpaths\nfrom .averager import averager\n\n__all_"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/aligner.py",
"chars": 3225,
"preview": "\"\"\"\nAlign face and image sizes\n\"\"\"\nimport cv2\nimport numpy as np\n\ndef positive_cap(num):\n \"\"\" Cap a number to ensure po"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/averager.py",
"chars": 4079,
"preview": "\"\"\"\n::\n\n Face averager\n\n Usage:\n averager.py --images=<images_folder> [--blur] [--plot]\n [--background"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/blender.py",
"chars": 4439,
"preview": "import cv2\nimport numpy as np\nimport scipy.sparse\n\ndef mask_from_points(size, points):\n \"\"\" Create a mask of supplied s"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/locator.py",
"chars": 3736,
"preview": "\"\"\"\nLocate face points\n\"\"\"\n\nimport cv2\nimport numpy as np\nimport os.path as path\nimport dlib\nimport os\n\n\nDATA_DIR = os.e"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/morpher.py",
"chars": 5673,
"preview": "\"\"\"\n::\n\n Morph from source to destination face or\n Morph through all images in a folder\n\n Usage:\n morpher.py (--sr"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/plotter.py",
"chars": 2402,
"preview": "\"\"\"\nPlot and save images\n\"\"\"\n\nimport matplotlib.pyplot as plt\nimport matplotlib.image as mpimg\nimport os.path\nimport num"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/videoer.py",
"chars": 736,
"preview": "\"\"\"\nCreate a video with image frames\n\"\"\"\n\nimport cv2\nimport numpy as np\n\n\ndef check_write_video(func):\n def inner(self,"
},
{
"path": "third_part/GPEN/face_morpher/facemorpher/warper.py",
"chars": 4474,
"preview": "import numpy as np\nimport scipy.spatial as spatial\n\ndef bilinear_interpolate(img, coords):\n \"\"\" Interpolates over every"
},
{
"path": "third_part/GPEN/face_morpher/requirements.txt",
"chars": 35,
"preview": "numpy\nscipy\nmatplotlib\ndocopt\ndlib\n"
},
{
"path": "third_part/GPEN/face_morpher/scripts/make_docs.sh",
"chars": 460,
"preview": "#!/bin/bash\n\nrm -rf docs\n# reStructuredText in python files to rst. Documentation in docs folder\nsphinx-apidoc -A \"Alyss"
},
{
"path": "third_part/GPEN/face_morpher/scripts/publish_ghpages.sh",
"chars": 468,
"preview": "#!/bin/bash \n\n# delete previous gh-pages\ngit branch -D gh-pages\ngit push origin :gh-pages\n\ngit checkout -b gh-p"
},
{
"path": "third_part/GPEN/face_morpher/setup.cfg",
"chars": 146,
"preview": "[pep8]\nignore = E111,E114,E226,E302,E41,E121,E701\nmax-line-length = 100\n\n[flake8]\nignore = E111,E114,E226,E302,E41,E121,"
},
{
"path": "third_part/GPEN/face_morpher/setup.py",
"chars": 779,
"preview": "from setuptools import setup, find_packages\n\n# To test locally: python setup.py sdist bdist_wheel\n# To upload to pypi: t"
},
{
"path": "third_part/GPEN/face_parse/blocks.py",
"chars": 4395,
"preview": "# -*- coding: utf-8 -*-\nimport torch\nimport torch.nn as nn\nfrom torch.nn.parameter import Parameter\nfrom torch.nn import"
},
{
"path": "third_part/GPEN/face_parse/face_parsing.py",
"chars": 7270,
"preview": "'''\n@paper: GAN Prior Embedded Network for Blind Face Restoration in the Wild (CVPR2021)\n@author: yangxy (yangtao9009@gm"
},
{
"path": "third_part/GPEN/face_parse/model.py",
"chars": 10594,
"preview": "#!/usr/bin/python\n# -*- encoding: utf-8 -*-\n\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport "
},
{
"path": "third_part/GPEN/face_parse/parse_model.py",
"chars": 2618,
"preview": "'''\n@Created by chaofengc (chaofenghust@gmail.com)\n\n@Modified by yangxy (yangtao9009@gmail.com)\n'''\n\nfrom face_parse.blo"
},
{
"path": "third_part/GPEN/face_parse/resnet.py",
"chars": 3648,
"preview": "#!/usr/bin/python\n# -*- encoding: utf-8 -*-\n\nimport torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport t"
},
{
"path": "third_part/GPEN/gpen_face_enhancer.py",
"chars": 6053,
"preview": "import cv2\nimport numpy as np\n\n######### face enhancement\nfrom face_parse.face_parsing import FaceParse\nfrom face_detect"
},
{
"path": "third_part/face3d/checkpoints/model_name/test_opt.txt",
"chars": 2073,
"preview": "----------------- Options ---------------\n add_image: True \n bfm_f"
},
{
"path": "third_part/face3d/coeff_detector.py",
"chars": 3895,
"preview": "import os\nimport glob\nimport numpy as np\nfrom os import makedirs, name\nfrom PIL import Image\nfrom tqdm import tqdm\n\nimpo"
},
{
"path": "third_part/face3d/data/__init__.py",
"chars": 4584,
"preview": "\"\"\"This package includes all the modules related to data loading and preprocessing\n\n To add a custom dataset class calle"
},
{
"path": "third_part/face3d/data/base_dataset.py",
"chars": 4679,
"preview": "\"\"\"This module implements an abstract base class (ABC) 'BaseDataset' for datasets.\n\nIt also includes common transformati"
},
{
"path": "third_part/face3d/data/flist_dataset.py",
"chars": 4093,
"preview": "\"\"\"This script defines the custom dataset for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport os.path\nfrom data.base_dataset import "
},
{
"path": "third_part/face3d/data/image_folder.py",
"chars": 1959,
"preview": "\"\"\"A modified image folder class\n\nWe modify the official PyTorch image folder (https://github.com/pytorch/vision/blob/ma"
},
{
"path": "third_part/face3d/data/template_dataset.py",
"chars": 3506,
"preview": "\"\"\"Dataset class template\n\nThis module provides a template for users to implement custom datasets.\nYou can specify '--da"
},
{
"path": "third_part/face3d/data_preparation.py",
"chars": 2028,
"preview": "\"\"\"This script is the data preparation script for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport os \nimport numpy as np\nimport argp"
},
{
"path": "third_part/face3d/extract_kp_videos.py",
"chars": 3930,
"preview": "import os\nimport cv2\nimport time\nimport glob\nimport argparse\nimport face_alignment\nimport numpy as np\nfrom PIL import Im"
},
{
"path": "third_part/face3d/face_recon_videos.py",
"chars": 5697,
"preview": "import os\nimport cv2\nimport glob\nimport numpy as np\nfrom PIL import Image\nfrom tqdm import tqdm\nfrom scipy.io import sav"
},
{
"path": "third_part/face3d/models/__init__.py",
"chars": 3086,
"preview": "\"\"\"This package contains modules related to objective functions, optimizations, and network architectures.\n\nTo add a cus"
},
{
"path": "third_part/face3d/models/arcface_torch/README.md",
"chars": 8597,
"preview": "# Distributed Arcface Training in Pytorch\n\nThis is a deep learning library that makes face recognition efficient, and ef"
},
{
"path": "third_part/face3d/models/arcface_torch/backbones/__init__.py",
"chars": 822,
"preview": "from .iresnet import iresnet18, iresnet34, iresnet50, iresnet100, iresnet200\nfrom .mobilefacenet import get_mbf\n\n\ndef ge"
},
{
"path": "third_part/face3d/models/arcface_torch/backbones/iresnet.py",
"chars": 7149,
"preview": "import torch\nfrom torch import nn\n\n__all__ = ['iresnet18', 'iresnet34', 'iresnet50', 'iresnet100', 'iresnet200']\n\n\ndef c"
},
{
"path": "third_part/face3d/models/arcface_torch/backbones/iresnet2060.py",
"chars": 6708,
"preview": "import torch\nfrom torch import nn\n\nassert torch.__version__ >= \"1.8.1\"\nfrom torch.utils.checkpoint import checkpoint_seq"
},
{
"path": "third_part/face3d/models/arcface_torch/backbones/mobilefacenet.py",
"chars": 4895,
"preview": "'''\nAdapted from https://github.com/cavalleria/cavaface.pytorch/blob/master/backbone/mobilefacenet.py\nOriginal author ca"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/3millions.py",
"chars": 519,
"preview": "from easydict import EasyDict as edict\n\n# configs for test speed\n\nconfig = edict()\nconfig.loss = \"arcface\"\nconfig.networ"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/3millions_pfc.py",
"chars": 519,
"preview": "from easydict import EasyDict as edict\n\n# configs for test speed\n\nconfig = edict()\nconfig.loss = \"arcface\"\nconfig.networ"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/face3d/models/arcface_torch/configs/base.py",
"chars": 1628,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/glint360k_mbf.py",
"chars": 647,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/glint360k_r100.py",
"chars": 648,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/glint360k_r18.py",
"chars": 647,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/glint360k_r34.py",
"chars": 647,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/glint360k_r50.py",
"chars": 647,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/ms1mv3_mbf.py",
"chars": 651,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/ms1mv3_r18.py",
"chars": 651,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/ms1mv3_r2060.py",
"chars": 652,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/ms1mv3_r34.py",
"chars": 651,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/ms1mv3_r50.py",
"chars": 651,
"preview": "from easydict import EasyDict as edict\n\n# make training faster\n# our RAM is 256G\n# mount -t tmpfs -o size=140G tmpfs /t"
},
{
"path": "third_part/face3d/models/arcface_torch/configs/speed.py",
"chars": 519,
"preview": "from easydict import EasyDict as edict\n\n# configs for test speed\n\nconfig = edict()\nconfig.loss = \"arcface\"\nconfig.networ"
},
{
"path": "third_part/face3d/models/arcface_torch/dataset.py",
"chars": 3868,
"preview": "import numbers\nimport os\nimport queue as Queue\nimport threading\n\nimport mxnet as mx\nimport numpy as np\nimport torch\nfrom"
},
{
"path": "third_part/face3d/models/arcface_torch/docs/eval.md",
"chars": 655,
"preview": "## Eval on ICCV2021-MFR\n\ncoming soon.\n\n\n## Eval IJBC\nYou can eval ijbc with pytorch or onnx.\n\n\n1. Eval IJBC With Onnx\n``"
},
{
"path": "third_part/face3d/models/arcface_torch/docs/install.md",
"chars": 1613,
"preview": "## v1.8.0 \n### Linux and Windows \n```shell\n# CUDA 11.0\npip --default-timeout=100 install torch==1.8.0+cu111 torchvision"
},
{
"path": "third_part/face3d/models/arcface_torch/docs/modelzoo.md",
"chars": 0,
"preview": ""
},
{
"path": "third_part/face3d/models/arcface_torch/docs/speed_benchmark.md",
"chars": 5465,
"preview": "## Test Training Speed\n\n- Test Commands\n\nYou need to use the following two commands to test the Partial FC training perf"
},
{
"path": "third_part/face3d/models/arcface_torch/eval/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/face3d/models/arcface_torch/eval/verification.py",
"chars": 16092,
"preview": "\"\"\"Helper for evaluation on the Labeled Faces in the Wild dataset \n\"\"\"\n\n# MIT License\n#\n# Copyright (c) 2016 David Sandb"
},
{
"path": "third_part/face3d/models/arcface_torch/eval_ijbc.py",
"chars": 17222,
"preview": "# coding: utf-8\n\nimport os\nimport pickle\n\nimport matplotlib\nimport pandas as pd\n\nmatplotlib.use('Agg')\nimport matplotlib"
},
{
"path": "third_part/face3d/models/arcface_torch/inference.py",
"chars": 1033,
"preview": "import argparse\n\nimport cv2\nimport numpy as np\nimport torch\n\nfrom backbones import get_model\n\n\n@torch.no_grad()\ndef infe"
},
{
"path": "third_part/face3d/models/arcface_torch/losses.py",
"chars": 1137,
"preview": "import torch\nfrom torch import nn\n\n\ndef get_loss(name):\n if name == \"cosface\":\n return CosFace()\n elif name"
},
{
"path": "third_part/face3d/models/arcface_torch/onnx_helper.py",
"chars": 10422,
"preview": "from __future__ import division\nimport datetime\nimport os\nimport os.path as osp\nimport glob\nimport numpy as np\nimport cv"
},
{
"path": "third_part/face3d/models/arcface_torch/onnx_ijbc.py",
"chars": 10321,
"preview": "import argparse\nimport os\nimport pickle\nimport timeit\n\nimport cv2\nimport mxnet as mx\nimport numpy as np\nimport pandas as"
},
{
"path": "third_part/face3d/models/arcface_torch/partial_fc.py",
"chars": 9492,
"preview": "import logging\nimport os\n\nimport torch\nimport torch.distributed as dist\nfrom torch.nn import Module\nfrom torch.nn.functi"
},
{
"path": "third_part/face3d/models/arcface_torch/requirement.txt",
"chars": 40,
"preview": "tensorboard\neasydict\nmxnet\nonnx\nsklearn\n"
},
{
"path": "third_part/face3d/models/arcface_torch/run.sh",
"chars": 260,
"preview": "CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node=8 --nnodes=1 --node_rank=0 --ma"
},
{
"path": "third_part/face3d/models/arcface_torch/torch2onnx.py",
"chars": 2365,
"preview": "import numpy as np\nimport onnx\nimport torch\n\n\ndef convert_onnx(net, path_module, output, opset=11, simplify=False):\n "
},
{
"path": "third_part/face3d/models/arcface_torch/train.py",
"chars": 6023,
"preview": "import argparse\nimport logging\nimport os\n\nimport torch\nimport torch.distributed as dist\nimport torch.nn.functional as F\n"
},
{
"path": "third_part/face3d/models/arcface_torch/utils/__init__.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/face3d/models/arcface_torch/utils/plot.py",
"chars": 2222,
"preview": "# coding: utf-8\n\nimport os\nfrom pathlib import Path\n\nimport matplotlib.pyplot as plt\nimport numpy as np\nimport pandas as"
},
{
"path": "third_part/face3d/models/arcface_torch/utils/utils_amp.py",
"chars": 3286,
"preview": "from typing import Dict, List\n\nimport torch\n\nif torch.__version__ < '1.9':\n Iterable = torch._six.container_abcs.Iter"
},
{
"path": "third_part/face3d/models/arcface_torch/utils/utils_callbacks.py",
"chars": 5038,
"preview": "import logging\nimport os\nimport time\nfrom typing import List\n\nimport torch\n\nfrom eval import verification\nfrom utils.uti"
},
{
"path": "third_part/face3d/models/arcface_torch/utils/utils_config.py",
"chars": 571,
"preview": "import importlib\nimport os.path as osp\n\n\ndef get_config(config_file):\n assert config_file.startswith('configs/'), 'co"
},
{
"path": "third_part/face3d/models/arcface_torch/utils/utils_logging.py",
"chars": 1110,
"preview": "import logging\nimport os\nimport sys\n\n\nclass AverageMeter(object):\n \"\"\"Computes and stores the average and current val"
},
{
"path": "third_part/face3d/models/arcface_torch/utils/utils_os.py",
"chars": 0,
"preview": ""
},
{
"path": "third_part/face3d/models/base_model.py",
"chars": 13168,
"preview": "\"\"\"This script defines the base network model for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport os\nimport numpy as np\nimport torch"
},
{
"path": "third_part/face3d/models/bfm.py",
"chars": 11121,
"preview": "\"\"\"This script defines the parametric 3d face model for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport numpy as np\nimport torch\nim"
},
{
"path": "third_part/face3d/models/facerecon_model.py",
"chars": 10979,
"preview": "\"\"\"This script defines the face reconstruction model for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport numpy as np\nimport torch\nfr"
},
{
"path": "third_part/face3d/models/losses.py",
"chars": 4151,
"preview": "import numpy as np\nimport torch\nimport torch.nn as nn\nfrom kornia.geometry import warp_affine\nimport torch.nn.functional"
},
{
"path": "third_part/face3d/models/networks.py",
"chars": 20746,
"preview": "\"\"\"This script defines deep neural networks for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport os\nimport numpy as np\nimport torch.n"
},
{
"path": "third_part/face3d/models/template_model.py",
"chars": 5971,
"preview": "\"\"\"Model class template\n\nThis module provides a template for users to implement custom models.\nYou can specify '--model "
},
{
"path": "third_part/face3d/options/__init__.py",
"chars": 136,
"preview": "\"\"\"This package options includes option modules: training options, test options, and basic options (used in both trainin"
},
{
"path": "third_part/face3d/options/base_options.py",
"chars": 7493,
"preview": "\"\"\"This script contains base options for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport argparse\nimport os\nfrom util import util\nim"
},
{
"path": "third_part/face3d/options/inference_options.py",
"chars": 1171,
"preview": "from face3d.options.base_options import BaseOptions\n\n\nclass InferenceOptions(BaseOptions):\n \"\"\"This class includes te"
},
{
"path": "third_part/face3d/options/test_options.py",
"chars": 830,
"preview": "\"\"\"This script contains the test options for Deep3DFaceRecon_pytorch\n\"\"\"\n\nfrom .base_options import BaseOptions\n\n\nclass "
},
{
"path": "third_part/face3d/options/train_options.py",
"chars": 3744,
"preview": "\"\"\"This script contains the training options for Deep3DFaceRecon_pytorch\n\"\"\"\n\nfrom .base_options import BaseOptions\nfrom"
},
{
"path": "third_part/face3d/util/__init__.py",
"chars": 109,
"preview": "\"\"\"This package includes a miscellaneous collection of useful helper functions.\"\"\"\nfrom face3d.util import *\n"
},
{
"path": "third_part/face3d/util/detect_lm68.py",
"chars": 4033,
"preview": "import os\nimport cv2\nimport numpy as np\nfrom scipy.io import loadmat\nimport tensorflow as tf\nfrom util.preprocess import"
},
{
"path": "third_part/face3d/util/generate_list.py",
"chars": 1346,
"preview": "\"\"\"This script is to generate training list files for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport os\n\n# save path to training da"
},
{
"path": "third_part/face3d/util/html.py",
"chars": 3223,
"preview": "import dominate\nfrom dominate.tags import meta, h3, table, tr, td, p, a, img, br\nimport os\n\n\nclass HTML:\n \"\"\"This HTM"
},
{
"path": "third_part/face3d/util/load_mats.py",
"chars": 4435,
"preview": "\"\"\"This script is to load 3D face model for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport numpy as np\nfrom PIL import Image\nfrom s"
},
{
"path": "third_part/face3d/util/nvdiffrast.py",
"chars": 3594,
"preview": "\"\"\"This script is the differentiable renderer for Deep3DFaceRecon_pytorch\n Attention, antialiasing step is missing in"
},
{
"path": "third_part/face3d/util/preprocess.py",
"chars": 7488,
"preview": "\"\"\"\nThis script contains the image preprocessing code for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport numpy as np\nfrom scipy.io "
},
{
"path": "third_part/face3d/util/skin_mask.py",
"chars": 5333,
"preview": "\"\"\"This script is to generate skin attention mask for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport math\nimport numpy as np\nimport"
},
{
"path": "third_part/face3d/util/test_mean_face.txt",
"chars": 3481,
"preview": "-5.228591537475585938e+01\n2.078247070312500000e-01\n-5.064269638061523438e+01\n-1.315765380859375000e+01\n-4.95293922424316"
},
{
"path": "third_part/face3d/util/util.py",
"chars": 6589,
"preview": "\"\"\"This script contains basic utilities for Deep3DFaceRecon_pytorch\n\"\"\"\nfrom __future__ import print_function\nimport num"
},
{
"path": "third_part/face3d/util/visualizer.py",
"chars": 10484,
"preview": "\"\"\"This script defines the visualizer for Deep3DFaceRecon_pytorch\n\"\"\"\n\nimport numpy as np\nimport os\nimport sys\nimport nt"
},
{
"path": "third_part/face_detection/README.md",
"chars": 209,
"preview": "The code for Face Detection in this folder has been taken from the wonderful [face_alignment](https://github.com/1adrian"
},
{
"path": "third_part/face_detection/__init__.py",
"chars": 183,
"preview": "# -*- coding: utf-8 -*-\n\n__author__ = \"\"\"Adrian Bulat\"\"\"\n__email__ = 'adrian.bulat@nottingham.ac.uk'\n__version__ = '1.0."
},
{
"path": "third_part/face_detection/api.py",
"chars": 2266,
"preview": "from __future__ import print_function\nimport os\nimport torch\nfrom torch.utils.model_zoo import load_url\nfrom enum import"
},
{
"path": "third_part/face_detection/detection/__init__.py",
"chars": 30,
"preview": "from .core import FaceDetector"
},
{
"path": "third_part/face_detection/detection/core.py",
"chars": 4868,
"preview": "import logging\nimport glob\nfrom tqdm import tqdm\nimport numpy as np\nimport torch\nimport cv2\n\n\nclass FaceDetector(object)"
},
{
"path": "third_part/face_detection/detection/sfd/__init__.py",
"chars": 53,
"preview": "from .sfd_detector import SFDDetector as FaceDetector"
},
{
"path": "third_part/face_detection/detection/sfd/bbox.py",
"chars": 4279,
"preview": "from __future__ import print_function\nimport os\nimport sys\nimport cv2\nimport random\nimport datetime\nimport time\nimport m"
},
{
"path": "third_part/face_detection/detection/sfd/detect.py",
"chars": 3863,
"preview": "import torch\nimport torch.nn.functional as F\n\nimport os\nimport sys\nimport cv2\nimport random\nimport datetime\nimport math\n"
},
{
"path": "third_part/face_detection/detection/sfd/net_s3fd.py",
"chars": 5291,
"preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\n\n\nclass L2Norm(nn.Module):\n def __init__(self, n_c"
},
{
"path": "third_part/face_detection/detection/sfd/sfd_detector.py",
"chars": 1797,
"preview": "import os\nimport cv2\nfrom torch.utils.model_zoo import load_url\n\nfrom ..core import FaceDetector\n\nfrom .net_s3fd import "
},
{
"path": "third_part/face_detection/models.py",
"chars": 8619,
"preview": "import torch\nimport torch.nn as nn\nimport torch.nn.functional as F\nimport math\n\n\ndef conv3x3(in_planes, out_planes, strd"
},
{
"path": "third_part/face_detection/utils.py",
"chars": 11808,
"preview": "from __future__ import print_function\nimport os\nimport sys\nimport time\nimport torch\nimport math\nimport numpy as np\nimpor"
},
{
"path": "third_part/ganimation_replicate/LICENSE",
"chars": 1078,
"preview": "MIT License\n\nCopyright (c) 2019 Yuedong Chen (Donald)\n\nPermission is hereby granted, free of charge, to any person obtai"
},
{
"path": "third_part/ganimation_replicate/checkpoints/opt.txt",
"chars": 82179,
"preview": "------------------- [ test][220417_224012]Options --------------------\n aus_nc: 17 "
},
{
"path": "third_part/ganimation_replicate/checkpoints/run_script.sh",
"chars": 2382,
"preview": "[ test][220417_224012]python main.py --mode test --data_root datasets/celebA --ckpt_dir checkpoints --load_epoch 30\n[ te"
},
{
"path": "third_part/ganimation_replicate/ckpts/ganimation/220419_183211/opt.txt",
"chars": 3515,
"preview": "------------------- [train][220419_183211]Options --------------------\n aus_nc: 17 "
},
{
"path": "third_part/ganimation_replicate/ckpts/ganimation/220419_183211/run_script.sh",
"chars": 51,
"preview": "[train][220419_183211]python test.py --data_root .\n"
},
{
"path": "third_part/ganimation_replicate/ckpts/ganimation/220419_183229/opt.txt",
"chars": 3515,
"preview": "------------------- [train][220419_183229]Options --------------------\n aus_nc: 17 "
},
{
"path": "third_part/ganimation_replicate/ckpts/ganimation/220419_183229/run_script.sh",
"chars": 51,
"preview": "[train][220419_183229]python test.py --data_root .\n"
},
{
"path": "third_part/ganimation_replicate/ckpts/opt.txt",
"chars": 42492,
"preview": "------------------- [ test][220419_183311]Options --------------------\n aus_nc: 17 "
},
{
"path": "third_part/ganimation_replicate/ckpts/run_script.sh",
"chars": 756,
"preview": "[ test][220419_183311]python test.py --data_root . --mode test\n[ test][220419_183356]python test.py --data_root . --mode"
},
{
"path": "third_part/ganimation_replicate/data/__init__.py",
"chars": 42,
"preview": "from .data_loader import create_dataloader"
},
{
"path": "third_part/ganimation_replicate/data/base_dataset.py",
"chars": 2640,
"preview": "import torch\nimport os\nfrom PIL import Image\nimport random\nimport numpy as np\nimport pickle\nimport torchvision.transform"
},
{
"path": "third_part/ganimation_replicate/data/celeba.py",
"chars": 1883,
"preview": "from .base_dataset import BaseDataset\nimport os\nimport random\nimport numpy as np\n\n\nclass CelebADataset(BaseDataset):\n "
},
{
"path": "third_part/ganimation_replicate/data/data_loader.py",
"chars": 1343,
"preview": "import torch\nimport os\nfrom PIL import Image\nimport random\nimport numpy as np\nimport pickle\nimport torchvision.transform"
},
{
"path": "third_part/ganimation_replicate/main.py",
"chars": 256,
"preview": "\"\"\"\nCreated on Dec 13, 2018\n@author: Yuedong Chen\n\"\"\"\n\nfrom options import Options\nfrom solvers import create_solver\n\n\n\n"
},
{
"path": "third_part/ganimation_replicate/model/__init__.py",
"chars": 414,
"preview": "from .base_model import BaseModel\nfrom .ganimation import GANimationModel\nfrom .stargan import StarGANModel\n\n\n\ndef creat"
},
{
"path": "third_part/ganimation_replicate/model/base_model.py",
"chars": 6803,
"preview": "import torch\nimport os\nfrom collections import OrderedDict\nimport random\nfrom . import model_utils\n\n\nclass BaseModel:\n "
},
{
"path": "third_part/ganimation_replicate/model/ganimation.py",
"chars": 6325,
"preview": "import torch\nfrom .base_model import BaseModel\nfrom . import model_utils\n\n\nclass GANimationModel(BaseModel):\n \"\"\"docs"
},
{
"path": "third_part/ganimation_replicate/model/model_utils.py",
"chars": 22762,
"preview": "import torch\nimport torch.nn as nn\nfrom torch.nn import init\nimport functools\nfrom torch.optim import lr_scheduler\nfrom "
},
{
"path": "third_part/ganimation_replicate/model/stargan.py",
"chars": 5475,
"preview": "import torch\nfrom .base_model import BaseModel\nfrom . import model_utils\n\n\n\nclass StarGANModel(BaseModel):\n \"\"\"docstr"
}
]
// ... and 11 more files (download for full content)
About this extraction
This page contains the full source code of the vinthony/video-retalking GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 211 files (1.3 MB), approximately 399.1k tokens, and a symbol index with 1277 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.