Instructions to use Joypop/GDPO with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Diffusers
How to use Joypop/GDPO with Diffusers:
pip install -U diffusers transformers accelerate
import torch from diffusers import DiffusionPipeline from diffusers.utils import load_image # switch to "mps" for apple devices pipe = DiffusionPipeline.from_pretrained("Joypop/GDPO", dtype=torch.bfloat16, device_map="cuda") prompt = "Turn this cat into a dog" input_image = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png") image = pipe(image=input_image, prompt=prompt).images[0] - Notebooks
- Google Colab
- Kaggle
Add model weights
Browse filesThis view is limited to 50 files because it contains too many changes. See raw diff
- GDPOSR/datasets/__pycache__/realesrgan.cpython-310.pyc +0 -0
- GDPOSR/datasets/params_GDPO.yml +42 -0
- GDPOSR/datasets/realesrgan.py +305 -0
- GDPOSR/diffusermodels/__pycache__/autoencoder_kl.cpython-310.pyc +0 -0
- GDPOSR/diffusermodels/__pycache__/unet_2d_condition.cpython-310.pyc +0 -0
- GDPOSR/diffusermodels/autoencoder_kl.py +560 -0
- GDPOSR/diffusermodels/unet_2d_condition.py +1280 -0
- GDPOSR/inferences/test.py +107 -0
- GDPOSR/losses/__pycache__/grpo.cpython-310.pyc +0 -0
- GDPOSR/losses/grpo.py +52 -0
- GDPOSR/mergelora.py +72 -0
- GDPOSR/modelfile/GDPOSR.py +623 -0
- GDPOSR/modelfile/__pycache__/GDPOSR.cpython-310.pyc +0 -0
- GDPOSR/my_utils/__pycache__/mask.cpython-310.pyc +0 -0
- GDPOSR/my_utils/__pycache__/training_utils_realsr.cpython-310.pyc +0 -0
- GDPOSR/my_utils/__pycache__/wavelet_color_fix.cpython-310.pyc +0 -0
- GDPOSR/my_utils/mask.py +126 -0
- GDPOSR/my_utils/training_utils_realsr.py +305 -0
- GDPOSR/my_utils/wavelet_color_fix.py +119 -0
- GDPOSR/train/train_GDPOSR.py +233 -0
- GDPOSR/train/train_NAOSD.py +256 -0
- ram/__init__.py +2 -0
- ram/configs/condition_config.json +3 -0
- ram/configs/med_config.json +21 -0
- ram/configs/q2l_config.json +22 -0
- ram/configs/swin/config_swinB_384.json +9 -0
- ram/configs/swin/config_swinL_384.json +9 -0
- ram/configs/swin/config_swinL_444.json +9 -0
- ram/data/ram_tag_list.txt +4585 -0
- ram/data/ram_tag_list_chinese.txt +4585 -0
- ram/data/ram_tag_list_threshold.txt +4585 -0
- ram/data/tag_list.txt +3429 -0
- ram/inference.py +46 -0
- ram/models/__init__.py +2 -0
- ram/models/__pycache__/__init__.cpython-310.pyc +0 -0
- ram/models/__pycache__/bert.cpython-310.pyc +0 -0
- ram/models/__pycache__/bert_lora.cpython-310.pyc +0 -0
- ram/models/__pycache__/condition_network.cpython-310.pyc +0 -0
- ram/models/__pycache__/ram.cpython-310.pyc +0 -0
- ram/models/__pycache__/ram_condition.cpython-310.pyc +0 -0
- ram/models/__pycache__/ram_lora.cpython-310.pyc +0 -0
- ram/models/__pycache__/ram_swin_bert_lora.cpython-310.pyc +0 -0
- ram/models/__pycache__/ram_swin_lora.cpython-310.pyc +0 -0
- ram/models/__pycache__/swin_transformer.cpython-310.pyc +0 -0
- ram/models/__pycache__/swin_transformer_lora.cpython-310.pyc +0 -0
- ram/models/__pycache__/tag2text.cpython-310.pyc +0 -0
- ram/models/__pycache__/tag2text_lora.cpython-310.pyc +0 -0
- ram/models/__pycache__/utils.cpython-310.pyc +0 -0
- ram/models/__pycache__/vit.cpython-310.pyc +0 -0
- ram/models/bert.py +1035 -0
GDPOSR/datasets/__pycache__/realesrgan.cpython-310.pyc
ADDED
|
Binary file (7.81 kB). View file
|
|
|
GDPOSR/datasets/params_GDPO.yml
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
scale: 4
|
| 2 |
+
color_jitter_prob: 0.0
|
| 3 |
+
gray_prob: 0.0
|
| 4 |
+
|
| 5 |
+
# the first degradation process
|
| 6 |
+
resize_prob: [0.2, 0.7, 0.1] # up, down, keep
|
| 7 |
+
resize_range: [0.3, 1.5]
|
| 8 |
+
gaussian_noise_prob: 0.5
|
| 9 |
+
noise_range: [1, 15]
|
| 10 |
+
poisson_scale_range: [0.05, 2.0]
|
| 11 |
+
gray_noise_prob: 0.4
|
| 12 |
+
jpeg_range: [60, 95]
|
| 13 |
+
|
| 14 |
+
# the second degradation process
|
| 15 |
+
second_phase_prob: 1.0
|
| 16 |
+
second_blur_prob: 0.5
|
| 17 |
+
resize_prob2: [0.3, 0.4, 0.3] # up, down, keep
|
| 18 |
+
resize_range2: [0.6, 1.2]
|
| 19 |
+
gaussian_noise_prob2: 0.5
|
| 20 |
+
noise_range2: [1, 12]
|
| 21 |
+
poisson_scale_range2: [0.05, 1.0]
|
| 22 |
+
gray_noise_prob2: 0.4
|
| 23 |
+
jpeg_range2: [60, 100]
|
| 24 |
+
|
| 25 |
+
kernel_info:
|
| 26 |
+
blur_kernel_size: 21
|
| 27 |
+
kernel_list: ['iso', 'aniso', 'generalized_iso', 'generalized_aniso', 'plateau_iso', 'plateau_aniso']
|
| 28 |
+
kernel_prob: [0.45, 0.25, 0.12, 0.03, 0.12, 0.03]
|
| 29 |
+
sinc_prob: 0.1
|
| 30 |
+
blur_sigma: [0.2, 3]
|
| 31 |
+
betag_range: [0.5, 4]
|
| 32 |
+
betap_range: [1, 2]
|
| 33 |
+
|
| 34 |
+
blur_kernel_size2: 21
|
| 35 |
+
kernel_list2: ['iso', 'aniso', 'generalized_iso', 'generalized_aniso', 'plateau_iso', 'plateau_aniso']
|
| 36 |
+
kernel_prob2: [0.45, 0.25, 0.12, 0.03, 0.12, 0.03]
|
| 37 |
+
sinc_prob2: 0.1
|
| 38 |
+
blur_sigma2: [0.2, 1.5]
|
| 39 |
+
betag_range2: [0.5, 4]
|
| 40 |
+
betap_range2: [1, 2]
|
| 41 |
+
|
| 42 |
+
final_sinc_prob: 0.8
|
GDPOSR/datasets/realesrgan.py
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import numpy as np
|
| 3 |
+
import cv2
|
| 4 |
+
import glob
|
| 5 |
+
import math
|
| 6 |
+
import yaml
|
| 7 |
+
import random
|
| 8 |
+
from collections import OrderedDict
|
| 9 |
+
import torch
|
| 10 |
+
import torch.nn.functional as F
|
| 11 |
+
|
| 12 |
+
from basicsr.data.transforms import augment
|
| 13 |
+
from basicsr.data.degradations import circular_lowpass_kernel, random_mixed_kernels
|
| 14 |
+
from basicsr.utils import DiffJPEG, USMSharp, img2tensor, tensor2img
|
| 15 |
+
from basicsr.utils.img_process_util import filter2D
|
| 16 |
+
from basicsr.data.degradations import random_add_gaussian_noise_pt, random_add_poisson_noise_pt
|
| 17 |
+
from torchvision.transforms.functional import (adjust_brightness, adjust_contrast, adjust_hue, adjust_saturation,
|
| 18 |
+
normalize, rgb_to_grayscale)
|
| 19 |
+
|
| 20 |
+
cur_path = os.path.dirname(os.path.abspath(__file__))
|
| 21 |
+
|
| 22 |
+
def ordered_yaml():
|
| 23 |
+
"""Support OrderedDict for yaml.
|
| 24 |
+
|
| 25 |
+
Returns:
|
| 26 |
+
yaml Loader and Dumper.
|
| 27 |
+
"""
|
| 28 |
+
try:
|
| 29 |
+
from yaml import CDumper as Dumper
|
| 30 |
+
from yaml import CLoader as Loader
|
| 31 |
+
except ImportError:
|
| 32 |
+
from yaml import Dumper, Loader
|
| 33 |
+
|
| 34 |
+
_mapping_tag = yaml.resolver.BaseResolver.DEFAULT_MAPPING_TAG
|
| 35 |
+
|
| 36 |
+
def dict_representer(dumper, data):
|
| 37 |
+
return dumper.represent_dict(data.items())
|
| 38 |
+
|
| 39 |
+
def dict_constructor(loader, node):
|
| 40 |
+
return OrderedDict(loader.construct_pairs(node))
|
| 41 |
+
|
| 42 |
+
Dumper.add_representer(OrderedDict, dict_representer)
|
| 43 |
+
Loader.add_constructor(_mapping_tag, dict_constructor)
|
| 44 |
+
return Loader, Dumper
|
| 45 |
+
|
| 46 |
+
def opt_parse(opt_path):
|
| 47 |
+
with open(opt_path, mode='r') as f:
|
| 48 |
+
Loader, _ = ordered_yaml()
|
| 49 |
+
opt = yaml.load(f, Loader=Loader) # ignore_security_alert_wait_for_fix RCE
|
| 50 |
+
|
| 51 |
+
return opt
|
| 52 |
+
|
| 53 |
+
class RealESRGAN_degradation(object):
|
| 54 |
+
def __init__(self, opt_name='params_realesrgan.yml', device='cpu'):
|
| 55 |
+
opt_path = f'{cur_path}/{opt_name}'
|
| 56 |
+
self.opt = opt_parse(opt_path)
|
| 57 |
+
self.device = device #torch.device('cpu')
|
| 58 |
+
optk = self.opt['kernel_info']
|
| 59 |
+
|
| 60 |
+
# blur settings for the first degradation
|
| 61 |
+
self.blur_kernel_size = optk['blur_kernel_size']
|
| 62 |
+
self.kernel_list = optk['kernel_list']
|
| 63 |
+
self.kernel_prob = optk['kernel_prob']
|
| 64 |
+
self.blur_sigma = optk['blur_sigma']
|
| 65 |
+
self.betag_range = optk['betag_range']
|
| 66 |
+
self.betap_range = optk['betap_range']
|
| 67 |
+
self.sinc_prob = optk['sinc_prob']
|
| 68 |
+
|
| 69 |
+
# blur settings for the second degradation
|
| 70 |
+
self.blur_kernel_size2 = optk['blur_kernel_size2']
|
| 71 |
+
self.kernel_list2 = optk['kernel_list2']
|
| 72 |
+
self.kernel_prob2 = optk['kernel_prob2']
|
| 73 |
+
self.blur_sigma2 = optk['blur_sigma2']
|
| 74 |
+
self.betag_range2 = optk['betag_range2']
|
| 75 |
+
self.betap_range2 = optk['betap_range2']
|
| 76 |
+
self.sinc_prob2 = optk['sinc_prob2']
|
| 77 |
+
|
| 78 |
+
# a final sinc filter
|
| 79 |
+
self.final_sinc_prob = optk['final_sinc_prob']
|
| 80 |
+
|
| 81 |
+
self.kernel_range = [2 * v + 1 for v in range(3, 11)] # kernel size ranges from 7 to 21
|
| 82 |
+
self.pulse_tensor = torch.zeros(21, 21).float() # convolving with pulse tensor brings no blurry effect
|
| 83 |
+
self.pulse_tensor[10, 10] = 1
|
| 84 |
+
|
| 85 |
+
self.jpeger = DiffJPEG(differentiable=False).to(self.device)
|
| 86 |
+
self.usm_shaper = USMSharp().to(self.device)
|
| 87 |
+
|
| 88 |
+
def color_jitter_pt(self, img, brightness, contrast, saturation, hue):
|
| 89 |
+
fn_idx = torch.randperm(4)
|
| 90 |
+
for fn_id in fn_idx:
|
| 91 |
+
if fn_id == 0 and brightness is not None:
|
| 92 |
+
brightness_factor = torch.tensor(1.0).uniform_(brightness[0], brightness[1]).item()
|
| 93 |
+
img = adjust_brightness(img, brightness_factor)
|
| 94 |
+
|
| 95 |
+
if fn_id == 1 and contrast is not None:
|
| 96 |
+
contrast_factor = torch.tensor(1.0).uniform_(contrast[0], contrast[1]).item()
|
| 97 |
+
img = adjust_contrast(img, contrast_factor)
|
| 98 |
+
|
| 99 |
+
if fn_id == 2 and saturation is not None:
|
| 100 |
+
saturation_factor = torch.tensor(1.0).uniform_(saturation[0], saturation[1]).item()
|
| 101 |
+
img = adjust_saturation(img, saturation_factor)
|
| 102 |
+
|
| 103 |
+
if fn_id == 3 and hue is not None:
|
| 104 |
+
hue_factor = torch.tensor(1.0).uniform_(hue[0], hue[1]).item()
|
| 105 |
+
img = adjust_hue(img, hue_factor)
|
| 106 |
+
return img
|
| 107 |
+
|
| 108 |
+
def random_augment(self, img_gt):
|
| 109 |
+
# random horizontal flip
|
| 110 |
+
img_gt, status = augment(img_gt, hflip=True, rotation=False, return_status=True)
|
| 111 |
+
"""
|
| 112 |
+
# random color jitter
|
| 113 |
+
if np.random.uniform() < self.opt['color_jitter_prob']:
|
| 114 |
+
jitter_val = np.random.uniform(-shift, shift, 3).astype(np.float32)
|
| 115 |
+
img_gt = img_gt + jitter_val
|
| 116 |
+
img_gt = np.clip(img_gt, 0, 1)
|
| 117 |
+
|
| 118 |
+
# random grayscale
|
| 119 |
+
if np.random.uniform() < self.opt['gray_prob']:
|
| 120 |
+
#img_gt = cv2.cvtColor(img_gt, cv2.COLOR_BGR2GRAY)
|
| 121 |
+
img_gt = cv2.cvtColor(img_gt, cv2.COLOR_RGB2GRAY)
|
| 122 |
+
img_gt = np.tile(img_gt[:, :, None], [1, 1, 3])
|
| 123 |
+
"""
|
| 124 |
+
# BGR to RGB, HWC to CHW, numpy to tensor
|
| 125 |
+
img_gt = img2tensor([img_gt], bgr2rgb=False, float32=True)[0].unsqueeze(0)
|
| 126 |
+
return img_gt
|
| 127 |
+
|
| 128 |
+
def random_kernels(self):
|
| 129 |
+
# ------------------------ Generate kernels (used in the first degradation) ------------------------ #
|
| 130 |
+
kernel_size = random.choice(self.kernel_range)
|
| 131 |
+
if np.random.uniform() < self.sinc_prob:
|
| 132 |
+
# this sinc filter setting is for kernels ranging from [7, 21]
|
| 133 |
+
if kernel_size < 13:
|
| 134 |
+
omega_c = np.random.uniform(np.pi / 3, np.pi)
|
| 135 |
+
else:
|
| 136 |
+
omega_c = np.random.uniform(np.pi / 5, np.pi)
|
| 137 |
+
kernel = circular_lowpass_kernel(omega_c, kernel_size, pad_to=False)
|
| 138 |
+
else:
|
| 139 |
+
kernel = random_mixed_kernels(
|
| 140 |
+
self.kernel_list,
|
| 141 |
+
self.kernel_prob,
|
| 142 |
+
kernel_size,
|
| 143 |
+
self.blur_sigma,
|
| 144 |
+
self.blur_sigma, [-math.pi, math.pi],
|
| 145 |
+
self.betag_range,
|
| 146 |
+
self.betap_range,
|
| 147 |
+
noise_range=None)
|
| 148 |
+
# pad kernel
|
| 149 |
+
pad_size = (21 - kernel_size) // 2
|
| 150 |
+
kernel = np.pad(kernel, ((pad_size, pad_size), (pad_size, pad_size)))
|
| 151 |
+
|
| 152 |
+
# ------------------------ Generate kernels (used in the second degradation) ------------------------ #
|
| 153 |
+
kernel_size = random.choice(self.kernel_range)
|
| 154 |
+
if np.random.uniform() < self.sinc_prob2:
|
| 155 |
+
if kernel_size < 13:
|
| 156 |
+
omega_c = np.random.uniform(np.pi / 3, np.pi)
|
| 157 |
+
else:
|
| 158 |
+
omega_c = np.random.uniform(np.pi / 5, np.pi)
|
| 159 |
+
kernel2 = circular_lowpass_kernel(omega_c, kernel_size, pad_to=False)
|
| 160 |
+
else:
|
| 161 |
+
kernel2 = random_mixed_kernels(
|
| 162 |
+
self.kernel_list2,
|
| 163 |
+
self.kernel_prob2,
|
| 164 |
+
kernel_size,
|
| 165 |
+
self.blur_sigma2,
|
| 166 |
+
self.blur_sigma2, [-math.pi, math.pi],
|
| 167 |
+
self.betag_range2,
|
| 168 |
+
self.betap_range2,
|
| 169 |
+
noise_range=None)
|
| 170 |
+
|
| 171 |
+
# pad kernel
|
| 172 |
+
pad_size = (21 - kernel_size) // 2
|
| 173 |
+
kernel2 = np.pad(kernel2, ((pad_size, pad_size), (pad_size, pad_size)))
|
| 174 |
+
|
| 175 |
+
# ------------------------------------- sinc kernel ------------------------------------- #
|
| 176 |
+
if np.random.uniform() < self.final_sinc_prob:
|
| 177 |
+
kernel_size = random.choice(self.kernel_range)
|
| 178 |
+
omega_c = np.random.uniform(np.pi / 3, np.pi)
|
| 179 |
+
sinc_kernel = circular_lowpass_kernel(omega_c, kernel_size, pad_to=21)
|
| 180 |
+
sinc_kernel = torch.FloatTensor(sinc_kernel)
|
| 181 |
+
else:
|
| 182 |
+
sinc_kernel = self.pulse_tensor
|
| 183 |
+
|
| 184 |
+
kernel = torch.FloatTensor(kernel)
|
| 185 |
+
kernel2 = torch.FloatTensor(kernel2)
|
| 186 |
+
|
| 187 |
+
return kernel, kernel2, sinc_kernel
|
| 188 |
+
|
| 189 |
+
@torch.no_grad()
|
| 190 |
+
def degrade_process(self, img_gt, resize_bak=False):
|
| 191 |
+
img_gt = self.random_augment(img_gt)
|
| 192 |
+
kernel1, kernel2, sinc_kernel = self.random_kernels()
|
| 193 |
+
img_gt, kernel1, kernel2, sinc_kernel = img_gt.to(self.device), kernel1.to(self.device), kernel2.to(self.device), sinc_kernel.to(self.device)
|
| 194 |
+
#img_gt = self.usm_shaper(img_gt) # shaper gt
|
| 195 |
+
ori_h, ori_w = img_gt.size()[2:4]
|
| 196 |
+
|
| 197 |
+
#scale_final = random.randint(4, 16)
|
| 198 |
+
scale_final = 4
|
| 199 |
+
|
| 200 |
+
# ----------------------- The first degradation process ----------------------- #
|
| 201 |
+
# blur
|
| 202 |
+
out = filter2D(img_gt, kernel1)
|
| 203 |
+
# random resize
|
| 204 |
+
updown_type = random.choices(['up', 'down', 'keep'], self.opt['resize_prob'])[0]
|
| 205 |
+
if updown_type == 'up':
|
| 206 |
+
scale = np.random.uniform(1, self.opt['resize_range'][1])
|
| 207 |
+
elif updown_type == 'down':
|
| 208 |
+
scale = np.random.uniform(self.opt['resize_range'][0], 1)
|
| 209 |
+
else:
|
| 210 |
+
scale = 1
|
| 211 |
+
mode = random.choice(['area', 'bilinear', 'bicubic'])
|
| 212 |
+
out = F.interpolate(out, scale_factor=scale, mode=mode)
|
| 213 |
+
# noise
|
| 214 |
+
gray_noise_prob = self.opt['gray_noise_prob']
|
| 215 |
+
if np.random.uniform() < self.opt['gaussian_noise_prob']:
|
| 216 |
+
out = random_add_gaussian_noise_pt(
|
| 217 |
+
out, sigma_range=self.opt['noise_range'], clip=True, rounds=False, gray_prob=gray_noise_prob)
|
| 218 |
+
else:
|
| 219 |
+
out = random_add_poisson_noise_pt(
|
| 220 |
+
out,
|
| 221 |
+
scale_range=self.opt['poisson_scale_range'],
|
| 222 |
+
gray_prob=gray_noise_prob,
|
| 223 |
+
clip=True,
|
| 224 |
+
rounds=False)
|
| 225 |
+
# JPEG compression
|
| 226 |
+
jpeg_p = out.new_zeros(out.size(0)).uniform_(*self.opt['jpeg_range'])
|
| 227 |
+
out = torch.clamp(out, 0, 1)
|
| 228 |
+
out = self.jpeger(out, quality=jpeg_p)
|
| 229 |
+
|
| 230 |
+
# ----------------------- The second degradation process ----------------------- #
|
| 231 |
+
# blur
|
| 232 |
+
if self.opt['second_phase_prob'] > random.random():
|
| 233 |
+
# print('----------------------- The second degradation process -----------------------')
|
| 234 |
+
if np.random.uniform() < self.opt['second_blur_prob']:
|
| 235 |
+
out = filter2D(out, kernel2)
|
| 236 |
+
# random resize
|
| 237 |
+
updown_type = random.choices(['up', 'down', 'keep'], self.opt['resize_prob2'])[0]
|
| 238 |
+
if updown_type == 'up':
|
| 239 |
+
scale = np.random.uniform(1, self.opt['resize_range2'][1])
|
| 240 |
+
elif updown_type == 'down':
|
| 241 |
+
scale = np.random.uniform(self.opt['resize_range2'][0], 1)
|
| 242 |
+
else:
|
| 243 |
+
scale = 1
|
| 244 |
+
mode = random.choice(['area', 'bilinear', 'bicubic'])
|
| 245 |
+
out = F.interpolate(
|
| 246 |
+
out, size=(int(ori_h / scale_final * scale), int(ori_w / scale_final * scale)), mode=mode)
|
| 247 |
+
# noise
|
| 248 |
+
gray_noise_prob = self.opt['gray_noise_prob2']
|
| 249 |
+
if np.random.uniform() < self.opt['gaussian_noise_prob2']:
|
| 250 |
+
out = random_add_gaussian_noise_pt(
|
| 251 |
+
out, sigma_range=self.opt['noise_range2'], clip=True, rounds=False, gray_prob=gray_noise_prob)
|
| 252 |
+
else:
|
| 253 |
+
out = random_add_poisson_noise_pt(
|
| 254 |
+
out,
|
| 255 |
+
scale_range=self.opt['poisson_scale_range2'],
|
| 256 |
+
gray_prob=gray_noise_prob,
|
| 257 |
+
clip=True,
|
| 258 |
+
rounds=False)
|
| 259 |
+
|
| 260 |
+
# JPEG compression + the final sinc filter
|
| 261 |
+
# We also need to resize images to desired sizes. We group [resize back + sinc filter] together
|
| 262 |
+
# as one operation.
|
| 263 |
+
# We consider two orders:
|
| 264 |
+
# 1. [resize back + sinc filter] + JPEG compression
|
| 265 |
+
# 2. JPEG compression + [resize back + sinc filter]
|
| 266 |
+
# Empirically, we find other combinations (sinc + JPEG + Resize) will introduce twisted lines.
|
| 267 |
+
if np.random.uniform() < 0.5:
|
| 268 |
+
# resize back + the final sinc filter
|
| 269 |
+
mode = random.choice(['area', 'bilinear', 'bicubic'])
|
| 270 |
+
out = F.interpolate(out, size=(ori_h // scale_final, ori_w // scale_final), mode=mode)
|
| 271 |
+
out = filter2D(out, sinc_kernel)
|
| 272 |
+
# JPEG compression
|
| 273 |
+
jpeg_p = out.new_zeros(out.size(0)).uniform_(*self.opt['jpeg_range2'])
|
| 274 |
+
out = torch.clamp(out, 0, 1)
|
| 275 |
+
out = self.jpeger(out, quality=jpeg_p)
|
| 276 |
+
else:
|
| 277 |
+
# JPEG compression
|
| 278 |
+
jpeg_p = out.new_zeros(out.size(0)).uniform_(*self.opt['jpeg_range2'])
|
| 279 |
+
out = torch.clamp(out, 0, 1)
|
| 280 |
+
out = self.jpeger(out, quality=jpeg_p)
|
| 281 |
+
# resize back + the final sinc filter
|
| 282 |
+
mode = random.choice(['area', 'bilinear', 'bicubic'])
|
| 283 |
+
out = F.interpolate(out, size=(ori_h // scale_final, ori_w // scale_final), mode=mode)
|
| 284 |
+
out = filter2D(out, sinc_kernel)
|
| 285 |
+
|
| 286 |
+
if np.random.uniform() < self.opt['gray_prob']:
|
| 287 |
+
out = rgb_to_grayscale(out, num_output_channels=1)
|
| 288 |
+
|
| 289 |
+
if np.random.uniform() < self.opt['color_jitter_prob']:
|
| 290 |
+
brightness = self.opt.get('brightness', (0.5, 1.5))
|
| 291 |
+
contrast = self.opt.get('contrast', (0.5, 1.5))
|
| 292 |
+
saturation = self.opt.get('saturation', (0, 1.5))
|
| 293 |
+
hue = self.opt.get('hue', (-0.1, 0.1))
|
| 294 |
+
out = self.color_jitter_pt(out, brightness, contrast, saturation, hue)
|
| 295 |
+
|
| 296 |
+
out1 = out
|
| 297 |
+
img_lq_noresize = torch.clamp((out1 * 255.0).round(), 0, 255) / 255.
|
| 298 |
+
|
| 299 |
+
if resize_bak:
|
| 300 |
+
mode = random.choice(['area', 'bilinear', 'bicubic'])
|
| 301 |
+
out = F.interpolate(out, size=(ori_h, ori_w), mode=mode)
|
| 302 |
+
# clamp and round
|
| 303 |
+
img_lq = torch.clamp((out * 255.0).round(), 0, 255) / 255.
|
| 304 |
+
|
| 305 |
+
return img_gt, img_lq, img_lq_noresize
|
GDPOSR/diffusermodels/__pycache__/autoencoder_kl.cpython-310.pyc
ADDED
|
Binary file (20.2 kB). View file
|
|
|
GDPOSR/diffusermodels/__pycache__/unet_2d_condition.cpython-310.pyc
ADDED
|
Binary file (40.5 kB). View file
|
|
|
GDPOSR/diffusermodels/autoencoder_kl.py
ADDED
|
@@ -0,0 +1,560 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2023 The HuggingFace Team. All rights reserved.
|
| 2 |
+
#
|
| 3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
| 4 |
+
# you may not use this file except in compliance with the License.
|
| 5 |
+
# You may obtain a copy of the License at
|
| 6 |
+
#
|
| 7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 8 |
+
#
|
| 9 |
+
# Unless required by applicable law or agreed to in writing, software
|
| 10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
| 11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 12 |
+
# See the License for the specific language governing permissions and
|
| 13 |
+
# limitations under the License.
|
| 14 |
+
from typing import Dict, Optional, Tuple, Union
|
| 15 |
+
|
| 16 |
+
import torch
|
| 17 |
+
import torch.nn as nn
|
| 18 |
+
|
| 19 |
+
from diffusers.configuration_utils import ConfigMixin, register_to_config
|
| 20 |
+
from diffusers.loaders import FromOriginalVAEMixin
|
| 21 |
+
from diffusers.utils.accelerate_utils import apply_forward_hook
|
| 22 |
+
from diffusers.models.attention_processor import (
|
| 23 |
+
ADDED_KV_ATTENTION_PROCESSORS,
|
| 24 |
+
CROSS_ATTENTION_PROCESSORS,
|
| 25 |
+
Attention,
|
| 26 |
+
AttentionProcessor,
|
| 27 |
+
AttnAddedKVProcessor,
|
| 28 |
+
AttnProcessor,
|
| 29 |
+
)
|
| 30 |
+
from diffusers.models.modeling_outputs import AutoencoderKLOutput
|
| 31 |
+
from diffusers.models.modeling_utils import ModelMixin
|
| 32 |
+
from diffusers.models.autoencoders.vae import Decoder, DecoderOutput, DiagonalGaussianDistribution, Encoder
|
| 33 |
+
|
| 34 |
+
class AutoencoderKL(ModelMixin, ConfigMixin, FromOriginalVAEMixin):
|
| 35 |
+
r"""
|
| 36 |
+
A VAE model with KL loss for encoding images into latents and decoding latent representations into images.
|
| 37 |
+
|
| 38 |
+
This model inherits from [`ModelMixin`]. Check the superclass documentation for it's generic methods implemented
|
| 39 |
+
for all models (such as downloading or saving).
|
| 40 |
+
|
| 41 |
+
Parameters:
|
| 42 |
+
in_channels (int, *optional*, defaults to 3): Number of channels in the input image.
|
| 43 |
+
out_channels (int, *optional*, defaults to 3): Number of channels in the output.
|
| 44 |
+
down_block_types (`Tuple[str]`, *optional*, defaults to `("DownEncoderBlock2D",)`):
|
| 45 |
+
Tuple of downsample block types.
|
| 46 |
+
up_block_types (`Tuple[str]`, *optional*, defaults to `("UpDecoderBlock2D",)`):
|
| 47 |
+
Tuple of upsample block types.
|
| 48 |
+
block_out_channels (`Tuple[int]`, *optional*, defaults to `(64,)`):
|
| 49 |
+
Tuple of block output channels.
|
| 50 |
+
act_fn (`str`, *optional*, defaults to `"silu"`): The activation function to use.
|
| 51 |
+
latent_channels (`int`, *optional*, defaults to 4): Number of channels in the latent space.
|
| 52 |
+
sample_size (`int`, *optional*, defaults to `32`): Sample input size.
|
| 53 |
+
scaling_factor (`float`, *optional*, defaults to 0.18215):
|
| 54 |
+
The component-wise standard deviation of the trained latent space computed using the first batch of the
|
| 55 |
+
training set. This is used to scale the latent space to have unit variance when training the diffusion
|
| 56 |
+
model. The latents are scaled with the formula `z = z * scaling_factor` before being passed to the
|
| 57 |
+
diffusion model. When decoding, the latents are scaled back to the original scale with the formula: `z = 1
|
| 58 |
+
/ scaling_factor * z`. For more details, refer to sections 4.3.2 and D.1 of the [High-Resolution Image
|
| 59 |
+
Synthesis with Latent Diffusion Models](https://arxiv.org/abs/2112.10752) paper.
|
| 60 |
+
force_upcast (`bool`, *optional*, default to `True`):
|
| 61 |
+
If enabled it will force the VAE to run in float32 for high image resolution pipelines, such as SD-XL. VAE
|
| 62 |
+
can be fine-tuned / trained to a lower range without loosing too much precision in which case
|
| 63 |
+
`force_upcast` can be set to `False` - see: https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
|
| 64 |
+
"""
|
| 65 |
+
|
| 66 |
+
_supports_gradient_checkpointing = True
|
| 67 |
+
|
| 68 |
+
@register_to_config
|
| 69 |
+
def __init__(
|
| 70 |
+
self,
|
| 71 |
+
in_channels: int = 3,
|
| 72 |
+
out_channels: int = 3,
|
| 73 |
+
down_block_types: Tuple[str] = ("DownEncoderBlock2D",),
|
| 74 |
+
up_block_types: Tuple[str] = ("UpDecoderBlock2D",),
|
| 75 |
+
block_out_channels: Tuple[int] = (64,),
|
| 76 |
+
layers_per_block: int = 1,
|
| 77 |
+
act_fn: str = "silu",
|
| 78 |
+
latent_channels: int = 4,
|
| 79 |
+
norm_num_groups: int = 32,
|
| 80 |
+
sample_size: int = 32,
|
| 81 |
+
scaling_factor: float = 0.18215,
|
| 82 |
+
force_upcast: float = True,
|
| 83 |
+
):
|
| 84 |
+
super().__init__()
|
| 85 |
+
|
| 86 |
+
# pass init params to Encoder
|
| 87 |
+
self.encoder = Encoder(
|
| 88 |
+
in_channels=in_channels,
|
| 89 |
+
out_channels=latent_channels,
|
| 90 |
+
down_block_types=down_block_types,
|
| 91 |
+
block_out_channels=block_out_channels,
|
| 92 |
+
layers_per_block=layers_per_block,
|
| 93 |
+
act_fn=act_fn,
|
| 94 |
+
norm_num_groups=norm_num_groups,
|
| 95 |
+
double_z=True,
|
| 96 |
+
)
|
| 97 |
+
|
| 98 |
+
# pass init params to Decoder
|
| 99 |
+
self.decoder = Decoder(
|
| 100 |
+
in_channels=latent_channels,
|
| 101 |
+
out_channels=out_channels,
|
| 102 |
+
up_block_types=up_block_types,
|
| 103 |
+
block_out_channels=block_out_channels,
|
| 104 |
+
layers_per_block=layers_per_block,
|
| 105 |
+
norm_num_groups=norm_num_groups,
|
| 106 |
+
act_fn=act_fn,
|
| 107 |
+
)
|
| 108 |
+
|
| 109 |
+
self.quant_conv = nn.Conv2d(2 * latent_channels, 2 * latent_channels, 1)
|
| 110 |
+
self.post_quant_conv = nn.Conv2d(latent_channels, latent_channels, 1)
|
| 111 |
+
|
| 112 |
+
self.use_slicing = False
|
| 113 |
+
self.use_tiling = False
|
| 114 |
+
|
| 115 |
+
# only relevant if vae tiling is enabled
|
| 116 |
+
self.tile_sample_min_size = self.config.sample_size
|
| 117 |
+
sample_size = (
|
| 118 |
+
self.config.sample_size[0]
|
| 119 |
+
if isinstance(self.config.sample_size, (list, tuple))
|
| 120 |
+
else self.config.sample_size
|
| 121 |
+
)
|
| 122 |
+
self.tile_latent_min_size = int(sample_size / (2 ** (len(self.config.block_out_channels) - 1)))
|
| 123 |
+
self.tile_overlap_factor = 0.25
|
| 124 |
+
|
| 125 |
+
def _set_gradient_checkpointing(self, module, value=False):
|
| 126 |
+
if isinstance(module, (Encoder, Decoder)):
|
| 127 |
+
module.gradient_checkpointing = value
|
| 128 |
+
|
| 129 |
+
def enable_tiling(self, use_tiling: bool = True):
|
| 130 |
+
r"""
|
| 131 |
+
Enable tiled VAE decoding. When this option is enabled, the VAE will split the input tensor into tiles to
|
| 132 |
+
compute decoding and encoding in several steps. This is useful for saving a large amount of memory and to allow
|
| 133 |
+
processing larger images.
|
| 134 |
+
"""
|
| 135 |
+
self.use_tiling = use_tiling
|
| 136 |
+
|
| 137 |
+
def disable_tiling(self):
|
| 138 |
+
r"""
|
| 139 |
+
Disable tiled VAE decoding. If `enable_tiling` was previously enabled, this method will go back to computing
|
| 140 |
+
decoding in one step.
|
| 141 |
+
"""
|
| 142 |
+
self.enable_tiling(False)
|
| 143 |
+
|
| 144 |
+
def enable_slicing(self):
|
| 145 |
+
r"""
|
| 146 |
+
Enable sliced VAE decoding. When this option is enabled, the VAE will split the input tensor in slices to
|
| 147 |
+
compute decoding in several steps. This is useful to save some memory and allow larger batch sizes.
|
| 148 |
+
"""
|
| 149 |
+
self.use_slicing = True
|
| 150 |
+
|
| 151 |
+
def disable_slicing(self):
|
| 152 |
+
r"""
|
| 153 |
+
Disable sliced VAE decoding. If `enable_slicing` was previously enabled, this method will go back to computing
|
| 154 |
+
decoding in one step.
|
| 155 |
+
"""
|
| 156 |
+
self.use_slicing = False
|
| 157 |
+
|
| 158 |
+
@property
|
| 159 |
+
# Copied from diffusers.models.unet_2d_condition.UNet2DConditionModel.attn_processors
|
| 160 |
+
def attn_processors(self) -> Dict[str, AttentionProcessor]:
|
| 161 |
+
r"""
|
| 162 |
+
Returns:
|
| 163 |
+
`dict` of attention processors: A dictionary containing all attention processors used in the model with
|
| 164 |
+
indexed by its weight name.
|
| 165 |
+
"""
|
| 166 |
+
# set recursively
|
| 167 |
+
processors = {}
|
| 168 |
+
|
| 169 |
+
def fn_recursive_add_processors(name: str, module: torch.nn.Module, processors: Dict[str, AttentionProcessor]):
|
| 170 |
+
if hasattr(module, "get_processor"):
|
| 171 |
+
processors[f"{name}.processor"] = module.get_processor(return_deprecated_lora=True)
|
| 172 |
+
|
| 173 |
+
for sub_name, child in module.named_children():
|
| 174 |
+
fn_recursive_add_processors(f"{name}.{sub_name}", child, processors)
|
| 175 |
+
|
| 176 |
+
return processors
|
| 177 |
+
|
| 178 |
+
for name, module in self.named_children():
|
| 179 |
+
fn_recursive_add_processors(name, module, processors)
|
| 180 |
+
|
| 181 |
+
return processors
|
| 182 |
+
|
| 183 |
+
# Copied from diffusers.models.unet_2d_condition.UNet2DConditionModel.set_attn_processor
|
| 184 |
+
def set_attn_processor(
|
| 185 |
+
self, processor: Union[AttentionProcessor, Dict[str, AttentionProcessor]], _remove_lora=False
|
| 186 |
+
):
|
| 187 |
+
r"""
|
| 188 |
+
Sets the attention processor to use to compute attention.
|
| 189 |
+
|
| 190 |
+
Parameters:
|
| 191 |
+
processor (`dict` of `AttentionProcessor` or only `AttentionProcessor`):
|
| 192 |
+
The instantiated processor class or a dictionary of processor classes that will be set as the processor
|
| 193 |
+
for **all** `Attention` layers.
|
| 194 |
+
|
| 195 |
+
If `processor` is a dict, the key needs to define the path to the corresponding cross attention
|
| 196 |
+
processor. This is strongly recommended when setting trainable attention processors.
|
| 197 |
+
|
| 198 |
+
"""
|
| 199 |
+
count = len(self.attn_processors.keys())
|
| 200 |
+
|
| 201 |
+
if isinstance(processor, dict) and len(processor) != count:
|
| 202 |
+
raise ValueError(
|
| 203 |
+
f"A dict of processors was passed, but the number of processors {len(processor)} does not match the"
|
| 204 |
+
f" number of attention layers: {count}. Please make sure to pass {count} processor classes."
|
| 205 |
+
)
|
| 206 |
+
|
| 207 |
+
def fn_recursive_attn_processor(name: str, module: torch.nn.Module, processor):
|
| 208 |
+
if hasattr(module, "set_processor"):
|
| 209 |
+
if not isinstance(processor, dict):
|
| 210 |
+
module.set_processor(processor, _remove_lora=_remove_lora)
|
| 211 |
+
else:
|
| 212 |
+
module.set_processor(processor.pop(f"{name}.processor"), _remove_lora=_remove_lora)
|
| 213 |
+
|
| 214 |
+
for sub_name, child in module.named_children():
|
| 215 |
+
fn_recursive_attn_processor(f"{name}.{sub_name}", child, processor)
|
| 216 |
+
|
| 217 |
+
for name, module in self.named_children():
|
| 218 |
+
fn_recursive_attn_processor(name, module, processor)
|
| 219 |
+
|
| 220 |
+
# Copied from diffusers.models.unet_2d_condition.UNet2DConditionModel.set_default_attn_processor
|
| 221 |
+
def set_default_attn_processor(self):
|
| 222 |
+
"""
|
| 223 |
+
Disables custom attention processors and sets the default attention implementation.
|
| 224 |
+
"""
|
| 225 |
+
if all(proc.__class__ in ADDED_KV_ATTENTION_PROCESSORS for proc in self.attn_processors.values()):
|
| 226 |
+
processor = AttnAddedKVProcessor()
|
| 227 |
+
elif all(proc.__class__ in CROSS_ATTENTION_PROCESSORS for proc in self.attn_processors.values()):
|
| 228 |
+
processor = AttnProcessor()
|
| 229 |
+
else:
|
| 230 |
+
raise ValueError(
|
| 231 |
+
f"Cannot call `set_default_attn_processor` when attention processors are of type {next(iter(self.attn_processors.values()))}"
|
| 232 |
+
)
|
| 233 |
+
|
| 234 |
+
self.set_attn_processor(processor, _remove_lora=True)
|
| 235 |
+
|
| 236 |
+
@apply_forward_hook
|
| 237 |
+
def encode(
|
| 238 |
+
self, x: torch.FloatTensor, return_dict: bool = True
|
| 239 |
+
) -> Union[AutoencoderKLOutput, Tuple[DiagonalGaussianDistribution]]:
|
| 240 |
+
"""
|
| 241 |
+
Encode a batch of images into latents.
|
| 242 |
+
|
| 243 |
+
Args:
|
| 244 |
+
x (`torch.FloatTensor`): Input batch of images.
|
| 245 |
+
return_dict (`bool`, *optional*, defaults to `True`):
|
| 246 |
+
Whether to return a [`~models.autoencoder_kl.AutoencoderKLOutput`] instead of a plain tuple.
|
| 247 |
+
|
| 248 |
+
Returns:
|
| 249 |
+
The latent representations of the encoded images. If `return_dict` is True, a
|
| 250 |
+
[`~models.autoencoder_kl.AutoencoderKLOutput`] is returned, otherwise a plain `tuple` is returned.
|
| 251 |
+
"""
|
| 252 |
+
if self.use_tiling and (x.shape[-1] > self.tile_sample_min_size or x.shape[-2] > self.tile_sample_min_size):
|
| 253 |
+
return self.tiled_encode(x, return_dict=return_dict)
|
| 254 |
+
|
| 255 |
+
if self.use_slicing and x.shape[0] > 1:
|
| 256 |
+
encoded_slices = [self.encoder(x_slice) for x_slice in x.split(1)]
|
| 257 |
+
h = torch.cat(encoded_slices)
|
| 258 |
+
else:
|
| 259 |
+
h = self.encoder(x)
|
| 260 |
+
|
| 261 |
+
moments = self.quant_conv(h.to(dtype=self.quant_conv.weight.dtype))
|
| 262 |
+
posterior = DiagonalGaussianDistribution(moments)
|
| 263 |
+
|
| 264 |
+
if not return_dict:
|
| 265 |
+
return (posterior,)
|
| 266 |
+
|
| 267 |
+
return AutoencoderKLOutput(latent_dist=posterior)
|
| 268 |
+
|
| 269 |
+
def _decode(self, z: torch.FloatTensor, return_dict: bool = True) -> Union[DecoderOutput, torch.FloatTensor]:
|
| 270 |
+
if self.use_tiling and (z.shape[-1] > self.tile_latent_min_size or z.shape[-2] > self.tile_latent_min_size):
|
| 271 |
+
return self.tiled_decode(z, return_dict=return_dict)
|
| 272 |
+
|
| 273 |
+
z = self.post_quant_conv(z)
|
| 274 |
+
dec = self.decoder(z)
|
| 275 |
+
|
| 276 |
+
if not return_dict:
|
| 277 |
+
return (dec,)
|
| 278 |
+
|
| 279 |
+
return DecoderOutput(sample=dec)
|
| 280 |
+
|
| 281 |
+
@apply_forward_hook
|
| 282 |
+
def decode(
|
| 283 |
+
self, z: torch.FloatTensor, return_dict: bool = True, generator=None
|
| 284 |
+
) -> Union[DecoderOutput, torch.FloatTensor]:
|
| 285 |
+
"""
|
| 286 |
+
Decode a batch of images.
|
| 287 |
+
|
| 288 |
+
Args:
|
| 289 |
+
z (`torch.FloatTensor`): Input batch of latent vectors.
|
| 290 |
+
return_dict (`bool`, *optional*, defaults to `True`):
|
| 291 |
+
Whether to return a [`~models.vae.DecoderOutput`] instead of a plain tuple.
|
| 292 |
+
|
| 293 |
+
Returns:
|
| 294 |
+
[`~models.vae.DecoderOutput`] or `tuple`:
|
| 295 |
+
If return_dict is True, a [`~models.vae.DecoderOutput`] is returned, otherwise a plain `tuple` is
|
| 296 |
+
returned.
|
| 297 |
+
|
| 298 |
+
"""
|
| 299 |
+
if self.use_slicing and z.shape[0] > 1:
|
| 300 |
+
decoded_slices = [self._decode(z_slice).sample for z_slice in z.split(1)]
|
| 301 |
+
decoded = torch.cat(decoded_slices)
|
| 302 |
+
else:
|
| 303 |
+
decoded = self._decode(z).sample
|
| 304 |
+
|
| 305 |
+
if not return_dict:
|
| 306 |
+
return (decoded,)
|
| 307 |
+
|
| 308 |
+
return DecoderOutput(sample=decoded)
|
| 309 |
+
|
| 310 |
+
def blend_v(self, a: torch.Tensor, b: torch.Tensor, blend_extent: int) -> torch.Tensor:
|
| 311 |
+
blend_extent = min(a.shape[2], b.shape[2], blend_extent)
|
| 312 |
+
for y in range(blend_extent):
|
| 313 |
+
b[:, :, y, :] = a[:, :, -blend_extent + y, :] * (1 - y / blend_extent) + b[:, :, y, :] * (y / blend_extent)
|
| 314 |
+
return b
|
| 315 |
+
|
| 316 |
+
def blend_h(self, a: torch.Tensor, b: torch.Tensor, blend_extent: int) -> torch.Tensor:
|
| 317 |
+
blend_extent = min(a.shape[3], b.shape[3], blend_extent)
|
| 318 |
+
for x in range(blend_extent):
|
| 319 |
+
b[:, :, :, x] = a[:, :, :, -blend_extent + x] * (1 - x / blend_extent) + b[:, :, :, x] * (x / blend_extent)
|
| 320 |
+
return b
|
| 321 |
+
|
| 322 |
+
def tiled_encode(self, x: torch.FloatTensor, return_dict: bool = True) -> AutoencoderKLOutput:
|
| 323 |
+
r"""Encode a batch of images using a tiled encoder.
|
| 324 |
+
|
| 325 |
+
When this option is enabled, the VAE will split the input tensor into tiles to compute encoding in several
|
| 326 |
+
steps. This is useful to keep memory use constant regardless of image size. The end result of tiled encoding is
|
| 327 |
+
different from non-tiled encoding because each tile uses a different encoder. To avoid tiling artifacts, the
|
| 328 |
+
tiles overlap and are blended together to form a smooth output. You may still see tile-sized changes in the
|
| 329 |
+
output, but they should be much less noticeable.
|
| 330 |
+
|
| 331 |
+
Args:
|
| 332 |
+
x (`torch.FloatTensor`): Input batch of images.
|
| 333 |
+
return_dict (`bool`, *optional*, defaults to `True`):
|
| 334 |
+
Whether or not to return a [`~models.autoencoder_kl.AutoencoderKLOutput`] instead of a plain tuple.
|
| 335 |
+
|
| 336 |
+
Returns:
|
| 337 |
+
[`~models.autoencoder_kl.AutoencoderKLOutput`] or `tuple`:
|
| 338 |
+
If return_dict is True, a [`~models.autoencoder_kl.AutoencoderKLOutput`] is returned, otherwise a plain
|
| 339 |
+
`tuple` is returned.
|
| 340 |
+
"""
|
| 341 |
+
overlap_size = int(self.tile_sample_min_size * (1 - self.tile_overlap_factor))
|
| 342 |
+
blend_extent = int(self.tile_latent_min_size * self.tile_overlap_factor)
|
| 343 |
+
row_limit = self.tile_latent_min_size - blend_extent
|
| 344 |
+
|
| 345 |
+
# Split the image into 512x512 tiles and encode them separately.
|
| 346 |
+
rows = []
|
| 347 |
+
for i in range(0, x.shape[2], overlap_size):
|
| 348 |
+
row = []
|
| 349 |
+
for j in range(0, x.shape[3], overlap_size):
|
| 350 |
+
tile = x[:, :, i : i + self.tile_sample_min_size, j : j + self.tile_sample_min_size]
|
| 351 |
+
tile = self.encoder(tile)
|
| 352 |
+
tile = self.quant_conv(tile)
|
| 353 |
+
row.append(tile)
|
| 354 |
+
rows.append(row)
|
| 355 |
+
result_rows = []
|
| 356 |
+
for i, row in enumerate(rows):
|
| 357 |
+
result_row = []
|
| 358 |
+
for j, tile in enumerate(row):
|
| 359 |
+
# blend the above tile and the left tile
|
| 360 |
+
# to the current tile and add the current tile to the result row
|
| 361 |
+
if i > 0:
|
| 362 |
+
tile = self.blend_v(rows[i - 1][j], tile, blend_extent)
|
| 363 |
+
if j > 0:
|
| 364 |
+
tile = self.blend_h(row[j - 1], tile, blend_extent)
|
| 365 |
+
result_row.append(tile[:, :, :row_limit, :row_limit])
|
| 366 |
+
result_rows.append(torch.cat(result_row, dim=3))
|
| 367 |
+
|
| 368 |
+
moments = torch.cat(result_rows, dim=2)
|
| 369 |
+
posterior = DiagonalGaussianDistribution(moments)
|
| 370 |
+
|
| 371 |
+
if not return_dict:
|
| 372 |
+
return (posterior,)
|
| 373 |
+
|
| 374 |
+
return AutoencoderKLOutput(latent_dist=posterior)
|
| 375 |
+
|
| 376 |
+
def tiled_decode(self, z: torch.FloatTensor, return_dict: bool = True) -> Union[DecoderOutput, torch.FloatTensor]:
|
| 377 |
+
r"""
|
| 378 |
+
Decode a batch of images using a tiled decoder.
|
| 379 |
+
|
| 380 |
+
Args:
|
| 381 |
+
z (`torch.FloatTensor`): Input batch of latent vectors.
|
| 382 |
+
return_dict (`bool`, *optional*, defaults to `True`):
|
| 383 |
+
Whether or not to return a [`~models.vae.DecoderOutput`] instead of a plain tuple.
|
| 384 |
+
|
| 385 |
+
Returns:
|
| 386 |
+
[`~models.vae.DecoderOutput`] or `tuple`:
|
| 387 |
+
If return_dict is True, a [`~models.vae.DecoderOutput`] is returned, otherwise a plain `tuple` is
|
| 388 |
+
returned.
|
| 389 |
+
"""
|
| 390 |
+
overlap_size = int(self.tile_latent_min_size * (1 - self.tile_overlap_factor))
|
| 391 |
+
blend_extent = int(self.tile_sample_min_size * self.tile_overlap_factor)
|
| 392 |
+
row_limit = self.tile_sample_min_size - blend_extent
|
| 393 |
+
|
| 394 |
+
# Split z into overlapping 64x64 tiles and decode them separately.
|
| 395 |
+
# The tiles have an overlap to avoid seams between tiles.
|
| 396 |
+
rows = []
|
| 397 |
+
for i in range(0, z.shape[2], overlap_size):
|
| 398 |
+
row = []
|
| 399 |
+
for j in range(0, z.shape[3], overlap_size):
|
| 400 |
+
tile = z[:, :, i : i + self.tile_latent_min_size, j : j + self.tile_latent_min_size]
|
| 401 |
+
tile = self.post_quant_conv(tile)
|
| 402 |
+
decoded = self.decoder(tile)
|
| 403 |
+
row.append(decoded)
|
| 404 |
+
rows.append(row)
|
| 405 |
+
result_rows = []
|
| 406 |
+
for i, row in enumerate(rows):
|
| 407 |
+
result_row = []
|
| 408 |
+
for j, tile in enumerate(row):
|
| 409 |
+
# blend the above tile and the left tile
|
| 410 |
+
# to the current tile and add the current tile to the result row
|
| 411 |
+
if i > 0:
|
| 412 |
+
tile = self.blend_v(rows[i - 1][j], tile, blend_extent)
|
| 413 |
+
if j > 0:
|
| 414 |
+
tile = self.blend_h(row[j - 1], tile, blend_extent)
|
| 415 |
+
result_row.append(tile[:, :, :row_limit, :row_limit])
|
| 416 |
+
result_rows.append(torch.cat(result_row, dim=3))
|
| 417 |
+
|
| 418 |
+
dec = torch.cat(result_rows, dim=2)
|
| 419 |
+
if not return_dict:
|
| 420 |
+
return (dec,)
|
| 421 |
+
|
| 422 |
+
return DecoderOutput(sample=dec)
|
| 423 |
+
|
| 424 |
+
def forward(
|
| 425 |
+
self,
|
| 426 |
+
sample: torch.FloatTensor,
|
| 427 |
+
sample_posterior: bool = False,
|
| 428 |
+
return_dict: bool = True,
|
| 429 |
+
generator: Optional[torch.Generator] = None,
|
| 430 |
+
) -> Union[DecoderOutput, torch.FloatTensor]:
|
| 431 |
+
r"""
|
| 432 |
+
Args:
|
| 433 |
+
sample (`torch.FloatTensor`): Input sample.
|
| 434 |
+
sample_posterior (`bool`, *optional*, defaults to `False`):
|
| 435 |
+
Whether to sample from the posterior.
|
| 436 |
+
return_dict (`bool`, *optional*, defaults to `True`):
|
| 437 |
+
Whether or not to return a [`DecoderOutput`] instead of a plain tuple.
|
| 438 |
+
"""
|
| 439 |
+
x = sample
|
| 440 |
+
posterior = self.encode(x).latent_dist
|
| 441 |
+
if sample_posterior:
|
| 442 |
+
z = posterior.sample(generator=generator)
|
| 443 |
+
else:
|
| 444 |
+
z = posterior.mode()
|
| 445 |
+
dec = self.decode(z).sample
|
| 446 |
+
|
| 447 |
+
if not return_dict:
|
| 448 |
+
return (dec,)
|
| 449 |
+
|
| 450 |
+
return DecoderOutput(sample=dec)
|
| 451 |
+
|
| 452 |
+
# Copied from diffusers.models.unet_2d_condition.UNet2DConditionModel.fuse_qkv_projections
|
| 453 |
+
def fuse_qkv_projections(self):
|
| 454 |
+
"""
|
| 455 |
+
Enables fused QKV projections. For self-attention modules, all projection matrices (i.e., query,
|
| 456 |
+
key, value) are fused. For cross-attention modules, key and value projection matrices are fused.
|
| 457 |
+
|
| 458 |
+
<Tip warning={true}>
|
| 459 |
+
|
| 460 |
+
This API is 🧪 experimental.
|
| 461 |
+
|
| 462 |
+
</Tip>
|
| 463 |
+
"""
|
| 464 |
+
self.original_attn_processors = None
|
| 465 |
+
|
| 466 |
+
for _, attn_processor in self.attn_processors.items():
|
| 467 |
+
if "Added" in str(attn_processor.__class__.__name__):
|
| 468 |
+
raise ValueError("`fuse_qkv_projections()` is not supported for models having added KV projections.")
|
| 469 |
+
|
| 470 |
+
self.original_attn_processors = self.attn_processors
|
| 471 |
+
|
| 472 |
+
for module in self.modules():
|
| 473 |
+
if isinstance(module, Attention):
|
| 474 |
+
module.fuse_projections(fuse=True)
|
| 475 |
+
|
| 476 |
+
# Copied from diffusers.models.unet_2d_condition.UNet2DConditionModel.unfuse_qkv_projections
|
| 477 |
+
def unfuse_qkv_projections(self):
|
| 478 |
+
"""Disables the fused QKV projection if enabled.
|
| 479 |
+
|
| 480 |
+
<Tip warning={true}>
|
| 481 |
+
|
| 482 |
+
This API is 🧪 experimental.
|
| 483 |
+
|
| 484 |
+
</Tip>
|
| 485 |
+
|
| 486 |
+
"""
|
| 487 |
+
if self.original_attn_processors is not None:
|
| 488 |
+
self.set_attn_processor(self.original_attn_processors)
|
| 489 |
+
|
| 490 |
+
|
| 491 |
+
|
| 492 |
+
def merge_and_unload(
|
| 493 |
+
self, progressbar: bool = False, safe_merge: bool = False, adapter_names: Optional[list[str]] = None
|
| 494 |
+
) -> torch.nn.Module:
|
| 495 |
+
|
| 496 |
+
return self._unload_and_optionally_merge(
|
| 497 |
+
progressbar=progressbar, safe_merge=safe_merge, adapter_names=adapter_names
|
| 498 |
+
)
|
| 499 |
+
|
| 500 |
+
def _unload_and_optionally_merge(
|
| 501 |
+
self,
|
| 502 |
+
merge=True,
|
| 503 |
+
progressbar: bool = False,
|
| 504 |
+
safe_merge: bool = False,
|
| 505 |
+
adapter_names: Optional[list[str]] = None,
|
| 506 |
+
):
|
| 507 |
+
from tqdm import tqdm
|
| 508 |
+
from peft.tuners.tuners_utils import onload_layer
|
| 509 |
+
from peft.utils import _get_submodules, ModulesToSaveWrapper
|
| 510 |
+
|
| 511 |
+
key_list = [key for key, _ in self.named_modules() if "lora_" not in key]
|
| 512 |
+
desc = "Unloading " + ("and merging " if merge else "") + "model"
|
| 513 |
+
for key in tqdm(key_list, disable=not progressbar, desc=desc):
|
| 514 |
+
try:
|
| 515 |
+
parent, target, target_name = _get_submodules(self, key)
|
| 516 |
+
except AttributeError:
|
| 517 |
+
continue
|
| 518 |
+
with onload_layer(target):
|
| 519 |
+
if hasattr(target, "base_layer"):
|
| 520 |
+
if merge:
|
| 521 |
+
target.merge(safe_merge=safe_merge, adapter_names=adapter_names)
|
| 522 |
+
self._replace_module(parent, target_name, target.get_base_layer(), target)
|
| 523 |
+
elif isinstance(target, ModulesToSaveWrapper):
|
| 524 |
+
# save any additional trainable modules part of `modules_to_save`
|
| 525 |
+
new_module = target.modules_to_save[target.active_adapter]
|
| 526 |
+
if hasattr(new_module, "base_layer"):
|
| 527 |
+
# check if the module is itself a tuner layer
|
| 528 |
+
if merge:
|
| 529 |
+
new_module.merge(safe_merge=safe_merge, adapter_names=adapter_names)
|
| 530 |
+
new_module = new_module.get_base_layer()
|
| 531 |
+
setattr(parent, target_name, new_module)
|
| 532 |
+
|
| 533 |
+
return self
|
| 534 |
+
|
| 535 |
+
def _replace_module(self, parent, child_name, new_module, child):
|
| 536 |
+
setattr(parent, child_name, new_module)
|
| 537 |
+
# It's not necessary to set requires_grad here, as that is handled by
|
| 538 |
+
# _mark_only_adapters_as_trainable
|
| 539 |
+
|
| 540 |
+
# child layer wraps the original module, unpack it
|
| 541 |
+
if hasattr(child, "base_layer"):
|
| 542 |
+
child = child.base_layer
|
| 543 |
+
|
| 544 |
+
if not hasattr(new_module, "base_layer"):
|
| 545 |
+
new_module.weight = child.weight
|
| 546 |
+
if hasattr(child, "bias"):
|
| 547 |
+
new_module.bias = child.bias
|
| 548 |
+
|
| 549 |
+
if getattr(child, "state", None) is not None:
|
| 550 |
+
if hasattr(new_module, "base_layer"):
|
| 551 |
+
new_module.base_layer.state = child.state
|
| 552 |
+
else:
|
| 553 |
+
new_module.state = child.state
|
| 554 |
+
new_module.to(child.weight.device)
|
| 555 |
+
|
| 556 |
+
# dispatch to correct device
|
| 557 |
+
for name, module in new_module.named_modules():
|
| 558 |
+
if ("lora_" in name) or ("ranknum" in name):
|
| 559 |
+
weight = child.qweight if hasattr(child, "qweight") else child.weight
|
| 560 |
+
module.to(weight.device)
|
GDPOSR/diffusermodels/unet_2d_condition.py
ADDED
|
@@ -0,0 +1,1280 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Copyright 2023 The HuggingFace Team. All rights reserved.
|
| 2 |
+
#
|
| 3 |
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
| 4 |
+
# you may not use this file except in compliance with the License.
|
| 5 |
+
# You may obtain a copy of the License at
|
| 6 |
+
#
|
| 7 |
+
# http://www.apache.org/licenses/LICENSE-2.0
|
| 8 |
+
#
|
| 9 |
+
# Unless required by applicable law or agreed to in writing, software
|
| 10 |
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
| 11 |
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
| 12 |
+
# See the License for the specific language governing permissions and
|
| 13 |
+
# limitations under the License.
|
| 14 |
+
from dataclasses import dataclass
|
| 15 |
+
from typing import Any, Dict, List, Optional, Tuple, Union
|
| 16 |
+
|
| 17 |
+
import torch
|
| 18 |
+
import torch.nn as nn
|
| 19 |
+
import torch.utils.checkpoint
|
| 20 |
+
|
| 21 |
+
from diffusers.configuration_utils import ConfigMixin, register_to_config
|
| 22 |
+
from diffusers.loaders import UNet2DConditionLoadersMixin
|
| 23 |
+
from diffusers.utils import USE_PEFT_BACKEND, BaseOutput, deprecate, logging, scale_lora_layers, unscale_lora_layers
|
| 24 |
+
from diffusers.models.activations import get_activation
|
| 25 |
+
from diffusers.models.attention_processor import (
|
| 26 |
+
ADDED_KV_ATTENTION_PROCESSORS,
|
| 27 |
+
CROSS_ATTENTION_PROCESSORS,
|
| 28 |
+
Attention,
|
| 29 |
+
AttentionProcessor,
|
| 30 |
+
AttnAddedKVProcessor,
|
| 31 |
+
AttnProcessor,
|
| 32 |
+
)
|
| 33 |
+
from diffusers.models.embeddings import (
|
| 34 |
+
GaussianFourierProjection,
|
| 35 |
+
ImageHintTimeEmbedding,
|
| 36 |
+
ImageProjection,
|
| 37 |
+
ImageTimeEmbedding,
|
| 38 |
+
PositionNet,
|
| 39 |
+
TextImageProjection,
|
| 40 |
+
TextImageTimeEmbedding,
|
| 41 |
+
TextTimeEmbedding,
|
| 42 |
+
TimestepEmbedding,
|
| 43 |
+
Timesteps,
|
| 44 |
+
)
|
| 45 |
+
from diffusers.models.modeling_utils import ModelMixin
|
| 46 |
+
from diffusers.models.unet_2d_blocks import (
|
| 47 |
+
UNetMidBlock2D,
|
| 48 |
+
UNetMidBlock2DCrossAttn,
|
| 49 |
+
UNetMidBlock2DSimpleCrossAttn,
|
| 50 |
+
get_down_block,
|
| 51 |
+
get_up_block,
|
| 52 |
+
)
|
| 53 |
+
|
| 54 |
+
|
| 55 |
+
logger = logging.get_logger(__name__) # pylint: disable=invalid-name
|
| 56 |
+
|
| 57 |
+
|
| 58 |
+
@dataclass
|
| 59 |
+
class UNet2DConditionOutput(BaseOutput):
|
| 60 |
+
"""
|
| 61 |
+
The output of [`UNet2DConditionModel`].
|
| 62 |
+
|
| 63 |
+
Args:
|
| 64 |
+
sample (`torch.FloatTensor` of shape `(batch_size, num_channels, height, width)`):
|
| 65 |
+
The hidden states output conditioned on `encoder_hidden_states` input. Output of last layer of model.
|
| 66 |
+
"""
|
| 67 |
+
|
| 68 |
+
sample: torch.FloatTensor = None
|
| 69 |
+
|
| 70 |
+
|
| 71 |
+
class UNet2DConditionModel(ModelMixin, ConfigMixin, UNet2DConditionLoadersMixin):
|
| 72 |
+
r"""
|
| 73 |
+
A conditional 2D UNet model that takes a noisy sample, conditional state, and a timestep and returns a sample
|
| 74 |
+
shaped output.
|
| 75 |
+
|
| 76 |
+
This model inherits from [`ModelMixin`]. Check the superclass documentation for it's generic methods implemented
|
| 77 |
+
for all models (such as downloading or saving).
|
| 78 |
+
|
| 79 |
+
Parameters:
|
| 80 |
+
sample_size (`int` or `Tuple[int, int]`, *optional*, defaults to `None`):
|
| 81 |
+
Height and width of input/output sample.
|
| 82 |
+
in_channels (`int`, *optional*, defaults to 4): Number of channels in the input sample.
|
| 83 |
+
out_channels (`int`, *optional*, defaults to 4): Number of channels in the output.
|
| 84 |
+
center_input_sample (`bool`, *optional*, defaults to `False`): Whether to center the input sample.
|
| 85 |
+
flip_sin_to_cos (`bool`, *optional*, defaults to `False`):
|
| 86 |
+
Whether to flip the sin to cos in the time embedding.
|
| 87 |
+
freq_shift (`int`, *optional*, defaults to 0): The frequency shift to apply to the time embedding.
|
| 88 |
+
down_block_types (`Tuple[str]`, *optional*, defaults to `("CrossAttnDownBlock2D", "CrossAttnDownBlock2D", "CrossAttnDownBlock2D", "DownBlock2D")`):
|
| 89 |
+
The tuple of downsample blocks to use.
|
| 90 |
+
mid_block_type (`str`, *optional*, defaults to `"UNetMidBlock2DCrossAttn"`):
|
| 91 |
+
Block type for middle of UNet, it can be one of `UNetMidBlock2DCrossAttn`, `UNetMidBlock2D`, or
|
| 92 |
+
`UNetMidBlock2DSimpleCrossAttn`. If `None`, the mid block layer is skipped.
|
| 93 |
+
up_block_types (`Tuple[str]`, *optional*, defaults to `("UpBlock2D", "CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "CrossAttnUpBlock2D")`):
|
| 94 |
+
The tuple of upsample blocks to use.
|
| 95 |
+
only_cross_attention(`bool` or `Tuple[bool]`, *optional*, default to `False`):
|
| 96 |
+
Whether to include self-attention in the basic transformer blocks, see
|
| 97 |
+
[`~models.attention.BasicTransformerBlock`].
|
| 98 |
+
block_out_channels (`Tuple[int]`, *optional*, defaults to `(320, 640, 1280, 1280)`):
|
| 99 |
+
The tuple of output channels for each block.
|
| 100 |
+
layers_per_block (`int`, *optional*, defaults to 2): The number of layers per block.
|
| 101 |
+
downsample_padding (`int`, *optional*, defaults to 1): The padding to use for the downsampling convolution.
|
| 102 |
+
mid_block_scale_factor (`float`, *optional*, defaults to 1.0): The scale factor to use for the mid block.
|
| 103 |
+
dropout (`float`, *optional*, defaults to 0.0): The dropout probability to use.
|
| 104 |
+
act_fn (`str`, *optional*, defaults to `"silu"`): The activation function to use.
|
| 105 |
+
norm_num_groups (`int`, *optional*, defaults to 32): The number of groups to use for the normalization.
|
| 106 |
+
If `None`, normalization and activation layers is skipped in post-processing.
|
| 107 |
+
norm_eps (`float`, *optional*, defaults to 1e-5): The epsilon to use for the normalization.
|
| 108 |
+
cross_attention_dim (`int` or `Tuple[int]`, *optional*, defaults to 1280):
|
| 109 |
+
The dimension of the cross attention features.
|
| 110 |
+
transformer_layers_per_block (`int`, `Tuple[int]`, or `Tuple[Tuple]` , *optional*, defaults to 1):
|
| 111 |
+
The number of transformer blocks of type [`~models.attention.BasicTransformerBlock`]. Only relevant for
|
| 112 |
+
[`~models.unet_2d_blocks.CrossAttnDownBlock2D`], [`~models.unet_2d_blocks.CrossAttnUpBlock2D`],
|
| 113 |
+
[`~models.unet_2d_blocks.UNetMidBlock2DCrossAttn`].
|
| 114 |
+
reverse_transformer_layers_per_block : (`Tuple[Tuple]`, *optional*, defaults to None):
|
| 115 |
+
The number of transformer blocks of type [`~models.attention.BasicTransformerBlock`], in the upsampling
|
| 116 |
+
blocks of the U-Net. Only relevant if `transformer_layers_per_block` is of type `Tuple[Tuple]` and for
|
| 117 |
+
[`~models.unet_2d_blocks.CrossAttnDownBlock2D`], [`~models.unet_2d_blocks.CrossAttnUpBlock2D`],
|
| 118 |
+
[`~models.unet_2d_blocks.UNetMidBlock2DCrossAttn`].
|
| 119 |
+
encoder_hid_dim (`int`, *optional*, defaults to None):
|
| 120 |
+
If `encoder_hid_dim_type` is defined, `encoder_hidden_states` will be projected from `encoder_hid_dim`
|
| 121 |
+
dimension to `cross_attention_dim`.
|
| 122 |
+
encoder_hid_dim_type (`str`, *optional*, defaults to `None`):
|
| 123 |
+
If given, the `encoder_hidden_states` and potentially other embeddings are down-projected to text
|
| 124 |
+
embeddings of dimension `cross_attention` according to `encoder_hid_dim_type`.
|
| 125 |
+
attention_head_dim (`int`, *optional*, defaults to 8): The dimension of the attention heads.
|
| 126 |
+
num_attention_heads (`int`, *optional*):
|
| 127 |
+
The number of attention heads. If not defined, defaults to `attention_head_dim`
|
| 128 |
+
resnet_time_scale_shift (`str`, *optional*, defaults to `"default"`): Time scale shift config
|
| 129 |
+
for ResNet blocks (see [`~models.resnet.ResnetBlock2D`]). Choose from `default` or `scale_shift`.
|
| 130 |
+
class_embed_type (`str`, *optional*, defaults to `None`):
|
| 131 |
+
The type of class embedding to use which is ultimately summed with the time embeddings. Choose from `None`,
|
| 132 |
+
`"timestep"`, `"identity"`, `"projection"`, or `"simple_projection"`.
|
| 133 |
+
addition_embed_type (`str`, *optional*, defaults to `None`):
|
| 134 |
+
Configures an optional embedding which will be summed with the time embeddings. Choose from `None` or
|
| 135 |
+
"text". "text" will use the `TextTimeEmbedding` layer.
|
| 136 |
+
addition_time_embed_dim: (`int`, *optional*, defaults to `None`):
|
| 137 |
+
Dimension for the timestep embeddings.
|
| 138 |
+
num_class_embeds (`int`, *optional*, defaults to `None`):
|
| 139 |
+
Input dimension of the learnable embedding matrix to be projected to `time_embed_dim`, when performing
|
| 140 |
+
class conditioning with `class_embed_type` equal to `None`.
|
| 141 |
+
time_embedding_type (`str`, *optional*, defaults to `positional`):
|
| 142 |
+
The type of position embedding to use for timesteps. Choose from `positional` or `fourier`.
|
| 143 |
+
time_embedding_dim (`int`, *optional*, defaults to `None`):
|
| 144 |
+
An optional override for the dimension of the projected time embedding.
|
| 145 |
+
time_embedding_act_fn (`str`, *optional*, defaults to `None`):
|
| 146 |
+
Optional activation function to use only once on the time embeddings before they are passed to the rest of
|
| 147 |
+
the UNet. Choose from `silu`, `mish`, `gelu`, and `swish`.
|
| 148 |
+
timestep_post_act (`str`, *optional*, defaults to `None`):
|
| 149 |
+
The second activation function to use in timestep embedding. Choose from `silu`, `mish` and `gelu`.
|
| 150 |
+
time_cond_proj_dim (`int`, *optional*, defaults to `None`):
|
| 151 |
+
The dimension of `cond_proj` layer in the timestep embedding.
|
| 152 |
+
conv_in_kernel (`int`, *optional*, default to `3`): The kernel size of `conv_in` layer. conv_out_kernel (`int`,
|
| 153 |
+
*optional*, default to `3`): The kernel size of `conv_out` layer. projection_class_embeddings_input_dim (`int`,
|
| 154 |
+
*optional*): The dimension of the `class_labels` input when
|
| 155 |
+
`class_embed_type="projection"`. Required when `class_embed_type="projection"`.
|
| 156 |
+
class_embeddings_concat (`bool`, *optional*, defaults to `False`): Whether to concatenate the time
|
| 157 |
+
embeddings with the class embeddings.
|
| 158 |
+
mid_block_only_cross_attention (`bool`, *optional*, defaults to `None`):
|
| 159 |
+
Whether to use cross attention with the mid block when using the `UNetMidBlock2DSimpleCrossAttn`. If
|
| 160 |
+
`only_cross_attention` is given as a single boolean and `mid_block_only_cross_attention` is `None`, the
|
| 161 |
+
`only_cross_attention` value is used as the value for `mid_block_only_cross_attention`. Default to `False`
|
| 162 |
+
otherwise.
|
| 163 |
+
"""
|
| 164 |
+
|
| 165 |
+
_supports_gradient_checkpointing = True
|
| 166 |
+
|
| 167 |
+
@register_to_config
|
| 168 |
+
def __init__(
|
| 169 |
+
self,
|
| 170 |
+
sample_size: Optional[int] = None,
|
| 171 |
+
in_channels: int = 4,
|
| 172 |
+
out_channels: int = 4,
|
| 173 |
+
center_input_sample: bool = False,
|
| 174 |
+
flip_sin_to_cos: bool = True,
|
| 175 |
+
freq_shift: int = 0,
|
| 176 |
+
down_block_types: Tuple[str] = (
|
| 177 |
+
"CrossAttnDownBlock2D",
|
| 178 |
+
"CrossAttnDownBlock2D",
|
| 179 |
+
"CrossAttnDownBlock2D",
|
| 180 |
+
"DownBlock2D",
|
| 181 |
+
),
|
| 182 |
+
mid_block_type: Optional[str] = "UNetMidBlock2DCrossAttn",
|
| 183 |
+
up_block_types: Tuple[str] = ("UpBlock2D", "CrossAttnUpBlock2D", "CrossAttnUpBlock2D", "CrossAttnUpBlock2D"),
|
| 184 |
+
only_cross_attention: Union[bool, Tuple[bool]] = False,
|
| 185 |
+
block_out_channels: Tuple[int] = (320, 640, 1280, 1280),
|
| 186 |
+
layers_per_block: Union[int, Tuple[int]] = 2,
|
| 187 |
+
downsample_padding: int = 1,
|
| 188 |
+
mid_block_scale_factor: float = 1,
|
| 189 |
+
dropout: float = 0.0,
|
| 190 |
+
act_fn: str = "silu",
|
| 191 |
+
norm_num_groups: Optional[int] = 32,
|
| 192 |
+
norm_eps: float = 1e-5,
|
| 193 |
+
cross_attention_dim: Union[int, Tuple[int]] = 1280,
|
| 194 |
+
transformer_layers_per_block: Union[int, Tuple[int], Tuple[Tuple]] = 1,
|
| 195 |
+
reverse_transformer_layers_per_block: Optional[Tuple[Tuple[int]]] = None,
|
| 196 |
+
encoder_hid_dim: Optional[int] = None,
|
| 197 |
+
encoder_hid_dim_type: Optional[str] = None,
|
| 198 |
+
attention_head_dim: Union[int, Tuple[int]] = 8,
|
| 199 |
+
num_attention_heads: Optional[Union[int, Tuple[int]]] = None,
|
| 200 |
+
dual_cross_attention: bool = False,
|
| 201 |
+
use_linear_projection: bool = False,
|
| 202 |
+
class_embed_type: Optional[str] = None,
|
| 203 |
+
addition_embed_type: Optional[str] = None,
|
| 204 |
+
addition_time_embed_dim: Optional[int] = None,
|
| 205 |
+
num_class_embeds: Optional[int] = None,
|
| 206 |
+
upcast_attention: bool = False,
|
| 207 |
+
resnet_time_scale_shift: str = "default",
|
| 208 |
+
resnet_skip_time_act: bool = False,
|
| 209 |
+
resnet_out_scale_factor: int = 1.0,
|
| 210 |
+
time_embedding_type: str = "positional",
|
| 211 |
+
time_embedding_dim: Optional[int] = None,
|
| 212 |
+
time_embedding_act_fn: Optional[str] = None,
|
| 213 |
+
timestep_post_act: Optional[str] = None,
|
| 214 |
+
time_cond_proj_dim: Optional[int] = None,
|
| 215 |
+
conv_in_kernel: int = 3,
|
| 216 |
+
conv_out_kernel: int = 3,
|
| 217 |
+
projection_class_embeddings_input_dim: Optional[int] = None,
|
| 218 |
+
attention_type: str = "default",
|
| 219 |
+
class_embeddings_concat: bool = False,
|
| 220 |
+
mid_block_only_cross_attention: Optional[bool] = None,
|
| 221 |
+
cross_attention_norm: Optional[str] = None,
|
| 222 |
+
addition_embed_type_num_heads=64,
|
| 223 |
+
):
|
| 224 |
+
super().__init__()
|
| 225 |
+
|
| 226 |
+
self.sample_size = sample_size
|
| 227 |
+
|
| 228 |
+
if num_attention_heads is not None:
|
| 229 |
+
raise ValueError(
|
| 230 |
+
"At the moment it is not possible to define the number of attention heads via `num_attention_heads` because of a naming issue as described in https://github.com/huggingface/diffusers/issues/2011#issuecomment-1547958131. Passing `num_attention_heads` will only be supported in diffusers v0.19."
|
| 231 |
+
)
|
| 232 |
+
|
| 233 |
+
# If `num_attention_heads` is not defined (which is the case for most models)
|
| 234 |
+
# it will default to `attention_head_dim`. This looks weird upon first reading it and it is.
|
| 235 |
+
# The reason for this behavior is to correct for incorrectly named variables that were introduced
|
| 236 |
+
# when this library was created. The incorrect naming was only discovered much later in https://github.com/huggingface/diffusers/issues/2011#issuecomment-1547958131
|
| 237 |
+
# Changing `attention_head_dim` to `num_attention_heads` for 40,000+ configurations is too backwards breaking
|
| 238 |
+
# which is why we correct for the naming here.
|
| 239 |
+
num_attention_heads = num_attention_heads or attention_head_dim
|
| 240 |
+
|
| 241 |
+
# Check inputs
|
| 242 |
+
if len(down_block_types) != len(up_block_types):
|
| 243 |
+
raise ValueError(
|
| 244 |
+
f"Must provide the same number of `down_block_types` as `up_block_types`. `down_block_types`: {down_block_types}. `up_block_types`: {up_block_types}."
|
| 245 |
+
)
|
| 246 |
+
|
| 247 |
+
if len(block_out_channels) != len(down_block_types):
|
| 248 |
+
raise ValueError(
|
| 249 |
+
f"Must provide the same number of `block_out_channels` as `down_block_types`. `block_out_channels`: {block_out_channels}. `down_block_types`: {down_block_types}."
|
| 250 |
+
)
|
| 251 |
+
|
| 252 |
+
if not isinstance(only_cross_attention, bool) and len(only_cross_attention) != len(down_block_types):
|
| 253 |
+
raise ValueError(
|
| 254 |
+
f"Must provide the same number of `only_cross_attention` as `down_block_types`. `only_cross_attention`: {only_cross_attention}. `down_block_types`: {down_block_types}."
|
| 255 |
+
)
|
| 256 |
+
|
| 257 |
+
if not isinstance(num_attention_heads, int) and len(num_attention_heads) != len(down_block_types):
|
| 258 |
+
raise ValueError(
|
| 259 |
+
f"Must provide the same number of `num_attention_heads` as `down_block_types`. `num_attention_heads`: {num_attention_heads}. `down_block_types`: {down_block_types}."
|
| 260 |
+
)
|
| 261 |
+
|
| 262 |
+
if not isinstance(attention_head_dim, int) and len(attention_head_dim) != len(down_block_types):
|
| 263 |
+
raise ValueError(
|
| 264 |
+
f"Must provide the same number of `attention_head_dim` as `down_block_types`. `attention_head_dim`: {attention_head_dim}. `down_block_types`: {down_block_types}."
|
| 265 |
+
)
|
| 266 |
+
|
| 267 |
+
if isinstance(cross_attention_dim, list) and len(cross_attention_dim) != len(down_block_types):
|
| 268 |
+
raise ValueError(
|
| 269 |
+
f"Must provide the same number of `cross_attention_dim` as `down_block_types`. `cross_attention_dim`: {cross_attention_dim}. `down_block_types`: {down_block_types}."
|
| 270 |
+
)
|
| 271 |
+
|
| 272 |
+
if not isinstance(layers_per_block, int) and len(layers_per_block) != len(down_block_types):
|
| 273 |
+
raise ValueError(
|
| 274 |
+
f"Must provide the same number of `layers_per_block` as `down_block_types`. `layers_per_block`: {layers_per_block}. `down_block_types`: {down_block_types}."
|
| 275 |
+
)
|
| 276 |
+
if isinstance(transformer_layers_per_block, list) and reverse_transformer_layers_per_block is None:
|
| 277 |
+
for layer_number_per_block in transformer_layers_per_block:
|
| 278 |
+
if isinstance(layer_number_per_block, list):
|
| 279 |
+
raise ValueError("Must provide 'reverse_transformer_layers_per_block` if using asymmetrical UNet.")
|
| 280 |
+
|
| 281 |
+
# input
|
| 282 |
+
conv_in_padding = (conv_in_kernel - 1) // 2
|
| 283 |
+
self.conv_in = nn.Conv2d(
|
| 284 |
+
in_channels, block_out_channels[0], kernel_size=conv_in_kernel, padding=conv_in_padding
|
| 285 |
+
)
|
| 286 |
+
|
| 287 |
+
# time
|
| 288 |
+
if time_embedding_type == "fourier":
|
| 289 |
+
time_embed_dim = time_embedding_dim or block_out_channels[0] * 2
|
| 290 |
+
if time_embed_dim % 2 != 0:
|
| 291 |
+
raise ValueError(f"`time_embed_dim` should be divisible by 2, but is {time_embed_dim}.")
|
| 292 |
+
self.time_proj = GaussianFourierProjection(
|
| 293 |
+
time_embed_dim // 2, set_W_to_weight=False, log=False, flip_sin_to_cos=flip_sin_to_cos
|
| 294 |
+
)
|
| 295 |
+
timestep_input_dim = time_embed_dim
|
| 296 |
+
elif time_embedding_type == "positional":
|
| 297 |
+
time_embed_dim = time_embedding_dim or block_out_channels[0] * 4
|
| 298 |
+
|
| 299 |
+
self.time_proj = Timesteps(block_out_channels[0], flip_sin_to_cos, freq_shift)
|
| 300 |
+
timestep_input_dim = block_out_channels[0]
|
| 301 |
+
else:
|
| 302 |
+
raise ValueError(
|
| 303 |
+
f"{time_embedding_type} does not exist. Please make sure to use one of `fourier` or `positional`."
|
| 304 |
+
)
|
| 305 |
+
|
| 306 |
+
self.time_embedding = TimestepEmbedding(
|
| 307 |
+
timestep_input_dim,
|
| 308 |
+
time_embed_dim,
|
| 309 |
+
act_fn=act_fn,
|
| 310 |
+
post_act_fn=timestep_post_act,
|
| 311 |
+
cond_proj_dim=time_cond_proj_dim,
|
| 312 |
+
)
|
| 313 |
+
|
| 314 |
+
if encoder_hid_dim_type is None and encoder_hid_dim is not None:
|
| 315 |
+
encoder_hid_dim_type = "text_proj"
|
| 316 |
+
self.register_to_config(encoder_hid_dim_type=encoder_hid_dim_type)
|
| 317 |
+
logger.info("encoder_hid_dim_type defaults to 'text_proj' as `encoder_hid_dim` is defined.")
|
| 318 |
+
|
| 319 |
+
if encoder_hid_dim is None and encoder_hid_dim_type is not None:
|
| 320 |
+
raise ValueError(
|
| 321 |
+
f"`encoder_hid_dim` has to be defined when `encoder_hid_dim_type` is set to {encoder_hid_dim_type}."
|
| 322 |
+
)
|
| 323 |
+
|
| 324 |
+
if encoder_hid_dim_type == "text_proj":
|
| 325 |
+
self.encoder_hid_proj = nn.Linear(encoder_hid_dim, cross_attention_dim)
|
| 326 |
+
elif encoder_hid_dim_type == "text_image_proj":
|
| 327 |
+
# image_embed_dim DOESN'T have to be `cross_attention_dim`. To not clutter the __init__ too much
|
| 328 |
+
# they are set to `cross_attention_dim` here as this is exactly the required dimension for the currently only use
|
| 329 |
+
# case when `addition_embed_type == "text_image_proj"` (Kadinsky 2.1)`
|
| 330 |
+
self.encoder_hid_proj = TextImageProjection(
|
| 331 |
+
text_embed_dim=encoder_hid_dim,
|
| 332 |
+
image_embed_dim=cross_attention_dim,
|
| 333 |
+
cross_attention_dim=cross_attention_dim,
|
| 334 |
+
)
|
| 335 |
+
elif encoder_hid_dim_type == "image_proj":
|
| 336 |
+
# Kandinsky 2.2
|
| 337 |
+
self.encoder_hid_proj = ImageProjection(
|
| 338 |
+
image_embed_dim=encoder_hid_dim,
|
| 339 |
+
cross_attention_dim=cross_attention_dim,
|
| 340 |
+
)
|
| 341 |
+
elif encoder_hid_dim_type is not None:
|
| 342 |
+
raise ValueError(
|
| 343 |
+
f"encoder_hid_dim_type: {encoder_hid_dim_type} must be None, 'text_proj' or 'text_image_proj'."
|
| 344 |
+
)
|
| 345 |
+
else:
|
| 346 |
+
self.encoder_hid_proj = None
|
| 347 |
+
|
| 348 |
+
# class embedding
|
| 349 |
+
if class_embed_type is None and num_class_embeds is not None:
|
| 350 |
+
self.class_embedding = nn.Embedding(num_class_embeds, time_embed_dim)
|
| 351 |
+
elif class_embed_type == "timestep":
|
| 352 |
+
self.class_embedding = TimestepEmbedding(timestep_input_dim, time_embed_dim, act_fn=act_fn)
|
| 353 |
+
elif class_embed_type == "identity":
|
| 354 |
+
self.class_embedding = nn.Identity(time_embed_dim, time_embed_dim)
|
| 355 |
+
elif class_embed_type == "projection":
|
| 356 |
+
if projection_class_embeddings_input_dim is None:
|
| 357 |
+
raise ValueError(
|
| 358 |
+
"`class_embed_type`: 'projection' requires `projection_class_embeddings_input_dim` be set"
|
| 359 |
+
)
|
| 360 |
+
# The projection `class_embed_type` is the same as the timestep `class_embed_type` except
|
| 361 |
+
# 1. the `class_labels` inputs are not first converted to sinusoidal embeddings
|
| 362 |
+
# 2. it projects from an arbitrary input dimension.
|
| 363 |
+
#
|
| 364 |
+
# Note that `TimestepEmbedding` is quite general, being mainly linear layers and activations.
|
| 365 |
+
# When used for embedding actual timesteps, the timesteps are first converted to sinusoidal embeddings.
|
| 366 |
+
# As a result, `TimestepEmbedding` can be passed arbitrary vectors.
|
| 367 |
+
self.class_embedding = TimestepEmbedding(projection_class_embeddings_input_dim, time_embed_dim)
|
| 368 |
+
elif class_embed_type == "simple_projection":
|
| 369 |
+
if projection_class_embeddings_input_dim is None:
|
| 370 |
+
raise ValueError(
|
| 371 |
+
"`class_embed_type`: 'simple_projection' requires `projection_class_embeddings_input_dim` be set"
|
| 372 |
+
)
|
| 373 |
+
self.class_embedding = nn.Linear(projection_class_embeddings_input_dim, time_embed_dim)
|
| 374 |
+
else:
|
| 375 |
+
self.class_embedding = None
|
| 376 |
+
|
| 377 |
+
if addition_embed_type == "text":
|
| 378 |
+
if encoder_hid_dim is not None:
|
| 379 |
+
text_time_embedding_from_dim = encoder_hid_dim
|
| 380 |
+
else:
|
| 381 |
+
text_time_embedding_from_dim = cross_attention_dim
|
| 382 |
+
|
| 383 |
+
self.add_embedding = TextTimeEmbedding(
|
| 384 |
+
text_time_embedding_from_dim, time_embed_dim, num_heads=addition_embed_type_num_heads
|
| 385 |
+
)
|
| 386 |
+
elif addition_embed_type == "text_image":
|
| 387 |
+
# text_embed_dim and image_embed_dim DON'T have to be `cross_attention_dim`. To not clutter the __init__ too much
|
| 388 |
+
# they are set to `cross_attention_dim` here as this is exactly the required dimension for the currently only use
|
| 389 |
+
# case when `addition_embed_type == "text_image"` (Kadinsky 2.1)`
|
| 390 |
+
self.add_embedding = TextImageTimeEmbedding(
|
| 391 |
+
text_embed_dim=cross_attention_dim, image_embed_dim=cross_attention_dim, time_embed_dim=time_embed_dim
|
| 392 |
+
)
|
| 393 |
+
elif addition_embed_type == "text_time":
|
| 394 |
+
self.add_time_proj = Timesteps(addition_time_embed_dim, flip_sin_to_cos, freq_shift)
|
| 395 |
+
self.add_embedding = TimestepEmbedding(projection_class_embeddings_input_dim, time_embed_dim)
|
| 396 |
+
elif addition_embed_type == "image":
|
| 397 |
+
# Kandinsky 2.2
|
| 398 |
+
self.add_embedding = ImageTimeEmbedding(image_embed_dim=encoder_hid_dim, time_embed_dim=time_embed_dim)
|
| 399 |
+
elif addition_embed_type == "image_hint":
|
| 400 |
+
# Kandinsky 2.2 ControlNet
|
| 401 |
+
self.add_embedding = ImageHintTimeEmbedding(image_embed_dim=encoder_hid_dim, time_embed_dim=time_embed_dim)
|
| 402 |
+
elif addition_embed_type is not None:
|
| 403 |
+
raise ValueError(f"addition_embed_type: {addition_embed_type} must be None, 'text' or 'text_image'.")
|
| 404 |
+
|
| 405 |
+
if time_embedding_act_fn is None:
|
| 406 |
+
self.time_embed_act = None
|
| 407 |
+
else:
|
| 408 |
+
self.time_embed_act = get_activation(time_embedding_act_fn)
|
| 409 |
+
|
| 410 |
+
self.down_blocks = nn.ModuleList([])
|
| 411 |
+
self.up_blocks = nn.ModuleList([])
|
| 412 |
+
|
| 413 |
+
if isinstance(only_cross_attention, bool):
|
| 414 |
+
if mid_block_only_cross_attention is None:
|
| 415 |
+
mid_block_only_cross_attention = only_cross_attention
|
| 416 |
+
|
| 417 |
+
only_cross_attention = [only_cross_attention] * len(down_block_types)
|
| 418 |
+
|
| 419 |
+
if mid_block_only_cross_attention is None:
|
| 420 |
+
mid_block_only_cross_attention = False
|
| 421 |
+
|
| 422 |
+
if isinstance(num_attention_heads, int):
|
| 423 |
+
num_attention_heads = (num_attention_heads,) * len(down_block_types)
|
| 424 |
+
|
| 425 |
+
if isinstance(attention_head_dim, int):
|
| 426 |
+
attention_head_dim = (attention_head_dim,) * len(down_block_types)
|
| 427 |
+
|
| 428 |
+
if isinstance(cross_attention_dim, int):
|
| 429 |
+
cross_attention_dim = (cross_attention_dim,) * len(down_block_types)
|
| 430 |
+
|
| 431 |
+
if isinstance(layers_per_block, int):
|
| 432 |
+
layers_per_block = [layers_per_block] * len(down_block_types)
|
| 433 |
+
|
| 434 |
+
if isinstance(transformer_layers_per_block, int):
|
| 435 |
+
transformer_layers_per_block = [transformer_layers_per_block] * len(down_block_types)
|
| 436 |
+
|
| 437 |
+
if class_embeddings_concat:
|
| 438 |
+
# The time embeddings are concatenated with the class embeddings. The dimension of the
|
| 439 |
+
# time embeddings passed to the down, middle, and up blocks is twice the dimension of the
|
| 440 |
+
# regular time embeddings
|
| 441 |
+
blocks_time_embed_dim = time_embed_dim * 2
|
| 442 |
+
else:
|
| 443 |
+
blocks_time_embed_dim = time_embed_dim
|
| 444 |
+
|
| 445 |
+
# down
|
| 446 |
+
output_channel = block_out_channels[0]
|
| 447 |
+
for i, down_block_type in enumerate(down_block_types):
|
| 448 |
+
input_channel = output_channel
|
| 449 |
+
output_channel = block_out_channels[i]
|
| 450 |
+
is_final_block = i == len(block_out_channels) - 1
|
| 451 |
+
|
| 452 |
+
down_block = get_down_block(
|
| 453 |
+
down_block_type,
|
| 454 |
+
num_layers=layers_per_block[i],
|
| 455 |
+
transformer_layers_per_block=transformer_layers_per_block[i],
|
| 456 |
+
in_channels=input_channel,
|
| 457 |
+
out_channels=output_channel,
|
| 458 |
+
temb_channels=blocks_time_embed_dim,
|
| 459 |
+
add_downsample=not is_final_block,
|
| 460 |
+
resnet_eps=norm_eps,
|
| 461 |
+
resnet_act_fn=act_fn,
|
| 462 |
+
resnet_groups=norm_num_groups,
|
| 463 |
+
cross_attention_dim=cross_attention_dim[i],
|
| 464 |
+
num_attention_heads=num_attention_heads[i],
|
| 465 |
+
downsample_padding=downsample_padding,
|
| 466 |
+
dual_cross_attention=dual_cross_attention,
|
| 467 |
+
use_linear_projection=use_linear_projection,
|
| 468 |
+
only_cross_attention=only_cross_attention[i],
|
| 469 |
+
upcast_attention=upcast_attention,
|
| 470 |
+
resnet_time_scale_shift=resnet_time_scale_shift,
|
| 471 |
+
attention_type=attention_type,
|
| 472 |
+
resnet_skip_time_act=resnet_skip_time_act,
|
| 473 |
+
resnet_out_scale_factor=resnet_out_scale_factor,
|
| 474 |
+
cross_attention_norm=cross_attention_norm,
|
| 475 |
+
attention_head_dim=attention_head_dim[i] if attention_head_dim[i] is not None else output_channel,
|
| 476 |
+
dropout=dropout,
|
| 477 |
+
)
|
| 478 |
+
self.down_blocks.append(down_block)
|
| 479 |
+
|
| 480 |
+
# mid
|
| 481 |
+
if mid_block_type == "UNetMidBlock2DCrossAttn":
|
| 482 |
+
self.mid_block = UNetMidBlock2DCrossAttn(
|
| 483 |
+
transformer_layers_per_block=transformer_layers_per_block[-1],
|
| 484 |
+
in_channels=block_out_channels[-1],
|
| 485 |
+
temb_channels=blocks_time_embed_dim,
|
| 486 |
+
dropout=dropout,
|
| 487 |
+
resnet_eps=norm_eps,
|
| 488 |
+
resnet_act_fn=act_fn,
|
| 489 |
+
output_scale_factor=mid_block_scale_factor,
|
| 490 |
+
resnet_time_scale_shift=resnet_time_scale_shift,
|
| 491 |
+
cross_attention_dim=cross_attention_dim[-1],
|
| 492 |
+
num_attention_heads=num_attention_heads[-1],
|
| 493 |
+
resnet_groups=norm_num_groups,
|
| 494 |
+
dual_cross_attention=dual_cross_attention,
|
| 495 |
+
use_linear_projection=use_linear_projection,
|
| 496 |
+
upcast_attention=upcast_attention,
|
| 497 |
+
attention_type=attention_type,
|
| 498 |
+
)
|
| 499 |
+
elif mid_block_type == "UNetMidBlock2DSimpleCrossAttn":
|
| 500 |
+
self.mid_block = UNetMidBlock2DSimpleCrossAttn(
|
| 501 |
+
in_channels=block_out_channels[-1],
|
| 502 |
+
temb_channels=blocks_time_embed_dim,
|
| 503 |
+
dropout=dropout,
|
| 504 |
+
resnet_eps=norm_eps,
|
| 505 |
+
resnet_act_fn=act_fn,
|
| 506 |
+
output_scale_factor=mid_block_scale_factor,
|
| 507 |
+
cross_attention_dim=cross_attention_dim[-1],
|
| 508 |
+
attention_head_dim=attention_head_dim[-1],
|
| 509 |
+
resnet_groups=norm_num_groups,
|
| 510 |
+
resnet_time_scale_shift=resnet_time_scale_shift,
|
| 511 |
+
skip_time_act=resnet_skip_time_act,
|
| 512 |
+
only_cross_attention=mid_block_only_cross_attention,
|
| 513 |
+
cross_attention_norm=cross_attention_norm,
|
| 514 |
+
)
|
| 515 |
+
elif mid_block_type == "UNetMidBlock2D":
|
| 516 |
+
self.mid_block = UNetMidBlock2D(
|
| 517 |
+
in_channels=block_out_channels[-1],
|
| 518 |
+
temb_channels=blocks_time_embed_dim,
|
| 519 |
+
dropout=dropout,
|
| 520 |
+
num_layers=0,
|
| 521 |
+
resnet_eps=norm_eps,
|
| 522 |
+
resnet_act_fn=act_fn,
|
| 523 |
+
output_scale_factor=mid_block_scale_factor,
|
| 524 |
+
resnet_groups=norm_num_groups,
|
| 525 |
+
resnet_time_scale_shift=resnet_time_scale_shift,
|
| 526 |
+
add_attention=False,
|
| 527 |
+
)
|
| 528 |
+
elif mid_block_type is None:
|
| 529 |
+
self.mid_block = None
|
| 530 |
+
else:
|
| 531 |
+
raise ValueError(f"unknown mid_block_type : {mid_block_type}")
|
| 532 |
+
|
| 533 |
+
# count how many layers upsample the images
|
| 534 |
+
self.num_upsamplers = 0
|
| 535 |
+
|
| 536 |
+
# up
|
| 537 |
+
reversed_block_out_channels = list(reversed(block_out_channels))
|
| 538 |
+
reversed_num_attention_heads = list(reversed(num_attention_heads))
|
| 539 |
+
reversed_layers_per_block = list(reversed(layers_per_block))
|
| 540 |
+
reversed_cross_attention_dim = list(reversed(cross_attention_dim))
|
| 541 |
+
reversed_transformer_layers_per_block = (
|
| 542 |
+
list(reversed(transformer_layers_per_block))
|
| 543 |
+
if reverse_transformer_layers_per_block is None
|
| 544 |
+
else reverse_transformer_layers_per_block
|
| 545 |
+
)
|
| 546 |
+
only_cross_attention = list(reversed(only_cross_attention))
|
| 547 |
+
|
| 548 |
+
output_channel = reversed_block_out_channels[0]
|
| 549 |
+
for i, up_block_type in enumerate(up_block_types):
|
| 550 |
+
is_final_block = i == len(block_out_channels) - 1
|
| 551 |
+
|
| 552 |
+
prev_output_channel = output_channel
|
| 553 |
+
output_channel = reversed_block_out_channels[i]
|
| 554 |
+
input_channel = reversed_block_out_channels[min(i + 1, len(block_out_channels) - 1)]
|
| 555 |
+
|
| 556 |
+
# add upsample block for all BUT final layer
|
| 557 |
+
if not is_final_block:
|
| 558 |
+
add_upsample = True
|
| 559 |
+
self.num_upsamplers += 1
|
| 560 |
+
else:
|
| 561 |
+
add_upsample = False
|
| 562 |
+
|
| 563 |
+
up_block = get_up_block(
|
| 564 |
+
up_block_type,
|
| 565 |
+
num_layers=reversed_layers_per_block[i] + 1,
|
| 566 |
+
transformer_layers_per_block=reversed_transformer_layers_per_block[i],
|
| 567 |
+
in_channels=input_channel,
|
| 568 |
+
out_channels=output_channel,
|
| 569 |
+
prev_output_channel=prev_output_channel,
|
| 570 |
+
temb_channels=blocks_time_embed_dim,
|
| 571 |
+
add_upsample=add_upsample,
|
| 572 |
+
resnet_eps=norm_eps,
|
| 573 |
+
resnet_act_fn=act_fn,
|
| 574 |
+
resolution_idx=i,
|
| 575 |
+
resnet_groups=norm_num_groups,
|
| 576 |
+
cross_attention_dim=reversed_cross_attention_dim[i],
|
| 577 |
+
num_attention_heads=reversed_num_attention_heads[i],
|
| 578 |
+
dual_cross_attention=dual_cross_attention,
|
| 579 |
+
use_linear_projection=use_linear_projection,
|
| 580 |
+
only_cross_attention=only_cross_attention[i],
|
| 581 |
+
upcast_attention=upcast_attention,
|
| 582 |
+
resnet_time_scale_shift=resnet_time_scale_shift,
|
| 583 |
+
attention_type=attention_type,
|
| 584 |
+
resnet_skip_time_act=resnet_skip_time_act,
|
| 585 |
+
resnet_out_scale_factor=resnet_out_scale_factor,
|
| 586 |
+
cross_attention_norm=cross_attention_norm,
|
| 587 |
+
attention_head_dim=attention_head_dim[i] if attention_head_dim[i] is not None else output_channel,
|
| 588 |
+
dropout=dropout,
|
| 589 |
+
)
|
| 590 |
+
self.up_blocks.append(up_block)
|
| 591 |
+
prev_output_channel = output_channel
|
| 592 |
+
|
| 593 |
+
# out
|
| 594 |
+
if norm_num_groups is not None:
|
| 595 |
+
self.conv_norm_out = nn.GroupNorm(
|
| 596 |
+
num_channels=block_out_channels[0], num_groups=norm_num_groups, eps=norm_eps
|
| 597 |
+
)
|
| 598 |
+
|
| 599 |
+
self.conv_act = get_activation(act_fn)
|
| 600 |
+
|
| 601 |
+
else:
|
| 602 |
+
self.conv_norm_out = None
|
| 603 |
+
self.conv_act = None
|
| 604 |
+
|
| 605 |
+
conv_out_padding = (conv_out_kernel - 1) // 2
|
| 606 |
+
self.conv_out = nn.Conv2d(
|
| 607 |
+
block_out_channels[0], out_channels, kernel_size=conv_out_kernel, padding=conv_out_padding
|
| 608 |
+
)
|
| 609 |
+
|
| 610 |
+
if attention_type in ["gated", "gated-text-image"]:
|
| 611 |
+
positive_len = 768
|
| 612 |
+
if isinstance(cross_attention_dim, int):
|
| 613 |
+
positive_len = cross_attention_dim
|
| 614 |
+
elif isinstance(cross_attention_dim, tuple) or isinstance(cross_attention_dim, list):
|
| 615 |
+
positive_len = cross_attention_dim[0]
|
| 616 |
+
|
| 617 |
+
feature_type = "text-only" if attention_type == "gated" else "text-image"
|
| 618 |
+
self.position_net = PositionNet(
|
| 619 |
+
positive_len=positive_len, out_dim=cross_attention_dim, feature_type=feature_type
|
| 620 |
+
)
|
| 621 |
+
|
| 622 |
+
@property
|
| 623 |
+
def attn_processors(self) -> Dict[str, AttentionProcessor]:
|
| 624 |
+
r"""
|
| 625 |
+
Returns:
|
| 626 |
+
`dict` of attention processors: A dictionary containing all attention processors used in the model with
|
| 627 |
+
indexed by its weight name.
|
| 628 |
+
"""
|
| 629 |
+
# set recursively
|
| 630 |
+
processors = {}
|
| 631 |
+
|
| 632 |
+
def fn_recursive_add_processors(name: str, module: torch.nn.Module, processors: Dict[str, AttentionProcessor]):
|
| 633 |
+
if hasattr(module, "get_processor"):
|
| 634 |
+
processors[f"{name}.processor"] = module.get_processor(return_deprecated_lora=True)
|
| 635 |
+
|
| 636 |
+
for sub_name, child in module.named_children():
|
| 637 |
+
fn_recursive_add_processors(f"{name}.{sub_name}", child, processors)
|
| 638 |
+
|
| 639 |
+
return processors
|
| 640 |
+
|
| 641 |
+
for name, module in self.named_children():
|
| 642 |
+
fn_recursive_add_processors(name, module, processors)
|
| 643 |
+
|
| 644 |
+
return processors
|
| 645 |
+
|
| 646 |
+
def set_attn_processor(
|
| 647 |
+
self, processor: Union[AttentionProcessor, Dict[str, AttentionProcessor]], _remove_lora=False
|
| 648 |
+
):
|
| 649 |
+
r"""
|
| 650 |
+
Sets the attention processor to use to compute attention.
|
| 651 |
+
|
| 652 |
+
Parameters:
|
| 653 |
+
processor (`dict` of `AttentionProcessor` or only `AttentionProcessor`):
|
| 654 |
+
The instantiated processor class or a dictionary of processor classes that will be set as the processor
|
| 655 |
+
for **all** `Attention` layers.
|
| 656 |
+
|
| 657 |
+
If `processor` is a dict, the key needs to define the path to the corresponding cross attention
|
| 658 |
+
processor. This is strongly recommended when setting trainable attention processors.
|
| 659 |
+
|
| 660 |
+
"""
|
| 661 |
+
count = len(self.attn_processors.keys())
|
| 662 |
+
|
| 663 |
+
if isinstance(processor, dict) and len(processor) != count:
|
| 664 |
+
raise ValueError(
|
| 665 |
+
f"A dict of processors was passed, but the number of processors {len(processor)} does not match the"
|
| 666 |
+
f" number of attention layers: {count}. Please make sure to pass {count} processor classes."
|
| 667 |
+
)
|
| 668 |
+
|
| 669 |
+
def fn_recursive_attn_processor(name: str, module: torch.nn.Module, processor):
|
| 670 |
+
if hasattr(module, "set_processor"):
|
| 671 |
+
if not isinstance(processor, dict):
|
| 672 |
+
module.set_processor(processor, _remove_lora=_remove_lora)
|
| 673 |
+
else:
|
| 674 |
+
module.set_processor(processor.pop(f"{name}.processor"), _remove_lora=_remove_lora)
|
| 675 |
+
|
| 676 |
+
for sub_name, child in module.named_children():
|
| 677 |
+
fn_recursive_attn_processor(f"{name}.{sub_name}", child, processor)
|
| 678 |
+
|
| 679 |
+
for name, module in self.named_children():
|
| 680 |
+
fn_recursive_attn_processor(name, module, processor)
|
| 681 |
+
|
| 682 |
+
def set_default_attn_processor(self):
|
| 683 |
+
"""
|
| 684 |
+
Disables custom attention processors and sets the default attention implementation.
|
| 685 |
+
"""
|
| 686 |
+
if all(proc.__class__ in ADDED_KV_ATTENTION_PROCESSORS for proc in self.attn_processors.values()):
|
| 687 |
+
processor = AttnAddedKVProcessor()
|
| 688 |
+
elif all(proc.__class__ in CROSS_ATTENTION_PROCESSORS for proc in self.attn_processors.values()):
|
| 689 |
+
processor = AttnProcessor()
|
| 690 |
+
else:
|
| 691 |
+
raise ValueError(
|
| 692 |
+
f"Cannot call `set_default_attn_processor` when attention processors are of type {next(iter(self.attn_processors.values()))}"
|
| 693 |
+
)
|
| 694 |
+
|
| 695 |
+
self.set_attn_processor(processor, _remove_lora=True)
|
| 696 |
+
|
| 697 |
+
def set_attention_slice(self, slice_size):
|
| 698 |
+
r"""
|
| 699 |
+
Enable sliced attention computation.
|
| 700 |
+
|
| 701 |
+
When this option is enabled, the attention module splits the input tensor in slices to compute attention in
|
| 702 |
+
several steps. This is useful for saving some memory in exchange for a small decrease in speed.
|
| 703 |
+
|
| 704 |
+
Args:
|
| 705 |
+
slice_size (`str` or `int` or `list(int)`, *optional*, defaults to `"auto"`):
|
| 706 |
+
When `"auto"`, input to the attention heads is halved, so attention is computed in two steps. If
|
| 707 |
+
`"max"`, maximum amount of memory is saved by running only one slice at a time. If a number is
|
| 708 |
+
provided, uses as many slices as `attention_head_dim // slice_size`. In this case, `attention_head_dim`
|
| 709 |
+
must be a multiple of `slice_size`.
|
| 710 |
+
"""
|
| 711 |
+
sliceable_head_dims = []
|
| 712 |
+
|
| 713 |
+
def fn_recursive_retrieve_sliceable_dims(module: torch.nn.Module):
|
| 714 |
+
if hasattr(module, "set_attention_slice"):
|
| 715 |
+
sliceable_head_dims.append(module.sliceable_head_dim)
|
| 716 |
+
|
| 717 |
+
for child in module.children():
|
| 718 |
+
fn_recursive_retrieve_sliceable_dims(child)
|
| 719 |
+
|
| 720 |
+
# retrieve number of attention layers
|
| 721 |
+
for module in self.children():
|
| 722 |
+
fn_recursive_retrieve_sliceable_dims(module)
|
| 723 |
+
|
| 724 |
+
num_sliceable_layers = len(sliceable_head_dims)
|
| 725 |
+
|
| 726 |
+
if slice_size == "auto":
|
| 727 |
+
# half the attention head size is usually a good trade-off between
|
| 728 |
+
# speed and memory
|
| 729 |
+
slice_size = [dim // 2 for dim in sliceable_head_dims]
|
| 730 |
+
elif slice_size == "max":
|
| 731 |
+
# make smallest slice possible
|
| 732 |
+
slice_size = num_sliceable_layers * [1]
|
| 733 |
+
|
| 734 |
+
slice_size = num_sliceable_layers * [slice_size] if not isinstance(slice_size, list) else slice_size
|
| 735 |
+
|
| 736 |
+
if len(slice_size) != len(sliceable_head_dims):
|
| 737 |
+
raise ValueError(
|
| 738 |
+
f"You have provided {len(slice_size)}, but {self.config} has {len(sliceable_head_dims)} different"
|
| 739 |
+
f" attention layers. Make sure to match `len(slice_size)` to be {len(sliceable_head_dims)}."
|
| 740 |
+
)
|
| 741 |
+
|
| 742 |
+
for i in range(len(slice_size)):
|
| 743 |
+
size = slice_size[i]
|
| 744 |
+
dim = sliceable_head_dims[i]
|
| 745 |
+
if size is not None and size > dim:
|
| 746 |
+
raise ValueError(f"size {size} has to be smaller or equal to {dim}.")
|
| 747 |
+
|
| 748 |
+
# Recursively walk through all the children.
|
| 749 |
+
# Any children which exposes the set_attention_slice method
|
| 750 |
+
# gets the message
|
| 751 |
+
def fn_recursive_set_attention_slice(module: torch.nn.Module, slice_size: List[int]):
|
| 752 |
+
if hasattr(module, "set_attention_slice"):
|
| 753 |
+
module.set_attention_slice(slice_size.pop())
|
| 754 |
+
|
| 755 |
+
for child in module.children():
|
| 756 |
+
fn_recursive_set_attention_slice(child, slice_size)
|
| 757 |
+
|
| 758 |
+
reversed_slice_size = list(reversed(slice_size))
|
| 759 |
+
for module in self.children():
|
| 760 |
+
fn_recursive_set_attention_slice(module, reversed_slice_size)
|
| 761 |
+
|
| 762 |
+
def _set_gradient_checkpointing(self, module, value=False):
|
| 763 |
+
if hasattr(module, "gradient_checkpointing"):
|
| 764 |
+
module.gradient_checkpointing = value
|
| 765 |
+
|
| 766 |
+
def enable_freeu(self, s1, s2, b1, b2):
|
| 767 |
+
r"""Enables the FreeU mechanism from https://arxiv.org/abs/2309.11497.
|
| 768 |
+
|
| 769 |
+
The suffixes after the scaling factors represent the stage blocks where they are being applied.
|
| 770 |
+
|
| 771 |
+
Please refer to the [official repository](https://github.com/ChenyangSi/FreeU) for combinations of values that
|
| 772 |
+
are known to work well for different pipelines such as Stable Diffusion v1, v2, and Stable Diffusion XL.
|
| 773 |
+
|
| 774 |
+
Args:
|
| 775 |
+
s1 (`float`):
|
| 776 |
+
Scaling factor for stage 1 to attenuate the contributions of the skip features. This is done to
|
| 777 |
+
mitigate the "oversmoothing effect" in the enhanced denoising process.
|
| 778 |
+
s2 (`float`):
|
| 779 |
+
Scaling factor for stage 2 to attenuate the contributions of the skip features. This is done to
|
| 780 |
+
mitigate the "oversmoothing effect" in the enhanced denoising process.
|
| 781 |
+
b1 (`float`): Scaling factor for stage 1 to amplify the contributions of backbone features.
|
| 782 |
+
b2 (`float`): Scaling factor for stage 2 to amplify the contributions of backbone features.
|
| 783 |
+
"""
|
| 784 |
+
for i, upsample_block in enumerate(self.up_blocks):
|
| 785 |
+
setattr(upsample_block, "s1", s1)
|
| 786 |
+
setattr(upsample_block, "s2", s2)
|
| 787 |
+
setattr(upsample_block, "b1", b1)
|
| 788 |
+
setattr(upsample_block, "b2", b2)
|
| 789 |
+
|
| 790 |
+
def disable_freeu(self):
|
| 791 |
+
"""Disables the FreeU mechanism."""
|
| 792 |
+
freeu_keys = {"s1", "s2", "b1", "b2"}
|
| 793 |
+
for i, upsample_block in enumerate(self.up_blocks):
|
| 794 |
+
for k in freeu_keys:
|
| 795 |
+
if hasattr(upsample_block, k) or getattr(upsample_block, k, None) is not None:
|
| 796 |
+
setattr(upsample_block, k, None)
|
| 797 |
+
|
| 798 |
+
def fuse_qkv_projections(self):
|
| 799 |
+
"""
|
| 800 |
+
Enables fused QKV projections. For self-attention modules, all projection matrices (i.e., query,
|
| 801 |
+
key, value) are fused. For cross-attention modules, key and value projection matrices are fused.
|
| 802 |
+
|
| 803 |
+
<Tip warning={true}>
|
| 804 |
+
|
| 805 |
+
This API is 🧪 experimental.
|
| 806 |
+
|
| 807 |
+
</Tip>
|
| 808 |
+
"""
|
| 809 |
+
self.original_attn_processors = None
|
| 810 |
+
|
| 811 |
+
for _, attn_processor in self.attn_processors.items():
|
| 812 |
+
if "Added" in str(attn_processor.__class__.__name__):
|
| 813 |
+
raise ValueError("`fuse_qkv_projections()` is not supported for models having added KV projections.")
|
| 814 |
+
|
| 815 |
+
self.original_attn_processors = self.attn_processors
|
| 816 |
+
|
| 817 |
+
for module in self.modules():
|
| 818 |
+
if isinstance(module, Attention):
|
| 819 |
+
module.fuse_projections(fuse=True)
|
| 820 |
+
|
| 821 |
+
def unfuse_qkv_projections(self):
|
| 822 |
+
"""Disables the fused QKV projection if enabled.
|
| 823 |
+
|
| 824 |
+
<Tip warning={true}>
|
| 825 |
+
|
| 826 |
+
This API is 🧪 experimental.
|
| 827 |
+
|
| 828 |
+
</Tip>
|
| 829 |
+
|
| 830 |
+
"""
|
| 831 |
+
if self.original_attn_processors is not None:
|
| 832 |
+
self.set_attn_processor(self.original_attn_processors)
|
| 833 |
+
|
| 834 |
+
def forward(
|
| 835 |
+
self,
|
| 836 |
+
sample: torch.FloatTensor,
|
| 837 |
+
timestep: Union[torch.Tensor, float, int],
|
| 838 |
+
encoder_hidden_states: torch.Tensor,
|
| 839 |
+
class_labels: Optional[torch.Tensor] = None,
|
| 840 |
+
timestep_cond: Optional[torch.Tensor] = None,
|
| 841 |
+
attention_mask: Optional[torch.Tensor] = None,
|
| 842 |
+
cross_attention_kwargs: Optional[Dict[str, Any]] = None,
|
| 843 |
+
added_cond_kwargs: Optional[Dict[str, torch.Tensor]] = None,
|
| 844 |
+
down_block_additional_residuals: Optional[Tuple[torch.Tensor]] = None,
|
| 845 |
+
mid_block_additional_residual: Optional[torch.Tensor] = None,
|
| 846 |
+
down_intrablock_additional_residuals: Optional[Tuple[torch.Tensor]] = None,
|
| 847 |
+
encoder_attention_mask: Optional[torch.Tensor] = None,
|
| 848 |
+
return_dict: bool = True,
|
| 849 |
+
) -> Union[UNet2DConditionOutput, Tuple]:
|
| 850 |
+
r"""
|
| 851 |
+
The [`UNet2DConditionModel`] forward method.
|
| 852 |
+
|
| 853 |
+
Args:
|
| 854 |
+
sample (`torch.FloatTensor`):
|
| 855 |
+
The noisy input tensor with the following shape `(batch, channel, height, width)`.
|
| 856 |
+
timestep (`torch.FloatTensor` or `float` or `int`): The number of timesteps to denoise an input.
|
| 857 |
+
encoder_hidden_states (`torch.FloatTensor`):
|
| 858 |
+
The encoder hidden states with shape `(batch, sequence_length, feature_dim)`.
|
| 859 |
+
class_labels (`torch.Tensor`, *optional*, defaults to `None`):
|
| 860 |
+
Optional class labels for conditioning. Their embeddings will be summed with the timestep embeddings.
|
| 861 |
+
timestep_cond: (`torch.Tensor`, *optional*, defaults to `None`):
|
| 862 |
+
Conditional embeddings for timestep. If provided, the embeddings will be summed with the samples passed
|
| 863 |
+
through the `self.time_embedding` layer to obtain the timestep embeddings.
|
| 864 |
+
attention_mask (`torch.Tensor`, *optional*, defaults to `None`):
|
| 865 |
+
An attention mask of shape `(batch, key_tokens)` is applied to `encoder_hidden_states`. If `1` the mask
|
| 866 |
+
is kept, otherwise if `0` it is discarded. Mask will be converted into a bias, which adds large
|
| 867 |
+
negative values to the attention scores corresponding to "discard" tokens.
|
| 868 |
+
cross_attention_kwargs (`dict`, *optional*):
|
| 869 |
+
A kwargs dictionary that if specified is passed along to the `AttentionProcessor` as defined under
|
| 870 |
+
`self.processor` in
|
| 871 |
+
[diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
|
| 872 |
+
added_cond_kwargs: (`dict`, *optional*):
|
| 873 |
+
A kwargs dictionary containing additional embeddings that if specified are added to the embeddings that
|
| 874 |
+
are passed along to the UNet blocks.
|
| 875 |
+
down_block_additional_residuals: (`tuple` of `torch.Tensor`, *optional*):
|
| 876 |
+
A tuple of tensors that if specified are added to the residuals of down unet blocks.
|
| 877 |
+
mid_block_additional_residual: (`torch.Tensor`, *optional*):
|
| 878 |
+
A tensor that if specified is added to the residual of the middle unet block.
|
| 879 |
+
encoder_attention_mask (`torch.Tensor`):
|
| 880 |
+
A cross-attention mask of shape `(batch, sequence_length)` is applied to `encoder_hidden_states`. If
|
| 881 |
+
`True` the mask is kept, otherwise if `False` it is discarded. Mask will be converted into a bias,
|
| 882 |
+
which adds large negative values to the attention scores corresponding to "discard" tokens.
|
| 883 |
+
return_dict (`bool`, *optional*, defaults to `True`):
|
| 884 |
+
Whether or not to return a [`~models.unet_2d_condition.UNet2DConditionOutput`] instead of a plain
|
| 885 |
+
tuple.
|
| 886 |
+
cross_attention_kwargs (`dict`, *optional*):
|
| 887 |
+
A kwargs dictionary that if specified is passed along to the [`AttnProcessor`].
|
| 888 |
+
added_cond_kwargs: (`dict`, *optional*):
|
| 889 |
+
A kwargs dictionary containin additional embeddings that if specified are added to the embeddings that
|
| 890 |
+
are passed along to the UNet blocks.
|
| 891 |
+
down_block_additional_residuals (`tuple` of `torch.Tensor`, *optional*):
|
| 892 |
+
additional residuals to be added to UNet long skip connections from down blocks to up blocks for
|
| 893 |
+
example from ControlNet side model(s)
|
| 894 |
+
mid_block_additional_residual (`torch.Tensor`, *optional*):
|
| 895 |
+
additional residual to be added to UNet mid block output, for example from ControlNet side model
|
| 896 |
+
down_intrablock_additional_residuals (`tuple` of `torch.Tensor`, *optional*):
|
| 897 |
+
additional residuals to be added within UNet down blocks, for example from T2I-Adapter side model(s)
|
| 898 |
+
|
| 899 |
+
Returns:
|
| 900 |
+
[`~models.unet_2d_condition.UNet2DConditionOutput`] or `tuple`:
|
| 901 |
+
If `return_dict` is True, an [`~models.unet_2d_condition.UNet2DConditionOutput`] is returned, otherwise
|
| 902 |
+
a `tuple` is returned where the first element is the sample tensor.
|
| 903 |
+
"""
|
| 904 |
+
# By default samples have to be AT least a multiple of the overall upsampling factor.
|
| 905 |
+
# The overall upsampling factor is equal to 2 ** (# num of upsampling layers).
|
| 906 |
+
# However, the upsampling interpolation output size can be forced to fit any upsampling size
|
| 907 |
+
# on the fly if necessary.
|
| 908 |
+
default_overall_up_factor = 2**self.num_upsamplers
|
| 909 |
+
|
| 910 |
+
# upsample size should be forwarded when sample is not a multiple of `default_overall_up_factor`
|
| 911 |
+
forward_upsample_size = False
|
| 912 |
+
upsample_size = None
|
| 913 |
+
|
| 914 |
+
for dim in sample.shape[-2:]:
|
| 915 |
+
if dim % default_overall_up_factor != 0:
|
| 916 |
+
# Forward upsample size to force interpolation output size.
|
| 917 |
+
forward_upsample_size = True
|
| 918 |
+
break
|
| 919 |
+
|
| 920 |
+
# ensure attention_mask is a bias, and give it a singleton query_tokens dimension
|
| 921 |
+
# expects mask of shape:
|
| 922 |
+
# [batch, key_tokens]
|
| 923 |
+
# adds singleton query_tokens dimension:
|
| 924 |
+
# [batch, 1, key_tokens]
|
| 925 |
+
# this helps to broadcast it as a bias over attention scores, which will be in one of the following shapes:
|
| 926 |
+
# [batch, heads, query_tokens, key_tokens] (e.g. torch sdp attn)
|
| 927 |
+
# [batch * heads, query_tokens, key_tokens] (e.g. xformers or classic attn)
|
| 928 |
+
if attention_mask is not None:
|
| 929 |
+
# assume that mask is expressed as:
|
| 930 |
+
# (1 = keep, 0 = discard)
|
| 931 |
+
# convert mask into a bias that can be added to attention scores:
|
| 932 |
+
# (keep = +0, discard = -10000.0)
|
| 933 |
+
attention_mask = (1 - attention_mask.to(sample.dtype)) * -10000.0
|
| 934 |
+
attention_mask = attention_mask.unsqueeze(1)
|
| 935 |
+
|
| 936 |
+
# convert encoder_attention_mask to a bias the same way we do for attention_mask
|
| 937 |
+
if encoder_attention_mask is not None:
|
| 938 |
+
encoder_attention_mask = (1 - encoder_attention_mask.to(sample.dtype)) * -10000.0
|
| 939 |
+
encoder_attention_mask = encoder_attention_mask.unsqueeze(1)
|
| 940 |
+
|
| 941 |
+
# 0. center input if necessary
|
| 942 |
+
if self.config.center_input_sample:
|
| 943 |
+
sample = 2 * sample - 1.0
|
| 944 |
+
|
| 945 |
+
# 1. time
|
| 946 |
+
timesteps = timestep
|
| 947 |
+
if not torch.is_tensor(timesteps):
|
| 948 |
+
# TODO: this requires sync between CPU and GPU. So try to pass timesteps as tensors if you can
|
| 949 |
+
# This would be a good case for the `match` statement (Python 3.10+)
|
| 950 |
+
is_mps = sample.device.type == "mps"
|
| 951 |
+
if isinstance(timestep, float):
|
| 952 |
+
dtype = torch.float32 if is_mps else torch.float64
|
| 953 |
+
else:
|
| 954 |
+
dtype = torch.int32 if is_mps else torch.int64
|
| 955 |
+
timesteps = torch.tensor([timesteps], dtype=dtype, device=sample.device)
|
| 956 |
+
elif len(timesteps.shape) == 0:
|
| 957 |
+
timesteps = timesteps[None].to(sample.device)
|
| 958 |
+
|
| 959 |
+
# broadcast to batch dimension in a way that's compatible with ONNX/Core ML
|
| 960 |
+
timesteps = timesteps.expand(sample.shape[0])
|
| 961 |
+
|
| 962 |
+
t_emb = self.time_proj(timesteps)
|
| 963 |
+
|
| 964 |
+
# `Timesteps` does not contain any weights and will always return f32 tensors
|
| 965 |
+
# but time_embedding might actually be running in fp16. so we need to cast here.
|
| 966 |
+
# there might be better ways to encapsulate this.
|
| 967 |
+
t_emb = t_emb.to(dtype=sample.dtype)
|
| 968 |
+
|
| 969 |
+
emb = self.time_embedding(t_emb, timestep_cond)
|
| 970 |
+
aug_emb = None
|
| 971 |
+
|
| 972 |
+
if self.class_embedding is not None:
|
| 973 |
+
if class_labels is None:
|
| 974 |
+
raise ValueError("class_labels should be provided when num_class_embeds > 0")
|
| 975 |
+
|
| 976 |
+
if self.config.class_embed_type == "timestep":
|
| 977 |
+
class_labels = self.time_proj(class_labels)
|
| 978 |
+
|
| 979 |
+
# `Timesteps` does not contain any weights and will always return f32 tensors
|
| 980 |
+
# there might be better ways to encapsulate this.
|
| 981 |
+
class_labels = class_labels.to(dtype=sample.dtype)
|
| 982 |
+
|
| 983 |
+
class_emb = self.class_embedding(class_labels).to(dtype=sample.dtype)
|
| 984 |
+
|
| 985 |
+
if self.config.class_embeddings_concat:
|
| 986 |
+
emb = torch.cat([emb, class_emb], dim=-1)
|
| 987 |
+
else:
|
| 988 |
+
emb = emb + class_emb
|
| 989 |
+
|
| 990 |
+
if self.config.addition_embed_type == "text":
|
| 991 |
+
aug_emb = self.add_embedding(encoder_hidden_states)
|
| 992 |
+
elif self.config.addition_embed_type == "text_image":
|
| 993 |
+
# Kandinsky 2.1 - style
|
| 994 |
+
if "image_embeds" not in added_cond_kwargs:
|
| 995 |
+
raise ValueError(
|
| 996 |
+
f"{self.__class__} has the config param `addition_embed_type` set to 'text_image' which requires the keyword argument `image_embeds` to be passed in `added_cond_kwargs`"
|
| 997 |
+
)
|
| 998 |
+
|
| 999 |
+
image_embs = added_cond_kwargs.get("image_embeds")
|
| 1000 |
+
text_embs = added_cond_kwargs.get("text_embeds", encoder_hidden_states)
|
| 1001 |
+
aug_emb = self.add_embedding(text_embs, image_embs)
|
| 1002 |
+
elif self.config.addition_embed_type == "text_time":
|
| 1003 |
+
# SDXL - style
|
| 1004 |
+
if "text_embeds" not in added_cond_kwargs:
|
| 1005 |
+
raise ValueError(
|
| 1006 |
+
f"{self.__class__} has the config param `addition_embed_type` set to 'text_time' which requires the keyword argument `text_embeds` to be passed in `added_cond_kwargs`"
|
| 1007 |
+
)
|
| 1008 |
+
text_embeds = added_cond_kwargs.get("text_embeds")
|
| 1009 |
+
if "time_ids" not in added_cond_kwargs:
|
| 1010 |
+
raise ValueError(
|
| 1011 |
+
f"{self.__class__} has the config param `addition_embed_type` set to 'text_time' which requires the keyword argument `time_ids` to be passed in `added_cond_kwargs`"
|
| 1012 |
+
)
|
| 1013 |
+
time_ids = added_cond_kwargs.get("time_ids")
|
| 1014 |
+
time_embeds = self.add_time_proj(time_ids.flatten())
|
| 1015 |
+
time_embeds = time_embeds.reshape((text_embeds.shape[0], -1))
|
| 1016 |
+
add_embeds = torch.concat([text_embeds, time_embeds], dim=-1)
|
| 1017 |
+
add_embeds = add_embeds.to(emb.dtype)
|
| 1018 |
+
aug_emb = self.add_embedding(add_embeds)
|
| 1019 |
+
elif self.config.addition_embed_type == "image":
|
| 1020 |
+
# Kandinsky 2.2 - style
|
| 1021 |
+
if "image_embeds" not in added_cond_kwargs:
|
| 1022 |
+
raise ValueError(
|
| 1023 |
+
f"{self.__class__} has the config param `addition_embed_type` set to 'image' which requires the keyword argument `image_embeds` to be passed in `added_cond_kwargs`"
|
| 1024 |
+
)
|
| 1025 |
+
image_embs = added_cond_kwargs.get("image_embeds")
|
| 1026 |
+
aug_emb = self.add_embedding(image_embs)
|
| 1027 |
+
elif self.config.addition_embed_type == "image_hint":
|
| 1028 |
+
# Kandinsky 2.2 - style
|
| 1029 |
+
if "image_embeds" not in added_cond_kwargs or "hint" not in added_cond_kwargs:
|
| 1030 |
+
raise ValueError(
|
| 1031 |
+
f"{self.__class__} has the config param `addition_embed_type` set to 'image_hint' which requires the keyword arguments `image_embeds` and `hint` to be passed in `added_cond_kwargs`"
|
| 1032 |
+
)
|
| 1033 |
+
image_embs = added_cond_kwargs.get("image_embeds")
|
| 1034 |
+
hint = added_cond_kwargs.get("hint")
|
| 1035 |
+
aug_emb, hint = self.add_embedding(image_embs, hint)
|
| 1036 |
+
sample = torch.cat([sample, hint], dim=1)
|
| 1037 |
+
|
| 1038 |
+
emb = emb + aug_emb if aug_emb is not None else emb
|
| 1039 |
+
|
| 1040 |
+
if self.time_embed_act is not None:
|
| 1041 |
+
emb = self.time_embed_act(emb)
|
| 1042 |
+
|
| 1043 |
+
if self.encoder_hid_proj is not None and self.config.encoder_hid_dim_type == "text_proj":
|
| 1044 |
+
encoder_hidden_states = self.encoder_hid_proj(encoder_hidden_states)
|
| 1045 |
+
elif self.encoder_hid_proj is not None and self.config.encoder_hid_dim_type == "text_image_proj":
|
| 1046 |
+
# Kadinsky 2.1 - style
|
| 1047 |
+
if "image_embeds" not in added_cond_kwargs:
|
| 1048 |
+
raise ValueError(
|
| 1049 |
+
f"{self.__class__} has the config param `encoder_hid_dim_type` set to 'text_image_proj' which requires the keyword argument `image_embeds` to be passed in `added_conditions`"
|
| 1050 |
+
)
|
| 1051 |
+
|
| 1052 |
+
image_embeds = added_cond_kwargs.get("image_embeds")
|
| 1053 |
+
encoder_hidden_states = self.encoder_hid_proj(encoder_hidden_states, image_embeds)
|
| 1054 |
+
elif self.encoder_hid_proj is not None and self.config.encoder_hid_dim_type == "image_proj":
|
| 1055 |
+
# Kandinsky 2.2 - style
|
| 1056 |
+
if "image_embeds" not in added_cond_kwargs:
|
| 1057 |
+
raise ValueError(
|
| 1058 |
+
f"{self.__class__} has the config param `encoder_hid_dim_type` set to 'image_proj' which requires the keyword argument `image_embeds` to be passed in `added_conditions`"
|
| 1059 |
+
)
|
| 1060 |
+
image_embeds = added_cond_kwargs.get("image_embeds")
|
| 1061 |
+
encoder_hidden_states = self.encoder_hid_proj(image_embeds)
|
| 1062 |
+
elif self.encoder_hid_proj is not None and self.config.encoder_hid_dim_type == "ip_image_proj":
|
| 1063 |
+
if "image_embeds" not in added_cond_kwargs:
|
| 1064 |
+
raise ValueError(
|
| 1065 |
+
f"{self.__class__} has the config param `encoder_hid_dim_type` set to 'ip_image_proj' which requires the keyword argument `image_embeds` to be passed in `added_conditions`"
|
| 1066 |
+
)
|
| 1067 |
+
image_embeds = added_cond_kwargs.get("image_embeds")
|
| 1068 |
+
image_embeds = self.encoder_hid_proj(image_embeds).to(encoder_hidden_states.dtype)
|
| 1069 |
+
encoder_hidden_states = torch.cat([encoder_hidden_states, image_embeds], dim=1)
|
| 1070 |
+
|
| 1071 |
+
# 2. pre-process
|
| 1072 |
+
sample = self.conv_in(sample)
|
| 1073 |
+
|
| 1074 |
+
# 2.5 GLIGEN position net
|
| 1075 |
+
if cross_attention_kwargs is not None and cross_attention_kwargs.get("gligen", None) is not None:
|
| 1076 |
+
cross_attention_kwargs = cross_attention_kwargs.copy()
|
| 1077 |
+
gligen_args = cross_attention_kwargs.pop("gligen")
|
| 1078 |
+
cross_attention_kwargs["gligen"] = {"objs": self.position_net(**gligen_args)}
|
| 1079 |
+
|
| 1080 |
+
# 3. down
|
| 1081 |
+
lora_scale = cross_attention_kwargs.get("scale", 1.0) if cross_attention_kwargs is not None else 1.0
|
| 1082 |
+
if USE_PEFT_BACKEND:
|
| 1083 |
+
# weight the lora layers by setting `lora_scale` for each PEFT layer
|
| 1084 |
+
scale_lora_layers(self, lora_scale)
|
| 1085 |
+
|
| 1086 |
+
is_controlnet = mid_block_additional_residual is not None and down_block_additional_residuals is not None
|
| 1087 |
+
# using new arg down_intrablock_additional_residuals for T2I-Adapters, to distinguish from controlnets
|
| 1088 |
+
is_adapter = down_intrablock_additional_residuals is not None
|
| 1089 |
+
# maintain backward compatibility for legacy usage, where
|
| 1090 |
+
# T2I-Adapter and ControlNet both use down_block_additional_residuals arg
|
| 1091 |
+
# but can only use one or the other
|
| 1092 |
+
if not is_adapter and mid_block_additional_residual is None and down_block_additional_residuals is not None:
|
| 1093 |
+
deprecate(
|
| 1094 |
+
"T2I should not use down_block_additional_residuals",
|
| 1095 |
+
"1.3.0",
|
| 1096 |
+
"Passing intrablock residual connections with `down_block_additional_residuals` is deprecated \
|
| 1097 |
+
and will be removed in diffusers 1.3.0. `down_block_additional_residuals` should only be used \
|
| 1098 |
+
for ControlNet. Please make sure use `down_intrablock_additional_residuals` instead. ",
|
| 1099 |
+
standard_warn=False,
|
| 1100 |
+
)
|
| 1101 |
+
down_intrablock_additional_residuals = down_block_additional_residuals
|
| 1102 |
+
is_adapter = True
|
| 1103 |
+
|
| 1104 |
+
down_block_res_samples = (sample,)
|
| 1105 |
+
for downsample_block in self.down_blocks:
|
| 1106 |
+
if hasattr(downsample_block, "has_cross_attention") and downsample_block.has_cross_attention:
|
| 1107 |
+
# For t2i-adapter CrossAttnDownBlock2D
|
| 1108 |
+
additional_residuals = {}
|
| 1109 |
+
if is_adapter and len(down_intrablock_additional_residuals) > 0:
|
| 1110 |
+
additional_residuals["additional_residuals"] = down_intrablock_additional_residuals.pop(0)
|
| 1111 |
+
|
| 1112 |
+
sample, res_samples = downsample_block(
|
| 1113 |
+
hidden_states=sample,
|
| 1114 |
+
temb=emb,
|
| 1115 |
+
encoder_hidden_states=encoder_hidden_states,
|
| 1116 |
+
attention_mask=attention_mask,
|
| 1117 |
+
cross_attention_kwargs=cross_attention_kwargs,
|
| 1118 |
+
encoder_attention_mask=encoder_attention_mask,
|
| 1119 |
+
**additional_residuals,
|
| 1120 |
+
)
|
| 1121 |
+
else:
|
| 1122 |
+
sample, res_samples = downsample_block(hidden_states=sample, temb=emb, scale=lora_scale)
|
| 1123 |
+
if is_adapter and len(down_intrablock_additional_residuals) > 0:
|
| 1124 |
+
sample += down_intrablock_additional_residuals.pop(0)
|
| 1125 |
+
|
| 1126 |
+
down_block_res_samples += res_samples
|
| 1127 |
+
|
| 1128 |
+
if is_controlnet:
|
| 1129 |
+
new_down_block_res_samples = ()
|
| 1130 |
+
|
| 1131 |
+
for down_block_res_sample, down_block_additional_residual in zip(
|
| 1132 |
+
down_block_res_samples, down_block_additional_residuals
|
| 1133 |
+
):
|
| 1134 |
+
down_block_res_sample = down_block_res_sample + down_block_additional_residual
|
| 1135 |
+
new_down_block_res_samples = new_down_block_res_samples + (down_block_res_sample,)
|
| 1136 |
+
|
| 1137 |
+
down_block_res_samples = new_down_block_res_samples
|
| 1138 |
+
|
| 1139 |
+
# 4. mid
|
| 1140 |
+
if self.mid_block is not None:
|
| 1141 |
+
if hasattr(self.mid_block, "has_cross_attention") and self.mid_block.has_cross_attention:
|
| 1142 |
+
sample = self.mid_block(
|
| 1143 |
+
sample,
|
| 1144 |
+
emb,
|
| 1145 |
+
encoder_hidden_states=encoder_hidden_states,
|
| 1146 |
+
attention_mask=attention_mask,
|
| 1147 |
+
cross_attention_kwargs=cross_attention_kwargs,
|
| 1148 |
+
encoder_attention_mask=encoder_attention_mask,
|
| 1149 |
+
)
|
| 1150 |
+
else:
|
| 1151 |
+
sample = self.mid_block(sample, emb)
|
| 1152 |
+
|
| 1153 |
+
# To support T2I-Adapter-XL
|
| 1154 |
+
if (
|
| 1155 |
+
is_adapter
|
| 1156 |
+
and len(down_intrablock_additional_residuals) > 0
|
| 1157 |
+
and sample.shape == down_intrablock_additional_residuals[0].shape
|
| 1158 |
+
):
|
| 1159 |
+
sample += down_intrablock_additional_residuals.pop(0)
|
| 1160 |
+
|
| 1161 |
+
if is_controlnet:
|
| 1162 |
+
sample = sample + mid_block_additional_residual
|
| 1163 |
+
|
| 1164 |
+
# 5. up
|
| 1165 |
+
for i, upsample_block in enumerate(self.up_blocks):
|
| 1166 |
+
is_final_block = i == len(self.up_blocks) - 1
|
| 1167 |
+
|
| 1168 |
+
res_samples = down_block_res_samples[-len(upsample_block.resnets) :]
|
| 1169 |
+
down_block_res_samples = down_block_res_samples[: -len(upsample_block.resnets)]
|
| 1170 |
+
|
| 1171 |
+
# if we have not reached the final block and need to forward the
|
| 1172 |
+
# upsample size, we do it here
|
| 1173 |
+
if not is_final_block and forward_upsample_size:
|
| 1174 |
+
upsample_size = down_block_res_samples[-1].shape[2:]
|
| 1175 |
+
|
| 1176 |
+
if hasattr(upsample_block, "has_cross_attention") and upsample_block.has_cross_attention:
|
| 1177 |
+
sample = upsample_block(
|
| 1178 |
+
hidden_states=sample,
|
| 1179 |
+
temb=emb,
|
| 1180 |
+
res_hidden_states_tuple=res_samples,
|
| 1181 |
+
encoder_hidden_states=encoder_hidden_states,
|
| 1182 |
+
cross_attention_kwargs=cross_attention_kwargs,
|
| 1183 |
+
upsample_size=upsample_size,
|
| 1184 |
+
attention_mask=attention_mask,
|
| 1185 |
+
encoder_attention_mask=encoder_attention_mask,
|
| 1186 |
+
)
|
| 1187 |
+
else:
|
| 1188 |
+
sample = upsample_block(
|
| 1189 |
+
hidden_states=sample,
|
| 1190 |
+
temb=emb,
|
| 1191 |
+
res_hidden_states_tuple=res_samples,
|
| 1192 |
+
upsample_size=upsample_size,
|
| 1193 |
+
scale=lora_scale,
|
| 1194 |
+
)
|
| 1195 |
+
|
| 1196 |
+
# 6. post-process
|
| 1197 |
+
if self.conv_norm_out:
|
| 1198 |
+
sample = self.conv_norm_out(sample)
|
| 1199 |
+
sample = self.conv_act(sample)
|
| 1200 |
+
sample = self.conv_out(sample)
|
| 1201 |
+
|
| 1202 |
+
if USE_PEFT_BACKEND:
|
| 1203 |
+
# remove `lora_scale` from each PEFT layer
|
| 1204 |
+
unscale_lora_layers(self, lora_scale)
|
| 1205 |
+
|
| 1206 |
+
if not return_dict:
|
| 1207 |
+
return (sample,)
|
| 1208 |
+
|
| 1209 |
+
return UNet2DConditionOutput(sample=sample)
|
| 1210 |
+
|
| 1211 |
+
|
| 1212 |
+
def merge_and_unload(
|
| 1213 |
+
self, progressbar: bool = False, safe_merge: bool = False, adapter_names: Optional[list[str]] = None
|
| 1214 |
+
) -> torch.nn.Module:
|
| 1215 |
+
|
| 1216 |
+
return self._unload_and_optionally_merge(
|
| 1217 |
+
progressbar=progressbar, safe_merge=safe_merge, adapter_names=adapter_names
|
| 1218 |
+
)
|
| 1219 |
+
|
| 1220 |
+
def _unload_and_optionally_merge(
|
| 1221 |
+
self,
|
| 1222 |
+
merge=True,
|
| 1223 |
+
progressbar: bool = False,
|
| 1224 |
+
safe_merge: bool = False,
|
| 1225 |
+
adapter_names: Optional[list[str]] = None,
|
| 1226 |
+
):
|
| 1227 |
+
from tqdm import tqdm
|
| 1228 |
+
from peft.tuners.tuners_utils import onload_layer
|
| 1229 |
+
from peft.utils import _get_submodules, ModulesToSaveWrapper
|
| 1230 |
+
|
| 1231 |
+
key_list = [key for key, _ in self.named_modules() if "lora_" not in key]
|
| 1232 |
+
desc = "Unloading " + ("and merging " if merge else "") + "model"
|
| 1233 |
+
for key in tqdm(key_list, disable=not progressbar, desc=desc):
|
| 1234 |
+
try:
|
| 1235 |
+
parent, target, target_name = _get_submodules(self, key)
|
| 1236 |
+
except AttributeError:
|
| 1237 |
+
continue
|
| 1238 |
+
with onload_layer(target):
|
| 1239 |
+
if hasattr(target, "base_layer"):
|
| 1240 |
+
if merge:
|
| 1241 |
+
target.merge(safe_merge=safe_merge, adapter_names=adapter_names)
|
| 1242 |
+
self._replace_module(parent, target_name, target.get_base_layer(), target)
|
| 1243 |
+
elif isinstance(target, ModulesToSaveWrapper):
|
| 1244 |
+
# save any additional trainable modules part of `modules_to_save`
|
| 1245 |
+
new_module = target.modules_to_save[target.active_adapter]
|
| 1246 |
+
if hasattr(new_module, "base_layer"):
|
| 1247 |
+
# check if the module is itself a tuner layer
|
| 1248 |
+
if merge:
|
| 1249 |
+
new_module.merge(safe_merge=safe_merge, adapter_names=adapter_names)
|
| 1250 |
+
new_module = new_module.get_base_layer()
|
| 1251 |
+
setattr(parent, target_name, new_module)
|
| 1252 |
+
|
| 1253 |
+
return self
|
| 1254 |
+
|
| 1255 |
+
def _replace_module(self, parent, child_name, new_module, child):
|
| 1256 |
+
setattr(parent, child_name, new_module)
|
| 1257 |
+
# It's not necessary to set requires_grad here, as that is handled by
|
| 1258 |
+
# _mark_only_adapters_as_trainable
|
| 1259 |
+
|
| 1260 |
+
# child layer wraps the original module, unpack it
|
| 1261 |
+
if hasattr(child, "base_layer"):
|
| 1262 |
+
child = child.base_layer
|
| 1263 |
+
|
| 1264 |
+
if not hasattr(new_module, "base_layer"):
|
| 1265 |
+
new_module.weight = child.weight
|
| 1266 |
+
if hasattr(child, "bias"):
|
| 1267 |
+
new_module.bias = child.bias
|
| 1268 |
+
|
| 1269 |
+
if getattr(child, "state", None) is not None:
|
| 1270 |
+
if hasattr(new_module, "base_layer"):
|
| 1271 |
+
new_module.base_layer.state = child.state
|
| 1272 |
+
else:
|
| 1273 |
+
new_module.state = child.state
|
| 1274 |
+
new_module.to(child.weight.device)
|
| 1275 |
+
|
| 1276 |
+
# dispatch to correct device
|
| 1277 |
+
for name, module in new_module.named_modules():
|
| 1278 |
+
if ("lora_" in name) or ("ranknum" in name):
|
| 1279 |
+
weight = child.qweight if hasattr(child, "qweight") else child.weight
|
| 1280 |
+
module.to(weight.device)
|
GDPOSR/inferences/test.py
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import argparse
|
| 3 |
+
import numpy as np
|
| 4 |
+
from PIL import Image
|
| 5 |
+
import torch
|
| 6 |
+
from torchvision import transforms
|
| 7 |
+
import torchvision.transforms.functional as F
|
| 8 |
+
import sys
|
| 9 |
+
sys.path.append("GDPOSR")
|
| 10 |
+
from modelfile.GDPOSR import GDPOSRTest
|
| 11 |
+
from my_utils.wavelet_color_fix import adain_color_fix, wavelet_color_fix
|
| 12 |
+
import glob
|
| 13 |
+
sys.path.append('./')
|
| 14 |
+
from ram.models.ram_lora import ram
|
| 15 |
+
from ram import inference_ram as inference
|
| 16 |
+
tensor_transforms = transforms.Compose([
|
| 17 |
+
transforms.ToTensor(),
|
| 18 |
+
])
|
| 19 |
+
|
| 20 |
+
ram_transforms = transforms.Compose([
|
| 21 |
+
transforms.Resize((384, 384)),
|
| 22 |
+
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
|
| 23 |
+
])
|
| 24 |
+
|
| 25 |
+
def get_validation_prompt(args, image, model, device='cuda'):
|
| 26 |
+
validation_prompt = ""
|
| 27 |
+
lq = tensor_transforms(image).unsqueeze(0).to(device)
|
| 28 |
+
lq = ram_transforms(lq)
|
| 29 |
+
captions = inference(lq, model)
|
| 30 |
+
validation_prompt = f"{captions[0]}, {args.prompt},"
|
| 31 |
+
|
| 32 |
+
return validation_prompt
|
| 33 |
+
|
| 34 |
+
|
| 35 |
+
if __name__ == "__main__":
|
| 36 |
+
parser = argparse.ArgumentParser()
|
| 37 |
+
parser.add_argument('--input_image', type=str, default="", help='path to the input image')
|
| 38 |
+
parser.add_argument('--model_name', type=str, default='realsr', help='name of the pretrained model to be used')
|
| 39 |
+
parser.add_argument('--pretrained_path', type=str, default='', help='path to a model state dict to be used')
|
| 40 |
+
parser.add_argument('--output_dir', type=str, default='', help='the directory to save the output')
|
| 41 |
+
parser.add_argument('--seed', type=int, default=42, help='Random seed to be used')
|
| 42 |
+
parser.add_argument("--process_size", type=int, default=512)
|
| 43 |
+
parser.add_argument("--upscale", type=int, default=4)
|
| 44 |
+
parser.add_argument("--align_method", type=str, choices=['wavelet', 'adain', 'nofix'], default='adain')
|
| 45 |
+
parser.add_argument("--pretrained_model_name_or_path", type=str, default="")
|
| 46 |
+
parser.add_argument('--ram_ft_path', type=str, default=None) #
|
| 47 |
+
parser.add_argument('--prompt', type=str, default='', help='positive prompts')
|
| 48 |
+
parser.add_argument('--negprompt', type=str, default='', help='negative prompts')
|
| 49 |
+
parser.add_argument("--time_step", type=int, default=1)
|
| 50 |
+
parser.add_argument("--time_step_noise", type=int, default=1)
|
| 51 |
+
args = parser.parse_args()
|
| 52 |
+
|
| 53 |
+
# initialize the model
|
| 54 |
+
model = GDPOSRTest(args)
|
| 55 |
+
model.set_eval()
|
| 56 |
+
|
| 57 |
+
if os.path.isdir(args.input_image):
|
| 58 |
+
image_names = sorted(glob.glob(f'{args.input_image}/*.png'))
|
| 59 |
+
else:
|
| 60 |
+
image_names = [args.input_image]
|
| 61 |
+
|
| 62 |
+
print("=== use ram ===")
|
| 63 |
+
model_vlm = ram(pretrained='./ckp/ram_swin_large_14m.pth',
|
| 64 |
+
pretrained_condition=args.ram_ft_path,
|
| 65 |
+
image_size=384,
|
| 66 |
+
vit='swin_l')
|
| 67 |
+
model_vlm.eval()
|
| 68 |
+
model_vlm.to("cuda")
|
| 69 |
+
|
| 70 |
+
# make the output dir
|
| 71 |
+
os.makedirs(args.output_dir, exist_ok=True)
|
| 72 |
+
print(f'There are {len(image_names)} images.')
|
| 73 |
+
for image_name in image_names:
|
| 74 |
+
|
| 75 |
+
# make sure that the input image is a multiple of 8
|
| 76 |
+
input_image = Image.open(image_name).convert('RGB')
|
| 77 |
+
ori_width, ori_height = input_image.size
|
| 78 |
+
rscale = args.upscale
|
| 79 |
+
resize_flag = False
|
| 80 |
+
if ori_width < args.process_size//rscale or ori_height < args.process_size//rscale:
|
| 81 |
+
scale = (args.process_size//rscale)/min(ori_width, ori_height)
|
| 82 |
+
input_image = input_image.resize((int(scale*ori_width), int(scale*ori_height)))
|
| 83 |
+
resize_flag = True
|
| 84 |
+
input_image = input_image.resize((input_image.size[0]*rscale, input_image.size[1]*rscale))
|
| 85 |
+
|
| 86 |
+
new_width = input_image.width - input_image.width % 8
|
| 87 |
+
new_height = input_image.height - input_image.height % 8
|
| 88 |
+
input_image = input_image.resize((new_width, new_height), Image.LANCZOS)
|
| 89 |
+
bname = os.path.basename(image_name)
|
| 90 |
+
|
| 91 |
+
# get caption
|
| 92 |
+
validation_prompt = get_validation_prompt(args, input_image, model_vlm)
|
| 93 |
+
# translate the image
|
| 94 |
+
with torch.no_grad():
|
| 95 |
+
c_t = F.to_tensor(input_image).unsqueeze(0).cuda()*2-1
|
| 96 |
+
output_image = model(c_t, positive_prompt=[validation_prompt])
|
| 97 |
+
output_pil = transforms.ToPILImage()(output_image[0].cpu() * 0.5 + 0.5)
|
| 98 |
+
if args.align_method == 'adain':
|
| 99 |
+
output_pil = adain_color_fix(target=output_pil, source=input_image)
|
| 100 |
+
elif args.align_method == 'wavelet':
|
| 101 |
+
output_pil = wavelet_color_fix(target=output_pil, source=input_image)
|
| 102 |
+
else:
|
| 103 |
+
pass
|
| 104 |
+
if resize_flag:
|
| 105 |
+
output_pil.resize((int(args.upscale*ori_width), int(args.upscale*ori_height)))
|
| 106 |
+
|
| 107 |
+
output_pil.save(os.path.join(args.output_dir, bname))
|
GDPOSR/losses/__pycache__/grpo.cpython-310.pyc
ADDED
|
Binary file (2.02 kB). View file
|
|
|
GDPOSR/losses/grpo.py
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import pyiqa
|
| 2 |
+
|
| 3 |
+
from basicsr.utils import img2tensor, tensor2img
|
| 4 |
+
from torch.utils import data as data
|
| 5 |
+
import glob
|
| 6 |
+
import numpy as np
|
| 7 |
+
import math
|
| 8 |
+
import random
|
| 9 |
+
import torch
|
| 10 |
+
import torch.nn as nn
|
| 11 |
+
import torch.nn.functional as F
|
| 12 |
+
from torch.distributions import Normal
|
| 13 |
+
import sys
|
| 14 |
+
|
| 15 |
+
class AdaptiveReward(nn.Module):
|
| 16 |
+
def __init__(self):
|
| 17 |
+
super().__init__()
|
| 18 |
+
device = torch.device("cuda")
|
| 19 |
+
self.iqa_psnr = pyiqa.create_metric('psnr', test_y_channel=True, color_space='ycbcr').to(device)
|
| 20 |
+
self.iqa_maniqa = pyiqa.create_metric('maniqa', device=device)
|
| 21 |
+
self.iqa_musiq = pyiqa.create_metric('musiq', device=device)
|
| 22 |
+
|
| 23 |
+
def normalize_tensor(self, tensor):
|
| 24 |
+
|
| 25 |
+
min_val = tensor.min()
|
| 26 |
+
max_val = tensor.max()
|
| 27 |
+
|
| 28 |
+
normalized_tensor = (tensor - min_val) / (max_val - min_val)
|
| 29 |
+
return normalized_tensor
|
| 30 |
+
|
| 31 |
+
def forward(self, x, y, fedilty_ratio, detail_ratio):
|
| 32 |
+
x = x * 0.5 + 0.5
|
| 33 |
+
y = y * 0.5 + 0.5
|
| 34 |
+
b,gs,c,h,w=x.shape
|
| 35 |
+
reward = torch.zeros([b,gs])
|
| 36 |
+
for i in range(b):
|
| 37 |
+
fedilty_i = fedilty_ratio[i]
|
| 38 |
+
detail_i = detail_ratio[i]
|
| 39 |
+
x_i = x[i]
|
| 40 |
+
y_i = y[i]
|
| 41 |
+
psnr_result = self.normalize_tensor(self.iqa_psnr(x_i, y_i))
|
| 42 |
+
musiq_result = self.normalize_tensor(self.iqa_musiq(x_i).squeeze(1))
|
| 43 |
+
maniqa_result = self.normalize_tensor(self.iqa_maniqa(x_i).squeeze(1))
|
| 44 |
+
|
| 45 |
+
reward_i = fedilty_i*psnr_result + detail_i*0.5*(maniqa_result+musiq_result)
|
| 46 |
+
combined_mean = torch.mean(reward_i)
|
| 47 |
+
combined_std = reward_i.std(unbiased=True)
|
| 48 |
+
reward_i = (reward_i - combined_mean) / (combined_std+1e-8)
|
| 49 |
+
reward[i] = reward_i
|
| 50 |
+
|
| 51 |
+
return reward.detach()
|
| 52 |
+
|
GDPOSR/mergelora.py
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import requests
|
| 3 |
+
import sys
|
| 4 |
+
import copy
|
| 5 |
+
import random
|
| 6 |
+
import time
|
| 7 |
+
import glob
|
| 8 |
+
import math
|
| 9 |
+
import yaml
|
| 10 |
+
import torch
|
| 11 |
+
import torch.nn as nn
|
| 12 |
+
import torch.nn.functional as F
|
| 13 |
+
from tqdm import tqdm
|
| 14 |
+
from peft import LoraConfig
|
| 15 |
+
from types import SimpleNamespace
|
| 16 |
+
|
| 17 |
+
import sys
|
| 18 |
+
sys.path.append("./")
|
| 19 |
+
from diffusermodels.autoencoder_kl import AutoencoderKL as AutoencoderKLMerge
|
| 20 |
+
from diffusermodels.unet_2d_condition import UNet2DConditionModel as UNet2DConditionModelMerge
|
| 21 |
+
|
| 22 |
+
|
| 23 |
+
def UNetMergeLoRA(basemodel_path='', trainedmodel_path='', savepath='', savename=''):
|
| 24 |
+
|
| 25 |
+
loraweight = torch.load(trainedmodel_path)
|
| 26 |
+
# vae = AutoencoderKL.from_pretrained(pretrained_model_name_or_path, subfolder="vae")
|
| 27 |
+
unet = UNet2DConditionModelMerge.from_pretrained(basemodel_path, subfolder="unet")
|
| 28 |
+
|
| 29 |
+
# load unet lora
|
| 30 |
+
lora_conf_encoder = LoraConfig(r=loraweight["rank_unet"], init_lora_weights="gaussian", target_modules=loraweight["unet_lora_encoder_modules"])
|
| 31 |
+
lora_conf_decoder = LoraConfig(r=loraweight["rank_unet"], init_lora_weights="gaussian", target_modules=loraweight["unet_lora_decoder_modules"])
|
| 32 |
+
lora_conf_others = LoraConfig(r=loraweight["rank_unet"], init_lora_weights="gaussian", target_modules=loraweight["unet_lora_others_modules"])
|
| 33 |
+
unet.add_adapter(lora_conf_encoder, adapter_name="default_encoder")
|
| 34 |
+
unet.add_adapter(lora_conf_decoder, adapter_name="default_decoder")
|
| 35 |
+
unet.add_adapter(lora_conf_others, adapter_name="default_others")
|
| 36 |
+
for n, p in unet.named_parameters():
|
| 37 |
+
if "lora" in n or "conv_in" in n:
|
| 38 |
+
p.data.copy_(loraweight["state_dict_unet"][n])
|
| 39 |
+
|
| 40 |
+
unet.set_adapter(['default_encoder', 'default_decoder', 'default_others'])
|
| 41 |
+
unet = unet.merge_and_unload()
|
| 42 |
+
unet.save_pretrained(os.path.join(savepath, savename))
|
| 43 |
+
|
| 44 |
+
def VAEMergeLoRA(basemodel_path='', trainedmodel_path='', savepath='', savename=''):
|
| 45 |
+
|
| 46 |
+
loraweight = torch.load(trainedmodel_path)
|
| 47 |
+
vae = AutoencoderKL.from_pretrained(pretrained_model_name_or_path, subfolder="vae")
|
| 48 |
+
|
| 49 |
+
# load vae lora
|
| 50 |
+
vae_lora_conf_encoder = LoraConfig(r=loraweight["rank_vae"], init_lora_weights="gaussian", target_modules=loraweight["vae_lora_encoder_modules"])
|
| 51 |
+
vae_lora_conf_decoder = LoraConfig(r=loraweight["rank_vae"], init_lora_weights="gaussian", target_modules=loraweight["vae_lora_decoder_modules"])
|
| 52 |
+
vae.add_adapter(vae_lora_conf_encoder, adapter_name="default_encoder")
|
| 53 |
+
vae.add_adapter(vae_lora_conf_decoder, adapter_name="default_decoder")
|
| 54 |
+
for n, p in vae.named_parameters():
|
| 55 |
+
if "lora" in n:
|
| 56 |
+
p.data.copy_(loraweight["state_dict_vae"][n])
|
| 57 |
+
|
| 58 |
+
vae.set_adapter(['default_encoder'])
|
| 59 |
+
vae = vae.merge_and_unload()
|
| 60 |
+
vae.save_pretrained(os.path.join(savepath, savename))
|
| 61 |
+
|
| 62 |
+
unetbasemodel_path=''
|
| 63 |
+
unettrainedmodel_path=''
|
| 64 |
+
unetsavepath=''
|
| 65 |
+
unetsavename=''
|
| 66 |
+
UNetMergeLoRA(unetbasemodel_path, unettrainedmodel_path, unetsavepath, unetsavename)
|
| 67 |
+
|
| 68 |
+
vaebasemodel_path=''
|
| 69 |
+
vaetrainedmodel_path=''
|
| 70 |
+
vaesavepath=''
|
| 71 |
+
vaesavename=''
|
| 72 |
+
VAEMergeLoRA(vaebasemodel_path, vaetrainedmodel_path, vaesavepath, vaesavename)
|
GDPOSR/modelfile/GDPOSR.py
ADDED
|
@@ -0,0 +1,623 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import requests
|
| 3 |
+
import sys
|
| 4 |
+
import copy
|
| 5 |
+
import random
|
| 6 |
+
import time
|
| 7 |
+
import glob
|
| 8 |
+
import math
|
| 9 |
+
import yaml
|
| 10 |
+
import torch
|
| 11 |
+
import torch.nn as nn
|
| 12 |
+
import torch.nn.functional as F
|
| 13 |
+
from tqdm import tqdm
|
| 14 |
+
from peft import LoraConfig
|
| 15 |
+
from types import SimpleNamespace
|
| 16 |
+
from transformers import AutoTokenizer, CLIPTextModel
|
| 17 |
+
from diffusers import AutoencoderKL, UNet2DConditionModel, DDPMScheduler
|
| 18 |
+
from diffusers.utils.peft_utils import set_weights_and_activate_adapters
|
| 19 |
+
from diffusers.utils.import_utils import is_xformers_available
|
| 20 |
+
|
| 21 |
+
def make_1step_sched(pretrained_model_path):
|
| 22 |
+
noise_scheduler_1step = DDPMScheduler.from_pretrained(pretrained_model_path, subfolder="scheduler")
|
| 23 |
+
noise_scheduler_1step.set_timesteps(1, device="cuda")
|
| 24 |
+
noise_scheduler_1step.alphas_cumprod = noise_scheduler_1step.alphas_cumprod.cuda()
|
| 25 |
+
return noise_scheduler_1step
|
| 26 |
+
|
| 27 |
+
def find_filepath(directory, filename):
|
| 28 |
+
matches = glob.glob(f"{directory}/**/{filename}", recursive=True)
|
| 29 |
+
return matches[0] if matches else None
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
def read_yaml(file_path):
|
| 33 |
+
with open(file_path, 'r') as file:
|
| 34 |
+
data = yaml.safe_load(file)
|
| 35 |
+
return data
|
| 36 |
+
|
| 37 |
+
def initialize_vae(rank, return_lora_module_names=False, pretrained_model_name_or_path=None):
|
| 38 |
+
vae = AutoencoderKL.from_pretrained(pretrained_model_name_or_path, subfolder="vae")
|
| 39 |
+
vae.requires_grad_(False)
|
| 40 |
+
vae.train()
|
| 41 |
+
|
| 42 |
+
l_target_modules_encoder, l_target_modules_decoder, l_modules_others = [], [], []
|
| 43 |
+
l_grep = ["conv1","conv2","conv_in", "conv_shortcut",
|
| 44 |
+
"conv", "conv_out", "to_k", "to_q", "to_v", "to_out.0",
|
| 45 |
+
]
|
| 46 |
+
for n, p in vae.named_parameters():
|
| 47 |
+
if "bias" in n or "norm" in n: continue
|
| 48 |
+
for pattern in l_grep:
|
| 49 |
+
if pattern in n and ("encoder" in n):
|
| 50 |
+
l_target_modules_encoder.append(n.replace(".weight",""))
|
| 51 |
+
break
|
| 52 |
+
elif pattern in n and ("decoder" in n):
|
| 53 |
+
l_target_modules_decoder.append(n.replace(".weight",""))
|
| 54 |
+
break
|
| 55 |
+
elif ('quant_conv' in n) and ('post_quant_conv' not in n):
|
| 56 |
+
l_target_modules_encoder.append(n.replace(".weight",""))
|
| 57 |
+
break
|
| 58 |
+
elif 'post_quant_conv' in n:
|
| 59 |
+
l_target_modules_decoder.append(n.replace(".weight",""))
|
| 60 |
+
break
|
| 61 |
+
elif pattern in n:
|
| 62 |
+
l_modules_others.append(n.replace(".weight",""))
|
| 63 |
+
break
|
| 64 |
+
lora_conf_encoder = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_target_modules_encoder)
|
| 65 |
+
lora_conf_decoder = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_target_modules_decoder)
|
| 66 |
+
vae.add_adapter(lora_conf_encoder, adapter_name="default_encoder")
|
| 67 |
+
vae.add_adapter(lora_conf_decoder, adapter_name="default_decoder")
|
| 68 |
+
# vae.set_adapter(["default_encoder", "default_decoder"])
|
| 69 |
+
if return_lora_module_names:
|
| 70 |
+
return vae, l_target_modules_encoder, l_target_modules_decoder, l_modules_others
|
| 71 |
+
else:
|
| 72 |
+
return vae
|
| 73 |
+
|
| 74 |
+
def initialize_unet(rank, return_lora_module_names=False, pretrained_model_name_or_path=None):
|
| 75 |
+
unet = UNet2DConditionModel.from_pretrained(pretrained_model_name_or_path, subfolder="unet")
|
| 76 |
+
unet.requires_grad_(False)
|
| 77 |
+
unet.train()
|
| 78 |
+
|
| 79 |
+
l_target_modules_encoder, l_target_modules_decoder, l_modules_others = [], [], []
|
| 80 |
+
l_grep = ["to_k", "to_q", "to_v", "to_out.0", "conv", "conv1", "conv2", "conv_in", "conv_shortcut", "conv_out", "proj_out", "proj_in", "ff.net.2", "ff.net.0.proj"]
|
| 81 |
+
for n, p in unet.named_parameters():
|
| 82 |
+
if "bias" in n or "norm" in n: continue
|
| 83 |
+
for pattern in l_grep:
|
| 84 |
+
if pattern in n and ("down_blocks" in n or "conv_in" in n):
|
| 85 |
+
l_target_modules_encoder.append(n.replace(".weight",""))
|
| 86 |
+
break
|
| 87 |
+
elif pattern in n and "up_blocks" in n:
|
| 88 |
+
l_target_modules_decoder.append(n.replace(".weight",""))
|
| 89 |
+
break
|
| 90 |
+
elif pattern in n:
|
| 91 |
+
l_modules_others.append(n.replace(".weight",""))
|
| 92 |
+
break
|
| 93 |
+
lora_conf_encoder = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_target_modules_encoder)
|
| 94 |
+
lora_conf_decoder = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_target_modules_decoder)
|
| 95 |
+
lora_conf_others = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_modules_others)
|
| 96 |
+
unet.add_adapter(lora_conf_encoder, adapter_name="default_encoder")
|
| 97 |
+
unet.add_adapter(lora_conf_decoder, adapter_name="default_decoder")
|
| 98 |
+
unet.add_adapter(lora_conf_others, adapter_name="default_others")
|
| 99 |
+
if return_lora_module_names:
|
| 100 |
+
return unet, l_target_modules_encoder, l_target_modules_decoder, l_modules_others
|
| 101 |
+
else:
|
| 102 |
+
return unet
|
| 103 |
+
|
| 104 |
+
def initialize_unet_sr(rank, return_lora_module_names=False, pretrained_model_name_or_path=None, args=None):
|
| 105 |
+
unet = UNet2DConditionModel.from_pretrained(pretrained_model_name_or_path, subfolder="unet")
|
| 106 |
+
if args.use_lr_concat_lr_999noise:
|
| 107 |
+
new_conv_in = torch.nn.Conv2d(8, 320, 3, 1, 1)
|
| 108 |
+
new_conv_in.weight.data[:, :4, ...] = unet.conv_in.weight.data
|
| 109 |
+
new_conv_in.weight.data[:, -4:, ...] = unet.conv_in.weight.data
|
| 110 |
+
new_conv_in.bias.data = unet.conv_in.bias.data
|
| 111 |
+
unet.conv_in = new_conv_in
|
| 112 |
+
unet.requires_grad_(False)
|
| 113 |
+
unet.train()
|
| 114 |
+
|
| 115 |
+
l_target_modules_encoder, l_target_modules_decoder, l_modules_others = [], [], []
|
| 116 |
+
l_grep = ["to_k", "to_q", "to_v", "to_out.0", "conv", "conv1", "conv2", "conv_in", "conv_shortcut", "conv_out", "proj_out", "proj_in", "ff.net.2", "ff.net.0.proj"]
|
| 117 |
+
for n, p in unet.named_parameters():
|
| 118 |
+
if "bias" in n or "norm" in n: continue
|
| 119 |
+
for pattern in l_grep:
|
| 120 |
+
if pattern in n and ("down_blocks" in n or "conv_in" in n):
|
| 121 |
+
l_target_modules_encoder.append(n.replace(".weight",""))
|
| 122 |
+
break
|
| 123 |
+
elif pattern in n and "up_blocks" in n:
|
| 124 |
+
l_target_modules_decoder.append(n.replace(".weight",""))
|
| 125 |
+
break
|
| 126 |
+
elif pattern in n:
|
| 127 |
+
l_modules_others.append(n.replace(".weight",""))
|
| 128 |
+
break
|
| 129 |
+
lora_conf_encoder = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_target_modules_encoder)
|
| 130 |
+
lora_conf_decoder = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_target_modules_decoder)
|
| 131 |
+
lora_conf_others = LoraConfig(r=rank, init_lora_weights="gaussian",target_modules=l_modules_others)
|
| 132 |
+
unet.add_adapter(lora_conf_encoder, adapter_name="default_encoder")
|
| 133 |
+
unet.add_adapter(lora_conf_decoder, adapter_name="default_decoder")
|
| 134 |
+
unet.add_adapter(lora_conf_others, adapter_name="default_others")
|
| 135 |
+
if return_lora_module_names:
|
| 136 |
+
return unet, l_target_modules_encoder, l_target_modules_decoder, l_modules_others
|
| 137 |
+
else:
|
| 138 |
+
return unet
|
| 139 |
+
|
| 140 |
+
class VSD(torch.nn.Module):
|
| 141 |
+
def __init__(self, args, accelerator):
|
| 142 |
+
super().__init__()
|
| 143 |
+
|
| 144 |
+
self.tokenizer = AutoTokenizer.from_pretrained(args.pretrained_model_name_or_path, subfolder="tokenizer")
|
| 145 |
+
self.text_encoder = CLIPTextModel.from_pretrained(args.pretrained_model_name_or_path, subfolder="text_encoder")
|
| 146 |
+
self.sched = DDPMScheduler.from_pretrained(args.pretrained_model_name_or_path, subfolder="scheduler")
|
| 147 |
+
self.args = args
|
| 148 |
+
|
| 149 |
+
weight_dtype = torch.float32
|
| 150 |
+
if accelerator.mixed_precision == "fp16":
|
| 151 |
+
weight_dtype = torch.float16
|
| 152 |
+
elif accelerator.mixed_precision == "bf16":
|
| 153 |
+
weight_dtype = torch.bfloat16
|
| 154 |
+
|
| 155 |
+
self.vae = AutoencoderKL.from_pretrained(args.pretrained_model_name_or_path, subfolder="vae")
|
| 156 |
+
self.unet_fix = UNet2DConditionModel.from_pretrained(args.pretrained_model_name_or_path, subfolder="unet")
|
| 157 |
+
self.unet_update, self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others =\
|
| 158 |
+
initialize_unet(rank=args.lora_rank_unet_vsd, pretrained_model_name_or_path=args.pretrained_model_name_or_path, return_lora_module_names=True)
|
| 159 |
+
self.lora_rank_unet = args.lora_rank_unet_vsd
|
| 160 |
+
|
| 161 |
+
if args.enable_xformers_memory_efficient_attention:
|
| 162 |
+
if is_xformers_available():
|
| 163 |
+
self.unet_fix.enable_xformers_memory_efficient_attention()
|
| 164 |
+
self.unet_update.enable_xformers_memory_efficient_attention()
|
| 165 |
+
else:
|
| 166 |
+
raise ValueError("xformers is not available, please install it by running `pip install xformers`")
|
| 167 |
+
|
| 168 |
+
if args.gradient_checkpointing:
|
| 169 |
+
self.unet_fix.enable_gradient_checkpointing()
|
| 170 |
+
self.unet_update.enable_gradient_checkpointing()
|
| 171 |
+
|
| 172 |
+
self.text_encoder.to(accelerator.device, dtype=weight_dtype)
|
| 173 |
+
self.unet_fix.to(accelerator.device, dtype=weight_dtype)
|
| 174 |
+
self.unet_update.to(accelerator.device)
|
| 175 |
+
self.vae.to(accelerator.device)
|
| 176 |
+
|
| 177 |
+
self.text_encoder.requires_grad_(False)
|
| 178 |
+
self.vae.requires_grad_(False)
|
| 179 |
+
self.unet_fix.requires_grad_(False)
|
| 180 |
+
|
| 181 |
+
def set_eval(self):
|
| 182 |
+
self.unet_fix.eval()
|
| 183 |
+
self.unet.eval()
|
| 184 |
+
self.unet_update.eval()
|
| 185 |
+
|
| 186 |
+
def set_train(self):
|
| 187 |
+
self.unet_update.train()
|
| 188 |
+
for n, _p in self.unet_update.named_parameters():
|
| 189 |
+
if "lora" in n:
|
| 190 |
+
_p.requires_grad = True
|
| 191 |
+
|
| 192 |
+
def forward(self, c_t, prompt=None, neg_prompt_tokens=None, prompt_tokens=None, deterministic=True, r=1.0, noise_map=None, args=None):
|
| 193 |
+
|
| 194 |
+
caption_enc = self.text_encoder(prompt_tokens)[0]
|
| 195 |
+
neg_caption_enc = self.text_encoder(neg_prompt_tokens)[0]
|
| 196 |
+
|
| 197 |
+
encoded_control = self.vae.encode(c_t).latent_dist.sample() * self.vae.config.scaling_factor
|
| 198 |
+
model_pred = self.unet(encoded_control, self.timesteps, encoder_hidden_states=caption_enc.to(torch.float32),).sample
|
| 199 |
+
x_denoised = self.sched.step(model_pred, self.timesteps, encoded_control, return_dict=True).prev_sample
|
| 200 |
+
|
| 201 |
+
output_image = (self.vae.decode(x_denoised / self.vae.config.scaling_factor).sample).clamp(-1, 1)
|
| 202 |
+
|
| 203 |
+
return output_image, caption_enc, neg_caption_enc
|
| 204 |
+
|
| 205 |
+
def forward_latent(self, model, latents, timestep, prompt_embeds):
|
| 206 |
+
|
| 207 |
+
noise_pred = model(
|
| 208 |
+
latents,
|
| 209 |
+
timestep=timestep,
|
| 210 |
+
encoder_hidden_states=prompt_embeds,
|
| 211 |
+
).sample
|
| 212 |
+
|
| 213 |
+
return noise_pred
|
| 214 |
+
|
| 215 |
+
def compute_lora_loss(self, latents_pred, prompt_embeds, args):
|
| 216 |
+
|
| 217 |
+
latents_pred = latents_pred.detach()
|
| 218 |
+
prompt_embeds = prompt_embeds.detach()
|
| 219 |
+
noise = torch.randn_like(latents_pred)
|
| 220 |
+
bsz = latents_pred.shape[0]
|
| 221 |
+
timesteps = torch.randint(0, self.sched.config.num_train_timesteps, (bsz,), device=latents_pred.device)
|
| 222 |
+
timesteps = timesteps.long()
|
| 223 |
+
noisy_latents = self.sched.add_noise(latents_pred, noise, timesteps)
|
| 224 |
+
disc_pred = self.forward_latent(
|
| 225 |
+
self.unet_update,
|
| 226 |
+
timestep=timesteps,
|
| 227 |
+
latents=noisy_latents,
|
| 228 |
+
prompt_embeds=prompt_embeds
|
| 229 |
+
)
|
| 230 |
+
if args.snr_gamma_vsd is None:
|
| 231 |
+
loss_d = F.mse_loss(disc_pred.float(), noise.float(), reduction="mean")
|
| 232 |
+
else:
|
| 233 |
+
# Compute loss-weights as per Section 3.4 of https://arxiv.org/abs/2303.09556.
|
| 234 |
+
# Since we predict the noise instead of x_0, the original formulation is slightly changed.
|
| 235 |
+
# This is discussed in Section 4.2 of the same paper.
|
| 236 |
+
snr = compute_snr(self.sched, timesteps)
|
| 237 |
+
if self.sched.config.prediction_type == "v_prediction":
|
| 238 |
+
# Velocity objective requires that we add one to SNR values before we divide by them.
|
| 239 |
+
snr = snr + 1
|
| 240 |
+
mse_loss_weights = torch.stack([snr, args.snr_gamma * torch.ones_like(timesteps)], dim=1).min(dim=1)[0] / snr
|
| 241 |
+
|
| 242 |
+
loss = F.mse_loss(model_pred.float(), target.float(), reduction="none")
|
| 243 |
+
loss = loss.mean(dim=list(range(1, len(loss.shape)))) * mse_loss_weights
|
| 244 |
+
loss_d = loss.mean()
|
| 245 |
+
|
| 246 |
+
return loss_d
|
| 247 |
+
|
| 248 |
+
def eps_to_mu(self, scheduler, model_output, sample, timesteps):
|
| 249 |
+
alphas_cumprod = scheduler.alphas_cumprod.to(device=sample.device, dtype=sample.dtype)
|
| 250 |
+
alpha_prod_t = alphas_cumprod[timesteps]
|
| 251 |
+
while len(alpha_prod_t.shape) < len(sample.shape):
|
| 252 |
+
alpha_prod_t = alpha_prod_t.unsqueeze(-1)
|
| 253 |
+
beta_prod_t = 1 - alpha_prod_t
|
| 254 |
+
pred_original_sample = (sample - beta_prod_t ** (0.5) * model_output) / alpha_prod_t ** (0.5)
|
| 255 |
+
return pred_original_sample
|
| 256 |
+
|
| 257 |
+
def distribution_matching_loss(
|
| 258 |
+
self,
|
| 259 |
+
real_model,
|
| 260 |
+
fake_model,
|
| 261 |
+
noise_scheduler,
|
| 262 |
+
latents,
|
| 263 |
+
prompt_embeds,
|
| 264 |
+
negative_prompt_embeds,
|
| 265 |
+
args,
|
| 266 |
+
):
|
| 267 |
+
bsz = latents.shape[0]
|
| 268 |
+
min_dm_step = int(noise_scheduler.config.num_train_timesteps * args.min_dm_step_ratio)
|
| 269 |
+
max_dm_step = int(noise_scheduler.config.num_train_timesteps * args.max_dm_step_ratio)
|
| 270 |
+
|
| 271 |
+
timestep = torch.randint(min_dm_step, max_dm_step, (bsz,), device=latents.device).long()
|
| 272 |
+
noise = torch.randn_like(latents)
|
| 273 |
+
noisy_latents = noise_scheduler.add_noise(latents, noise, timestep)
|
| 274 |
+
|
| 275 |
+
with torch.no_grad():
|
| 276 |
+
noise_pred = self.forward_latent(
|
| 277 |
+
fake_model,
|
| 278 |
+
latents=noisy_latents,
|
| 279 |
+
timestep=timestep,
|
| 280 |
+
prompt_embeds=prompt_embeds.float(),
|
| 281 |
+
)
|
| 282 |
+
pred_fake_latents = self.eps_to_mu(noise_scheduler, noise_pred, noisy_latents, timestep)
|
| 283 |
+
|
| 284 |
+
noisy_latents_input = torch.cat([noisy_latents] * 2)
|
| 285 |
+
timestep_input = torch.cat([timestep] * 2)
|
| 286 |
+
prompt_embeds = torch.cat([negative_prompt_embeds, prompt_embeds], dim=0)
|
| 287 |
+
|
| 288 |
+
noise_pred = self.forward_latent(
|
| 289 |
+
real_model,
|
| 290 |
+
latents=noisy_latents_input.to(dtype=torch.float16),
|
| 291 |
+
timestep=timestep_input,
|
| 292 |
+
prompt_embeds=prompt_embeds.to(dtype=torch.float16),
|
| 293 |
+
)
|
| 294 |
+
noise_pred_uncond, noise_pred_text = noise_pred.chunk(2)
|
| 295 |
+
noise_pred = noise_pred_uncond + args.cfg_vsd * (noise_pred_text - noise_pred_uncond)
|
| 296 |
+
noise_pred.to(dtype=torch.float32)
|
| 297 |
+
|
| 298 |
+
pred_real_latents = self.eps_to_mu(noise_scheduler, noise_pred, noisy_latents, timestep)
|
| 299 |
+
|
| 300 |
+
weighting_factor = torch.abs(latents - pred_real_latents).mean(dim=[1, 2, 3], keepdim=True)
|
| 301 |
+
|
| 302 |
+
grad = (pred_fake_latents - pred_real_latents) / weighting_factor
|
| 303 |
+
loss = F.mse_loss(latents, self.stopgrad(latents - grad))
|
| 304 |
+
return loss
|
| 305 |
+
|
| 306 |
+
def stopgrad(self, x):
|
| 307 |
+
return x.detach()
|
| 308 |
+
|
| 309 |
+
def save_model(self, outf):
|
| 310 |
+
sd = {}
|
| 311 |
+
sd["unet_lora_encoder_modules"], sd["unet_lora_decoder_modules"], sd["unet_lora_others_modules"] =\
|
| 312 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others
|
| 313 |
+
sd["rank_unet"] = self.lora_rank_unet
|
| 314 |
+
sd["state_dict_unet"] = {k: v for k, v in self.unet.state_dict().items() if "lora" in k}
|
| 315 |
+
torch.save(sd, outf)
|
| 316 |
+
|
| 317 |
+
class NAOSD(torch.nn.Module):
|
| 318 |
+
def __init__(self, args):
|
| 319 |
+
super().__init__()
|
| 320 |
+
|
| 321 |
+
self.tokenizer = AutoTokenizer.from_pretrained(args.pretrained_model_name_or_path, subfolder="tokenizer")
|
| 322 |
+
self.text_encoder = CLIPTextModel.from_pretrained(args.pretrained_model_name_or_path, subfolder="text_encoder").cuda()
|
| 323 |
+
self.sched = make_1step_sched(args.pretrained_model_name_or_path)
|
| 324 |
+
self.sched2 = DDPMScheduler.from_pretrained(args.pretrained_model_name_or_path, subfolder="scheduler")
|
| 325 |
+
self.args = args
|
| 326 |
+
self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 327 |
+
|
| 328 |
+
vae = AutoencoderKL.from_pretrained(args.pretrained_model_name_or_path, subfolder="vae")
|
| 329 |
+
unet = UNet2DConditionModel.from_pretrained(args.pretrained_model_name_or_path, subfolder="unet")
|
| 330 |
+
|
| 331 |
+
if args.pretrained_path is None:
|
| 332 |
+
vae, lora_vae_modules_encoder, lora_vae_modules_decoder, lora_vae_others =\
|
| 333 |
+
initialize_vae(rank=args.lora_rank_vae, pretrained_model_name_or_path=args.pretrained_model_name_or_path, return_lora_module_names=True)
|
| 334 |
+
unet, lora_unet_modules_encoder, lora_unet_modules_decoder, lora_unet_others =\
|
| 335 |
+
initialize_unet_sr(rank=args.lora_rank_unet, pretrained_model_name_or_path=args.pretrained_model_name_or_path, return_lora_module_names=True, args=args)
|
| 336 |
+
self.lora_rank_unet = args.lora_rank_unet
|
| 337 |
+
self.lora_rank_vae = args.lora_rank_vae
|
| 338 |
+
self.lora_vae_modules_encoder, self.lora_vae_modules_decoder, self.lora_vae_others = \
|
| 339 |
+
lora_vae_modules_encoder, lora_vae_modules_decoder, lora_vae_others
|
| 340 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others = \
|
| 341 |
+
lora_unet_modules_encoder, lora_unet_modules_decoder, lora_unet_others
|
| 342 |
+
|
| 343 |
+
self.unet, self.vae = unet, vae
|
| 344 |
+
|
| 345 |
+
if args.pretrained_path is not None:
|
| 346 |
+
print('==================================> loading pre-trained weight')
|
| 347 |
+
sd = torch.load(args.pretrained_path)
|
| 348 |
+
self.load_ckpt_from_state_dict(sd)
|
| 349 |
+
self.lora_rank_unet = sd['rank_unet']
|
| 350 |
+
self.lora_rank_vae = sd['rank_vae']
|
| 351 |
+
self.lora_vae_modules_encoder, self.lora_vae_modules_decoder, self.lora_vae_others = \
|
| 352 |
+
sd['vae_lora_encoder_modules'], sd['vae_lora_decoder_modules'], sd['vae_lora_others_modules']
|
| 353 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others = \
|
| 354 |
+
sd['unet_lora_encoder_modules'], sd['unet_lora_decoder_modules'], sd['unet_lora_others_modules']
|
| 355 |
+
|
| 356 |
+
self.unet, self.vae = self.unet.cuda(), self.vae.cuda()
|
| 357 |
+
self.timesteps = torch.tensor([args.time_step], device="cuda").long()
|
| 358 |
+
self.timestepsnoise = torch.tensor([args.time_step_noise], device="cuda").long()
|
| 359 |
+
self.text_encoder.requires_grad_(False)
|
| 360 |
+
|
| 361 |
+
def set_eval(self):
|
| 362 |
+
self.unet.eval()
|
| 363 |
+
self.vae.eval()
|
| 364 |
+
self.unet.requires_grad_(False)
|
| 365 |
+
self.vae.requires_grad_(False)
|
| 366 |
+
|
| 367 |
+
def set_train(self):
|
| 368 |
+
self.unet.train()
|
| 369 |
+
self.vae.train()
|
| 370 |
+
for n, _p in self.unet.named_parameters():
|
| 371 |
+
if "lora" in n:
|
| 372 |
+
_p.requires_grad = True
|
| 373 |
+
self.unet.conv_in.requires_grad_(True)
|
| 374 |
+
for n, _p in self.vae.named_parameters():
|
| 375 |
+
if "lora" in n:
|
| 376 |
+
_p.requires_grad = True
|
| 377 |
+
|
| 378 |
+
def encode_prompt(self, prompt):
|
| 379 |
+
with torch.no_grad():
|
| 380 |
+
text_input_ids = self.tokenizer(
|
| 381 |
+
prompt, max_length=self.tokenizer.model_max_length,
|
| 382 |
+
padding="max_length", truncation=True, return_tensors="pt"
|
| 383 |
+
).input_ids
|
| 384 |
+
prompt_embeds = self.text_encoder(
|
| 385 |
+
text_input_ids.to(self.text_encoder.device),
|
| 386 |
+
)[0]
|
| 387 |
+
return prompt_embeds
|
| 388 |
+
|
| 389 |
+
def forward(self, c_t, positive_prompt=None, negative_prompt=None, args=None):
|
| 390 |
+
caption_enc = self.encode_prompt(positive_prompt)
|
| 391 |
+
neg_caption_enc = self.encode_prompt(negative_prompt)
|
| 392 |
+
encoded_control = self.vae.encode(c_t).latent_dist.sample() * self.vae.config.scaling_factor
|
| 393 |
+
noise = torch.randn_like(encoded_control)
|
| 394 |
+
encoded_control = self.sched2.add_noise(encoded_control, noise, self.timestepsnoise)
|
| 395 |
+
|
| 396 |
+
model_pred = self.unet(encoded_control, self.timesteps, encoder_hidden_states=caption_enc.to(torch.float32),).sample
|
| 397 |
+
x_denoised = self.sched.step(model_pred, self.timesteps, encoded_control, return_dict=True).prev_sample
|
| 398 |
+
output_image = self.vae.decode(x_denoised / self.vae.config.scaling_factor).sample
|
| 399 |
+
output_image = output_image.clamp(-1, 1)
|
| 400 |
+
|
| 401 |
+
return output_image, x_denoised, caption_enc, neg_caption_enc, noise
|
| 402 |
+
|
| 403 |
+
def save_model(self, outf):
|
| 404 |
+
sd = {}
|
| 405 |
+
sd["vae_lora_encoder_modules"], sd["vae_lora_decoder_modules"], sd["vae_lora_others_modules"] =\
|
| 406 |
+
self.lora_vae_modules_encoder, self.lora_vae_modules_decoder, self.lora_vae_others
|
| 407 |
+
sd["unet_lora_encoder_modules"], sd["unet_lora_decoder_modules"], sd["unet_lora_others_modules"] =\
|
| 408 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others
|
| 409 |
+
sd["rank_unet"] = self.lora_rank_unet
|
| 410 |
+
sd["rank_vae"] = self.lora_rank_vae
|
| 411 |
+
sd["state_dict_unet"] = {k: v for k, v in self.unet.state_dict().items() if "lora" in k or "conv_in" in k}
|
| 412 |
+
sd["state_dict_vae"] = {k: v for k, v in self.vae.state_dict().items() if "lora" in k or "skip" in k}
|
| 413 |
+
torch.save(sd, outf)
|
| 414 |
+
|
| 415 |
+
def load_ckpt_from_state_dict(self, sd):
|
| 416 |
+
# load unet lora
|
| 417 |
+
lora_conf_encoder = LoraConfig(r=sd["rank_unet"], init_lora_weights="gaussian", target_modules=sd["unet_lora_encoder_modules"])
|
| 418 |
+
lora_conf_decoder = LoraConfig(r=sd["rank_unet"], init_lora_weights="gaussian", target_modules=sd["unet_lora_decoder_modules"])
|
| 419 |
+
lora_conf_others = LoraConfig(r=sd["rank_unet"], init_lora_weights="gaussian", target_modules=sd["unet_lora_others_modules"])
|
| 420 |
+
self.unet.add_adapter(lora_conf_encoder, adapter_name="default_encoder")
|
| 421 |
+
self.unet.add_adapter(lora_conf_decoder, adapter_name="default_decoder")
|
| 422 |
+
self.unet.add_adapter(lora_conf_others, adapter_name="default_others")
|
| 423 |
+
for n, p in self.unet.named_parameters():
|
| 424 |
+
if "lora" in n or "conv_in" in n:
|
| 425 |
+
p.data.copy_(sd["state_dict_unet"][n])
|
| 426 |
+
|
| 427 |
+
# load vae lora
|
| 428 |
+
vae_lora_conf_encoder = LoraConfig(r=sd["rank_vae"], init_lora_weights="gaussian", target_modules=sd["vae_lora_encoder_modules"])
|
| 429 |
+
vae_lora_conf_decoder = LoraConfig(r=sd["rank_vae"], init_lora_weights="gaussian", target_modules=sd["vae_lora_decoder_modules"])
|
| 430 |
+
self.vae.add_adapter(vae_lora_conf_encoder, adapter_name="default_encoder")
|
| 431 |
+
self.vae.add_adapter(vae_lora_conf_decoder, adapter_name="default_decoder")
|
| 432 |
+
for n, p in self.vae.named_parameters():
|
| 433 |
+
if "lora" in n:
|
| 434 |
+
p.data.copy_(sd["state_dict_vae"][n])
|
| 435 |
+
|
| 436 |
+
class GDPOSR(torch.nn.Module):
|
| 437 |
+
def __init__(self, args):
|
| 438 |
+
super().__init__()
|
| 439 |
+
|
| 440 |
+
self.tokenizer = AutoTokenizer.from_pretrained(args.pretrained_model_name_or_path, subfolder="tokenizer")
|
| 441 |
+
self.text_encoder = CLIPTextModel.from_pretrained(args.pretrained_model_name_or_path, subfolder="text_encoder").cuda()
|
| 442 |
+
self.sched = make_1step_sched(args.pretrained_model_name_or_path)
|
| 443 |
+
self.sched2 = DDPMScheduler.from_pretrained(args.pretrained_model_name_or_path, subfolder="scheduler")
|
| 444 |
+
self.args = args
|
| 445 |
+
self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 446 |
+
|
| 447 |
+
vae = AutoencoderKL.from_pretrained(args.basemodel_path, subfolder="vae")
|
| 448 |
+
unet = UNet2DConditionModel.from_pretrained(args.basemodel_path, subfolder="unet")
|
| 449 |
+
ref_unet = UNet2DConditionModel.from_pretrained(args.basemodel_path, subfolder="unet")
|
| 450 |
+
|
| 451 |
+
if args.pretrained_path is None:
|
| 452 |
+
print('==================================> randomly initiate the weight')
|
| 453 |
+
unet, lora_unet_modules_encoder, lora_unet_modules_decoder, lora_unet_others =\
|
| 454 |
+
initialize_unet_sr(rank=args.lora_rank_unet, pretrained_model_name_or_path=args.basemodel_path, return_lora_module_names=True, args=args)
|
| 455 |
+
self.lora_rank_unet = args.lora_rank_unet
|
| 456 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others = \
|
| 457 |
+
lora_unet_modules_encoder, lora_unet_modules_decoder, lora_unet_others
|
| 458 |
+
|
| 459 |
+
self.unet, self.vae = unet, vae
|
| 460 |
+
|
| 461 |
+
if args.pretrained_path is not None:
|
| 462 |
+
print('==================================> loading pre-trained weight')
|
| 463 |
+
sd = torch.load(args.pretrained_path)
|
| 464 |
+
self.load_ckpt_from_state_dict(sd)
|
| 465 |
+
self.lora_rank_unet = sd['rank_unet']
|
| 466 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others = \
|
| 467 |
+
sd['unet_lora_encoder_modules'], sd['unet_lora_decoder_modules'], sd['unet_lora_others_modules']
|
| 468 |
+
|
| 469 |
+
self.unet, self.vae = self.unet.cuda(), self.vae.cuda()
|
| 470 |
+
self.ref_unet = ref_unet.cuda()
|
| 471 |
+
self.timesteps = torch.tensor([args.time_step], device="cuda").long()
|
| 472 |
+
self.timestepsnoise = torch.tensor([args.time_step_noise], device="cuda").long()
|
| 473 |
+
self.text_encoder.requires_grad_(False)
|
| 474 |
+
|
| 475 |
+
def set_eval(self):
|
| 476 |
+
self.unet.eval()
|
| 477 |
+
self.vae.eval()
|
| 478 |
+
self.ref_unet.eval()
|
| 479 |
+
self.unet.requires_grad_(False)
|
| 480 |
+
self.vae.requires_grad_(False)
|
| 481 |
+
self.ref_unet.requires_grad_(False)
|
| 482 |
+
|
| 483 |
+
def set_train(self):
|
| 484 |
+
self.unet.train()
|
| 485 |
+
self.vae.train()
|
| 486 |
+
for n, _p in self.unet.named_parameters():
|
| 487 |
+
if "lora" in n:
|
| 488 |
+
_p.requires_grad = True
|
| 489 |
+
for n, _p in self.ref_unet.named_parameters():
|
| 490 |
+
_p.requires_grad = False
|
| 491 |
+
|
| 492 |
+
def encode_prompt(self, prompt):
|
| 493 |
+
with torch.no_grad():
|
| 494 |
+
text_input_ids = self.tokenizer(
|
| 495 |
+
prompt, max_length=self.tokenizer.model_max_length,
|
| 496 |
+
padding="max_length", truncation=True, return_tensors="pt"
|
| 497 |
+
).input_ids
|
| 498 |
+
prompt_embeds = self.text_encoder(
|
| 499 |
+
text_input_ids.to(self.text_encoder.device),
|
| 500 |
+
)[0]
|
| 501 |
+
return prompt_embeds
|
| 502 |
+
|
| 503 |
+
def forward(self, c_t, positive_prompt=[''], negative_prompt=[''], args=None):
|
| 504 |
+
caption_enc = self.encode_prompt(positive_prompt)
|
| 505 |
+
neg_caption_enc = self.encode_prompt(negative_prompt)
|
| 506 |
+
with torch.no_grad():
|
| 507 |
+
encoded_control = self.vae.encode(c_t).latent_dist.sample() * self.vae.config.scaling_factor
|
| 508 |
+
encoded_control_ref = encoded_control
|
| 509 |
+
noise = torch.randn_like(encoded_control)
|
| 510 |
+
encoded_control = self.sched2.add_noise(encoded_control, noise, self.timestepsnoise)
|
| 511 |
+
|
| 512 |
+
model_pred = self.unet(encoded_control, self.timesteps, encoder_hidden_states=caption_enc.to(torch.float32),).sample
|
| 513 |
+
x_denoised = self.sched.step(model_pred, self.timesteps, encoded_control, return_dict=True).prev_sample
|
| 514 |
+
output_image = self.vae.decode(x_denoised / self.vae.config.scaling_factor).sample
|
| 515 |
+
output_image = output_image.clamp(-1, 1)
|
| 516 |
+
|
| 517 |
+
with torch.no_grad():
|
| 518 |
+
encoded_control_ref = self.sched2.add_noise(encoded_control_ref, noise, self.timestepsnoise)
|
| 519 |
+
ref_model_pred = self.ref_unet(encoded_control_ref, self.timesteps, encoder_hidden_states=caption_enc.to(torch.float32),).sample
|
| 520 |
+
ref_x_denoised = self.sched.step(ref_model_pred, self.timesteps, encoded_control_ref, return_dict=True).prev_sample
|
| 521 |
+
ref_output_image = self.vae.decode(ref_x_denoised / self.vae.config.scaling_factor).sample
|
| 522 |
+
ref_output_image = ref_output_image.clamp(-1, 1)
|
| 523 |
+
|
| 524 |
+
return output_image, x_denoised, model_pred, caption_enc, neg_caption_enc, noise, ref_output_image, ref_x_denoised, ref_model_pred
|
| 525 |
+
|
| 526 |
+
def GDPOReference(self, c_t, positive_prompt=[''], negative_prompt=[''], args=None, groupsize=6):
|
| 527 |
+
|
| 528 |
+
with torch.no_grad():
|
| 529 |
+
|
| 530 |
+
caption_enc = self.encode_prompt(positive_prompt).unsqueeze(1)
|
| 531 |
+
encoded_control = self.vae.encode(c_t).latent_dist.sample() * self.vae.config.scaling_factor
|
| 532 |
+
b,c,h,w=encoded_control.shape
|
| 533 |
+
encoded_control = encoded_control.unsqueeze(1)
|
| 534 |
+
caption_enc = caption_enc.repeat(1,groupsize,1,1)
|
| 535 |
+
encoded_control = encoded_control.repeat(1, groupsize, 1, 1, 1)
|
| 536 |
+
noise = torch.randn_like(encoded_control)
|
| 537 |
+
output_image = torch.zeros_like(c_t).unsqueeze(1).repeat(1,groupsize,1,1,1)
|
| 538 |
+
x_denoised = torch.zeros_like(noise)
|
| 539 |
+
model_pred = torch.zeros_like(noise)
|
| 540 |
+
for i in range(b):
|
| 541 |
+
encoded_control_i = self.sched2.add_noise(encoded_control[i], noise[i], self.timestepsnoise)
|
| 542 |
+
# print(encoded_control.shape, caption_enc.shape, self.timesteps.shape)
|
| 543 |
+
model_pred_i = self.ref_unet(encoded_control_i, self.timesteps, encoder_hidden_states=caption_enc[i],).sample
|
| 544 |
+
x_denoised_i = self.sched.step(model_pred_i, self.timesteps, encoded_control_i, return_dict=True).prev_sample
|
| 545 |
+
output_image_i = self.vae.decode(x_denoised_i / self.vae.config.scaling_factor).sample
|
| 546 |
+
output_image_i = output_image_i.clamp(-1, 1)
|
| 547 |
+
output_image[i] = output_image_i
|
| 548 |
+
x_denoised[i] = x_denoised_i
|
| 549 |
+
model_pred[i] = model_pred_i
|
| 550 |
+
|
| 551 |
+
return output_image, x_denoised, model_pred
|
| 552 |
+
|
| 553 |
+
def save_model(self, outf):
|
| 554 |
+
sd = {}
|
| 555 |
+
sd["unet_lora_encoder_modules"], sd["unet_lora_decoder_modules"], sd["unet_lora_others_modules"] =\
|
| 556 |
+
self.lora_unet_modules_encoder, self.lora_unet_modules_decoder, self.lora_unet_others
|
| 557 |
+
sd["rank_unet"] = self.lora_rank_unet
|
| 558 |
+
sd["state_dict_unet"] = {k: v for k, v in self.unet.state_dict().items() if "lora" in k or "conv_in" in k}
|
| 559 |
+
torch.save(sd, outf)
|
| 560 |
+
|
| 561 |
+
def load_ckpt_from_state_dict(self, sd):
|
| 562 |
+
# load unet lora
|
| 563 |
+
lora_conf_encoder = LoraConfig(r=sd["rank_unet"], init_lora_weights="gaussian", target_modules=sd["unet_lora_encoder_modules"])
|
| 564 |
+
lora_conf_decoder = LoraConfig(r=sd["rank_unet"], init_lora_weights="gaussian", target_modules=sd["unet_lora_decoder_modules"])
|
| 565 |
+
lora_conf_others = LoraConfig(r=sd["rank_unet"], init_lora_weights="gaussian", target_modules=sd["unet_lora_others_modules"])
|
| 566 |
+
self.unet.add_adapter(lora_conf_encoder, adapter_name="default_encoder")
|
| 567 |
+
self.unet.add_adapter(lora_conf_decoder, adapter_name="default_decoder")
|
| 568 |
+
self.unet.add_adapter(lora_conf_others, adapter_name="default_others")
|
| 569 |
+
for n, p in self.unet.named_parameters():
|
| 570 |
+
if "lora" in n or "conv_in" in n:
|
| 571 |
+
p.data.copy_(sd["state_dict_unet"][n])
|
| 572 |
+
|
| 573 |
+
class GDPOSRTest(torch.nn.Module):
|
| 574 |
+
def __init__(self, args):
|
| 575 |
+
super().__init__()
|
| 576 |
+
|
| 577 |
+
self.tokenizer = AutoTokenizer.from_pretrained(args.pretrained_model_name_or_path, subfolder="tokenizer")
|
| 578 |
+
self.text_encoder = CLIPTextModel.from_pretrained(args.pretrained_model_name_or_path, subfolder="text_encoder").cuda()
|
| 579 |
+
self.sched = make_1step_sched(args.pretrained_model_name_or_path)
|
| 580 |
+
self.sched2 = DDPMScheduler.from_pretrained(args.pretrained_model_name_or_path, subfolder="scheduler")
|
| 581 |
+
self.args = args
|
| 582 |
+
self.device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
|
| 583 |
+
|
| 584 |
+
vae = AutoencoderKL.from_pretrained(args.pretrained_path, subfolder="vae")
|
| 585 |
+
unet = UNet2DConditionModel.from_pretrained(args.pretrained_path, subfolder="unet")
|
| 586 |
+
|
| 587 |
+
self.unet, self.vae = unet, vae
|
| 588 |
+
self.unet, self.vae = self.unet.cuda(), self.vae.cuda()
|
| 589 |
+
self.timesteps = torch.tensor([args.time_step], device="cuda").long()
|
| 590 |
+
self.timestepsnoise = torch.tensor([args.time_step_noise], device="cuda").long()
|
| 591 |
+
self.text_encoder.requires_grad_(False)
|
| 592 |
+
|
| 593 |
+
def set_eval(self):
|
| 594 |
+
self.unet.eval()
|
| 595 |
+
self.vae.eval()
|
| 596 |
+
self.unet.requires_grad_(False)
|
| 597 |
+
self.vae.requires_grad_(False)
|
| 598 |
+
|
| 599 |
+
def encode_prompt(self, prompt):
|
| 600 |
+
with torch.no_grad():
|
| 601 |
+
text_input_ids = self.tokenizer(
|
| 602 |
+
prompt, max_length=self.tokenizer.model_max_length,
|
| 603 |
+
padding="max_length", truncation=True, return_tensors="pt"
|
| 604 |
+
).input_ids
|
| 605 |
+
prompt_embeds = self.text_encoder(
|
| 606 |
+
text_input_ids.to(self.text_encoder.device),
|
| 607 |
+
)[0]
|
| 608 |
+
return prompt_embeds
|
| 609 |
+
|
| 610 |
+
def forward(self, c_t, positive_prompt=['']):
|
| 611 |
+
|
| 612 |
+
caption_enc = self.encode_prompt(positive_prompt)
|
| 613 |
+
encoded_control = self.vae.encode(c_t).latent_dist.sample() * self.vae.config.scaling_factor
|
| 614 |
+
noise = torch.randn_like(encoded_control)
|
| 615 |
+
encoded_control = self.sched2.add_noise(encoded_control, noise, self.timestepsnoise)
|
| 616 |
+
|
| 617 |
+
model_pred = self.unet(encoded_control, self.timesteps, encoder_hidden_states=caption_enc.to(torch.float32),).sample
|
| 618 |
+
x_denoised = self.sched.step(model_pred, self.timesteps, encoded_control, return_dict=True).prev_sample
|
| 619 |
+
output_image = self.vae.decode(x_denoised / self.vae.config.scaling_factor).sample
|
| 620 |
+
output_image = output_image.clamp(-1, 1)
|
| 621 |
+
|
| 622 |
+
|
| 623 |
+
return output_image
|
GDPOSR/modelfile/__pycache__/GDPOSR.cpython-310.pyc
ADDED
|
Binary file (19.5 kB). View file
|
|
|
GDPOSR/my_utils/__pycache__/mask.cpython-310.pyc
ADDED
|
Binary file (4.11 kB). View file
|
|
|
GDPOSR/my_utils/__pycache__/training_utils_realsr.cpython-310.pyc
ADDED
|
Binary file (10.3 kB). View file
|
|
|
GDPOSR/my_utils/__pycache__/wavelet_color_fix.cpython-310.pyc
ADDED
|
Binary file (3.74 kB). View file
|
|
|
GDPOSR/my_utils/mask.py
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import cv2
|
| 2 |
+
import math
|
| 3 |
+
import torch
|
| 4 |
+
import numpy as np
|
| 5 |
+
import matplotlib.pyplot as plt
|
| 6 |
+
|
| 7 |
+
def calculate_complexity_degree(img, weight=1.0):
|
| 8 |
+
try:
|
| 9 |
+
# img = (img + 1.0) / 2.0 # (0, 1)
|
| 10 |
+
h, w = img.shape
|
| 11 |
+
# img = cv2.resize(img, dsize=(256,256))
|
| 12 |
+
img = cv2.resize(img, dsize=(64,64))
|
| 13 |
+
sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3, borderType=cv2.BORDER_REPLICATE) # (-4, 4)
|
| 14 |
+
sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3, borderType=cv2.BORDER_REPLICATE)
|
| 15 |
+
edge_magnitude = np.sqrt(sobel_x ** 2 + sobel_y ** 2) # [-4*2**0.5, 4*2**0.5]
|
| 16 |
+
hist, _ = np.histogram(edge_magnitude, bins=512, range=(-5.5, 5.5))
|
| 17 |
+
hist = hist / (hist.sum()+1e-5)
|
| 18 |
+
entropy = -np.sum(hist * np.log2(hist + 1e-10))
|
| 19 |
+
|
| 20 |
+
complexity_degree = entropy**weight*h*w
|
| 21 |
+
except Exception as e:
|
| 22 |
+
print(f"img: {img.shape}")
|
| 23 |
+
return complexity_degree
|
| 24 |
+
|
| 25 |
+
def create_complexity_matrix(gray_img, patch_size=60):
|
| 26 |
+
"""
|
| 27 |
+
Divide a grayscale image into patches and calculate the complexity of each patch
|
| 28 |
+
to generate a complexity matrix.
|
| 29 |
+
|
| 30 |
+
Parameters:
|
| 31 |
+
gray_img: Input grayscale image (NumPy array).
|
| 32 |
+
patch_size: Size of each patch (default: 6x6).
|
| 33 |
+
|
| 34 |
+
Returns:
|
| 35 |
+
complexity_matrix: The complexity matrix (same size as the input image).
|
| 36 |
+
"""
|
| 37 |
+
|
| 38 |
+
h, w = gray_img.shape
|
| 39 |
+
complexity_matrix = np.zeros((h, w))
|
| 40 |
+
|
| 41 |
+
rows = h // patch_size
|
| 42 |
+
cols = w // patch_size
|
| 43 |
+
|
| 44 |
+
for i in range(rows):
|
| 45 |
+
for j in range(cols):
|
| 46 |
+
patch = gray_img[i*patch_size:(i+1)*patch_size, j*patch_size:(j+1)*patch_size]
|
| 47 |
+
|
| 48 |
+
complexity = calculate_complexity_degree(patch)
|
| 49 |
+
|
| 50 |
+
complexity_matrix[i*patch_size:(i+1)*patch_size, j*patch_size:(j+1)*patch_size] = complexity
|
| 51 |
+
|
| 52 |
+
if rows * patch_size < h:
|
| 53 |
+
for j in range(cols):
|
| 54 |
+
patch = gray_img[rows*patch_size:, j*patch_size:(j+1)*patch_size]
|
| 55 |
+
complexity = calculate_complexity_degree(patch)
|
| 56 |
+
complexity_matrix[rows*patch_size:, j*patch_size:(j+1)*patch_size] = complexity
|
| 57 |
+
|
| 58 |
+
if cols * patch_size < w:
|
| 59 |
+
for i in range(rows):
|
| 60 |
+
patch = gray_img[i*patch_size:(i+1)*patch_size, cols*patch_size:]
|
| 61 |
+
complexity = calculate_complexity_degree(patch)
|
| 62 |
+
complexity_matrix[i*patch_size:(i+1)*patch_size, cols*patch_size:] = complexity
|
| 63 |
+
|
| 64 |
+
if rows * patch_size < h and cols * patch_size < w:
|
| 65 |
+
patch = gray_img[rows*patch_size:, cols*patch_size:]
|
| 66 |
+
complexity = calculate_complexity_degree(patch)
|
| 67 |
+
complexity_matrix[rows*patch_size:, cols*patch_size:] = complexity
|
| 68 |
+
|
| 69 |
+
return complexity_matrix
|
| 70 |
+
|
| 71 |
+
def binarize_complexity_matrix(complexity_matrix, threshold=50):
|
| 72 |
+
"""
|
| 73 |
+
Binarize the complexity matrix.
|
| 74 |
+
|
| 75 |
+
Parameters:
|
| 76 |
+
complexity_matrix: The complexity matrix.
|
| 77 |
+
threshold: The threshold value. Elements greater than this value are set to 1,
|
| 78 |
+
and elements less than or equal to it are set to 0.
|
| 79 |
+
|
| 80 |
+
Returns:
|
| 81 |
+
binary_matrix: The binarized matrix.
|
| 82 |
+
fidelity_zero_ratio: The proportion of the fidelity region (ratio of zeros).
|
| 83 |
+
detail_one_ratio: The proportion of the detail region (ratio of ones).
|
| 84 |
+
"""
|
| 85 |
+
binary_matrix = np.zeros_like(complexity_matrix, dtype=np.uint8)
|
| 86 |
+
binary_matrix[complexity_matrix > threshold] = 1
|
| 87 |
+
|
| 88 |
+
unique_values = np.unique(binary_matrix)
|
| 89 |
+
if not np.all(np.isin(unique_values, [0, 1])):
|
| 90 |
+
raise ValueError("The input matrix must be a binary matrix containing only 0 and 1.")
|
| 91 |
+
|
| 92 |
+
total_elements = binary_matrix.size
|
| 93 |
+
|
| 94 |
+
zero_count = np.count_nonzero(binary_matrix == 0)
|
| 95 |
+
one_count = np.count_nonzero(binary_matrix == 1)
|
| 96 |
+
|
| 97 |
+
fedilty_zero_ratio = round((zero_count / total_elements), 2)
|
| 98 |
+
detail_one_ratio = round((one_count / total_elements), 2)
|
| 99 |
+
|
| 100 |
+
return binary_matrix, fedilty_zero_ratio, detail_one_ratio
|
| 101 |
+
|
| 102 |
+
def extract_and_dilate_edges(gray, threshold1=100, threshold2=200, dilation_size=3, downscale_factor=8):
|
| 103 |
+
|
| 104 |
+
edges = cv2.Canny(gray, threshold1, threshold2)
|
| 105 |
+
kernel = np.ones((dilation_size, dilation_size), np.uint8)
|
| 106 |
+
dilated_edges = cv2.dilate(edges, kernel, iterations=1)
|
| 107 |
+
|
| 108 |
+
h, w = dilated_edges.shape
|
| 109 |
+
new_h, new_w = h // downscale_factor, w // downscale_factor
|
| 110 |
+
downsampled_edges = cv2.resize(dilated_edges, (new_w, new_h), interpolation=cv2.INTER_AREA)
|
| 111 |
+
downsampled_edges = downsampled_edges/255.0
|
| 112 |
+
|
| 113 |
+
_, downsampled_edges_mask = cv2.threshold(downsampled_edges, 0.498, 1.0, cv2.THRESH_BINARY)
|
| 114 |
+
|
| 115 |
+
return downsampled_edges_mask
|
| 116 |
+
|
| 117 |
+
if __name__ == '__main__':
|
| 118 |
+
img = cv2.imread("DrealSR/test_HR/DSC_1412_x1.png")
|
| 119 |
+
gray_img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
|
| 120 |
+
gray_img = gray_img/255
|
| 121 |
+
|
| 122 |
+
complexity_matrix = create_complexity_matrix(gray_img, patch_size=10)
|
| 123 |
+
print(complexity_matrix.shape)
|
| 124 |
+
binary_matrix, fedilty_zero_ratio, detail_one_ratio = binarize_complexity_matrix(complexity_matrix, threshold=50)
|
| 125 |
+
print(fedilty_zero_ratio, detail_one_ratio)
|
| 126 |
+
print(binary_matrix.shape)
|
GDPOSR/my_utils/training_utils_realsr.py
ADDED
|
@@ -0,0 +1,305 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import cv2
|
| 3 |
+
import random
|
| 4 |
+
import argparse
|
| 5 |
+
import json
|
| 6 |
+
import glob
|
| 7 |
+
import torch
|
| 8 |
+
import numpy as np
|
| 9 |
+
from PIL import Image
|
| 10 |
+
from torchvision import transforms
|
| 11 |
+
import torchvision.transforms.functional as F
|
| 12 |
+
|
| 13 |
+
import sys
|
| 14 |
+
sys.path.append('./')
|
| 15 |
+
from GDPOSR.my_utils.mask import create_complexity_matrix, binarize_complexity_matrix, extract_and_dilate_edges
|
| 16 |
+
from GDPOSR.datasets.realesrgan import RealESRGAN_degradation
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
def parse_args_realsr_training(input_args=None):
|
| 20 |
+
"""
|
| 21 |
+
Parses command-line arguments used for configuring an paired session (pix2pix-Turbo).
|
| 22 |
+
This function sets up an argument parser to handle various training options.
|
| 23 |
+
|
| 24 |
+
Returns:
|
| 25 |
+
argparse.Namespace: The parsed command-line arguments.
|
| 26 |
+
"""
|
| 27 |
+
parser = argparse.ArgumentParser()
|
| 28 |
+
# args for grpo training
|
| 29 |
+
parser.add_argument("--groupsize", default=6, type=int)
|
| 30 |
+
parser.add_argument("--time_min", default=150, type=int)
|
| 31 |
+
parser.add_argument("--time_max", default=350, type=int)
|
| 32 |
+
parser.add_argument("--updatestep", default=4000, type=int)
|
| 33 |
+
parser.add_argument("--patchsize", default=125, type=int)
|
| 34 |
+
parser.add_argument("--beta_dpo", default=0.25, type=float)
|
| 35 |
+
parser.add_argument("--klloss", default=1.0, type=float)
|
| 36 |
+
parser.add_argument("--grpoloss", default=1.0, type=float)
|
| 37 |
+
# args for the vsd training
|
| 38 |
+
parser.add_argument("--positive_prompt", type=str, default='')
|
| 39 |
+
parser.add_argument("--negative_prompt", type=str, default='')
|
| 40 |
+
parser.add_argument("--lambda_vsd", default=1.0, type=float)
|
| 41 |
+
parser.add_argument("--lambda_vsd_lora", default=1.0, type=float)
|
| 42 |
+
parser.add_argument("--lambda_klloss", default=0.0, type=float)
|
| 43 |
+
parser.add_argument("--min_dm_step_ratio", default=0.02, type=float)
|
| 44 |
+
parser.add_argument("--max_dm_step_ratio", default=0.98, type=float)
|
| 45 |
+
parser.add_argument("--cfg_vsd", default=7.5, type=float)
|
| 46 |
+
parser.add_argument("--cfg_csd", default=7.5, type=float)
|
| 47 |
+
parser.add_argument("--snr_gamma_vsd", default=None)
|
| 48 |
+
parser.add_argument("--lora_rank_unet_vsd", default=8, type=int)
|
| 49 |
+
parser.add_argument("--pretrained_model_name_or_path_vsd", default='', type=str)
|
| 50 |
+
parser.add_argument("--basemodel_path", default='', type=str)
|
| 51 |
+
|
| 52 |
+
# args for the loss function
|
| 53 |
+
parser.add_argument("--gan_disc_type", default="vagan_clip")
|
| 54 |
+
parser.add_argument("--gan_loss_type", default="multilevel_sigmoid_s")
|
| 55 |
+
parser.add_argument("--lambda_gan", default=0.2, type=float)
|
| 56 |
+
parser.add_argument("--lambda_lpips", default=2, type=float)
|
| 57 |
+
parser.add_argument("--lambda_l2", default=1.0, type=float)
|
| 58 |
+
|
| 59 |
+
# dataset options
|
| 60 |
+
parser.add_argument("--dataset_folder", default='', type=str)
|
| 61 |
+
parser.add_argument("--testdataset_folder", default='', type=str)
|
| 62 |
+
parser.add_argument("--train_image_prep", default="resized_crop_512", type=str)
|
| 63 |
+
parser.add_argument("--test_image_prep", default="resized_crop_512", type=str)
|
| 64 |
+
parser.add_argument("--null_text_ratio", default=1., type=float)
|
| 65 |
+
|
| 66 |
+
# validation eval args
|
| 67 |
+
parser.add_argument("--eval_freq", default=500, type=int)
|
| 68 |
+
parser.add_argument("--track_val_fid", default=False, action="store_true")
|
| 69 |
+
parser.add_argument("--num_samples_eval", type=int, default=100, help="Number of samples to use for all evaluation")
|
| 70 |
+
|
| 71 |
+
parser.add_argument("--viz_freq", type=int, default=100, help="Frequency of visualizing the outputs.")
|
| 72 |
+
parser.add_argument("--tracker_project_name", type=str, default="train_pix2pix_turbo", help="The name of the wandb project to log to.")
|
| 73 |
+
parser.add_argument('--tiled_size', type=int, default=768)
|
| 74 |
+
parser.add_argument('--tiled_overlap', type=int, default=256)
|
| 75 |
+
|
| 76 |
+
|
| 77 |
+
# details about the model architecture
|
| 78 |
+
parser.add_argument("--pretrained_model_name_or_path", default='', type=str)
|
| 79 |
+
parser.add_argument("--revision", type=str, default=None,)
|
| 80 |
+
parser.add_argument("--variant", type=str, default=None,)
|
| 81 |
+
parser.add_argument("--cliptextmodule", type=str, default=None,)
|
| 82 |
+
parser.add_argument("--upsampler", type=str, default=None,)
|
| 83 |
+
parser.add_argument("--tokenizer_name", type=str, default=None)
|
| 84 |
+
parser.add_argument("--lora_rank_unet", default=8, type=int)
|
| 85 |
+
parser.add_argument("--lora_rank_unet2", default=0, type=int)
|
| 86 |
+
parser.add_argument("--lora_rank_vae", default=4, type=int)
|
| 87 |
+
parser.add_argument("--time_step", default=999, type=int)
|
| 88 |
+
parser.add_argument("--time_step_noise", default=250, type=int)
|
| 89 |
+
parser.add_argument("--pretrained_path", default=None, type=str)
|
| 90 |
+
parser.add_argument("--pretrained_unet_path", default=None, type=str)
|
| 91 |
+
parser.add_argument("--pretrained_vae_path", default=None, type=str)
|
| 92 |
+
parser.add_argument("--stage2", default=None, type=str)
|
| 93 |
+
parser.add_argument("--stage3", default=None, type=str)
|
| 94 |
+
|
| 95 |
+
|
| 96 |
+
# training details
|
| 97 |
+
parser.add_argument("--output_dir", default='experience/OSSR_vaeEcLora_ntr1_vsd_ntr0_nostage_clip_test')
|
| 98 |
+
parser.add_argument("--cache_dir", default=None,)
|
| 99 |
+
parser.add_argument("--seed", type=int, default=123, help="A seed for reproducible training.")
|
| 100 |
+
parser.add_argument("--resolution", type=int, default=512,)
|
| 101 |
+
parser.add_argument("--train_batch_size", type=int, default=1, help="Batch size (per device) for the training dataloader.")
|
| 102 |
+
parser.add_argument("--num_training_epochs", type=int, default=10)
|
| 103 |
+
parser.add_argument("--max_train_steps", type=int, default=10_000,)
|
| 104 |
+
parser.add_argument("--checkpointing_steps", type=int, default=500,)
|
| 105 |
+
parser.add_argument("--gradient_accumulation_steps", type=int, default=2, help="Number of updates steps to accumulate before performing a backward/update pass.",)
|
| 106 |
+
parser.add_argument("--gradient_checkpointing", action="store_true",)
|
| 107 |
+
parser.add_argument("--learning_rate", type=float, default=5e-5)
|
| 108 |
+
parser.add_argument("--lr_scheduler", type=str, default="constant",
|
| 109 |
+
help=(
|
| 110 |
+
'The scheduler type to use. Choose between ["linear", "cosine", "cosine_with_restarts", "polynomial",'
|
| 111 |
+
' "constant", "constant_with_warmup"]'
|
| 112 |
+
),
|
| 113 |
+
)
|
| 114 |
+
parser.add_argument("--lr_warmup_steps", type=int, default=500, help="Number of steps for the warmup in the lr scheduler.")
|
| 115 |
+
parser.add_argument("--lr_num_cycles", type=int, default=1,
|
| 116 |
+
help="Number of hard resets of the lr in cosine_with_restarts scheduler.",
|
| 117 |
+
)
|
| 118 |
+
parser.add_argument("--lr_power", type=float, default=1.0, help="Power factor of the polynomial scheduler.")
|
| 119 |
+
|
| 120 |
+
parser.add_argument("--dataloader_num_workers", type=int, default=0,)
|
| 121 |
+
parser.add_argument("--adam_beta1", type=float, default=0.9, help="The beta1 parameter for the Adam optimizer.")
|
| 122 |
+
parser.add_argument("--adam_beta2", type=float, default=0.999, help="The beta2 parameter for the Adam optimizer.")
|
| 123 |
+
parser.add_argument("--adam_weight_decay", type=float, default=1e-2, help="Weight decay to use.")
|
| 124 |
+
parser.add_argument("--adam_epsilon", type=float, default=1e-08, help="Epsilon value for the Adam optimizer")
|
| 125 |
+
parser.add_argument("--max_grad_norm", default=1.0, type=float, help="Max gradient norm.")
|
| 126 |
+
parser.add_argument("--ema_decay", type=float, default=0.999, help="EMA decay rate for model parameters.")
|
| 127 |
+
parser.add_argument("--allow_tf32", action="store_true",
|
| 128 |
+
help=(
|
| 129 |
+
"Whether or not to allow TF32 on Ampere GPUs. Can be used to speed up training. For more information, see"
|
| 130 |
+
" https://pytorch.org/docs/stable/notes/cuda.html#tensorfloat-32-tf32-on-ampere-devices"
|
| 131 |
+
),
|
| 132 |
+
)
|
| 133 |
+
parser.add_argument("--report_to", type=str, default="tensorboard",
|
| 134 |
+
help=(
|
| 135 |
+
'The integration to report the results and logs to. Supported platforms are `"tensorboard"`'
|
| 136 |
+
' (default), `"wandb"` and `"comet_ml"`. Use `"all"` to report to all integrations.'
|
| 137 |
+
),
|
| 138 |
+
)
|
| 139 |
+
parser.add_argument("--mixed_precision", type=str, default="fp16", choices=["no", "fp16", "bf16"],)
|
| 140 |
+
parser.add_argument("--enable_xformers_memory_efficient_attention", action="store_true", help="Whether or not to use xformers.")
|
| 141 |
+
parser.add_argument("--set_grads_to_none", action="store_true",)
|
| 142 |
+
|
| 143 |
+
parser.add_argument("--logging_dir", type=str, default="logs")
|
| 144 |
+
parser.add_argument("--use_online_deg", action="store_true",)
|
| 145 |
+
parser.add_argument("--deg_file_path", default="params_pasd.yml", type=str)
|
| 146 |
+
parser.add_argument("--align_method", type=str, choices=['wavelet', 'adain', 'nofix'], default='adain')
|
| 147 |
+
|
| 148 |
+
# vae lora
|
| 149 |
+
parser.add_argument("--use_vae_encode_lora", action="store_true",)
|
| 150 |
+
parser.add_argument("--use_vae_decode_lora", action="store_true",)
|
| 151 |
+
|
| 152 |
+
# use_lr_999noise
|
| 153 |
+
parser.add_argument("--use_lr_999noise", action="store_true",)
|
| 154 |
+
parser.add_argument("--use_lr_concat_lr_999noise", action="store_true",)
|
| 155 |
+
|
| 156 |
+
if input_args is not None:
|
| 157 |
+
args = parser.parse_args(input_args)
|
| 158 |
+
else:
|
| 159 |
+
args = parser.parse_args()
|
| 160 |
+
|
| 161 |
+
# # only for debug
|
| 162 |
+
# args.enable_xformers_memory_efficient_attention = True
|
| 163 |
+
# args.use_online_deg = True
|
| 164 |
+
# args.use_lr_concat_lr_999noise = True
|
| 165 |
+
|
| 166 |
+
return args
|
| 167 |
+
|
| 168 |
+
|
| 169 |
+
def build_transform(image_prep):
|
| 170 |
+
"""
|
| 171 |
+
Constructs a transformation pipeline based on the specified image preparation method.
|
| 172 |
+
|
| 173 |
+
Parameters:
|
| 174 |
+
- image_prep (str): A string describing the desired image preparation
|
| 175 |
+
|
| 176 |
+
Returns:
|
| 177 |
+
- torchvision.transforms.Compose: A composable sequence of transformations to be applied to images.
|
| 178 |
+
"""
|
| 179 |
+
if image_prep == "resized_crop_512":
|
| 180 |
+
T = transforms.Compose([
|
| 181 |
+
transforms.Resize(512, interpolation=transforms.InterpolationMode.LANCZOS),
|
| 182 |
+
transforms.CenterCrop(512),
|
| 183 |
+
])
|
| 184 |
+
elif image_prep == "resize_286_randomcrop_256x256_hflip":
|
| 185 |
+
T = transforms.Compose([
|
| 186 |
+
transforms.Resize((286, 286), interpolation=Image.LANCZOS),
|
| 187 |
+
transforms.RandomCrop((256, 256)),
|
| 188 |
+
transforms.RandomHorizontalFlip(),
|
| 189 |
+
])
|
| 190 |
+
elif image_prep in ["resize_256", "resize_256x256"]:
|
| 191 |
+
T = transforms.Compose([
|
| 192 |
+
transforms.Resize((256, 256), interpolation=Image.LANCZOS)
|
| 193 |
+
])
|
| 194 |
+
elif image_prep in ["resize_512", "resize_512x512"]:
|
| 195 |
+
T = transforms.Compose([
|
| 196 |
+
transforms.Resize((512, 512), interpolation=Image.LANCZOS)
|
| 197 |
+
])
|
| 198 |
+
elif image_prep == "no_resize":
|
| 199 |
+
T = transforms.Lambda(lambda x: x)
|
| 200 |
+
return T
|
| 201 |
+
|
| 202 |
+
|
| 203 |
+
class PairedSROnlineDataset(torch.utils.data.Dataset):
|
| 204 |
+
def __init__(self, dataset_folder, split, image_prep, deg_file_path=None, image_size=512, args=None):
|
| 205 |
+
super().__init__()
|
| 206 |
+
self.split = split
|
| 207 |
+
self.args = args
|
| 208 |
+
clip_mean = [0.48145466, 0.4578275, 0.40821073]
|
| 209 |
+
clip_std = [0.26862954, 0.26130258, 0.27577711]
|
| 210 |
+
self.clip_normalize = transforms.Normalize(mean=clip_mean, std=clip_std)
|
| 211 |
+
|
| 212 |
+
if split == 'train':
|
| 213 |
+
self.gt_folder = os.path.join(dataset_folder, "gt")
|
| 214 |
+
self.gt_list = []
|
| 215 |
+
self.gt_list += glob.glob(os.path.join(self.gt_folder, '*.png'))
|
| 216 |
+
|
| 217 |
+
self.T = build_transform(image_prep)
|
| 218 |
+
self.split = split
|
| 219 |
+
|
| 220 |
+
self.degradation = RealESRGAN_degradation(deg_file_path, device='cpu')
|
| 221 |
+
self.crop_preproc = transforms.Compose([
|
| 222 |
+
transforms.RandomCrop(image_size),
|
| 223 |
+
transforms.RandomHorizontalFlip(),
|
| 224 |
+
])
|
| 225 |
+
elif split == 'test':
|
| 226 |
+
dataset_folder = args.testdataset_folder
|
| 227 |
+
self.input_folder = os.path.join(dataset_folder, "test_SR_bicubic")
|
| 228 |
+
self.output_folder = os.path.join(dataset_folder, "test_HR")
|
| 229 |
+
|
| 230 |
+
self.lr_list = []
|
| 231 |
+
self.gt_list = []
|
| 232 |
+
self.lr_list += glob.glob(os.path.join(self.input_folder, '*.png'))
|
| 233 |
+
self.gt_list += glob.glob(os.path.join(self.output_folder, '*.png'))
|
| 234 |
+
|
| 235 |
+
self.T = build_transform(image_prep)
|
| 236 |
+
self.split = split
|
| 237 |
+
assert len(self.lr_list) == len(self.gt_list)
|
| 238 |
+
|
| 239 |
+
def __len__(self):
|
| 240 |
+
return len(self.gt_list)
|
| 241 |
+
|
| 242 |
+
def __getitem__(self, idx):
|
| 243 |
+
|
| 244 |
+
if self.split == 'train':
|
| 245 |
+
gt_img = Image.open(self.gt_list[idx]).convert('RGB')
|
| 246 |
+
gt_img = self.crop_preproc(gt_img)
|
| 247 |
+
|
| 248 |
+
output_t, img_t, img_t_noresize = self.degradation.degrade_process(np.asarray(gt_img)/255., resize_bak=True)
|
| 249 |
+
output_t_0 = output_t
|
| 250 |
+
output_t, img_t, img_t_noresize = output_t.squeeze(0), img_t.squeeze(0), img_t_noresize.squeeze(0)
|
| 251 |
+
|
| 252 |
+
img_t = F.normalize(img_t, mean=[0.5], std=[0.5])
|
| 253 |
+
img_t_noresize = F.normalize(img_t_noresize, mean=[0.5], std=[0.5])
|
| 254 |
+
# output images scaled to -1,1
|
| 255 |
+
output_t = F.normalize(output_t, mean=[0.5], std=[0.5])
|
| 256 |
+
|
| 257 |
+
#
|
| 258 |
+
output_t_0 = output_t_0.permute(0,2,3,1).contiguous()
|
| 259 |
+
gray_gt1 = 255 * output_t_0.squeeze(0).cpu().numpy()
|
| 260 |
+
gray_gt1 = gray_gt1.astype(np.uint8)
|
| 261 |
+
gray_gt_img_org = cv2.cvtColor(gray_gt1, cv2.COLOR_BGR2GRAY)
|
| 262 |
+
# gray_gt_img_org = cv2.cvtColor(cv2.imread(self.gt_list[idx]), cv2.COLOR_BGR2GRAY)
|
| 263 |
+
gray_gt_img = gray_gt_img_org/255
|
| 264 |
+
complexity_matrix = create_complexity_matrix(gray_gt_img, patch_size=10)
|
| 265 |
+
binary_matrix, fedilty_zero_ratio, detail_one_ratio = binarize_complexity_matrix(complexity_matrix, threshold=50)
|
| 266 |
+
downsampled_edges_mask = extract_and_dilate_edges(gray_gt_img_org, threshold1=100, threshold2=200, dilation_size=3, downscale_factor=8)
|
| 267 |
+
complexity_matrix = torch.tensor(complexity_matrix).unsqueeze(0)
|
| 268 |
+
binary_matrix = torch.tensor(binary_matrix).unsqueeze(0)
|
| 269 |
+
fedilty_zero_ratio = torch.tensor(fedilty_zero_ratio)
|
| 270 |
+
detail_one_ratio = torch.tensor(detail_one_ratio)
|
| 271 |
+
downsampled_edges_mask = torch.tensor(downsampled_edges_mask)
|
| 272 |
+
|
| 273 |
+
return {
|
| 274 |
+
"HR": output_t,
|
| 275 |
+
"LR": img_t,
|
| 276 |
+
"negative_prompt": self.args.negative_prompt,
|
| 277 |
+
'fedilty_ratio': fedilty_zero_ratio,
|
| 278 |
+
'detail_ratio': detail_one_ratio,
|
| 279 |
+
}
|
| 280 |
+
|
| 281 |
+
elif self.split == 'test':
|
| 282 |
+
input_img = Image.open(self.lr_list[idx]).convert('RGB')
|
| 283 |
+
input_img_noresize = Image.open(self.gt_list[idx].replace('test_HR/','test_LR/')).convert('RGB')
|
| 284 |
+
output_img = Image.open(self.gt_list[idx]).convert('RGB')
|
| 285 |
+
|
| 286 |
+
# input images scaled to -1, 1
|
| 287 |
+
img_t = self.T(input_img)
|
| 288 |
+
img_t = F.to_tensor(img_t)
|
| 289 |
+
|
| 290 |
+
img_t_noresize = self.T(input_img_noresize)
|
| 291 |
+
img_t_noresize = F.to_tensor(img_t_noresize)
|
| 292 |
+
|
| 293 |
+
img_t = F.normalize(img_t, mean=[0.5], std=[0.5])
|
| 294 |
+
img_t_noresize = F.normalize(img_t_noresize, mean=[0.5], std=[0.5])
|
| 295 |
+
# output images scaled to -1,1
|
| 296 |
+
output_t = self.T(output_img)
|
| 297 |
+
output_t = F.to_tensor(output_t)
|
| 298 |
+
output_t = F.normalize(output_t, mean=[0.5], std=[0.5])
|
| 299 |
+
|
| 300 |
+
return {
|
| 301 |
+
"HR": output_t,
|
| 302 |
+
"LR": img_t,
|
| 303 |
+
"negative_prompt": self.args.negative_prompt,
|
| 304 |
+
"base_name": os.path.basename(self.lr_list[idx]),
|
| 305 |
+
}
|
GDPOSR/my_utils/wavelet_color_fix.py
ADDED
|
@@ -0,0 +1,119 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
'''
|
| 2 |
+
# --------------------------------------------------------------------------------
|
| 3 |
+
# Color fixed script from Li Yi (https://github.com/pkuliyi2015/sd-webui-stablesr/blob/master/srmodule/colorfix.py)
|
| 4 |
+
# --------------------------------------------------------------------------------
|
| 5 |
+
'''
|
| 6 |
+
|
| 7 |
+
import torch
|
| 8 |
+
from PIL import Image
|
| 9 |
+
from torch import Tensor
|
| 10 |
+
from torch.nn import functional as F
|
| 11 |
+
|
| 12 |
+
from torchvision.transforms import ToTensor, ToPILImage
|
| 13 |
+
|
| 14 |
+
def adain_color_fix(target: Image, source: Image):
|
| 15 |
+
# Convert images to tensors
|
| 16 |
+
to_tensor = ToTensor()
|
| 17 |
+
target_tensor = to_tensor(target).unsqueeze(0)
|
| 18 |
+
source_tensor = to_tensor(source).unsqueeze(0)
|
| 19 |
+
|
| 20 |
+
# Apply adaptive instance normalization
|
| 21 |
+
result_tensor = adaptive_instance_normalization(target_tensor, source_tensor)
|
| 22 |
+
|
| 23 |
+
# Convert tensor back to image
|
| 24 |
+
to_image = ToPILImage()
|
| 25 |
+
result_image = to_image(result_tensor.squeeze(0).clamp_(0.0, 1.0))
|
| 26 |
+
|
| 27 |
+
return result_image
|
| 28 |
+
|
| 29 |
+
def wavelet_color_fix(target: Image, source: Image):
|
| 30 |
+
# Convert images to tensors
|
| 31 |
+
to_tensor = ToTensor()
|
| 32 |
+
target_tensor = to_tensor(target).unsqueeze(0)
|
| 33 |
+
source_tensor = to_tensor(source).unsqueeze(0)
|
| 34 |
+
|
| 35 |
+
# Apply wavelet reconstruction
|
| 36 |
+
result_tensor = wavelet_reconstruction(target_tensor, source_tensor)
|
| 37 |
+
|
| 38 |
+
# Convert tensor back to image
|
| 39 |
+
to_image = ToPILImage()
|
| 40 |
+
result_image = to_image(result_tensor.squeeze(0).clamp_(0.0, 1.0))
|
| 41 |
+
|
| 42 |
+
return result_image
|
| 43 |
+
|
| 44 |
+
def calc_mean_std(feat: Tensor, eps=1e-5):
|
| 45 |
+
"""Calculate mean and std for adaptive_instance_normalization.
|
| 46 |
+
Args:
|
| 47 |
+
feat (Tensor): 4D tensor.
|
| 48 |
+
eps (float): A small value added to the variance to avoid
|
| 49 |
+
divide-by-zero. Default: 1e-5.
|
| 50 |
+
"""
|
| 51 |
+
size = feat.size()
|
| 52 |
+
assert len(size) == 4, 'The input feature should be 4D tensor.'
|
| 53 |
+
b, c = size[:2]
|
| 54 |
+
feat_var = feat.reshape(b, c, -1).var(dim=2) + eps
|
| 55 |
+
feat_std = feat_var.sqrt().reshape(b, c, 1, 1)
|
| 56 |
+
feat_mean = feat.reshape(b, c, -1).mean(dim=2).reshape(b, c, 1, 1)
|
| 57 |
+
return feat_mean, feat_std
|
| 58 |
+
|
| 59 |
+
def adaptive_instance_normalization(content_feat:Tensor, style_feat:Tensor):
|
| 60 |
+
"""Adaptive instance normalization.
|
| 61 |
+
Adjust the reference features to have the similar color and illuminations
|
| 62 |
+
as those in the degradate features.
|
| 63 |
+
Args:
|
| 64 |
+
content_feat (Tensor): The reference feature.
|
| 65 |
+
style_feat (Tensor): The degradate features.
|
| 66 |
+
"""
|
| 67 |
+
size = content_feat.size()
|
| 68 |
+
style_mean, style_std = calc_mean_std(style_feat)
|
| 69 |
+
content_mean, content_std = calc_mean_std(content_feat)
|
| 70 |
+
normalized_feat = (content_feat - content_mean.expand(size)) / content_std.expand(size)
|
| 71 |
+
return normalized_feat * style_std.expand(size) + style_mean.expand(size)
|
| 72 |
+
|
| 73 |
+
def wavelet_blur(image: Tensor, radius: int):
|
| 74 |
+
"""
|
| 75 |
+
Apply wavelet blur to the input tensor.
|
| 76 |
+
"""
|
| 77 |
+
# input shape: (1, 3, H, W)
|
| 78 |
+
# convolution kernel
|
| 79 |
+
kernel_vals = [
|
| 80 |
+
[0.0625, 0.125, 0.0625],
|
| 81 |
+
[0.125, 0.25, 0.125],
|
| 82 |
+
[0.0625, 0.125, 0.0625],
|
| 83 |
+
]
|
| 84 |
+
kernel = torch.tensor(kernel_vals, dtype=image.dtype, device=image.device)
|
| 85 |
+
# add channel dimensions to the kernel to make it a 4D tensor
|
| 86 |
+
kernel = kernel[None, None]
|
| 87 |
+
# repeat the kernel across all input channels
|
| 88 |
+
kernel = kernel.repeat(3, 1, 1, 1)
|
| 89 |
+
image = F.pad(image, (radius, radius, radius, radius), mode='replicate')
|
| 90 |
+
# apply convolution
|
| 91 |
+
output = F.conv2d(image, kernel, groups=3, dilation=radius)
|
| 92 |
+
return output
|
| 93 |
+
|
| 94 |
+
def wavelet_decomposition(image: Tensor, levels=5):
|
| 95 |
+
"""
|
| 96 |
+
Apply wavelet decomposition to the input tensor.
|
| 97 |
+
This function only returns the low frequency & the high frequency.
|
| 98 |
+
"""
|
| 99 |
+
high_freq = torch.zeros_like(image)
|
| 100 |
+
for i in range(levels):
|
| 101 |
+
radius = 2 ** i
|
| 102 |
+
low_freq = wavelet_blur(image, radius)
|
| 103 |
+
high_freq += (image - low_freq)
|
| 104 |
+
image = low_freq
|
| 105 |
+
|
| 106 |
+
return high_freq, low_freq
|
| 107 |
+
|
| 108 |
+
def wavelet_reconstruction(content_feat:Tensor, style_feat:Tensor):
|
| 109 |
+
"""
|
| 110 |
+
Apply wavelet decomposition, so that the content will have the same color as the style.
|
| 111 |
+
"""
|
| 112 |
+
# calculate the wavelet decomposition of the content feature
|
| 113 |
+
content_high_freq, content_low_freq = wavelet_decomposition(content_feat)
|
| 114 |
+
del content_low_freq
|
| 115 |
+
# calculate the wavelet decomposition of the style feature
|
| 116 |
+
style_high_freq, style_low_freq = wavelet_decomposition(style_feat)
|
| 117 |
+
del style_high_freq
|
| 118 |
+
# reconstruct the content feature with the style's high frequency
|
| 119 |
+
return content_high_freq + style_low_freq
|
GDPOSR/train/train_GDPOSR.py
ADDED
|
@@ -0,0 +1,233 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import gc
|
| 3 |
+
import lpips
|
| 4 |
+
import clip
|
| 5 |
+
import numpy as np
|
| 6 |
+
import torch
|
| 7 |
+
import torch.nn.functional as F
|
| 8 |
+
import torch.utils.checkpoint
|
| 9 |
+
import transformers
|
| 10 |
+
from accelerate import Accelerator
|
| 11 |
+
from accelerate.utils import set_seed
|
| 12 |
+
from PIL import Image
|
| 13 |
+
from torchvision import transforms
|
| 14 |
+
from tqdm.auto import tqdm
|
| 15 |
+
import copy
|
| 16 |
+
|
| 17 |
+
import diffusers
|
| 18 |
+
from diffusers.utils.import_utils import is_xformers_available
|
| 19 |
+
from diffusers.optimization import get_scheduler
|
| 20 |
+
|
| 21 |
+
import wandb
|
| 22 |
+
from cleanfid.fid import get_folder_features, build_feature_extractor, fid_from_feats
|
| 23 |
+
import sys
|
| 24 |
+
sys.path.append("GDPOSR")
|
| 25 |
+
from modelfile.GDPOSR import GDPOSR as GDPOSRModel
|
| 26 |
+
from my_utils.training_utils_realsr import parse_args_realsr_training, PairedSROnlineDataset
|
| 27 |
+
|
| 28 |
+
from pathlib import Path
|
| 29 |
+
from accelerate.utils import set_seed, ProjectConfiguration
|
| 30 |
+
from accelerate import DistributedDataParallelKwargs
|
| 31 |
+
|
| 32 |
+
sys.path.append('GDPOSR')
|
| 33 |
+
from GDPOSR.my_utils.wavelet_color_fix import adain_color_fix, wavelet_color_fix
|
| 34 |
+
from diffusers.training_utils import compute_snr
|
| 35 |
+
from diffusers import DDPMScheduler, AutoencoderKL
|
| 36 |
+
from GDPOSR.losses.grpo import AdaptiveReward as RewardFunction
|
| 37 |
+
|
| 38 |
+
from ram.models.ram_lora import ram
|
| 39 |
+
from ram import inference_ram as inference
|
| 40 |
+
|
| 41 |
+
|
| 42 |
+
def main(args):
|
| 43 |
+
logging_dir = Path(args.output_dir, args.logging_dir)
|
| 44 |
+
accelerator_project_config = ProjectConfiguration(project_dir=args.output_dir, logging_dir=logging_dir)
|
| 45 |
+
ddp_kwargs = DistributedDataParallelKwargs(find_unused_parameters=True)
|
| 46 |
+
|
| 47 |
+
accelerator = Accelerator(
|
| 48 |
+
gradient_accumulation_steps=args.gradient_accumulation_steps,
|
| 49 |
+
mixed_precision=args.mixed_precision,
|
| 50 |
+
log_with=args.report_to,
|
| 51 |
+
project_config=accelerator_project_config,
|
| 52 |
+
kwargs_handlers=[ddp_kwargs],
|
| 53 |
+
)
|
| 54 |
+
|
| 55 |
+
if accelerator.is_local_main_process:
|
| 56 |
+
transformers.utils.logging.set_verbosity_warning()
|
| 57 |
+
diffusers.utils.logging.set_verbosity_info()
|
| 58 |
+
else:
|
| 59 |
+
transformers.utils.logging.set_verbosity_error()
|
| 60 |
+
diffusers.utils.logging.set_verbosity_error()
|
| 61 |
+
|
| 62 |
+
if args.seed is not None:
|
| 63 |
+
set_seed(args.seed)
|
| 64 |
+
|
| 65 |
+
if accelerator.is_main_process:
|
| 66 |
+
os.makedirs(os.path.join(args.output_dir, "checkpoints"), exist_ok=True)
|
| 67 |
+
os.makedirs(os.path.join(args.output_dir, "eval"), exist_ok=True)
|
| 68 |
+
|
| 69 |
+
net_pix2pix = GDPOSRModel(args)
|
| 70 |
+
net_pix2pix.set_train()
|
| 71 |
+
|
| 72 |
+
if args.enable_xformers_memory_efficient_attention:
|
| 73 |
+
if is_xformers_available():
|
| 74 |
+
net_pix2pix.unet.enable_xformers_memory_efficient_attention()
|
| 75 |
+
else:
|
| 76 |
+
raise ValueError("xformers is not available, please install it by running `pip install xformers`")
|
| 77 |
+
|
| 78 |
+
if args.gradient_checkpointing:
|
| 79 |
+
net_pix2pix.unet.enable_gradient_checkpointing()
|
| 80 |
+
|
| 81 |
+
if args.allow_tf32:
|
| 82 |
+
torch.backends.cuda.matmul.allow_tf32 = True
|
| 83 |
+
|
| 84 |
+
net_lpips = lpips.LPIPS(net='vgg').cuda()
|
| 85 |
+
net_lpips.requires_grad_(False)
|
| 86 |
+
net_ARF = RewardFunction()
|
| 87 |
+
net_ARF.requires_grad_(False)
|
| 88 |
+
|
| 89 |
+
# # set adapter
|
| 90 |
+
net_pix2pix.unet.set_adapter(['default_encoder', 'default_decoder', 'default_others'])
|
| 91 |
+
|
| 92 |
+
# make the optimizer
|
| 93 |
+
layers_to_opt = []
|
| 94 |
+
for n, _p in net_pix2pix.unet.named_parameters():
|
| 95 |
+
if "lora" in n:
|
| 96 |
+
assert _p.requires_grad
|
| 97 |
+
layers_to_opt.append(_p)
|
| 98 |
+
|
| 99 |
+
optimizer = torch.optim.AdamW(layers_to_opt, lr=args.learning_rate,
|
| 100 |
+
betas=(args.adam_beta1, args.adam_beta2), weight_decay=args.adam_weight_decay,
|
| 101 |
+
eps=args.adam_epsilon,)
|
| 102 |
+
lr_scheduler = get_scheduler(args.lr_scheduler, optimizer=optimizer,
|
| 103 |
+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
|
| 104 |
+
num_training_steps=args.max_train_steps * accelerator.num_processes,
|
| 105 |
+
num_cycles=args.lr_num_cycles, power=args.lr_power,)
|
| 106 |
+
|
| 107 |
+
# make the dataloader
|
| 108 |
+
dataset_train = PairedSROnlineDataset(dataset_folder=args.dataset_folder, image_prep=args.train_image_prep, split="train", deg_file_path=args.deg_file_path, args=args)
|
| 109 |
+
dataset_val = PairedSROnlineDataset(dataset_folder=args.dataset_folder, image_prep=args.test_image_prep, split="test", deg_file_path=args.deg_file_path, args=args)
|
| 110 |
+
dl_train = torch.utils.data.DataLoader(dataset_train, batch_size=args.train_batch_size, shuffle=True, num_workers=args.dataloader_num_workers)
|
| 111 |
+
dl_val = torch.utils.data.DataLoader(dataset_val, batch_size=1, shuffle=False, num_workers=0)
|
| 112 |
+
|
| 113 |
+
# init RAM
|
| 114 |
+
ram_transforms = transforms.Compose([
|
| 115 |
+
transforms.Resize((384, 384)),
|
| 116 |
+
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
|
| 117 |
+
])
|
| 118 |
+
RAM = ram(pretrained='./ckp/ram_swin_large_14m.pth',
|
| 119 |
+
pretrained_condition=None,
|
| 120 |
+
image_size=384,
|
| 121 |
+
vit='swin_l')
|
| 122 |
+
RAM.eval()
|
| 123 |
+
RAM.to("cuda", dtype=torch.float16)
|
| 124 |
+
|
| 125 |
+
# Prepare everything with our `accelerator`.
|
| 126 |
+
net_pix2pix, optimizer, dl_train, lr_scheduler = accelerator.prepare(
|
| 127 |
+
net_pix2pix, optimizer, dl_train, lr_scheduler
|
| 128 |
+
)
|
| 129 |
+
net_lpips, net_ARF = accelerator.prepare(net_lpips, net_ARF)
|
| 130 |
+
# renorm with image net statistics
|
| 131 |
+
weight_dtype = torch.float32
|
| 132 |
+
if accelerator.mixed_precision == "fp16":
|
| 133 |
+
weight_dtype = torch.float16
|
| 134 |
+
elif accelerator.mixed_precision == "bf16":
|
| 135 |
+
weight_dtype = torch.bfloat16
|
| 136 |
+
|
| 137 |
+
# We need to initialize the trackers we use, and also store our configuration.
|
| 138 |
+
# The trackers initializes automatically on the main process.
|
| 139 |
+
if accelerator.is_main_process:
|
| 140 |
+
tracker_config = dict(vars(args))
|
| 141 |
+
accelerator.init_trackers(args.tracker_project_name, config=tracker_config)
|
| 142 |
+
|
| 143 |
+
progress_bar = tqdm(range(0, args.max_train_steps), initial=0, desc="Steps",
|
| 144 |
+
disable=not accelerator.is_local_main_process,)
|
| 145 |
+
|
| 146 |
+
# start the training loop
|
| 147 |
+
global_step = 0
|
| 148 |
+
for epoch in range(0, args.num_training_epochs):
|
| 149 |
+
for step, batch in enumerate(dl_train):
|
| 150 |
+
with accelerator.accumulate(net_pix2pix):
|
| 151 |
+
x_src = batch["LR"]
|
| 152 |
+
x_tgt = batch["HR"]
|
| 153 |
+
fedilty_ratio = batch["fedilty_ratio"]
|
| 154 |
+
detail_ratio = batch["detail_ratio"]
|
| 155 |
+
|
| 156 |
+
B, C, H, W = x_src.shape
|
| 157 |
+
# image description
|
| 158 |
+
x_tgt_ram = ram_transforms(x_tgt*0.5+0.5)
|
| 159 |
+
caption_r = inference(x_tgt_ram.to(dtype=torch.float16), RAM)
|
| 160 |
+
with torch.no_grad():
|
| 161 |
+
positive_prompt = []
|
| 162 |
+
negative_prompt = []
|
| 163 |
+
for i in range(B):
|
| 164 |
+
ram_image = x_tgt[i,:,:,:].unsqueeze(0)
|
| 165 |
+
x_tgt_ram = ram_transforms(ram_image*0.5+0.5)
|
| 166 |
+
caption = inference(x_tgt_ram.to(dtype=torch.float16), RAM)
|
| 167 |
+
positive_prompt.append(f'{caption[0]}, {args.positive_prompt}')
|
| 168 |
+
negative_prompt.append(args.negative_prompt)
|
| 169 |
+
# generate some samples
|
| 170 |
+
if torch.cuda.device_count() > 1:
|
| 171 |
+
sample_images, _, _ = net_pix2pix.module.GDPOReference(x_src, positive_prompt=positive_prompt, negative_prompt=negative_prompt, args=args, groupsize=args.groupsize)
|
| 172 |
+
else:
|
| 173 |
+
sample_images, _, _ = net_pix2pix.GDPOReference(x_src, positive_prompt=positive_prompt, negative_prompt=negative_prompt, args=args, groupsize=args.groupsize)
|
| 174 |
+
# select winning and losing samples:
|
| 175 |
+
x_tgt_re = x_tgt.unsqueeze(1).repeat(1,args.groupsize,1,1,1)
|
| 176 |
+
rewards = net_ARF(sample_images, x_tgt_re, fedilty_ratio, detail_ratio)
|
| 177 |
+
rewards = rewards.cuda()
|
| 178 |
+
b_sample, g_sample, c_sample, h_sample, w_sample = sample_images.shape
|
| 179 |
+
x_src_wl = sample_images.view(b_sample*g_sample, c_sample, h_sample, w_sample)
|
| 180 |
+
ps_wl = []
|
| 181 |
+
nps_wl = []
|
| 182 |
+
for i in range(args.groupsize):
|
| 183 |
+
ps_wl += positive_prompt
|
| 184 |
+
nps_wl += negative_prompt
|
| 185 |
+
# forward pass
|
| 186 |
+
x_tgt_pred, latents_pred, model_pred, prompt_embeds, neg_prompt_embeds, noise, ref_output_image, ref_x_denoised, ref_model_pred = net_pix2pix(x_src_wl, positive_prompt=ps_wl, negative_prompt=nps_wl, args=args)
|
| 187 |
+
# GDPO
|
| 188 |
+
model_losses = (model_pred - noise).pow(2).mean(dim=[1,2,3])
|
| 189 |
+
# b_model, c_model, h_model, w_model = model_losses.shape
|
| 190 |
+
model_losses = model_losses.view(b_sample, g_sample)
|
| 191 |
+
model_losses = rewards * model_losses
|
| 192 |
+
model_diff = model_losses.sum(1)
|
| 193 |
+
# model_losses_w, model_losses_l = model_losses.chunk(2)
|
| 194 |
+
ref_losses = (ref_model_pred - noise).pow(2).mean(dim=[1,2,3])
|
| 195 |
+
ref_losses = ref_losses.view(b_sample, g_sample)
|
| 196 |
+
ref_losses = rewards * ref_losses
|
| 197 |
+
ref_diff = ref_losses.sum(1)
|
| 198 |
+
scale_term = -0.5 * 5000
|
| 199 |
+
inside_term = scale_term * (model_diff - ref_diff)
|
| 200 |
+
implicit_acc = (inside_term > 0).sum().float() / inside_term.size(0)
|
| 201 |
+
gdpo_loss = -1 * F.logsigmoid(inside_term).mean()
|
| 202 |
+
loss = gdpo_loss
|
| 203 |
+
|
| 204 |
+
accelerator.backward(loss)
|
| 205 |
+
if accelerator.sync_gradients:
|
| 206 |
+
accelerator.clip_grad_norm_(layers_to_opt, args.max_grad_norm)
|
| 207 |
+
optimizer.step()
|
| 208 |
+
lr_scheduler.step()
|
| 209 |
+
optimizer.zero_grad(set_to_none=args.set_grads_to_none)
|
| 210 |
+
|
| 211 |
+
|
| 212 |
+
# Checks if the accelerator has performed an optimization step behind the scenes
|
| 213 |
+
if accelerator.sync_gradients:
|
| 214 |
+
progress_bar.update(1)
|
| 215 |
+
global_step += 1
|
| 216 |
+
|
| 217 |
+
if accelerator.is_main_process:
|
| 218 |
+
logs = {}
|
| 219 |
+
# log all the losses
|
| 220 |
+
logs["loss"] = gdpo_loss.detach().item()
|
| 221 |
+
progress_bar.set_postfix(**logs)
|
| 222 |
+
|
| 223 |
+
# checkpoint the model
|
| 224 |
+
if global_step % args.checkpointing_steps == 1:
|
| 225 |
+
outf = os.path.join(args.output_dir, "checkpoints", f"model_{global_step}.pkl")
|
| 226 |
+
accelerator.unwrap_model(net_pix2pix).save_model(outf)
|
| 227 |
+
|
| 228 |
+
accelerator.log(logs, step=global_step)
|
| 229 |
+
|
| 230 |
+
|
| 231 |
+
if __name__ == "__main__":
|
| 232 |
+
args = parse_args_realsr_training()
|
| 233 |
+
main(args)
|
GDPOSR/train/train_NAOSD.py
ADDED
|
@@ -0,0 +1,256 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import gc
|
| 3 |
+
import lpips
|
| 4 |
+
import clip
|
| 5 |
+
import numpy as np
|
| 6 |
+
import torch
|
| 7 |
+
import torch.nn.functional as F
|
| 8 |
+
import torch.utils.checkpoint
|
| 9 |
+
import transformers
|
| 10 |
+
from accelerate import Accelerator
|
| 11 |
+
from accelerate.utils import set_seed
|
| 12 |
+
from PIL import Image
|
| 13 |
+
from torchvision import transforms
|
| 14 |
+
from tqdm.auto import tqdm
|
| 15 |
+
import copy
|
| 16 |
+
|
| 17 |
+
import diffusers
|
| 18 |
+
from diffusers.utils.import_utils import is_xformers_available
|
| 19 |
+
from diffusers.optimization import get_scheduler
|
| 20 |
+
|
| 21 |
+
import wandb
|
| 22 |
+
from cleanfid.fid import get_folder_features, build_feature_extractor, fid_from_feats
|
| 23 |
+
import sys
|
| 24 |
+
sys.path.append("GDPOSR")
|
| 25 |
+
from modelfile.GDPOSR import VSD, NAOSD
|
| 26 |
+
from my_utils.training_utils_realsr import parse_args_realsr_training, PairedSROnlineDataset
|
| 27 |
+
|
| 28 |
+
from pathlib import Path
|
| 29 |
+
from accelerate.utils import set_seed, ProjectConfiguration
|
| 30 |
+
from accelerate import DistributedDataParallelKwargs
|
| 31 |
+
|
| 32 |
+
sys.path.append('GDPOSR')
|
| 33 |
+
from GDPOSR.my_utils.wavelet_color_fix import adain_color_fix, wavelet_color_fix
|
| 34 |
+
from diffusers.training_utils import compute_snr
|
| 35 |
+
from diffusers import DDPMScheduler, AutoencoderKL
|
| 36 |
+
|
| 37 |
+
from ram.models.ram_lora import ram
|
| 38 |
+
from ram import inference_ram as inference
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def main(args):
|
| 42 |
+
logging_dir = Path(args.output_dir, args.logging_dir)
|
| 43 |
+
accelerator_project_config = ProjectConfiguration(project_dir=args.output_dir, logging_dir=logging_dir)
|
| 44 |
+
ddp_kwargs = DistributedDataParallelKwargs(find_unused_parameters=True)
|
| 45 |
+
|
| 46 |
+
accelerator = Accelerator(
|
| 47 |
+
gradient_accumulation_steps=args.gradient_accumulation_steps,
|
| 48 |
+
mixed_precision=args.mixed_precision,
|
| 49 |
+
log_with=args.report_to,
|
| 50 |
+
project_config=accelerator_project_config,
|
| 51 |
+
kwargs_handlers=[ddp_kwargs],
|
| 52 |
+
)
|
| 53 |
+
|
| 54 |
+
if accelerator.is_local_main_process:
|
| 55 |
+
transformers.utils.logging.set_verbosity_warning()
|
| 56 |
+
diffusers.utils.logging.set_verbosity_info()
|
| 57 |
+
else:
|
| 58 |
+
transformers.utils.logging.set_verbosity_error()
|
| 59 |
+
diffusers.utils.logging.set_verbosity_error()
|
| 60 |
+
|
| 61 |
+
if args.seed is not None:
|
| 62 |
+
set_seed(args.seed)
|
| 63 |
+
|
| 64 |
+
if accelerator.is_main_process:
|
| 65 |
+
os.makedirs(os.path.join(args.output_dir, "checkpoints"), exist_ok=True)
|
| 66 |
+
os.makedirs(os.path.join(args.output_dir, "eval"), exist_ok=True)
|
| 67 |
+
|
| 68 |
+
net_pix2pix = NAOSD(args)
|
| 69 |
+
net_pix2pix.set_train()
|
| 70 |
+
|
| 71 |
+
if args.enable_xformers_memory_efficient_attention:
|
| 72 |
+
if is_xformers_available():
|
| 73 |
+
net_pix2pix.unet.enable_xformers_memory_efficient_attention()
|
| 74 |
+
else:
|
| 75 |
+
raise ValueError("xformers is not available, please install it by running `pip install xformers`")
|
| 76 |
+
|
| 77 |
+
if args.gradient_checkpointing:
|
| 78 |
+
net_pix2pix.unet.enable_gradient_checkpointing()
|
| 79 |
+
|
| 80 |
+
if args.allow_tf32:
|
| 81 |
+
torch.backends.cuda.matmul.allow_tf32 = True
|
| 82 |
+
|
| 83 |
+
# init vsd model
|
| 84 |
+
net_disc = VSD(args=args, accelerator=accelerator)
|
| 85 |
+
net_disc.set_train()
|
| 86 |
+
|
| 87 |
+
net_lpips = lpips.LPIPS(net='vgg').cuda()
|
| 88 |
+
net_lpips.requires_grad_(False)
|
| 89 |
+
|
| 90 |
+
# # set adapter
|
| 91 |
+
if args.use_vae_encode_lora and (not args.use_vae_decode_lora):
|
| 92 |
+
print('==== Use Lora at VAE Encoder ====')
|
| 93 |
+
net_pix2pix.vae.set_adapter(['default_encoder'])
|
| 94 |
+
elif (not args.use_vae_encode_lora) and args.use_vae_decode_lora:
|
| 95 |
+
print('==== Use Lora at VAE Decoder ====')
|
| 96 |
+
net_pix2pix.vae.set_adapter(['default_decoder'])
|
| 97 |
+
elif args.use_vae_encode_lora and args.use_vae_decode_lora:
|
| 98 |
+
print('==== Use Lora at VAE En&Decoder ====')
|
| 99 |
+
net_pix2pix.vae.set_adapter(['default_encoder', 'default_decoder'])
|
| 100 |
+
else:
|
| 101 |
+
print('==== Use Fix VAE ====')
|
| 102 |
+
net_pix2pix.vae.disable_adapters()
|
| 103 |
+
net_pix2pix.unet.set_adapter(['default_encoder', 'default_decoder', 'default_others'])
|
| 104 |
+
|
| 105 |
+
# make the optimizer
|
| 106 |
+
layers_to_opt = []
|
| 107 |
+
for n, _p in net_pix2pix.unet.named_parameters():
|
| 108 |
+
if "lora" in n:
|
| 109 |
+
assert _p.requires_grad
|
| 110 |
+
layers_to_opt.append(_p)
|
| 111 |
+
layers_to_opt += list(net_pix2pix.unet.conv_in.parameters())
|
| 112 |
+
for n, _p in net_pix2pix.vae.named_parameters():
|
| 113 |
+
if "lora" in n:
|
| 114 |
+
# assert _p.requires_grad
|
| 115 |
+
layers_to_opt.append(_p)
|
| 116 |
+
|
| 117 |
+
optimizer = torch.optim.AdamW(layers_to_opt, lr=args.learning_rate,
|
| 118 |
+
betas=(args.adam_beta1, args.adam_beta2), weight_decay=args.adam_weight_decay,
|
| 119 |
+
eps=args.adam_epsilon,)
|
| 120 |
+
lr_scheduler = get_scheduler(args.lr_scheduler, optimizer=optimizer,
|
| 121 |
+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
|
| 122 |
+
num_training_steps=args.max_train_steps * accelerator.num_processes,
|
| 123 |
+
num_cycles=args.lr_num_cycles, power=args.lr_power,)
|
| 124 |
+
|
| 125 |
+
layers_to_opt_disc = []
|
| 126 |
+
for n, _p in net_disc.unet_update.named_parameters():
|
| 127 |
+
if "lora" in n:
|
| 128 |
+
assert _p.requires_grad
|
| 129 |
+
layers_to_opt_disc.append(_p)
|
| 130 |
+
optimizer_disc = torch.optim.AdamW(layers_to_opt_disc, lr=args.learning_rate,
|
| 131 |
+
betas=(args.adam_beta1, args.adam_beta2), weight_decay=args.adam_weight_decay,
|
| 132 |
+
eps=args.adam_epsilon,)
|
| 133 |
+
lr_scheduler_disc = get_scheduler(args.lr_scheduler, optimizer=optimizer_disc,
|
| 134 |
+
num_warmup_steps=args.lr_warmup_steps * accelerator.num_processes,
|
| 135 |
+
num_training_steps=args.max_train_steps * accelerator.num_processes,
|
| 136 |
+
num_cycles=args.lr_num_cycles, power=args.lr_power)
|
| 137 |
+
|
| 138 |
+
# make the dataloader
|
| 139 |
+
dataset_train = PairedSROnlineDataset(dataset_folder=args.dataset_folder, image_prep=args.train_image_prep, split="train", deg_file_path=args.deg_file_path, args=args)
|
| 140 |
+
dataset_val = PairedSROnlineDataset(dataset_folder=args.dataset_folder, image_prep=args.test_image_prep, split="test", deg_file_path=args.deg_file_path, args=args)
|
| 141 |
+
dl_train = torch.utils.data.DataLoader(dataset_train, batch_size=args.train_batch_size, shuffle=True, num_workers=args.dataloader_num_workers)
|
| 142 |
+
dl_val = torch.utils.data.DataLoader(dataset_val, batch_size=1, shuffle=False, num_workers=0)
|
| 143 |
+
|
| 144 |
+
# init RAM
|
| 145 |
+
ram_transforms = transforms.Compose([
|
| 146 |
+
transforms.Resize((384, 384)),
|
| 147 |
+
transforms.Normalize(mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
|
| 148 |
+
])
|
| 149 |
+
RAM = ram(pretrained='./ckp/ram_swin_large_14m.pth',
|
| 150 |
+
pretrained_condition=None,
|
| 151 |
+
image_size=384,
|
| 152 |
+
vit='swin_l')
|
| 153 |
+
RAM.eval()
|
| 154 |
+
RAM.to("cuda", dtype=torch.float16)
|
| 155 |
+
|
| 156 |
+
# Prepare everything with our `accelerator`.
|
| 157 |
+
net_pix2pix, net_disc, optimizer, optimizer_disc, dl_train, lr_scheduler, lr_scheduler_disc = accelerator.prepare(
|
| 158 |
+
net_pix2pix, net_disc, optimizer, optimizer_disc, dl_train, lr_scheduler, lr_scheduler_disc
|
| 159 |
+
)
|
| 160 |
+
net_lpips = accelerator.prepare(net_lpips)
|
| 161 |
+
# renorm with image net statistics
|
| 162 |
+
weight_dtype = torch.float32
|
| 163 |
+
if accelerator.mixed_precision == "fp16":
|
| 164 |
+
weight_dtype = torch.float16
|
| 165 |
+
elif accelerator.mixed_precision == "bf16":
|
| 166 |
+
weight_dtype = torch.bfloat16
|
| 167 |
+
|
| 168 |
+
# We need to initialize the trackers we use, and also store our configuration.
|
| 169 |
+
# The trackers initializes automatically on the main process.
|
| 170 |
+
if accelerator.is_main_process:
|
| 171 |
+
tracker_config = dict(vars(args))
|
| 172 |
+
accelerator.init_trackers(args.tracker_project_name, config=tracker_config)
|
| 173 |
+
|
| 174 |
+
progress_bar = tqdm(range(0, args.max_train_steps), initial=0, desc="Steps",
|
| 175 |
+
disable=not accelerator.is_local_main_process,)
|
| 176 |
+
|
| 177 |
+
# start the training loop
|
| 178 |
+
global_step = 0
|
| 179 |
+
for epoch in range(0, args.num_training_epochs):
|
| 180 |
+
for step, batch in enumerate(dl_train):
|
| 181 |
+
l_acc = [net_pix2pix, net_disc]
|
| 182 |
+
with accelerator.accumulate(*l_acc):
|
| 183 |
+
x_src = batch["LR"]
|
| 184 |
+
x_tgt = batch["HR"]
|
| 185 |
+
B, C, H, W = x_src.shape
|
| 186 |
+
# image description
|
| 187 |
+
x_tgt_ram = ram_transforms(x_tgt*0.5+0.5)
|
| 188 |
+
caption_r = inference(x_tgt_ram.to(dtype=torch.float16), RAM)
|
| 189 |
+
with torch.no_grad():
|
| 190 |
+
positive_prompt = []
|
| 191 |
+
negative_prompt = []
|
| 192 |
+
for i in range(B):
|
| 193 |
+
ram_image = x_tgt[i,:,:,:].unsqueeze(0)
|
| 194 |
+
x_tgt_ram = ram_transforms(ram_image*0.5+0.5)
|
| 195 |
+
caption = inference(x_tgt_ram.to(dtype=torch.float16), RAM)
|
| 196 |
+
positive_prompt.append(f'{caption[0]}, {args.positive_prompt}')
|
| 197 |
+
negative_prompt.append(args.negative_prompt)
|
| 198 |
+
# forward pass
|
| 199 |
+
x_tgt_pred, latents_pred, prompt_embeds, neg_prompt_embeds, noise = net_pix2pix(x_src, positive_prompt=positive_prompt, negative_prompt=negative_prompt, args=args)
|
| 200 |
+
# Reconstruction loss
|
| 201 |
+
loss_l2 = F.mse_loss(x_tgt_pred.float(), x_tgt.float(), reduction="mean") * args.lambda_l2
|
| 202 |
+
loss_lpips = net_lpips(x_tgt_pred.float(), x_tgt.float()).mean() * args.lambda_lpips
|
| 203 |
+
loss = loss_l2 + loss_lpips
|
| 204 |
+
# KL loss
|
| 205 |
+
if torch.cuda.device_count() > 1:
|
| 206 |
+
loss_kl = net_disc.module.distribution_matching_loss(net_disc.module.unet_fix, net_disc.module.unet_update, net_disc.module.sched, latents_pred, prompt_embeds, neg_prompt_embeds, args, ) * args.lambda_vsd
|
| 207 |
+
else:
|
| 208 |
+
loss_kl = net_disc.distribution_matching_loss(net_disc.unet_fix, net_disc.unet_update, net_disc.sched, latents_pred, prompt_embeds, neg_prompt_embeds, args, ) * args.lambda_vsd
|
| 209 |
+
loss = loss + loss_kl
|
| 210 |
+
accelerator.backward(loss)
|
| 211 |
+
if accelerator.sync_gradients:
|
| 212 |
+
accelerator.clip_grad_norm_(layers_to_opt, args.max_grad_norm)
|
| 213 |
+
optimizer.step()
|
| 214 |
+
lr_scheduler.step()
|
| 215 |
+
optimizer.zero_grad(set_to_none=args.set_grads_to_none)
|
| 216 |
+
|
| 217 |
+
"""
|
| 218 |
+
Disc loss: let lora model closed to generator
|
| 219 |
+
"""
|
| 220 |
+
if torch.cuda.device_count() > 1:
|
| 221 |
+
loss_d = net_disc.module.compute_lora_loss(latents_pred, prompt_embeds, args)*args.lambda_vsd_lora
|
| 222 |
+
else:
|
| 223 |
+
loss_d = net_disc.compute_lora_loss(latents_pred, prompt_embeds, args)*args.lambda_vsd_lora
|
| 224 |
+
accelerator.backward(loss_d)
|
| 225 |
+
if accelerator.sync_gradients:
|
| 226 |
+
accelerator.clip_grad_norm_(net_disc.parameters(), args.max_grad_norm)
|
| 227 |
+
optimizer_disc.step()
|
| 228 |
+
lr_scheduler_disc.step()
|
| 229 |
+
optimizer_disc.zero_grad(set_to_none=args.set_grads_to_none)
|
| 230 |
+
|
| 231 |
+
# Checks if the accelerator has performed an optimization step behind the scenes
|
| 232 |
+
if accelerator.sync_gradients:
|
| 233 |
+
progress_bar.update(1)
|
| 234 |
+
global_step += 1
|
| 235 |
+
|
| 236 |
+
if accelerator.is_main_process:
|
| 237 |
+
logs = {}
|
| 238 |
+
# log all the losses
|
| 239 |
+
logs["loss_d"] = loss_d.detach().item()
|
| 240 |
+
logs["loss_kl"] = loss_kl.detach().item()
|
| 241 |
+
logs["loss_l2"] = loss_l2.detach().item()
|
| 242 |
+
logs["loss_lpips"] = loss_lpips.detach().item()
|
| 243 |
+
progress_bar.set_postfix(**logs)
|
| 244 |
+
|
| 245 |
+
# checkpoint the model
|
| 246 |
+
if global_step % args.checkpointing_steps == 1:
|
| 247 |
+
outf = os.path.join(args.output_dir, "checkpoints", f"model_{global_step}.pkl")
|
| 248 |
+
accelerator.unwrap_model(net_pix2pix).save_model(outf)
|
| 249 |
+
|
| 250 |
+
|
| 251 |
+
accelerator.log(logs, step=global_step)
|
| 252 |
+
|
| 253 |
+
|
| 254 |
+
if __name__ == "__main__":
|
| 255 |
+
args = parse_args_realsr_training()
|
| 256 |
+
main(args)
|
ram/__init__.py
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from .inference import inference_tag2text, inference_ram, inference_ram_openset
|
| 2 |
+
from .transform import get_transform
|
ram/configs/condition_config.json
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"nf": 64
|
| 3 |
+
}
|
ram/configs/med_config.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"BertModel"
|
| 4 |
+
],
|
| 5 |
+
"attention_probs_dropout_prob": 0.1,
|
| 6 |
+
"hidden_act": "gelu",
|
| 7 |
+
"hidden_dropout_prob": 0.1,
|
| 8 |
+
"hidden_size": 768,
|
| 9 |
+
"initializer_range": 0.02,
|
| 10 |
+
"intermediate_size": 3072,
|
| 11 |
+
"layer_norm_eps": 1e-12,
|
| 12 |
+
"max_position_embeddings": 512,
|
| 13 |
+
"model_type": "bert",
|
| 14 |
+
"num_attention_heads": 12,
|
| 15 |
+
"num_hidden_layers": 12,
|
| 16 |
+
"pad_token_id": 0,
|
| 17 |
+
"type_vocab_size": 2,
|
| 18 |
+
"vocab_size": 30524,
|
| 19 |
+
"encoder_width": 768,
|
| 20 |
+
"add_cross_attention": true
|
| 21 |
+
}
|
ram/configs/q2l_config.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"architectures": [
|
| 3 |
+
"BertModel"
|
| 4 |
+
],
|
| 5 |
+
"attention_probs_dropout_prob": 0.1,
|
| 6 |
+
"hidden_act": "gelu",
|
| 7 |
+
"hidden_dropout_prob": 0.1,
|
| 8 |
+
"hidden_size": 768,
|
| 9 |
+
"initializer_range": 0.02,
|
| 10 |
+
"intermediate_size": 3072,
|
| 11 |
+
"layer_norm_eps": 1e-12,
|
| 12 |
+
"max_position_embeddings": 512,
|
| 13 |
+
"model_type": "bert",
|
| 14 |
+
"num_attention_heads": 4,
|
| 15 |
+
"num_hidden_layers": 2,
|
| 16 |
+
"pad_token_id": 0,
|
| 17 |
+
"type_vocab_size": 2,
|
| 18 |
+
"vocab_size": 30522,
|
| 19 |
+
"encoder_width": 768,
|
| 20 |
+
"add_cross_attention": true,
|
| 21 |
+
"add_tag_cross_attention": false
|
| 22 |
+
}
|
ram/configs/swin/config_swinB_384.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"ckpt": "pretrain_model/swin_base_patch4_window7_224_22k.pth",
|
| 3 |
+
"vision_width": 1024,
|
| 4 |
+
"image_res": 384,
|
| 5 |
+
"window_size": 12,
|
| 6 |
+
"embed_dim": 128,
|
| 7 |
+
"depths": [ 2, 2, 18, 2 ],
|
| 8 |
+
"num_heads": [ 4, 8, 16, 32 ]
|
| 9 |
+
}
|
ram/configs/swin/config_swinL_384.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"ckpt": "pretrain_model/swin_large_patch4_window12_384_22k.pth",
|
| 3 |
+
"vision_width": 1536,
|
| 4 |
+
"image_res": 384,
|
| 5 |
+
"window_size": 12,
|
| 6 |
+
"embed_dim": 192,
|
| 7 |
+
"depths": [ 2, 2, 18, 2 ],
|
| 8 |
+
"num_heads": [ 6, 12, 24, 48 ]
|
| 9 |
+
}
|
ram/configs/swin/config_swinL_444.json
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"ckpt": "pretrain_model/swin_large_patch4_window12_384_22k.pth",
|
| 3 |
+
"vision_width": 1536,
|
| 4 |
+
"image_res": 444,
|
| 5 |
+
"window_size": 12,
|
| 6 |
+
"embed_dim": 192,
|
| 7 |
+
"depths": [ 2, 2, 18, 2 ],
|
| 8 |
+
"num_heads": [ 6, 12, 24, 48 ]
|
| 9 |
+
}
|
ram/data/ram_tag_list.txt
ADDED
|
@@ -0,0 +1,4585 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
3D CG rendering
|
| 2 |
+
3D glasses
|
| 3 |
+
abacus
|
| 4 |
+
abalone
|
| 5 |
+
monastery
|
| 6 |
+
belly
|
| 7 |
+
academy
|
| 8 |
+
accessory
|
| 9 |
+
accident
|
| 10 |
+
accordion
|
| 11 |
+
acorn
|
| 12 |
+
acrylic paint
|
| 13 |
+
act
|
| 14 |
+
action
|
| 15 |
+
action film
|
| 16 |
+
activity
|
| 17 |
+
actor
|
| 18 |
+
adaptation
|
| 19 |
+
add
|
| 20 |
+
adhesive tape
|
| 21 |
+
adjust
|
| 22 |
+
adult
|
| 23 |
+
adventure
|
| 24 |
+
advertisement
|
| 25 |
+
antenna
|
| 26 |
+
aerobics
|
| 27 |
+
spray can
|
| 28 |
+
afro
|
| 29 |
+
agriculture
|
| 30 |
+
aid
|
| 31 |
+
air conditioner
|
| 32 |
+
air conditioning
|
| 33 |
+
air sock
|
| 34 |
+
aircraft cabin
|
| 35 |
+
aircraft model
|
| 36 |
+
air field
|
| 37 |
+
air line
|
| 38 |
+
airliner
|
| 39 |
+
airman
|
| 40 |
+
plane
|
| 41 |
+
airplane window
|
| 42 |
+
airport
|
| 43 |
+
airport runway
|
| 44 |
+
airport terminal
|
| 45 |
+
airship
|
| 46 |
+
airshow
|
| 47 |
+
aisle
|
| 48 |
+
alarm
|
| 49 |
+
alarm clock
|
| 50 |
+
mollymawk
|
| 51 |
+
album
|
| 52 |
+
album cover
|
| 53 |
+
alcohol
|
| 54 |
+
alcove
|
| 55 |
+
algae
|
| 56 |
+
alley
|
| 57 |
+
almond
|
| 58 |
+
aloe vera
|
| 59 |
+
alp
|
| 60 |
+
alpaca
|
| 61 |
+
alphabet
|
| 62 |
+
german shepherd
|
| 63 |
+
altar
|
| 64 |
+
amber
|
| 65 |
+
ambulance
|
| 66 |
+
bald eagle
|
| 67 |
+
American shorthair
|
| 68 |
+
amethyst
|
| 69 |
+
amphitheater
|
| 70 |
+
amplifier
|
| 71 |
+
amusement park
|
| 72 |
+
amusement ride
|
| 73 |
+
anchor
|
| 74 |
+
ancient
|
| 75 |
+
anemone
|
| 76 |
+
angel
|
| 77 |
+
angle
|
| 78 |
+
animal
|
| 79 |
+
animal sculpture
|
| 80 |
+
animal shelter
|
| 81 |
+
animation
|
| 82 |
+
animation film
|
| 83 |
+
animator
|
| 84 |
+
anime
|
| 85 |
+
ankle
|
| 86 |
+
anklet
|
| 87 |
+
anniversary
|
| 88 |
+
trench coat
|
| 89 |
+
ant
|
| 90 |
+
antelope
|
| 91 |
+
antique
|
| 92 |
+
antler
|
| 93 |
+
anvil
|
| 94 |
+
apartment
|
| 95 |
+
ape
|
| 96 |
+
app
|
| 97 |
+
app icon
|
| 98 |
+
appear
|
| 99 |
+
appearance
|
| 100 |
+
appetizer
|
| 101 |
+
applause
|
| 102 |
+
apple
|
| 103 |
+
apple juice
|
| 104 |
+
apple pie
|
| 105 |
+
apple tree
|
| 106 |
+
applesauce
|
| 107 |
+
appliance
|
| 108 |
+
appointment
|
| 109 |
+
approach
|
| 110 |
+
apricot
|
| 111 |
+
apron
|
| 112 |
+
aqua
|
| 113 |
+
aquarium
|
| 114 |
+
aquarium fish
|
| 115 |
+
aqueduct
|
| 116 |
+
arcade
|
| 117 |
+
arcade machine
|
| 118 |
+
arch
|
| 119 |
+
arch bridge
|
| 120 |
+
archaelogical excavation
|
| 121 |
+
archery
|
| 122 |
+
archipelago
|
| 123 |
+
architect
|
| 124 |
+
architecture
|
| 125 |
+
archive
|
| 126 |
+
archway
|
| 127 |
+
area
|
| 128 |
+
arena
|
| 129 |
+
argument
|
| 130 |
+
arm
|
| 131 |
+
armadillo
|
| 132 |
+
armband
|
| 133 |
+
armchair
|
| 134 |
+
armoire
|
| 135 |
+
armor
|
| 136 |
+
army
|
| 137 |
+
army base
|
| 138 |
+
army tank
|
| 139 |
+
array
|
| 140 |
+
arrest
|
| 141 |
+
arrow
|
| 142 |
+
art
|
| 143 |
+
art exhibition
|
| 144 |
+
art gallery
|
| 145 |
+
art print
|
| 146 |
+
art school
|
| 147 |
+
art studio
|
| 148 |
+
art vector illustration
|
| 149 |
+
artichoke
|
| 150 |
+
article
|
| 151 |
+
artifact
|
| 152 |
+
artist
|
| 153 |
+
artists loft
|
| 154 |
+
ash
|
| 155 |
+
ashtray
|
| 156 |
+
asia temple
|
| 157 |
+
asparagus
|
| 158 |
+
asphalt road
|
| 159 |
+
assemble
|
| 160 |
+
assembly
|
| 161 |
+
assembly line
|
| 162 |
+
association
|
| 163 |
+
astronaut
|
| 164 |
+
astronomer
|
| 165 |
+
athlete
|
| 166 |
+
athletic
|
| 167 |
+
atlas
|
| 168 |
+
atm
|
| 169 |
+
atmosphere
|
| 170 |
+
atrium
|
| 171 |
+
attach
|
| 172 |
+
fighter jet
|
| 173 |
+
attend
|
| 174 |
+
attraction
|
| 175 |
+
atv
|
| 176 |
+
eggplant
|
| 177 |
+
auction
|
| 178 |
+
audi
|
| 179 |
+
audio
|
| 180 |
+
auditorium
|
| 181 |
+
aurora
|
| 182 |
+
author
|
| 183 |
+
auto factory
|
| 184 |
+
auto mechanic
|
| 185 |
+
auto part
|
| 186 |
+
auto show
|
| 187 |
+
auto showroom
|
| 188 |
+
car battery
|
| 189 |
+
automobile make
|
| 190 |
+
automobile model
|
| 191 |
+
motor vehicle
|
| 192 |
+
autumn
|
| 193 |
+
autumn forest
|
| 194 |
+
autumn leave
|
| 195 |
+
autumn park
|
| 196 |
+
autumn tree
|
| 197 |
+
avatar
|
| 198 |
+
avenue
|
| 199 |
+
aviator sunglasses
|
| 200 |
+
avocado
|
| 201 |
+
award
|
| 202 |
+
award ceremony
|
| 203 |
+
award winner
|
| 204 |
+
shed
|
| 205 |
+
ax
|
| 206 |
+
azalea
|
| 207 |
+
baboon
|
| 208 |
+
baby
|
| 209 |
+
baby bottle
|
| 210 |
+
baby carriage
|
| 211 |
+
baby clothe
|
| 212 |
+
baby elephant
|
| 213 |
+
baby food
|
| 214 |
+
baby seat
|
| 215 |
+
baby shower
|
| 216 |
+
back
|
| 217 |
+
backdrop
|
| 218 |
+
backlight
|
| 219 |
+
backpack
|
| 220 |
+
backyard
|
| 221 |
+
bacon
|
| 222 |
+
badge
|
| 223 |
+
badger
|
| 224 |
+
badlands
|
| 225 |
+
badminton
|
| 226 |
+
badminton racket
|
| 227 |
+
bag
|
| 228 |
+
bagel
|
| 229 |
+
bagpipe
|
| 230 |
+
baguette
|
| 231 |
+
bait
|
| 232 |
+
baked goods
|
| 233 |
+
baker
|
| 234 |
+
bakery
|
| 235 |
+
baking
|
| 236 |
+
baking sheet
|
| 237 |
+
balance
|
| 238 |
+
balance car
|
| 239 |
+
balcony
|
| 240 |
+
ball
|
| 241 |
+
ball pit
|
| 242 |
+
ballerina
|
| 243 |
+
ballet
|
| 244 |
+
ballet dancer
|
| 245 |
+
ballet skirt
|
| 246 |
+
balloon
|
| 247 |
+
balloon arch
|
| 248 |
+
baseball player
|
| 249 |
+
ballroom
|
| 250 |
+
bamboo
|
| 251 |
+
bamboo forest
|
| 252 |
+
banana
|
| 253 |
+
banana bread
|
| 254 |
+
banana leaf
|
| 255 |
+
banana tree
|
| 256 |
+
band
|
| 257 |
+
band aid
|
| 258 |
+
bandage
|
| 259 |
+
headscarf
|
| 260 |
+
bandeau
|
| 261 |
+
bangs
|
| 262 |
+
bracelet
|
| 263 |
+
balustrade
|
| 264 |
+
banjo
|
| 265 |
+
bank
|
| 266 |
+
bank card
|
| 267 |
+
bank vault
|
| 268 |
+
banknote
|
| 269 |
+
banner
|
| 270 |
+
banquet
|
| 271 |
+
banquet hall
|
| 272 |
+
banyan tree
|
| 273 |
+
baozi
|
| 274 |
+
baptism
|
| 275 |
+
bar
|
| 276 |
+
bar code
|
| 277 |
+
bar stool
|
| 278 |
+
barbecue
|
| 279 |
+
barbecue grill
|
| 280 |
+
barbell
|
| 281 |
+
barber
|
| 282 |
+
barber shop
|
| 283 |
+
barbie
|
| 284 |
+
barge
|
| 285 |
+
barista
|
| 286 |
+
bark
|
| 287 |
+
barley
|
| 288 |
+
barn
|
| 289 |
+
barn owl
|
| 290 |
+
barn door
|
| 291 |
+
barrel
|
| 292 |
+
barricade
|
| 293 |
+
barrier
|
| 294 |
+
handcart
|
| 295 |
+
bartender
|
| 296 |
+
baseball
|
| 297 |
+
baseball base
|
| 298 |
+
baseball bat
|
| 299 |
+
baseball hat
|
| 300 |
+
baseball stadium
|
| 301 |
+
baseball game
|
| 302 |
+
baseball glove
|
| 303 |
+
baseball pitcher
|
| 304 |
+
baseball team
|
| 305 |
+
baseball uniform
|
| 306 |
+
basement
|
| 307 |
+
basil
|
| 308 |
+
basin
|
| 309 |
+
basket
|
| 310 |
+
basket container
|
| 311 |
+
basketball
|
| 312 |
+
basketball backboard
|
| 313 |
+
basketball coach
|
| 314 |
+
basketball court
|
| 315 |
+
basketball game
|
| 316 |
+
basketball hoop
|
| 317 |
+
basketball player
|
| 318 |
+
basketball stadium
|
| 319 |
+
basketball team
|
| 320 |
+
bass
|
| 321 |
+
bass guitar
|
| 322 |
+
bass horn
|
| 323 |
+
bassist
|
| 324 |
+
bat
|
| 325 |
+
bath
|
| 326 |
+
bath heater
|
| 327 |
+
bath mat
|
| 328 |
+
bath towel
|
| 329 |
+
swimwear
|
| 330 |
+
bathrobe
|
| 331 |
+
bathroom
|
| 332 |
+
bathroom accessory
|
| 333 |
+
bathroom cabinet
|
| 334 |
+
bathroom door
|
| 335 |
+
bathroom mirror
|
| 336 |
+
bathroom sink
|
| 337 |
+
toilet paper
|
| 338 |
+
bathroom window
|
| 339 |
+
batman
|
| 340 |
+
wand
|
| 341 |
+
batter
|
| 342 |
+
battery
|
| 343 |
+
battle
|
| 344 |
+
battle rope
|
| 345 |
+
battleship
|
| 346 |
+
bay
|
| 347 |
+
bay bridge
|
| 348 |
+
bay window
|
| 349 |
+
bayberry
|
| 350 |
+
bazaar
|
| 351 |
+
beach
|
| 352 |
+
beach ball
|
| 353 |
+
beach chair
|
| 354 |
+
beach house
|
| 355 |
+
beach hut
|
| 356 |
+
beach towel
|
| 357 |
+
beach volleyball
|
| 358 |
+
lighthouse
|
| 359 |
+
bead
|
| 360 |
+
beagle
|
| 361 |
+
beak
|
| 362 |
+
beaker
|
| 363 |
+
beam
|
| 364 |
+
bean
|
| 365 |
+
bean bag chair
|
| 366 |
+
beanbag
|
| 367 |
+
bear
|
| 368 |
+
bear cub
|
| 369 |
+
beard
|
| 370 |
+
beast
|
| 371 |
+
beat
|
| 372 |
+
beautiful
|
| 373 |
+
beauty
|
| 374 |
+
beauty salon
|
| 375 |
+
beaver
|
| 376 |
+
bed
|
| 377 |
+
bedcover
|
| 378 |
+
bed frame
|
| 379 |
+
bedroom
|
| 380 |
+
bedding
|
| 381 |
+
bedpan
|
| 382 |
+
bedroom window
|
| 383 |
+
bedside lamp
|
| 384 |
+
bee
|
| 385 |
+
beech tree
|
| 386 |
+
beef
|
| 387 |
+
beekeeper
|
| 388 |
+
beeper
|
| 389 |
+
beer
|
| 390 |
+
beer bottle
|
| 391 |
+
beer can
|
| 392 |
+
beer garden
|
| 393 |
+
beer glass
|
| 394 |
+
beer hall
|
| 395 |
+
beet
|
| 396 |
+
beetle
|
| 397 |
+
beige
|
| 398 |
+
clock
|
| 399 |
+
bell pepper
|
| 400 |
+
bell tower
|
| 401 |
+
belt
|
| 402 |
+
belt buckle
|
| 403 |
+
bench
|
| 404 |
+
bend
|
| 405 |
+
bengal tiger
|
| 406 |
+
bento
|
| 407 |
+
beret
|
| 408 |
+
berry
|
| 409 |
+
berth
|
| 410 |
+
beverage
|
| 411 |
+
bib
|
| 412 |
+
bibimbap
|
| 413 |
+
bible
|
| 414 |
+
bichon
|
| 415 |
+
bicycle
|
| 416 |
+
bicycle helmet
|
| 417 |
+
bicycle wheel
|
| 418 |
+
biker
|
| 419 |
+
bidet
|
| 420 |
+
big ben
|
| 421 |
+
bike lane
|
| 422 |
+
bike path
|
| 423 |
+
bike racing
|
| 424 |
+
bike ride
|
| 425 |
+
bikini
|
| 426 |
+
bikini top
|
| 427 |
+
bill
|
| 428 |
+
billard
|
| 429 |
+
billboard
|
| 430 |
+
billiard table
|
| 431 |
+
bin
|
| 432 |
+
binder
|
| 433 |
+
binocular
|
| 434 |
+
biology laboratory
|
| 435 |
+
biplane
|
| 436 |
+
birch
|
| 437 |
+
birch tree
|
| 438 |
+
bird
|
| 439 |
+
bird bath
|
| 440 |
+
bird feeder
|
| 441 |
+
bird house
|
| 442 |
+
bird nest
|
| 443 |
+
birdbath
|
| 444 |
+
bird cage
|
| 445 |
+
birth
|
| 446 |
+
birthday
|
| 447 |
+
birthday cake
|
| 448 |
+
birthday candle
|
| 449 |
+
birthday card
|
| 450 |
+
birthday party
|
| 451 |
+
biscuit
|
| 452 |
+
bishop
|
| 453 |
+
bison
|
| 454 |
+
bit
|
| 455 |
+
bite
|
| 456 |
+
black
|
| 457 |
+
black sheep
|
| 458 |
+
blackberry
|
| 459 |
+
blackbird
|
| 460 |
+
blackboard
|
| 461 |
+
blacksmith
|
| 462 |
+
blade
|
| 463 |
+
blanket
|
| 464 |
+
sports coat
|
| 465 |
+
bleacher
|
| 466 |
+
blender
|
| 467 |
+
blessing
|
| 468 |
+
blind
|
| 469 |
+
eye mask
|
| 470 |
+
flasher
|
| 471 |
+
snowstorm
|
| 472 |
+
block
|
| 473 |
+
blog
|
| 474 |
+
blood
|
| 475 |
+
bloom
|
| 476 |
+
blossom
|
| 477 |
+
blouse
|
| 478 |
+
blow
|
| 479 |
+
hair drier
|
| 480 |
+
blowfish
|
| 481 |
+
blue
|
| 482 |
+
blue artist
|
| 483 |
+
blue jay
|
| 484 |
+
blue sky
|
| 485 |
+
blueberry
|
| 486 |
+
bluebird
|
| 487 |
+
pig
|
| 488 |
+
board
|
| 489 |
+
board eraser
|
| 490 |
+
board game
|
| 491 |
+
boardwalk
|
| 492 |
+
boat
|
| 493 |
+
boat deck
|
| 494 |
+
boat house
|
| 495 |
+
paddle
|
| 496 |
+
boat ride
|
| 497 |
+
bobfloat
|
| 498 |
+
bobcat
|
| 499 |
+
body
|
| 500 |
+
bodyboard
|
| 501 |
+
bodybuilder
|
| 502 |
+
boiled egg
|
| 503 |
+
boiler
|
| 504 |
+
bolo tie
|
| 505 |
+
bolt
|
| 506 |
+
bomb
|
| 507 |
+
bomber
|
| 508 |
+
bonasa umbellu
|
| 509 |
+
bone
|
| 510 |
+
bonfire
|
| 511 |
+
bonnet
|
| 512 |
+
bonsai
|
| 513 |
+
book
|
| 514 |
+
book cover
|
| 515 |
+
bookcase
|
| 516 |
+
folder
|
| 517 |
+
bookmark
|
| 518 |
+
bookshelf
|
| 519 |
+
bookstore
|
| 520 |
+
boom microphone
|
| 521 |
+
boost
|
| 522 |
+
boot
|
| 523 |
+
border
|
| 524 |
+
Border collie
|
| 525 |
+
botanical garden
|
| 526 |
+
bottle
|
| 527 |
+
bottle cap
|
| 528 |
+
bottle opener
|
| 529 |
+
bottle screw
|
| 530 |
+
bougainvillea
|
| 531 |
+
boulder
|
| 532 |
+
bouquet
|
| 533 |
+
boutique
|
| 534 |
+
boutique hotel
|
| 535 |
+
bow
|
| 536 |
+
bow tie
|
| 537 |
+
bow window
|
| 538 |
+
bowl
|
| 539 |
+
bowling
|
| 540 |
+
bowling alley
|
| 541 |
+
bowling ball
|
| 542 |
+
bowling equipment
|
| 543 |
+
box
|
| 544 |
+
box girder bridge
|
| 545 |
+
box turtle
|
| 546 |
+
boxer
|
| 547 |
+
underdrawers
|
| 548 |
+
boxing
|
| 549 |
+
boxing glove
|
| 550 |
+
boxing ring
|
| 551 |
+
boy
|
| 552 |
+
brace
|
| 553 |
+
bracket
|
| 554 |
+
braid
|
| 555 |
+
brain
|
| 556 |
+
brake
|
| 557 |
+
brake light
|
| 558 |
+
branch
|
| 559 |
+
brand
|
| 560 |
+
brandy
|
| 561 |
+
brass
|
| 562 |
+
brass plaque
|
| 563 |
+
bread
|
| 564 |
+
breadbox
|
| 565 |
+
break
|
| 566 |
+
breakfast
|
| 567 |
+
seawall
|
| 568 |
+
chest
|
| 569 |
+
brewery
|
| 570 |
+
brick
|
| 571 |
+
brick building
|
| 572 |
+
wall
|
| 573 |
+
brickwork
|
| 574 |
+
wedding dress
|
| 575 |
+
bride
|
| 576 |
+
groom
|
| 577 |
+
bridesmaid
|
| 578 |
+
bridge
|
| 579 |
+
bridle
|
| 580 |
+
briefcase
|
| 581 |
+
bright
|
| 582 |
+
brim
|
| 583 |
+
broach
|
| 584 |
+
broadcasting
|
| 585 |
+
broccoli
|
| 586 |
+
bronze
|
| 587 |
+
bronze medal
|
| 588 |
+
bronze sculpture
|
| 589 |
+
bronze statue
|
| 590 |
+
brooch
|
| 591 |
+
creek
|
| 592 |
+
broom
|
| 593 |
+
broth
|
| 594 |
+
brown
|
| 595 |
+
brown bear
|
| 596 |
+
brownie
|
| 597 |
+
brunch
|
| 598 |
+
brunette
|
| 599 |
+
brush
|
| 600 |
+
coyote
|
| 601 |
+
brussels sprout
|
| 602 |
+
bubble
|
| 603 |
+
bubble gum
|
| 604 |
+
bubble tea
|
| 605 |
+
bucket cabinet
|
| 606 |
+
shield
|
| 607 |
+
bud
|
| 608 |
+
buddha
|
| 609 |
+
buffalo
|
| 610 |
+
buffet
|
| 611 |
+
bug
|
| 612 |
+
build
|
| 613 |
+
builder
|
| 614 |
+
building
|
| 615 |
+
building block
|
| 616 |
+
building facade
|
| 617 |
+
building material
|
| 618 |
+
lamp
|
| 619 |
+
bull
|
| 620 |
+
bulldog
|
| 621 |
+
bullet
|
| 622 |
+
bullet train
|
| 623 |
+
bulletin board
|
| 624 |
+
bulletproof vest
|
| 625 |
+
bullfighting
|
| 626 |
+
megaphone
|
| 627 |
+
bullring
|
| 628 |
+
bumblebee
|
| 629 |
+
bumper
|
| 630 |
+
roll
|
| 631 |
+
bundle
|
| 632 |
+
bungee
|
| 633 |
+
bunk bed
|
| 634 |
+
bunker
|
| 635 |
+
bunny
|
| 636 |
+
buoy
|
| 637 |
+
bureau
|
| 638 |
+
burial chamber
|
| 639 |
+
burn
|
| 640 |
+
burrito
|
| 641 |
+
bus
|
| 642 |
+
bus driver
|
| 643 |
+
bus interior
|
| 644 |
+
bus station
|
| 645 |
+
bus stop
|
| 646 |
+
bus window
|
| 647 |
+
bush
|
| 648 |
+
business
|
| 649 |
+
business card
|
| 650 |
+
business executive
|
| 651 |
+
business suit
|
| 652 |
+
business team
|
| 653 |
+
business woman
|
| 654 |
+
businessman
|
| 655 |
+
bust
|
| 656 |
+
butcher
|
| 657 |
+
butchers shop
|
| 658 |
+
butte
|
| 659 |
+
butter
|
| 660 |
+
cream
|
| 661 |
+
butterfly
|
| 662 |
+
butterfly house
|
| 663 |
+
button
|
| 664 |
+
buttonwood
|
| 665 |
+
buy
|
| 666 |
+
taxi
|
| 667 |
+
cabana
|
| 668 |
+
cabbage
|
| 669 |
+
cabin
|
| 670 |
+
cabin car
|
| 671 |
+
cabinet
|
| 672 |
+
cabinetry
|
| 673 |
+
cable
|
| 674 |
+
cable car
|
| 675 |
+
cactus
|
| 676 |
+
cafe
|
| 677 |
+
canteen
|
| 678 |
+
cage
|
| 679 |
+
cake
|
| 680 |
+
cake stand
|
| 681 |
+
calculator
|
| 682 |
+
caldron
|
| 683 |
+
calendar
|
| 684 |
+
calf
|
| 685 |
+
call
|
| 686 |
+
phone box
|
| 687 |
+
calligraphy
|
| 688 |
+
calm
|
| 689 |
+
camcorder
|
| 690 |
+
camel
|
| 691 |
+
camera
|
| 692 |
+
camera lens
|
| 693 |
+
camouflage
|
| 694 |
+
camp
|
| 695 |
+
camper
|
| 696 |
+
campfire
|
| 697 |
+
camping
|
| 698 |
+
campsite
|
| 699 |
+
campus
|
| 700 |
+
can
|
| 701 |
+
can opener
|
| 702 |
+
canal
|
| 703 |
+
canary
|
| 704 |
+
cancer
|
| 705 |
+
candle
|
| 706 |
+
candle holder
|
| 707 |
+
candy
|
| 708 |
+
candy bar
|
| 709 |
+
candy cane
|
| 710 |
+
candy store
|
| 711 |
+
cane
|
| 712 |
+
jar
|
| 713 |
+
cannon
|
| 714 |
+
canopy
|
| 715 |
+
canopy bed
|
| 716 |
+
cantaloupe
|
| 717 |
+
cantilever bridge
|
| 718 |
+
canvas
|
| 719 |
+
canyon
|
| 720 |
+
cap
|
| 721 |
+
cape
|
| 722 |
+
cape cod
|
| 723 |
+
cappuccino
|
| 724 |
+
capsule
|
| 725 |
+
captain
|
| 726 |
+
capture
|
| 727 |
+
car
|
| 728 |
+
car dealership
|
| 729 |
+
car door
|
| 730 |
+
car interior
|
| 731 |
+
car logo
|
| 732 |
+
car mirror
|
| 733 |
+
parking lot
|
| 734 |
+
car seat
|
| 735 |
+
car show
|
| 736 |
+
car wash
|
| 737 |
+
car window
|
| 738 |
+
caramel
|
| 739 |
+
card
|
| 740 |
+
card game
|
| 741 |
+
cardboard
|
| 742 |
+
cardboard box
|
| 743 |
+
cardigan
|
| 744 |
+
cardinal
|
| 745 |
+
cargo
|
| 746 |
+
cargo aircraft
|
| 747 |
+
cargo ship
|
| 748 |
+
caribbean
|
| 749 |
+
carnation
|
| 750 |
+
carnival
|
| 751 |
+
carnivore
|
| 752 |
+
carousel
|
| 753 |
+
carp
|
| 754 |
+
carpenter
|
| 755 |
+
carpet
|
| 756 |
+
slipper
|
| 757 |
+
house finch
|
| 758 |
+
coach
|
| 759 |
+
dalmatian
|
| 760 |
+
aircraft carrier
|
| 761 |
+
carrot
|
| 762 |
+
carrot cake
|
| 763 |
+
carry
|
| 764 |
+
cart
|
| 765 |
+
carton
|
| 766 |
+
cartoon
|
| 767 |
+
cartoon character
|
| 768 |
+
cartoon illustration
|
| 769 |
+
cartoon style
|
| 770 |
+
carve
|
| 771 |
+
case
|
| 772 |
+
cash
|
| 773 |
+
cashew
|
| 774 |
+
casino
|
| 775 |
+
casserole
|
| 776 |
+
cassette
|
| 777 |
+
cassette deck
|
| 778 |
+
plaster bandage
|
| 779 |
+
casting
|
| 780 |
+
castle
|
| 781 |
+
cat
|
| 782 |
+
cat bed
|
| 783 |
+
cat food
|
| 784 |
+
cat furniture
|
| 785 |
+
cat tree
|
| 786 |
+
catacomb
|
| 787 |
+
catamaran
|
| 788 |
+
catamount
|
| 789 |
+
catch
|
| 790 |
+
catcher
|
| 791 |
+
caterpillar
|
| 792 |
+
catfish
|
| 793 |
+
cathedral
|
| 794 |
+
cattle
|
| 795 |
+
catwalk
|
| 796 |
+
catwalk show
|
| 797 |
+
cauliflower
|
| 798 |
+
cave
|
| 799 |
+
caviar
|
| 800 |
+
CD
|
| 801 |
+
CD player
|
| 802 |
+
cedar
|
| 803 |
+
ceiling
|
| 804 |
+
ceiling fan
|
| 805 |
+
celebrate
|
| 806 |
+
celebration
|
| 807 |
+
celebrity
|
| 808 |
+
celery
|
| 809 |
+
cello
|
| 810 |
+
smartphone
|
| 811 |
+
cement
|
| 812 |
+
graveyard
|
| 813 |
+
centerpiece
|
| 814 |
+
centipede
|
| 815 |
+
ceramic
|
| 816 |
+
ceramic tile
|
| 817 |
+
cereal
|
| 818 |
+
ceremony
|
| 819 |
+
certificate
|
| 820 |
+
chain
|
| 821 |
+
chain saw
|
| 822 |
+
chair
|
| 823 |
+
chairlift
|
| 824 |
+
daybed
|
| 825 |
+
chalet
|
| 826 |
+
chalice
|
| 827 |
+
chalk
|
| 828 |
+
chamber
|
| 829 |
+
chameleon
|
| 830 |
+
champagne
|
| 831 |
+
champagne flute
|
| 832 |
+
champion
|
| 833 |
+
championship
|
| 834 |
+
chandelier
|
| 835 |
+
changing table
|
| 836 |
+
channel
|
| 837 |
+
chap
|
| 838 |
+
chapel
|
| 839 |
+
character sculpture
|
| 840 |
+
charcoal
|
| 841 |
+
charge
|
| 842 |
+
charger
|
| 843 |
+
chariot
|
| 844 |
+
charity
|
| 845 |
+
charity event
|
| 846 |
+
charm
|
| 847 |
+
graph
|
| 848 |
+
chase
|
| 849 |
+
chassis
|
| 850 |
+
check
|
| 851 |
+
checkbook
|
| 852 |
+
chessboard
|
| 853 |
+
checklist
|
| 854 |
+
cheer
|
| 855 |
+
cheerlead
|
| 856 |
+
cheese
|
| 857 |
+
cheeseburger
|
| 858 |
+
cheesecake
|
| 859 |
+
cheetah
|
| 860 |
+
chef
|
| 861 |
+
chemical compound
|
| 862 |
+
chemist
|
| 863 |
+
chemistry
|
| 864 |
+
chemistry lab
|
| 865 |
+
cheongsam
|
| 866 |
+
cherry
|
| 867 |
+
cherry blossom
|
| 868 |
+
cherry tomato
|
| 869 |
+
cherry tree
|
| 870 |
+
chess
|
| 871 |
+
chestnut
|
| 872 |
+
chicken
|
| 873 |
+
chicken breast
|
| 874 |
+
chicken coop
|
| 875 |
+
chicken salad
|
| 876 |
+
chicken wing
|
| 877 |
+
garbanzo
|
| 878 |
+
chiffonier
|
| 879 |
+
chihuahua
|
| 880 |
+
child
|
| 881 |
+
child actor
|
| 882 |
+
childs room
|
| 883 |
+
chile
|
| 884 |
+
chili dog
|
| 885 |
+
chimney
|
| 886 |
+
chimpanzee
|
| 887 |
+
chinaware
|
| 888 |
+
chinese cabbage
|
| 889 |
+
chinese garden
|
| 890 |
+
chinese knot
|
| 891 |
+
chinese rose
|
| 892 |
+
chinese tower
|
| 893 |
+
chip
|
| 894 |
+
chipmunk
|
| 895 |
+
chisel
|
| 896 |
+
chocolate
|
| 897 |
+
chocolate bar
|
| 898 |
+
chocolate cake
|
| 899 |
+
chocolate chip
|
| 900 |
+
chocolate chip cookie
|
| 901 |
+
chocolate milk
|
| 902 |
+
chocolate mousse
|
| 903 |
+
truffle
|
| 904 |
+
choir
|
| 905 |
+
kitchen knife
|
| 906 |
+
cutting board
|
| 907 |
+
chopstick
|
| 908 |
+
christmas
|
| 909 |
+
christmas ball
|
| 910 |
+
christmas card
|
| 911 |
+
christmas decoration
|
| 912 |
+
christmas dinner
|
| 913 |
+
christmas eve
|
| 914 |
+
christmas hat
|
| 915 |
+
christmas light
|
| 916 |
+
christmas market
|
| 917 |
+
christmas ornament
|
| 918 |
+
christmas tree
|
| 919 |
+
chrysanthemum
|
| 920 |
+
church
|
| 921 |
+
church tower
|
| 922 |
+
cider
|
| 923 |
+
cigar
|
| 924 |
+
cigar box
|
| 925 |
+
cigarette
|
| 926 |
+
cigarette case
|
| 927 |
+
waistband
|
| 928 |
+
cinema
|
| 929 |
+
photographer
|
| 930 |
+
cinnamon
|
| 931 |
+
circle
|
| 932 |
+
circuit
|
| 933 |
+
circuit board
|
| 934 |
+
circus
|
| 935 |
+
water tank
|
| 936 |
+
citrus fruit
|
| 937 |
+
city
|
| 938 |
+
city bus
|
| 939 |
+
city hall
|
| 940 |
+
city nightview
|
| 941 |
+
city park
|
| 942 |
+
city skyline
|
| 943 |
+
city square
|
| 944 |
+
city street
|
| 945 |
+
city wall
|
| 946 |
+
city view
|
| 947 |
+
clam
|
| 948 |
+
clarinet
|
| 949 |
+
clasp
|
| 950 |
+
class
|
| 951 |
+
classic
|
| 952 |
+
classroom
|
| 953 |
+
clavicle
|
| 954 |
+
claw
|
| 955 |
+
clay
|
| 956 |
+
pottery
|
| 957 |
+
clean
|
| 958 |
+
clean room
|
| 959 |
+
cleaner
|
| 960 |
+
cleaning product
|
| 961 |
+
clear
|
| 962 |
+
cleat
|
| 963 |
+
clementine
|
| 964 |
+
client
|
| 965 |
+
cliff
|
| 966 |
+
climb
|
| 967 |
+
climb mountain
|
| 968 |
+
climber
|
| 969 |
+
clinic
|
| 970 |
+
clip
|
| 971 |
+
clip art
|
| 972 |
+
clipboard
|
| 973 |
+
clipper
|
| 974 |
+
clivia
|
| 975 |
+
cloak
|
| 976 |
+
clogs
|
| 977 |
+
close-up
|
| 978 |
+
closet
|
| 979 |
+
cloth
|
| 980 |
+
clothe
|
| 981 |
+
clothing
|
| 982 |
+
clothespin
|
| 983 |
+
clothesline
|
| 984 |
+
clothing store
|
| 985 |
+
cloud
|
| 986 |
+
cloud forest
|
| 987 |
+
cloudy
|
| 988 |
+
clover
|
| 989 |
+
joker
|
| 990 |
+
clown fish
|
| 991 |
+
club
|
| 992 |
+
clutch
|
| 993 |
+
clutch bag
|
| 994 |
+
coal
|
| 995 |
+
coast
|
| 996 |
+
coat
|
| 997 |
+
coatrack
|
| 998 |
+
cob
|
| 999 |
+
cock
|
| 1000 |
+
cockatoo
|
| 1001 |
+
cocker
|
| 1002 |
+
cockpit
|
| 1003 |
+
roach
|
| 1004 |
+
cocktail
|
| 1005 |
+
cocktail dress
|
| 1006 |
+
cocktail shaker
|
| 1007 |
+
cocktail table
|
| 1008 |
+
cocoa
|
| 1009 |
+
coconut
|
| 1010 |
+
coconut tree
|
| 1011 |
+
coffee
|
| 1012 |
+
coffee bean
|
| 1013 |
+
coffee cup
|
| 1014 |
+
coffee machine
|
| 1015 |
+
coffee shop
|
| 1016 |
+
coffeepot
|
| 1017 |
+
coffin
|
| 1018 |
+
cognac
|
| 1019 |
+
spiral
|
| 1020 |
+
coin
|
| 1021 |
+
coke
|
| 1022 |
+
colander
|
| 1023 |
+
cold
|
| 1024 |
+
slaw
|
| 1025 |
+
collaboration
|
| 1026 |
+
collage
|
| 1027 |
+
collection
|
| 1028 |
+
college student
|
| 1029 |
+
sheepdog
|
| 1030 |
+
crash
|
| 1031 |
+
color
|
| 1032 |
+
coloring book
|
| 1033 |
+
coloring material
|
| 1034 |
+
pony
|
| 1035 |
+
pillar
|
| 1036 |
+
comb
|
| 1037 |
+
combination lock
|
| 1038 |
+
comic
|
| 1039 |
+
comedy
|
| 1040 |
+
comedy film
|
| 1041 |
+
comet
|
| 1042 |
+
comfort
|
| 1043 |
+
comfort food
|
| 1044 |
+
comic book
|
| 1045 |
+
comic book character
|
| 1046 |
+
comic strip
|
| 1047 |
+
commander
|
| 1048 |
+
commentator
|
| 1049 |
+
community
|
| 1050 |
+
commuter
|
| 1051 |
+
company
|
| 1052 |
+
compass
|
| 1053 |
+
compete
|
| 1054 |
+
contest
|
| 1055 |
+
competitor
|
| 1056 |
+
composer
|
| 1057 |
+
composition
|
| 1058 |
+
compost
|
| 1059 |
+
computer
|
| 1060 |
+
computer box
|
| 1061 |
+
computer chair
|
| 1062 |
+
computer desk
|
| 1063 |
+
keyboard
|
| 1064 |
+
computer monitor
|
| 1065 |
+
computer room
|
| 1066 |
+
computer screen
|
| 1067 |
+
computer tower
|
| 1068 |
+
concept car
|
| 1069 |
+
concert
|
| 1070 |
+
concert hall
|
| 1071 |
+
conch
|
| 1072 |
+
concrete
|
| 1073 |
+
condiment
|
| 1074 |
+
condom
|
| 1075 |
+
condominium
|
| 1076 |
+
conductor
|
| 1077 |
+
cone
|
| 1078 |
+
meeting
|
| 1079 |
+
conference center
|
| 1080 |
+
conference hall
|
| 1081 |
+
meeting room
|
| 1082 |
+
confetti
|
| 1083 |
+
conflict
|
| 1084 |
+
confluence
|
| 1085 |
+
connect
|
| 1086 |
+
connector
|
| 1087 |
+
conservatory
|
| 1088 |
+
constellation
|
| 1089 |
+
construction site
|
| 1090 |
+
construction worker
|
| 1091 |
+
contain
|
| 1092 |
+
container
|
| 1093 |
+
container ship
|
| 1094 |
+
continent
|
| 1095 |
+
profile
|
| 1096 |
+
contract
|
| 1097 |
+
control
|
| 1098 |
+
control tower
|
| 1099 |
+
convenience store
|
| 1100 |
+
convention
|
| 1101 |
+
conversation
|
| 1102 |
+
converter
|
| 1103 |
+
convertible
|
| 1104 |
+
transporter
|
| 1105 |
+
cook
|
| 1106 |
+
cooking
|
| 1107 |
+
cooking spray
|
| 1108 |
+
cooker
|
| 1109 |
+
cool
|
| 1110 |
+
cooler
|
| 1111 |
+
copper
|
| 1112 |
+
copy
|
| 1113 |
+
coral
|
| 1114 |
+
coral reef
|
| 1115 |
+
rope
|
| 1116 |
+
corded phone
|
| 1117 |
+
liquor
|
| 1118 |
+
corgi
|
| 1119 |
+
cork
|
| 1120 |
+
corkboard
|
| 1121 |
+
cormorant
|
| 1122 |
+
corn
|
| 1123 |
+
corn field
|
| 1124 |
+
cornbread
|
| 1125 |
+
corner
|
| 1126 |
+
trumpet
|
| 1127 |
+
cornice
|
| 1128 |
+
cornmeal
|
| 1129 |
+
corral
|
| 1130 |
+
corridor
|
| 1131 |
+
corset
|
| 1132 |
+
cosmetic
|
| 1133 |
+
cosmetics brush
|
| 1134 |
+
cosmetics mirror
|
| 1135 |
+
cosplay
|
| 1136 |
+
costume
|
| 1137 |
+
costumer film designer
|
| 1138 |
+
infant bed
|
| 1139 |
+
cottage
|
| 1140 |
+
cotton
|
| 1141 |
+
cotton candy
|
| 1142 |
+
couch
|
| 1143 |
+
countdown
|
| 1144 |
+
counter
|
| 1145 |
+
counter top
|
| 1146 |
+
country artist
|
| 1147 |
+
country house
|
| 1148 |
+
country lane
|
| 1149 |
+
country pop artist
|
| 1150 |
+
countryside
|
| 1151 |
+
coupe
|
| 1152 |
+
couple
|
| 1153 |
+
couple photo
|
| 1154 |
+
courgette
|
| 1155 |
+
course
|
| 1156 |
+
court
|
| 1157 |
+
courthouse
|
| 1158 |
+
courtyard
|
| 1159 |
+
cousin
|
| 1160 |
+
coverall
|
| 1161 |
+
cow
|
| 1162 |
+
cowbell
|
| 1163 |
+
cowboy
|
| 1164 |
+
cowboy boot
|
| 1165 |
+
cowboy hat
|
| 1166 |
+
crab
|
| 1167 |
+
crabmeat
|
| 1168 |
+
crack
|
| 1169 |
+
cradle
|
| 1170 |
+
craft
|
| 1171 |
+
craftsman
|
| 1172 |
+
cranberry
|
| 1173 |
+
crane
|
| 1174 |
+
crape
|
| 1175 |
+
crapper
|
| 1176 |
+
crate
|
| 1177 |
+
crater lake
|
| 1178 |
+
lobster
|
| 1179 |
+
crayon
|
| 1180 |
+
cream cheese
|
| 1181 |
+
cream pitcher
|
| 1182 |
+
create
|
| 1183 |
+
creature
|
| 1184 |
+
credit card
|
| 1185 |
+
crescent
|
| 1186 |
+
croissant
|
| 1187 |
+
crest
|
| 1188 |
+
crew
|
| 1189 |
+
cricket
|
| 1190 |
+
cricket ball
|
| 1191 |
+
cricket team
|
| 1192 |
+
cricketer
|
| 1193 |
+
crochet
|
| 1194 |
+
crock pot
|
| 1195 |
+
crocodile
|
| 1196 |
+
crop
|
| 1197 |
+
crop top
|
| 1198 |
+
cross
|
| 1199 |
+
crossbar
|
| 1200 |
+
crossroad
|
| 1201 |
+
crosstalk
|
| 1202 |
+
crosswalk
|
| 1203 |
+
crouton
|
| 1204 |
+
crow
|
| 1205 |
+
crowbar
|
| 1206 |
+
crowd
|
| 1207 |
+
crowded
|
| 1208 |
+
crown
|
| 1209 |
+
crt screen
|
| 1210 |
+
crucifix
|
| 1211 |
+
cruise
|
| 1212 |
+
cruise ship
|
| 1213 |
+
cruiser
|
| 1214 |
+
crumb
|
| 1215 |
+
crush
|
| 1216 |
+
crutch
|
| 1217 |
+
crystal
|
| 1218 |
+
cub
|
| 1219 |
+
cube
|
| 1220 |
+
cucumber
|
| 1221 |
+
cue
|
| 1222 |
+
cuff
|
| 1223 |
+
cufflink
|
| 1224 |
+
cuisine
|
| 1225 |
+
farmland
|
| 1226 |
+
cup
|
| 1227 |
+
cupcake
|
| 1228 |
+
cupid
|
| 1229 |
+
curb
|
| 1230 |
+
curl
|
| 1231 |
+
hair roller
|
| 1232 |
+
currant
|
| 1233 |
+
currency
|
| 1234 |
+
curry
|
| 1235 |
+
curtain
|
| 1236 |
+
curve
|
| 1237 |
+
pad
|
| 1238 |
+
customer
|
| 1239 |
+
cut
|
| 1240 |
+
cutlery
|
| 1241 |
+
cycle
|
| 1242 |
+
cycling
|
| 1243 |
+
cyclone
|
| 1244 |
+
cylinder
|
| 1245 |
+
cymbal
|
| 1246 |
+
cypress
|
| 1247 |
+
cypress tree
|
| 1248 |
+
dachshund
|
| 1249 |
+
daffodil
|
| 1250 |
+
dagger
|
| 1251 |
+
dahlia
|
| 1252 |
+
daikon
|
| 1253 |
+
dairy
|
| 1254 |
+
daisy
|
| 1255 |
+
dam
|
| 1256 |
+
damage
|
| 1257 |
+
damp
|
| 1258 |
+
dance
|
| 1259 |
+
dance floor
|
| 1260 |
+
dance room
|
| 1261 |
+
dancer
|
| 1262 |
+
dandelion
|
| 1263 |
+
dark
|
| 1264 |
+
darkness
|
| 1265 |
+
dart
|
| 1266 |
+
dartboard
|
| 1267 |
+
dashboard
|
| 1268 |
+
date
|
| 1269 |
+
daughter
|
| 1270 |
+
dawn
|
| 1271 |
+
day bed
|
| 1272 |
+
daylight
|
| 1273 |
+
deadbolt
|
| 1274 |
+
death
|
| 1275 |
+
debate
|
| 1276 |
+
debris
|
| 1277 |
+
decanter
|
| 1278 |
+
deck
|
| 1279 |
+
decker bus
|
| 1280 |
+
decor
|
| 1281 |
+
decorate
|
| 1282 |
+
decorative picture
|
| 1283 |
+
deer
|
| 1284 |
+
defender
|
| 1285 |
+
deity
|
| 1286 |
+
delicatessen
|
| 1287 |
+
deliver
|
| 1288 |
+
demolition
|
| 1289 |
+
monster
|
| 1290 |
+
demonstration
|
| 1291 |
+
den
|
| 1292 |
+
denim jacket
|
| 1293 |
+
dentist
|
| 1294 |
+
department store
|
| 1295 |
+
depression
|
| 1296 |
+
derby
|
| 1297 |
+
dermopathy
|
| 1298 |
+
desert
|
| 1299 |
+
desert road
|
| 1300 |
+
design
|
| 1301 |
+
designer
|
| 1302 |
+
table
|
| 1303 |
+
table lamp
|
| 1304 |
+
desktop
|
| 1305 |
+
desktop computer
|
| 1306 |
+
dessert
|
| 1307 |
+
destruction
|
| 1308 |
+
detective
|
| 1309 |
+
detergent
|
| 1310 |
+
dew
|
| 1311 |
+
dial
|
| 1312 |
+
diamond
|
| 1313 |
+
diaper
|
| 1314 |
+
diaper bag
|
| 1315 |
+
journal
|
| 1316 |
+
die
|
| 1317 |
+
diet
|
| 1318 |
+
excavator
|
| 1319 |
+
number
|
| 1320 |
+
digital clock
|
| 1321 |
+
dill
|
| 1322 |
+
dinner
|
| 1323 |
+
rowboat
|
| 1324 |
+
dining room
|
| 1325 |
+
dinner party
|
| 1326 |
+
dinning table
|
| 1327 |
+
dinosaur
|
| 1328 |
+
dip
|
| 1329 |
+
diploma
|
| 1330 |
+
direct
|
| 1331 |
+
director
|
| 1332 |
+
dirt
|
| 1333 |
+
dirt bike
|
| 1334 |
+
dirt field
|
| 1335 |
+
dirt road
|
| 1336 |
+
dirt track
|
| 1337 |
+
disaster
|
| 1338 |
+
disciple
|
| 1339 |
+
disco
|
| 1340 |
+
disco ball
|
| 1341 |
+
discotheque
|
| 1342 |
+
disease
|
| 1343 |
+
plate
|
| 1344 |
+
dish antenna
|
| 1345 |
+
dish washer
|
| 1346 |
+
dishrag
|
| 1347 |
+
dishes
|
| 1348 |
+
dishsoap
|
| 1349 |
+
Disneyland
|
| 1350 |
+
dispenser
|
| 1351 |
+
display
|
| 1352 |
+
display window
|
| 1353 |
+
trench
|
| 1354 |
+
dive
|
| 1355 |
+
diver
|
| 1356 |
+
diving board
|
| 1357 |
+
paper cup
|
| 1358 |
+
dj
|
| 1359 |
+
doberman
|
| 1360 |
+
dock
|
| 1361 |
+
doctor
|
| 1362 |
+
document
|
| 1363 |
+
documentary
|
| 1364 |
+
dog
|
| 1365 |
+
dog bed
|
| 1366 |
+
dog breed
|
| 1367 |
+
dog collar
|
| 1368 |
+
dog food
|
| 1369 |
+
dog house
|
| 1370 |
+
doll
|
| 1371 |
+
dollar
|
| 1372 |
+
dollhouse
|
| 1373 |
+
dolly
|
| 1374 |
+
dolphin
|
| 1375 |
+
dome
|
| 1376 |
+
domicile
|
| 1377 |
+
domino
|
| 1378 |
+
donkey
|
| 1379 |
+
donut
|
| 1380 |
+
doodle
|
| 1381 |
+
door
|
| 1382 |
+
door handle
|
| 1383 |
+
doormat
|
| 1384 |
+
doorplate
|
| 1385 |
+
doorway
|
| 1386 |
+
dormitory
|
| 1387 |
+
dough
|
| 1388 |
+
downtown
|
| 1389 |
+
dozer
|
| 1390 |
+
drag
|
| 1391 |
+
dragon
|
| 1392 |
+
dragonfly
|
| 1393 |
+
drain
|
| 1394 |
+
drama
|
| 1395 |
+
drama film
|
| 1396 |
+
draw
|
| 1397 |
+
drawer
|
| 1398 |
+
drawing
|
| 1399 |
+
drawing pin
|
| 1400 |
+
pigtail
|
| 1401 |
+
dress
|
| 1402 |
+
dress hat
|
| 1403 |
+
dress shirt
|
| 1404 |
+
dress shoe
|
| 1405 |
+
dress suit
|
| 1406 |
+
dresser
|
| 1407 |
+
dressing room
|
| 1408 |
+
dribble
|
| 1409 |
+
drift
|
| 1410 |
+
driftwood
|
| 1411 |
+
drill
|
| 1412 |
+
drink
|
| 1413 |
+
drinking water
|
| 1414 |
+
drive
|
| 1415 |
+
driver
|
| 1416 |
+
driveway
|
| 1417 |
+
drone
|
| 1418 |
+
drop
|
| 1419 |
+
droplight
|
| 1420 |
+
dropper
|
| 1421 |
+
drought
|
| 1422 |
+
medicine
|
| 1423 |
+
pharmacy
|
| 1424 |
+
drum
|
| 1425 |
+
drummer
|
| 1426 |
+
drumstick
|
| 1427 |
+
dry
|
| 1428 |
+
duchess
|
| 1429 |
+
duck
|
| 1430 |
+
duckbill
|
| 1431 |
+
duckling
|
| 1432 |
+
duct tape
|
| 1433 |
+
dude
|
| 1434 |
+
duet
|
| 1435 |
+
duffel
|
| 1436 |
+
canoe
|
| 1437 |
+
dumbbell
|
| 1438 |
+
dumpling
|
| 1439 |
+
dune
|
| 1440 |
+
dunk
|
| 1441 |
+
durian
|
| 1442 |
+
dusk
|
| 1443 |
+
dust
|
| 1444 |
+
garbage truck
|
| 1445 |
+
dustpan
|
| 1446 |
+
duvet
|
| 1447 |
+
DVD
|
| 1448 |
+
dye
|
| 1449 |
+
eagle
|
| 1450 |
+
ear
|
| 1451 |
+
earmuff
|
| 1452 |
+
earphone
|
| 1453 |
+
earplug
|
| 1454 |
+
earring
|
| 1455 |
+
earthquake
|
| 1456 |
+
easel
|
| 1457 |
+
easter
|
| 1458 |
+
easter bunny
|
| 1459 |
+
easter egg
|
| 1460 |
+
eat
|
| 1461 |
+
restaurant
|
| 1462 |
+
eclair
|
| 1463 |
+
eclipse
|
| 1464 |
+
ecosystem
|
| 1465 |
+
edit
|
| 1466 |
+
education
|
| 1467 |
+
educator
|
| 1468 |
+
eel
|
| 1469 |
+
egg
|
| 1470 |
+
egg roll
|
| 1471 |
+
egg tart
|
| 1472 |
+
eggbeater
|
| 1473 |
+
egret
|
| 1474 |
+
Eiffel tower
|
| 1475 |
+
elastic band
|
| 1476 |
+
senior
|
| 1477 |
+
electric chair
|
| 1478 |
+
electric drill
|
| 1479 |
+
electrician
|
| 1480 |
+
electricity
|
| 1481 |
+
electron
|
| 1482 |
+
electronic
|
| 1483 |
+
elephant
|
| 1484 |
+
elevation map
|
| 1485 |
+
elevator
|
| 1486 |
+
elevator car
|
| 1487 |
+
elevator door
|
| 1488 |
+
elevator lobby
|
| 1489 |
+
elevator shaft
|
| 1490 |
+
embankment
|
| 1491 |
+
embassy
|
| 1492 |
+
embellishment
|
| 1493 |
+
ember
|
| 1494 |
+
emblem
|
| 1495 |
+
embroidery
|
| 1496 |
+
emerald
|
| 1497 |
+
emergency
|
| 1498 |
+
emergency service
|
| 1499 |
+
emergency vehicle
|
| 1500 |
+
emotion
|
| 1501 |
+
Empire State Building
|
| 1502 |
+
enamel
|
| 1503 |
+
enclosure
|
| 1504 |
+
side table
|
| 1505 |
+
energy
|
| 1506 |
+
engagement
|
| 1507 |
+
engagement ring
|
| 1508 |
+
engine
|
| 1509 |
+
engine room
|
| 1510 |
+
engineer
|
| 1511 |
+
engineering
|
| 1512 |
+
english shorthair
|
| 1513 |
+
ensemble
|
| 1514 |
+
enter
|
| 1515 |
+
entertainer
|
| 1516 |
+
entertainment
|
| 1517 |
+
entertainment center
|
| 1518 |
+
entrance
|
| 1519 |
+
entrance hall
|
| 1520 |
+
envelope
|
| 1521 |
+
equestrian
|
| 1522 |
+
equipment
|
| 1523 |
+
eraser
|
| 1524 |
+
erhu
|
| 1525 |
+
erosion
|
| 1526 |
+
escalator
|
| 1527 |
+
escargot
|
| 1528 |
+
espresso
|
| 1529 |
+
estate
|
| 1530 |
+
estuary
|
| 1531 |
+
eucalyptus tree
|
| 1532 |
+
evening
|
| 1533 |
+
evening dress
|
| 1534 |
+
evening light
|
| 1535 |
+
evening sky
|
| 1536 |
+
evening sun
|
| 1537 |
+
event
|
| 1538 |
+
evergreen
|
| 1539 |
+
ewe
|
| 1540 |
+
excavation
|
| 1541 |
+
exercise
|
| 1542 |
+
exhaust hood
|
| 1543 |
+
exhibition
|
| 1544 |
+
exit
|
| 1545 |
+
explorer
|
| 1546 |
+
explosion
|
| 1547 |
+
extension cord
|
| 1548 |
+
extinguisher
|
| 1549 |
+
extractor
|
| 1550 |
+
extrude
|
| 1551 |
+
eye
|
| 1552 |
+
eye shadow
|
| 1553 |
+
eyebrow
|
| 1554 |
+
eyeliner
|
| 1555 |
+
fabric
|
| 1556 |
+
fabric store
|
| 1557 |
+
facade
|
| 1558 |
+
face
|
| 1559 |
+
face close-up
|
| 1560 |
+
face powder
|
| 1561 |
+
face towel
|
| 1562 |
+
facial tissue holder
|
| 1563 |
+
facility
|
| 1564 |
+
factory
|
| 1565 |
+
factory workshop
|
| 1566 |
+
fair
|
| 1567 |
+
fairground
|
| 1568 |
+
fairy
|
| 1569 |
+
falcon
|
| 1570 |
+
fall
|
| 1571 |
+
family
|
| 1572 |
+
family car
|
| 1573 |
+
family photo
|
| 1574 |
+
family room
|
| 1575 |
+
fan
|
| 1576 |
+
fang
|
| 1577 |
+
farm
|
| 1578 |
+
farmer
|
| 1579 |
+
farmer market
|
| 1580 |
+
farmhouse
|
| 1581 |
+
fashion
|
| 1582 |
+
fashion accessory
|
| 1583 |
+
fashion designer
|
| 1584 |
+
fashion girl
|
| 1585 |
+
fashion illustration
|
| 1586 |
+
fashion look
|
| 1587 |
+
fashion model
|
| 1588 |
+
fashion show
|
| 1589 |
+
fast food
|
| 1590 |
+
fastfood restaurant
|
| 1591 |
+
father
|
| 1592 |
+
faucet
|
| 1593 |
+
fault
|
| 1594 |
+
fauna
|
| 1595 |
+
fawn
|
| 1596 |
+
fax
|
| 1597 |
+
feast
|
| 1598 |
+
feather
|
| 1599 |
+
fedora
|
| 1600 |
+
feed
|
| 1601 |
+
feedbag
|
| 1602 |
+
feeding
|
| 1603 |
+
feeding chair
|
| 1604 |
+
feline
|
| 1605 |
+
mountain lion
|
| 1606 |
+
fence
|
| 1607 |
+
fender
|
| 1608 |
+
fern
|
| 1609 |
+
ferret
|
| 1610 |
+
ferris wheel
|
| 1611 |
+
ferry
|
| 1612 |
+
fertilizer
|
| 1613 |
+
festival
|
| 1614 |
+
fiber
|
| 1615 |
+
fiction
|
| 1616 |
+
fiction book
|
| 1617 |
+
field
|
| 1618 |
+
field road
|
| 1619 |
+
fig
|
| 1620 |
+
fight
|
| 1621 |
+
figure skater
|
| 1622 |
+
figurine
|
| 1623 |
+
file
|
| 1624 |
+
file photo
|
| 1625 |
+
file cabinet
|
| 1626 |
+
fill
|
| 1627 |
+
film camera
|
| 1628 |
+
film director
|
| 1629 |
+
film format
|
| 1630 |
+
film premiere
|
| 1631 |
+
film producer
|
| 1632 |
+
filming
|
| 1633 |
+
filter
|
| 1634 |
+
fin
|
| 1635 |
+
hand
|
| 1636 |
+
finish line
|
| 1637 |
+
fir
|
| 1638 |
+
fir tree
|
| 1639 |
+
fire
|
| 1640 |
+
fire alarm
|
| 1641 |
+
fire department
|
| 1642 |
+
fire truck
|
| 1643 |
+
fire escape
|
| 1644 |
+
fire hose
|
| 1645 |
+
fire pit
|
| 1646 |
+
fire station
|
| 1647 |
+
firecracker
|
| 1648 |
+
fireman
|
| 1649 |
+
fireplace
|
| 1650 |
+
firework
|
| 1651 |
+
firework display
|
| 1652 |
+
first-aid kit
|
| 1653 |
+
fish
|
| 1654 |
+
fish boat
|
| 1655 |
+
fish market
|
| 1656 |
+
fish pond
|
| 1657 |
+
fishbowl
|
| 1658 |
+
fisherman
|
| 1659 |
+
fishing
|
| 1660 |
+
fishing boat
|
| 1661 |
+
fishing net
|
| 1662 |
+
fishing pole
|
| 1663 |
+
fishing village
|
| 1664 |
+
fitness
|
| 1665 |
+
fitness course
|
| 1666 |
+
five
|
| 1667 |
+
fixture
|
| 1668 |
+
fjord
|
| 1669 |
+
flag
|
| 1670 |
+
flag pole
|
| 1671 |
+
flake
|
| 1672 |
+
flame
|
| 1673 |
+
flamingo
|
| 1674 |
+
flannel
|
| 1675 |
+
flap
|
| 1676 |
+
flare
|
| 1677 |
+
flash
|
| 1678 |
+
flask
|
| 1679 |
+
flat
|
| 1680 |
+
flatfish
|
| 1681 |
+
flavor
|
| 1682 |
+
flea
|
| 1683 |
+
flea market
|
| 1684 |
+
fleet
|
| 1685 |
+
flight
|
| 1686 |
+
flight attendant
|
| 1687 |
+
flip
|
| 1688 |
+
flip-flop
|
| 1689 |
+
flipchart
|
| 1690 |
+
float
|
| 1691 |
+
flock
|
| 1692 |
+
flood
|
| 1693 |
+
floor
|
| 1694 |
+
floor fan
|
| 1695 |
+
floor mat
|
| 1696 |
+
floor plan
|
| 1697 |
+
floor window
|
| 1698 |
+
floral arrangement
|
| 1699 |
+
florist
|
| 1700 |
+
floss
|
| 1701 |
+
flour
|
| 1702 |
+
flow
|
| 1703 |
+
flower
|
| 1704 |
+
flower basket
|
| 1705 |
+
flower bed
|
| 1706 |
+
flower box
|
| 1707 |
+
flower field
|
| 1708 |
+
flower girl
|
| 1709 |
+
flower market
|
| 1710 |
+
fluid
|
| 1711 |
+
flush
|
| 1712 |
+
flute
|
| 1713 |
+
fly
|
| 1714 |
+
fly fishing
|
| 1715 |
+
flyer
|
| 1716 |
+
horse
|
| 1717 |
+
foam
|
| 1718 |
+
fog
|
| 1719 |
+
foggy
|
| 1720 |
+
foie gra
|
| 1721 |
+
foil
|
| 1722 |
+
folding chair
|
| 1723 |
+
leaf
|
| 1724 |
+
folk artist
|
| 1725 |
+
folk dance
|
| 1726 |
+
folk rock artist
|
| 1727 |
+
fondant
|
| 1728 |
+
hotpot
|
| 1729 |
+
font
|
| 1730 |
+
food
|
| 1731 |
+
food coloring
|
| 1732 |
+
food court
|
| 1733 |
+
food processor
|
| 1734 |
+
food stand
|
| 1735 |
+
food truck
|
| 1736 |
+
foosball
|
| 1737 |
+
foot
|
| 1738 |
+
foot bridge
|
| 1739 |
+
football
|
| 1740 |
+
football coach
|
| 1741 |
+
football college game
|
| 1742 |
+
football match
|
| 1743 |
+
football field
|
| 1744 |
+
football game
|
| 1745 |
+
football helmet
|
| 1746 |
+
football player
|
| 1747 |
+
football stadium
|
| 1748 |
+
football team
|
| 1749 |
+
path
|
| 1750 |
+
footprint
|
| 1751 |
+
footrest
|
| 1752 |
+
footstall
|
| 1753 |
+
footwear
|
| 1754 |
+
forbidden city
|
| 1755 |
+
ford
|
| 1756 |
+
forehead
|
| 1757 |
+
forest
|
| 1758 |
+
forest fire
|
| 1759 |
+
forest floor
|
| 1760 |
+
forest path
|
| 1761 |
+
forest road
|
| 1762 |
+
forge
|
| 1763 |
+
fork
|
| 1764 |
+
forklift
|
| 1765 |
+
form
|
| 1766 |
+
formal garden
|
| 1767 |
+
formation
|
| 1768 |
+
formula 1
|
| 1769 |
+
fort
|
| 1770 |
+
fortification
|
| 1771 |
+
forward
|
| 1772 |
+
fossil
|
| 1773 |
+
foundation
|
| 1774 |
+
fountain
|
| 1775 |
+
fountain pen
|
| 1776 |
+
fox
|
| 1777 |
+
frame
|
| 1778 |
+
freckle
|
| 1779 |
+
highway
|
| 1780 |
+
lorry
|
| 1781 |
+
French
|
| 1782 |
+
French bulldog
|
| 1783 |
+
French fries
|
| 1784 |
+
French toast
|
| 1785 |
+
freshener
|
| 1786 |
+
fridge
|
| 1787 |
+
fried chicken
|
| 1788 |
+
fried egg
|
| 1789 |
+
fried rice
|
| 1790 |
+
friendship
|
| 1791 |
+
frisbee
|
| 1792 |
+
frog
|
| 1793 |
+
frost
|
| 1794 |
+
frosting
|
| 1795 |
+
frosty
|
| 1796 |
+
frozen
|
| 1797 |
+
fruit
|
| 1798 |
+
fruit cake
|
| 1799 |
+
fruit dish
|
| 1800 |
+
fruit market
|
| 1801 |
+
fruit salad
|
| 1802 |
+
fruit stand
|
| 1803 |
+
fruit tree
|
| 1804 |
+
fruits shop
|
| 1805 |
+
fry
|
| 1806 |
+
frying pan
|
| 1807 |
+
fudge
|
| 1808 |
+
fuel
|
| 1809 |
+
fume hood
|
| 1810 |
+
fun
|
| 1811 |
+
funeral
|
| 1812 |
+
fungi
|
| 1813 |
+
funnel
|
| 1814 |
+
fur
|
| 1815 |
+
fur coat
|
| 1816 |
+
furniture
|
| 1817 |
+
futon
|
| 1818 |
+
gadget
|
| 1819 |
+
muzzle
|
| 1820 |
+
galaxy
|
| 1821 |
+
gallery
|
| 1822 |
+
game
|
| 1823 |
+
game board
|
| 1824 |
+
game controller
|
| 1825 |
+
ham
|
| 1826 |
+
gang
|
| 1827 |
+
garage
|
| 1828 |
+
garage door
|
| 1829 |
+
garage kit
|
| 1830 |
+
garbage
|
| 1831 |
+
garden
|
| 1832 |
+
garden asparagus
|
| 1833 |
+
garden hose
|
| 1834 |
+
garden spider
|
| 1835 |
+
gardener
|
| 1836 |
+
gardening
|
| 1837 |
+
garfield
|
| 1838 |
+
gargoyle
|
| 1839 |
+
wreath
|
| 1840 |
+
garlic
|
| 1841 |
+
garment
|
| 1842 |
+
gas
|
| 1843 |
+
gas station
|
| 1844 |
+
gas stove
|
| 1845 |
+
gasmask
|
| 1846 |
+
collect
|
| 1847 |
+
gathering
|
| 1848 |
+
gauge
|
| 1849 |
+
gazebo
|
| 1850 |
+
gear
|
| 1851 |
+
gecko
|
| 1852 |
+
geisha
|
| 1853 |
+
gel
|
| 1854 |
+
general store
|
| 1855 |
+
generator
|
| 1856 |
+
geranium
|
| 1857 |
+
ghost
|
| 1858 |
+
gift
|
| 1859 |
+
gift bag
|
| 1860 |
+
gift basket
|
| 1861 |
+
gift box
|
| 1862 |
+
gift card
|
| 1863 |
+
gift shop
|
| 1864 |
+
gift wrap
|
| 1865 |
+
gig
|
| 1866 |
+
gin
|
| 1867 |
+
ginger
|
| 1868 |
+
gingerbread
|
| 1869 |
+
gingerbread house
|
| 1870 |
+
ginkgo tree
|
| 1871 |
+
giraffe
|
| 1872 |
+
girl
|
| 1873 |
+
give
|
| 1874 |
+
glacier
|
| 1875 |
+
gladiator
|
| 1876 |
+
glass bead
|
| 1877 |
+
glass bottle
|
| 1878 |
+
glass bowl
|
| 1879 |
+
glass box
|
| 1880 |
+
glass building
|
| 1881 |
+
glass door
|
| 1882 |
+
glass floor
|
| 1883 |
+
glass house
|
| 1884 |
+
glass jar
|
| 1885 |
+
glass plate
|
| 1886 |
+
glass table
|
| 1887 |
+
glass vase
|
| 1888 |
+
glass wall
|
| 1889 |
+
glass window
|
| 1890 |
+
glasses
|
| 1891 |
+
glaze
|
| 1892 |
+
glider
|
| 1893 |
+
earth
|
| 1894 |
+
glove
|
| 1895 |
+
glow
|
| 1896 |
+
glue pudding
|
| 1897 |
+
go
|
| 1898 |
+
go for
|
| 1899 |
+
goal
|
| 1900 |
+
goalkeeper
|
| 1901 |
+
goat
|
| 1902 |
+
goat cheese
|
| 1903 |
+
gobi
|
| 1904 |
+
goggles
|
| 1905 |
+
gold
|
| 1906 |
+
gold medal
|
| 1907 |
+
Golden Gate Bridge
|
| 1908 |
+
golden retriever
|
| 1909 |
+
goldfish
|
| 1910 |
+
golf
|
| 1911 |
+
golf cap
|
| 1912 |
+
golf cart
|
| 1913 |
+
golf club
|
| 1914 |
+
golf course
|
| 1915 |
+
golfer
|
| 1916 |
+
goose
|
| 1917 |
+
gorilla
|
| 1918 |
+
gothic
|
| 1919 |
+
gourd
|
| 1920 |
+
government
|
| 1921 |
+
government agency
|
| 1922 |
+
gown
|
| 1923 |
+
graduate
|
| 1924 |
+
graduation
|
| 1925 |
+
grain
|
| 1926 |
+
grampus
|
| 1927 |
+
grand prix
|
| 1928 |
+
grandfather
|
| 1929 |
+
grandmother
|
| 1930 |
+
grandparent
|
| 1931 |
+
granite
|
| 1932 |
+
granola
|
| 1933 |
+
grape
|
| 1934 |
+
grapefruit
|
| 1935 |
+
wine
|
| 1936 |
+
grass
|
| 1937 |
+
grasshopper
|
| 1938 |
+
grassland
|
| 1939 |
+
grassy
|
| 1940 |
+
grater
|
| 1941 |
+
grave
|
| 1942 |
+
gravel
|
| 1943 |
+
gravestone
|
| 1944 |
+
gravy
|
| 1945 |
+
gravy boat
|
| 1946 |
+
gray
|
| 1947 |
+
graze
|
| 1948 |
+
grazing
|
| 1949 |
+
green
|
| 1950 |
+
greenery
|
| 1951 |
+
greet
|
| 1952 |
+
greeting
|
| 1953 |
+
greeting card
|
| 1954 |
+
greyhound
|
| 1955 |
+
grid
|
| 1956 |
+
griddle
|
| 1957 |
+
grill
|
| 1958 |
+
grille
|
| 1959 |
+
grilled eel
|
| 1960 |
+
grind
|
| 1961 |
+
grinder
|
| 1962 |
+
grits
|
| 1963 |
+
grocery bag
|
| 1964 |
+
grotto
|
| 1965 |
+
ground squirrel
|
| 1966 |
+
group
|
| 1967 |
+
group photo
|
| 1968 |
+
grove
|
| 1969 |
+
grow
|
| 1970 |
+
guacamole
|
| 1971 |
+
guard
|
| 1972 |
+
guard dog
|
| 1973 |
+
guest house
|
| 1974 |
+
guest room
|
| 1975 |
+
guide
|
| 1976 |
+
guinea pig
|
| 1977 |
+
guitar
|
| 1978 |
+
guitarist
|
| 1979 |
+
gulf
|
| 1980 |
+
gull
|
| 1981 |
+
gun
|
| 1982 |
+
gundam
|
| 1983 |
+
gurdwara
|
| 1984 |
+
guzheng
|
| 1985 |
+
gym
|
| 1986 |
+
gymnast
|
| 1987 |
+
habitat
|
| 1988 |
+
hacker
|
| 1989 |
+
hail
|
| 1990 |
+
hair
|
| 1991 |
+
hair color
|
| 1992 |
+
hair spray
|
| 1993 |
+
hairbrush
|
| 1994 |
+
haircut
|
| 1995 |
+
hairgrip
|
| 1996 |
+
hairnet
|
| 1997 |
+
hairpin
|
| 1998 |
+
hairstyle
|
| 1999 |
+
half
|
| 2000 |
+
hall
|
| 2001 |
+
halloween
|
| 2002 |
+
halloween costume
|
| 2003 |
+
halloween pumpkin
|
| 2004 |
+
halter top
|
| 2005 |
+
hamburg
|
| 2006 |
+
hamburger
|
| 2007 |
+
hami melon
|
| 2008 |
+
hammer
|
| 2009 |
+
hammock
|
| 2010 |
+
hamper
|
| 2011 |
+
hamster
|
| 2012 |
+
hand dryer
|
| 2013 |
+
hand glass
|
| 2014 |
+
hand towel
|
| 2015 |
+
handbag
|
| 2016 |
+
handball
|
| 2017 |
+
handcuff
|
| 2018 |
+
handgun
|
| 2019 |
+
handkerchief
|
| 2020 |
+
handle
|
| 2021 |
+
handsaw
|
| 2022 |
+
handshake
|
| 2023 |
+
handstand
|
| 2024 |
+
handwriting
|
| 2025 |
+
hanfu
|
| 2026 |
+
hang
|
| 2027 |
+
hangar
|
| 2028 |
+
hanger
|
| 2029 |
+
happiness
|
| 2030 |
+
harbor
|
| 2031 |
+
harbor seal
|
| 2032 |
+
hard rock artist
|
| 2033 |
+
hardback book
|
| 2034 |
+
safety helmet
|
| 2035 |
+
hardware
|
| 2036 |
+
hardware store
|
| 2037 |
+
hardwood
|
| 2038 |
+
hardwood floor
|
| 2039 |
+
mouth organ
|
| 2040 |
+
pipe organ
|
| 2041 |
+
harpsichord
|
| 2042 |
+
harvest
|
| 2043 |
+
harvester
|
| 2044 |
+
hassock
|
| 2045 |
+
hat
|
| 2046 |
+
hatbox
|
| 2047 |
+
hautboy
|
| 2048 |
+
hawthorn
|
| 2049 |
+
hay
|
| 2050 |
+
hayfield
|
| 2051 |
+
hazelnut
|
| 2052 |
+
head
|
| 2053 |
+
head coach
|
| 2054 |
+
headlight
|
| 2055 |
+
headboard
|
| 2056 |
+
headdress
|
| 2057 |
+
headland
|
| 2058 |
+
headquarter
|
| 2059 |
+
hearing
|
| 2060 |
+
heart
|
| 2061 |
+
heart shape
|
| 2062 |
+
heat
|
| 2063 |
+
heater
|
| 2064 |
+
heather
|
| 2065 |
+
hedge
|
| 2066 |
+
hedgehog
|
| 2067 |
+
heel
|
| 2068 |
+
helicopter
|
| 2069 |
+
heliport
|
| 2070 |
+
helmet
|
| 2071 |
+
help
|
| 2072 |
+
hen
|
| 2073 |
+
henna
|
| 2074 |
+
herb
|
| 2075 |
+
herd
|
| 2076 |
+
hermit crab
|
| 2077 |
+
hero
|
| 2078 |
+
heron
|
| 2079 |
+
hibiscus
|
| 2080 |
+
hibiscus flower
|
| 2081 |
+
hide
|
| 2082 |
+
high bar
|
| 2083 |
+
high heel
|
| 2084 |
+
highland
|
| 2085 |
+
highlight
|
| 2086 |
+
hike
|
| 2087 |
+
hiker
|
| 2088 |
+
hiking boot
|
| 2089 |
+
hiking equipment
|
| 2090 |
+
hill
|
| 2091 |
+
hill country
|
| 2092 |
+
hill station
|
| 2093 |
+
hillside
|
| 2094 |
+
hindu temple
|
| 2095 |
+
hinge
|
| 2096 |
+
hip
|
| 2097 |
+
hip hop artist
|
| 2098 |
+
hippo
|
| 2099 |
+
historian
|
| 2100 |
+
historic
|
| 2101 |
+
history
|
| 2102 |
+
hockey
|
| 2103 |
+
hockey arena
|
| 2104 |
+
hockey game
|
| 2105 |
+
hockey player
|
| 2106 |
+
hockey stick
|
| 2107 |
+
hoe
|
| 2108 |
+
hole
|
| 2109 |
+
vacation
|
| 2110 |
+
holly
|
| 2111 |
+
holothurian
|
| 2112 |
+
home
|
| 2113 |
+
home appliance
|
| 2114 |
+
home base
|
| 2115 |
+
home decor
|
| 2116 |
+
home interior
|
| 2117 |
+
home office
|
| 2118 |
+
home theater
|
| 2119 |
+
homework
|
| 2120 |
+
hummus
|
| 2121 |
+
honey
|
| 2122 |
+
beehive
|
| 2123 |
+
honeymoon
|
| 2124 |
+
hood
|
| 2125 |
+
hoodie
|
| 2126 |
+
hook
|
| 2127 |
+
jump
|
| 2128 |
+
horizon
|
| 2129 |
+
hornbill
|
| 2130 |
+
horned cow
|
| 2131 |
+
hornet
|
| 2132 |
+
horror
|
| 2133 |
+
horror film
|
| 2134 |
+
horse blanket
|
| 2135 |
+
horse cart
|
| 2136 |
+
horse farm
|
| 2137 |
+
horse ride
|
| 2138 |
+
horseback
|
| 2139 |
+
horseshoe
|
| 2140 |
+
hose
|
| 2141 |
+
hospital
|
| 2142 |
+
hospital bed
|
| 2143 |
+
hospital room
|
| 2144 |
+
host
|
| 2145 |
+
inn
|
| 2146 |
+
hot
|
| 2147 |
+
hot air balloon
|
| 2148 |
+
hot dog
|
| 2149 |
+
hot sauce
|
| 2150 |
+
hot spring
|
| 2151 |
+
hotel
|
| 2152 |
+
hotel lobby
|
| 2153 |
+
hotel room
|
| 2154 |
+
hotplate
|
| 2155 |
+
hourglass
|
| 2156 |
+
house
|
| 2157 |
+
house exterior
|
| 2158 |
+
houseplant
|
| 2159 |
+
hoverboard
|
| 2160 |
+
howler
|
| 2161 |
+
huddle
|
| 2162 |
+
hug
|
| 2163 |
+
hula hoop
|
| 2164 |
+
person
|
| 2165 |
+
humidifier
|
| 2166 |
+
hummingbird
|
| 2167 |
+
humpback whale
|
| 2168 |
+
hunt
|
| 2169 |
+
hunting lodge
|
| 2170 |
+
hurdle
|
| 2171 |
+
hurricane
|
| 2172 |
+
husky
|
| 2173 |
+
hut
|
| 2174 |
+
hyaena
|
| 2175 |
+
hybrid
|
| 2176 |
+
hydrangea
|
| 2177 |
+
hydrant
|
| 2178 |
+
seaplane
|
| 2179 |
+
ice
|
| 2180 |
+
ice bag
|
| 2181 |
+
polar bear
|
| 2182 |
+
ice cave
|
| 2183 |
+
icecream
|
| 2184 |
+
ice cream cone
|
| 2185 |
+
ice cream parlor
|
| 2186 |
+
ice cube
|
| 2187 |
+
ice floe
|
| 2188 |
+
ice hockey player
|
| 2189 |
+
ice hockey team
|
| 2190 |
+
lollipop
|
| 2191 |
+
ice maker
|
| 2192 |
+
rink
|
| 2193 |
+
ice sculpture
|
| 2194 |
+
ice shelf
|
| 2195 |
+
skate
|
| 2196 |
+
ice skating
|
| 2197 |
+
iceberg
|
| 2198 |
+
icicle
|
| 2199 |
+
icing
|
| 2200 |
+
icon
|
| 2201 |
+
id photo
|
| 2202 |
+
identity card
|
| 2203 |
+
igloo
|
| 2204 |
+
light
|
| 2205 |
+
iguana
|
| 2206 |
+
illuminate
|
| 2207 |
+
illustration
|
| 2208 |
+
image
|
| 2209 |
+
impala
|
| 2210 |
+
incense
|
| 2211 |
+
independence day
|
| 2212 |
+
individual
|
| 2213 |
+
indoor
|
| 2214 |
+
indoor rower
|
| 2215 |
+
induction cooker
|
| 2216 |
+
industrial area
|
| 2217 |
+
industry
|
| 2218 |
+
infantry
|
| 2219 |
+
inflatable boat
|
| 2220 |
+
information desk
|
| 2221 |
+
infrastructure
|
| 2222 |
+
ingredient
|
| 2223 |
+
inhalator
|
| 2224 |
+
injection
|
| 2225 |
+
injury
|
| 2226 |
+
ink
|
| 2227 |
+
inking pad
|
| 2228 |
+
inlet
|
| 2229 |
+
inscription
|
| 2230 |
+
insect
|
| 2231 |
+
install
|
| 2232 |
+
instrument
|
| 2233 |
+
insulated cup
|
| 2234 |
+
interaction
|
| 2235 |
+
interior design
|
| 2236 |
+
website
|
| 2237 |
+
intersection
|
| 2238 |
+
interview
|
| 2239 |
+
invertebrate
|
| 2240 |
+
invitation
|
| 2241 |
+
ipad
|
| 2242 |
+
iphone
|
| 2243 |
+
ipod
|
| 2244 |
+
iris
|
| 2245 |
+
iron
|
| 2246 |
+
ironing board
|
| 2247 |
+
irrigation system
|
| 2248 |
+
island
|
| 2249 |
+
islet
|
| 2250 |
+
isopod
|
| 2251 |
+
ivory
|
| 2252 |
+
ivy
|
| 2253 |
+
izakaya
|
| 2254 |
+
jack
|
| 2255 |
+
jackcrab
|
| 2256 |
+
jacket
|
| 2257 |
+
jacuzzi
|
| 2258 |
+
jade
|
| 2259 |
+
jaguar
|
| 2260 |
+
jail cell
|
| 2261 |
+
jam
|
| 2262 |
+
japanese garden
|
| 2263 |
+
jasmine
|
| 2264 |
+
jaw
|
| 2265 |
+
jay
|
| 2266 |
+
jazz
|
| 2267 |
+
jazz artist
|
| 2268 |
+
jazz fusion artist
|
| 2269 |
+
jeans
|
| 2270 |
+
jeep
|
| 2271 |
+
jelly
|
| 2272 |
+
jelly bean
|
| 2273 |
+
jellyfish
|
| 2274 |
+
jet
|
| 2275 |
+
motorboat
|
| 2276 |
+
jewel
|
| 2277 |
+
jewellery
|
| 2278 |
+
jewelry shop
|
| 2279 |
+
jigsaw puzzle
|
| 2280 |
+
rickshaw
|
| 2281 |
+
jockey
|
| 2282 |
+
jockey cap
|
| 2283 |
+
jog
|
| 2284 |
+
joint
|
| 2285 |
+
journalist
|
| 2286 |
+
joystick
|
| 2287 |
+
judge
|
| 2288 |
+
jug
|
| 2289 |
+
juggle
|
| 2290 |
+
juice
|
| 2291 |
+
juicer
|
| 2292 |
+
jujube
|
| 2293 |
+
jump rope
|
| 2294 |
+
jumpsuit
|
| 2295 |
+
jungle
|
| 2296 |
+
junkyard
|
| 2297 |
+
kale
|
| 2298 |
+
kaleidoscope
|
| 2299 |
+
kangaroo
|
| 2300 |
+
karaoke
|
| 2301 |
+
karate
|
| 2302 |
+
karting
|
| 2303 |
+
kasbah
|
| 2304 |
+
kayak
|
| 2305 |
+
kebab
|
| 2306 |
+
key
|
| 2307 |
+
keycard
|
| 2308 |
+
khaki
|
| 2309 |
+
kick
|
| 2310 |
+
kilt
|
| 2311 |
+
kimono
|
| 2312 |
+
kindergarden classroom
|
| 2313 |
+
kindergarten
|
| 2314 |
+
king
|
| 2315 |
+
king crab
|
| 2316 |
+
kiss
|
| 2317 |
+
kit
|
| 2318 |
+
kitchen
|
| 2319 |
+
kitchen cabinet
|
| 2320 |
+
kitchen counter
|
| 2321 |
+
kitchen floor
|
| 2322 |
+
kitchen hood
|
| 2323 |
+
kitchen island
|
| 2324 |
+
kitchen sink
|
| 2325 |
+
kitchen table
|
| 2326 |
+
kitchen utensil
|
| 2327 |
+
kitchen window
|
| 2328 |
+
kitchenware
|
| 2329 |
+
kite
|
| 2330 |
+
kiwi
|
| 2331 |
+
knee pad
|
| 2332 |
+
kneel
|
| 2333 |
+
knife
|
| 2334 |
+
rider
|
| 2335 |
+
knit
|
| 2336 |
+
knitting needle
|
| 2337 |
+
knob
|
| 2338 |
+
knocker
|
| 2339 |
+
knot
|
| 2340 |
+
koala
|
| 2341 |
+
koi
|
| 2342 |
+
ktv
|
| 2343 |
+
laboratory
|
| 2344 |
+
lab coat
|
| 2345 |
+
label
|
| 2346 |
+
labrador
|
| 2347 |
+
maze
|
| 2348 |
+
lace
|
| 2349 |
+
lace dress
|
| 2350 |
+
ladder
|
| 2351 |
+
ladle
|
| 2352 |
+
ladybird
|
| 2353 |
+
lagoon
|
| 2354 |
+
lake
|
| 2355 |
+
lake district
|
| 2356 |
+
lake house
|
| 2357 |
+
lakeshore
|
| 2358 |
+
lamb
|
| 2359 |
+
lamb chop
|
| 2360 |
+
lamp post
|
| 2361 |
+
lamp shade
|
| 2362 |
+
spear
|
| 2363 |
+
land
|
| 2364 |
+
land vehicle
|
| 2365 |
+
landfill
|
| 2366 |
+
landing
|
| 2367 |
+
landing deck
|
| 2368 |
+
landmark
|
| 2369 |
+
landscape
|
| 2370 |
+
landslide
|
| 2371 |
+
lanyard
|
| 2372 |
+
lantern
|
| 2373 |
+
lap
|
| 2374 |
+
laptop
|
| 2375 |
+
laptop keyboard
|
| 2376 |
+
larva
|
| 2377 |
+
lasagne
|
| 2378 |
+
laser
|
| 2379 |
+
lash
|
| 2380 |
+
lasso
|
| 2381 |
+
latch
|
| 2382 |
+
latex
|
| 2383 |
+
latte
|
| 2384 |
+
laugh
|
| 2385 |
+
launch
|
| 2386 |
+
launch event
|
| 2387 |
+
launch party
|
| 2388 |
+
laundromat
|
| 2389 |
+
laundry
|
| 2390 |
+
laundry basket
|
| 2391 |
+
laundry room
|
| 2392 |
+
lava
|
| 2393 |
+
lavender
|
| 2394 |
+
lawn
|
| 2395 |
+
lawn wedding
|
| 2396 |
+
lawyer
|
| 2397 |
+
lay
|
| 2398 |
+
lead
|
| 2399 |
+
lead singer
|
| 2400 |
+
lead to
|
| 2401 |
+
leader
|
| 2402 |
+
leak
|
| 2403 |
+
lean
|
| 2404 |
+
learn
|
| 2405 |
+
leash
|
| 2406 |
+
leather
|
| 2407 |
+
leather jacket
|
| 2408 |
+
leather shoe
|
| 2409 |
+
speech
|
| 2410 |
+
lecture hall
|
| 2411 |
+
lecture room
|
| 2412 |
+
ledge
|
| 2413 |
+
leftover
|
| 2414 |
+
leg
|
| 2415 |
+
legend
|
| 2416 |
+
legging
|
| 2417 |
+
legislative chamber
|
| 2418 |
+
lego
|
| 2419 |
+
legume
|
| 2420 |
+
lemon
|
| 2421 |
+
lemon juice
|
| 2422 |
+
lemonade
|
| 2423 |
+
lemur
|
| 2424 |
+
lens
|
| 2425 |
+
lens flare
|
| 2426 |
+
lentil
|
| 2427 |
+
leopard
|
| 2428 |
+
leotard
|
| 2429 |
+
tights
|
| 2430 |
+
leprechaun
|
| 2431 |
+
lesson
|
| 2432 |
+
letter
|
| 2433 |
+
mailbox
|
| 2434 |
+
letter logo
|
| 2435 |
+
lettering
|
| 2436 |
+
lettuce
|
| 2437 |
+
level
|
| 2438 |
+
library
|
| 2439 |
+
license
|
| 2440 |
+
license plate
|
| 2441 |
+
lichen
|
| 2442 |
+
lick
|
| 2443 |
+
lid
|
| 2444 |
+
lie
|
| 2445 |
+
life belt
|
| 2446 |
+
life jacket
|
| 2447 |
+
lifeboat
|
| 2448 |
+
lifeguard
|
| 2449 |
+
lift
|
| 2450 |
+
light fixture
|
| 2451 |
+
light show
|
| 2452 |
+
light switch
|
| 2453 |
+
lighting
|
| 2454 |
+
lightning
|
| 2455 |
+
lightning rod
|
| 2456 |
+
lilac
|
| 2457 |
+
lily
|
| 2458 |
+
limb
|
| 2459 |
+
lime
|
| 2460 |
+
limestone
|
| 2461 |
+
limo
|
| 2462 |
+
line
|
| 2463 |
+
line art
|
| 2464 |
+
line up
|
| 2465 |
+
linen
|
| 2466 |
+
liner
|
| 2467 |
+
lion
|
| 2468 |
+
lip balm
|
| 2469 |
+
lipstick
|
| 2470 |
+
liquid
|
| 2471 |
+
liquor store
|
| 2472 |
+
list
|
| 2473 |
+
litchi
|
| 2474 |
+
live
|
| 2475 |
+
livestock
|
| 2476 |
+
living room
|
| 2477 |
+
living space
|
| 2478 |
+
lizard
|
| 2479 |
+
load
|
| 2480 |
+
loading dock
|
| 2481 |
+
loafer
|
| 2482 |
+
hallway
|
| 2483 |
+
locate
|
| 2484 |
+
lock
|
| 2485 |
+
lock chamber
|
| 2486 |
+
locker
|
| 2487 |
+
loft
|
| 2488 |
+
log
|
| 2489 |
+
log cabin
|
| 2490 |
+
logo
|
| 2491 |
+
loki
|
| 2492 |
+
long hair
|
| 2493 |
+
longboard
|
| 2494 |
+
loom
|
| 2495 |
+
loop
|
| 2496 |
+
lose
|
| 2497 |
+
lottery
|
| 2498 |
+
lotus
|
| 2499 |
+
love
|
| 2500 |
+
loveseat
|
| 2501 |
+
luggage
|
| 2502 |
+
lumber
|
| 2503 |
+
lumberjack
|
| 2504 |
+
lunch
|
| 2505 |
+
lunch box
|
| 2506 |
+
lush
|
| 2507 |
+
luxury
|
| 2508 |
+
luxury yacht
|
| 2509 |
+
mac
|
| 2510 |
+
macadamia
|
| 2511 |
+
macaque
|
| 2512 |
+
macaroni
|
| 2513 |
+
macaw
|
| 2514 |
+
machete
|
| 2515 |
+
machine
|
| 2516 |
+
machine gun
|
| 2517 |
+
magazine
|
| 2518 |
+
magic
|
| 2519 |
+
magician
|
| 2520 |
+
magnet
|
| 2521 |
+
magnifying glass
|
| 2522 |
+
magnolia
|
| 2523 |
+
magpie
|
| 2524 |
+
mahjong
|
| 2525 |
+
mahout
|
| 2526 |
+
maid
|
| 2527 |
+
chain mail
|
| 2528 |
+
mail slot
|
| 2529 |
+
make
|
| 2530 |
+
makeover
|
| 2531 |
+
makeup artist
|
| 2532 |
+
makeup tool
|
| 2533 |
+
mallard
|
| 2534 |
+
mallard duck
|
| 2535 |
+
mallet
|
| 2536 |
+
mammal
|
| 2537 |
+
mammoth
|
| 2538 |
+
man
|
| 2539 |
+
management
|
| 2540 |
+
manager
|
| 2541 |
+
manatee
|
| 2542 |
+
mandala
|
| 2543 |
+
mandarin orange
|
| 2544 |
+
mandarine
|
| 2545 |
+
mane
|
| 2546 |
+
manga
|
| 2547 |
+
manger
|
| 2548 |
+
mango
|
| 2549 |
+
mangosteen
|
| 2550 |
+
mangrove
|
| 2551 |
+
manhattan
|
| 2552 |
+
manhole
|
| 2553 |
+
manhole cover
|
| 2554 |
+
manicure
|
| 2555 |
+
mannequin
|
| 2556 |
+
manor house
|
| 2557 |
+
mansion
|
| 2558 |
+
mantid
|
| 2559 |
+
mantle
|
| 2560 |
+
manufactured home
|
| 2561 |
+
manufacturing
|
| 2562 |
+
manuscript
|
| 2563 |
+
map
|
| 2564 |
+
maple
|
| 2565 |
+
maple leaf
|
| 2566 |
+
maple syrup
|
| 2567 |
+
maraca
|
| 2568 |
+
marathon
|
| 2569 |
+
marble
|
| 2570 |
+
march
|
| 2571 |
+
marching band
|
| 2572 |
+
mare
|
| 2573 |
+
marigold
|
| 2574 |
+
marine
|
| 2575 |
+
marine invertebrate
|
| 2576 |
+
marine mammal
|
| 2577 |
+
puppet
|
| 2578 |
+
mark
|
| 2579 |
+
market
|
| 2580 |
+
market square
|
| 2581 |
+
market stall
|
| 2582 |
+
marriage
|
| 2583 |
+
martial
|
| 2584 |
+
martial artist
|
| 2585 |
+
martial arts gym
|
| 2586 |
+
martini
|
| 2587 |
+
martini glass
|
| 2588 |
+
mascara
|
| 2589 |
+
mascot
|
| 2590 |
+
mashed potato
|
| 2591 |
+
masher
|
| 2592 |
+
mask
|
| 2593 |
+
massage
|
| 2594 |
+
mast
|
| 2595 |
+
mat
|
| 2596 |
+
matador
|
| 2597 |
+
match
|
| 2598 |
+
matchbox
|
| 2599 |
+
material
|
| 2600 |
+
mattress
|
| 2601 |
+
mausoleum
|
| 2602 |
+
maxi dress
|
| 2603 |
+
meal
|
| 2604 |
+
measuring cup
|
| 2605 |
+
measuring tape
|
| 2606 |
+
meat
|
| 2607 |
+
meatball
|
| 2608 |
+
mechanic
|
| 2609 |
+
mechanical fan
|
| 2610 |
+
medal
|
| 2611 |
+
media
|
| 2612 |
+
medical equipment
|
| 2613 |
+
medical image
|
| 2614 |
+
medical staff
|
| 2615 |
+
medicine cabinet
|
| 2616 |
+
medieval
|
| 2617 |
+
medina
|
| 2618 |
+
meditation
|
| 2619 |
+
meerkat
|
| 2620 |
+
meet
|
| 2621 |
+
melon
|
| 2622 |
+
monument
|
| 2623 |
+
menu
|
| 2624 |
+
mermaid
|
| 2625 |
+
net
|
| 2626 |
+
mess
|
| 2627 |
+
messenger bag
|
| 2628 |
+
metal
|
| 2629 |
+
metal artist
|
| 2630 |
+
metal detector
|
| 2631 |
+
meter
|
| 2632 |
+
mezzanine
|
| 2633 |
+
microphone
|
| 2634 |
+
microscope
|
| 2635 |
+
microwave
|
| 2636 |
+
midnight
|
| 2637 |
+
milestone
|
| 2638 |
+
military uniform
|
| 2639 |
+
milk
|
| 2640 |
+
milk can
|
| 2641 |
+
milk tea
|
| 2642 |
+
milkshake
|
| 2643 |
+
mill
|
| 2644 |
+
mine
|
| 2645 |
+
miner
|
| 2646 |
+
mineral
|
| 2647 |
+
mineral water
|
| 2648 |
+
miniskirt
|
| 2649 |
+
miniature
|
| 2650 |
+
minibus
|
| 2651 |
+
minister
|
| 2652 |
+
minivan
|
| 2653 |
+
mint
|
| 2654 |
+
mint candy
|
| 2655 |
+
mirror
|
| 2656 |
+
miss
|
| 2657 |
+
missile
|
| 2658 |
+
mission
|
| 2659 |
+
mistletoe
|
| 2660 |
+
mix
|
| 2661 |
+
mixer
|
| 2662 |
+
mixing bowl
|
| 2663 |
+
mixture
|
| 2664 |
+
moat
|
| 2665 |
+
mobility scooter
|
| 2666 |
+
model
|
| 2667 |
+
model car
|
| 2668 |
+
modern
|
| 2669 |
+
modern tower
|
| 2670 |
+
moisture
|
| 2671 |
+
mold
|
| 2672 |
+
molding
|
| 2673 |
+
mole
|
| 2674 |
+
monarch
|
| 2675 |
+
money
|
| 2676 |
+
monitor
|
| 2677 |
+
monk
|
| 2678 |
+
monkey
|
| 2679 |
+
monkey wrench
|
| 2680 |
+
monochrome
|
| 2681 |
+
monocycle
|
| 2682 |
+
monster truck
|
| 2683 |
+
moon
|
| 2684 |
+
moon cake
|
| 2685 |
+
moonlight
|
| 2686 |
+
moor
|
| 2687 |
+
moose
|
| 2688 |
+
swab
|
| 2689 |
+
moped
|
| 2690 |
+
morning
|
| 2691 |
+
morning fog
|
| 2692 |
+
morning light
|
| 2693 |
+
morning sun
|
| 2694 |
+
mortar
|
| 2695 |
+
mosaic
|
| 2696 |
+
mosque
|
| 2697 |
+
mosquito
|
| 2698 |
+
moss
|
| 2699 |
+
motel
|
| 2700 |
+
moth
|
| 2701 |
+
mother
|
| 2702 |
+
motherboard
|
| 2703 |
+
motif
|
| 2704 |
+
sport
|
| 2705 |
+
motor
|
| 2706 |
+
motorbike
|
| 2707 |
+
motorcycle
|
| 2708 |
+
motorcycle helmet
|
| 2709 |
+
motorcycle racer
|
| 2710 |
+
motorcyclist
|
| 2711 |
+
motorsport
|
| 2712 |
+
mound
|
| 2713 |
+
mountain
|
| 2714 |
+
mountain bike
|
| 2715 |
+
mountain biker
|
| 2716 |
+
mountain biking
|
| 2717 |
+
mountain gorilla
|
| 2718 |
+
mountain lake
|
| 2719 |
+
mountain landscape
|
| 2720 |
+
mountain pass
|
| 2721 |
+
mountain path
|
| 2722 |
+
mountain range
|
| 2723 |
+
mountain river
|
| 2724 |
+
mountain snowy
|
| 2725 |
+
mountain stream
|
| 2726 |
+
mountain view
|
| 2727 |
+
mountain village
|
| 2728 |
+
mountaineer
|
| 2729 |
+
mountaineering bag
|
| 2730 |
+
mouse
|
| 2731 |
+
mousepad
|
| 2732 |
+
mousetrap
|
| 2733 |
+
mouth
|
| 2734 |
+
mouthwash
|
| 2735 |
+
move
|
| 2736 |
+
movie poster
|
| 2737 |
+
movie ticket
|
| 2738 |
+
mower
|
| 2739 |
+
mp3 player
|
| 2740 |
+
mr
|
| 2741 |
+
mud
|
| 2742 |
+
muffin
|
| 2743 |
+
mug
|
| 2744 |
+
mulberry
|
| 2745 |
+
mulch
|
| 2746 |
+
mule
|
| 2747 |
+
municipality
|
| 2748 |
+
mural
|
| 2749 |
+
muscle
|
| 2750 |
+
muscle car
|
| 2751 |
+
museum
|
| 2752 |
+
mushroom
|
| 2753 |
+
music
|
| 2754 |
+
music festival
|
| 2755 |
+
music stool
|
| 2756 |
+
music studio
|
| 2757 |
+
music video performer
|
| 2758 |
+
musical keyboard
|
| 2759 |
+
musician
|
| 2760 |
+
mussel
|
| 2761 |
+
mustard
|
| 2762 |
+
mythology
|
| 2763 |
+
nacho
|
| 2764 |
+
nail polish
|
| 2765 |
+
nailfile
|
| 2766 |
+
nanny
|
| 2767 |
+
napkin
|
| 2768 |
+
narrow
|
| 2769 |
+
national flag
|
| 2770 |
+
nativity scene
|
| 2771 |
+
natural history museum
|
| 2772 |
+
nature
|
| 2773 |
+
nature reserve
|
| 2774 |
+
navigation
|
| 2775 |
+
navratri
|
| 2776 |
+
navy
|
| 2777 |
+
nebula
|
| 2778 |
+
neck
|
| 2779 |
+
neckband
|
| 2780 |
+
necklace
|
| 2781 |
+
neckline
|
| 2782 |
+
nectar
|
| 2783 |
+
nectarine
|
| 2784 |
+
needle
|
| 2785 |
+
neighbor
|
| 2786 |
+
neighbourhood
|
| 2787 |
+
neon
|
| 2788 |
+
neon light
|
| 2789 |
+
nerve
|
| 2790 |
+
nest
|
| 2791 |
+
new year
|
| 2792 |
+
newborn
|
| 2793 |
+
newfoundland
|
| 2794 |
+
newlywed
|
| 2795 |
+
news
|
| 2796 |
+
news conference
|
| 2797 |
+
newsstand
|
| 2798 |
+
night
|
| 2799 |
+
night market
|
| 2800 |
+
night sky
|
| 2801 |
+
night view
|
| 2802 |
+
nightclub
|
| 2803 |
+
nightstand
|
| 2804 |
+
noodle
|
| 2805 |
+
nose
|
| 2806 |
+
noseband
|
| 2807 |
+
note
|
| 2808 |
+
notebook
|
| 2809 |
+
notepad
|
| 2810 |
+
notepaper
|
| 2811 |
+
notice
|
| 2812 |
+
number icon
|
| 2813 |
+
nun
|
| 2814 |
+
nurse
|
| 2815 |
+
nursery
|
| 2816 |
+
nursing home
|
| 2817 |
+
nut
|
| 2818 |
+
nutcracker
|
| 2819 |
+
oak
|
| 2820 |
+
oak tree
|
| 2821 |
+
oar
|
| 2822 |
+
oasis
|
| 2823 |
+
oast house
|
| 2824 |
+
oatmeal
|
| 2825 |
+
oats
|
| 2826 |
+
obelisk
|
| 2827 |
+
observation tower
|
| 2828 |
+
observatory
|
| 2829 |
+
obstacle course
|
| 2830 |
+
sea
|
| 2831 |
+
octopus
|
| 2832 |
+
offer
|
| 2833 |
+
office
|
| 2834 |
+
office building
|
| 2835 |
+
office chair
|
| 2836 |
+
office cubicle
|
| 2837 |
+
office desk
|
| 2838 |
+
office supply
|
| 2839 |
+
office window
|
| 2840 |
+
officer
|
| 2841 |
+
official
|
| 2842 |
+
oil
|
| 2843 |
+
oil lamp
|
| 2844 |
+
oil painting
|
| 2845 |
+
oilrig
|
| 2846 |
+
okra
|
| 2847 |
+
old photo
|
| 2848 |
+
olive
|
| 2849 |
+
olive oil
|
| 2850 |
+
olive tree
|
| 2851 |
+
omelet
|
| 2852 |
+
onion
|
| 2853 |
+
onion ring
|
| 2854 |
+
opal
|
| 2855 |
+
open
|
| 2856 |
+
opening
|
| 2857 |
+
opening ceremony
|
| 2858 |
+
opera
|
| 2859 |
+
opera house
|
| 2860 |
+
operate
|
| 2861 |
+
operating room
|
| 2862 |
+
operation
|
| 2863 |
+
optical shop
|
| 2864 |
+
orangutan
|
| 2865 |
+
orange
|
| 2866 |
+
orange juice
|
| 2867 |
+
orange tree
|
| 2868 |
+
orangery
|
| 2869 |
+
orbit
|
| 2870 |
+
orchard
|
| 2871 |
+
orchestra pit
|
| 2872 |
+
orchid
|
| 2873 |
+
order
|
| 2874 |
+
organization
|
| 2875 |
+
origami
|
| 2876 |
+
ornament
|
| 2877 |
+
osprey
|
| 2878 |
+
ostrich
|
| 2879 |
+
otter
|
| 2880 |
+
out
|
| 2881 |
+
outcrop
|
| 2882 |
+
outdoor
|
| 2883 |
+
outhouse
|
| 2884 |
+
electric outlet
|
| 2885 |
+
outline
|
| 2886 |
+
oval
|
| 2887 |
+
oven
|
| 2888 |
+
overall
|
| 2889 |
+
overcoat
|
| 2890 |
+
overpass
|
| 2891 |
+
owl
|
| 2892 |
+
oyster
|
| 2893 |
+
teething ring
|
| 2894 |
+
pack
|
| 2895 |
+
package
|
| 2896 |
+
paddock
|
| 2897 |
+
police van
|
| 2898 |
+
padlock
|
| 2899 |
+
paella
|
| 2900 |
+
pagoda
|
| 2901 |
+
pain
|
| 2902 |
+
paint brush
|
| 2903 |
+
painter
|
| 2904 |
+
paisley bandanna
|
| 2905 |
+
palace
|
| 2906 |
+
palette
|
| 2907 |
+
paling
|
| 2908 |
+
pall
|
| 2909 |
+
palm tree
|
| 2910 |
+
pan
|
| 2911 |
+
pancake
|
| 2912 |
+
panda
|
| 2913 |
+
panel
|
| 2914 |
+
panorama
|
| 2915 |
+
pansy
|
| 2916 |
+
pant
|
| 2917 |
+
pantry
|
| 2918 |
+
pants
|
| 2919 |
+
pantyhose
|
| 2920 |
+
papaya
|
| 2921 |
+
paper
|
| 2922 |
+
paper bag
|
| 2923 |
+
paper cutter
|
| 2924 |
+
paper lantern
|
| 2925 |
+
paper plate
|
| 2926 |
+
paper towel
|
| 2927 |
+
paperback book
|
| 2928 |
+
paperweight
|
| 2929 |
+
parachute
|
| 2930 |
+
parade
|
| 2931 |
+
paradise
|
| 2932 |
+
parrot
|
| 2933 |
+
paramedic
|
| 2934 |
+
paraquet
|
| 2935 |
+
parasail
|
| 2936 |
+
paratrooper
|
| 2937 |
+
parchment
|
| 2938 |
+
parish
|
| 2939 |
+
park
|
| 2940 |
+
park bench
|
| 2941 |
+
parking
|
| 2942 |
+
parking garage
|
| 2943 |
+
parking meter
|
| 2944 |
+
parking sign
|
| 2945 |
+
parliament
|
| 2946 |
+
parsley
|
| 2947 |
+
participant
|
| 2948 |
+
partner
|
| 2949 |
+
partridge
|
| 2950 |
+
party
|
| 2951 |
+
party hat
|
| 2952 |
+
pass
|
| 2953 |
+
passage
|
| 2954 |
+
passbook
|
| 2955 |
+
passenger
|
| 2956 |
+
passenger ship
|
| 2957 |
+
passenger train
|
| 2958 |
+
passion fruit
|
| 2959 |
+
passport
|
| 2960 |
+
pasta
|
| 2961 |
+
paste
|
| 2962 |
+
pastry
|
| 2963 |
+
pasture
|
| 2964 |
+
patch
|
| 2965 |
+
patient
|
| 2966 |
+
pattern
|
| 2967 |
+
pavement
|
| 2968 |
+
pavilion
|
| 2969 |
+
paw
|
| 2970 |
+
pay
|
| 2971 |
+
payphone
|
| 2972 |
+
pea
|
| 2973 |
+
peace
|
| 2974 |
+
peach
|
| 2975 |
+
peacock
|
| 2976 |
+
peak
|
| 2977 |
+
peanut
|
| 2978 |
+
peanut butter
|
| 2979 |
+
pear
|
| 2980 |
+
pearl
|
| 2981 |
+
pebble
|
| 2982 |
+
pecan
|
| 2983 |
+
pedestrian
|
| 2984 |
+
pedestrian bridge
|
| 2985 |
+
pedestrian street
|
| 2986 |
+
peel
|
| 2987 |
+
peeler
|
| 2988 |
+
pegboard
|
| 2989 |
+
pegleg
|
| 2990 |
+
pelican
|
| 2991 |
+
pen
|
| 2992 |
+
penalty kick
|
| 2993 |
+
pencil
|
| 2994 |
+
pencil case
|
| 2995 |
+
pencil sharpener
|
| 2996 |
+
pencil skirt
|
| 2997 |
+
pendant
|
| 2998 |
+
pendulum
|
| 2999 |
+
penguin
|
| 3000 |
+
peninsula
|
| 3001 |
+
pennant
|
| 3002 |
+
penny
|
| 3003 |
+
piggy bank
|
| 3004 |
+
peony
|
| 3005 |
+
pepper
|
| 3006 |
+
pepper grinder
|
| 3007 |
+
peppercorn
|
| 3008 |
+
pepperoni
|
| 3009 |
+
perch
|
| 3010 |
+
perform
|
| 3011 |
+
performance
|
| 3012 |
+
performance arena
|
| 3013 |
+
perfume
|
| 3014 |
+
pergola
|
| 3015 |
+
persian cat
|
| 3016 |
+
persimmon
|
| 3017 |
+
personal care
|
| 3018 |
+
personal flotation device
|
| 3019 |
+
pest
|
| 3020 |
+
pet
|
| 3021 |
+
pet shop
|
| 3022 |
+
pet store
|
| 3023 |
+
petal
|
| 3024 |
+
petunia
|
| 3025 |
+
church bench
|
| 3026 |
+
pheasant
|
| 3027 |
+
phenomenon
|
| 3028 |
+
philosopher
|
| 3029 |
+
phone
|
| 3030 |
+
phonebook
|
| 3031 |
+
record player
|
| 3032 |
+
photo
|
| 3033 |
+
photo booth
|
| 3034 |
+
photo frame
|
| 3035 |
+
photography
|
| 3036 |
+
physicist
|
| 3037 |
+
physics laboratory
|
| 3038 |
+
pianist
|
| 3039 |
+
piano
|
| 3040 |
+
plectrum
|
| 3041 |
+
pick up
|
| 3042 |
+
pickle
|
| 3043 |
+
picnic
|
| 3044 |
+
picnic area
|
| 3045 |
+
picnic basket
|
| 3046 |
+
picnic table
|
| 3047 |
+
picture
|
| 3048 |
+
picture frame
|
| 3049 |
+
pie
|
| 3050 |
+
pigeon
|
| 3051 |
+
pilgrim
|
| 3052 |
+
tablet
|
| 3053 |
+
pillow
|
| 3054 |
+
pilot
|
| 3055 |
+
pilot boat
|
| 3056 |
+
pin
|
| 3057 |
+
pine
|
| 3058 |
+
pine cone
|
| 3059 |
+
pine forest
|
| 3060 |
+
pine nut
|
| 3061 |
+
pineapple
|
| 3062 |
+
table tennis table
|
| 3063 |
+
table tennis
|
| 3064 |
+
pink
|
| 3065 |
+
pint
|
| 3066 |
+
pipa
|
| 3067 |
+
pipe
|
| 3068 |
+
pipe bowl
|
| 3069 |
+
pirate
|
| 3070 |
+
pirate flag
|
| 3071 |
+
pirate ship
|
| 3072 |
+
pistachio
|
| 3073 |
+
ski slope
|
| 3074 |
+
pocket bread
|
| 3075 |
+
pitaya
|
| 3076 |
+
pitbull
|
| 3077 |
+
pitch
|
| 3078 |
+
pitcher
|
| 3079 |
+
pitcher plant
|
| 3080 |
+
pitchfork
|
| 3081 |
+
pizza
|
| 3082 |
+
pizza cutter
|
| 3083 |
+
pizza pan
|
| 3084 |
+
pizzeria
|
| 3085 |
+
placard
|
| 3086 |
+
place
|
| 3087 |
+
place mat
|
| 3088 |
+
plaid
|
| 3089 |
+
plain
|
| 3090 |
+
plan
|
| 3091 |
+
planet
|
| 3092 |
+
planet earth
|
| 3093 |
+
plank
|
| 3094 |
+
plant
|
| 3095 |
+
plantation
|
| 3096 |
+
planting
|
| 3097 |
+
plaque
|
| 3098 |
+
plaster
|
| 3099 |
+
plastic
|
| 3100 |
+
plasticine
|
| 3101 |
+
plateau
|
| 3102 |
+
platform
|
| 3103 |
+
platinum
|
| 3104 |
+
platter
|
| 3105 |
+
play
|
| 3106 |
+
play badminton
|
| 3107 |
+
play baseball
|
| 3108 |
+
play basketball
|
| 3109 |
+
play billiard
|
| 3110 |
+
play football
|
| 3111 |
+
play pong
|
| 3112 |
+
play tennis
|
| 3113 |
+
play volleyball
|
| 3114 |
+
player
|
| 3115 |
+
playground
|
| 3116 |
+
playhouse
|
| 3117 |
+
playing card
|
| 3118 |
+
playing chess
|
| 3119 |
+
playing golf
|
| 3120 |
+
playing mahjong
|
| 3121 |
+
playingfield
|
| 3122 |
+
playpen
|
| 3123 |
+
playroom
|
| 3124 |
+
plaza
|
| 3125 |
+
plier
|
| 3126 |
+
plot
|
| 3127 |
+
plow
|
| 3128 |
+
plug
|
| 3129 |
+
plug hat
|
| 3130 |
+
plum
|
| 3131 |
+
plumber
|
| 3132 |
+
plumbing fixture
|
| 3133 |
+
plume
|
| 3134 |
+
plywood
|
| 3135 |
+
pocket
|
| 3136 |
+
pocket watch
|
| 3137 |
+
pocketknife
|
| 3138 |
+
pod
|
| 3139 |
+
podium
|
| 3140 |
+
poetry
|
| 3141 |
+
poinsettia
|
| 3142 |
+
point
|
| 3143 |
+
pointer
|
| 3144 |
+
poker card
|
| 3145 |
+
poker chip
|
| 3146 |
+
poker table
|
| 3147 |
+
pole
|
| 3148 |
+
polecat
|
| 3149 |
+
police
|
| 3150 |
+
police car
|
| 3151 |
+
police dog
|
| 3152 |
+
police station
|
| 3153 |
+
politician
|
| 3154 |
+
polka dot
|
| 3155 |
+
pollen
|
| 3156 |
+
pollution
|
| 3157 |
+
polo
|
| 3158 |
+
polo neck
|
| 3159 |
+
polo shirt
|
| 3160 |
+
pomegranate
|
| 3161 |
+
pomeranian
|
| 3162 |
+
poncho
|
| 3163 |
+
pond
|
| 3164 |
+
ponytail
|
| 3165 |
+
poodle
|
| 3166 |
+
pool
|
| 3167 |
+
pop
|
| 3168 |
+
pop artist
|
| 3169 |
+
popcorn
|
| 3170 |
+
pope
|
| 3171 |
+
poppy
|
| 3172 |
+
porcelain
|
| 3173 |
+
porch
|
| 3174 |
+
pork
|
| 3175 |
+
porridge
|
| 3176 |
+
portable battery
|
| 3177 |
+
portal
|
| 3178 |
+
portfolio
|
| 3179 |
+
porthole
|
| 3180 |
+
portrait
|
| 3181 |
+
portrait session
|
| 3182 |
+
pose
|
| 3183 |
+
possum
|
| 3184 |
+
post
|
| 3185 |
+
post office
|
| 3186 |
+
stamp
|
| 3187 |
+
postcard
|
| 3188 |
+
poster
|
| 3189 |
+
poster page
|
| 3190 |
+
pot
|
| 3191 |
+
potato
|
| 3192 |
+
potato chip
|
| 3193 |
+
potato salad
|
| 3194 |
+
potholder
|
| 3195 |
+
potty
|
| 3196 |
+
pouch
|
| 3197 |
+
poultry
|
| 3198 |
+
pound
|
| 3199 |
+
pour
|
| 3200 |
+
powder
|
| 3201 |
+
power line
|
| 3202 |
+
power plugs and sockets
|
| 3203 |
+
power see
|
| 3204 |
+
power station
|
| 3205 |
+
practice
|
| 3206 |
+
Prague Castle
|
| 3207 |
+
prayer
|
| 3208 |
+
preacher
|
| 3209 |
+
premiere
|
| 3210 |
+
prescription
|
| 3211 |
+
show
|
| 3212 |
+
presentation
|
| 3213 |
+
president
|
| 3214 |
+
press room
|
| 3215 |
+
pressure cooker
|
| 3216 |
+
pretzel
|
| 3217 |
+
prince
|
| 3218 |
+
princess
|
| 3219 |
+
print
|
| 3220 |
+
printed page
|
| 3221 |
+
printer
|
| 3222 |
+
printing
|
| 3223 |
+
prison
|
| 3224 |
+
produce
|
| 3225 |
+
product
|
| 3226 |
+
profession
|
| 3227 |
+
professional
|
| 3228 |
+
professor
|
| 3229 |
+
project picture
|
| 3230 |
+
projection screen
|
| 3231 |
+
projector
|
| 3232 |
+
prom
|
| 3233 |
+
promenade
|
| 3234 |
+
propeller
|
| 3235 |
+
prophet
|
| 3236 |
+
proposal
|
| 3237 |
+
protective suit
|
| 3238 |
+
protest
|
| 3239 |
+
protester
|
| 3240 |
+
publication
|
| 3241 |
+
publicity portrait
|
| 3242 |
+
ice hockey
|
| 3243 |
+
pudding
|
| 3244 |
+
puddle
|
| 3245 |
+
puff
|
| 3246 |
+
puffin
|
| 3247 |
+
pug
|
| 3248 |
+
pull
|
| 3249 |
+
pulpit
|
| 3250 |
+
pulse
|
| 3251 |
+
pump
|
| 3252 |
+
pumpkin
|
| 3253 |
+
pumpkin pie
|
| 3254 |
+
pumpkin seed
|
| 3255 |
+
punch bag
|
| 3256 |
+
punch
|
| 3257 |
+
student
|
| 3258 |
+
purple
|
| 3259 |
+
push
|
| 3260 |
+
putt
|
| 3261 |
+
puzzle
|
| 3262 |
+
tower
|
| 3263 |
+
pyramid
|
| 3264 |
+
python
|
| 3265 |
+
qr code
|
| 3266 |
+
quail
|
| 3267 |
+
quarry
|
| 3268 |
+
quarter
|
| 3269 |
+
quartz
|
| 3270 |
+
queen
|
| 3271 |
+
quesadilla
|
| 3272 |
+
queue
|
| 3273 |
+
quiche
|
| 3274 |
+
quilt
|
| 3275 |
+
quilting
|
| 3276 |
+
quote
|
| 3277 |
+
rabbit
|
| 3278 |
+
raccoon
|
| 3279 |
+
race
|
| 3280 |
+
race track
|
| 3281 |
+
raceway
|
| 3282 |
+
race car
|
| 3283 |
+
racket
|
| 3284 |
+
radar
|
| 3285 |
+
radiator
|
| 3286 |
+
radio
|
| 3287 |
+
raft
|
| 3288 |
+
rag doll
|
| 3289 |
+
rail
|
| 3290 |
+
railcar
|
| 3291 |
+
railroad
|
| 3292 |
+
railroad bridge
|
| 3293 |
+
railway line
|
| 3294 |
+
railway station
|
| 3295 |
+
rain
|
| 3296 |
+
rain boot
|
| 3297 |
+
rainbow
|
| 3298 |
+
rainbow trout
|
| 3299 |
+
raincoat
|
| 3300 |
+
rainforest
|
| 3301 |
+
rainy
|
| 3302 |
+
raisin
|
| 3303 |
+
rake
|
| 3304 |
+
ram
|
| 3305 |
+
ramp
|
| 3306 |
+
rapeseed
|
| 3307 |
+
rapid
|
| 3308 |
+
rapper
|
| 3309 |
+
raspberry
|
| 3310 |
+
rat
|
| 3311 |
+
ratchet
|
| 3312 |
+
raven
|
| 3313 |
+
ravine
|
| 3314 |
+
ray
|
| 3315 |
+
razor
|
| 3316 |
+
razor blade
|
| 3317 |
+
read
|
| 3318 |
+
reading
|
| 3319 |
+
reamer
|
| 3320 |
+
rear
|
| 3321 |
+
rear light
|
| 3322 |
+
rear view
|
| 3323 |
+
rearview mirror
|
| 3324 |
+
receipt
|
| 3325 |
+
receive
|
| 3326 |
+
reception
|
| 3327 |
+
recipe
|
| 3328 |
+
record
|
| 3329 |
+
record producer
|
| 3330 |
+
recorder
|
| 3331 |
+
recording studio
|
| 3332 |
+
recreation room
|
| 3333 |
+
recreational vehicle
|
| 3334 |
+
rectangle
|
| 3335 |
+
recycling
|
| 3336 |
+
recycling bin
|
| 3337 |
+
red
|
| 3338 |
+
red carpet
|
| 3339 |
+
red flag
|
| 3340 |
+
red panda
|
| 3341 |
+
red wine
|
| 3342 |
+
redwood
|
| 3343 |
+
reed
|
| 3344 |
+
reef
|
| 3345 |
+
reel
|
| 3346 |
+
referee
|
| 3347 |
+
reflect
|
| 3348 |
+
reflection
|
| 3349 |
+
reflector
|
| 3350 |
+
register
|
| 3351 |
+
rein
|
| 3352 |
+
reindeer
|
| 3353 |
+
relax
|
| 3354 |
+
release
|
| 3355 |
+
relief
|
| 3356 |
+
religion
|
| 3357 |
+
religious
|
| 3358 |
+
relish
|
| 3359 |
+
remain
|
| 3360 |
+
remodel
|
| 3361 |
+
remote
|
| 3362 |
+
remove
|
| 3363 |
+
repair
|
| 3364 |
+
repair shop
|
| 3365 |
+
reptile
|
| 3366 |
+
rescue
|
| 3367 |
+
rescuer
|
| 3368 |
+
research
|
| 3369 |
+
researcher
|
| 3370 |
+
reservoir
|
| 3371 |
+
residence
|
| 3372 |
+
residential neighborhood
|
| 3373 |
+
resin
|
| 3374 |
+
resort
|
| 3375 |
+
resort town
|
| 3376 |
+
restaurant kitchen
|
| 3377 |
+
restaurant patio
|
| 3378 |
+
restroom
|
| 3379 |
+
retail
|
| 3380 |
+
retriever
|
| 3381 |
+
retro
|
| 3382 |
+
reveal
|
| 3383 |
+
rhinoceros
|
| 3384 |
+
rhododendron
|
| 3385 |
+
rib
|
| 3386 |
+
ribbon
|
| 3387 |
+
rice
|
| 3388 |
+
rice cooker
|
| 3389 |
+
rice field
|
| 3390 |
+
ride
|
| 3391 |
+
ridge
|
| 3392 |
+
riding
|
| 3393 |
+
rifle
|
| 3394 |
+
rim
|
| 3395 |
+
ring
|
| 3396 |
+
riot
|
| 3397 |
+
ripple
|
| 3398 |
+
rise
|
| 3399 |
+
rise building
|
| 3400 |
+
river
|
| 3401 |
+
river bank
|
| 3402 |
+
river boat
|
| 3403 |
+
river valley
|
| 3404 |
+
riverbed
|
| 3405 |
+
road
|
| 3406 |
+
road sign
|
| 3407 |
+
road trip
|
| 3408 |
+
roadside
|
| 3409 |
+
roast chicken
|
| 3410 |
+
robe
|
| 3411 |
+
robin
|
| 3412 |
+
robot
|
| 3413 |
+
stone
|
| 3414 |
+
rock arch
|
| 3415 |
+
rock artist
|
| 3416 |
+
rock band
|
| 3417 |
+
rock climber
|
| 3418 |
+
rock climbing
|
| 3419 |
+
rock concert
|
| 3420 |
+
rock face
|
| 3421 |
+
rock formation
|
| 3422 |
+
rocker
|
| 3423 |
+
rocket
|
| 3424 |
+
rocking chair
|
| 3425 |
+
rocky
|
| 3426 |
+
rodent
|
| 3427 |
+
rodeo
|
| 3428 |
+
rodeo arena
|
| 3429 |
+
roe
|
| 3430 |
+
roe deer
|
| 3431 |
+
roller
|
| 3432 |
+
coaster
|
| 3433 |
+
roller skate
|
| 3434 |
+
roller skates
|
| 3435 |
+
rolling pin
|
| 3436 |
+
romance
|
| 3437 |
+
romantic
|
| 3438 |
+
roof
|
| 3439 |
+
roof garden
|
| 3440 |
+
room
|
| 3441 |
+
room divider
|
| 3442 |
+
root
|
| 3443 |
+
root beer
|
| 3444 |
+
rope bridge
|
| 3445 |
+
rosary
|
| 3446 |
+
rose
|
| 3447 |
+
rosemary
|
| 3448 |
+
rosy cloud
|
| 3449 |
+
rottweiler
|
| 3450 |
+
round table
|
| 3451 |
+
router
|
| 3452 |
+
row
|
| 3453 |
+
rowan
|
| 3454 |
+
royal
|
| 3455 |
+
rubber stamp
|
| 3456 |
+
rubble
|
| 3457 |
+
rubik's cube
|
| 3458 |
+
ruby
|
| 3459 |
+
ruffle
|
| 3460 |
+
rugby
|
| 3461 |
+
rugby ball
|
| 3462 |
+
rugby player
|
| 3463 |
+
ruins
|
| 3464 |
+
ruler
|
| 3465 |
+
rum
|
| 3466 |
+
run
|
| 3467 |
+
runner
|
| 3468 |
+
running shoe
|
| 3469 |
+
rural
|
| 3470 |
+
rust
|
| 3471 |
+
rustic
|
| 3472 |
+
rye
|
| 3473 |
+
sack
|
| 3474 |
+
saddle
|
| 3475 |
+
saddlebag
|
| 3476 |
+
safari
|
| 3477 |
+
safe
|
| 3478 |
+
safety vest
|
| 3479 |
+
sage
|
| 3480 |
+
sail
|
| 3481 |
+
sailboat
|
| 3482 |
+
sailing
|
| 3483 |
+
sailor
|
| 3484 |
+
squirrel monkey
|
| 3485 |
+
sake
|
| 3486 |
+
salad
|
| 3487 |
+
salad bowl
|
| 3488 |
+
salamander
|
| 3489 |
+
salami
|
| 3490 |
+
sale
|
| 3491 |
+
salmon
|
| 3492 |
+
salon
|
| 3493 |
+
salsa
|
| 3494 |
+
salt
|
| 3495 |
+
salt and pepper shakers
|
| 3496 |
+
salt lake
|
| 3497 |
+
salt marsh
|
| 3498 |
+
salt shaker
|
| 3499 |
+
salute
|
| 3500 |
+
samoyed
|
| 3501 |
+
samurai
|
| 3502 |
+
sand
|
| 3503 |
+
sand bar
|
| 3504 |
+
sand box
|
| 3505 |
+
sand castle
|
| 3506 |
+
sand sculpture
|
| 3507 |
+
sandal
|
| 3508 |
+
sandwich
|
| 3509 |
+
sanitary napkin
|
| 3510 |
+
santa claus
|
| 3511 |
+
sapphire
|
| 3512 |
+
sardine
|
| 3513 |
+
sari
|
| 3514 |
+
sashimi
|
| 3515 |
+
satay
|
| 3516 |
+
satchel
|
| 3517 |
+
satellite
|
| 3518 |
+
satin
|
| 3519 |
+
sauce
|
| 3520 |
+
saucer
|
| 3521 |
+
sauna
|
| 3522 |
+
sausage
|
| 3523 |
+
savanna
|
| 3524 |
+
saw
|
| 3525 |
+
sawbuck
|
| 3526 |
+
sax
|
| 3527 |
+
saxophonist
|
| 3528 |
+
scaffold
|
| 3529 |
+
scale
|
| 3530 |
+
scale model
|
| 3531 |
+
scallop
|
| 3532 |
+
scar
|
| 3533 |
+
strawman
|
| 3534 |
+
scarf
|
| 3535 |
+
scene
|
| 3536 |
+
scenery
|
| 3537 |
+
schnauzer
|
| 3538 |
+
school
|
| 3539 |
+
school bus
|
| 3540 |
+
school uniform
|
| 3541 |
+
schoolhouse
|
| 3542 |
+
schooner
|
| 3543 |
+
science
|
| 3544 |
+
science fiction film
|
| 3545 |
+
science museum
|
| 3546 |
+
scientist
|
| 3547 |
+
scissors
|
| 3548 |
+
wall lamp
|
| 3549 |
+
scone
|
| 3550 |
+
scoop
|
| 3551 |
+
scooter
|
| 3552 |
+
score
|
| 3553 |
+
scoreboard
|
| 3554 |
+
scorpion
|
| 3555 |
+
scout
|
| 3556 |
+
scrambled egg
|
| 3557 |
+
scrap
|
| 3558 |
+
scraper
|
| 3559 |
+
scratch
|
| 3560 |
+
screen
|
| 3561 |
+
screen door
|
| 3562 |
+
screenshot
|
| 3563 |
+
screw
|
| 3564 |
+
screwdriver
|
| 3565 |
+
scroll
|
| 3566 |
+
scrub
|
| 3567 |
+
scrubbing brush
|
| 3568 |
+
sculptor
|
| 3569 |
+
sculpture
|
| 3570 |
+
sea cave
|
| 3571 |
+
sea ice
|
| 3572 |
+
sea lion
|
| 3573 |
+
sea turtle
|
| 3574 |
+
sea urchin
|
| 3575 |
+
seabass
|
| 3576 |
+
seabed
|
| 3577 |
+
seabird
|
| 3578 |
+
seafood
|
| 3579 |
+
seahorse
|
| 3580 |
+
seal
|
| 3581 |
+
sea view
|
| 3582 |
+
seashell
|
| 3583 |
+
seaside resort
|
| 3584 |
+
season
|
| 3585 |
+
seat
|
| 3586 |
+
seat belt
|
| 3587 |
+
seaweed
|
| 3588 |
+
secretary
|
| 3589 |
+
security
|
| 3590 |
+
sedan
|
| 3591 |
+
see
|
| 3592 |
+
seed
|
| 3593 |
+
seesaw
|
| 3594 |
+
segway
|
| 3595 |
+
selfie
|
| 3596 |
+
sell
|
| 3597 |
+
seminar
|
| 3598 |
+
sense
|
| 3599 |
+
sensor
|
| 3600 |
+
server
|
| 3601 |
+
server room
|
| 3602 |
+
service
|
| 3603 |
+
set
|
| 3604 |
+
sewing machine
|
| 3605 |
+
shadow
|
| 3606 |
+
shake
|
| 3607 |
+
shaker
|
| 3608 |
+
shampoo
|
| 3609 |
+
shape
|
| 3610 |
+
share
|
| 3611 |
+
shark
|
| 3612 |
+
sharpener
|
| 3613 |
+
sharpie
|
| 3614 |
+
shaver
|
| 3615 |
+
shaving cream
|
| 3616 |
+
shawl
|
| 3617 |
+
shear
|
| 3618 |
+
shears
|
| 3619 |
+
sheep
|
| 3620 |
+
sheet
|
| 3621 |
+
sheet music
|
| 3622 |
+
shelf
|
| 3623 |
+
shell
|
| 3624 |
+
shellfish
|
| 3625 |
+
shelter
|
| 3626 |
+
shelve
|
| 3627 |
+
shepherd
|
| 3628 |
+
sherbert
|
| 3629 |
+
shiba inu
|
| 3630 |
+
shine
|
| 3631 |
+
shipping
|
| 3632 |
+
shipping container
|
| 3633 |
+
shipwreck
|
| 3634 |
+
shipyard
|
| 3635 |
+
shirt
|
| 3636 |
+
shirtless
|
| 3637 |
+
shoal
|
| 3638 |
+
shoe
|
| 3639 |
+
shoe box
|
| 3640 |
+
shoe shop
|
| 3641 |
+
shoe tree
|
| 3642 |
+
shoot
|
| 3643 |
+
shooting basketball guard
|
| 3644 |
+
shop window
|
| 3645 |
+
shopfront
|
| 3646 |
+
shopper
|
| 3647 |
+
shopping
|
| 3648 |
+
shopping bag
|
| 3649 |
+
shopping basket
|
| 3650 |
+
shopping cart
|
| 3651 |
+
mall
|
| 3652 |
+
shopping street
|
| 3653 |
+
shore
|
| 3654 |
+
shoreline
|
| 3655 |
+
short
|
| 3656 |
+
short hair
|
| 3657 |
+
shorts
|
| 3658 |
+
shot glass
|
| 3659 |
+
shotgun
|
| 3660 |
+
shoulder
|
| 3661 |
+
shoulder bag
|
| 3662 |
+
shovel
|
| 3663 |
+
showcase
|
| 3664 |
+
shower
|
| 3665 |
+
shower cap
|
| 3666 |
+
shower curtain
|
| 3667 |
+
shower door
|
| 3668 |
+
shower head
|
| 3669 |
+
shredder
|
| 3670 |
+
shrew
|
| 3671 |
+
shrimp
|
| 3672 |
+
shrine
|
| 3673 |
+
shrub
|
| 3674 |
+
shutter
|
| 3675 |
+
siamese
|
| 3676 |
+
siberia
|
| 3677 |
+
sibling
|
| 3678 |
+
side
|
| 3679 |
+
side cabinet
|
| 3680 |
+
side dish
|
| 3681 |
+
sidecar
|
| 3682 |
+
sideline
|
| 3683 |
+
siding
|
| 3684 |
+
sign
|
| 3685 |
+
signage
|
| 3686 |
+
signal
|
| 3687 |
+
signature
|
| 3688 |
+
silk
|
| 3689 |
+
silk stocking
|
| 3690 |
+
silo
|
| 3691 |
+
silver
|
| 3692 |
+
silver medal
|
| 3693 |
+
silverware
|
| 3694 |
+
sing
|
| 3695 |
+
singe
|
| 3696 |
+
singer
|
| 3697 |
+
sink
|
| 3698 |
+
sip
|
| 3699 |
+
sit
|
| 3700 |
+
sitting
|
| 3701 |
+
skate park
|
| 3702 |
+
skateboard
|
| 3703 |
+
skateboarder
|
| 3704 |
+
skater
|
| 3705 |
+
skating rink
|
| 3706 |
+
skeleton
|
| 3707 |
+
sketch
|
| 3708 |
+
skewer
|
| 3709 |
+
ski
|
| 3710 |
+
ski boot
|
| 3711 |
+
ski equipment
|
| 3712 |
+
ski jacket
|
| 3713 |
+
ski lift
|
| 3714 |
+
ski pole
|
| 3715 |
+
ski resort
|
| 3716 |
+
snowboard
|
| 3717 |
+
skier
|
| 3718 |
+
skiing shoes
|
| 3719 |
+
skin
|
| 3720 |
+
skull
|
| 3721 |
+
skullcap
|
| 3722 |
+
sky
|
| 3723 |
+
sky tower
|
| 3724 |
+
skylight
|
| 3725 |
+
skyline
|
| 3726 |
+
skyscraper
|
| 3727 |
+
slalom
|
| 3728 |
+
slate
|
| 3729 |
+
sleigh
|
| 3730 |
+
sleep
|
| 3731 |
+
sleeping bag
|
| 3732 |
+
sleepwear
|
| 3733 |
+
sleeve
|
| 3734 |
+
slice
|
| 3735 |
+
slide
|
| 3736 |
+
slider
|
| 3737 |
+
sling
|
| 3738 |
+
slope
|
| 3739 |
+
slot
|
| 3740 |
+
slot machine
|
| 3741 |
+
sloth
|
| 3742 |
+
slow cooker
|
| 3743 |
+
slug
|
| 3744 |
+
slum
|
| 3745 |
+
smell
|
| 3746 |
+
smile
|
| 3747 |
+
smoke
|
| 3748 |
+
snack
|
| 3749 |
+
snail
|
| 3750 |
+
snake
|
| 3751 |
+
snapper
|
| 3752 |
+
snapshot
|
| 3753 |
+
snorkel
|
| 3754 |
+
snout
|
| 3755 |
+
snow
|
| 3756 |
+
snow leopard
|
| 3757 |
+
snow mountain
|
| 3758 |
+
snowball
|
| 3759 |
+
snowboarder
|
| 3760 |
+
snowfield
|
| 3761 |
+
snowflake
|
| 3762 |
+
snowman
|
| 3763 |
+
snowmobile
|
| 3764 |
+
snowplow
|
| 3765 |
+
snowshoe
|
| 3766 |
+
snowy
|
| 3767 |
+
soap
|
| 3768 |
+
soap bubble
|
| 3769 |
+
soap dispenser
|
| 3770 |
+
soccer goalkeeper
|
| 3771 |
+
socialite
|
| 3772 |
+
sock
|
| 3773 |
+
socket
|
| 3774 |
+
soda
|
| 3775 |
+
softball
|
| 3776 |
+
software
|
| 3777 |
+
solar battery
|
| 3778 |
+
soldier
|
| 3779 |
+
solo
|
| 3780 |
+
solution
|
| 3781 |
+
sombrero
|
| 3782 |
+
song
|
| 3783 |
+
sound
|
| 3784 |
+
soup
|
| 3785 |
+
soup bowl
|
| 3786 |
+
soupspoon
|
| 3787 |
+
sour cream
|
| 3788 |
+
souvenir
|
| 3789 |
+
soybean milk
|
| 3790 |
+
spa
|
| 3791 |
+
space
|
| 3792 |
+
space shuttle
|
| 3793 |
+
space station
|
| 3794 |
+
spacecraft
|
| 3795 |
+
spaghetti
|
| 3796 |
+
span
|
| 3797 |
+
wrench
|
| 3798 |
+
spark
|
| 3799 |
+
sparkle
|
| 3800 |
+
sparkler
|
| 3801 |
+
sparkling wine
|
| 3802 |
+
sparrow
|
| 3803 |
+
spatula
|
| 3804 |
+
speaker
|
| 3805 |
+
spectator
|
| 3806 |
+
speech bubble
|
| 3807 |
+
speed limit
|
| 3808 |
+
speed limit sign
|
| 3809 |
+
speedboat
|
| 3810 |
+
speedometer
|
| 3811 |
+
sphere
|
| 3812 |
+
spice
|
| 3813 |
+
spice rack
|
| 3814 |
+
spider
|
| 3815 |
+
spider web
|
| 3816 |
+
spike
|
| 3817 |
+
spin
|
| 3818 |
+
spinach
|
| 3819 |
+
spire
|
| 3820 |
+
splash
|
| 3821 |
+
sponge
|
| 3822 |
+
spoon
|
| 3823 |
+
sport association
|
| 3824 |
+
sport equipment
|
| 3825 |
+
sport team
|
| 3826 |
+
sports ball
|
| 3827 |
+
sports equipment
|
| 3828 |
+
sports meet
|
| 3829 |
+
sportswear
|
| 3830 |
+
dot
|
| 3831 |
+
spray
|
| 3832 |
+
spread
|
| 3833 |
+
spring
|
| 3834 |
+
spring roll
|
| 3835 |
+
sprinkle
|
| 3836 |
+
sprinkler
|
| 3837 |
+
sprout
|
| 3838 |
+
spruce
|
| 3839 |
+
spruce forest
|
| 3840 |
+
squad
|
| 3841 |
+
square
|
| 3842 |
+
squash
|
| 3843 |
+
squat
|
| 3844 |
+
squeeze
|
| 3845 |
+
squid
|
| 3846 |
+
squirrel
|
| 3847 |
+
water gun
|
| 3848 |
+
stab
|
| 3849 |
+
stable
|
| 3850 |
+
stack
|
| 3851 |
+
stadium
|
| 3852 |
+
staff
|
| 3853 |
+
stage
|
| 3854 |
+
stage light
|
| 3855 |
+
stagecoach
|
| 3856 |
+
stain
|
| 3857 |
+
stainless steel
|
| 3858 |
+
stair
|
| 3859 |
+
stairs
|
| 3860 |
+
stairwell
|
| 3861 |
+
stall
|
| 3862 |
+
stallion
|
| 3863 |
+
stand
|
| 3864 |
+
standing
|
| 3865 |
+
staple
|
| 3866 |
+
stapler
|
| 3867 |
+
star
|
| 3868 |
+
stare
|
| 3869 |
+
starfish
|
| 3870 |
+
starfruit
|
| 3871 |
+
starling
|
| 3872 |
+
state park
|
| 3873 |
+
state school
|
| 3874 |
+
station
|
| 3875 |
+
stationary bicycle
|
| 3876 |
+
stationery
|
| 3877 |
+
statue
|
| 3878 |
+
steak
|
| 3879 |
+
steak knife
|
| 3880 |
+
steam
|
| 3881 |
+
steam engine
|
| 3882 |
+
steam locomotive
|
| 3883 |
+
steam train
|
| 3884 |
+
steamed bread
|
| 3885 |
+
steel
|
| 3886 |
+
steering wheel
|
| 3887 |
+
stem
|
| 3888 |
+
stencil
|
| 3889 |
+
step stool
|
| 3890 |
+
stereo
|
| 3891 |
+
stethoscope
|
| 3892 |
+
stew
|
| 3893 |
+
stick
|
| 3894 |
+
stick insect
|
| 3895 |
+
sticker
|
| 3896 |
+
still life
|
| 3897 |
+
stilt
|
| 3898 |
+
stingray
|
| 3899 |
+
stir
|
| 3900 |
+
stirrer
|
| 3901 |
+
stirrup
|
| 3902 |
+
sew
|
| 3903 |
+
stock
|
| 3904 |
+
stocking
|
| 3905 |
+
stomach
|
| 3906 |
+
stone building
|
| 3907 |
+
stone carving
|
| 3908 |
+
stone house
|
| 3909 |
+
stone mill
|
| 3910 |
+
stool
|
| 3911 |
+
stop
|
| 3912 |
+
stop at
|
| 3913 |
+
stop light
|
| 3914 |
+
stop sign
|
| 3915 |
+
stop watch
|
| 3916 |
+
traffic light
|
| 3917 |
+
storage box
|
| 3918 |
+
storage room
|
| 3919 |
+
tank
|
| 3920 |
+
store
|
| 3921 |
+
storefront
|
| 3922 |
+
stork
|
| 3923 |
+
storm
|
| 3924 |
+
storm cloud
|
| 3925 |
+
stormy
|
| 3926 |
+
stove
|
| 3927 |
+
poker
|
| 3928 |
+
straddle
|
| 3929 |
+
strainer
|
| 3930 |
+
strait
|
| 3931 |
+
strap
|
| 3932 |
+
straw
|
| 3933 |
+
straw hat
|
| 3934 |
+
strawberry
|
| 3935 |
+
stream
|
| 3936 |
+
street art
|
| 3937 |
+
street artist
|
| 3938 |
+
street corner
|
| 3939 |
+
street dog
|
| 3940 |
+
street food
|
| 3941 |
+
street light
|
| 3942 |
+
street market
|
| 3943 |
+
street photography
|
| 3944 |
+
street scene
|
| 3945 |
+
street sign
|
| 3946 |
+
street vendor
|
| 3947 |
+
stretch
|
| 3948 |
+
stretcher
|
| 3949 |
+
strike
|
| 3950 |
+
striker
|
| 3951 |
+
string
|
| 3952 |
+
string cheese
|
| 3953 |
+
strip
|
| 3954 |
+
stripe
|
| 3955 |
+
stroll
|
| 3956 |
+
structure
|
| 3957 |
+
studio
|
| 3958 |
+
studio shot
|
| 3959 |
+
stuff
|
| 3960 |
+
stuffed animal
|
| 3961 |
+
stuffed toy
|
| 3962 |
+
stuffing
|
| 3963 |
+
stump
|
| 3964 |
+
stunning
|
| 3965 |
+
stunt
|
| 3966 |
+
stupa
|
| 3967 |
+
style
|
| 3968 |
+
stylus
|
| 3969 |
+
submarine
|
| 3970 |
+
submarine sandwich
|
| 3971 |
+
submarine water
|
| 3972 |
+
suburb
|
| 3973 |
+
subway
|
| 3974 |
+
subway station
|
| 3975 |
+
subwoofer
|
| 3976 |
+
succulent
|
| 3977 |
+
suede
|
| 3978 |
+
sugar
|
| 3979 |
+
sugar bowl
|
| 3980 |
+
sugar cane
|
| 3981 |
+
sugar cube
|
| 3982 |
+
suit
|
| 3983 |
+
suite
|
| 3984 |
+
summer
|
| 3985 |
+
summer evening
|
| 3986 |
+
summit
|
| 3987 |
+
sun
|
| 3988 |
+
sun hat
|
| 3989 |
+
sunbathe
|
| 3990 |
+
sunday
|
| 3991 |
+
sundial
|
| 3992 |
+
sunflower
|
| 3993 |
+
sunflower field
|
| 3994 |
+
sunflower seed
|
| 3995 |
+
sunglasses
|
| 3996 |
+
sunny
|
| 3997 |
+
sunrise
|
| 3998 |
+
sunset
|
| 3999 |
+
sunshade
|
| 4000 |
+
sunshine
|
| 4001 |
+
super bowl
|
| 4002 |
+
sports car
|
| 4003 |
+
superhero
|
| 4004 |
+
supermarket
|
| 4005 |
+
supermarket shelf
|
| 4006 |
+
supermodel
|
| 4007 |
+
supporter
|
| 4008 |
+
surf
|
| 4009 |
+
surface
|
| 4010 |
+
surfboard
|
| 4011 |
+
surfer
|
| 4012 |
+
surgeon
|
| 4013 |
+
surgery
|
| 4014 |
+
surround
|
| 4015 |
+
sushi
|
| 4016 |
+
sushi bar
|
| 4017 |
+
suspenders
|
| 4018 |
+
suspension
|
| 4019 |
+
suspension bridge
|
| 4020 |
+
suv
|
| 4021 |
+
swallow
|
| 4022 |
+
swallowtail butterfly
|
| 4023 |
+
swamp
|
| 4024 |
+
swan
|
| 4025 |
+
swan boat
|
| 4026 |
+
sweat pant
|
| 4027 |
+
sweatband
|
| 4028 |
+
sweater
|
| 4029 |
+
sweatshirt
|
| 4030 |
+
sweet
|
| 4031 |
+
sweet potato
|
| 4032 |
+
swim
|
| 4033 |
+
swim cap
|
| 4034 |
+
swimmer
|
| 4035 |
+
swimming hole
|
| 4036 |
+
swimming pool
|
| 4037 |
+
swing
|
| 4038 |
+
swing bridge
|
| 4039 |
+
swinge
|
| 4040 |
+
swirl
|
| 4041 |
+
switch
|
| 4042 |
+
swivel chair
|
| 4043 |
+
sword
|
| 4044 |
+
swordfish
|
| 4045 |
+
symbol
|
| 4046 |
+
symmetry
|
| 4047 |
+
synagogue
|
| 4048 |
+
syringe
|
| 4049 |
+
syrup
|
| 4050 |
+
system
|
| 4051 |
+
t shirt
|
| 4052 |
+
t-shirt
|
| 4053 |
+
tabasco sauce
|
| 4054 |
+
tabby
|
| 4055 |
+
table tennis racket
|
| 4056 |
+
table top
|
| 4057 |
+
tablecloth
|
| 4058 |
+
tablet computer
|
| 4059 |
+
tableware
|
| 4060 |
+
tachometer
|
| 4061 |
+
tackle
|
| 4062 |
+
taco
|
| 4063 |
+
tae kwon do
|
| 4064 |
+
tai chi
|
| 4065 |
+
tail
|
| 4066 |
+
tailor
|
| 4067 |
+
take
|
| 4068 |
+
takeoff
|
| 4069 |
+
talk
|
| 4070 |
+
tambourine
|
| 4071 |
+
tan
|
| 4072 |
+
tangerine
|
| 4073 |
+
tape
|
| 4074 |
+
tapestry
|
| 4075 |
+
tarmac
|
| 4076 |
+
taro
|
| 4077 |
+
tarp
|
| 4078 |
+
tart
|
| 4079 |
+
tassel
|
| 4080 |
+
taste
|
| 4081 |
+
tatami
|
| 4082 |
+
tattoo
|
| 4083 |
+
tattoo artist
|
| 4084 |
+
tavern
|
| 4085 |
+
tea
|
| 4086 |
+
tea bag
|
| 4087 |
+
tea party
|
| 4088 |
+
tea plantation
|
| 4089 |
+
tea pot
|
| 4090 |
+
tea set
|
| 4091 |
+
teach
|
| 4092 |
+
teacher
|
| 4093 |
+
teacup
|
| 4094 |
+
teal
|
| 4095 |
+
team photo
|
| 4096 |
+
team presentation
|
| 4097 |
+
tear
|
| 4098 |
+
technician
|
| 4099 |
+
technology
|
| 4100 |
+
teddy
|
| 4101 |
+
tee
|
| 4102 |
+
teenager
|
| 4103 |
+
telegraph pole
|
| 4104 |
+
zoom lens
|
| 4105 |
+
telescope
|
| 4106 |
+
television
|
| 4107 |
+
television camera
|
| 4108 |
+
television room
|
| 4109 |
+
television studio
|
| 4110 |
+
temperature
|
| 4111 |
+
temple
|
| 4112 |
+
tempura
|
| 4113 |
+
tennis
|
| 4114 |
+
tennis court
|
| 4115 |
+
tennis match
|
| 4116 |
+
tennis net
|
| 4117 |
+
tennis player
|
| 4118 |
+
tennis racket
|
| 4119 |
+
tent
|
| 4120 |
+
tequila
|
| 4121 |
+
terminal
|
| 4122 |
+
terrace
|
| 4123 |
+
terrain
|
| 4124 |
+
terrarium
|
| 4125 |
+
territory
|
| 4126 |
+
test
|
| 4127 |
+
test match
|
| 4128 |
+
test tube
|
| 4129 |
+
text
|
| 4130 |
+
text message
|
| 4131 |
+
textile
|
| 4132 |
+
texture
|
| 4133 |
+
thanksgiving
|
| 4134 |
+
thanksgiving dinner
|
| 4135 |
+
theater
|
| 4136 |
+
theatre actor
|
| 4137 |
+
therapy
|
| 4138 |
+
thermometer
|
| 4139 |
+
thermos
|
| 4140 |
+
thermos bottle
|
| 4141 |
+
thermostat
|
| 4142 |
+
thicket
|
| 4143 |
+
thimble
|
| 4144 |
+
thing
|
| 4145 |
+
thinking
|
| 4146 |
+
thistle
|
| 4147 |
+
throne
|
| 4148 |
+
throne room
|
| 4149 |
+
throw
|
| 4150 |
+
throw pillow
|
| 4151 |
+
thunder
|
| 4152 |
+
thunderstorm
|
| 4153 |
+
thyme
|
| 4154 |
+
tiara
|
| 4155 |
+
tick
|
| 4156 |
+
ticket
|
| 4157 |
+
ticket booth
|
| 4158 |
+
tide pool
|
| 4159 |
+
tie
|
| 4160 |
+
tiger
|
| 4161 |
+
tight
|
| 4162 |
+
tile
|
| 4163 |
+
tile flooring
|
| 4164 |
+
tile roof
|
| 4165 |
+
tile wall
|
| 4166 |
+
tin
|
| 4167 |
+
tinfoil
|
| 4168 |
+
tinsel
|
| 4169 |
+
tiramisu
|
| 4170 |
+
tire
|
| 4171 |
+
tissue
|
| 4172 |
+
toast
|
| 4173 |
+
toaster
|
| 4174 |
+
tobacco
|
| 4175 |
+
tobacco pipe
|
| 4176 |
+
toddler
|
| 4177 |
+
toe
|
| 4178 |
+
tofu
|
| 4179 |
+
toilet bowl
|
| 4180 |
+
toilet seat
|
| 4181 |
+
toiletry
|
| 4182 |
+
tokyo tower
|
| 4183 |
+
tomato
|
| 4184 |
+
tomato sauce
|
| 4185 |
+
tomato soup
|
| 4186 |
+
tomb
|
| 4187 |
+
tong
|
| 4188 |
+
tongs
|
| 4189 |
+
tool
|
| 4190 |
+
toolbox
|
| 4191 |
+
toothbrush
|
| 4192 |
+
toothpaste
|
| 4193 |
+
toothpick
|
| 4194 |
+
topiary garden
|
| 4195 |
+
topping
|
| 4196 |
+
torch
|
| 4197 |
+
tornado
|
| 4198 |
+
tortilla
|
| 4199 |
+
tortoise
|
| 4200 |
+
tote bag
|
| 4201 |
+
totem pole
|
| 4202 |
+
totoro
|
| 4203 |
+
toucan
|
| 4204 |
+
touch
|
| 4205 |
+
touchdown
|
| 4206 |
+
tour
|
| 4207 |
+
tour bus
|
| 4208 |
+
tour guide
|
| 4209 |
+
tourist
|
| 4210 |
+
tourist attraction
|
| 4211 |
+
tournament
|
| 4212 |
+
tow truck
|
| 4213 |
+
towel
|
| 4214 |
+
towel bar
|
| 4215 |
+
tower block
|
| 4216 |
+
tower bridge
|
| 4217 |
+
town
|
| 4218 |
+
town square
|
| 4219 |
+
toy
|
| 4220 |
+
toy car
|
| 4221 |
+
toy gun
|
| 4222 |
+
toyshop
|
| 4223 |
+
track
|
| 4224 |
+
tractor
|
| 4225 |
+
trade
|
| 4226 |
+
tradition
|
| 4227 |
+
traditional
|
| 4228 |
+
traffic
|
| 4229 |
+
traffic cone
|
| 4230 |
+
traffic congestion
|
| 4231 |
+
traffic jam
|
| 4232 |
+
traffic sign
|
| 4233 |
+
trail
|
| 4234 |
+
trailer
|
| 4235 |
+
trailer truck
|
| 4236 |
+
train
|
| 4237 |
+
train bridge
|
| 4238 |
+
train car
|
| 4239 |
+
train interior
|
| 4240 |
+
train track
|
| 4241 |
+
train window
|
| 4242 |
+
trainer
|
| 4243 |
+
training
|
| 4244 |
+
training bench
|
| 4245 |
+
training ground
|
| 4246 |
+
trolley
|
| 4247 |
+
trampoline
|
| 4248 |
+
transformer
|
| 4249 |
+
transparency
|
| 4250 |
+
travel
|
| 4251 |
+
tray
|
| 4252 |
+
treadmill
|
| 4253 |
+
treat
|
| 4254 |
+
tree
|
| 4255 |
+
tree branch
|
| 4256 |
+
tree farm
|
| 4257 |
+
tree frog
|
| 4258 |
+
tree house
|
| 4259 |
+
tree root
|
| 4260 |
+
tree trunk
|
| 4261 |
+
trial
|
| 4262 |
+
triangle
|
| 4263 |
+
triathlon
|
| 4264 |
+
tribe
|
| 4265 |
+
tributary
|
| 4266 |
+
trick
|
| 4267 |
+
tricycle
|
| 4268 |
+
trim
|
| 4269 |
+
trio
|
| 4270 |
+
tripod
|
| 4271 |
+
trombone
|
| 4272 |
+
troop
|
| 4273 |
+
trophy
|
| 4274 |
+
trophy cup
|
| 4275 |
+
tropic
|
| 4276 |
+
trout
|
| 4277 |
+
truck
|
| 4278 |
+
truck driver
|
| 4279 |
+
tub
|
| 4280 |
+
tube
|
| 4281 |
+
tugboat
|
| 4282 |
+
tulip
|
| 4283 |
+
tuna
|
| 4284 |
+
tundra
|
| 4285 |
+
tunnel
|
| 4286 |
+
turbine
|
| 4287 |
+
turkey
|
| 4288 |
+
turn
|
| 4289 |
+
turnip
|
| 4290 |
+
turquoise
|
| 4291 |
+
turret
|
| 4292 |
+
turtle
|
| 4293 |
+
tusk
|
| 4294 |
+
tv actor
|
| 4295 |
+
tv cabinet
|
| 4296 |
+
tv drama
|
| 4297 |
+
tv genre
|
| 4298 |
+
tv personality
|
| 4299 |
+
tv show
|
| 4300 |
+
tv sitcom
|
| 4301 |
+
tv tower
|
| 4302 |
+
twig
|
| 4303 |
+
twilight
|
| 4304 |
+
twin
|
| 4305 |
+
twine
|
| 4306 |
+
twist
|
| 4307 |
+
type
|
| 4308 |
+
type on
|
| 4309 |
+
typewriter
|
| 4310 |
+
ukulele
|
| 4311 |
+
ultraman
|
| 4312 |
+
umbrella
|
| 4313 |
+
underclothes
|
| 4314 |
+
underwater
|
| 4315 |
+
unicorn
|
| 4316 |
+
uniform
|
| 4317 |
+
universe
|
| 4318 |
+
university
|
| 4319 |
+
up
|
| 4320 |
+
urban
|
| 4321 |
+
urinal
|
| 4322 |
+
urn
|
| 4323 |
+
use
|
| 4324 |
+
utensil
|
| 4325 |
+
utility room
|
| 4326 |
+
vacuum
|
| 4327 |
+
valley
|
| 4328 |
+
valve
|
| 4329 |
+
vampire
|
| 4330 |
+
van
|
| 4331 |
+
vanilla
|
| 4332 |
+
vanity
|
| 4333 |
+
variety
|
| 4334 |
+
vase
|
| 4335 |
+
vault
|
| 4336 |
+
vector cartoon illustration
|
| 4337 |
+
vector icon
|
| 4338 |
+
vegetable
|
| 4339 |
+
vegetable garden
|
| 4340 |
+
vegetable market
|
| 4341 |
+
vegetation
|
| 4342 |
+
vehicle
|
| 4343 |
+
veil
|
| 4344 |
+
vein
|
| 4345 |
+
velvet
|
| 4346 |
+
vending machine
|
| 4347 |
+
vendor
|
| 4348 |
+
vent
|
| 4349 |
+
vespa
|
| 4350 |
+
vessel
|
| 4351 |
+
vest
|
| 4352 |
+
vet
|
| 4353 |
+
veteran
|
| 4354 |
+
veterinarians office
|
| 4355 |
+
viaduct
|
| 4356 |
+
video
|
| 4357 |
+
video camera
|
| 4358 |
+
video game
|
| 4359 |
+
videotape
|
| 4360 |
+
view mirror
|
| 4361 |
+
vigil
|
| 4362 |
+
villa
|
| 4363 |
+
village
|
| 4364 |
+
vine
|
| 4365 |
+
vinegar
|
| 4366 |
+
vineyard
|
| 4367 |
+
violence
|
| 4368 |
+
violet
|
| 4369 |
+
violin
|
| 4370 |
+
violinist
|
| 4371 |
+
violist
|
| 4372 |
+
vision
|
| 4373 |
+
visor
|
| 4374 |
+
vodka
|
| 4375 |
+
volcano
|
| 4376 |
+
volleyball
|
| 4377 |
+
volleyball court
|
| 4378 |
+
volleyball player
|
| 4379 |
+
volunteer
|
| 4380 |
+
voyage
|
| 4381 |
+
vulture
|
| 4382 |
+
waffle
|
| 4383 |
+
waffle iron
|
| 4384 |
+
wagon
|
| 4385 |
+
wagon wheel
|
| 4386 |
+
waist
|
| 4387 |
+
waiter
|
| 4388 |
+
waiting hall
|
| 4389 |
+
waiting room
|
| 4390 |
+
walk
|
| 4391 |
+
walking
|
| 4392 |
+
walking cane
|
| 4393 |
+
wall clock
|
| 4394 |
+
wallpaper
|
| 4395 |
+
walnut
|
| 4396 |
+
walrus
|
| 4397 |
+
war
|
| 4398 |
+
warehouse
|
| 4399 |
+
warm
|
| 4400 |
+
warning sign
|
| 4401 |
+
warrior
|
| 4402 |
+
warship
|
| 4403 |
+
warthog
|
| 4404 |
+
wash
|
| 4405 |
+
washer
|
| 4406 |
+
washing
|
| 4407 |
+
washing machine
|
| 4408 |
+
wasp
|
| 4409 |
+
waste
|
| 4410 |
+
waste container
|
| 4411 |
+
watch
|
| 4412 |
+
water
|
| 4413 |
+
water bird
|
| 4414 |
+
water buffalo
|
| 4415 |
+
water cooler
|
| 4416 |
+
water drop
|
| 4417 |
+
water feature
|
| 4418 |
+
water heater
|
| 4419 |
+
water level
|
| 4420 |
+
water lily
|
| 4421 |
+
water park
|
| 4422 |
+
water pipe
|
| 4423 |
+
water purifier
|
| 4424 |
+
water ski
|
| 4425 |
+
water sport
|
| 4426 |
+
water surface
|
| 4427 |
+
water tower
|
| 4428 |
+
watercolor
|
| 4429 |
+
watercolor illustration
|
| 4430 |
+
watercolor painting
|
| 4431 |
+
waterfall
|
| 4432 |
+
watering can
|
| 4433 |
+
watermark overlay stamp
|
| 4434 |
+
watermelon
|
| 4435 |
+
waterproof jacket
|
| 4436 |
+
waterway
|
| 4437 |
+
wave
|
| 4438 |
+
wax
|
| 4439 |
+
weapon
|
| 4440 |
+
wear
|
| 4441 |
+
weather
|
| 4442 |
+
vane
|
| 4443 |
+
web
|
| 4444 |
+
webcam
|
| 4445 |
+
wedding
|
| 4446 |
+
wedding ring
|
| 4447 |
+
wedding bouquet
|
| 4448 |
+
wedding cake
|
| 4449 |
+
wedding couple
|
| 4450 |
+
wedding invitation
|
| 4451 |
+
wedding party
|
| 4452 |
+
wedding photo
|
| 4453 |
+
wedding photographer
|
| 4454 |
+
wedding photography
|
| 4455 |
+
wedding reception
|
| 4456 |
+
wedge
|
| 4457 |
+
weed
|
| 4458 |
+
weight
|
| 4459 |
+
weight scale
|
| 4460 |
+
welder
|
| 4461 |
+
well
|
| 4462 |
+
western food
|
| 4463 |
+
western restaurant
|
| 4464 |
+
wet
|
| 4465 |
+
wet bar
|
| 4466 |
+
wet suit
|
| 4467 |
+
wetland
|
| 4468 |
+
wetsuit
|
| 4469 |
+
whale
|
| 4470 |
+
whale shark
|
| 4471 |
+
wheat
|
| 4472 |
+
wheat field
|
| 4473 |
+
wheel
|
| 4474 |
+
wheelchair
|
| 4475 |
+
wheelie
|
| 4476 |
+
whipped cream
|
| 4477 |
+
whisk
|
| 4478 |
+
whisker
|
| 4479 |
+
whiskey
|
| 4480 |
+
whistle
|
| 4481 |
+
white
|
| 4482 |
+
white house
|
| 4483 |
+
white wine
|
| 4484 |
+
whiteboard
|
| 4485 |
+
wicket
|
| 4486 |
+
wide
|
| 4487 |
+
wield
|
| 4488 |
+
wig
|
| 4489 |
+
Wii
|
| 4490 |
+
Wii controller
|
| 4491 |
+
wild
|
| 4492 |
+
wildebeest
|
| 4493 |
+
wildfire
|
| 4494 |
+
wildflower
|
| 4495 |
+
wildlife
|
| 4496 |
+
willow
|
| 4497 |
+
wind
|
| 4498 |
+
wind chime
|
| 4499 |
+
wind farm
|
| 4500 |
+
wind turbine
|
| 4501 |
+
windmill
|
| 4502 |
+
window
|
| 4503 |
+
window box
|
| 4504 |
+
window display
|
| 4505 |
+
window frame
|
| 4506 |
+
window screen
|
| 4507 |
+
window seat
|
| 4508 |
+
window sill
|
| 4509 |
+
wiper
|
| 4510 |
+
windshield
|
| 4511 |
+
windy
|
| 4512 |
+
wine bottle
|
| 4513 |
+
wine cooler
|
| 4514 |
+
wine cabinet
|
| 4515 |
+
wine cellar
|
| 4516 |
+
wine glass
|
| 4517 |
+
wine rack
|
| 4518 |
+
wine tasting
|
| 4519 |
+
winery
|
| 4520 |
+
wing
|
| 4521 |
+
winter
|
| 4522 |
+
winter melon
|
| 4523 |
+
winter morning
|
| 4524 |
+
winter scene
|
| 4525 |
+
winter sport
|
| 4526 |
+
winter storm
|
| 4527 |
+
wire
|
| 4528 |
+
wisteria
|
| 4529 |
+
witch
|
| 4530 |
+
witch hat
|
| 4531 |
+
wok
|
| 4532 |
+
wolf
|
| 4533 |
+
woman
|
| 4534 |
+
wood
|
| 4535 |
+
wood duck
|
| 4536 |
+
wood floor
|
| 4537 |
+
wood wall
|
| 4538 |
+
wood-burning stove
|
| 4539 |
+
wooden spoon
|
| 4540 |
+
woodland
|
| 4541 |
+
woodpecker
|
| 4542 |
+
woodworking plane
|
| 4543 |
+
wool
|
| 4544 |
+
job
|
| 4545 |
+
work card
|
| 4546 |
+
workbench
|
| 4547 |
+
worker
|
| 4548 |
+
workplace
|
| 4549 |
+
workshop
|
| 4550 |
+
world
|
| 4551 |
+
worm
|
| 4552 |
+
worship
|
| 4553 |
+
wound
|
| 4554 |
+
wrap
|
| 4555 |
+
wrap dress
|
| 4556 |
+
wrapping paper
|
| 4557 |
+
wrestle
|
| 4558 |
+
wrestler
|
| 4559 |
+
wrinkle
|
| 4560 |
+
wristband
|
| 4561 |
+
write
|
| 4562 |
+
writer
|
| 4563 |
+
writing
|
| 4564 |
+
writing brush
|
| 4565 |
+
writing desk
|
| 4566 |
+
yacht
|
| 4567 |
+
yak
|
| 4568 |
+
yard
|
| 4569 |
+
yellow
|
| 4570 |
+
yoga
|
| 4571 |
+
yoga mat
|
| 4572 |
+
yoghurt
|
| 4573 |
+
yoke
|
| 4574 |
+
yolk
|
| 4575 |
+
youth
|
| 4576 |
+
youth hostel
|
| 4577 |
+
yurt
|
| 4578 |
+
zebra
|
| 4579 |
+
zebra crossing
|
| 4580 |
+
zen garden
|
| 4581 |
+
zip
|
| 4582 |
+
zipper
|
| 4583 |
+
zombie
|
| 4584 |
+
zongzi
|
| 4585 |
+
zoo
|
ram/data/ram_tag_list_chinese.txt
ADDED
|
@@ -0,0 +1,4585 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
三维CG渲染
|
| 2 |
+
3d眼镜
|
| 3 |
+
算盘
|
| 4 |
+
鲍鱼
|
| 5 |
+
修道院
|
| 6 |
+
肚子
|
| 7 |
+
学院
|
| 8 |
+
附件
|
| 9 |
+
事故
|
| 10 |
+
手风琴
|
| 11 |
+
橡子
|
| 12 |
+
丙烯颜料
|
| 13 |
+
表演
|
| 14 |
+
行动
|
| 15 |
+
动作电影
|
| 16 |
+
活动
|
| 17 |
+
演员
|
| 18 |
+
改编本
|
| 19 |
+
添加
|
| 20 |
+
胶带
|
| 21 |
+
调整
|
| 22 |
+
成人
|
| 23 |
+
冒险
|
| 24 |
+
广告
|
| 25 |
+
天线
|
| 26 |
+
有氧运动
|
| 27 |
+
喷雾罐
|
| 28 |
+
爆炸头
|
| 29 |
+
农业
|
| 30 |
+
帮助
|
| 31 |
+
空调
|
| 32 |
+
空调系统
|
| 33 |
+
风向标
|
| 34 |
+
飞机客舱
|
| 35 |
+
飞机模型
|
| 36 |
+
机场
|
| 37 |
+
航线
|
| 38 |
+
客机
|
| 39 |
+
飞行员
|
| 40 |
+
飞机
|
| 41 |
+
飞机窗口
|
| 42 |
+
机场
|
| 43 |
+
机场跑道
|
| 44 |
+
航站楼
|
| 45 |
+
飞艇
|
| 46 |
+
航展
|
| 47 |
+
过道
|
| 48 |
+
警报
|
| 49 |
+
闹钟
|
| 50 |
+
信天翁
|
| 51 |
+
唱片
|
| 52 |
+
唱片封面
|
| 53 |
+
酒精
|
| 54 |
+
壁龛
|
| 55 |
+
水藻
|
| 56 |
+
胡同/球道
|
| 57 |
+
杏仁
|
| 58 |
+
芦荟
|
| 59 |
+
高山
|
| 60 |
+
羊驼
|
| 61 |
+
字母表
|
| 62 |
+
德国牧羊犬
|
| 63 |
+
圣坛
|
| 64 |
+
琥珀
|
| 65 |
+
救护车
|
| 66 |
+
秃鹰
|
| 67 |
+
美国短毛猫
|
| 68 |
+
紫水晶
|
| 69 |
+
圆形剧场
|
| 70 |
+
扩音器
|
| 71 |
+
游乐园
|
| 72 |
+
游乐设施
|
| 73 |
+
锚
|
| 74 |
+
古老的
|
| 75 |
+
海葵
|
| 76 |
+
天使
|
| 77 |
+
角
|
| 78 |
+
动物
|
| 79 |
+
动物雕塑
|
| 80 |
+
动物收容所
|
| 81 |
+
动画片
|
| 82 |
+
动画电影
|
| 83 |
+
动画师
|
| 84 |
+
动漫
|
| 85 |
+
脚踝
|
| 86 |
+
短袜
|
| 87 |
+
周年庆
|
| 88 |
+
风衣
|
| 89 |
+
蚂蚁
|
| 90 |
+
羚羊
|
| 91 |
+
古董
|
| 92 |
+
鹿角
|
| 93 |
+
铁砧
|
| 94 |
+
公寓
|
| 95 |
+
猿
|
| 96 |
+
应用程序
|
| 97 |
+
应用图标
|
| 98 |
+
出现
|
| 99 |
+
外观
|
| 100 |
+
开胃菜
|
| 101 |
+
掌声
|
| 102 |
+
苹果
|
| 103 |
+
苹果汁
|
| 104 |
+
苹果派
|
| 105 |
+
苹果树
|
| 106 |
+
苹果酱
|
| 107 |
+
设备
|
| 108 |
+
约定
|
| 109 |
+
通道
|
| 110 |
+
杏子
|
| 111 |
+
围裙
|
| 112 |
+
浅绿色
|
| 113 |
+
水族馆
|
| 114 |
+
观赏鱼
|
| 115 |
+
渡槽
|
| 116 |
+
游乐中心
|
| 117 |
+
商场游戏机
|
| 118 |
+
拱门
|
| 119 |
+
拱桥
|
| 120 |
+
考古现场
|
| 121 |
+
射箭
|
| 122 |
+
群岛
|
| 123 |
+
建筑师
|
| 124 |
+
建筑设计
|
| 125 |
+
档案
|
| 126 |
+
拱门
|
| 127 |
+
地区
|
| 128 |
+
竞技场
|
| 129 |
+
争论
|
| 130 |
+
手臂
|
| 131 |
+
穿山甲
|
| 132 |
+
臂章
|
| 133 |
+
扶手椅
|
| 134 |
+
衣柜
|
| 135 |
+
盔甲
|
| 136 |
+
军队
|
| 137 |
+
军事基地
|
| 138 |
+
坦克
|
| 139 |
+
阵列
|
| 140 |
+
逮捕
|
| 141 |
+
箭头
|
| 142 |
+
艺术
|
| 143 |
+
艺术展
|
| 144 |
+
美术馆
|
| 145 |
+
艺术印刷品
|
| 146 |
+
艺术学校
|
| 147 |
+
艺术工作室
|
| 148 |
+
艺术矢量插图
|
| 149 |
+
洋蓟
|
| 150 |
+
文章
|
| 151 |
+
手工艺品
|
| 152 |
+
艺术家
|
| 153 |
+
艺术阁楼
|
| 154 |
+
灰
|
| 155 |
+
烟灰缸
|
| 156 |
+
亚洲寺庙
|
| 157 |
+
芦笋
|
| 158 |
+
沥青道路
|
| 159 |
+
组装
|
| 160 |
+
集会
|
| 161 |
+
生产流水线
|
| 162 |
+
协会
|
| 163 |
+
宇航员
|
| 164 |
+
天文学家
|
| 165 |
+
运动员
|
| 166 |
+
运动
|
| 167 |
+
地图集
|
| 168 |
+
自助取款机
|
| 169 |
+
大气层
|
| 170 |
+
中庭
|
| 171 |
+
连接
|
| 172 |
+
战斗机
|
| 173 |
+
参加
|
| 174 |
+
吸引力
|
| 175 |
+
全地形车
|
| 176 |
+
茄子
|
| 177 |
+
拍卖
|
| 178 |
+
奥迪汽车
|
| 179 |
+
音频
|
| 180 |
+
礼堂
|
| 181 |
+
极光
|
| 182 |
+
作者
|
| 183 |
+
汽车厂
|
| 184 |
+
汽车修理工
|
| 185 |
+
汽车零件
|
| 186 |
+
车展
|
| 187 |
+
汽车展厅
|
| 188 |
+
汽车电池
|
| 189 |
+
汽车制造
|
| 190 |
+
汽车模型
|
| 191 |
+
汽车
|
| 192 |
+
秋天
|
| 193 |
+
秋天的森林
|
| 194 |
+
秋天的叶子
|
| 195 |
+
秋天的公园
|
| 196 |
+
秋天的树
|
| 197 |
+
阿凡达
|
| 198 |
+
林荫大道
|
| 199 |
+
飞行员太阳镜
|
| 200 |
+
牛油果
|
| 201 |
+
奖品
|
| 202 |
+
颁奖典礼
|
| 203 |
+
获奖者
|
| 204 |
+
棚
|
| 205 |
+
斧头
|
| 206 |
+
杜鹃花
|
| 207 |
+
狒狒
|
| 208 |
+
婴儿
|
| 209 |
+
奶瓶
|
| 210 |
+
婴儿车
|
| 211 |
+
婴儿衣服
|
| 212 |
+
小象
|
| 213 |
+
婴儿食品
|
| 214 |
+
婴儿座椅
|
| 215 |
+
迎婴派对
|
| 216 |
+
背后/后面
|
| 217 |
+
背景
|
| 218 |
+
背光
|
| 219 |
+
背包
|
| 220 |
+
后院
|
| 221 |
+
培根
|
| 222 |
+
徽章
|
| 223 |
+
獾
|
| 224 |
+
荒地
|
| 225 |
+
羽毛球运动
|
| 226 |
+
羽毛球拍
|
| 227 |
+
袋子
|
| 228 |
+
面包圈
|
| 229 |
+
风笛
|
| 230 |
+
法棍
|
| 231 |
+
诱饵
|
| 232 |
+
焙烤食品
|
| 233 |
+
面包师
|
| 234 |
+
面包店
|
| 235 |
+
烘焙
|
| 236 |
+
烤盘
|
| 237 |
+
平衡
|
| 238 |
+
平衡车
|
| 239 |
+
阳台
|
| 240 |
+
球
|
| 241 |
+
球池
|
| 242 |
+
芭蕾舞女演员
|
| 243 |
+
芭蕾舞
|
| 244 |
+
芭蕾舞演员
|
| 245 |
+
芭蕾舞裙
|
| 246 |
+
气球
|
| 247 |
+
气球拱门
|
| 248 |
+
棒球手
|
| 249 |
+
舞厅
|
| 250 |
+
竹子
|
| 251 |
+
竹林
|
| 252 |
+
香蕉
|
| 253 |
+
香蕉面包
|
| 254 |
+
香蕉叶子
|
| 255 |
+
香蕉树
|
| 256 |
+
乐队
|
| 257 |
+
创可贴
|
| 258 |
+
绷带
|
| 259 |
+
头巾
|
| 260 |
+
束发带
|
| 261 |
+
刘海
|
| 262 |
+
手镯
|
| 263 |
+
栏杆
|
| 264 |
+
五弦琴
|
| 265 |
+
银行
|
| 266 |
+
银行卡
|
| 267 |
+
银行金库
|
| 268 |
+
纸币
|
| 269 |
+
横幅/旗帜
|
| 270 |
+
宴会
|
| 271 |
+
宴会厅
|
| 272 |
+
榕树
|
| 273 |
+
包子
|
| 274 |
+
洗礼
|
| 275 |
+
酒吧
|
| 276 |
+
条形码
|
| 277 |
+
高脚凳
|
| 278 |
+
烧烤
|
| 279 |
+
烧烤架
|
| 280 |
+
杠铃
|
| 281 |
+
理发师
|
| 282 |
+
理发店
|
| 283 |
+
芭比娃娃
|
| 284 |
+
驳船
|
| 285 |
+
咖啡师
|
| 286 |
+
树皮
|
| 287 |
+
大麦
|
| 288 |
+
谷仓
|
| 289 |
+
仓鸮
|
| 290 |
+
挡光板
|
| 291 |
+
桶
|
| 292 |
+
路障
|
| 293 |
+
屏障
|
| 294 |
+
手推车
|
| 295 |
+
酒保
|
| 296 |
+
棒球
|
| 297 |
+
棒球基地
|
| 298 |
+
棒球棒
|
| 299 |
+
棒球帽
|
| 300 |
+
棒球场
|
| 301 |
+
棒球比赛
|
| 302 |
+
棒球手套
|
| 303 |
+
棒球投手
|
| 304 |
+
棒球队
|
| 305 |
+
棒球制服
|
| 306 |
+
地下室
|
| 307 |
+
罗勒
|
| 308 |
+
水盆
|
| 309 |
+
篮子
|
| 310 |
+
篮子
|
| 311 |
+
篮球
|
| 312 |
+
篮球篮板
|
| 313 |
+
篮球教练
|
| 314 |
+
篮球场
|
| 315 |
+
篮球比赛
|
| 316 |
+
篮球框
|
| 317 |
+
篮球运动员
|
| 318 |
+
篮球馆
|
| 319 |
+
篮球队
|
| 320 |
+
贝斯
|
| 321 |
+
低音吉他
|
| 322 |
+
低音喇叭
|
| 323 |
+
贝斯手
|
| 324 |
+
球棒/球拍
|
| 325 |
+
浴室
|
| 326 |
+
水浴加热器
|
| 327 |
+
浴垫
|
| 328 |
+
浴巾
|
| 329 |
+
泳装
|
| 330 |
+
浴袍
|
| 331 |
+
浴室
|
| 332 |
+
浴室配件
|
| 333 |
+
浴室柜
|
| 334 |
+
浴室门
|
| 335 |
+
浴室镜子
|
| 336 |
+
浴室水槽
|
| 337 |
+
卫生纸
|
| 338 |
+
浴室窗户
|
| 339 |
+
蝙蝠侠
|
| 340 |
+
棒子
|
| 341 |
+
接连猛打/击球员
|
| 342 |
+
电池
|
| 343 |
+
战斗
|
| 344 |
+
战绳
|
| 345 |
+
战舰
|
| 346 |
+
海湾
|
| 347 |
+
海湾大桥
|
| 348 |
+
凸窗
|
| 349 |
+
杨梅
|
| 350 |
+
集市
|
| 351 |
+
海滩
|
| 352 |
+
沙滩球
|
| 353 |
+
沙滩椅
|
| 354 |
+
海滨别墅
|
| 355 |
+
海滩小屋
|
| 356 |
+
沙滩毛巾
|
| 357 |
+
沙滩排球
|
| 358 |
+
灯塔
|
| 359 |
+
珠子
|
| 360 |
+
比格犬
|
| 361 |
+
鸟嘴
|
| 362 |
+
烧杯
|
| 363 |
+
横梁
|
| 364 |
+
豆子
|
| 365 |
+
豆袋椅
|
| 366 |
+
豆袋
|
| 367 |
+
熊
|
| 368 |
+
幼熊
|
| 369 |
+
胡子
|
| 370 |
+
野兽
|
| 371 |
+
击打/击败
|
| 372 |
+
美丽的
|
| 373 |
+
美丽
|
| 374 |
+
美容院
|
| 375 |
+
海狸
|
| 376 |
+
床
|
| 377 |
+
床单
|
| 378 |
+
床架
|
| 379 |
+
卧室
|
| 380 |
+
床上用品
|
| 381 |
+
便盆
|
| 382 |
+
卧室窗户
|
| 383 |
+
床头灯
|
| 384 |
+
蜜蜂
|
| 385 |
+
山毛榉
|
| 386 |
+
牛肉
|
| 387 |
+
养蜂人
|
| 388 |
+
蜂鸣器
|
| 389 |
+
啤酒
|
| 390 |
+
啤酒瓶
|
| 391 |
+
啤酒罐
|
| 392 |
+
啤酒花园
|
| 393 |
+
啤酒杯
|
| 394 |
+
啤酒馆
|
| 395 |
+
甜菜
|
| 396 |
+
甲虫
|
| 397 |
+
米色
|
| 398 |
+
时钟
|
| 399 |
+
甜椒
|
| 400 |
+
钟楼
|
| 401 |
+
皮带
|
| 402 |
+
皮带扣
|
| 403 |
+
长凳
|
| 404 |
+
弯曲
|
| 405 |
+
孟加拉虎
|
| 406 |
+
盒饭
|
| 407 |
+
贝雷帽
|
| 408 |
+
浆果
|
| 409 |
+
停泊位
|
| 410 |
+
饮料
|
| 411 |
+
围嘴
|
| 412 |
+
拌饭
|
| 413 |
+
圣经
|
| 414 |
+
比熊
|
| 415 |
+
自行车
|
| 416 |
+
自行车头盔
|
| 417 |
+
自行车车轮
|
| 418 |
+
自行车骑士
|
| 419 |
+
坐浴盆
|
| 420 |
+
大本钟
|
| 421 |
+
自行车道
|
| 422 |
+
自行车道
|
| 423 |
+
自行车赛
|
| 424 |
+
骑车
|
| 425 |
+
比基尼
|
| 426 |
+
比基尼上衣
|
| 427 |
+
账单
|
| 428 |
+
台球
|
| 429 |
+
广告牌
|
| 430 |
+
台球台
|
| 431 |
+
垃圾箱
|
| 432 |
+
活页夹
|
| 433 |
+
双筒望远镜
|
| 434 |
+
生物学实验室
|
| 435 |
+
双翼飞机
|
| 436 |
+
桦木
|
| 437 |
+
桦树
|
| 438 |
+
鸟
|
| 439 |
+
鸟池
|
| 440 |
+
喂鸟器
|
| 441 |
+
鸟舍
|
| 442 |
+
鸟巢
|
| 443 |
+
鸟池
|
| 444 |
+
鸟笼
|
| 445 |
+
出生
|
| 446 |
+
生日
|
| 447 |
+
生日蛋糕
|
| 448 |
+
生日蜡烛
|
| 449 |
+
生日贺卡
|
| 450 |
+
生日聚会
|
| 451 |
+
饼干
|
| 452 |
+
主教
|
| 453 |
+
野牛
|
| 454 |
+
钻头
|
| 455 |
+
咬
|
| 456 |
+
黑色
|
| 457 |
+
黑山羊
|
| 458 |
+
黑莓
|
| 459 |
+
乌鸦
|
| 460 |
+
黑板
|
| 461 |
+
铁匠
|
| 462 |
+
叶片/刀片
|
| 463 |
+
毯子/覆盖层
|
| 464 |
+
��动外套
|
| 465 |
+
看台
|
| 466 |
+
搅拌机
|
| 467 |
+
祝福
|
| 468 |
+
窗帘
|
| 469 |
+
眼罩
|
| 470 |
+
闪光
|
| 471 |
+
暴风雪
|
| 472 |
+
块
|
| 473 |
+
博客
|
| 474 |
+
血
|
| 475 |
+
开花
|
| 476 |
+
花
|
| 477 |
+
女装衬衫
|
| 478 |
+
吹
|
| 479 |
+
吹风机
|
| 480 |
+
河豚
|
| 481 |
+
蓝色
|
| 482 |
+
蓝色艺术家
|
| 483 |
+
蓝松鸦
|
| 484 |
+
蓝天
|
| 485 |
+
蓝莓
|
| 486 |
+
蓝知更鸟
|
| 487 |
+
猪
|
| 488 |
+
板子
|
| 489 |
+
板擦
|
| 490 |
+
棋盘游戏
|
| 491 |
+
木板路
|
| 492 |
+
船
|
| 493 |
+
船甲板
|
| 494 |
+
船屋
|
| 495 |
+
桨
|
| 496 |
+
乘船
|
| 497 |
+
浮标
|
| 498 |
+
山猫
|
| 499 |
+
躯干
|
| 500 |
+
身体冲浪板
|
| 501 |
+
健美运动员
|
| 502 |
+
水煮鸡蛋
|
| 503 |
+
锅炉
|
| 504 |
+
饰扣式领带
|
| 505 |
+
门闩
|
| 506 |
+
炸弹
|
| 507 |
+
轰炸机
|
| 508 |
+
披肩榛鸡
|
| 509 |
+
骨骼
|
| 510 |
+
篝火
|
| 511 |
+
阀盖
|
| 512 |
+
盆景
|
| 513 |
+
书
|
| 514 |
+
书籍封面
|
| 515 |
+
书柜
|
| 516 |
+
文件夹
|
| 517 |
+
书签
|
| 518 |
+
书架
|
| 519 |
+
书店
|
| 520 |
+
远程拾音器
|
| 521 |
+
推动
|
| 522 |
+
靴子
|
| 523 |
+
边界
|
| 524 |
+
边境牧羊犬
|
| 525 |
+
植物园
|
| 526 |
+
瓶
|
| 527 |
+
瓶盖
|
| 528 |
+
开瓶器
|
| 529 |
+
螺旋开瓶器
|
| 530 |
+
三角梅
|
| 531 |
+
巨石
|
| 532 |
+
花束
|
| 533 |
+
时装店
|
| 534 |
+
精品酒店
|
| 535 |
+
鞠躬/蝴蝶结
|
| 536 |
+
领结
|
| 537 |
+
弓形窗
|
| 538 |
+
碗
|
| 539 |
+
保龄球运动
|
| 540 |
+
保龄球馆
|
| 541 |
+
保龄球
|
| 542 |
+
保龄球设备
|
| 543 |
+
盒子
|
| 544 |
+
箱形梁桥
|
| 545 |
+
箱龟
|
| 546 |
+
拳击手
|
| 547 |
+
内裤
|
| 548 |
+
拳击
|
| 549 |
+
拳击手套
|
| 550 |
+
拳击台
|
| 551 |
+
男孩
|
| 552 |
+
支撑物
|
| 553 |
+
支架
|
| 554 |
+
辫子
|
| 555 |
+
大脑
|
| 556 |
+
刹车
|
| 557 |
+
刹车灯
|
| 558 |
+
树枝
|
| 559 |
+
商标
|
| 560 |
+
白兰地
|
| 561 |
+
黄铜
|
| 562 |
+
黄铜牌匾
|
| 563 |
+
面包
|
| 564 |
+
面包箱
|
| 565 |
+
休息
|
| 566 |
+
早餐
|
| 567 |
+
防浪堤
|
| 568 |
+
胸部
|
| 569 |
+
啤酒厂
|
| 570 |
+
砖块
|
| 571 |
+
砖建筑物
|
| 572 |
+
墙
|
| 573 |
+
砖块
|
| 574 |
+
婚纱
|
| 575 |
+
新娘
|
| 576 |
+
新郎
|
| 577 |
+
伴娘
|
| 578 |
+
桥
|
| 579 |
+
缰绳
|
| 580 |
+
公文包
|
| 581 |
+
明亮的
|
| 582 |
+
边沿
|
| 583 |
+
钻头
|
| 584 |
+
广播
|
| 585 |
+
西兰花
|
| 586 |
+
青铜
|
| 587 |
+
铜牌
|
| 588 |
+
青铜雕塑
|
| 589 |
+
青铜雕像
|
| 590 |
+
胸针
|
| 591 |
+
小溪
|
| 592 |
+
扫帚
|
| 593 |
+
肉汤
|
| 594 |
+
棕色
|
| 595 |
+
棕熊
|
| 596 |
+
巧克力蛋糕
|
| 597 |
+
早午餐
|
| 598 |
+
浅黑肤色的女人
|
| 599 |
+
刷子
|
| 600 |
+
郊狼
|
| 601 |
+
包菜
|
| 602 |
+
气泡
|
| 603 |
+
泡泡糖
|
| 604 |
+
珍珠奶茶
|
| 605 |
+
斗柜
|
| 606 |
+
盾牌
|
| 607 |
+
芽
|
| 608 |
+
佛
|
| 609 |
+
水牛
|
| 610 |
+
自助餐
|
| 611 |
+
昆虫
|
| 612 |
+
建造
|
| 613 |
+
建造者
|
| 614 |
+
建筑
|
| 615 |
+
积木
|
| 616 |
+
建筑立面
|
| 617 |
+
建筑材料
|
| 618 |
+
灯
|
| 619 |
+
牛
|
| 620 |
+
斗牛犬
|
| 621 |
+
子弹
|
| 622 |
+
动车
|
| 623 |
+
公告栏
|
| 624 |
+
防弹背心
|
| 625 |
+
斗牛
|
| 626 |
+
扩音器
|
| 627 |
+
斗牛场
|
| 628 |
+
大黄蜂
|
| 629 |
+
保险杠
|
| 630 |
+
卷/地形起伏
|
| 631 |
+
捆
|
| 632 |
+
蹦极
|
| 633 |
+
双层床
|
| 634 |
+
地堡/击球
|
| 635 |
+
兔子
|
| 636 |
+
浮标
|
| 637 |
+
书桌
|
| 638 |
+
墓室
|
| 639 |
+
燃烧
|
| 640 |
+
玉米煎饼
|
| 641 |
+
公交车
|
| 642 |
+
公交车司机
|
| 643 |
+
公交车内部
|
| 644 |
+
公交车站
|
| 645 |
+
公交车站
|
| 646 |
+
公交车窗户
|
| 647 |
+
灌木
|
| 648 |
+
商业
|
| 649 |
+
名片
|
| 650 |
+
业务主管
|
| 651 |
+
商务西装
|
| 652 |
+
业务团队
|
| 653 |
+
女商人
|
| 654 |
+
商人
|
| 655 |
+
半身像
|
| 656 |
+
屠夫
|
| 657 |
+
肉铺
|
| 658 |
+
孤峰
|
| 659 |
+
黄油
|
| 660 |
+
奶油
|
| 661 |
+
蝴蝶
|
| 662 |
+
蝴蝶馆
|
| 663 |
+
按钮
|
| 664 |
+
梧桐树
|
| 665 |
+
购买
|
| 666 |
+
出租车
|
| 667 |
+
小屋
|
| 668 |
+
卷心菜
|
| 669 |
+
小屋/机舱
|
| 670 |
+
守车
|
| 671 |
+
储藏柜
|
| 672 |
+
橱柜
|
| 673 |
+
电缆
|
| 674 |
+
缆车
|
| 675 |
+
仙人掌
|
| 676 |
+
咖啡馆
|
| 677 |
+
食堂
|
| 678 |
+
笼子
|
| 679 |
+
蛋糕
|
| 680 |
+
蛋糕台
|
| 681 |
+
计算器
|
| 682 |
+
大锅
|
| 683 |
+
日历
|
| 684 |
+
小腿
|
| 685 |
+
通话
|
| 686 |
+
电话亭
|
| 687 |
+
书法
|
| 688 |
+
平静的
|
| 689 |
+
摄像机
|
| 690 |
+
骆驼
|
| 691 |
+
相机
|
| 692 |
+
相机镜头
|
| 693 |
+
迷彩
|
| 694 |
+
露营
|
| 695 |
+
露营者
|
| 696 |
+
篝火
|
| 697 |
+
露营
|
| 698 |
+
营地
|
| 699 |
+
校园
|
| 700 |
+
罐
|
| 701 |
+
开罐器
|
| 702 |
+
运河
|
| 703 |
+
金丝雀
|
| 704 |
+
癌症
|
| 705 |
+
蜡烛
|
| 706 |
+
烛台
|
| 707 |
+
糖果
|
| 708 |
+
块状糖
|
| 709 |
+
柺杖糖
|
| 710 |
+
糖果店
|
| 711 |
+
拐杖
|
| 712 |
+
罐子
|
| 713 |
+
大炮
|
| 714 |
+
树冠/顶棚
|
| 715 |
+
四柱床
|
| 716 |
+
香瓜
|
| 717 |
+
悬臂桥
|
| 718 |
+
帆布
|
| 719 |
+
峡谷
|
| 720 |
+
帽子
|
| 721 |
+
斗篷
|
| 722 |
+
科德角
|
| 723 |
+
卡布奇诺
|
| 724 |
+
胶囊
|
| 725 |
+
队长
|
| 726 |
+
捕获
|
| 727 |
+
车
|
| 728 |
+
汽车经销商
|
| 729 |
+
车门
|
| 730 |
+
汽车内饰
|
| 731 |
+
车标
|
| 732 |
+
后视镜
|
| 733 |
+
停车场
|
| 734 |
+
汽车座椅
|
| 735 |
+
车展
|
| 736 |
+
洗车
|
| 737 |
+
车窗
|
| 738 |
+
焦糖
|
| 739 |
+
卡片
|
| 740 |
+
纸牌游戏
|
| 741 |
+
纸板
|
| 742 |
+
纸板盒
|
| 743 |
+
羊毛衫
|
| 744 |
+
红衣凤头鸟
|
| 745 |
+
货物
|
| 746 |
+
货运飞机
|
| 747 |
+
货船
|
| 748 |
+
加勒比
|
| 749 |
+
康乃馨
|
| 750 |
+
狂欢节
|
| 751 |
+
食肉动物
|
| 752 |
+
旋转木马
|
| 753 |
+
鲤鱼
|
| 754 |
+
木匠
|
| 755 |
+
地毯
|
| 756 |
+
拖鞋
|
| 757 |
+
红雀
|
| 758 |
+
长途客车
|
| 759 |
+
斑点狗
|
| 760 |
+
航空母舰
|
| 761 |
+
胡萝卜
|
| 762 |
+
胡萝卜蛋糕
|
| 763 |
+
携带
|
| 764 |
+
手推车
|
| 765 |
+
纸箱/纸盒
|
| 766 |
+
卡通
|
| 767 |
+
卡通人物
|
| 768 |
+
卡通插图
|
| 769 |
+
卡通风格
|
| 770 |
+
雕刻
|
| 771 |
+
容器
|
| 772 |
+
现金
|
| 773 |
+
腰果
|
| 774 |
+
赌场
|
| 775 |
+
砂锅
|
| 776 |
+
磁带
|
| 777 |
+
盒式录音机
|
| 778 |
+
石膏绷带
|
| 779 |
+
铸造
|
| 780 |
+
城堡
|
| 781 |
+
猫
|
| 782 |
+
猫窝
|
| 783 |
+
猫粮
|
| 784 |
+
猫器具
|
| 785 |
+
猫架
|
| 786 |
+
地下墓穴
|
| 787 |
+
双体船
|
| 788 |
+
美洲狮
|
| 789 |
+
握着/抓着
|
| 790 |
+
捕手
|
| 791 |
+
毛毛虫
|
| 792 |
+
鲶鱼
|
| 793 |
+
教堂
|
| 794 |
+
牛
|
| 795 |
+
猫步
|
| 796 |
+
走秀
|
| 797 |
+
菜花
|
| 798 |
+
洞穴
|
| 799 |
+
鱼子酱
|
| 800 |
+
光盘
|
| 801 |
+
CD播放器
|
| 802 |
+
雪松
|
| 803 |
+
天花板
|
| 804 |
+
吊扇
|
| 805 |
+
庆祝
|
| 806 |
+
庆典
|
| 807 |
+
名人
|
| 808 |
+
芹菜
|
| 809 |
+
大提琴
|
| 810 |
+
手机
|
| 811 |
+
水泥
|
| 812 |
+
墓地
|
| 813 |
+
中心装饰品
|
| 814 |
+
蜈蚣
|
| 815 |
+
陶瓷
|
| 816 |
+
瓷砖
|
| 817 |
+
麦片
|
| 818 |
+
仪式
|
| 819 |
+
证书
|
| 820 |
+
链条
|
| 821 |
+
链锯
|
| 822 |
+
椅子
|
| 823 |
+
升降椅
|
| 824 |
+
躺椅
|
| 825 |
+
木屋
|
| 826 |
+
圣杯
|
| 827 |
+
粉笔
|
| 828 |
+
房间
|
| 829 |
+
变色龙
|
| 830 |
+
香槟酒
|
| 831 |
+
香槟杯
|
| 832 |
+
冠军
|
| 833 |
+
锦标赛
|
| 834 |
+
吊灯
|
| 835 |
+
婴儿换尿布台
|
| 836 |
+
通道
|
| 837 |
+
皴裂处
|
| 838 |
+
小教堂
|
| 839 |
+
人物雕塑
|
| 840 |
+
木炭
|
| 841 |
+
充电
|
| 842 |
+
充电器
|
| 843 |
+
战车
|
| 844 |
+
慈善机构
|
| 845 |
+
慈善活动
|
| 846 |
+
魅力
|
| 847 |
+
图表
|
| 848 |
+
追逐
|
| 849 |
+
底盘
|
| 850 |
+
检查/支票
|
| 851 |
+
支票簿
|
| 852 |
+
棋盘
|
| 853 |
+
检查表
|
| 854 |
+
欢呼声
|
| 855 |
+
鼓励/啦啦队
|
| 856 |
+
奶酪
|
| 857 |
+
奶酪汉堡
|
| 858 |
+
奶酪蛋糕
|
| 859 |
+
猎豹
|
| 860 |
+
厨师
|
| 861 |
+
化合物
|
| 862 |
+
化学家
|
| 863 |
+
化学
|
| 864 |
+
化学实验室
|
| 865 |
+
旗袍
|
| 866 |
+
樱桃
|
| 867 |
+
樱花
|
| 868 |
+
樱桃番茄
|
| 869 |
+
樱桃树
|
| 870 |
+
国际象棋
|
| 871 |
+
栗子
|
| 872 |
+
鸡
|
| 873 |
+
鸡胸肉
|
| 874 |
+
鸡笼
|
| 875 |
+
鸡肉沙拉
|
| 876 |
+
鸡翅
|
| 877 |
+
鹰嘴豆
|
| 878 |
+
小衣橱
|
| 879 |
+
吉娃娃
|
| 880 |
+
孩子
|
| 881 |
+
童星
|
| 882 |
+
孩子的房间
|
| 883 |
+
红番椒
|
| 884 |
+
辣热狗
|
| 885 |
+
烟囱
|
| 886 |
+
黑猩猩
|
| 887 |
+
瓷器
|
| 888 |
+
白菜
|
| 889 |
+
中国园林
|
| 890 |
+
中国结
|
| 891 |
+
月季
|
| 892 |
+
中国塔
|
| 893 |
+
炸薯条/炸薯条
|
| 894 |
+
花栗鼠
|
| 895 |
+
凿子
|
| 896 |
+
巧克力
|
| 897 |
+
巧克力棒
|
| 898 |
+
巧克力蛋糕
|
| 899 |
+
巧克力碎片
|
| 900 |
+
巧克力饼干
|
| 901 |
+
巧克力牛奶
|
| 902 |
+
巧克力慕斯
|
| 903 |
+
松露
|
| 904 |
+
唱诗班
|
| 905 |
+
厨房刀
|
| 906 |
+
砧板
|
| 907 |
+
筷子
|
| 908 |
+
圣诞节
|
| 909 |
+
圣诞球
|
| 910 |
+
圣诞贺卡
|
| 911 |
+
圣诞装饰
|
| 912 |
+
圣诞晚宴
|
| 913 |
+
平安夜
|
| 914 |
+
圣诞帽
|
| 915 |
+
圣诞灯
|
| 916 |
+
圣诞市场
|
| 917 |
+
圣诞装饰
|
| 918 |
+
圣诞树
|
| 919 |
+
菊花
|
| 920 |
+
教堂
|
| 921 |
+
教堂塔
|
| 922 |
+
苹果酒
|
| 923 |
+
雪茄
|
| 924 |
+
雪茄盒
|
| 925 |
+
香烟
|
| 926 |
+
烟盒
|
| 927 |
+
腰带
|
| 928 |
+
电影院
|
| 929 |
+
摄影师
|
| 930 |
+
肉桂
|
| 931 |
+
圆
|
| 932 |
+
电路
|
| 933 |
+
电路板
|
| 934 |
+
马戏团
|
| 935 |
+
水箱
|
| 936 |
+
柑橘类水果
|
| 937 |
+
城市
|
| 938 |
+
城市公交
|
| 939 |
+
市政厅
|
| 940 |
+
城市夜景
|
| 941 |
+
城市公园
|
| 942 |
+
城市天际线
|
| 943 |
+
城市广场
|
| 944 |
+
城市街道
|
| 945 |
+
城墙
|
| 946 |
+
城市景观
|
| 947 |
+
蛤蜊
|
| 948 |
+
单���管
|
| 949 |
+
扣子
|
| 950 |
+
班级
|
| 951 |
+
经典
|
| 952 |
+
教室
|
| 953 |
+
锁骨
|
| 954 |
+
爪子
|
| 955 |
+
黏土
|
| 956 |
+
陶器
|
| 957 |
+
清洁
|
| 958 |
+
洁净室
|
| 959 |
+
清洁工人
|
| 960 |
+
清洁用品
|
| 961 |
+
清晰的
|
| 962 |
+
栓
|
| 963 |
+
克莱门氏小柑橘
|
| 964 |
+
客户端
|
| 965 |
+
悬崖
|
| 966 |
+
爬
|
| 967 |
+
爬山
|
| 968 |
+
登山者
|
| 969 |
+
诊所
|
| 970 |
+
夹子
|
| 971 |
+
剪贴画
|
| 972 |
+
剪贴板
|
| 973 |
+
快速帆船
|
| 974 |
+
君子兰
|
| 975 |
+
斗篷
|
| 976 |
+
木底鞋
|
| 977 |
+
特写
|
| 978 |
+
壁橱
|
| 979 |
+
布
|
| 980 |
+
穿衣
|
| 981 |
+
衣服
|
| 982 |
+
晒衣夹
|
| 983 |
+
晒衣绳
|
| 984 |
+
服装店
|
| 985 |
+
云
|
| 986 |
+
云雾森林
|
| 987 |
+
多云
|
| 988 |
+
三叶草
|
| 989 |
+
小丑
|
| 990 |
+
小丑鱼
|
| 991 |
+
俱乐部
|
| 992 |
+
离合器
|
| 993 |
+
手拿包
|
| 994 |
+
煤炭
|
| 995 |
+
海岸
|
| 996 |
+
外套
|
| 997 |
+
衣帽架
|
| 998 |
+
玉米
|
| 999 |
+
公鸡
|
| 1000 |
+
凤头鹦鹉
|
| 1001 |
+
可卡犬
|
| 1002 |
+
驾驶
|
| 1003 |
+
蟑螂
|
| 1004 |
+
鸡尾酒
|
| 1005 |
+
小礼服
|
| 1006 |
+
鸡尾酒调制器
|
| 1007 |
+
鸡尾酒桌
|
| 1008 |
+
可可
|
| 1009 |
+
椰子
|
| 1010 |
+
椰子树
|
| 1011 |
+
咖啡
|
| 1012 |
+
咖啡豆
|
| 1013 |
+
咖啡杯
|
| 1014 |
+
咖啡机
|
| 1015 |
+
咖啡店
|
| 1016 |
+
咖啡壶
|
| 1017 |
+
棺材
|
| 1018 |
+
法国白兰地
|
| 1019 |
+
螺旋
|
| 1020 |
+
硬币
|
| 1021 |
+
可口可乐
|
| 1022 |
+
滤器
|
| 1023 |
+
冷的
|
| 1024 |
+
卷心菜沙拉
|
| 1025 |
+
合作
|
| 1026 |
+
拼贴画
|
| 1027 |
+
收藏品
|
| 1028 |
+
大学生
|
| 1029 |
+
牧羊犬
|
| 1030 |
+
碰撞
|
| 1031 |
+
颜色
|
| 1032 |
+
涂色书
|
| 1033 |
+
染色材料
|
| 1034 |
+
矮种马
|
| 1035 |
+
柱子
|
| 1036 |
+
梳子
|
| 1037 |
+
密码锁
|
| 1038 |
+
喜剧演员
|
| 1039 |
+
喜剧
|
| 1040 |
+
喜剧电影
|
| 1041 |
+
彗星
|
| 1042 |
+
舒服
|
| 1043 |
+
安慰食物
|
| 1044 |
+
漫画书
|
| 1045 |
+
漫画人物
|
| 1046 |
+
连环画
|
| 1047 |
+
指挥官
|
| 1048 |
+
评论员
|
| 1049 |
+
社区
|
| 1050 |
+
通勤
|
| 1051 |
+
公司
|
| 1052 |
+
指南针
|
| 1053 |
+
比赛
|
| 1054 |
+
比赛
|
| 1055 |
+
竞争者
|
| 1056 |
+
作曲家
|
| 1057 |
+
作文
|
| 1058 |
+
堆肥
|
| 1059 |
+
电脑
|
| 1060 |
+
电脑机箱
|
| 1061 |
+
电脑椅
|
| 1062 |
+
电脑桌
|
| 1063 |
+
键盘
|
| 1064 |
+
计算机显示器
|
| 1065 |
+
计算机房
|
| 1066 |
+
电脑屏幕
|
| 1067 |
+
机箱
|
| 1068 |
+
概念车
|
| 1069 |
+
音乐会
|
| 1070 |
+
音乐厅
|
| 1071 |
+
贝壳
|
| 1072 |
+
混凝土
|
| 1073 |
+
调味品
|
| 1074 |
+
避孕套
|
| 1075 |
+
独立产权的公寓
|
| 1076 |
+
指挥
|
| 1077 |
+
锥形物
|
| 1078 |
+
会议
|
| 1079 |
+
会议中心
|
| 1080 |
+
会议厅
|
| 1081 |
+
会议室
|
| 1082 |
+
五彩纸屑
|
| 1083 |
+
冲突
|
| 1084 |
+
合流
|
| 1085 |
+
连接
|
| 1086 |
+
连接器
|
| 1087 |
+
温室
|
| 1088 |
+
星座
|
| 1089 |
+
建筑工地
|
| 1090 |
+
建筑工人
|
| 1091 |
+
包含
|
| 1092 |
+
容器
|
| 1093 |
+
集装箱船
|
| 1094 |
+
大陆
|
| 1095 |
+
轮廓
|
| 1096 |
+
合同
|
| 1097 |
+
控制
|
| 1098 |
+
控制塔
|
| 1099 |
+
便利店
|
| 1100 |
+
集会
|
| 1101 |
+
交谈
|
| 1102 |
+
转换器
|
| 1103 |
+
可转换的
|
| 1104 |
+
输送机
|
| 1105 |
+
厨师/烹饪
|
| 1106 |
+
烹饪
|
| 1107 |
+
烹饪喷雾剂
|
| 1108 |
+
炊具
|
| 1109 |
+
凉的
|
| 1110 |
+
冷却器
|
| 1111 |
+
铜
|
| 1112 |
+
一本/一册
|
| 1113 |
+
珊瑚
|
| 1114 |
+
珊瑚礁
|
| 1115 |
+
粗绳
|
| 1116 |
+
有线电话
|
| 1117 |
+
酒
|
| 1118 |
+
威尔士矮脚狗
|
| 1119 |
+
瓶塞
|
| 1120 |
+
软木板
|
| 1121 |
+
鸬鹚
|
| 1122 |
+
玉米
|
| 1123 |
+
玉米田
|
| 1124 |
+
玉米面包
|
| 1125 |
+
角落
|
| 1126 |
+
小号
|
| 1127 |
+
飞檐
|
| 1128 |
+
燕麦片
|
| 1129 |
+
围栏
|
| 1130 |
+
走廊
|
| 1131 |
+
紧身衣
|
| 1132 |
+
化妆品
|
| 1133 |
+
化妆刷
|
| 1134 |
+
化妆镜
|
| 1135 |
+
角色扮演
|
| 1136 |
+
服装
|
| 1137 |
+
服装电影设计师
|
| 1138 |
+
婴儿床
|
| 1139 |
+
小屋
|
| 1140 |
+
棉花
|
| 1141 |
+
棉花糖
|
| 1142 |
+
沙发
|
| 1143 |
+
倒计时
|
| 1144 |
+
柜台
|
| 1145 |
+
台面
|
| 1146 |
+
最佳乡村歌手
|
| 1147 |
+
乡村别墅
|
| 1148 |
+
乡村公路
|
| 1149 |
+
乡村流行歌手
|
| 1150 |
+
农村
|
| 1151 |
+
双门小轿车
|
| 1152 |
+
夫妇/两人/几个
|
| 1153 |
+
情侣写真
|
| 1154 |
+
小胡瓜
|
| 1155 |
+
课程
|
| 1156 |
+
球场
|
| 1157 |
+
法院
|
| 1158 |
+
院子
|
| 1159 |
+
堂兄弟
|
| 1160 |
+
工作服
|
| 1161 |
+
奶牛
|
| 1162 |
+
母牛的颈铃
|
| 1163 |
+
牛仔
|
| 1164 |
+
牛仔靴
|
| 1165 |
+
牛仔帽
|
| 1166 |
+
螃蟹
|
| 1167 |
+
蟹肉
|
| 1168 |
+
裂纹
|
| 1169 |
+
摇篮
|
| 1170 |
+
工艺
|
| 1171 |
+
工匠
|
| 1172 |
+
蔓越莓
|
| 1173 |
+
起重机
|
| 1174 |
+
黑纱
|
| 1175 |
+
厕所
|
| 1176 |
+
板条箱
|
| 1177 |
+
火山口湖
|
| 1178 |
+
龙虾
|
| 1179 |
+
蜡笔
|
| 1180 |
+
奶油乳酪
|
| 1181 |
+
奶油罐
|
| 1182 |
+
创建
|
| 1183 |
+
生物
|
| 1184 |
+
信用卡
|
| 1185 |
+
新月形
|
| 1186 |
+
新月形面包
|
| 1187 |
+
山顶
|
| 1188 |
+
全体船员
|
| 1189 |
+
蟋蟀
|
| 1190 |
+
板球用球
|
| 1191 |
+
板球队
|
| 1192 |
+
板球队员
|
| 1193 |
+
钩边
|
| 1194 |
+
克罗克电锅
|
| 1195 |
+
鳄鱼
|
| 1196 |
+
庄稼
|
| 1197 |
+
露脐上衣
|
| 1198 |
+
交叉
|
| 1199 |
+
横木
|
| 1200 |
+
十字路口
|
| 1201 |
+
相声
|
| 1202 |
+
人行横道
|
| 1203 |
+
油煎面包块
|
| 1204 |
+
乌鸦
|
| 1205 |
+
撬棍
|
| 1206 |
+
人群
|
| 1207 |
+
拥挤的
|
| 1208 |
+
皇冠
|
| 1209 |
+
阴极射线管屏幕
|
| 1210 |
+
耶稣受难像
|
| 1211 |
+
巡游
|
| 1212 |
+
游轮
|
| 1213 |
+
巡洋艇
|
| 1214 |
+
面包屑
|
| 1215 |
+
压坏
|
| 1216 |
+
拐杖
|
| 1217 |
+
水晶
|
| 1218 |
+
幼兽
|
| 1219 |
+
立方体
|
| 1220 |
+
黄瓜
|
| 1221 |
+
球杆
|
| 1222 |
+
袖口
|
| 1223 |
+
袖扣
|
| 1224 |
+
烹饪
|
| 1225 |
+
农田
|
| 1226 |
+
杯子
|
| 1227 |
+
纸杯蛋糕
|
| 1228 |
+
丘比特
|
| 1229 |
+
马路牙子
|
| 1230 |
+
旋度
|
| 1231 |
+
卷发器
|
| 1232 |
+
无籽葡萄干
|
| 1233 |
+
货币
|
| 1234 |
+
咖喱
|
| 1235 |
+
窗帘
|
| 1236 |
+
曲线
|
| 1237 |
+
软垫
|
| 1238 |
+
顾客
|
| 1239 |
+
切
|
| 1240 |
+
餐具
|
| 1241 |
+
自行车
|
| 1242 |
+
骑自行车
|
| 1243 |
+
龙卷风
|
| 1244 |
+
汽缸
|
| 1245 |
+
铙钹
|
| 1246 |
+
柏树
|
| 1247 |
+
柏树
|
| 1248 |
+
达克斯猎狗
|
| 1249 |
+
水仙花
|
| 1250 |
+
匕首
|
| 1251 |
+
大丽花
|
| 1252 |
+
萝卜
|
| 1253 |
+
乳制品
|
| 1254 |
+
雏菊
|
| 1255 |
+
大坝
|
| 1256 |
+
损害
|
| 1257 |
+
潮湿的
|
| 1258 |
+
跳舞
|
| 1259 |
+
舞池
|
| 1260 |
+
舞蹈室
|
| 1261 |
+
舞者
|
| 1262 |
+
蒲公英
|
| 1263 |
+
黑暗
|
| 1264 |
+
黑暗
|
| 1265 |
+
飞镖
|
| 1266 |
+
圆靶
|
| 1267 |
+
指示板
|
| 1268 |
+
日期
|
| 1269 |
+
女儿
|
| 1270 |
+
黎明
|
| 1271 |
+
天床上
|
| 1272 |
+
日光
|
| 1273 |
+
门栓
|
| 1274 |
+
死亡
|
| 1275 |
+
辩论
|
| 1276 |
+
碎片
|
| 1277 |
+
玻璃水瓶
|
| 1278 |
+
甲板
|
| 1279 |
+
双层巴士
|
| 1280 |
+
装饰
|
| 1281 |
+
装修/装饰
|
| 1282 |
+
装饰画
|
| 1283 |
+
鹿
|
| 1284 |
+
后卫
|
| 1285 |
+
神
|
| 1286 |
+
熟食
|
| 1287 |
+
投递
|
| 1288 |
+
拆迁
|
| 1289 |
+
怪兽
|
| 1290 |
+
演示
|
| 1291 |
+
兽窝/休闲室
|
| 1292 |
+
牛仔夹克
|
| 1293 |
+
牙医
|
| 1294 |
+
百货商店
|
| 1295 |
+
抑郁症
|
| 1296 |
+
德比
|
| 1297 |
+
皮肤病
|
| 1298 |
+
沙漠
|
| 1299 |
+
沙漠公路
|
| 1300 |
+
设计
|
| 1301 |
+
设计师
|
| 1302 |
+
桌子/表格
|
| 1303 |
+
台灯
|
| 1304 |
+
桌面
|
| 1305 |
+
台式电脑
|
| 1306 |
+
甜点
|
| 1307 |
+
破坏
|
| 1308 |
+
侦探
|
| 1309 |
+
洗涤剂
|
| 1310 |
+
露水
|
| 1311 |
+
仪表盘
|
| 1312 |
+
钻石
|
| 1313 |
+
尿布
|
| 1314 |
+
尿布包
|
| 1315 |
+
杂志
|
| 1316 |
+
死
|
| 1317 |
+
饮食
|
| 1318 |
+
挖掘机
|
| 1319 |
+
数字
|
| 1320 |
+
数字时钟
|
| 1321 |
+
莳萝
|
| 1322 |
+
晚餐
|
| 1323 |
+
小船
|
| 1324 |
+
餐厅
|
| 1325 |
+
晚宴
|
| 1326 |
+
餐桌
|
| 1327 |
+
恐龙
|
| 1328 |
+
浸
|
| 1329 |
+
文凭
|
| 1330 |
+
指引
|
| 1331 |
+
导演
|
| 1332 |
+
尘埃
|
| 1333 |
+
越野摩托车
|
| 1334 |
+
泥土地
|
| 1335 |
+
泥土路
|
| 1336 |
+
泥路/土路
|
| 1337 |
+
灾难
|
| 1338 |
+
信徒
|
| 1339 |
+
迪斯科舞厅
|
| 1340 |
+
迪斯科灯秋
|
| 1341 |
+
迪斯科舞厅
|
| 1342 |
+
疾病
|
| 1343 |
+
盘子
|
| 1344 |
+
碟形天线
|
| 1345 |
+
洗碗机
|
| 1346 |
+
抹布
|
| 1347 |
+
菜肴
|
| 1348 |
+
洗碗液
|
| 1349 |
+
迪斯尼乐园
|
| 1350 |
+
自动售货机
|
| 1351 |
+
展示
|
| 1352 |
+
陈列窗
|
| 1353 |
+
壕沟
|
| 1354 |
+
潜水
|
| 1355 |
+
潜水员
|
| 1356 |
+
跳水板
|
| 1357 |
+
纸杯
|
| 1358 |
+
流行音乐播音员
|
| 1359 |
+
杜宾犬
|
| 1360 |
+
码头
|
| 1361 |
+
医生
|
| 1362 |
+
文件
|
| 1363 |
+
纪录片
|
| 1364 |
+
狗
|
| 1365 |
+
狗窝
|
| 1366 |
+
犬种
|
| 1367 |
+
狗项圈
|
| 1368 |
+
狗粮
|
| 1369 |
+
狗窝
|
| 1370 |
+
洋娃娃
|
| 1371 |
+
美元
|
| 1372 |
+
玩偶之家
|
| 1373 |
+
洋娃娃
|
| 1374 |
+
海豚
|
| 1375 |
+
穹顶
|
| 1376 |
+
住宅
|
| 1377 |
+
多米诺骨牌
|
| 1378 |
+
驴
|
| 1379 |
+
甜甜圈
|
| 1380 |
+
涂鸦
|
| 1381 |
+
门
|
| 1382 |
+
门把手
|
| 1383 |
+
受气包
|
| 1384 |
+
门牌
|
| 1385 |
+
门口
|
| 1386 |
+
宿舍
|
| 1387 |
+
面团
|
| 1388 |
+
市中心
|
| 1389 |
+
推土机
|
| 1390 |
+
拖
|
| 1391 |
+
龙
|
| 1392 |
+
蜻蜓
|
| 1393 |
+
排水沟
|
| 1394 |
+
剧本
|
| 1395 |
+
戏剧电影
|
| 1396 |
+
画
|
| 1397 |
+
抽屉里
|
| 1398 |
+
图画/画画
|
| 1399 |
+
图钉
|
| 1400 |
+
辫子
|
| 1401 |
+
连衣裙/特定场合的服装
|
| 1402 |
+
礼帽
|
| 1403 |
+
正装衬衫
|
| 1404 |
+
皮鞋
|
| 1405 |
+
大礼服
|
| 1406 |
+
梳妆台
|
| 1407 |
+
更衣室
|
| 1408 |
+
运球
|
| 1409 |
+
漂移
|
| 1410 |
+
浮木
|
| 1411 |
+
钻
|
| 1412 |
+
饮品/喝
|
| 1413 |
+
饮用水
|
| 1414 |
+
开车
|
| 1415 |
+
司机
|
| 1416 |
+
车道
|
| 1417 |
+
无人机
|
| 1418 |
+
水滴/下降
|
| 1419 |
+
吊灯
|
| 1420 |
+
滴管
|
| 1421 |
+
干旱
|
| 1422 |
+
药物
|
| 1423 |
+
药店
|
| 1424 |
+
鼓
|
| 1425 |
+
鼓手
|
| 1426 |
+
鸡腿
|
| 1427 |
+
干的
|
| 1428 |
+
公爵夫人
|
| 1429 |
+
鸭子
|
| 1430 |
+
鸭嘴兽
|
| 1431 |
+
小鸭子
|
| 1432 |
+
布基胶带
|
| 1433 |
+
伙计
|
| 1434 |
+
二重唱
|
| 1435 |
+
粗呢
|
| 1436 |
+
独木舟
|
| 1437 |
+
哑铃
|
| 1438 |
+
饺子
|
| 1439 |
+
沙丘
|
| 1440 |
+
扣篮
|
| 1441 |
+
榴莲
|
| 1442 |
+
黄昏
|
| 1443 |
+
灰尘
|
| 1444 |
+
垃圾车
|
| 1445 |
+
簸箕
|
| 1446 |
+
羽绒被
|
| 1447 |
+
DVD
|
| 1448 |
+
染料
|
| 1449 |
+
鹰
|
| 1450 |
+
耳朵
|
| 1451 |
+
御寒耳罩
|
| 1452 |
+
耳机
|
| 1453 |
+
耳塞
|
| 1454 |
+
耳环
|
| 1455 |
+
地震
|
| 1456 |
+
画架
|
| 1457 |
+
复活节
|
| 1458 |
+
复活节兔子
|
| 1459 |
+
复活节彩蛋
|
| 1460 |
+
吃
|
| 1461 |
+
餐厅
|
| 1462 |
+
泡芙
|
| 1463 |
+
日食
|
| 1464 |
+
生态系统
|
| 1465 |
+
编辑
|
| 1466 |
+
教育
|
| 1467 |
+
教育家
|
| 1468 |
+
鳗鱼
|
| 1469 |
+
蛋
|
| 1470 |
+
蛋卷
|
| 1471 |
+
蛋挞
|
| 1472 |
+
打蛋器
|
| 1473 |
+
白鹭
|
| 1474 |
+
埃菲尔铁塔
|
| 1475 |
+
橡皮筋
|
| 1476 |
+
上级
|
| 1477 |
+
电椅
|
| 1478 |
+
电钻
|
| 1479 |
+
电工
|
| 1480 |
+
电
|
| 1481 |
+
电子
|
| 1482 |
+
电子器件
|
| 1483 |
+
大象
|
| 1484 |
+
高度图
|
| 1485 |
+
电梯
|
| 1486 |
+
电梯轿厢
|
| 1487 |
+
电梯门
|
| 1488 |
+
电梯大堂
|
| 1489 |
+
电梯井
|
| 1490 |
+
路堤
|
| 1491 |
+
大使馆
|
| 1492 |
+
装饰
|
| 1493 |
+
灰烬
|
| 1494 |
+
会徽
|
| 1495 |
+
刺绣
|
| 1496 |
+
翡翠
|
| 1497 |
+
紧急
|
| 1498 |
+
紧急服务
|
| 1499 |
+
紧急车辆
|
| 1500 |
+
情感
|
| 1501 |
+
帝国大厦
|
| 1502 |
+
搪瓷
|
| 1503 |
+
外壳/围墙
|
| 1504 |
+
茶几
|
| 1505 |
+
能源
|
| 1506 |
+
订婚
|
| 1507 |
+
订婚戒指
|
| 1508 |
+
引擎
|
| 1509 |
+
机舱
|
| 1510 |
+
工程师
|
| 1511 |
+
工程
|
| 1512 |
+
英国短毛猫
|
| 1513 |
+
乐团
|
| 1514 |
+
回车键
|
| 1515 |
+
演艺人员
|
| 1516 |
+
娱乐
|
| 1517 |
+
娱乐中心
|
| 1518 |
+
入口
|
| 1519 |
+
入口大厅
|
| 1520 |
+
信封
|
| 1521 |
+
马术
|
| 1522 |
+
设备
|
| 1523 |
+
橡皮擦
|
| 1524 |
+
二胡
|
| 1525 |
+
侵蚀
|
| 1526 |
+
自动扶梯
|
| 1527 |
+
食用蜗牛
|
| 1528 |
+
浓缩咖啡
|
| 1529 |
+
房地产
|
| 1530 |
+
河口
|
| 1531 |
+
桉树
|
| 1532 |
+
晚上
|
| 1533 |
+
晚礼服
|
| 1534 |
+
夜光
|
| 1535 |
+
傍晚天空
|
| 1536 |
+
晚上的太阳
|
| 1537 |
+
事件
|
| 1538 |
+
常绿的
|
| 1539 |
+
母羊
|
| 1540 |
+
挖掘
|
| 1541 |
+
运动
|
| 1542 |
+
排气罩
|
| 1543 |
+
展览
|
| 1544 |
+
出口
|
| 1545 |
+
探险者
|
| 1546 |
+
爆炸
|
| 1547 |
+
延长线
|
| 1548 |
+
灭火器
|
| 1549 |
+
排气扇
|
| 1550 |
+
挤压
|
| 1551 |
+
眼睛
|
| 1552 |
+
眼影
|
| 1553 |
+
眉
|
| 1554 |
+
眼线笔
|
| 1555 |
+
布料
|
| 1556 |
+
纺织品商店
|
| 1557 |
+
外观
|
| 1558 |
+
脸
|
| 1559 |
+
脸部特写
|
| 1560 |
+
蜜粉
|
| 1561 |
+
毛巾
|
| 1562 |
+
面巾纸架
|
| 1563 |
+
设施
|
| 1564 |
+
工厂
|
| 1565 |
+
工厂车间
|
| 1566 |
+
集市
|
| 1567 |
+
露天市场
|
| 1568 |
+
仙女
|
| 1569 |
+
猎鹰
|
| 1570 |
+
秋天
|
| 1571 |
+
家庭
|
| 1572 |
+
家庭轿车
|
| 1573 |
+
全家福
|
| 1574 |
+
家庭房
|
| 1575 |
+
风扇/扇子
|
| 1576 |
+
尖牙
|
| 1577 |
+
农场
|
| 1578 |
+
农民
|
| 1579 |
+
农民市场
|
| 1580 |
+
农舍
|
| 1581 |
+
时尚
|
| 1582 |
+
时尚配饰
|
| 1583 |
+
时装设计师
|
| 1584 |
+
时尚的女孩
|
| 1585 |
+
时装插图
|
| 1586 |
+
时装大片
|
| 1587 |
+
时装模特
|
| 1588 |
+
时装表演
|
| 1589 |
+
快餐
|
| 1590 |
+
西式快餐
|
| 1591 |
+
父亲
|
| 1592 |
+
水龙头
|
| 1593 |
+
故障
|
| 1594 |
+
动物
|
| 1595 |
+
小鹿
|
| 1596 |
+
传真
|
| 1597 |
+
宴会
|
| 1598 |
+
羽毛
|
| 1599 |
+
软呢帽
|
| 1600 |
+
饲料
|
| 1601 |
+
一餐
|
| 1602 |
+
饲养
|
| 1603 |
+
喂养的椅子
|
| 1604 |
+
猫科
|
| 1605 |
+
美洲狮
|
| 1606 |
+
栅栏
|
| 1607 |
+
芬达
|
| 1608 |
+
蕨类植物
|
| 1609 |
+
雪貂
|
| 1610 |
+
摩天轮
|
| 1611 |
+
渡船
|
| 1612 |
+
肥料
|
| 1613 |
+
节日
|
| 1614 |
+
纤维
|
| 1615 |
+
小说
|
| 1616 |
+
小说书
|
| 1617 |
+
田野/场地/野外
|
| 1618 |
+
田间道路
|
| 1619 |
+
无花果
|
| 1620 |
+
打架
|
| 1621 |
+
花样滑冰运动员
|
| 1622 |
+
小雕像
|
| 1623 |
+
文件
|
| 1624 |
+
档案照片
|
| 1625 |
+
文件柜
|
| 1626 |
+
填满
|
| 1627 |
+
胶片相机
|
| 1628 |
+
电影导演
|
| 1629 |
+
电影格式
|
| 1630 |
+
电影首映礼
|
| 1631 |
+
电影制片人
|
| 1632 |
+
拍摄
|
| 1633 |
+
过滤器
|
| 1634 |
+
鳍
|
| 1635 |
+
手
|
| 1636 |
+
终点线
|
| 1637 |
+
冷杉
|
| 1638 |
+
冷杉树
|
| 1639 |
+
火
|
| 1640 |
+
火灾报警
|
| 1641 |
+
消防部门
|
| 1642 |
+
消防车
|
| 1643 |
+
消防通道
|
| 1644 |
+
消防水带
|
| 1645 |
+
火坑
|
| 1646 |
+
消防站
|
| 1647 |
+
爆竹
|
| 1648 |
+
消防队员
|
| 1649 |
+
壁炉
|
| 1650 |
+
烟花
|
| 1651 |
+
烟花表演
|
| 1652 |
+
急救箱
|
| 1653 |
+
鱼
|
| 1654 |
+
鱼船
|
| 1655 |
+
海鲜市场
|
| 1656 |
+
鱼塘
|
| 1657 |
+
鱼缸
|
| 1658 |
+
渔夫
|
| 1659 |
+
钓鱼
|
| 1660 |
+
渔船
|
| 1661 |
+
渔网
|
| 1662 |
+
钓鱼
|
| 1663 |
+
渔村
|
| 1664 |
+
健身
|
| 1665 |
+
健身课程
|
| 1666 |
+
五个
|
| 1667 |
+
固定装置
|
| 1668 |
+
峡湾
|
| 1669 |
+
国旗
|
| 1670 |
+
旗杆
|
| 1671 |
+
小薄片
|
| 1672 |
+
火焰
|
| 1673 |
+
火烈鸟
|
| 1674 |
+
法兰绒
|
| 1675 |
+
拍打
|
| 1676 |
+
耀斑
|
| 1677 |
+
闪光
|
| 1678 |
+
烧瓶
|
| 1679 |
+
平
|
| 1680 |
+
比目鱼
|
| 1681 |
+
风味
|
| 1682 |
+
跳蚤
|
| 1683 |
+
跳蚤市场
|
| 1684 |
+
舰队
|
| 1685 |
+
飞行
|
| 1686 |
+
空中乘务员
|
| 1687 |
+
翻转
|
| 1688 |
+
触发器
|
| 1689 |
+
翻转图
|
| 1690 |
+
浮动
|
| 1691 |
+
群
|
| 1692 |
+
洪水
|
| 1693 |
+
地板/地面
|
| 1694 |
+
落地扇
|
| 1695 |
+
脚垫
|
| 1696 |
+
楼层平面图
|
| 1697 |
+
落地窗
|
| 1698 |
+
插花艺术
|
| 1699 |
+
花店
|
| 1700 |
+
牙线
|
| 1701 |
+
面粉
|
| 1702 |
+
流动
|
| 1703 |
+
花
|
| 1704 |
+
花篮
|
| 1705 |
+
花坛
|
| 1706 |
+
花箱
|
| 1707 |
+
花田
|
| 1708 |
+
花童
|
| 1709 |
+
花卉市场
|
| 1710 |
+
流体
|
| 1711 |
+
冲洗
|
| 1712 |
+
长笛
|
| 1713 |
+
飞
|
| 1714 |
+
飞行钓鱼
|
| 1715 |
+
传单
|
| 1716 |
+
马
|
| 1717 |
+
泡沫
|
| 1718 |
+
雾
|
| 1719 |
+
多雾的
|
| 1720 |
+
鹅肝酱
|
| 1721 |
+
箔纸
|
| 1722 |
+
折椅
|
| 1723 |
+
树叶
|
| 1724 |
+
民间艺术家
|
| 1725 |
+
民间舞蹈
|
| 1726 |
+
民间摇滚艺术家
|
| 1727 |
+
方旦糖
|
| 1728 |
+
火锅
|
| 1729 |
+
圣洗池
|
| 1730 |
+
食物
|
| 1731 |
+
食用色素
|
| 1732 |
+
美食广场
|
| 1733 |
+
食品加工机
|
| 1734 |
+
小吃摊
|
| 1735 |
+
快餐车
|
| 1736 |
+
桌上足球
|
| 1737 |
+
脚
|
| 1738 |
+
人行桥
|
| 1739 |
+
足球
|
| 1740 |
+
足球教练
|
| 1741 |
+
大学橄榄球赛
|
| 1742 |
+
足球比赛
|
| 1743 |
+
足球场
|
| 1744 |
+
足球比赛
|
| 1745 |
+
橄榄球头盔
|
| 1746 |
+
足球运动员
|
| 1747 |
+
足球场
|
| 1748 |
+
足球队
|
| 1749 |
+
小路
|
| 1750 |
+
脚印
|
| 1751 |
+
脚踏板
|
| 1752 |
+
台座
|
| 1753 |
+
鞋子
|
| 1754 |
+
故宫
|
| 1755 |
+
浅滩
|
| 1756 |
+
额头
|
| 1757 |
+
森林
|
| 1758 |
+
森林大火
|
| 1759 |
+
森林地面
|
| 1760 |
+
森林小路
|
| 1761 |
+
森林公路
|
| 1762 |
+
锻造
|
| 1763 |
+
餐叉
|
| 1764 |
+
叉车
|
| 1765 |
+
表格
|
| 1766 |
+
园林
|
| 1767 |
+
队列/形成物
|
| 1768 |
+
F1方程式赛车
|
| 1769 |
+
堡垒
|
| 1770 |
+
碉堡
|
| 1771 |
+
追逐
|
| 1772 |
+
化石
|
| 1773 |
+
粉底
|
| 1774 |
+
喷泉
|
| 1775 |
+
钢笔
|
| 1776 |
+
狐狸
|
| 1777 |
+
框架
|
| 1778 |
+
雀斑
|
| 1779 |
+
高速公路
|
| 1780 |
+
卡车
|
| 1781 |
+
法国
|
| 1782 |
+
法国斗牛犬
|
| 1783 |
+
薯条
|
| 1784 |
+
法式吐司
|
| 1785 |
+
化妆水
|
| 1786 |
+
冰箱
|
| 1787 |
+
炸鸡
|
| 1788 |
+
煎蛋
|
| 1789 |
+
炒饭
|
| 1790 |
+
友谊
|
| 1791 |
+
飞盘
|
| 1792 |
+
青蛙
|
| 1793 |
+
霜
|
| 1794 |
+
结霜
|
| 1795 |
+
严寒
|
| 1796 |
+
结冰
|
| 1797 |
+
水果
|
| 1798 |
+
水果蛋糕
|
| 1799 |
+
水果盘
|
| 1800 |
+
水果市场
|
| 1801 |
+
水果沙拉
|
| 1802 |
+
水果摊
|
| 1803 |
+
果树
|
| 1804 |
+
水果商店
|
| 1805 |
+
油炸食品
|
| 1806 |
+
煎锅
|
| 1807 |
+
软糖
|
| 1808 |
+
燃料
|
| 1809 |
+
吸烟罩
|
| 1810 |
+
有趣的
|
| 1811 |
+
葬礼
|
| 1812 |
+
真菌
|
| 1813 |
+
漏斗
|
| 1814 |
+
毛皮衣服
|
| 1815 |
+
毛皮大衣
|
| 1816 |
+
家具
|
| 1817 |
+
蒲团
|
| 1818 |
+
小工具
|
| 1819 |
+
枪口
|
| 1820 |
+
星云/星系
|
| 1821 |
+
美术馆
|
| 1822 |
+
游戏
|
| 1823 |
+
游戏棋盘
|
| 1824 |
+
游戏手柄
|
| 1825 |
+
火腿
|
| 1826 |
+
团伙
|
| 1827 |
+
车库
|
| 1828 |
+
车库门
|
| 1829 |
+
手工模型
|
| 1830 |
+
垃圾
|
| 1831 |
+
花园
|
| 1832 |
+
花园芦笋
|
| 1833 |
+
橡胶软管
|
| 1834 |
+
花园蜘蛛
|
| 1835 |
+
园丁
|
| 1836 |
+
园艺
|
| 1837 |
+
加菲猫
|
| 1838 |
+
滴水嘴
|
| 1839 |
+
花环
|
| 1840 |
+
大蒜
|
| 1841 |
+
衣服
|
| 1842 |
+
气体
|
| 1843 |
+
加油站
|
| 1844 |
+
煤气炉
|
| 1845 |
+
防毒面具
|
| 1846 |
+
收集
|
| 1847 |
+
聚集
|
| 1848 |
+
测量仪器
|
| 1849 |
+
露台
|
| 1850 |
+
齿轮
|
| 1851 |
+
壁虎
|
| 1852 |
+
艺妓
|
| 1853 |
+
凝胶
|
| 1854 |
+
百货商店
|
| 1855 |
+
发电机
|
| 1856 |
+
天竺葵
|
| 1857 |
+
幽灵
|
| 1858 |
+
礼物
|
| 1859 |
+
礼品袋
|
| 1860 |
+
礼品篮
|
| 1861 |
+
礼物盒
|
| 1862 |
+
礼品卡
|
| 1863 |
+
礼品商店
|
| 1864 |
+
礼物包装
|
| 1865 |
+
演唱会
|
| 1866 |
+
杜松子酒
|
| 1867 |
+
姜
|
| 1868 |
+
姜饼
|
| 1869 |
+
姜饼屋
|
| 1870 |
+
银杏树
|
| 1871 |
+
长颈鹿
|
| 1872 |
+
女孩
|
| 1873 |
+
给
|
| 1874 |
+
冰川
|
| 1875 |
+
角斗士
|
| 1876 |
+
玻璃珠
|
| 1877 |
+
玻璃瓶
|
| 1878 |
+
玻璃碗
|
| 1879 |
+
玻璃箱
|
| 1880 |
+
玻璃建筑
|
| 1881 |
+
玻璃门
|
| 1882 |
+
玻璃地板
|
| 1883 |
+
玻璃屋
|
| 1884 |
+
玻璃罐
|
| 1885 |
+
玻璃板
|
| 1886 |
+
玻璃桌子
|
| 1887 |
+
玻璃花瓶
|
| 1888 |
+
玻璃墙
|
| 1889 |
+
玻璃窗
|
| 1890 |
+
眼镜
|
| 1891 |
+
光滑面
|
| 1892 |
+
滑翔机
|
| 1893 |
+
地球
|
| 1894 |
+
手套
|
| 1895 |
+
发光
|
| 1896 |
+
汤圆
|
| 1897 |
+
去
|
| 1898 |
+
袭击
|
| 1899 |
+
球门
|
| 1900 |
+
守门员
|
| 1901 |
+
山羊
|
| 1902 |
+
羊奶酪
|
| 1903 |
+
戈壁
|
| 1904 |
+
护目镜/墨镜
|
| 1905 |
+
黄金
|
| 1906 |
+
金牌
|
| 1907 |
+
金门大桥
|
| 1908 |
+
金毛猎犬
|
| 1909 |
+
金鱼
|
| 1910 |
+
高尔夫运动
|
| 1911 |
+
高尔夫球帽
|
| 1912 |
+
高尔夫球车
|
| 1913 |
+
高尔夫球杆
|
| 1914 |
+
高尔夫球场
|
| 1915 |
+
高尔夫球手
|
| 1916 |
+
鹅
|
| 1917 |
+
大猩猩
|
| 1918 |
+
哥特式
|
| 1919 |
+
葫芦
|
| 1920 |
+
政府
|
| 1921 |
+
政府机构
|
| 1922 |
+
礼服
|
| 1923 |
+
毕业生
|
| 1924 |
+
毕业典礼
|
| 1925 |
+
谷物
|
| 1926 |
+
逆戟鲸
|
| 1927 |
+
大奖赛
|
| 1928 |
+
祖父
|
| 1929 |
+
祖母
|
| 1930 |
+
祖父母
|
| 1931 |
+
花岗岩
|
| 1932 |
+
格兰诺拉麦片
|
| 1933 |
+
葡萄
|
| 1934 |
+
西柚
|
| 1935 |
+
葡萄酒
|
| 1936 |
+
草
|
| 1937 |
+
蚱蜢
|
| 1938 |
+
草原
|
| 1939 |
+
长满草的
|
| 1940 |
+
擦菜器
|
| 1941 |
+
坟墓
|
| 1942 |
+
碎石
|
| 1943 |
+
墓���
|
| 1944 |
+
肉汁
|
| 1945 |
+
调味汁瓶
|
| 1946 |
+
灰色
|
| 1947 |
+
吃草
|
| 1948 |
+
放牧
|
| 1949 |
+
绿色
|
| 1950 |
+
绿色植物
|
| 1951 |
+
欢迎
|
| 1952 |
+
问候
|
| 1953 |
+
贺卡
|
| 1954 |
+
灰狗
|
| 1955 |
+
网格
|
| 1956 |
+
筛子
|
| 1957 |
+
烧烤架
|
| 1958 |
+
格栅
|
| 1959 |
+
烤鳗鱼
|
| 1960 |
+
磨
|
| 1961 |
+
研磨机
|
| 1962 |
+
粗燕麦粉
|
| 1963 |
+
杂货袋
|
| 1964 |
+
洞穴
|
| 1965 |
+
地松鼠
|
| 1966 |
+
群体
|
| 1967 |
+
合影
|
| 1968 |
+
小树林
|
| 1969 |
+
生长
|
| 1970 |
+
牛油果酱
|
| 1971 |
+
警卫
|
| 1972 |
+
看门狗
|
| 1973 |
+
宾馆
|
| 1974 |
+
客房
|
| 1975 |
+
指南
|
| 1976 |
+
豚鼠
|
| 1977 |
+
吉他
|
| 1978 |
+
吉他手
|
| 1979 |
+
海湾
|
| 1980 |
+
海鸥
|
| 1981 |
+
枪
|
| 1982 |
+
高达
|
| 1983 |
+
谒师所
|
| 1984 |
+
古筝
|
| 1985 |
+
健身房
|
| 1986 |
+
体操运动员
|
| 1987 |
+
栖息地
|
| 1988 |
+
黑客
|
| 1989 |
+
冰雹
|
| 1990 |
+
头发
|
| 1991 |
+
头发颜色
|
| 1992 |
+
发胶
|
| 1993 |
+
毛刷
|
| 1994 |
+
发型
|
| 1995 |
+
发夹
|
| 1996 |
+
发网
|
| 1997 |
+
发夹
|
| 1998 |
+
发型
|
| 1999 |
+
一半
|
| 2000 |
+
礼堂
|
| 2001 |
+
万圣节
|
| 2002 |
+
万圣节服装
|
| 2003 |
+
万圣节南瓜
|
| 2004 |
+
露背装
|
| 2005 |
+
汉堡
|
| 2006 |
+
汉堡包
|
| 2007 |
+
哈密瓜
|
| 2008 |
+
锤子
|
| 2009 |
+
吊床
|
| 2010 |
+
阻碍
|
| 2011 |
+
仓鼠
|
| 2012 |
+
烘手机
|
| 2013 |
+
放大镜
|
| 2014 |
+
擦手巾
|
| 2015 |
+
手提包
|
| 2016 |
+
手球
|
| 2017 |
+
手铐
|
| 2018 |
+
手枪
|
| 2019 |
+
手帕
|
| 2020 |
+
把手
|
| 2021 |
+
手锯
|
| 2022 |
+
握手
|
| 2023 |
+
倒立
|
| 2024 |
+
手写
|
| 2025 |
+
汉服
|
| 2026 |
+
悬挂
|
| 2027 |
+
飞机库
|
| 2028 |
+
衣架
|
| 2029 |
+
幸福
|
| 2030 |
+
海港
|
| 2031 |
+
斑海豹
|
| 2032 |
+
硬摇滚艺术家
|
| 2033 |
+
精装书
|
| 2034 |
+
建筑工人
|
| 2035 |
+
硬件
|
| 2036 |
+
五金店
|
| 2037 |
+
硬木
|
| 2038 |
+
硬木地板
|
| 2039 |
+
口琴
|
| 2040 |
+
管风琴
|
| 2041 |
+
羽管键琴
|
| 2042 |
+
收获
|
| 2043 |
+
收割机
|
| 2044 |
+
坐垫/搁脚凳/草丛
|
| 2045 |
+
帽子
|
| 2046 |
+
帽盒
|
| 2047 |
+
双簧管
|
| 2048 |
+
山楂
|
| 2049 |
+
干草
|
| 2050 |
+
干草地
|
| 2051 |
+
榛子
|
| 2052 |
+
头
|
| 2053 |
+
主教练
|
| 2054 |
+
大灯
|
| 2055 |
+
床头板
|
| 2056 |
+
头饰
|
| 2057 |
+
海岬
|
| 2058 |
+
总部
|
| 2059 |
+
听力
|
| 2060 |
+
心脏
|
| 2061 |
+
心形
|
| 2062 |
+
热能
|
| 2063 |
+
加热器
|
| 2064 |
+
帚石楠
|
| 2065 |
+
树篱
|
| 2066 |
+
刺猬
|
| 2067 |
+
脚后跟
|
| 2068 |
+
直升机
|
| 2069 |
+
直升机机场
|
| 2070 |
+
头盔
|
| 2071 |
+
帮助
|
| 2072 |
+
母鸡
|
| 2073 |
+
指甲花
|
| 2074 |
+
药草
|
| 2075 |
+
兽群
|
| 2076 |
+
寄居蟹
|
| 2077 |
+
英雄
|
| 2078 |
+
苍鹭
|
| 2079 |
+
芙蓉花
|
| 2080 |
+
芙蓉花
|
| 2081 |
+
隐藏/隐蔽处
|
| 2082 |
+
高杠
|
| 2083 |
+
高跟鞋
|
| 2084 |
+
高地
|
| 2085 |
+
突出
|
| 2086 |
+
徒步旅行
|
| 2087 |
+
徒步旅行者
|
| 2088 |
+
徒步靴
|
| 2089 |
+
登山设备
|
| 2090 |
+
山丘
|
| 2091 |
+
丘陵地
|
| 2092 |
+
别墅
|
| 2093 |
+
山坡
|
| 2094 |
+
印度教寺庙
|
| 2095 |
+
铰链
|
| 2096 |
+
臀部
|
| 2097 |
+
嘻哈艺人
|
| 2098 |
+
河马
|
| 2099 |
+
历史学家
|
| 2100 |
+
历史遗迹
|
| 2101 |
+
历史
|
| 2102 |
+
曲棍球
|
| 2103 |
+
冰球馆
|
| 2104 |
+
曲棍球比赛
|
| 2105 |
+
曲棍球运动员
|
| 2106 |
+
曲棍球棒
|
| 2107 |
+
锄头
|
| 2108 |
+
洞
|
| 2109 |
+
假日
|
| 2110 |
+
冬青树
|
| 2111 |
+
海参
|
| 2112 |
+
家/住宅
|
| 2113 |
+
家用电器
|
| 2114 |
+
基地
|
| 2115 |
+
家居装饰
|
| 2116 |
+
室内设计
|
| 2117 |
+
内政部
|
| 2118 |
+
家庭影院
|
| 2119 |
+
家庭作业
|
| 2120 |
+
鹰嘴豆泥
|
| 2121 |
+
蜂蜜
|
| 2122 |
+
蜂窝
|
| 2123 |
+
蜜月
|
| 2124 |
+
风帽
|
| 2125 |
+
连帽衫
|
| 2126 |
+
挂钩/勾住
|
| 2127 |
+
跳
|
| 2128 |
+
地平线
|
| 2129 |
+
犀鸟
|
| 2130 |
+
长角牛
|
| 2131 |
+
大黄蜂
|
| 2132 |
+
震惊
|
| 2133 |
+
恐怖电影
|
| 2134 |
+
马鞍褥
|
| 2135 |
+
马车
|
| 2136 |
+
马场
|
| 2137 |
+
骑马
|
| 2138 |
+
马背
|
| 2139 |
+
马蹄铁
|
| 2140 |
+
软管
|
| 2141 |
+
医院
|
| 2142 |
+
医院病床
|
| 2143 |
+
病房
|
| 2144 |
+
主持人
|
| 2145 |
+
小旅馆
|
| 2146 |
+
热
|
| 2147 |
+
热气球
|
| 2148 |
+
热狗
|
| 2149 |
+
辣椒酱
|
| 2150 |
+
温泉
|
| 2151 |
+
旅馆
|
| 2152 |
+
酒店大堂
|
| 2153 |
+
酒店房间
|
| 2154 |
+
电炉
|
| 2155 |
+
沙漏
|
| 2156 |
+
房子
|
| 2157 |
+
房子外部
|
| 2158 |
+
室内植物
|
| 2159 |
+
悬滑板
|
| 2160 |
+
吼
|
| 2161 |
+
蜷缩
|
| 2162 |
+
拥抱
|
| 2163 |
+
呼啦圈
|
| 2164 |
+
人
|
| 2165 |
+
增湿器
|
| 2166 |
+
蜂鸟
|
| 2167 |
+
座头鲸
|
| 2168 |
+
打猎
|
| 2169 |
+
狩猎小屋
|
| 2170 |
+
障碍
|
| 2171 |
+
飓风
|
| 2172 |
+
哈士奇
|
| 2173 |
+
小屋
|
| 2174 |
+
鬣狗
|
| 2175 |
+
混合物
|
| 2176 |
+
绣球花
|
| 2177 |
+
消火栓
|
| 2178 |
+
水上飞机
|
| 2179 |
+
冰
|
| 2180 |
+
冰袋
|
| 2181 |
+
北极熊
|
| 2182 |
+
冰洞
|
| 2183 |
+
冰淇淋
|
| 2184 |
+
冰淇淋蛋卷
|
| 2185 |
+
冰淇淋商店
|
| 2186 |
+
冰块
|
| 2187 |
+
浮冰
|
| 2188 |
+
冰球运动员
|
| 2189 |
+
冰球队
|
| 2190 |
+
棒棒糖
|
| 2191 |
+
制冰机
|
| 2192 |
+
溜冰场
|
| 2193 |
+
冰雕
|
| 2194 |
+
冰架
|
| 2195 |
+
溜冰鞋
|
| 2196 |
+
滑冰
|
| 2197 |
+
冰山
|
| 2198 |
+
冰柱
|
| 2199 |
+
糖衣/酥皮
|
| 2200 |
+
图标
|
| 2201 |
+
身份证照片
|
| 2202 |
+
身份证
|
| 2203 |
+
冰屋
|
| 2204 |
+
光/灯光/光线
|
| 2205 |
+
鬣蜥蜴
|
| 2206 |
+
照亮
|
| 2207 |
+
插图
|
| 2208 |
+
形象
|
| 2209 |
+
黑斑羚
|
| 2210 |
+
熏香
|
| 2211 |
+
独立日
|
| 2212 |
+
个人
|
| 2213 |
+
室内
|
| 2214 |
+
划船器
|
| 2215 |
+
电磁炉
|
| 2216 |
+
工业区
|
| 2217 |
+
工业
|
| 2218 |
+
步兵
|
| 2219 |
+
充气艇
|
| 2220 |
+
服务台
|
| 2221 |
+
基础设施
|
| 2222 |
+
成分
|
| 2223 |
+
吸入器
|
| 2224 |
+
注射
|
| 2225 |
+
受伤
|
| 2226 |
+
墨水
|
| 2227 |
+
印泥
|
| 2228 |
+
小湖湾
|
| 2229 |
+
题词
|
| 2230 |
+
昆虫
|
| 2231 |
+
安装
|
| 2232 |
+
乐器/器械
|
| 2233 |
+
绝缘杯
|
| 2234 |
+
互动
|
| 2235 |
+
室内设计
|
| 2236 |
+
网站
|
| 2237 |
+
十字路口
|
| 2238 |
+
面试
|
| 2239 |
+
无脊椎动物
|
| 2240 |
+
邀请
|
| 2241 |
+
平板电脑
|
| 2242 |
+
苹果手机
|
| 2243 |
+
苹果音乐播放器
|
| 2244 |
+
虹膜
|
| 2245 |
+
铁
|
| 2246 |
+
熨衣板
|
| 2247 |
+
灌溉系统
|
| 2248 |
+
岛
|
| 2249 |
+
小岛
|
| 2250 |
+
等足类动物
|
| 2251 |
+
象牙
|
| 2252 |
+
常青藤
|
| 2253 |
+
居酒屋
|
| 2254 |
+
千斤顶
|
| 2255 |
+
帝王蟹/蟹
|
| 2256 |
+
夹克衫
|
| 2257 |
+
按摩浴缸
|
| 2258 |
+
玉
|
| 2259 |
+
美洲虎
|
| 2260 |
+
监狱牢房
|
| 2261 |
+
果酱
|
| 2262 |
+
日式花园
|
| 2263 |
+
茉莉花
|
| 2264 |
+
下巴
|
| 2265 |
+
松鸦
|
| 2266 |
+
爵士乐
|
| 2267 |
+
爵士乐艺术家
|
| 2268 |
+
爵士融合艺术家
|
| 2269 |
+
牛仔裤
|
| 2270 |
+
吉普车
|
| 2271 |
+
果冻
|
| 2272 |
+
果冻豆
|
| 2273 |
+
水母
|
| 2274 |
+
喷气式飞机
|
| 2275 |
+
摩托艇
|
| 2276 |
+
珠宝
|
| 2277 |
+
珠宝
|
| 2278 |
+
珠宝店
|
| 2279 |
+
拼图游戏
|
| 2280 |
+
人力车
|
| 2281 |
+
赛马骑师
|
| 2282 |
+
赛马帽
|
| 2283 |
+
慢跑
|
| 2284 |
+
联合的
|
| 2285 |
+
记者
|
| 2286 |
+
操纵杆
|
| 2287 |
+
法官
|
| 2288 |
+
水壶
|
| 2289 |
+
玩杂耍
|
| 2290 |
+
果汁
|
| 2291 |
+
榨汁器
|
| 2292 |
+
枣子
|
| 2293 |
+
跳绳
|
| 2294 |
+
连身裤
|
| 2295 |
+
丛林
|
| 2296 |
+
废品堆放场
|
| 2297 |
+
羽衣甘蓝
|
| 2298 |
+
万花筒
|
| 2299 |
+
袋鼠
|
| 2300 |
+
卡拉ok
|
| 2301 |
+
空手道
|
| 2302 |
+
卡丁车运动
|
| 2303 |
+
旧城区
|
| 2304 |
+
皮船
|
| 2305 |
+
烤肉串
|
| 2306 |
+
按键/钥匙
|
| 2307 |
+
门卡
|
| 2308 |
+
卡其色
|
| 2309 |
+
踢
|
| 2310 |
+
苏格兰裙
|
| 2311 |
+
和服
|
| 2312 |
+
幼儿园教室
|
| 2313 |
+
幼儿园
|
| 2314 |
+
国王
|
| 2315 |
+
帝王蟹
|
| 2316 |
+
亲吻
|
| 2317 |
+
工具包
|
| 2318 |
+
厨房
|
| 2319 |
+
厨房橱柜
|
| 2320 |
+
厨房台面
|
| 2321 |
+
厨房地板
|
| 2322 |
+
厨房抽油烟机
|
| 2323 |
+
厨房岛
|
| 2324 |
+
厨房水槽
|
| 2325 |
+
厨房桌子
|
| 2326 |
+
厨房用具
|
| 2327 |
+
厨房窗户
|
| 2328 |
+
厨房用具
|
| 2329 |
+
风筝
|
| 2330 |
+
猕猴桃
|
| 2331 |
+
护膝
|
| 2332 |
+
跪下
|
| 2333 |
+
餐刀
|
| 2334 |
+
骑手
|
| 2335 |
+
编织
|
| 2336 |
+
编织针
|
| 2337 |
+
球形把手
|
| 2338 |
+
门环
|
| 2339 |
+
结
|
| 2340 |
+
考拉
|
| 2341 |
+
锦鲤
|
| 2342 |
+
ktv
|
| 2343 |
+
实验室
|
| 2344 |
+
实验室外套
|
| 2345 |
+
标签
|
| 2346 |
+
拉布拉多
|
| 2347 |
+
迷宫
|
| 2348 |
+
网眼织物
|
| 2349 |
+
蕾丝连衣裙
|
| 2350 |
+
梯子
|
| 2351 |
+
长柄杓
|
| 2352 |
+
瓢虫
|
| 2353 |
+
环礁湖
|
| 2354 |
+
湖泊
|
| 2355 |
+
湖区
|
| 2356 |
+
湖边小屋
|
| 2357 |
+
湖岸
|
| 2358 |
+
羊肉
|
| 2359 |
+
羊排
|
| 2360 |
+
灯柱
|
| 2361 |
+
灯罩
|
| 2362 |
+
矛
|
| 2363 |
+
土地
|
| 2364 |
+
陆地车辆
|
| 2365 |
+
废物填埋
|
| 2366 |
+
着陆
|
| 2367 |
+
降落甲板
|
| 2368 |
+
地标
|
| 2369 |
+
风景
|
| 2370 |
+
山崩
|
| 2371 |
+
挂带
|
| 2372 |
+
灯笼
|
| 2373 |
+
腿/大腿
|
| 2374 |
+
笔记本电脑
|
| 2375 |
+
笔记本键盘
|
| 2376 |
+
幼体
|
| 2377 |
+
烤宽面条
|
| 2378 |
+
激光
|
| 2379 |
+
睫毛
|
| 2380 |
+
套索
|
| 2381 |
+
门闩
|
| 2382 |
+
乳胶
|
| 2383 |
+
拿铁咖啡
|
| 2384 |
+
笑
|
| 2385 |
+
发射
|
| 2386 |
+
发布会
|
| 2387 |
+
举办会议
|
| 2388 |
+
自助洗衣店
|
| 2389 |
+
洗衣房
|
| 2390 |
+
洗衣篮
|
| 2391 |
+
洗衣房
|
| 2392 |
+
熔岩
|
| 2393 |
+
薰衣草
|
| 2394 |
+
草坪
|
| 2395 |
+
草坪婚礼
|
| 2396 |
+
律师
|
| 2397 |
+
躺
|
| 2398 |
+
引领
|
| 2399 |
+
主唱
|
| 2400 |
+
通向
|
| 2401 |
+
领袖
|
| 2402 |
+
泄漏
|
| 2403 |
+
倾斜/倚靠
|
| 2404 |
+
学习
|
| 2405 |
+
皮带
|
| 2406 |
+
皮革
|
| 2407 |
+
皮夹克
|
| 2408 |
+
皮鞋
|
| 2409 |
+
演讲
|
| 2410 |
+
演讲厅
|
| 2411 |
+
教学室
|
| 2412 |
+
窗台
|
| 2413 |
+
剩饭
|
| 2414 |
+
腿
|
| 2415 |
+
传说
|
| 2416 |
+
紧身裤/秋裤
|
| 2417 |
+
立法院
|
| 2418 |
+
乐高
|
| 2419 |
+
豆类
|
| 2420 |
+
柠檬
|
| 2421 |
+
柠檬汁
|
| 2422 |
+
柠檬水
|
| 2423 |
+
狐猴
|
| 2424 |
+
镜头
|
| 2425 |
+
眩光
|
| 2426 |
+
扁豆
|
| 2427 |
+
豹
|
| 2428 |
+
紧身连衣裤
|
| 2429 |
+
紧身裤袜
|
| 2430 |
+
小妖精
|
| 2431 |
+
课程
|
| 2432 |
+
信函
|
| 2433 |
+
信箱
|
| 2434 |
+
信的标志
|
| 2435 |
+
刻字
|
| 2436 |
+
生菜
|
| 2437 |
+
水平
|
| 2438 |
+
图书馆
|
| 2439 |
+
许可证
|
| 2440 |
+
车牌
|
| 2441 |
+
地衣
|
| 2442 |
+
舔
|
| 2443 |
+
盖子
|
| 2444 |
+
躺着
|
| 2445 |
+
安全带
|
| 2446 |
+
救生衣
|
| 2447 |
+
救生艇
|
| 2448 |
+
救生员
|
| 2449 |
+
提起
|
| 2450 |
+
灯具
|
| 2451 |
+
灯光秀
|
| 2452 |
+
电灯开关
|
| 2453 |
+
照明/照明设备
|
| 2454 |
+
闪电
|
| 2455 |
+
避雷针
|
| 2456 |
+
淡紫色
|
| 2457 |
+
百合
|
| 2458 |
+
肢体
|
| 2459 |
+
石灰
|
| 2460 |
+
石灰石
|
| 2461 |
+
豪华轿车
|
| 2462 |
+
线条
|
| 2463 |
+
艺术线条
|
| 2464 |
+
排队
|
| 2465 |
+
亚麻
|
| 2466 |
+
邮轮
|
| 2467 |
+
狮子
|
| 2468 |
+
润唇膏
|
| 2469 |
+
口红
|
| 2470 |
+
液体
|
| 2471 |
+
酒类商店
|
| 2472 |
+
列表
|
| 2473 |
+
荔枝
|
| 2474 |
+
生活
|
| 2475 |
+
家畜
|
| 2476 |
+
客厅
|
| 2477 |
+
生活空间
|
| 2478 |
+
蜥蜴
|
| 2479 |
+
负载
|
| 2480 |
+
装卸码头
|
| 2481 |
+
游手好闲的人
|
| 2482 |
+
走廊
|
| 2483 |
+
定位
|
| 2484 |
+
锁
|
| 2485 |
+
闸室
|
| 2486 |
+
储物柜
|
| 2487 |
+
阁楼
|
| 2488 |
+
原木
|
| 2489 |
+
小木屋
|
| 2490 |
+
标志
|
| 2491 |
+
洛基
|
| 2492 |
+
长头发
|
| 2493 |
+
冲浪板
|
| 2494 |
+
隐约显现/织布机
|
| 2495 |
+
环状
|
| 2496 |
+
遗失
|
| 2497 |
+
彩票
|
| 2498 |
+
莲花
|
| 2499 |
+
爱
|
| 2500 |
+
双人沙发
|
| 2501 |
+
行李
|
| 2502 |
+
木材
|
| 2503 |
+
伐木工人
|
| 2504 |
+
午餐
|
| 2505 |
+
午餐盒
|
| 2506 |
+
郁郁葱葱的
|
| 2507 |
+
奢侈品
|
| 2508 |
+
豪华游艇
|
| 2509 |
+
雨衣
|
| 2510 |
+
澳洲胡桃
|
| 2511 |
+
短尾猿
|
| 2512 |
+
通心粉
|
| 2513 |
+
金刚鹦鹉
|
| 2514 |
+
弯刀
|
| 2515 |
+
机器
|
| 2516 |
+
机枪
|
| 2517 |
+
杂志
|
| 2518 |
+
魔法
|
| 2519 |
+
魔术师
|
| 2520 |
+
磁铁
|
| 2521 |
+
放大镜
|
| 2522 |
+
木兰花
|
| 2523 |
+
喜鹊
|
| 2524 |
+
麻将
|
| 2525 |
+
象夫
|
| 2526 |
+
女仆
|
| 2527 |
+
邮件
|
| 2528 |
+
邮件槽
|
| 2529 |
+
制作
|
| 2530 |
+
改造
|
| 2531 |
+
化妆师
|
| 2532 |
+
化妆工具
|
| 2533 |
+
野鸭
|
| 2534 |
+
野鸭
|
| 2535 |
+
槌棒
|
| 2536 |
+
哺乳动物
|
| 2537 |
+
猛犸象
|
| 2538 |
+
男人
|
| 2539 |
+
管理
|
| 2540 |
+
经理
|
| 2541 |
+
海牛
|
| 2542 |
+
曼荼罗
|
| 2543 |
+
橘子
|
| 2544 |
+
普通话
|
| 2545 |
+
鬃毛
|
| 2546 |
+
漫画
|
| 2547 |
+
食槽
|
| 2548 |
+
芒果
|
| 2549 |
+
山竹果
|
| 2550 |
+
红树林
|
| 2551 |
+
曼哈顿
|
| 2552 |
+
检修孔
|
| 2553 |
+
井盖
|
| 2554 |
+
修指甲
|
| 2555 |
+
人体模型
|
| 2556 |
+
庄园主宅
|
| 2557 |
+
大厦
|
| 2558 |
+
螳螂
|
| 2559 |
+
地幔
|
| 2560 |
+
活动房层
|
| 2561 |
+
制造业
|
| 2562 |
+
手稿
|
| 2563 |
+
地图
|
| 2564 |
+
枫木
|
| 2565 |
+
枫叶
|
| 2566 |
+
枫糖浆
|
| 2567 |
+
沙球
|
| 2568 |
+
马拉松
|
| 2569 |
+
大理石
|
| 2570 |
+
行进
|
| 2571 |
+
行进乐队
|
| 2572 |
+
母马
|
| 2573 |
+
金盏花
|
| 2574 |
+
水兵
|
| 2575 |
+
海洋无脊椎动物
|
| 2576 |
+
海洋哺乳动物
|
| 2577 |
+
木偶
|
| 2578 |
+
标志
|
| 2579 |
+
集市
|
| 2580 |
+
市场广场
|
| 2581 |
+
市场摊位
|
| 2582 |
+
结婚
|
| 2583 |
+
武术
|
| 2584 |
+
武术家
|
| 2585 |
+
武术馆
|
| 2586 |
+
马提尼
|
| 2587 |
+
马丁尼酒杯
|
| 2588 |
+
睫毛膏
|
| 2589 |
+
吉祥物
|
| 2590 |
+
土豆泥
|
| 2591 |
+
搅碎机
|
| 2592 |
+
面具/口罩
|
| 2593 |
+
按摩
|
| 2594 |
+
桅杆
|
| 2595 |
+
地垫
|
| 2596 |
+
斗牛士
|
| 2597 |
+
比赛
|
| 2598 |
+
火柴盒
|
| 2599 |
+
衣料
|
| 2600 |
+
床垫
|
| 2601 |
+
陵墓
|
| 2602 |
+
长裙
|
| 2603 |
+
一餐
|
| 2604 |
+
量杯
|
| 2605 |
+
卷尺
|
| 2606 |
+
肉类
|
| 2607 |
+
肉丸
|
| 2608 |
+
机械师
|
| 2609 |
+
机械风扇
|
| 2610 |
+
奖牌
|
| 2611 |
+
媒体
|
| 2612 |
+
医疗设备
|
| 2613 |
+
医学图像
|
| 2614 |
+
医务人员
|
| 2615 |
+
医药箱
|
| 2616 |
+
中世纪的
|
| 2617 |
+
麦地那市
|
| 2618 |
+
冥想
|
| 2619 |
+
猫鼬
|
| 2620 |
+
赛事
|
| 2621 |
+
香瓜
|
| 2622 |
+
纪念碑
|
| 2623 |
+
菜单
|
| 2624 |
+
美人鱼
|
| 2625 |
+
网
|
| 2626 |
+
肮脏
|
| 2627 |
+
信使袋
|
| 2628 |
+
金属
|
| 2629 |
+
金属艺术家
|
| 2630 |
+
金属探测器
|
| 2631 |
+
计量器
|
| 2632 |
+
中层楼
|
| 2633 |
+
麦克风
|
| 2634 |
+
显微镜
|
| 2635 |
+
微波炉
|
| 2636 |
+
午夜
|
| 2637 |
+
里程碑
|
| 2638 |
+
军装
|
| 2639 |
+
牛奶
|
| 2640 |
+
牛奶罐
|
| 2641 |
+
奶茶
|
| 2642 |
+
奶昔
|
| 2643 |
+
磨坊
|
| 2644 |
+
矿井
|
| 2645 |
+
矿工
|
| 2646 |
+
矿物质
|
| 2647 |
+
矿泉水
|
| 2648 |
+
迷你
|
| 2649 |
+
微缩模型
|
| 2650 |
+
面包车
|
| 2651 |
+
部长
|
| 2652 |
+
小型货车
|
| 2653 |
+
薄荷
|
| 2654 |
+
薄荷糖
|
| 2655 |
+
镜子
|
| 2656 |
+
小姐
|
| 2657 |
+
投掷物
|
| 2658 |
+
任务
|
| 2659 |
+
槲寄生
|
| 2660 |
+
混合
|
| 2661 |
+
搅拌机
|
| 2662 |
+
搅拌碗
|
| 2663 |
+
混合物
|
| 2664 |
+
护城河
|
| 2665 |
+
电动踏板车
|
| 2666 |
+
模型/模特
|
| 2667 |
+
汽车模型
|
| 2668 |
+
现代
|
| 2669 |
+
现代大厦
|
| 2670 |
+
潮湿
|
| 2671 |
+
模具
|
| 2672 |
+
模具
|
| 2673 |
+
鼹鼠
|
| 2674 |
+
君主
|
| 2675 |
+
钱
|
| 2676 |
+
监控器
|
| 2677 |
+
和尚
|
| 2678 |
+
猴子
|
| 2679 |
+
活动扳手
|
| 2680 |
+
黑白照片
|
| 2681 |
+
独轮脚踏车
|
| 2682 |
+
怪物卡车
|
| 2683 |
+
月亮
|
| 2684 |
+
月饼
|
| 2685 |
+
月光
|
| 2686 |
+
沼泽
|
| 2687 |
+
驼鹿
|
| 2688 |
+
拖把
|
| 2689 |
+
助力车
|
| 2690 |
+
早晨
|
| 2691 |
+
晨雾
|
| 2692 |
+
晨光
|
| 2693 |
+
朝阳
|
| 2694 |
+
砂浆
|
| 2695 |
+
马赛克
|
| 2696 |
+
清真寺
|
| 2697 |
+
蚊子
|
| 2698 |
+
藓类植物
|
| 2699 |
+
汽车旅馆
|
| 2700 |
+
蛾
|
| 2701 |
+
母亲
|
| 2702 |
+
主板
|
| 2703 |
+
主题
|
| 2704 |
+
动作
|
| 2705 |
+
电动机
|
| 2706 |
+
摩托车
|
| 2707 |
+
摩托车
|
| 2708 |
+
摩托车头盔
|
| 2709 |
+
摩托车赛车手
|
| 2710 |
+
骑摩托车的人
|
| 2711 |
+
赛车运动
|
| 2712 |
+
土堆
|
| 2713 |
+
山
|
| 2714 |
+
山地自行车
|
| 2715 |
+
山地自行车员
|
| 2716 |
+
山地自行车运动
|
| 2717 |
+
山地大猩猩
|
| 2718 |
+
山湖
|
| 2719 |
+
山景观
|
| 2720 |
+
山口
|
| 2721 |
+
山路
|
| 2722 |
+
山脉
|
| 2723 |
+
山区河流
|
| 2724 |
+
山雪
|
| 2725 |
+
山间溪流
|
| 2726 |
+
山景城
|
| 2727 |
+
山村
|
| 2728 |
+
登山者
|
| 2729 |
+
登山包
|
| 2730 |
+
鼠标/鼠
|
| 2731 |
+
鼠标垫
|
| 2732 |
+
捕鼠器
|
| 2733 |
+
嘴
|
| 2734 |
+
漱口水
|
| 2735 |
+
移动
|
| 2736 |
+
电影海报
|
| 2737 |
+
电影票
|
| 2738 |
+
割草机
|
| 2739 |
+
mp3播放器
|
| 2740 |
+
先生
|
| 2741 |
+
泥
|
| 2742 |
+
松饼
|
| 2743 |
+
马克杯
|
| 2744 |
+
桑树
|
| 2745 |
+
覆盖物
|
| 2746 |
+
骡子
|
| 2747 |
+
直辖市
|
| 2748 |
+
壁画
|
| 2749 |
+
肌肉
|
| 2750 |
+
肌肉车
|
| 2751 |
+
博物馆
|
| 2752 |
+
蘑菇
|
| 2753 |
+
音乐
|
| 2754 |
+
音乐节
|
| 2755 |
+
音乐凳子
|
| 2756 |
+
音乐工作室
|
| 2757 |
+
音乐录影带表演者
|
| 2758 |
+
音乐键盘
|
| 2759 |
+
音乐家
|
| 2760 |
+
贻贝
|
| 2761 |
+
芥末
|
| 2762 |
+
神话
|
| 2763 |
+
烤干酪辣味玉米片
|
| 2764 |
+
指甲油
|
| 2765 |
+
指甲锉
|
| 2766 |
+
保姆
|
| 2767 |
+
餐巾
|
| 2768 |
+
狭窄的
|
| 2769 |
+
国旗
|
| 2770 |
+
基督诞生的场景
|
| 2771 |
+
自然历史博物馆
|
| 2772 |
+
自然
|
| 2773 |
+
自然保护区
|
| 2774 |
+
导航
|
| 2775 |
+
九夜节
|
| 2776 |
+
海军
|
| 2777 |
+
星云
|
| 2778 |
+
脖子
|
| 2779 |
+
围颈带/领口
|
| 2780 |
+
项链
|
| 2781 |
+
领口
|
| 2782 |
+
花蜜
|
| 2783 |
+
油桃
|
| 2784 |
+
针状物
|
| 2785 |
+
邻居
|
| 2786 |
+
与某处邻近的地区
|
| 2787 |
+
霓虹灯
|
| 2788 |
+
霓虹灯
|
| 2789 |
+
神经
|
| 2790 |
+
巢
|
| 2791 |
+
新年
|
| 2792 |
+
新生的
|
| 2793 |
+
纽芬兰
|
| 2794 |
+
新婚
|
| 2795 |
+
新闻
|
| 2796 |
+
记者招待会
|
| 2797 |
+
报摊
|
| 2798 |
+
晚上
|
| 2799 |
+
夜市
|
| 2800 |
+
夜空
|
| 2801 |
+
夜景
|
| 2802 |
+
夜总会
|
| 2803 |
+
床头柜
|
| 2804 |
+
面条
|
| 2805 |
+
鼻子
|
| 2806 |
+
鼻羁
|
| 2807 |
+
注解
|
| 2808 |
+
笔记本
|
| 2809 |
+
记事本
|
| 2810 |
+
信纸
|
| 2811 |
+
公告
|
| 2812 |
+
数字图标
|
| 2813 |
+
修女
|
| 2814 |
+
护士
|
| 2815 |
+
托儿所
|
| 2816 |
+
养老院
|
| 2817 |
+
螺母
|
| 2818 |
+
胡桃夹子
|
| 2819 |
+
橡木
|
| 2820 |
+
橡树
|
| 2821 |
+
桨
|
| 2822 |
+
绿洲
|
| 2823 |
+
烘干室
|
| 2824 |
+
燕麦片
|
| 2825 |
+
燕麦
|
| 2826 |
+
方尖塔
|
| 2827 |
+
观察塔
|
| 2828 |
+
天文台
|
| 2829 |
+
超越障碍训练场
|
| 2830 |
+
海洋
|
| 2831 |
+
章鱼
|
| 2832 |
+
提供
|
| 2833 |
+
办公室
|
| 2834 |
+
办公大楼
|
| 2835 |
+
办公椅
|
| 2836 |
+
办公室隔间
|
| 2837 |
+
办公桌
|
| 2838 |
+
办公用品
|
| 2839 |
+
办公室的窗户
|
| 2840 |
+
军官
|
| 2841 |
+
行政官员
|
| 2842 |
+
石油
|
| 2843 |
+
油灯
|
| 2844 |
+
油画
|
| 2845 |
+
石油钻台
|
| 2846 |
+
秋葵
|
| 2847 |
+
老照片
|
| 2848 |
+
橄榄
|
| 2849 |
+
橄榄油
|
| 2850 |
+
橄榄树
|
| 2851 |
+
煎蛋卷
|
| 2852 |
+
洋葱
|
| 2853 |
+
洋葱圈
|
| 2854 |
+
蛋白石
|
| 2855 |
+
开阔的/张开
|
| 2856 |
+
开始
|
| 2857 |
+
开幕式
|
| 2858 |
+
歌剧
|
| 2859 |
+
歌剧院
|
| 2860 |
+
操作
|
| 2861 |
+
手术室
|
| 2862 |
+
操作
|
| 2863 |
+
眼镜店
|
| 2864 |
+
猩猩
|
| 2865 |
+
橙子/橙色
|
| 2866 |
+
橙汁
|
| 2867 |
+
橙树
|
| 2868 |
+
橘园
|
| 2869 |
+
轨道
|
| 2870 |
+
果园
|
| 2871 |
+
乐池
|
| 2872 |
+
兰花
|
| 2873 |
+
订单
|
| 2874 |
+
组织
|
| 2875 |
+
折纸
|
| 2876 |
+
点缀
|
| 2877 |
+
鱼鹰
|
| 2878 |
+
鸵鸟
|
| 2879 |
+
水獭
|
| 2880 |
+
外面的
|
| 2881 |
+
露头
|
| 2882 |
+
户外
|
| 2883 |
+
厕所
|
| 2884 |
+
电源插头
|
| 2885 |
+
大纲
|
| 2886 |
+
��圆形
|
| 2887 |
+
烤箱
|
| 2888 |
+
整体
|
| 2889 |
+
大衣
|
| 2890 |
+
天桥
|
| 2891 |
+
猫头鹰
|
| 2892 |
+
牡蛎
|
| 2893 |
+
橡皮环
|
| 2894 |
+
包裹
|
| 2895 |
+
包/包装/包裹
|
| 2896 |
+
围场
|
| 2897 |
+
警车
|
| 2898 |
+
挂锁
|
| 2899 |
+
肉菜饭
|
| 2900 |
+
宝塔
|
| 2901 |
+
疼痛
|
| 2902 |
+
油漆刷
|
| 2903 |
+
画家
|
| 2904 |
+
佩斯利印花大手帕
|
| 2905 |
+
宫殿
|
| 2906 |
+
调色板
|
| 2907 |
+
栅栏
|
| 2908 |
+
棺罩
|
| 2909 |
+
棕榈树
|
| 2910 |
+
平底锅
|
| 2911 |
+
煎饼
|
| 2912 |
+
熊猫
|
| 2913 |
+
面板
|
| 2914 |
+
全景
|
| 2915 |
+
三色堇
|
| 2916 |
+
喘息
|
| 2917 |
+
储藏室
|
| 2918 |
+
裤子
|
| 2919 |
+
连裤袜
|
| 2920 |
+
木瓜
|
| 2921 |
+
纸
|
| 2922 |
+
纸袋
|
| 2923 |
+
切纸机
|
| 2924 |
+
纸灯笼
|
| 2925 |
+
纸盘子
|
| 2926 |
+
纸巾
|
| 2927 |
+
平装书
|
| 2928 |
+
压纸器
|
| 2929 |
+
降落伞
|
| 2930 |
+
游行
|
| 2931 |
+
天堂
|
| 2932 |
+
鹦鹉
|
| 2933 |
+
护理人员
|
| 2934 |
+
长尾小鹦鹉
|
| 2935 |
+
滑翔伞
|
| 2936 |
+
伞兵
|
| 2937 |
+
羊皮纸
|
| 2938 |
+
教区
|
| 2939 |
+
公园
|
| 2940 |
+
公园长椅
|
| 2941 |
+
停车
|
| 2942 |
+
停车场
|
| 2943 |
+
停车费
|
| 2944 |
+
停车标志
|
| 2945 |
+
议会
|
| 2946 |
+
欧芹/香菜
|
| 2947 |
+
参与者
|
| 2948 |
+
合作伙伴
|
| 2949 |
+
帕特里奇
|
| 2950 |
+
聚会
|
| 2951 |
+
派对帽
|
| 2952 |
+
通过
|
| 2953 |
+
通道
|
| 2954 |
+
存折
|
| 2955 |
+
乘客
|
| 2956 |
+
客船
|
| 2957 |
+
旅客列车
|
| 2958 |
+
百香果
|
| 2959 |
+
护照
|
| 2960 |
+
面食
|
| 2961 |
+
粘贴
|
| 2962 |
+
糕点
|
| 2963 |
+
牧场
|
| 2964 |
+
补丁
|
| 2965 |
+
病人
|
| 2966 |
+
图案/款式
|
| 2967 |
+
人行道/硬路面
|
| 2968 |
+
大帐篷
|
| 2969 |
+
爪子
|
| 2970 |
+
支付
|
| 2971 |
+
付费电话
|
| 2972 |
+
豌豆
|
| 2973 |
+
和平
|
| 2974 |
+
桃子
|
| 2975 |
+
孔雀
|
| 2976 |
+
山峰/尖顶
|
| 2977 |
+
花生
|
| 2978 |
+
花生酱
|
| 2979 |
+
梨
|
| 2980 |
+
珍珠
|
| 2981 |
+
卵石
|
| 2982 |
+
山核桃
|
| 2983 |
+
行人
|
| 2984 |
+
人行天桥
|
| 2985 |
+
步行街
|
| 2986 |
+
果皮
|
| 2987 |
+
削皮器
|
| 2988 |
+
小钉板
|
| 2989 |
+
木质腿
|
| 2990 |
+
鹈鹕
|
| 2991 |
+
笔/围栏
|
| 2992 |
+
点球
|
| 2993 |
+
铅笔
|
| 2994 |
+
铅笔盒
|
| 2995 |
+
卷笔刀
|
| 2996 |
+
铅笔裙
|
| 2997 |
+
吊坠
|
| 2998 |
+
钟摆
|
| 2999 |
+
企鹅
|
| 3000 |
+
半岛
|
| 3001 |
+
锦标旗
|
| 3002 |
+
便士
|
| 3003 |
+
储蓄罐
|
| 3004 |
+
牡丹
|
| 3005 |
+
胡椒/辣椒
|
| 3006 |
+
胡椒研磨机
|
| 3007 |
+
胡椒子
|
| 3008 |
+
意大利辣香肠
|
| 3009 |
+
栖息/鲈鱼
|
| 3010 |
+
表演
|
| 3011 |
+
表演
|
| 3012 |
+
表演舞台
|
| 3013 |
+
香水
|
| 3014 |
+
绿廊
|
| 3015 |
+
波斯猫
|
| 3016 |
+
柿子
|
| 3017 |
+
个人护理
|
| 3018 |
+
个人漂浮装置
|
| 3019 |
+
害虫
|
| 3020 |
+
宠物
|
| 3021 |
+
宠物店
|
| 3022 |
+
宠物店
|
| 3023 |
+
花瓣
|
| 3024 |
+
佩妮
|
| 3025 |
+
教堂的长椅
|
| 3026 |
+
野鸡
|
| 3027 |
+
现象
|
| 3028 |
+
哲学家
|
| 3029 |
+
电话
|
| 3030 |
+
电话簿
|
| 3031 |
+
留声机
|
| 3032 |
+
照片
|
| 3033 |
+
照相亭
|
| 3034 |
+
相框
|
| 3035 |
+
摄影
|
| 3036 |
+
物理学家
|
| 3037 |
+
物理实验室
|
| 3038 |
+
钢琴家
|
| 3039 |
+
钢琴
|
| 3040 |
+
选择
|
| 3041 |
+
捡起
|
| 3042 |
+
泡菜
|
| 3043 |
+
野餐
|
| 3044 |
+
野餐区
|
| 3045 |
+
野餐篮
|
| 3046 |
+
野餐桌
|
| 3047 |
+
图片
|
| 3048 |
+
相框
|
| 3049 |
+
馅饼
|
| 3050 |
+
鸽子
|
| 3051 |
+
朝圣者
|
| 3052 |
+
药片
|
| 3053 |
+
枕头
|
| 3054 |
+
飞行员
|
| 3055 |
+
领航艇
|
| 3056 |
+
别针
|
| 3057 |
+
松树
|
| 3058 |
+
松果
|
| 3059 |
+
松林
|
| 3060 |
+
松子
|
| 3061 |
+
菠萝
|
| 3062 |
+
乒乓球桌
|
| 3063 |
+
乒乓球
|
| 3064 |
+
粉色
|
| 3065 |
+
一品脱的量
|
| 3066 |
+
琵琶
|
| 3067 |
+
管子
|
| 3068 |
+
管碗
|
| 3069 |
+
海盗
|
| 3070 |
+
海盗旗
|
| 3071 |
+
海盗船
|
| 3072 |
+
阿月浑子
|
| 3073 |
+
滑雪场
|
| 3074 |
+
口袋里的面包
|
| 3075 |
+
火龙果
|
| 3076 |
+
斗牛犬
|
| 3077 |
+
球场
|
| 3078 |
+
大水罐
|
| 3079 |
+
猪笼草
|
| 3080 |
+
干草叉
|
| 3081 |
+
披萨
|
| 3082 |
+
披萨刀
|
| 3083 |
+
比萨锅
|
| 3084 |
+
披萨店
|
| 3085 |
+
招牌
|
| 3086 |
+
地方
|
| 3087 |
+
餐具垫
|
| 3088 |
+
格子
|
| 3089 |
+
平原
|
| 3090 |
+
示意图
|
| 3091 |
+
行星
|
| 3092 |
+
行星地球
|
| 3093 |
+
厚木板
|
| 3094 |
+
植物
|
| 3095 |
+
种植园
|
| 3096 |
+
种植
|
| 3097 |
+
匾额
|
| 3098 |
+
石膏
|
| 3099 |
+
塑料
|
| 3100 |
+
橡皮泥
|
| 3101 |
+
高原
|
| 3102 |
+
平台
|
| 3103 |
+
白金
|
| 3104 |
+
大浅盘
|
| 3105 |
+
玩/演奏/运动
|
| 3106 |
+
打羽毛球
|
| 3107 |
+
打棒球
|
| 3108 |
+
打篮球
|
| 3109 |
+
玩台球
|
| 3110 |
+
踢足球
|
| 3111 |
+
玩乒乓球
|
| 3112 |
+
打网球
|
| 3113 |
+
打排球
|
| 3114 |
+
选手/运动员
|
| 3115 |
+
操场
|
| 3116 |
+
剧场
|
| 3117 |
+
扑克牌
|
| 3118 |
+
下棋
|
| 3119 |
+
打高尔夫球
|
| 3120 |
+
打麻将
|
| 3121 |
+
运动场
|
| 3122 |
+
护栏
|
| 3123 |
+
游戏室
|
| 3124 |
+
广场
|
| 3125 |
+
钳子
|
| 3126 |
+
故事情节
|
| 3127 |
+
犁
|
| 3128 |
+
插头
|
| 3129 |
+
插头帽
|
| 3130 |
+
李子
|
| 3131 |
+
水管工
|
| 3132 |
+
卫生洁具
|
| 3133 |
+
羽毛
|
| 3134 |
+
夹板
|
| 3135 |
+
口袋
|
| 3136 |
+
怀表
|
| 3137 |
+
随身小折刀
|
| 3138 |
+
圆荚体
|
| 3139 |
+
乐队指挥台
|
| 3140 |
+
诗歌
|
| 3141 |
+
一品红
|
| 3142 |
+
指/朝向
|
| 3143 |
+
指针
|
| 3144 |
+
扑克卡
|
| 3145 |
+
筹码
|
| 3146 |
+
扑克表
|
| 3147 |
+
杆/柱
|
| 3148 |
+
臭猫
|
| 3149 |
+
警察
|
| 3150 |
+
警车
|
| 3151 |
+
警犬
|
| 3152 |
+
警察局
|
| 3153 |
+
政治家
|
| 3154 |
+
圆点
|
| 3155 |
+
花粉
|
| 3156 |
+
污染
|
| 3157 |
+
马球
|
| 3158 |
+
马球领
|
| 3159 |
+
马球衬衫
|
| 3160 |
+
石榴
|
| 3161 |
+
波美拉尼亚的
|
| 3162 |
+
雨披
|
| 3163 |
+
池塘
|
| 3164 |
+
马尾辫
|
| 3165 |
+
贵宾犬
|
| 3166 |
+
池
|
| 3167 |
+
流行
|
| 3168 |
+
流行艺术家
|
| 3169 |
+
爆米花
|
| 3170 |
+
教皇
|
| 3171 |
+
罂粟
|
| 3172 |
+
瓷
|
| 3173 |
+
玄关
|
| 3174 |
+
猪肉
|
| 3175 |
+
粥
|
| 3176 |
+
便携式电池
|
| 3177 |
+
门户网站
|
| 3178 |
+
投资组合
|
| 3179 |
+
汽门
|
| 3180 |
+
肖像
|
| 3181 |
+
肖像会话
|
| 3182 |
+
摆姿势拍照
|
| 3183 |
+
负鼠
|
| 3184 |
+
帖子
|
| 3185 |
+
邮局
|
| 3186 |
+
邮票
|
| 3187 |
+
明信片
|
| 3188 |
+
海报
|
| 3189 |
+
海报页
|
| 3190 |
+
锅/罐/陶盆
|
| 3191 |
+
土豆
|
| 3192 |
+
土豆片
|
| 3193 |
+
土豆沙拉
|
| 3194 |
+
布垫子
|
| 3195 |
+
便壶
|
| 3196 |
+
袋
|
| 3197 |
+
家禽
|
| 3198 |
+
英镑
|
| 3199 |
+
倾泻
|
| 3200 |
+
粉末
|
| 3201 |
+
电源线
|
| 3202 |
+
电源插头及插座
|
| 3203 |
+
权力看
|
| 3204 |
+
电站
|
| 3205 |
+
练习
|
| 3206 |
+
布拉格城堡
|
| 3207 |
+
祈祷
|
| 3208 |
+
牧师
|
| 3209 |
+
首映
|
| 3210 |
+
处方
|
| 3211 |
+
显示
|
| 3212 |
+
演讲
|
| 3213 |
+
总统
|
| 3214 |
+
新闻发布室
|
| 3215 |
+
高压锅
|
| 3216 |
+
椒盐卷饼
|
| 3217 |
+
王子
|
| 3218 |
+
公主
|
| 3219 |
+
打印
|
| 3220 |
+
打印页面
|
| 3221 |
+
打印机
|
| 3222 |
+
印刷
|
| 3223 |
+
监狱
|
| 3224 |
+
农产品/生产
|
| 3225 |
+
产品
|
| 3226 |
+
职业
|
| 3227 |
+
专业的
|
| 3228 |
+
教授
|
| 3229 |
+
项目图片
|
| 3230 |
+
投影屏幕
|
| 3231 |
+
投影仪
|
| 3232 |
+
毕业舞会
|
| 3233 |
+
散步
|
| 3234 |
+
螺旋桨
|
| 3235 |
+
先知
|
| 3236 |
+
建议
|
| 3237 |
+
防护服
|
| 3238 |
+
抗议
|
| 3239 |
+
抗议者
|
| 3240 |
+
出版
|
| 3241 |
+
宣传画像
|
| 3242 |
+
冰上曲棍球
|
| 3243 |
+
布丁
|
| 3244 |
+
水坑
|
| 3245 |
+
泡芙
|
| 3246 |
+
角嘴海雀
|
| 3247 |
+
哈巴狗
|
| 3248 |
+
拉
|
| 3249 |
+
讲坛
|
| 3250 |
+
脉冲
|
| 3251 |
+
泵
|
| 3252 |
+
南瓜
|
| 3253 |
+
南瓜饼
|
| 3254 |
+
南瓜种子
|
| 3255 |
+
拳击吊袋
|
| 3256 |
+
拳头猛击/穿孔
|
| 3257 |
+
学生
|
| 3258 |
+
紫色
|
| 3259 |
+
推
|
| 3260 |
+
轻轻一击
|
| 3261 |
+
谜题
|
| 3262 |
+
塔
|
| 3263 |
+
金字塔
|
| 3264 |
+
大蟒
|
| 3265 |
+
二维码
|
| 3266 |
+
鹌鹑
|
| 3267 |
+
采石场
|
| 3268 |
+
季度
|
| 3269 |
+
石英
|
| 3270 |
+
女王
|
| 3271 |
+
油炸玉米粉饼
|
| 3272 |
+
队列
|
| 3273 |
+
乳蛋饼
|
| 3274 |
+
被子
|
| 3275 |
+
绗缝
|
| 3276 |
+
引用
|
| 3277 |
+
兔子
|
| 3278 |
+
浣熊
|
| 3279 |
+
比赛
|
| 3280 |
+
赛道
|
| 3281 |
+
水沟/跑道
|
| 3282 |
+
赛车
|
| 3283 |
+
球拍
|
| 3284 |
+
雷达
|
| 3285 |
+
散热器
|
| 3286 |
+
广播
|
| 3287 |
+
木筏/橡皮艇
|
| 3288 |
+
布娃娃
|
| 3289 |
+
栏杆/铁轨
|
| 3290 |
+
轨道车
|
| 3291 |
+
铁道
|
| 3292 |
+
铁路桥梁
|
| 3293 |
+
轨道线
|
| 3294 |
+
火车站
|
| 3295 |
+
雨
|
| 3296 |
+
雨靴
|
| 3297 |
+
彩虹
|
| 3298 |
+
虹鳟鱼
|
| 3299 |
+
雨衣
|
| 3300 |
+
热带雨林
|
| 3301 |
+
多雨的
|
| 3302 |
+
葡萄干
|
| 3303 |
+
耙子
|
| 3304 |
+
公羊
|
| 3305 |
+
斜坡
|
| 3306 |
+
油菜籽
|
| 3307 |
+
快速
|
| 3308 |
+
说唱歌手
|
| 3309 |
+
树莓
|
| 3310 |
+
老鼠
|
| 3311 |
+
棘轮
|
| 3312 |
+
乌鸦
|
| 3313 |
+
峡谷
|
| 3314 |
+
雷
|
| 3315 |
+
剃须刀
|
| 3316 |
+
锋利的
|
| 3317 |
+
阅读
|
| 3318 |
+
阅读材料
|
| 3319 |
+
钻孔器
|
| 3320 |
+
后面
|
| 3321 |
+
尾灯
|
| 3322 |
+
后视图
|
| 3323 |
+
后视镜
|
| 3324 |
+
收据
|
| 3325 |
+
收到
|
| 3326 |
+
接待
|
| 3327 |
+
配方
|
| 3328 |
+
记录
|
| 3329 |
+
唱片制作人
|
| 3330 |
+
记录器/竖笛
|
| 3331 |
+
录音室
|
| 3332 |
+
娱乐室
|
| 3333 |
+
休闲车
|
| 3334 |
+
矩形
|
| 3335 |
+
回收
|
| 3336 |
+
回收站
|
| 3337 |
+
红色
|
| 3338 |
+
红地毯
|
| 3339 |
+
红旗
|
| 3340 |
+
红熊猫
|
| 3341 |
+
红酒
|
| 3342 |
+
红木
|
| 3343 |
+
芦苇
|
| 3344 |
+
礁石
|
| 3345 |
+
卷轴
|
| 3346 |
+
裁判
|
| 3347 |
+
倒影
|
| 3348 |
+
倒影
|
| 3349 |
+
反射器
|
| 3350 |
+
注册
|
| 3351 |
+
控制
|
| 3352 |
+
驯鹿
|
| 3353 |
+
放松
|
| 3354 |
+
释放
|
| 3355 |
+
救援
|
| 3356 |
+
宗教
|
| 3357 |
+
宗教的
|
| 3358 |
+
享受
|
| 3359 |
+
保持
|
| 3360 |
+
改造
|
| 3361 |
+
遥控器
|
| 3362 |
+
移除
|
| 3363 |
+
修复
|
| 3364 |
+
维修店
|
| 3365 |
+
爬行动物
|
| 3366 |
+
救援
|
| 3367 |
+
救助者
|
| 3368 |
+
研究
|
| 3369 |
+
研究员
|
| 3370 |
+
储层
|
| 3371 |
+
住宅
|
| 3372 |
+
居民区
|
| 3373 |
+
树脂
|
| 3374 |
+
度假胜地
|
| 3375 |
+
度假小镇
|
| 3376 |
+
餐厅的厨房
|
| 3377 |
+
餐厅的露台
|
| 3378 |
+
厕所
|
| 3379 |
+
零售
|
| 3380 |
+
寻回犬
|
| 3381 |
+
制动火箭
|
| 3382 |
+
揭示
|
| 3383 |
+
犀牛
|
| 3384 |
+
杜鹃
|
| 3385 |
+
肋骨
|
| 3386 |
+
丝带
|
| 3387 |
+
大米
|
| 3388 |
+
电饭煲
|
| 3389 |
+
稻田
|
| 3390 |
+
骑/搭乘
|
| 3391 |
+
脊
|
| 3392 |
+
骑马
|
| 3393 |
+
步枪
|
| 3394 |
+
边缘
|
| 3395 |
+
环/戒指
|
| 3396 |
+
暴乱
|
| 3397 |
+
涟漪
|
| 3398 |
+
上升
|
| 3399 |
+
高层建筑
|
| 3400 |
+
河
|
| 3401 |
+
河岸
|
| 3402 |
+
河船
|
| 3403 |
+
河谷
|
| 3404 |
+
河床
|
| 3405 |
+
路
|
| 3406 |
+
路标
|
| 3407 |
+
公路旅行
|
| 3408 |
+
路边
|
| 3409 |
+
烤鸡
|
| 3410 |
+
长袍
|
| 3411 |
+
罗宾
|
| 3412 |
+
机器人
|
| 3413 |
+
石头
|
| 3414 |
+
岩石拱
|
| 3415 |
+
摇滚艺术家
|
| 3416 |
+
摇滚乐队
|
| 3417 |
+
攀岩者
|
| 3418 |
+
攀岩
|
| 3419 |
+
摇滚音乐会
|
| 3420 |
+
岩石表面
|
| 3421 |
+
岩层
|
| 3422 |
+
摇滚歌手
|
| 3423 |
+
火箭
|
| 3424 |
+
摇椅
|
| 3425 |
+
岩石
|
| 3426 |
+
啮齿动物
|
| 3427 |
+
牛仔竞技表演
|
| 3428 |
+
竞技舞台
|
| 3429 |
+
罗伊
|
| 3430 |
+
狍子
|
| 3431 |
+
辊
|
| 3432 |
+
过山车
|
| 3433 |
+
轮式溜冰鞋
|
| 3434 |
+
溜冰鞋
|
| 3435 |
+
擀面杖
|
| 3436 |
+
浪漫
|
| 3437 |
+
浪漫的
|
| 3438 |
+
屋顶
|
| 3439 |
+
屋顶花园
|
| 3440 |
+
房间
|
| 3441 |
+
房间分频器
|
| 3442 |
+
根
|
| 3443 |
+
根啤酒
|
| 3444 |
+
绳索桥
|
| 3445 |
+
念珠
|
| 3446 |
+
玫瑰
|
| 3447 |
+
迷迭香
|
| 3448 |
+
玫瑰色的云
|
| 3449 |
+
罗特韦尔犬
|
| 3450 |
+
圆桌
|
| 3451 |
+
路由器
|
| 3452 |
+
行
|
| 3453 |
+
罗文
|
| 3454 |
+
皇家
|
| 3455 |
+
橡皮图章
|
| 3456 |
+
废墟
|
| 3457 |
+
魔方
|
| 3458 |
+
红宝石
|
| 3459 |
+
莱夫
|
| 3460 |
+
橄榄球
|
| 3461 |
+
橄榄球
|
| 3462 |
+
橄榄球运动员
|
| 3463 |
+
毁坏
|
| 3464 |
+
尺
|
| 3465 |
+
朗姆酒
|
| 3466 |
+
跑
|
| 3467 |
+
跑步者
|
| 3468 |
+
跑步鞋
|
| 3469 |
+
农村的
|
| 3470 |
+
锈
|
| 3471 |
+
乡村的
|
| 3472 |
+
黑麦
|
| 3473 |
+
袋
|
| 3474 |
+
鞍
|
| 3475 |
+
鞍囊
|
| 3476 |
+
旅行
|
| 3477 |
+
安全
|
| 3478 |
+
安全背心
|
| 3479 |
+
圣人
|
| 3480 |
+
帆
|
| 3481 |
+
帆船
|
| 3482 |
+
航行
|
| 3483 |
+
水手
|
| 3484 |
+
松鼠猴
|
| 3485 |
+
缘故
|
| 3486 |
+
沙拉
|
| 3487 |
+
沙拉碗
|
| 3488 |
+
火蜥蜴
|
| 3489 |
+
意大利蒜味腊肠
|
| 3490 |
+
出售
|
| 3491 |
+
三文鱼
|
| 3492 |
+
沙龙
|
| 3493 |
+
萨尔萨舞
|
| 3494 |
+
盐
|
| 3495 |
+
盐和胡椒瓶
|
| 3496 |
+
盐湖
|
| 3497 |
+
盐沼
|
| 3498 |
+
盐瓶
|
| 3499 |
+
敬礼
|
| 3500 |
+
萨莫耶德人
|
| 3501 |
+
武士
|
| 3502 |
+
沙子
|
| 3503 |
+
沙洲
|
| 3504 |
+
砂箱
|
| 3505 |
+
沙堡
|
| 3506 |
+
沙雕
|
| 3507 |
+
凉鞋
|
| 3508 |
+
三明治
|
| 3509 |
+
卫生巾
|
| 3510 |
+
圣诞老人
|
| 3511 |
+
蓝宝石
|
| 3512 |
+
沙丁鱼
|
| 3513 |
+
莎丽
|
| 3514 |
+
生鱼片
|
| 3515 |
+
沙爹
|
| 3516 |
+
书包
|
| 3517 |
+
卫星
|
| 3518 |
+
缎
|
| 3519 |
+
酱汁
|
| 3520 |
+
碟子
|
| 3521 |
+
桑拿
|
| 3522 |
+
香肠
|
| 3523 |
+
稀树大草原
|
| 3524 |
+
锯
|
| 3525 |
+
锯木架
|
| 3526 |
+
萨克斯管
|
| 3527 |
+
萨克斯手
|
| 3528 |
+
脚手架
|
| 3529 |
+
秤/标尺
|
| 3530 |
+
比例模型
|
| 3531 |
+
扇贝
|
| 3532 |
+
疤痕
|
| 3533 |
+
稻草人
|
| 3534 |
+
围巾
|
| 3535 |
+
场景
|
| 3536 |
+
风景
|
| 3537 |
+
雪纳瑞犬
|
| 3538 |
+
学校
|
| 3539 |
+
校车
|
| 3540 |
+
校服
|
| 3541 |
+
校舍
|
| 3542 |
+
纵帆船
|
| 3543 |
+
科学
|
| 3544 |
+
科幻电影
|
| 3545 |
+
科学博物馆
|
| 3546 |
+
科学家
|
| 3547 |
+
剪刀
|
| 3548 |
+
壁灯
|
| 3549 |
+
司康饼
|
| 3550 |
+
勺子
|
| 3551 |
+
踏板车/摩托车
|
| 3552 |
+
分数
|
| 3553 |
+
记分板
|
| 3554 |
+
蝎子
|
| 3555 |
+
童子军
|
| 3556 |
+
炒蛋
|
| 3557 |
+
废弃
|
| 3558 |
+
刮板
|
| 3559 |
+
刮伤
|
| 3560 |
+
屏幕
|
| 3561 |
+
纱门
|
| 3562 |
+
截图
|
| 3563 |
+
螺杆
|
| 3564 |
+
螺丝刀
|
| 3565 |
+
长卷纸/卷轴
|
| 3566 |
+
擦洗
|
| 3567 |
+
硬毛刷
|
| 3568 |
+
雕塑家
|
| 3569 |
+
雕塑
|
| 3570 |
+
海洞穴
|
| 3571 |
+
海冰
|
| 3572 |
+
海狮
|
| 3573 |
+
海龟
|
| 3574 |
+
海胆
|
| 3575 |
+
尖吻鲈
|
| 3576 |
+
海底
|
| 3577 |
+
海鸟
|
| 3578 |
+
海鲜
|
| 3579 |
+
海马
|
| 3580 |
+
海豹
|
| 3581 |
+
海景
|
| 3582 |
+
海贝
|
| 3583 |
+
海滨度假胜地
|
| 3584 |
+
季节
|
| 3585 |
+
座位
|
| 3586 |
+
安全带
|
| 3587 |
+
海藻
|
| 3588 |
+
秘书
|
| 3589 |
+
安全
|
| 3590 |
+
小轿车
|
| 3591 |
+
看到
|
| 3592 |
+
种子
|
| 3593 |
+
跷跷板
|
| 3594 |
+
赛格威
|
| 3595 |
+
自拍
|
| 3596 |
+
出售
|
| 3597 |
+
研讨会
|
| 3598 |
+
感觉
|
| 3599 |
+
传感器
|
| 3600 |
+
服务器
|
| 3601 |
+
服务器机房
|
| 3602 |
+
服务
|
| 3603 |
+
集
|
| 3604 |
+
缝纫机
|
| 3605 |
+
影子
|
| 3606 |
+
摇
|
| 3607 |
+
瓶
|
| 3608 |
+
洗发水
|
| 3609 |
+
形状
|
| 3610 |
+
分享
|
| 3611 |
+
鲨鱼
|
| 3612 |
+
卷笔刀
|
| 3613 |
+
记号笔
|
| 3614 |
+
剃须刀
|
| 3615 |
+
剃须膏
|
| 3616 |
+
披肩/围巾
|
| 3617 |
+
剪切
|
| 3618 |
+
剪刀
|
| 3619 |
+
羊
|
| 3620 |
+
床单
|
| 3621 |
+
乐谱
|
| 3622 |
+
架子
|
| 3623 |
+
贝壳
|
| 3624 |
+
贝类
|
| 3625 |
+
避难所
|
| 3626 |
+
搁置
|
| 3627 |
+
牧羊人
|
| 3628 |
+
果子露
|
| 3629 |
+
柴犬
|
| 3630 |
+
发光
|
| 3631 |
+
航运
|
| 3632 |
+
集装箱
|
| 3633 |
+
海难
|
| 3634 |
+
船厂
|
| 3635 |
+
衬衫
|
| 3636 |
+
赤膊的
|
| 3637 |
+
浅滩
|
| 3638 |
+
鞋
|
| 3639 |
+
鞋盒
|
| 3640 |
+
鞋店
|
| 3641 |
+
鞋楦
|
| 3642 |
+
射击
|
| 3643 |
+
得分篮球后卫
|
| 3644 |
+
商店橱窗
|
| 3645 |
+
门面
|
| 3646 |
+
购物者
|
| 3647 |
+
购物
|
| 3648 |
+
购物袋
|
| 3649 |
+
购物篮
|
| 3650 |
+
购物车
|
| 3651 |
+
购物中心
|
| 3652 |
+
购物街
|
| 3653 |
+
海岸
|
| 3654 |
+
海岸线
|
| 3655 |
+
短的
|
| 3656 |
+
短发
|
| 3657 |
+
短裤
|
| 3658 |
+
小酒杯
|
| 3659 |
+
散弹枪
|
| 3660 |
+
肩膀
|
| 3661 |
+
单肩包
|
| 3662 |
+
铲
|
| 3663 |
+
陈列柜
|
| 3664 |
+
淋浴
|
| 3665 |
+
浴帽
|
| 3666 |
+
浴帘
|
| 3667 |
+
淋浴门
|
| 3668 |
+
淋浴头
|
| 3669 |
+
碎纸机
|
| 3670 |
+
泼妇
|
| 3671 |
+
虾
|
| 3672 |
+
神社
|
| 3673 |
+
灌木
|
| 3674 |
+
快门
|
| 3675 |
+
暹罗猫
|
| 3676 |
+
西伯利亚
|
| 3677 |
+
兄弟姐妹
|
| 3678 |
+
侧面
|
| 3679 |
+
边柜
|
| 3680 |
+
配菜
|
| 3681 |
+
边车
|
| 3682 |
+
边线
|
| 3683 |
+
壁板
|
| 3684 |
+
标志
|
| 3685 |
+
指示牌
|
| 3686 |
+
信号
|
| 3687 |
+
签名
|
| 3688 |
+
丝绸
|
| 3689 |
+
丝袜
|
| 3690 |
+
筒仓
|
| 3691 |
+
银
|
| 3692 |
+
银牌
|
| 3693 |
+
银器
|
| 3694 |
+
唱歌
|
| 3695 |
+
烧焦
|
| 3696 |
+
歌手
|
| 3697 |
+
水槽
|
| 3698 |
+
啜
|
| 3699 |
+
坐/放置/坐落
|
| 3700 |
+
坐着
|
| 3701 |
+
滑板公园
|
| 3702 |
+
滑板
|
| 3703 |
+
滑板者
|
| 3704 |
+
溜冰者
|
| 3705 |
+
溜冰场
|
| 3706 |
+
骨架
|
| 3707 |
+
草图
|
| 3708 |
+
串串
|
| 3709 |
+
滑雪
|
| 3710 |
+
滑雪靴
|
| 3711 |
+
滑雪设备
|
| 3712 |
+
滑雪服
|
| 3713 |
+
滑雪缆车
|
| 3714 |
+
滑雪杖
|
| 3715 |
+
滑雪胜地
|
| 3716 |
+
滑雪板
|
| 3717 |
+
滑雪
|
| 3718 |
+
滑雪鞋
|
| 3719 |
+
皮肤
|
| 3720 |
+
头骨
|
| 3721 |
+
无边便帽
|
| 3722 |
+
天空
|
| 3723 |
+
天空塔
|
| 3724 |
+
天窗
|
| 3725 |
+
天际线
|
| 3726 |
+
摩天大楼
|
| 3727 |
+
激流回旋
|
| 3728 |
+
石板
|
| 3729 |
+
雪橇
|
| 3730 |
+
睡眠
|
| 3731 |
+
睡袋
|
| 3732 |
+
睡衣
|
| 3733 |
+
袖子
|
| 3734 |
+
片
|
| 3735 |
+
滑动
|
| 3736 |
+
滑块
|
| 3737 |
+
吊索
|
| 3738 |
+
坡
|
| 3739 |
+
投币口
|
| 3740 |
+
老虎机
|
| 3741 |
+
树懒
|
| 3742 |
+
慢炖锅
|
| 3743 |
+
鼻涕虫
|
| 3744 |
+
贫民窟
|
| 3745 |
+
气味
|
| 3746 |
+
微笑
|
| 3747 |
+
烟雾/抽烟
|
| 3748 |
+
零食
|
| 3749 |
+
蜗牛
|
| 3750 |
+
蛇
|
| 3751 |
+
鲷鱼
|
| 3752 |
+
快照
|
| 3753 |
+
通气管
|
| 3754 |
+
鼻子
|
| 3755 |
+
雪
|
| 3756 |
+
雪豹
|
| 3757 |
+
雪山
|
| 3758 |
+
雪球
|
| 3759 |
+
单板滑雪者
|
| 3760 |
+
雪原
|
| 3761 |
+
雪花
|
| 3762 |
+
雪人
|
| 3763 |
+
雪地摩托
|
| 3764 |
+
雪犁
|
| 3765 |
+
雪鞋
|
| 3766 |
+
雪
|
| 3767 |
+
肥皂
|
| 3768 |
+
肥皂泡
|
| 3769 |
+
给皂器
|
| 3770 |
+
足球守门员
|
| 3771 |
+
社会名流
|
| 3772 |
+
短袜
|
| 3773 |
+
插座
|
| 3774 |
+
苏打水
|
| 3775 |
+
垒球
|
| 3776 |
+
软件
|
| 3777 |
+
太阳能电池阵列
|
| 3778 |
+
士兵
|
| 3779 |
+
独奏
|
| 3780 |
+
解决方案
|
| 3781 |
+
宽边帽
|
| 3782 |
+
歌曲
|
| 3783 |
+
声音
|
| 3784 |
+
汤
|
| 3785 |
+
汤碗
|
| 3786 |
+
汤匙
|
| 3787 |
+
酸奶油
|
| 3788 |
+
纪念品
|
| 3789 |
+
豆浆
|
| 3790 |
+
水疗中心
|
| 3791 |
+
空间
|
| 3792 |
+
航天飞机
|
| 3793 |
+
空间站
|
| 3794 |
+
宇宙飞船
|
| 3795 |
+
意大利面
|
| 3796 |
+
横跨
|
| 3797 |
+
扳手
|
| 3798 |
+
火花
|
| 3799 |
+
闪耀
|
| 3800 |
+
烟火
|
| 3801 |
+
起泡葡萄酒
|
| 3802 |
+
麻雀
|
| 3803 |
+
抹刀
|
| 3804 |
+
扬声器
|
| 3805 |
+
观众
|
| 3806 |
+
会话框
|
| 3807 |
+
速度限制
|
| 3808 |
+
限速标志
|
| 3809 |
+
快艇
|
| 3810 |
+
车速表
|
| 3811 |
+
球
|
| 3812 |
+
香料
|
| 3813 |
+
调料架
|
| 3814 |
+
蜘蛛
|
| 3815 |
+
蜘蛛网
|
| 3816 |
+
扣球
|
| 3817 |
+
旋转
|
| 3818 |
+
菠菜
|
| 3819 |
+
尖塔
|
| 3820 |
+
飞溅
|
| 3821 |
+
海绵
|
| 3822 |
+
勺子
|
| 3823 |
+
体育协会
|
| 3824 |
+
运动器材
|
| 3825 |
+
运动团队
|
| 3826 |
+
体育球
|
| 3827 |
+
体育器材
|
| 3828 |
+
运动会
|
| 3829 |
+
运动服装
|
| 3830 |
+
点
|
| 3831 |
+
喷雾
|
| 3832 |
+
伸展
|
| 3833 |
+
春天
|
| 3834 |
+
春卷
|
| 3835 |
+
撒
|
| 3836 |
+
洒水器
|
| 3837 |
+
发芽
|
| 3838 |
+
云杉
|
| 3839 |
+
云杉森林
|
| 3840 |
+
队
|
| 3841 |
+
广场
|
| 3842 |
+
南瓜
|
| 3843 |
+
蹲
|
| 3844 |
+
挤
|
| 3845 |
+
鱿鱼
|
| 3846 |
+
松鼠
|
| 3847 |
+
水枪
|
| 3848 |
+
刺
|
| 3849 |
+
稳定的
|
| 3850 |
+
(码放整齐的)一叠
|
| 3851 |
+
体育场
|
| 3852 |
+
工作人员
|
| 3853 |
+
舞台
|
| 3854 |
+
舞台灯
|
| 3855 |
+
驿马车
|
| 3856 |
+
弄脏
|
| 3857 |
+
不锈钢
|
| 3858 |
+
楼梯
|
| 3859 |
+
楼梯
|
| 3860 |
+
楼梯间
|
| 3861 |
+
摊位/小隔间
|
| 3862 |
+
种马
|
| 3863 |
+
站/矗立/摊位
|
| 3864 |
+
站
|
| 3865 |
+
主食
|
| 3866 |
+
订书机
|
| 3867 |
+
星星
|
| 3868 |
+
盯着
|
| 3869 |
+
海星
|
| 3870 |
+
杨桃
|
| 3871 |
+
燕八哥
|
| 3872 |
+
州立公园
|
| 3873 |
+
公立学校
|
| 3874 |
+
车站
|
| 3875 |
+
固定自行车
|
| 3876 |
+
文具
|
| 3877 |
+
雕像
|
| 3878 |
+
牛排
|
| 3879 |
+
牛排刀
|
| 3880 |
+
蒸汽
|
| 3881 |
+
蒸汽机
|
| 3882 |
+
蒸汽机车
|
| 3883 |
+
蒸汽火车
|
| 3884 |
+
馒头
|
| 3885 |
+
钢
|
| 3886 |
+
方向盘
|
| 3887 |
+
(花草的)茎
|
| 3888 |
+
模版
|
| 3889 |
+
梯凳
|
| 3890 |
+
立体声
|
| 3891 |
+
听诊器
|
| 3892 |
+
炖
|
| 3893 |
+
戳/条状物
|
| 3894 |
+
竹节虫
|
| 3895 |
+
贴纸
|
| 3896 |
+
静物画
|
| 3897 |
+
高跷
|
| 3898 |
+
黄貂鱼
|
| 3899 |
+
搅拌
|
| 3900 |
+
搅拌器
|
| 3901 |
+
镫
|
| 3902 |
+
缝
|
| 3903 |
+
股票
|
| 3904 |
+
长筒袜
|
| 3905 |
+
腹部
|
| 3906 |
+
石头建筑
|
| 3907 |
+
石雕
|
| 3908 |
+
石屋
|
| 3909 |
+
石磨
|
| 3910 |
+
凳子
|
| 3911 |
+
停止
|
| 3912 |
+
停在
|
| 3913 |
+
红灯
|
| 3914 |
+
停车标志
|
| 3915 |
+
秒表
|
| 3916 |
+
红绿灯
|
| 3917 |
+
存储箱
|
| 3918 |
+
储藏室
|
| 3919 |
+
罐/蓄水池
|
| 3920 |
+
商店
|
| 3921 |
+
店面
|
| 3922 |
+
鹳
|
| 3923 |
+
风暴
|
| 3924 |
+
暴风云
|
| 3925 |
+
狂风暴雨的
|
| 3926 |
+
炉子
|
| 3927 |
+
扑克
|
| 3928 |
+
跨骑
|
| 3929 |
+
过滤器
|
| 3930 |
+
海峡
|
| 3931 |
+
带
|
| 3932 |
+
稻草/吸管
|
| 3933 |
+
草帽
|
| 3934 |
+
草莓
|
| 3935 |
+
溪流
|
| 3936 |
+
街头艺术
|
| 3937 |
+
街头艺术家
|
| 3938 |
+
街角
|
| 3939 |
+
流浪狗
|
| 3940 |
+
街头食品
|
| 3941 |
+
路灯
|
| 3942 |
+
街市场
|
| 3943 |
+
街头摄影
|
| 3944 |
+
街景
|
| 3945 |
+
路标
|
| 3946 |
+
街头小贩
|
| 3947 |
+
拉伸
|
| 3948 |
+
担架
|
| 3949 |
+
罢工
|
| 3950 |
+
前锋
|
| 3951 |
+
细绳
|
| 3952 |
+
芝士条
|
| 3953 |
+
带子
|
| 3954 |
+
条纹
|
| 3955 |
+
漫步
|
| 3956 |
+
结构
|
| 3957 |
+
工作室
|
| 3958 |
+
影棚拍摄
|
| 3959 |
+
材料
|
| 3960 |
+
填充玩具动物
|
| 3961 |
+
毛绒玩具
|
| 3962 |
+
馅
|
| 3963 |
+
树桩
|
| 3964 |
+
惊人的
|
| 3965 |
+
特技
|
| 3966 |
+
佛塔
|
| 3967 |
+
风格
|
| 3968 |
+
手写笔
|
| 3969 |
+
潜艇
|
| 3970 |
+
潜艇形大三明治
|
| 3971 |
+
海底水
|
| 3972 |
+
郊区
|
| 3973 |
+
地铁
|
| 3974 |
+
地铁站
|
| 3975 |
+
低音炮
|
| 3976 |
+
多肉
|
| 3977 |
+
绒面革
|
| 3978 |
+
糖
|
| 3979 |
+
糖碗
|
| 3980 |
+
甘蔗
|
| 3981 |
+
方糖
|
| 3982 |
+
西装
|
| 3983 |
+
套房
|
| 3984 |
+
夏天
|
| 3985 |
+
夏天傍晚
|
| 3986 |
+
峰顶
|
| 3987 |
+
太阳
|
| 3988 |
+
太阳帽
|
| 3989 |
+
日光浴
|
| 3990 |
+
周日
|
| 3991 |
+
日晷
|
| 3992 |
+
向日葵
|
| 3993 |
+
向日葵田
|
| 3994 |
+
葵花籽
|
| 3995 |
+
太阳镜
|
| 3996 |
+
晴天
|
| 3997 |
+
日出
|
| 3998 |
+
日落
|
| 3999 |
+
遮阳伞
|
| 4000 |
+
阳光
|
| 4001 |
+
超级碗
|
| 4002 |
+
跑车
|
| 4003 |
+
超级英雄
|
| 4004 |
+
超市
|
| 4005 |
+
超市货架
|
| 4006 |
+
超模
|
| 4007 |
+
支持者
|
| 4008 |
+
冲浪
|
| 4009 |
+
表面
|
| 4010 |
+
冲浪板
|
| 4011 |
+
冲浪者
|
| 4012 |
+
外科医生
|
| 4013 |
+
外科手术
|
| 4014 |
+
环绕
|
| 4015 |
+
寿司
|
| 4016 |
+
寿司吧
|
| 4017 |
+
背带裤
|
| 4018 |
+
悬架
|
| 4019 |
+
吊桥
|
| 4020 |
+
越野车
|
| 4021 |
+
燕子
|
| 4022 |
+
燕尾蝶
|
| 4023 |
+
沼泽
|
| 4024 |
+
天鹅
|
| 4025 |
+
天鹅游艇
|
| 4026 |
+
运动裤
|
| 4027 |
+
防汗带
|
| 4028 |
+
毛衣
|
| 4029 |
+
运动衫
|
| 4030 |
+
甜的
|
| 4031 |
+
红薯
|
| 4032 |
+
游泳
|
| 4033 |
+
泳帽
|
| 4034 |
+
游泳者
|
| 4035 |
+
游泳洞
|
| 4036 |
+
游泳池
|
| 4037 |
+
摆动
|
| 4038 |
+
平转桥
|
| 4039 |
+
秋千
|
| 4040 |
+
漩涡
|
| 4041 |
+
开关
|
| 4042 |
+
转椅
|
| 4043 |
+
剑
|
| 4044 |
+
旗鱼
|
| 4045 |
+
象征
|
| 4046 |
+
对称
|
| 4047 |
+
犹太教堂
|
| 4048 |
+
注射器
|
| 4049 |
+
糖浆
|
| 4050 |
+
系统
|
| 4051 |
+
t恤
|
| 4052 |
+
t恤
|
| 4053 |
+
塔巴斯科辣椒酱
|
| 4054 |
+
虎斑
|
| 4055 |
+
乒乓球拍
|
| 4056 |
+
桌面
|
| 4057 |
+
桌布
|
| 4058 |
+
平板电脑
|
| 4059 |
+
餐具
|
| 4060 |
+
转速表
|
| 4061 |
+
拦截
|
| 4062 |
+
墨西哥煎玉米卷
|
| 4063 |
+
跆拳道
|
| 4064 |
+
太极
|
| 4065 |
+
尾巴
|
| 4066 |
+
裁缝
|
| 4067 |
+
拍/拿
|
| 4068 |
+
起飞
|
| 4069 |
+
说话/交谈/演讲
|
| 4070 |
+
手鼓
|
| 4071 |
+
棕褐色
|
| 4072 |
+
橘子
|
| 4073 |
+
胶带/磁带/终点线
|
| 4074 |
+
挂毯
|
| 4075 |
+
沥青碎石路面
|
| 4076 |
+
芋头
|
| 4077 |
+
篷布
|
| 4078 |
+
果馅饼
|
| 4079 |
+
流苏
|
| 4080 |
+
味道
|
| 4081 |
+
榻榻米
|
| 4082 |
+
纹身
|
| 4083 |
+
纹身艺术家
|
| 4084 |
+
酒馆
|
| 4085 |
+
茶
|
| 4086 |
+
茶包
|
| 4087 |
+
茶话会
|
| 4088 |
+
茶园
|
| 4089 |
+
茶壶
|
| 4090 |
+
茶具
|
| 4091 |
+
教
|
| 4092 |
+
老师
|
| 4093 |
+
茶杯
|
| 4094 |
+
水鸭
|
| 4095 |
+
团队合影
|
| 4096 |
+
团队介绍
|
| 4097 |
+
眼泪/撕裂/划破
|
| 4098 |
+
技术员
|
| 4099 |
+
技术
|
| 4100 |
+
泰迪熊
|
| 4101 |
+
T字形物
|
| 4102 |
+
青少年
|
| 4103 |
+
电线杆
|
| 4104 |
+
变焦镜头
|
| 4105 |
+
望远镜
|
| 4106 |
+
电视
|
| 4107 |
+
电视摄像机
|
| 4108 |
+
电视室
|
| 4109 |
+
电视演播室
|
| 4110 |
+
温度
|
| 4111 |
+
寺庙
|
| 4112 |
+
天妇罗
|
| 4113 |
+
网球
|
| 4114 |
+
网球场
|
| 4115 |
+
网球比赛
|
| 4116 |
+
网球网
|
| 4117 |
+
网球运动员
|
| 4118 |
+
网球拍
|
| 4119 |
+
帐篷
|
| 4120 |
+
龙舌兰酒
|
| 4121 |
+
终端/航站楼
|
| 4122 |
+
阳台
|
| 4123 |
+
地形
|
| 4124 |
+
玻璃容器
|
| 4125 |
+
领土
|
| 4126 |
+
测试
|
| 4127 |
+
测试赛
|
| 4128 |
+
试管
|
| 4129 |
+
文本
|
| 4130 |
+
短信
|
| 4131 |
+
纺织
|
| 4132 |
+
纹理
|
| 4133 |
+
感恩节
|
| 4134 |
+
感恩节晚餐
|
| 4135 |
+
剧院
|
| 4136 |
+
戏剧演员
|
| 4137 |
+
治疗
|
| 4138 |
+
温度计
|
| 4139 |
+
热水瓶
|
| 4140 |
+
暖瓶
|
| 4141 |
+
恒温器
|
| 4142 |
+
灌木丛
|
| 4143 |
+
顶针
|
| 4144 |
+
东西
|
| 4145 |
+
思考
|
| 4146 |
+
蓟
|
| 4147 |
+
宝座
|
| 4148 |
+
金銮殿
|
| 4149 |
+
扔
|
| 4150 |
+
抱枕
|
| 4151 |
+
雷
|
| 4152 |
+
雷雨
|
| 4153 |
+
百里香
|
| 4154 |
+
皇冠
|
| 4155 |
+
记号
|
| 4156 |
+
票
|
| 4157 |
+
售票亭
|
| 4158 |
+
潮池
|
| 4159 |
+
领带
|
| 4160 |
+
老虎
|
| 4161 |
+
紧
|
| 4162 |
+
瓦
|
| 4163 |
+
瓷砖地板
|
| 4164 |
+
瓦屋顶
|
| 4165 |
+
瓷砖墙
|
| 4166 |
+
锡
|
| 4167 |
+
锡纸
|
| 4168 |
+
箔
|
| 4169 |
+
提拉米苏
|
| 4170 |
+
轮胎
|
| 4171 |
+
纸巾
|
| 4172 |
+
烤面包
|
| 4173 |
+
烤面包机
|
| 4174 |
+
烟草
|
| 4175 |
+
烟斗
|
| 4176 |
+
学步的小孩
|
| 4177 |
+
脚趾
|
| 4178 |
+
豆腐
|
| 4179 |
+
马桶
|
| 4180 |
+
马桶座圈
|
| 4181 |
+
化妆包
|
| 4182 |
+
东京铁塔
|
| 4183 |
+
番茄
|
| 4184 |
+
番茄酱
|
| 4185 |
+
番茄汤
|
| 4186 |
+
墓
|
| 4187 |
+
钳子
|
| 4188 |
+
钳子
|
| 4189 |
+
工具
|
| 4190 |
+
工具箱
|
| 4191 |
+
牙刷
|
| 4192 |
+
牙膏
|
| 4193 |
+
牙签
|
| 4194 |
+
修剪成形的花园
|
| 4195 |
+
配料
|
| 4196 |
+
火炬/光源
|
| 4197 |
+
龙卷风
|
| 4198 |
+
玉米粉圆饼
|
| 4199 |
+
乌龟
|
| 4200 |
+
大手提袋
|
| 4201 |
+
图腾柱
|
| 4202 |
+
龙猫
|
| 4203 |
+
巨嘴鸟
|
| 4204 |
+
触摸
|
| 4205 |
+
触地
|
| 4206 |
+
旅行
|
| 4207 |
+
旅游巴士
|
| 4208 |
+
导游
|
| 4209 |
+
游客
|
| 4210 |
+
旅游景点
|
| 4211 |
+
锦标赛
|
| 4212 |
+
拖车
|
| 4213 |
+
毛巾
|
| 4214 |
+
毛巾杆
|
| 4215 |
+
大厦
|
| 4216 |
+
塔桥
|
| 4217 |
+
小镇
|
| 4218 |
+
城镇广场
|
| 4219 |
+
玩具
|
| 4220 |
+
玩具车
|
| 4221 |
+
玩具枪
|
| 4222 |
+
玩具店
|
| 4223 |
+
跑道
|
| 4224 |
+
拖拉机
|
| 4225 |
+
贸易
|
| 4226 |
+
传统
|
| 4227 |
+
传统的
|
| 4228 |
+
交通
|
| 4229 |
+
锥形交通路标
|
| 4230 |
+
交通拥堵
|
| 4231 |
+
交通堵塞
|
| 4232 |
+
交通标志
|
| 4233 |
+
小道
|
| 4234 |
+
预告片
|
| 4235 |
+
拖车
|
| 4236 |
+
火车
|
| 4237 |
+
火车桥
|
| 4238 |
+
火车车厢
|
| 4239 |
+
火车内部
|
| 4240 |
+
火车轨道
|
| 4241 |
+
火车窗口
|
| 4242 |
+
教练
|
| 4243 |
+
训练
|
| 4244 |
+
训练长椅
|
| 4245 |
+
训练场
|
| 4246 |
+
电车/手推车
|
| 4247 |
+
蹦床
|
| 4248 |
+
变形金刚
|
| 4249 |
+
透明度
|
| 4250 |
+
旅行
|
| 4251 |
+
托盘/碟子
|
| 4252 |
+
跑步机
|
| 4253 |
+
美食
|
| 4254 |
+
树
|
| 4255 |
+
树枝
|
| 4256 |
+
林场
|
| 4257 |
+
树蛙
|
| 4258 |
+
树屋
|
| 4259 |
+
树根
|
| 4260 |
+
树干
|
| 4261 |
+
试验
|
| 4262 |
+
三角形
|
| 4263 |
+
铁人三项
|
| 4264 |
+
部落
|
| 4265 |
+
支流
|
| 4266 |
+
戏法/特技
|
| 4267 |
+
三轮车
|
| 4268 |
+
修剪
|
| 4269 |
+
三人组
|
| 4270 |
+
三脚架
|
| 4271 |
+
长号
|
| 4272 |
+
部队
|
| 4273 |
+
奖杯
|
| 4274 |
+
奖杯
|
| 4275 |
+
热带
|
| 4276 |
+
鳟鱼
|
| 4277 |
+
卡车
|
| 4278 |
+
卡车司机
|
| 4279 |
+
浴缸
|
| 4280 |
+
管子
|
| 4281 |
+
拖船
|
| 4282 |
+
郁金香
|
| 4283 |
+
金枪鱼
|
| 4284 |
+
苔原
|
| 4285 |
+
隧道
|
| 4286 |
+
涡轮
|
| 4287 |
+
火鸡
|
| 4288 |
+
转动
|
| 4289 |
+
芜菁
|
| 4290 |
+
绿松石
|
| 4291 |
+
炮塔
|
| 4292 |
+
乌龟
|
| 4293 |
+
獠牙
|
| 4294 |
+
电视演员
|
| 4295 |
+
电视柜
|
| 4296 |
+
电视剧
|
| 4297 |
+
电视节目类型
|
| 4298 |
+
电视名人
|
| 4299 |
+
电视节目
|
| 4300 |
+
情景喜剧
|
| 4301 |
+
电视塔
|
| 4302 |
+
枝条
|
| 4303 |
+
黄昏
|
| 4304 |
+
双胞胎
|
| 4305 |
+
麻线
|
| 4306 |
+
扭
|
| 4307 |
+
类型
|
| 4308 |
+
键入
|
| 4309 |
+
打字机
|
| 4310 |
+
尤克里里
|
| 4311 |
+
奥特曼
|
| 4312 |
+
伞
|
| 4313 |
+
内衣
|
| 4314 |
+
水下
|
| 4315 |
+
独角兽
|
| 4316 |
+
制服
|
| 4317 |
+
宇宙
|
| 4318 |
+
大学
|
| 4319 |
+
向上
|
| 4320 |
+
城市
|
| 4321 |
+
尿壶
|
| 4322 |
+
瓮
|
| 4323 |
+
使用
|
| 4324 |
+
用具
|
| 4325 |
+
杂物间
|
| 4326 |
+
吸尘器/真空
|
| 4327 |
+
谷
|
| 4328 |
+
阀门
|
| 4329 |
+
吸血鬼
|
| 4330 |
+
货车
|
| 4331 |
+
香草
|
| 4332 |
+
虚荣
|
| 4333 |
+
种类
|
| 4334 |
+
花瓶/瓶
|
| 4335 |
+
金库
|
| 4336 |
+
矢量卡通插图
|
| 4337 |
+
矢量图标
|
| 4338 |
+
蔬菜
|
| 4339 |
+
菜园
|
| 4340 |
+
蔬菜市场
|
| 4341 |
+
植被
|
| 4342 |
+
车辆
|
| 4343 |
+
面纱
|
| 4344 |
+
静脉
|
| 4345 |
+
天鹅绒
|
| 4346 |
+
自动售货机
|
| 4347 |
+
小贩
|
| 4348 |
+
通风孔
|
| 4349 |
+
胡蜂属
|
| 4350 |
+
船
|
| 4351 |
+
背心
|
| 4352 |
+
兽医
|
| 4353 |
+
经验丰富的
|
| 4354 |
+
兽医办公室
|
| 4355 |
+
高架桥
|
| 4356 |
+
视频
|
| 4357 |
+
摄像机
|
| 4358 |
+
电子游戏
|
| 4359 |
+
录像带
|
| 4360 |
+
视镜
|
| 4361 |
+
守夜
|
| 4362 |
+
别墅
|
| 4363 |
+
村庄
|
| 4364 |
+
藤蔓
|
| 4365 |
+
醋
|
| 4366 |
+
葡萄园
|
| 4367 |
+
暴力
|
| 4368 |
+
紫罗兰色
|
| 4369 |
+
小提琴
|
| 4370 |
+
小提琴家
|
| 4371 |
+
中提琴演奏者
|
| 4372 |
+
愿景
|
| 4373 |
+
遮阳板
|
| 4374 |
+
伏特加
|
| 4375 |
+
火山
|
| 4376 |
+
排球
|
| 4377 |
+
排球场
|
| 4378 |
+
排球运动员
|
| 4379 |
+
志愿者
|
| 4380 |
+
航行
|
| 4381 |
+
秃鹰
|
| 4382 |
+
华夫饼干
|
| 4383 |
+
华夫饼机
|
| 4384 |
+
货车
|
| 4385 |
+
马车车轮
|
| 4386 |
+
腰
|
| 4387 |
+
服务员
|
| 4388 |
+
候机室
|
| 4389 |
+
等候室
|
| 4390 |
+
走
|
| 4391 |
+
步行
|
| 4392 |
+
手杖
|
| 4393 |
+
挂钟
|
| 4394 |
+
壁纸
|
| 4395 |
+
核桃
|
| 4396 |
+
海象
|
| 4397 |
+
战争
|
| 4398 |
+
仓库
|
| 4399 |
+
温暖的
|
| 4400 |
+
警告标志
|
| 4401 |
+
战士
|
| 4402 |
+
军舰
|
| 4403 |
+
疣猪
|
| 4404 |
+
洗
|
| 4405 |
+
洗衣机/垫圈
|
| 4406 |
+
洗
|
| 4407 |
+
洗衣机
|
| 4408 |
+
黄蜂
|
| 4409 |
+
浪费
|
| 4410 |
+
废物容器
|
| 4411 |
+
手表
|
| 4412 |
+
水
|
| 4413 |
+
水鸟
|
| 4414 |
+
水牛
|
| 4415 |
+
水冷却器
|
| 4416 |
+
水滴
|
| 4417 |
+
水景
|
| 4418 |
+
热水器
|
| 4419 |
+
水位
|
| 4420 |
+
荷花
|
| 4421 |
+
水上乐园
|
| 4422 |
+
水管
|
| 4423 |
+
净水器
|
| 4424 |
+
滑水板
|
| 4425 |
+
水上运动
|
| 4426 |
+
水面
|
| 4427 |
+
水塔
|
| 4428 |
+
水彩
|
| 4429 |
+
水彩插图
|
| 4430 |
+
水彩画
|
| 4431 |
+
瀑布
|
| 4432 |
+
喷壶
|
| 4433 |
+
水印叠加图章
|
| 4434 |
+
西瓜
|
| 4435 |
+
防水外套
|
| 4436 |
+
水路
|
| 4437 |
+
波浪
|
| 4438 |
+
蜡
|
| 4439 |
+
武器
|
| 4440 |
+
穿着
|
| 4441 |
+
天气
|
| 4442 |
+
叶片
|
| 4443 |
+
网
|
| 4444 |
+
摄像头
|
| 4445 |
+
婚礼
|
| 4446 |
+
结婚戒指
|
| 4447 |
+
婚礼花束
|
| 4448 |
+
结婚蛋糕
|
| 4449 |
+
新婚夫妇
|
| 4450 |
+
婚礼请柬
|
| 4451 |
+
婚礼派对
|
| 4452 |
+
婚纱照
|
| 4453 |
+
婚礼摄影师
|
| 4454 |
+
婚纱摄影
|
| 4455 |
+
婚宴
|
| 4456 |
+
楔
|
| 4457 |
+
杂草
|
| 4458 |
+
重量
|
| 4459 |
+
体重秤
|
| 4460 |
+
焊接工
|
| 4461 |
+
井
|
| 4462 |
+
西餐
|
| 4463 |
+
西餐厅
|
| 4464 |
+
湿
|
| 4465 |
+
吧台
|
| 4466 |
+
潜水衣
|
| 4467 |
+
湿地
|
| 4468 |
+
潜水服
|
| 4469 |
+
鲸鱼
|
| 4470 |
+
鲸鲨
|
| 4471 |
+
小麦
|
| 4472 |
+
麦田
|
| 4473 |
+
车轮
|
| 4474 |
+
轮椅
|
| 4475 |
+
后轮支撑车技
|
| 4476 |
+
生奶油
|
| 4477 |
+
搅拌器
|
| 4478 |
+
胡须
|
| 4479 |
+
威士忌
|
| 4480 |
+
哨子
|
| 4481 |
+
白色
|
| 4482 |
+
白宫
|
| 4483 |
+
白葡萄酒
|
| 4484 |
+
白板
|
| 4485 |
+
便门
|
| 4486 |
+
宽的
|
| 4487 |
+
挥动
|
| 4488 |
+
假发
|
| 4489 |
+
Wii
|
| 4490 |
+
Wii手柄
|
| 4491 |
+
荒野
|
| 4492 |
+
角马
|
| 4493 |
+
野火
|
| 4494 |
+
野花
|
| 4495 |
+
野生动物
|
| 4496 |
+
柳树
|
| 4497 |
+
风
|
| 4498 |
+
风铃
|
| 4499 |
+
风电场
|
| 4500 |
+
风力涡轮机
|
| 4501 |
+
风车
|
| 4502 |
+
窗户
|
| 4503 |
+
窗台花盆箱
|
| 4504 |
+
橱窗展示
|
| 4505 |
+
窗框
|
| 4506 |
+
纱窗
|
| 4507 |
+
靠窗的座位
|
| 4508 |
+
窗台
|
| 4509 |
+
雨刮器
|
| 4510 |
+
挡风玻璃
|
| 4511 |
+
有风的
|
| 4512 |
+
酒瓶
|
| 4513 |
+
冷酒器
|
| 4514 |
+
酒柜
|
| 4515 |
+
酒窖
|
| 4516 |
+
酒杯
|
| 4517 |
+
酒架
|
| 4518 |
+
品酒
|
| 4519 |
+
酒庄
|
| 4520 |
+
翅膀
|
| 4521 |
+
冬天
|
| 4522 |
+
冬瓜
|
| 4523 |
+
冬天的早晨
|
| 4524 |
+
冬季场景
|
| 4525 |
+
冬季运动
|
| 4526 |
+
冬季风暴
|
| 4527 |
+
电线
|
| 4528 |
+
紫藤
|
| 4529 |
+
巫婆
|
| 4530 |
+
女巫帽子
|
| 4531 |
+
炒锅
|
| 4532 |
+
狼
|
| 4533 |
+
女人
|
| 4534 |
+
木头
|
| 4535 |
+
林鸳鸯
|
| 4536 |
+
木地板
|
| 4537 |
+
木墙
|
| 4538 |
+
烧木炉
|
| 4539 |
+
木匙
|
| 4540 |
+
林地
|
| 4541 |
+
啄木鸟
|
| 4542 |
+
木工刨
|
| 4543 |
+
羊毛
|
| 4544 |
+
工作
|
| 4545 |
+
练习卡
|
| 4546 |
+
工作台
|
| 4547 |
+
工人
|
| 4548 |
+
工作场所
|
| 4549 |
+
车间
|
| 4550 |
+
世界
|
| 4551 |
+
蠕虫
|
| 4552 |
+
敬拜
|
| 4553 |
+
伤口
|
| 4554 |
+
包
|
| 4555 |
+
裹身裙
|
| 4556 |
+
包装纸
|
| 4557 |
+
搏斗
|
| 4558 |
+
摔跤手
|
| 4559 |
+
皱纹
|
| 4560 |
+
腕带
|
| 4561 |
+
写
|
| 4562 |
+
作家
|
| 4563 |
+
手写/字迹
|
| 4564 |
+
毛笔
|
| 4565 |
+
写字桌
|
| 4566 |
+
游艇
|
| 4567 |
+
牦牛
|
| 4568 |
+
院子
|
| 4569 |
+
黄色
|
| 4570 |
+
瑜伽
|
| 4571 |
+
瑜伽垫
|
| 4572 |
+
酸奶
|
| 4573 |
+
轭
|
| 4574 |
+
蛋黄
|
| 4575 |
+
青年
|
| 4576 |
+
青年旅馆
|
| 4577 |
+
蒙古包
|
| 4578 |
+
斑马
|
| 4579 |
+
斑马线
|
| 4580 |
+
禅意花园
|
| 4581 |
+
拉链
|
| 4582 |
+
拉链
|
| 4583 |
+
僵尸
|
| 4584 |
+
粽子
|
| 4585 |
+
动物园
|
ram/data/ram_tag_list_threshold.txt
ADDED
|
@@ -0,0 +1,4585 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
0.65
|
| 2 |
+
0.65
|
| 3 |
+
0.65
|
| 4 |
+
0.65
|
| 5 |
+
0.65
|
| 6 |
+
0.65
|
| 7 |
+
0.65
|
| 8 |
+
0.8
|
| 9 |
+
0.71
|
| 10 |
+
0.75
|
| 11 |
+
0.65
|
| 12 |
+
0.65
|
| 13 |
+
0.65
|
| 14 |
+
0.8
|
| 15 |
+
0.65
|
| 16 |
+
0.8
|
| 17 |
+
0.8
|
| 18 |
+
0.65
|
| 19 |
+
0.65
|
| 20 |
+
0.65
|
| 21 |
+
0.65
|
| 22 |
+
0.8
|
| 23 |
+
0.65
|
| 24 |
+
0.8
|
| 25 |
+
0.8
|
| 26 |
+
0.65
|
| 27 |
+
0.65
|
| 28 |
+
0.65
|
| 29 |
+
0.65
|
| 30 |
+
0.65
|
| 31 |
+
0.65
|
| 32 |
+
0.65
|
| 33 |
+
0.65
|
| 34 |
+
0.65
|
| 35 |
+
0.65
|
| 36 |
+
0.65
|
| 37 |
+
0.8
|
| 38 |
+
0.65
|
| 39 |
+
0.65
|
| 40 |
+
0.9
|
| 41 |
+
0.65
|
| 42 |
+
0.9
|
| 43 |
+
0.65
|
| 44 |
+
0.65
|
| 45 |
+
0.65
|
| 46 |
+
0.65
|
| 47 |
+
0.8
|
| 48 |
+
0.65
|
| 49 |
+
0.65
|
| 50 |
+
0.65
|
| 51 |
+
0.65
|
| 52 |
+
0.65
|
| 53 |
+
0.61
|
| 54 |
+
0.65
|
| 55 |
+
0.65
|
| 56 |
+
0.65
|
| 57 |
+
0.65
|
| 58 |
+
0.65
|
| 59 |
+
0.8
|
| 60 |
+
0.65
|
| 61 |
+
0.65
|
| 62 |
+
0.65
|
| 63 |
+
0.65
|
| 64 |
+
0.65
|
| 65 |
+
0.65
|
| 66 |
+
0.65
|
| 67 |
+
0.65
|
| 68 |
+
0.65
|
| 69 |
+
0.65
|
| 70 |
+
0.65
|
| 71 |
+
0.65
|
| 72 |
+
0.65
|
| 73 |
+
0.65
|
| 74 |
+
0.8
|
| 75 |
+
0.65
|
| 76 |
+
0.8
|
| 77 |
+
0.8
|
| 78 |
+
0.7
|
| 79 |
+
0.65
|
| 80 |
+
0.65
|
| 81 |
+
0.8
|
| 82 |
+
0.65
|
| 83 |
+
0.65
|
| 84 |
+
0.8
|
| 85 |
+
0.65
|
| 86 |
+
0.65
|
| 87 |
+
0.65
|
| 88 |
+
0.65
|
| 89 |
+
0.65
|
| 90 |
+
0.82
|
| 91 |
+
0.8
|
| 92 |
+
0.65
|
| 93 |
+
0.65
|
| 94 |
+
0.8
|
| 95 |
+
0.65
|
| 96 |
+
0.8
|
| 97 |
+
0.65
|
| 98 |
+
0.65
|
| 99 |
+
0.65
|
| 100 |
+
0.65
|
| 101 |
+
0.65
|
| 102 |
+
0.9
|
| 103 |
+
0.65
|
| 104 |
+
0.65
|
| 105 |
+
0.65
|
| 106 |
+
0.65
|
| 107 |
+
0.65
|
| 108 |
+
0.65
|
| 109 |
+
0.65
|
| 110 |
+
0.65
|
| 111 |
+
0.65
|
| 112 |
+
0.65
|
| 113 |
+
0.8
|
| 114 |
+
0.65
|
| 115 |
+
0.65
|
| 116 |
+
0.65
|
| 117 |
+
0.65
|
| 118 |
+
0.8
|
| 119 |
+
0.65
|
| 120 |
+
0.65
|
| 121 |
+
0.65
|
| 122 |
+
0.65
|
| 123 |
+
0.65
|
| 124 |
+
0.8
|
| 125 |
+
0.65
|
| 126 |
+
0.65
|
| 127 |
+
0.8
|
| 128 |
+
0.65
|
| 129 |
+
0.65
|
| 130 |
+
0.8
|
| 131 |
+
0.65
|
| 132 |
+
0.65
|
| 133 |
+
0.65
|
| 134 |
+
0.65
|
| 135 |
+
0.65
|
| 136 |
+
0.8
|
| 137 |
+
0.65
|
| 138 |
+
0.65
|
| 139 |
+
0.65
|
| 140 |
+
0.65
|
| 141 |
+
0.8
|
| 142 |
+
0.8
|
| 143 |
+
0.65
|
| 144 |
+
0.85
|
| 145 |
+
0.8
|
| 146 |
+
0.65
|
| 147 |
+
0.65
|
| 148 |
+
0.65
|
| 149 |
+
0.65
|
| 150 |
+
0.8
|
| 151 |
+
0.65
|
| 152 |
+
0.8
|
| 153 |
+
0.65
|
| 154 |
+
0.65
|
| 155 |
+
0.65
|
| 156 |
+
0.65
|
| 157 |
+
0.65
|
| 158 |
+
0.65
|
| 159 |
+
0.65
|
| 160 |
+
0.65
|
| 161 |
+
0.65
|
| 162 |
+
0.65
|
| 163 |
+
0.65
|
| 164 |
+
0.65
|
| 165 |
+
0.8
|
| 166 |
+
0.65
|
| 167 |
+
0.65
|
| 168 |
+
0.65
|
| 169 |
+
0.65
|
| 170 |
+
0.65
|
| 171 |
+
0.65
|
| 172 |
+
0.65
|
| 173 |
+
0.8
|
| 174 |
+
0.65
|
| 175 |
+
0.65
|
| 176 |
+
0.77
|
| 177 |
+
0.65
|
| 178 |
+
0.65
|
| 179 |
+
0.65
|
| 180 |
+
0.9
|
| 181 |
+
0.65
|
| 182 |
+
0.65
|
| 183 |
+
0.65
|
| 184 |
+
0.65
|
| 185 |
+
0.65
|
| 186 |
+
0.65
|
| 187 |
+
0.65
|
| 188 |
+
0.65
|
| 189 |
+
0.65
|
| 190 |
+
0.8
|
| 191 |
+
0.65
|
| 192 |
+
0.89
|
| 193 |
+
0.65
|
| 194 |
+
0.8
|
| 195 |
+
0.65
|
| 196 |
+
0.65
|
| 197 |
+
0.65
|
| 198 |
+
0.65
|
| 199 |
+
0.65
|
| 200 |
+
0.65
|
| 201 |
+
0.8
|
| 202 |
+
0.65
|
| 203 |
+
0.65
|
| 204 |
+
0.65
|
| 205 |
+
0.65
|
| 206 |
+
0.65
|
| 207 |
+
0.78
|
| 208 |
+
0.8
|
| 209 |
+
0.65
|
| 210 |
+
0.65
|
| 211 |
+
0.65
|
| 212 |
+
0.65
|
| 213 |
+
0.65
|
| 214 |
+
0.65
|
| 215 |
+
0.65
|
| 216 |
+
0.8
|
| 217 |
+
0.65
|
| 218 |
+
0.65
|
| 219 |
+
0.9
|
| 220 |
+
0.8
|
| 221 |
+
0.65
|
| 222 |
+
0.65
|
| 223 |
+
0.65
|
| 224 |
+
0.65
|
| 225 |
+
0.65
|
| 226 |
+
0.65
|
| 227 |
+
0.8
|
| 228 |
+
0.65
|
| 229 |
+
0.65
|
| 230 |
+
0.65
|
| 231 |
+
0.65
|
| 232 |
+
0.65
|
| 233 |
+
0.65
|
| 234 |
+
0.65
|
| 235 |
+
0.65
|
| 236 |
+
0.65
|
| 237 |
+
0.65
|
| 238 |
+
0.65
|
| 239 |
+
0.8
|
| 240 |
+
0.8
|
| 241 |
+
0.65
|
| 242 |
+
0.65
|
| 243 |
+
0.65
|
| 244 |
+
0.65
|
| 245 |
+
0.65
|
| 246 |
+
0.8
|
| 247 |
+
0.65
|
| 248 |
+
0.8
|
| 249 |
+
0.65
|
| 250 |
+
0.9
|
| 251 |
+
0.65
|
| 252 |
+
0.83
|
| 253 |
+
0.65
|
| 254 |
+
0.65
|
| 255 |
+
0.65
|
| 256 |
+
0.8
|
| 257 |
+
0.65
|
| 258 |
+
0.65
|
| 259 |
+
0.8
|
| 260 |
+
0.65
|
| 261 |
+
0.65
|
| 262 |
+
0.79
|
| 263 |
+
0.65
|
| 264 |
+
0.65
|
| 265 |
+
0.8
|
| 266 |
+
0.65
|
| 267 |
+
0.65
|
| 268 |
+
0.65
|
| 269 |
+
0.89
|
| 270 |
+
0.65
|
| 271 |
+
0.65
|
| 272 |
+
0.65
|
| 273 |
+
0.65
|
| 274 |
+
0.65
|
| 275 |
+
0.9
|
| 276 |
+
0.65
|
| 277 |
+
0.65
|
| 278 |
+
0.86
|
| 279 |
+
0.65
|
| 280 |
+
0.65
|
| 281 |
+
0.65
|
| 282 |
+
0.65
|
| 283 |
+
0.65
|
| 284 |
+
0.65
|
| 285 |
+
0.65
|
| 286 |
+
0.65
|
| 287 |
+
0.65
|
| 288 |
+
0.8
|
| 289 |
+
0.65
|
| 290 |
+
0.65
|
| 291 |
+
0.8
|
| 292 |
+
0.65
|
| 293 |
+
0.65
|
| 294 |
+
0.65
|
| 295 |
+
0.65
|
| 296 |
+
0.79
|
| 297 |
+
0.65
|
| 298 |
+
0.63
|
| 299 |
+
0.65
|
| 300 |
+
0.87
|
| 301 |
+
0.8
|
| 302 |
+
0.46
|
| 303 |
+
0.65
|
| 304 |
+
0.65
|
| 305 |
+
0.65
|
| 306 |
+
0.65
|
| 307 |
+
0.65
|
| 308 |
+
0.65
|
| 309 |
+
0.8
|
| 310 |
+
0.65
|
| 311 |
+
0.9
|
| 312 |
+
0.65
|
| 313 |
+
0.65
|
| 314 |
+
0.9
|
| 315 |
+
0.65
|
| 316 |
+
0.65
|
| 317 |
+
0.8
|
| 318 |
+
0.65
|
| 319 |
+
0.65
|
| 320 |
+
0.65
|
| 321 |
+
0.65
|
| 322 |
+
0.65
|
| 323 |
+
0.65
|
| 324 |
+
0.65
|
| 325 |
+
0.8
|
| 326 |
+
0.65
|
| 327 |
+
0.65
|
| 328 |
+
0.65
|
| 329 |
+
0.65
|
| 330 |
+
0.65
|
| 331 |
+
0.8
|
| 332 |
+
0.65
|
| 333 |
+
0.65
|
| 334 |
+
0.65
|
| 335 |
+
0.65
|
| 336 |
+
0.65
|
| 337 |
+
0.65
|
| 338 |
+
0.65
|
| 339 |
+
0.8
|
| 340 |
+
0.65
|
| 341 |
+
0.65
|
| 342 |
+
0.65
|
| 343 |
+
0.8
|
| 344 |
+
0.65
|
| 345 |
+
0.65
|
| 346 |
+
0.8
|
| 347 |
+
0.65
|
| 348 |
+
0.65
|
| 349 |
+
0.65
|
| 350 |
+
0.65
|
| 351 |
+
0.9
|
| 352 |
+
0.65
|
| 353 |
+
0.65
|
| 354 |
+
0.65
|
| 355 |
+
0.65
|
| 356 |
+
0.65
|
| 357 |
+
0.65
|
| 358 |
+
0.65
|
| 359 |
+
0.8
|
| 360 |
+
0.65
|
| 361 |
+
0.65
|
| 362 |
+
0.65
|
| 363 |
+
0.65
|
| 364 |
+
0.65
|
| 365 |
+
0.65
|
| 366 |
+
0.65
|
| 367 |
+
0.9
|
| 368 |
+
0.65
|
| 369 |
+
0.8
|
| 370 |
+
0.65
|
| 371 |
+
0.8
|
| 372 |
+
0.8
|
| 373 |
+
0.8
|
| 374 |
+
0.65
|
| 375 |
+
0.65
|
| 376 |
+
0.84
|
| 377 |
+
0.65
|
| 378 |
+
0.65
|
| 379 |
+
0.79
|
| 380 |
+
0.65
|
| 381 |
+
0.65
|
| 382 |
+
0.65
|
| 383 |
+
0.65
|
| 384 |
+
0.8
|
| 385 |
+
0.65
|
| 386 |
+
0.65
|
| 387 |
+
0.65
|
| 388 |
+
0.65
|
| 389 |
+
0.8
|
| 390 |
+
0.65
|
| 391 |
+
0.65
|
| 392 |
+
0.65
|
| 393 |
+
0.65
|
| 394 |
+
0.65
|
| 395 |
+
0.65
|
| 396 |
+
0.65
|
| 397 |
+
0.8
|
| 398 |
+
0.81
|
| 399 |
+
0.65
|
| 400 |
+
0.8
|
| 401 |
+
0.65
|
| 402 |
+
0.65
|
| 403 |
+
0.9
|
| 404 |
+
0.65
|
| 405 |
+
0.65
|
| 406 |
+
0.65
|
| 407 |
+
0.65
|
| 408 |
+
0.8
|
| 409 |
+
0.65
|
| 410 |
+
0.65
|
| 411 |
+
0.65
|
| 412 |
+
0.65
|
| 413 |
+
0.65
|
| 414 |
+
0.65
|
| 415 |
+
0.9
|
| 416 |
+
0.65
|
| 417 |
+
0.65
|
| 418 |
+
0.8
|
| 419 |
+
0.65
|
| 420 |
+
0.65
|
| 421 |
+
0.65
|
| 422 |
+
0.65
|
| 423 |
+
0.65
|
| 424 |
+
0.65
|
| 425 |
+
0.9
|
| 426 |
+
0.65
|
| 427 |
+
0.65
|
| 428 |
+
0.65
|
| 429 |
+
0.87
|
| 430 |
+
0.65
|
| 431 |
+
0.65
|
| 432 |
+
0.65
|
| 433 |
+
0.65
|
| 434 |
+
0.65
|
| 435 |
+
0.65
|
| 436 |
+
0.65
|
| 437 |
+
0.65
|
| 438 |
+
0.83
|
| 439 |
+
0.65
|
| 440 |
+
0.65
|
| 441 |
+
0.65
|
| 442 |
+
0.65
|
| 443 |
+
0.65
|
| 444 |
+
0.65
|
| 445 |
+
0.65
|
| 446 |
+
0.77
|
| 447 |
+
0.87
|
| 448 |
+
0.65
|
| 449 |
+
0.65
|
| 450 |
+
0.8
|
| 451 |
+
0.8
|
| 452 |
+
0.65
|
| 453 |
+
0.65
|
| 454 |
+
0.65
|
| 455 |
+
0.65
|
| 456 |
+
0.85
|
| 457 |
+
0.65
|
| 458 |
+
0.68
|
| 459 |
+
0.65
|
| 460 |
+
0.8
|
| 461 |
+
0.65
|
| 462 |
+
0.65
|
| 463 |
+
0.75
|
| 464 |
+
0.8
|
| 465 |
+
0.65
|
| 466 |
+
0.65
|
| 467 |
+
0.65
|
| 468 |
+
0.65
|
| 469 |
+
0.65
|
| 470 |
+
0.65
|
| 471 |
+
0.65
|
| 472 |
+
0.8
|
| 473 |
+
0.65
|
| 474 |
+
0.65
|
| 475 |
+
0.8
|
| 476 |
+
0.8
|
| 477 |
+
0.8
|
| 478 |
+
0.8
|
| 479 |
+
0.79
|
| 480 |
+
0.65
|
| 481 |
+
0.85
|
| 482 |
+
0.65
|
| 483 |
+
0.65
|
| 484 |
+
0.65
|
| 485 |
+
0.9
|
| 486 |
+
0.65
|
| 487 |
+
0.89
|
| 488 |
+
0.8
|
| 489 |
+
0.65
|
| 490 |
+
0.65
|
| 491 |
+
0.65
|
| 492 |
+
0.76
|
| 493 |
+
0.65
|
| 494 |
+
0.65
|
| 495 |
+
0.65
|
| 496 |
+
0.65
|
| 497 |
+
0.65
|
| 498 |
+
0.65
|
| 499 |
+
1
|
| 500 |
+
0.65
|
| 501 |
+
0.65
|
| 502 |
+
0.65
|
| 503 |
+
0.65
|
| 504 |
+
0.65
|
| 505 |
+
0.65
|
| 506 |
+
0.65
|
| 507 |
+
0.65
|
| 508 |
+
0.65
|
| 509 |
+
0.8
|
| 510 |
+
0.65
|
| 511 |
+
0.65
|
| 512 |
+
0.65
|
| 513 |
+
0.9
|
| 514 |
+
0.65
|
| 515 |
+
0.89
|
| 516 |
+
0.7
|
| 517 |
+
0.65
|
| 518 |
+
0.65
|
| 519 |
+
0.65
|
| 520 |
+
0.65
|
| 521 |
+
0.65
|
| 522 |
+
0.8
|
| 523 |
+
0.8
|
| 524 |
+
0.65
|
| 525 |
+
0.65
|
| 526 |
+
0.71
|
| 527 |
+
0.65
|
| 528 |
+
0.65
|
| 529 |
+
0.65
|
| 530 |
+
0.65
|
| 531 |
+
0.65
|
| 532 |
+
0.8
|
| 533 |
+
0.65
|
| 534 |
+
0.65
|
| 535 |
+
0.8
|
| 536 |
+
0.65
|
| 537 |
+
0.65
|
| 538 |
+
0.9
|
| 539 |
+
0.65
|
| 540 |
+
0.65
|
| 541 |
+
0.65
|
| 542 |
+
0.65
|
| 543 |
+
0.8
|
| 544 |
+
0.65
|
| 545 |
+
0.65
|
| 546 |
+
0.65
|
| 547 |
+
0.65
|
| 548 |
+
0.65
|
| 549 |
+
0.65
|
| 550 |
+
0.65
|
| 551 |
+
0.8
|
| 552 |
+
0.65
|
| 553 |
+
0.65
|
| 554 |
+
0.8
|
| 555 |
+
0.8
|
| 556 |
+
0.65
|
| 557 |
+
0.65
|
| 558 |
+
0.8
|
| 559 |
+
0.8
|
| 560 |
+
0.65
|
| 561 |
+
0.65
|
| 562 |
+
0.65
|
| 563 |
+
0.8
|
| 564 |
+
0.65
|
| 565 |
+
0.8
|
| 566 |
+
0.8
|
| 567 |
+
0.65
|
| 568 |
+
0.8
|
| 569 |
+
0.65
|
| 570 |
+
0.8
|
| 571 |
+
0.8
|
| 572 |
+
0.9
|
| 573 |
+
0.65
|
| 574 |
+
0.85
|
| 575 |
+
0.8
|
| 576 |
+
0.8
|
| 577 |
+
0.8
|
| 578 |
+
0.9
|
| 579 |
+
0.65
|
| 580 |
+
0.65
|
| 581 |
+
0.8
|
| 582 |
+
0.65
|
| 583 |
+
0.65
|
| 584 |
+
0.65
|
| 585 |
+
0.75
|
| 586 |
+
0.65
|
| 587 |
+
0.65
|
| 588 |
+
0.65
|
| 589 |
+
0.65
|
| 590 |
+
0.65
|
| 591 |
+
0.65
|
| 592 |
+
0.65
|
| 593 |
+
0.65
|
| 594 |
+
0.8
|
| 595 |
+
0.65
|
| 596 |
+
0.65
|
| 597 |
+
0.65
|
| 598 |
+
0.65
|
| 599 |
+
0.65
|
| 600 |
+
0.65
|
| 601 |
+
0.65
|
| 602 |
+
0.65
|
| 603 |
+
0.65
|
| 604 |
+
0.65
|
| 605 |
+
0.65
|
| 606 |
+
0.65
|
| 607 |
+
0.65
|
| 608 |
+
0.65
|
| 609 |
+
0.65
|
| 610 |
+
0.65
|
| 611 |
+
0.65
|
| 612 |
+
0.8
|
| 613 |
+
0.65
|
| 614 |
+
0.8
|
| 615 |
+
0.65
|
| 616 |
+
0.65
|
| 617 |
+
0.65
|
| 618 |
+
0.63
|
| 619 |
+
0.65
|
| 620 |
+
0.65
|
| 621 |
+
0.65
|
| 622 |
+
0.65
|
| 623 |
+
0.65
|
| 624 |
+
0.65
|
| 625 |
+
0.65
|
| 626 |
+
0.65
|
| 627 |
+
0.65
|
| 628 |
+
0.65
|
| 629 |
+
0.65
|
| 630 |
+
0.8
|
| 631 |
+
0.65
|
| 632 |
+
0.65
|
| 633 |
+
0.65
|
| 634 |
+
0.65
|
| 635 |
+
0.8
|
| 636 |
+
0.65
|
| 637 |
+
0.65
|
| 638 |
+
0.65
|
| 639 |
+
0.8
|
| 640 |
+
0.65
|
| 641 |
+
0.88
|
| 642 |
+
0.65
|
| 643 |
+
0.65
|
| 644 |
+
0.65
|
| 645 |
+
0.65
|
| 646 |
+
0.65
|
| 647 |
+
0.8
|
| 648 |
+
0.8
|
| 649 |
+
0.71
|
| 650 |
+
0.65
|
| 651 |
+
0.65
|
| 652 |
+
0.65
|
| 653 |
+
0.8
|
| 654 |
+
0.8
|
| 655 |
+
0.65
|
| 656 |
+
0.65
|
| 657 |
+
0.65
|
| 658 |
+
0.65
|
| 659 |
+
0.65
|
| 660 |
+
0.8
|
| 661 |
+
0.9
|
| 662 |
+
0.65
|
| 663 |
+
0.8
|
| 664 |
+
0.65
|
| 665 |
+
0.65
|
| 666 |
+
0.65
|
| 667 |
+
0.65
|
| 668 |
+
0.65
|
| 669 |
+
0.8
|
| 670 |
+
0.65
|
| 671 |
+
0.71
|
| 672 |
+
0.65
|
| 673 |
+
0.8
|
| 674 |
+
0.76
|
| 675 |
+
0.85
|
| 676 |
+
0.8
|
| 677 |
+
0.65
|
| 678 |
+
0.65
|
| 679 |
+
0.8
|
| 680 |
+
0.65
|
| 681 |
+
0.79
|
| 682 |
+
0.65
|
| 683 |
+
0.75
|
| 684 |
+
0.65
|
| 685 |
+
0.8
|
| 686 |
+
0.65
|
| 687 |
+
0.86
|
| 688 |
+
0.65
|
| 689 |
+
0.65
|
| 690 |
+
0.9
|
| 691 |
+
0.9
|
| 692 |
+
0.65
|
| 693 |
+
0.65
|
| 694 |
+
0.65
|
| 695 |
+
0.65
|
| 696 |
+
0.65
|
| 697 |
+
0.73
|
| 698 |
+
0.65
|
| 699 |
+
0.65
|
| 700 |
+
0.65
|
| 701 |
+
0.65
|
| 702 |
+
0.8
|
| 703 |
+
0.65
|
| 704 |
+
0.65
|
| 705 |
+
0.9
|
| 706 |
+
0.65
|
| 707 |
+
0.85
|
| 708 |
+
0.65
|
| 709 |
+
0.65
|
| 710 |
+
0.65
|
| 711 |
+
0.65
|
| 712 |
+
0.8
|
| 713 |
+
0.75
|
| 714 |
+
0.65
|
| 715 |
+
0.65
|
| 716 |
+
0.65
|
| 717 |
+
0.65
|
| 718 |
+
0.8
|
| 719 |
+
0.85
|
| 720 |
+
0.8
|
| 721 |
+
0.65
|
| 722 |
+
0.65
|
| 723 |
+
0.65
|
| 724 |
+
0.65
|
| 725 |
+
0.65
|
| 726 |
+
0.65
|
| 727 |
+
0.77
|
| 728 |
+
0.65
|
| 729 |
+
0.65
|
| 730 |
+
0.65
|
| 731 |
+
0.65
|
| 732 |
+
0.65
|
| 733 |
+
0.86
|
| 734 |
+
0.65
|
| 735 |
+
0.65
|
| 736 |
+
0.65
|
| 737 |
+
0.65
|
| 738 |
+
0.65
|
| 739 |
+
0.8
|
| 740 |
+
0.65
|
| 741 |
+
0.6
|
| 742 |
+
0.65
|
| 743 |
+
0.65
|
| 744 |
+
0.65
|
| 745 |
+
0.65
|
| 746 |
+
0.65
|
| 747 |
+
0.65
|
| 748 |
+
0.65
|
| 749 |
+
0.65
|
| 750 |
+
0.65
|
| 751 |
+
0.65
|
| 752 |
+
0.74
|
| 753 |
+
0.65
|
| 754 |
+
0.65
|
| 755 |
+
0.67
|
| 756 |
+
0.65
|
| 757 |
+
0.65
|
| 758 |
+
0.8
|
| 759 |
+
0.65
|
| 760 |
+
0.65
|
| 761 |
+
0.85
|
| 762 |
+
0.65
|
| 763 |
+
0.8
|
| 764 |
+
0.65
|
| 765 |
+
0.65
|
| 766 |
+
0.84
|
| 767 |
+
0.8
|
| 768 |
+
0.8
|
| 769 |
+
0.8
|
| 770 |
+
0.8
|
| 771 |
+
0.8
|
| 772 |
+
0.65
|
| 773 |
+
0.65
|
| 774 |
+
0.65
|
| 775 |
+
0.65
|
| 776 |
+
0.65
|
| 777 |
+
0.65
|
| 778 |
+
0.8
|
| 779 |
+
0.65
|
| 780 |
+
0.9
|
| 781 |
+
0.9
|
| 782 |
+
0.65
|
| 783 |
+
0.65
|
| 784 |
+
0.65
|
| 785 |
+
0.65
|
| 786 |
+
0.65
|
| 787 |
+
0.65
|
| 788 |
+
0.65
|
| 789 |
+
0.8
|
| 790 |
+
0.65
|
| 791 |
+
0.65
|
| 792 |
+
0.65
|
| 793 |
+
0.8
|
| 794 |
+
0.89
|
| 795 |
+
0.65
|
| 796 |
+
0.65
|
| 797 |
+
0.65
|
| 798 |
+
0.83
|
| 799 |
+
0.65
|
| 800 |
+
0.65
|
| 801 |
+
0.65
|
| 802 |
+
0.65
|
| 803 |
+
0.6
|
| 804 |
+
0.65
|
| 805 |
+
0.8
|
| 806 |
+
0.8
|
| 807 |
+
0.8
|
| 808 |
+
0.65
|
| 809 |
+
0.65
|
| 810 |
+
0.89
|
| 811 |
+
0.65
|
| 812 |
+
0.65
|
| 813 |
+
0.65
|
| 814 |
+
0.65
|
| 815 |
+
0.8
|
| 816 |
+
0.65
|
| 817 |
+
0.65
|
| 818 |
+
0.8
|
| 819 |
+
0.65
|
| 820 |
+
0.8
|
| 821 |
+
0.65
|
| 822 |
+
0.77
|
| 823 |
+
0.65
|
| 824 |
+
0.65
|
| 825 |
+
0.65
|
| 826 |
+
0.65
|
| 827 |
+
0.65
|
| 828 |
+
0.65
|
| 829 |
+
0.65
|
| 830 |
+
0.65
|
| 831 |
+
0.65
|
| 832 |
+
0.65
|
| 833 |
+
0.65
|
| 834 |
+
0.65
|
| 835 |
+
0.65
|
| 836 |
+
0.65
|
| 837 |
+
0.65
|
| 838 |
+
0.65
|
| 839 |
+
0.65
|
| 840 |
+
0.65
|
| 841 |
+
0.65
|
| 842 |
+
0.65
|
| 843 |
+
0.65
|
| 844 |
+
0.65
|
| 845 |
+
0.65
|
| 846 |
+
0.65
|
| 847 |
+
0.87
|
| 848 |
+
0.65
|
| 849 |
+
0.65
|
| 850 |
+
0.65
|
| 851 |
+
0.65
|
| 852 |
+
0.65
|
| 853 |
+
0.65
|
| 854 |
+
0.65
|
| 855 |
+
0.65
|
| 856 |
+
0.74
|
| 857 |
+
0.65
|
| 858 |
+
0.65
|
| 859 |
+
0.66
|
| 860 |
+
0.89
|
| 861 |
+
0.65
|
| 862 |
+
0.65
|
| 863 |
+
0.65
|
| 864 |
+
0.65
|
| 865 |
+
0.65
|
| 866 |
+
0.65
|
| 867 |
+
0.65
|
| 868 |
+
0.65
|
| 869 |
+
0.65
|
| 870 |
+
0.65
|
| 871 |
+
0.65
|
| 872 |
+
0.9
|
| 873 |
+
0.65
|
| 874 |
+
0.65
|
| 875 |
+
0.65
|
| 876 |
+
0.65
|
| 877 |
+
0.65
|
| 878 |
+
0.65
|
| 879 |
+
0.65
|
| 880 |
+
0.84
|
| 881 |
+
0.65
|
| 882 |
+
0.65
|
| 883 |
+
0.65
|
| 884 |
+
0.65
|
| 885 |
+
0.65
|
| 886 |
+
0.65
|
| 887 |
+
0.65
|
| 888 |
+
0.65
|
| 889 |
+
0.65
|
| 890 |
+
0.65
|
| 891 |
+
0.65
|
| 892 |
+
0.65
|
| 893 |
+
0.65
|
| 894 |
+
0.65
|
| 895 |
+
0.65
|
| 896 |
+
0.8
|
| 897 |
+
0.65
|
| 898 |
+
0.65
|
| 899 |
+
0.65
|
| 900 |
+
0.65
|
| 901 |
+
0.65
|
| 902 |
+
0.65
|
| 903 |
+
0.65
|
| 904 |
+
0.65
|
| 905 |
+
0.65
|
| 906 |
+
0.8
|
| 907 |
+
0.65
|
| 908 |
+
0.88
|
| 909 |
+
0.65
|
| 910 |
+
0.65
|
| 911 |
+
0.8
|
| 912 |
+
0.65
|
| 913 |
+
0.65
|
| 914 |
+
0.7
|
| 915 |
+
0.65
|
| 916 |
+
0.65
|
| 917 |
+
0.65
|
| 918 |
+
0.9
|
| 919 |
+
0.65
|
| 920 |
+
0.9
|
| 921 |
+
0.65
|
| 922 |
+
0.65
|
| 923 |
+
0.65
|
| 924 |
+
0.65
|
| 925 |
+
0.65
|
| 926 |
+
0.65
|
| 927 |
+
0.65
|
| 928 |
+
0.8
|
| 929 |
+
0.8
|
| 930 |
+
0.65
|
| 931 |
+
0.8
|
| 932 |
+
0.65
|
| 933 |
+
0.65
|
| 934 |
+
0.65
|
| 935 |
+
0.65
|
| 936 |
+
0.65
|
| 937 |
+
0.8
|
| 938 |
+
0.65
|
| 939 |
+
0.65
|
| 940 |
+
0.65
|
| 941 |
+
0.65
|
| 942 |
+
0.65
|
| 943 |
+
0.65
|
| 944 |
+
0.82
|
| 945 |
+
0.65
|
| 946 |
+
0.65
|
| 947 |
+
0.65
|
| 948 |
+
0.65
|
| 949 |
+
0.65
|
| 950 |
+
0.8
|
| 951 |
+
0.8
|
| 952 |
+
0.9
|
| 953 |
+
0.65
|
| 954 |
+
0.65
|
| 955 |
+
0.65
|
| 956 |
+
0.65
|
| 957 |
+
0.8
|
| 958 |
+
0.65
|
| 959 |
+
0.65
|
| 960 |
+
0.65
|
| 961 |
+
0.8
|
| 962 |
+
0.65
|
| 963 |
+
0.65
|
| 964 |
+
0.65
|
| 965 |
+
0.8
|
| 966 |
+
0.8
|
| 967 |
+
0.65
|
| 968 |
+
0.65
|
| 969 |
+
0.65
|
| 970 |
+
0.65
|
| 971 |
+
0.65
|
| 972 |
+
0.65
|
| 973 |
+
0.65
|
| 974 |
+
0.65
|
| 975 |
+
0.65
|
| 976 |
+
0.65
|
| 977 |
+
0.8
|
| 978 |
+
0.8
|
| 979 |
+
0.65
|
| 980 |
+
0.8
|
| 981 |
+
0.8
|
| 982 |
+
0.65
|
| 983 |
+
0.65
|
| 984 |
+
0.65
|
| 985 |
+
0.75
|
| 986 |
+
0.65
|
| 987 |
+
0.7
|
| 988 |
+
0.9
|
| 989 |
+
0.8
|
| 990 |
+
0.65
|
| 991 |
+
0.65
|
| 992 |
+
0.65
|
| 993 |
+
0.65
|
| 994 |
+
0.65
|
| 995 |
+
0.8
|
| 996 |
+
0.8
|
| 997 |
+
0.65
|
| 998 |
+
0.65
|
| 999 |
+
0.65
|
| 1000 |
+
0.65
|
| 1001 |
+
0.65
|
| 1002 |
+
0.65
|
| 1003 |
+
0.65
|
| 1004 |
+
0.88
|
| 1005 |
+
0.65
|
| 1006 |
+
0.65
|
| 1007 |
+
1
|
| 1008 |
+
0.65
|
| 1009 |
+
0.65
|
| 1010 |
+
0.65
|
| 1011 |
+
0.8
|
| 1012 |
+
0.65
|
| 1013 |
+
0.8
|
| 1014 |
+
0.65
|
| 1015 |
+
0.65
|
| 1016 |
+
0.65
|
| 1017 |
+
0.65
|
| 1018 |
+
0.65
|
| 1019 |
+
0.8
|
| 1020 |
+
0.8
|
| 1021 |
+
0.65
|
| 1022 |
+
0.65
|
| 1023 |
+
0.8
|
| 1024 |
+
0.65
|
| 1025 |
+
0.65
|
| 1026 |
+
0.8
|
| 1027 |
+
0.8
|
| 1028 |
+
0.65
|
| 1029 |
+
0.65
|
| 1030 |
+
0.8
|
| 1031 |
+
0.8
|
| 1032 |
+
0.65
|
| 1033 |
+
0.65
|
| 1034 |
+
0.65
|
| 1035 |
+
0.65
|
| 1036 |
+
0.65
|
| 1037 |
+
0.65
|
| 1038 |
+
0.8
|
| 1039 |
+
0.65
|
| 1040 |
+
0.65
|
| 1041 |
+
0.65
|
| 1042 |
+
0.65
|
| 1043 |
+
0.65
|
| 1044 |
+
0.65
|
| 1045 |
+
0.65
|
| 1046 |
+
0.65
|
| 1047 |
+
0.65
|
| 1048 |
+
0.65
|
| 1049 |
+
0.8
|
| 1050 |
+
0.65
|
| 1051 |
+
0.8
|
| 1052 |
+
0.65
|
| 1053 |
+
0.8
|
| 1054 |
+
0.8
|
| 1055 |
+
0.65
|
| 1056 |
+
0.8
|
| 1057 |
+
0.65
|
| 1058 |
+
0.65
|
| 1059 |
+
0.71
|
| 1060 |
+
0.65
|
| 1061 |
+
0.65
|
| 1062 |
+
0.65
|
| 1063 |
+
0.79
|
| 1064 |
+
0.65
|
| 1065 |
+
0.65
|
| 1066 |
+
0.65
|
| 1067 |
+
0.65
|
| 1068 |
+
0.65
|
| 1069 |
+
0.89
|
| 1070 |
+
0.65
|
| 1071 |
+
0.65
|
| 1072 |
+
0.8
|
| 1073 |
+
0.65
|
| 1074 |
+
0.65
|
| 1075 |
+
0.65
|
| 1076 |
+
0.65
|
| 1077 |
+
0.65
|
| 1078 |
+
0.8
|
| 1079 |
+
0.65
|
| 1080 |
+
0.65
|
| 1081 |
+
0.9
|
| 1082 |
+
0.65
|
| 1083 |
+
0.65
|
| 1084 |
+
0.65
|
| 1085 |
+
0.65
|
| 1086 |
+
0.65
|
| 1087 |
+
0.65
|
| 1088 |
+
0.65
|
| 1089 |
+
0.65
|
| 1090 |
+
0.65
|
| 1091 |
+
0.8
|
| 1092 |
+
0.65
|
| 1093 |
+
0.65
|
| 1094 |
+
0.65
|
| 1095 |
+
0.8
|
| 1096 |
+
0.65
|
| 1097 |
+
0.8
|
| 1098 |
+
0.65
|
| 1099 |
+
0.65
|
| 1100 |
+
0.65
|
| 1101 |
+
0.65
|
| 1102 |
+
0.65
|
| 1103 |
+
0.65
|
| 1104 |
+
0.65
|
| 1105 |
+
0.8
|
| 1106 |
+
0.65
|
| 1107 |
+
0.65
|
| 1108 |
+
0.65
|
| 1109 |
+
0.8
|
| 1110 |
+
0.65
|
| 1111 |
+
0.65
|
| 1112 |
+
0.65
|
| 1113 |
+
0.9
|
| 1114 |
+
0.65
|
| 1115 |
+
0.8
|
| 1116 |
+
0.65
|
| 1117 |
+
0.65
|
| 1118 |
+
0.65
|
| 1119 |
+
0.65
|
| 1120 |
+
0.65
|
| 1121 |
+
0.65
|
| 1122 |
+
0.88
|
| 1123 |
+
0.65
|
| 1124 |
+
0.65
|
| 1125 |
+
0.8
|
| 1126 |
+
0.65
|
| 1127 |
+
0.65
|
| 1128 |
+
0.65
|
| 1129 |
+
0.65
|
| 1130 |
+
0.65
|
| 1131 |
+
0.65
|
| 1132 |
+
0.65
|
| 1133 |
+
0.65
|
| 1134 |
+
0.65
|
| 1135 |
+
0.65
|
| 1136 |
+
0.8
|
| 1137 |
+
0.65
|
| 1138 |
+
0.65
|
| 1139 |
+
0.8
|
| 1140 |
+
0.65
|
| 1141 |
+
0.65
|
| 1142 |
+
0.82
|
| 1143 |
+
0.65
|
| 1144 |
+
0.9
|
| 1145 |
+
0.65
|
| 1146 |
+
0.65
|
| 1147 |
+
0.65
|
| 1148 |
+
0.65
|
| 1149 |
+
0.65
|
| 1150 |
+
0.8
|
| 1151 |
+
0.65
|
| 1152 |
+
0.8
|
| 1153 |
+
0.65
|
| 1154 |
+
0.65
|
| 1155 |
+
0.65
|
| 1156 |
+
0.8
|
| 1157 |
+
0.65
|
| 1158 |
+
0.9
|
| 1159 |
+
0.65
|
| 1160 |
+
0.65
|
| 1161 |
+
0.88
|
| 1162 |
+
0.65
|
| 1163 |
+
0.65
|
| 1164 |
+
0.65
|
| 1165 |
+
0.65
|
| 1166 |
+
0.9
|
| 1167 |
+
0.65
|
| 1168 |
+
0.65
|
| 1169 |
+
0.65
|
| 1170 |
+
0.8
|
| 1171 |
+
0.65
|
| 1172 |
+
0.65
|
| 1173 |
+
0.65
|
| 1174 |
+
0.65
|
| 1175 |
+
0.65
|
| 1176 |
+
0.65
|
| 1177 |
+
0.65
|
| 1178 |
+
0.9
|
| 1179 |
+
0.65
|
| 1180 |
+
0.65
|
| 1181 |
+
0.65
|
| 1182 |
+
0.65
|
| 1183 |
+
0.8
|
| 1184 |
+
0.65
|
| 1185 |
+
0.65
|
| 1186 |
+
0.65
|
| 1187 |
+
0.65
|
| 1188 |
+
0.65
|
| 1189 |
+
0.65
|
| 1190 |
+
0.65
|
| 1191 |
+
0.65
|
| 1192 |
+
0.65
|
| 1193 |
+
0.65
|
| 1194 |
+
0.65
|
| 1195 |
+
0.89
|
| 1196 |
+
0.65
|
| 1197 |
+
0.65
|
| 1198 |
+
0.8
|
| 1199 |
+
0.65
|
| 1200 |
+
0.65
|
| 1201 |
+
0.65
|
| 1202 |
+
0.87
|
| 1203 |
+
0.65
|
| 1204 |
+
0.66
|
| 1205 |
+
0.65
|
| 1206 |
+
0.84
|
| 1207 |
+
0.65
|
| 1208 |
+
0.8
|
| 1209 |
+
0.65
|
| 1210 |
+
0.65
|
| 1211 |
+
0.65
|
| 1212 |
+
0.65
|
| 1213 |
+
0.65
|
| 1214 |
+
0.65
|
| 1215 |
+
0.65
|
| 1216 |
+
0.65
|
| 1217 |
+
0.65
|
| 1218 |
+
0.65
|
| 1219 |
+
0.65
|
| 1220 |
+
0.84
|
| 1221 |
+
0.65
|
| 1222 |
+
0.65
|
| 1223 |
+
0.65
|
| 1224 |
+
0.65
|
| 1225 |
+
0.65
|
| 1226 |
+
0.9
|
| 1227 |
+
0.8
|
| 1228 |
+
0.65
|
| 1229 |
+
0.65
|
| 1230 |
+
0.65
|
| 1231 |
+
0.65
|
| 1232 |
+
0.65
|
| 1233 |
+
0.5
|
| 1234 |
+
0.65
|
| 1235 |
+
0.64
|
| 1236 |
+
0.65
|
| 1237 |
+
0.65
|
| 1238 |
+
0.8
|
| 1239 |
+
0.8
|
| 1240 |
+
0.65
|
| 1241 |
+
0.65
|
| 1242 |
+
0.65
|
| 1243 |
+
0.65
|
| 1244 |
+
0.65
|
| 1245 |
+
0.65
|
| 1246 |
+
0.65
|
| 1247 |
+
0.65
|
| 1248 |
+
0.81
|
| 1249 |
+
0.65
|
| 1250 |
+
0.65
|
| 1251 |
+
0.65
|
| 1252 |
+
0.65
|
| 1253 |
+
0.65
|
| 1254 |
+
0.65
|
| 1255 |
+
0.65
|
| 1256 |
+
0.65
|
| 1257 |
+
0.65
|
| 1258 |
+
0.8
|
| 1259 |
+
0.65
|
| 1260 |
+
0.65
|
| 1261 |
+
0.8
|
| 1262 |
+
0.65
|
| 1263 |
+
0.8
|
| 1264 |
+
0.8
|
| 1265 |
+
0.65
|
| 1266 |
+
0.65
|
| 1267 |
+
0.65
|
| 1268 |
+
0.8
|
| 1269 |
+
0.8
|
| 1270 |
+
0.65
|
| 1271 |
+
0.65
|
| 1272 |
+
0.8
|
| 1273 |
+
0.65
|
| 1274 |
+
0.65
|
| 1275 |
+
0.65
|
| 1276 |
+
0.65
|
| 1277 |
+
0.65
|
| 1278 |
+
0.8
|
| 1279 |
+
0.65
|
| 1280 |
+
0.8
|
| 1281 |
+
0.8
|
| 1282 |
+
0.65
|
| 1283 |
+
0.84
|
| 1284 |
+
0.65
|
| 1285 |
+
0.65
|
| 1286 |
+
0.65
|
| 1287 |
+
0.65
|
| 1288 |
+
0.65
|
| 1289 |
+
0.8
|
| 1290 |
+
0.65
|
| 1291 |
+
0.65
|
| 1292 |
+
0.65
|
| 1293 |
+
0.65
|
| 1294 |
+
0.65
|
| 1295 |
+
0.65
|
| 1296 |
+
0.65
|
| 1297 |
+
0.65
|
| 1298 |
+
0.9
|
| 1299 |
+
0.65
|
| 1300 |
+
0.8
|
| 1301 |
+
0.65
|
| 1302 |
+
0.85
|
| 1303 |
+
0.65
|
| 1304 |
+
0.65
|
| 1305 |
+
0.65
|
| 1306 |
+
0.9
|
| 1307 |
+
0.65
|
| 1308 |
+
0.65
|
| 1309 |
+
0.65
|
| 1310 |
+
0.65
|
| 1311 |
+
0.65
|
| 1312 |
+
0.8
|
| 1313 |
+
0.65
|
| 1314 |
+
0.65
|
| 1315 |
+
0.65
|
| 1316 |
+
0.73
|
| 1317 |
+
0.65
|
| 1318 |
+
0.65
|
| 1319 |
+
0.8
|
| 1320 |
+
0.65
|
| 1321 |
+
0.65
|
| 1322 |
+
0.8
|
| 1323 |
+
0.65
|
| 1324 |
+
0.8
|
| 1325 |
+
0.65
|
| 1326 |
+
0.65
|
| 1327 |
+
0.86
|
| 1328 |
+
0.65
|
| 1329 |
+
0.65
|
| 1330 |
+
0.65
|
| 1331 |
+
0.65
|
| 1332 |
+
0.87
|
| 1333 |
+
0.65
|
| 1334 |
+
0.65
|
| 1335 |
+
0.8
|
| 1336 |
+
0.65
|
| 1337 |
+
0.65
|
| 1338 |
+
0.65
|
| 1339 |
+
0.65
|
| 1340 |
+
0.65
|
| 1341 |
+
0.65
|
| 1342 |
+
0.65
|
| 1343 |
+
0.8
|
| 1344 |
+
0.65
|
| 1345 |
+
0.65
|
| 1346 |
+
0.65
|
| 1347 |
+
0.65
|
| 1348 |
+
0.65
|
| 1349 |
+
0.65
|
| 1350 |
+
0.65
|
| 1351 |
+
0.8
|
| 1352 |
+
0.65
|
| 1353 |
+
0.65
|
| 1354 |
+
0.8
|
| 1355 |
+
0.65
|
| 1356 |
+
0.65
|
| 1357 |
+
0.65
|
| 1358 |
+
0.65
|
| 1359 |
+
0.65
|
| 1360 |
+
0.8
|
| 1361 |
+
0.8
|
| 1362 |
+
0.8
|
| 1363 |
+
0.65
|
| 1364 |
+
0.9
|
| 1365 |
+
0.65
|
| 1366 |
+
0.65
|
| 1367 |
+
0.65
|
| 1368 |
+
0.65
|
| 1369 |
+
0.65
|
| 1370 |
+
0.65
|
| 1371 |
+
0.8
|
| 1372 |
+
0.65
|
| 1373 |
+
0.65
|
| 1374 |
+
0.82
|
| 1375 |
+
0.8
|
| 1376 |
+
0.65
|
| 1377 |
+
0.65
|
| 1378 |
+
0.65
|
| 1379 |
+
0.84
|
| 1380 |
+
0.9
|
| 1381 |
+
0.9
|
| 1382 |
+
0.65
|
| 1383 |
+
0.65
|
| 1384 |
+
0.65
|
| 1385 |
+
0.65
|
| 1386 |
+
0.65
|
| 1387 |
+
0.65
|
| 1388 |
+
0.65
|
| 1389 |
+
0.65
|
| 1390 |
+
0.65
|
| 1391 |
+
0.8
|
| 1392 |
+
0.64
|
| 1393 |
+
0.65
|
| 1394 |
+
0.65
|
| 1395 |
+
0.65
|
| 1396 |
+
0.8
|
| 1397 |
+
0.8
|
| 1398 |
+
0.87
|
| 1399 |
+
0.65
|
| 1400 |
+
0.65
|
| 1401 |
+
0.78
|
| 1402 |
+
0.65
|
| 1403 |
+
0.65
|
| 1404 |
+
0.65
|
| 1405 |
+
0.65
|
| 1406 |
+
0.65
|
| 1407 |
+
0.65
|
| 1408 |
+
0.65
|
| 1409 |
+
0.65
|
| 1410 |
+
0.65
|
| 1411 |
+
0.65
|
| 1412 |
+
0.8
|
| 1413 |
+
0.65
|
| 1414 |
+
0.8
|
| 1415 |
+
0.8
|
| 1416 |
+
0.8
|
| 1417 |
+
0.65
|
| 1418 |
+
0.8
|
| 1419 |
+
0.65
|
| 1420 |
+
0.65
|
| 1421 |
+
0.65
|
| 1422 |
+
0.8
|
| 1423 |
+
0.65
|
| 1424 |
+
0.9
|
| 1425 |
+
0.65
|
| 1426 |
+
0.65
|
| 1427 |
+
0.8
|
| 1428 |
+
0.65
|
| 1429 |
+
0.85
|
| 1430 |
+
0.65
|
| 1431 |
+
0.65
|
| 1432 |
+
0.65
|
| 1433 |
+
0.65
|
| 1434 |
+
0.65
|
| 1435 |
+
0.65
|
| 1436 |
+
0.65
|
| 1437 |
+
0.74
|
| 1438 |
+
0.65
|
| 1439 |
+
0.8
|
| 1440 |
+
0.65
|
| 1441 |
+
0.65
|
| 1442 |
+
0.8
|
| 1443 |
+
0.65
|
| 1444 |
+
0.65
|
| 1445 |
+
0.65
|
| 1446 |
+
0.65
|
| 1447 |
+
0.65
|
| 1448 |
+
0.65
|
| 1449 |
+
0.65
|
| 1450 |
+
0.8
|
| 1451 |
+
0.65
|
| 1452 |
+
0.88
|
| 1453 |
+
0.65
|
| 1454 |
+
0.65
|
| 1455 |
+
0.65
|
| 1456 |
+
0.65
|
| 1457 |
+
0.65
|
| 1458 |
+
0.65
|
| 1459 |
+
0.83
|
| 1460 |
+
0.89
|
| 1461 |
+
0.89
|
| 1462 |
+
0.65
|
| 1463 |
+
0.65
|
| 1464 |
+
0.65
|
| 1465 |
+
0.65
|
| 1466 |
+
0.65
|
| 1467 |
+
0.65
|
| 1468 |
+
0.65
|
| 1469 |
+
0.9
|
| 1470 |
+
0.65
|
| 1471 |
+
0.65
|
| 1472 |
+
0.65
|
| 1473 |
+
0.65
|
| 1474 |
+
0.65
|
| 1475 |
+
0.65
|
| 1476 |
+
0.8
|
| 1477 |
+
0.65
|
| 1478 |
+
0.65
|
| 1479 |
+
0.65
|
| 1480 |
+
0.65
|
| 1481 |
+
0.65
|
| 1482 |
+
0.65
|
| 1483 |
+
0.86
|
| 1484 |
+
0.65
|
| 1485 |
+
0.65
|
| 1486 |
+
0.65
|
| 1487 |
+
0.65
|
| 1488 |
+
0.65
|
| 1489 |
+
0.65
|
| 1490 |
+
0.65
|
| 1491 |
+
0.65
|
| 1492 |
+
0.65
|
| 1493 |
+
0.65
|
| 1494 |
+
0.8
|
| 1495 |
+
0.65
|
| 1496 |
+
0.65
|
| 1497 |
+
0.65
|
| 1498 |
+
0.65
|
| 1499 |
+
0.65
|
| 1500 |
+
0.65
|
| 1501 |
+
0.65
|
| 1502 |
+
0.65
|
| 1503 |
+
0.65
|
| 1504 |
+
0.65
|
| 1505 |
+
0.65
|
| 1506 |
+
0.65
|
| 1507 |
+
0.8
|
| 1508 |
+
0.8
|
| 1509 |
+
0.65
|
| 1510 |
+
0.65
|
| 1511 |
+
0.65
|
| 1512 |
+
0.65
|
| 1513 |
+
0.65
|
| 1514 |
+
0.65
|
| 1515 |
+
0.65
|
| 1516 |
+
0.65
|
| 1517 |
+
0.65
|
| 1518 |
+
0.8
|
| 1519 |
+
0.65
|
| 1520 |
+
0.65
|
| 1521 |
+
0.65
|
| 1522 |
+
0.65
|
| 1523 |
+
0.65
|
| 1524 |
+
0.65
|
| 1525 |
+
0.65
|
| 1526 |
+
0.65
|
| 1527 |
+
0.65
|
| 1528 |
+
0.65
|
| 1529 |
+
0.8
|
| 1530 |
+
0.65
|
| 1531 |
+
0.65
|
| 1532 |
+
0.8
|
| 1533 |
+
0.65
|
| 1534 |
+
0.65
|
| 1535 |
+
0.65
|
| 1536 |
+
0.65
|
| 1537 |
+
0.8
|
| 1538 |
+
0.65
|
| 1539 |
+
0.65
|
| 1540 |
+
0.65
|
| 1541 |
+
0.8
|
| 1542 |
+
0.65
|
| 1543 |
+
0.8
|
| 1544 |
+
0.65
|
| 1545 |
+
0.65
|
| 1546 |
+
0.65
|
| 1547 |
+
0.65
|
| 1548 |
+
0.65
|
| 1549 |
+
0.65
|
| 1550 |
+
0.65
|
| 1551 |
+
0.8
|
| 1552 |
+
0.65
|
| 1553 |
+
0.65
|
| 1554 |
+
0.65
|
| 1555 |
+
0.8
|
| 1556 |
+
0.65
|
| 1557 |
+
0.8
|
| 1558 |
+
0.8
|
| 1559 |
+
0.65
|
| 1560 |
+
0.65
|
| 1561 |
+
0.65
|
| 1562 |
+
0.65
|
| 1563 |
+
0.65
|
| 1564 |
+
0.8
|
| 1565 |
+
0.65
|
| 1566 |
+
0.65
|
| 1567 |
+
0.65
|
| 1568 |
+
0.65
|
| 1569 |
+
0.65
|
| 1570 |
+
0.8
|
| 1571 |
+
0.8
|
| 1572 |
+
0.65
|
| 1573 |
+
0.65
|
| 1574 |
+
0.65
|
| 1575 |
+
0.8
|
| 1576 |
+
0.65
|
| 1577 |
+
0.8
|
| 1578 |
+
0.8
|
| 1579 |
+
0.65
|
| 1580 |
+
0.65
|
| 1581 |
+
0.8
|
| 1582 |
+
0.65
|
| 1583 |
+
0.65
|
| 1584 |
+
0.65
|
| 1585 |
+
0.65
|
| 1586 |
+
0.65
|
| 1587 |
+
0.65
|
| 1588 |
+
0.8
|
| 1589 |
+
0.65
|
| 1590 |
+
0.65
|
| 1591 |
+
0.8
|
| 1592 |
+
0.85
|
| 1593 |
+
0.65
|
| 1594 |
+
0.65
|
| 1595 |
+
0.65
|
| 1596 |
+
0.65
|
| 1597 |
+
0.65
|
| 1598 |
+
0.8
|
| 1599 |
+
0.65
|
| 1600 |
+
0.8
|
| 1601 |
+
0.65
|
| 1602 |
+
0.65
|
| 1603 |
+
0.65
|
| 1604 |
+
0.65
|
| 1605 |
+
0.65
|
| 1606 |
+
0.8
|
| 1607 |
+
0.65
|
| 1608 |
+
0.65
|
| 1609 |
+
0.65
|
| 1610 |
+
0.9
|
| 1611 |
+
0.65
|
| 1612 |
+
0.65
|
| 1613 |
+
0.9
|
| 1614 |
+
0.65
|
| 1615 |
+
0.65
|
| 1616 |
+
0.65
|
| 1617 |
+
0.9
|
| 1618 |
+
0.65
|
| 1619 |
+
0.65
|
| 1620 |
+
0.8
|
| 1621 |
+
0.65
|
| 1622 |
+
0.65
|
| 1623 |
+
0.65
|
| 1624 |
+
0.65
|
| 1625 |
+
0.65
|
| 1626 |
+
0.8
|
| 1627 |
+
0.65
|
| 1628 |
+
0.8
|
| 1629 |
+
0.65
|
| 1630 |
+
0.65
|
| 1631 |
+
0.65
|
| 1632 |
+
0.65
|
| 1633 |
+
0.65
|
| 1634 |
+
0.65
|
| 1635 |
+
0.8
|
| 1636 |
+
0.65
|
| 1637 |
+
0.65
|
| 1638 |
+
0.65
|
| 1639 |
+
0.86
|
| 1640 |
+
0.65
|
| 1641 |
+
0.65
|
| 1642 |
+
0.65
|
| 1643 |
+
0.65
|
| 1644 |
+
0.65
|
| 1645 |
+
0.65
|
| 1646 |
+
0.65
|
| 1647 |
+
0.65
|
| 1648 |
+
0.87
|
| 1649 |
+
0.8
|
| 1650 |
+
0.84
|
| 1651 |
+
0.65
|
| 1652 |
+
0.65
|
| 1653 |
+
0.8
|
| 1654 |
+
0.65
|
| 1655 |
+
0.65
|
| 1656 |
+
0.65
|
| 1657 |
+
0.65
|
| 1658 |
+
0.8
|
| 1659 |
+
0.65
|
| 1660 |
+
0.8
|
| 1661 |
+
0.65
|
| 1662 |
+
0.65
|
| 1663 |
+
0.65
|
| 1664 |
+
0.65
|
| 1665 |
+
0.65
|
| 1666 |
+
0.8
|
| 1667 |
+
0.65
|
| 1668 |
+
0.65
|
| 1669 |
+
0.8
|
| 1670 |
+
0.65
|
| 1671 |
+
0.65
|
| 1672 |
+
0.8
|
| 1673 |
+
0.81
|
| 1674 |
+
0.65
|
| 1675 |
+
0.65
|
| 1676 |
+
0.65
|
| 1677 |
+
0.8
|
| 1678 |
+
0.65
|
| 1679 |
+
0.8
|
| 1680 |
+
0.65
|
| 1681 |
+
0.65
|
| 1682 |
+
0.65
|
| 1683 |
+
0.65
|
| 1684 |
+
0.65
|
| 1685 |
+
0.8
|
| 1686 |
+
0.65
|
| 1687 |
+
0.65
|
| 1688 |
+
0.65
|
| 1689 |
+
0.65
|
| 1690 |
+
0.8
|
| 1691 |
+
0.8
|
| 1692 |
+
0.65
|
| 1693 |
+
0.7
|
| 1694 |
+
0.65
|
| 1695 |
+
0.65
|
| 1696 |
+
0.8
|
| 1697 |
+
0.65
|
| 1698 |
+
0.65
|
| 1699 |
+
0.65
|
| 1700 |
+
0.65
|
| 1701 |
+
0.65
|
| 1702 |
+
0.8
|
| 1703 |
+
0.82
|
| 1704 |
+
0.65
|
| 1705 |
+
0.65
|
| 1706 |
+
0.65
|
| 1707 |
+
0.65
|
| 1708 |
+
0.65
|
| 1709 |
+
0.65
|
| 1710 |
+
0.65
|
| 1711 |
+
0.65
|
| 1712 |
+
0.65
|
| 1713 |
+
0.8
|
| 1714 |
+
0.65
|
| 1715 |
+
0.65
|
| 1716 |
+
0.87
|
| 1717 |
+
0.65
|
| 1718 |
+
0.9
|
| 1719 |
+
0.8
|
| 1720 |
+
0.65
|
| 1721 |
+
0.65
|
| 1722 |
+
0.65
|
| 1723 |
+
0.9
|
| 1724 |
+
0.65
|
| 1725 |
+
0.65
|
| 1726 |
+
0.65
|
| 1727 |
+
0.65
|
| 1728 |
+
0.65
|
| 1729 |
+
0.8
|
| 1730 |
+
0.7
|
| 1731 |
+
0.65
|
| 1732 |
+
0.65
|
| 1733 |
+
0.65
|
| 1734 |
+
0.65
|
| 1735 |
+
0.65
|
| 1736 |
+
0.65
|
| 1737 |
+
0.8
|
| 1738 |
+
0.65
|
| 1739 |
+
0.9
|
| 1740 |
+
0.65
|
| 1741 |
+
0.65
|
| 1742 |
+
0.65
|
| 1743 |
+
0.65
|
| 1744 |
+
0.65
|
| 1745 |
+
0.65
|
| 1746 |
+
0.8
|
| 1747 |
+
0.65
|
| 1748 |
+
0.8
|
| 1749 |
+
0.8
|
| 1750 |
+
0.65
|
| 1751 |
+
0.65
|
| 1752 |
+
0.65
|
| 1753 |
+
0.65
|
| 1754 |
+
0.65
|
| 1755 |
+
0.65
|
| 1756 |
+
0.65
|
| 1757 |
+
0.85
|
| 1758 |
+
0.65
|
| 1759 |
+
0.65
|
| 1760 |
+
0.65
|
| 1761 |
+
0.65
|
| 1762 |
+
0.65
|
| 1763 |
+
0.73
|
| 1764 |
+
0.65
|
| 1765 |
+
0.8
|
| 1766 |
+
0.65
|
| 1767 |
+
0.65
|
| 1768 |
+
0.65
|
| 1769 |
+
0.65
|
| 1770 |
+
0.65
|
| 1771 |
+
0.65
|
| 1772 |
+
0.65
|
| 1773 |
+
0.65
|
| 1774 |
+
0.9
|
| 1775 |
+
0.65
|
| 1776 |
+
0.89
|
| 1777 |
+
0.8
|
| 1778 |
+
0.65
|
| 1779 |
+
0.9
|
| 1780 |
+
0.65
|
| 1781 |
+
1
|
| 1782 |
+
0.65
|
| 1783 |
+
0.65
|
| 1784 |
+
0.65
|
| 1785 |
+
0.65
|
| 1786 |
+
0.9
|
| 1787 |
+
0.65
|
| 1788 |
+
0.65
|
| 1789 |
+
0.65
|
| 1790 |
+
0.65
|
| 1791 |
+
0.89
|
| 1792 |
+
0.89
|
| 1793 |
+
0.65
|
| 1794 |
+
0.65
|
| 1795 |
+
0.65
|
| 1796 |
+
0.8
|
| 1797 |
+
0.75
|
| 1798 |
+
0.65
|
| 1799 |
+
0.65
|
| 1800 |
+
0.65
|
| 1801 |
+
0.65
|
| 1802 |
+
0.65
|
| 1803 |
+
0.65
|
| 1804 |
+
0.65
|
| 1805 |
+
0.8
|
| 1806 |
+
0.65
|
| 1807 |
+
0.65
|
| 1808 |
+
0.65
|
| 1809 |
+
0.65
|
| 1810 |
+
0.8
|
| 1811 |
+
0.65
|
| 1812 |
+
0.65
|
| 1813 |
+
0.65
|
| 1814 |
+
0.65
|
| 1815 |
+
0.65
|
| 1816 |
+
0.8
|
| 1817 |
+
0.65
|
| 1818 |
+
0.65
|
| 1819 |
+
0.65
|
| 1820 |
+
0.8
|
| 1821 |
+
0.8
|
| 1822 |
+
0.8
|
| 1823 |
+
0.65
|
| 1824 |
+
0.65
|
| 1825 |
+
0.88
|
| 1826 |
+
0.65
|
| 1827 |
+
0.8
|
| 1828 |
+
0.65
|
| 1829 |
+
0.65
|
| 1830 |
+
0.8
|
| 1831 |
+
0.85
|
| 1832 |
+
0.65
|
| 1833 |
+
0.65
|
| 1834 |
+
0.65
|
| 1835 |
+
0.65
|
| 1836 |
+
0.65
|
| 1837 |
+
0.65
|
| 1838 |
+
0.65
|
| 1839 |
+
0.8
|
| 1840 |
+
0.65
|
| 1841 |
+
0.65
|
| 1842 |
+
0.8
|
| 1843 |
+
0.9
|
| 1844 |
+
0.57
|
| 1845 |
+
0.65
|
| 1846 |
+
0.8
|
| 1847 |
+
0.65
|
| 1848 |
+
0.65
|
| 1849 |
+
0.65
|
| 1850 |
+
0.8
|
| 1851 |
+
0.65
|
| 1852 |
+
0.65
|
| 1853 |
+
0.65
|
| 1854 |
+
0.65
|
| 1855 |
+
0.65
|
| 1856 |
+
0.65
|
| 1857 |
+
0.65
|
| 1858 |
+
0.8
|
| 1859 |
+
0.65
|
| 1860 |
+
0.65
|
| 1861 |
+
0.8
|
| 1862 |
+
0.65
|
| 1863 |
+
0.65
|
| 1864 |
+
0.65
|
| 1865 |
+
0.65
|
| 1866 |
+
0.65
|
| 1867 |
+
0.65
|
| 1868 |
+
0.65
|
| 1869 |
+
0.65
|
| 1870 |
+
0.65
|
| 1871 |
+
0.9
|
| 1872 |
+
0.8
|
| 1873 |
+
0.8
|
| 1874 |
+
0.79
|
| 1875 |
+
0.65
|
| 1876 |
+
0.65
|
| 1877 |
+
0.8
|
| 1878 |
+
0.65
|
| 1879 |
+
0.65
|
| 1880 |
+
0.65
|
| 1881 |
+
0.65
|
| 1882 |
+
0.65
|
| 1883 |
+
0.65
|
| 1884 |
+
0.65
|
| 1885 |
+
0.65
|
| 1886 |
+
0.65
|
| 1887 |
+
0.65
|
| 1888 |
+
0.65
|
| 1889 |
+
0.8
|
| 1890 |
+
0.65
|
| 1891 |
+
0.65
|
| 1892 |
+
0.65
|
| 1893 |
+
0.8
|
| 1894 |
+
0.89
|
| 1895 |
+
0.8
|
| 1896 |
+
0.65
|
| 1897 |
+
0.8
|
| 1898 |
+
0.65
|
| 1899 |
+
0.8
|
| 1900 |
+
0.65
|
| 1901 |
+
0.81
|
| 1902 |
+
0.65
|
| 1903 |
+
0.65
|
| 1904 |
+
0.65
|
| 1905 |
+
0.8
|
| 1906 |
+
0.65
|
| 1907 |
+
0.65
|
| 1908 |
+
0.65
|
| 1909 |
+
0.65
|
| 1910 |
+
0.89
|
| 1911 |
+
0.65
|
| 1912 |
+
0.65
|
| 1913 |
+
0.65
|
| 1914 |
+
0.65
|
| 1915 |
+
0.65
|
| 1916 |
+
0.89
|
| 1917 |
+
0.84
|
| 1918 |
+
0.65
|
| 1919 |
+
0.65
|
| 1920 |
+
0.65
|
| 1921 |
+
0.65
|
| 1922 |
+
0.8
|
| 1923 |
+
0.65
|
| 1924 |
+
0.9
|
| 1925 |
+
0.65
|
| 1926 |
+
0.65
|
| 1927 |
+
0.65
|
| 1928 |
+
0.65
|
| 1929 |
+
0.65
|
| 1930 |
+
0.65
|
| 1931 |
+
0.65
|
| 1932 |
+
0.65
|
| 1933 |
+
0.89
|
| 1934 |
+
0.65
|
| 1935 |
+
0.8
|
| 1936 |
+
0.83
|
| 1937 |
+
0.65
|
| 1938 |
+
0.65
|
| 1939 |
+
0.8
|
| 1940 |
+
0.65
|
| 1941 |
+
0.65
|
| 1942 |
+
0.72
|
| 1943 |
+
0.65
|
| 1944 |
+
0.65
|
| 1945 |
+
0.65
|
| 1946 |
+
0.8
|
| 1947 |
+
0.8
|
| 1948 |
+
0.65
|
| 1949 |
+
0.8
|
| 1950 |
+
0.65
|
| 1951 |
+
0.65
|
| 1952 |
+
0.65
|
| 1953 |
+
0.8
|
| 1954 |
+
0.65
|
| 1955 |
+
0.65
|
| 1956 |
+
0.65
|
| 1957 |
+
0.8
|
| 1958 |
+
0.65
|
| 1959 |
+
0.65
|
| 1960 |
+
0.65
|
| 1961 |
+
0.65
|
| 1962 |
+
0.65
|
| 1963 |
+
0.65
|
| 1964 |
+
0.65
|
| 1965 |
+
0.65
|
| 1966 |
+
1
|
| 1967 |
+
0.65
|
| 1968 |
+
0.65
|
| 1969 |
+
0.8
|
| 1970 |
+
0.65
|
| 1971 |
+
0.65
|
| 1972 |
+
0.65
|
| 1973 |
+
0.65
|
| 1974 |
+
0.65
|
| 1975 |
+
0.8
|
| 1976 |
+
0.65
|
| 1977 |
+
0.9
|
| 1978 |
+
0.65
|
| 1979 |
+
0.65
|
| 1980 |
+
0.89
|
| 1981 |
+
0.65
|
| 1982 |
+
0.65
|
| 1983 |
+
0.65
|
| 1984 |
+
0.65
|
| 1985 |
+
0.9
|
| 1986 |
+
0.65
|
| 1987 |
+
0.65
|
| 1988 |
+
0.65
|
| 1989 |
+
0.65
|
| 1990 |
+
0.8
|
| 1991 |
+
0.65
|
| 1992 |
+
0.65
|
| 1993 |
+
0.65
|
| 1994 |
+
0.65
|
| 1995 |
+
0.65
|
| 1996 |
+
0.65
|
| 1997 |
+
0.65
|
| 1998 |
+
0.8
|
| 1999 |
+
0.8
|
| 2000 |
+
0.65
|
| 2001 |
+
0.69
|
| 2002 |
+
0.8
|
| 2003 |
+
0.65
|
| 2004 |
+
0.65
|
| 2005 |
+
0.65
|
| 2006 |
+
0.9
|
| 2007 |
+
0.65
|
| 2008 |
+
0.65
|
| 2009 |
+
0.65
|
| 2010 |
+
0.65
|
| 2011 |
+
0.71
|
| 2012 |
+
0.65
|
| 2013 |
+
0.65
|
| 2014 |
+
0.65
|
| 2015 |
+
0.88
|
| 2016 |
+
0.65
|
| 2017 |
+
0.65
|
| 2018 |
+
0.65
|
| 2019 |
+
0.65
|
| 2020 |
+
0.8
|
| 2021 |
+
0.65
|
| 2022 |
+
0.65
|
| 2023 |
+
0.65
|
| 2024 |
+
0.85
|
| 2025 |
+
0.65
|
| 2026 |
+
0.8
|
| 2027 |
+
0.65
|
| 2028 |
+
0.65
|
| 2029 |
+
0.65
|
| 2030 |
+
0.8
|
| 2031 |
+
0.65
|
| 2032 |
+
0.65
|
| 2033 |
+
0.65
|
| 2034 |
+
0.65
|
| 2035 |
+
0.65
|
| 2036 |
+
0.65
|
| 2037 |
+
0.65
|
| 2038 |
+
0.65
|
| 2039 |
+
0.65
|
| 2040 |
+
0.65
|
| 2041 |
+
0.65
|
| 2042 |
+
0.65
|
| 2043 |
+
0.65
|
| 2044 |
+
0.65
|
| 2045 |
+
0.87
|
| 2046 |
+
0.65
|
| 2047 |
+
0.65
|
| 2048 |
+
0.65
|
| 2049 |
+
0.65
|
| 2050 |
+
0.65
|
| 2051 |
+
0.65
|
| 2052 |
+
0.8
|
| 2053 |
+
0.65
|
| 2054 |
+
0.65
|
| 2055 |
+
0.65
|
| 2056 |
+
0.65
|
| 2057 |
+
0.65
|
| 2058 |
+
0.65
|
| 2059 |
+
0.65
|
| 2060 |
+
0.8
|
| 2061 |
+
0.65
|
| 2062 |
+
0.65
|
| 2063 |
+
0.65
|
| 2064 |
+
0.65
|
| 2065 |
+
0.65
|
| 2066 |
+
0.9
|
| 2067 |
+
0.8
|
| 2068 |
+
0.9
|
| 2069 |
+
0.65
|
| 2070 |
+
0.8
|
| 2071 |
+
0.8
|
| 2072 |
+
0.65
|
| 2073 |
+
0.65
|
| 2074 |
+
0.8
|
| 2075 |
+
0.8
|
| 2076 |
+
0.65
|
| 2077 |
+
0.8
|
| 2078 |
+
0.65
|
| 2079 |
+
0.65
|
| 2080 |
+
0.65
|
| 2081 |
+
0.65
|
| 2082 |
+
0.65
|
| 2083 |
+
0.65
|
| 2084 |
+
0.65
|
| 2085 |
+
0.65
|
| 2086 |
+
0.8
|
| 2087 |
+
0.8
|
| 2088 |
+
0.65
|
| 2089 |
+
0.65
|
| 2090 |
+
0.8
|
| 2091 |
+
0.65
|
| 2092 |
+
0.65
|
| 2093 |
+
0.65
|
| 2094 |
+
0.65
|
| 2095 |
+
0.65
|
| 2096 |
+
0.65
|
| 2097 |
+
0.65
|
| 2098 |
+
0.65
|
| 2099 |
+
0.65
|
| 2100 |
+
0.8
|
| 2101 |
+
0.8
|
| 2102 |
+
0.65
|
| 2103 |
+
0.65
|
| 2104 |
+
0.65
|
| 2105 |
+
0.65
|
| 2106 |
+
0.65
|
| 2107 |
+
0.65
|
| 2108 |
+
0.8
|
| 2109 |
+
0.8
|
| 2110 |
+
0.65
|
| 2111 |
+
0.65
|
| 2112 |
+
0.8
|
| 2113 |
+
0.65
|
| 2114 |
+
0.65
|
| 2115 |
+
0.8
|
| 2116 |
+
0.65
|
| 2117 |
+
0.8
|
| 2118 |
+
0.65
|
| 2119 |
+
0.65
|
| 2120 |
+
0.65
|
| 2121 |
+
0.65
|
| 2122 |
+
0.65
|
| 2123 |
+
0.65
|
| 2124 |
+
0.8
|
| 2125 |
+
0.8
|
| 2126 |
+
0.65
|
| 2127 |
+
0.8
|
| 2128 |
+
0.65
|
| 2129 |
+
0.65
|
| 2130 |
+
0.65
|
| 2131 |
+
0.65
|
| 2132 |
+
0.65
|
| 2133 |
+
0.65
|
| 2134 |
+
0.65
|
| 2135 |
+
0.65
|
| 2136 |
+
0.65
|
| 2137 |
+
0.65
|
| 2138 |
+
0.65
|
| 2139 |
+
0.65
|
| 2140 |
+
0.65
|
| 2141 |
+
0.8
|
| 2142 |
+
0.65
|
| 2143 |
+
0.65
|
| 2144 |
+
0.65
|
| 2145 |
+
0.8
|
| 2146 |
+
0.8
|
| 2147 |
+
0.65
|
| 2148 |
+
0.85
|
| 2149 |
+
0.65
|
| 2150 |
+
0.65
|
| 2151 |
+
0.8
|
| 2152 |
+
0.65
|
| 2153 |
+
0.89
|
| 2154 |
+
0.65
|
| 2155 |
+
0.65
|
| 2156 |
+
0.9
|
| 2157 |
+
0.8
|
| 2158 |
+
0.65
|
| 2159 |
+
0.65
|
| 2160 |
+
0.65
|
| 2161 |
+
0.65
|
| 2162 |
+
0.8
|
| 2163 |
+
0.65
|
| 2164 |
+
0.86
|
| 2165 |
+
0.65
|
| 2166 |
+
0.77
|
| 2167 |
+
0.65
|
| 2168 |
+
0.65
|
| 2169 |
+
0.65
|
| 2170 |
+
0.65
|
| 2171 |
+
0.65
|
| 2172 |
+
0.65
|
| 2173 |
+
0.65
|
| 2174 |
+
0.65
|
| 2175 |
+
0.65
|
| 2176 |
+
0.65
|
| 2177 |
+
0.9
|
| 2178 |
+
0.65
|
| 2179 |
+
0.8
|
| 2180 |
+
0.65
|
| 2181 |
+
0.65
|
| 2182 |
+
0.65
|
| 2183 |
+
0.9
|
| 2184 |
+
0.65
|
| 2185 |
+
0.65
|
| 2186 |
+
0.65
|
| 2187 |
+
0.65
|
| 2188 |
+
0.65
|
| 2189 |
+
0.65
|
| 2190 |
+
0.65
|
| 2191 |
+
0.65
|
| 2192 |
+
0.65
|
| 2193 |
+
0.65
|
| 2194 |
+
0.65
|
| 2195 |
+
0.65
|
| 2196 |
+
0.65
|
| 2197 |
+
0.65
|
| 2198 |
+
0.65
|
| 2199 |
+
0.65
|
| 2200 |
+
0.8
|
| 2201 |
+
0.65
|
| 2202 |
+
0.65
|
| 2203 |
+
0.65
|
| 2204 |
+
0.9
|
| 2205 |
+
0.65
|
| 2206 |
+
0.65
|
| 2207 |
+
0.8
|
| 2208 |
+
0.8
|
| 2209 |
+
0.65
|
| 2210 |
+
0.65
|
| 2211 |
+
0.65
|
| 2212 |
+
0.65
|
| 2213 |
+
0.8
|
| 2214 |
+
0.65
|
| 2215 |
+
0.65
|
| 2216 |
+
0.65
|
| 2217 |
+
0.65
|
| 2218 |
+
0.65
|
| 2219 |
+
0.65
|
| 2220 |
+
0.65
|
| 2221 |
+
0.65
|
| 2222 |
+
0.8
|
| 2223 |
+
0.65
|
| 2224 |
+
0.65
|
| 2225 |
+
0.65
|
| 2226 |
+
0.65
|
| 2227 |
+
0.65
|
| 2228 |
+
0.65
|
| 2229 |
+
0.8
|
| 2230 |
+
0.65
|
| 2231 |
+
0.65
|
| 2232 |
+
0.8
|
| 2233 |
+
0.65
|
| 2234 |
+
0.65
|
| 2235 |
+
0.8
|
| 2236 |
+
0.8
|
| 2237 |
+
0.8
|
| 2238 |
+
0.65
|
| 2239 |
+
0.65
|
| 2240 |
+
0.65
|
| 2241 |
+
0.65
|
| 2242 |
+
0.8
|
| 2243 |
+
0.65
|
| 2244 |
+
0.65
|
| 2245 |
+
0.65
|
| 2246 |
+
0.65
|
| 2247 |
+
0.65
|
| 2248 |
+
0.89
|
| 2249 |
+
0.65
|
| 2250 |
+
0.65
|
| 2251 |
+
0.65
|
| 2252 |
+
0.65
|
| 2253 |
+
0.65
|
| 2254 |
+
0.65
|
| 2255 |
+
0.65
|
| 2256 |
+
0.8
|
| 2257 |
+
0.65
|
| 2258 |
+
0.65
|
| 2259 |
+
0.65
|
| 2260 |
+
0.65
|
| 2261 |
+
0.65
|
| 2262 |
+
0.65
|
| 2263 |
+
0.65
|
| 2264 |
+
0.65
|
| 2265 |
+
0.65
|
| 2266 |
+
0.65
|
| 2267 |
+
0.65
|
| 2268 |
+
0.65
|
| 2269 |
+
0.8
|
| 2270 |
+
0.65
|
| 2271 |
+
0.65
|
| 2272 |
+
0.65
|
| 2273 |
+
0.75
|
| 2274 |
+
0.8
|
| 2275 |
+
0.65
|
| 2276 |
+
0.8
|
| 2277 |
+
0.88
|
| 2278 |
+
0.65
|
| 2279 |
+
0.65
|
| 2280 |
+
0.65
|
| 2281 |
+
0.65
|
| 2282 |
+
0.65
|
| 2283 |
+
0.65
|
| 2284 |
+
0.65
|
| 2285 |
+
0.65
|
| 2286 |
+
0.65
|
| 2287 |
+
0.65
|
| 2288 |
+
0.65
|
| 2289 |
+
0.65
|
| 2290 |
+
0.65
|
| 2291 |
+
0.65
|
| 2292 |
+
0.65
|
| 2293 |
+
0.65
|
| 2294 |
+
0.65
|
| 2295 |
+
0.8
|
| 2296 |
+
0.65
|
| 2297 |
+
0.65
|
| 2298 |
+
0.65
|
| 2299 |
+
0.88
|
| 2300 |
+
0.65
|
| 2301 |
+
0.65
|
| 2302 |
+
0.65
|
| 2303 |
+
0.65
|
| 2304 |
+
0.65
|
| 2305 |
+
0.65
|
| 2306 |
+
0.65
|
| 2307 |
+
0.65
|
| 2308 |
+
0.65
|
| 2309 |
+
0.8
|
| 2310 |
+
0.65
|
| 2311 |
+
0.82
|
| 2312 |
+
0.65
|
| 2313 |
+
0.65
|
| 2314 |
+
0.8
|
| 2315 |
+
0.65
|
| 2316 |
+
0.8
|
| 2317 |
+
0.65
|
| 2318 |
+
0.9
|
| 2319 |
+
0.65
|
| 2320 |
+
0.65
|
| 2321 |
+
0.65
|
| 2322 |
+
0.65
|
| 2323 |
+
0.65
|
| 2324 |
+
0.65
|
| 2325 |
+
0.65
|
| 2326 |
+
0.65
|
| 2327 |
+
0.65
|
| 2328 |
+
0.65
|
| 2329 |
+
0.83
|
| 2330 |
+
0.65
|
| 2331 |
+
0.65
|
| 2332 |
+
0.92
|
| 2333 |
+
0.89
|
| 2334 |
+
0.8
|
| 2335 |
+
0.8
|
| 2336 |
+
0.65
|
| 2337 |
+
0.65
|
| 2338 |
+
0.65
|
| 2339 |
+
0.65
|
| 2340 |
+
0.75
|
| 2341 |
+
0.65
|
| 2342 |
+
0.65
|
| 2343 |
+
0.65
|
| 2344 |
+
0.65
|
| 2345 |
+
0.8
|
| 2346 |
+
0.65
|
| 2347 |
+
0.65
|
| 2348 |
+
0.8
|
| 2349 |
+
0.65
|
| 2350 |
+
0.65
|
| 2351 |
+
0.65
|
| 2352 |
+
0.85
|
| 2353 |
+
0.65
|
| 2354 |
+
0.8
|
| 2355 |
+
0.65
|
| 2356 |
+
0.65
|
| 2357 |
+
0.65
|
| 2358 |
+
0.65
|
| 2359 |
+
0.65
|
| 2360 |
+
0.65
|
| 2361 |
+
0.65
|
| 2362 |
+
0.65
|
| 2363 |
+
0.8
|
| 2364 |
+
0.65
|
| 2365 |
+
0.65
|
| 2366 |
+
0.65
|
| 2367 |
+
0.65
|
| 2368 |
+
0.65
|
| 2369 |
+
0.8
|
| 2370 |
+
0.65
|
| 2371 |
+
0.65
|
| 2372 |
+
0.87
|
| 2373 |
+
0.65
|
| 2374 |
+
0.79
|
| 2375 |
+
0.65
|
| 2376 |
+
0.65
|
| 2377 |
+
0.65
|
| 2378 |
+
0.65
|
| 2379 |
+
0.65
|
| 2380 |
+
0.65
|
| 2381 |
+
0.65
|
| 2382 |
+
0.65
|
| 2383 |
+
0.65
|
| 2384 |
+
0.65
|
| 2385 |
+
0.8
|
| 2386 |
+
0.65
|
| 2387 |
+
0.65
|
| 2388 |
+
0.65
|
| 2389 |
+
0.65
|
| 2390 |
+
0.65
|
| 2391 |
+
0.65
|
| 2392 |
+
0.65
|
| 2393 |
+
0.83
|
| 2394 |
+
0.8
|
| 2395 |
+
0.65
|
| 2396 |
+
0.65
|
| 2397 |
+
0.8
|
| 2398 |
+
0.8
|
| 2399 |
+
0.65
|
| 2400 |
+
0.7
|
| 2401 |
+
0.65
|
| 2402 |
+
0.65
|
| 2403 |
+
0.8
|
| 2404 |
+
0.65
|
| 2405 |
+
0.65
|
| 2406 |
+
0.8
|
| 2407 |
+
0.8
|
| 2408 |
+
0.65
|
| 2409 |
+
0.8
|
| 2410 |
+
0.65
|
| 2411 |
+
0.65
|
| 2412 |
+
0.65
|
| 2413 |
+
0.65
|
| 2414 |
+
0.9
|
| 2415 |
+
0.8
|
| 2416 |
+
0.65
|
| 2417 |
+
0.65
|
| 2418 |
+
0.65
|
| 2419 |
+
0.65
|
| 2420 |
+
0.7
|
| 2421 |
+
0.65
|
| 2422 |
+
0.65
|
| 2423 |
+
0.65
|
| 2424 |
+
0.65
|
| 2425 |
+
0.65
|
| 2426 |
+
0.65
|
| 2427 |
+
0.87
|
| 2428 |
+
0.65
|
| 2429 |
+
0.65
|
| 2430 |
+
0.65
|
| 2431 |
+
0.65
|
| 2432 |
+
0.8
|
| 2433 |
+
0.82
|
| 2434 |
+
0.65
|
| 2435 |
+
0.8
|
| 2436 |
+
0.65
|
| 2437 |
+
0.65
|
| 2438 |
+
0.9
|
| 2439 |
+
0.65
|
| 2440 |
+
0.65
|
| 2441 |
+
0.65
|
| 2442 |
+
0.65
|
| 2443 |
+
0.65
|
| 2444 |
+
1
|
| 2445 |
+
0.65
|
| 2446 |
+
0.65
|
| 2447 |
+
0.65
|
| 2448 |
+
0.65
|
| 2449 |
+
0.65
|
| 2450 |
+
0.65
|
| 2451 |
+
0.65
|
| 2452 |
+
0.65
|
| 2453 |
+
0.8
|
| 2454 |
+
0.64
|
| 2455 |
+
0.65
|
| 2456 |
+
0.65
|
| 2457 |
+
0.63
|
| 2458 |
+
0.65
|
| 2459 |
+
0.65
|
| 2460 |
+
0.65
|
| 2461 |
+
0.65
|
| 2462 |
+
0.8
|
| 2463 |
+
0.65
|
| 2464 |
+
0.65
|
| 2465 |
+
0.65
|
| 2466 |
+
0.65
|
| 2467 |
+
0.76
|
| 2468 |
+
0.65
|
| 2469 |
+
0.65
|
| 2470 |
+
0.65
|
| 2471 |
+
0.65
|
| 2472 |
+
0.8
|
| 2473 |
+
0.65
|
| 2474 |
+
0.8
|
| 2475 |
+
0.65
|
| 2476 |
+
0.8
|
| 2477 |
+
0.65
|
| 2478 |
+
0.75
|
| 2479 |
+
0.65
|
| 2480 |
+
0.65
|
| 2481 |
+
0.65
|
| 2482 |
+
0.8
|
| 2483 |
+
0.65
|
| 2484 |
+
0.65
|
| 2485 |
+
0.65
|
| 2486 |
+
0.65
|
| 2487 |
+
0.8
|
| 2488 |
+
0.65
|
| 2489 |
+
0.65
|
| 2490 |
+
0.8
|
| 2491 |
+
0.65
|
| 2492 |
+
0.65
|
| 2493 |
+
0.65
|
| 2494 |
+
0.65
|
| 2495 |
+
0.65
|
| 2496 |
+
0.65
|
| 2497 |
+
0.65
|
| 2498 |
+
0.65
|
| 2499 |
+
0.8
|
| 2500 |
+
0.65
|
| 2501 |
+
0.87
|
| 2502 |
+
0.65
|
| 2503 |
+
0.65
|
| 2504 |
+
0.8
|
| 2505 |
+
0.65
|
| 2506 |
+
0.65
|
| 2507 |
+
0.65
|
| 2508 |
+
0.65
|
| 2509 |
+
0.65
|
| 2510 |
+
0.65
|
| 2511 |
+
0.65
|
| 2512 |
+
0.65
|
| 2513 |
+
0.65
|
| 2514 |
+
0.65
|
| 2515 |
+
0.8
|
| 2516 |
+
0.65
|
| 2517 |
+
0.8
|
| 2518 |
+
0.65
|
| 2519 |
+
0.65
|
| 2520 |
+
0.65
|
| 2521 |
+
0.65
|
| 2522 |
+
0.65
|
| 2523 |
+
0.65
|
| 2524 |
+
0.65
|
| 2525 |
+
0.65
|
| 2526 |
+
0.65
|
| 2527 |
+
0.65
|
| 2528 |
+
0.65
|
| 2529 |
+
0.8
|
| 2530 |
+
0.65
|
| 2531 |
+
0.65
|
| 2532 |
+
0.65
|
| 2533 |
+
0.65
|
| 2534 |
+
0.65
|
| 2535 |
+
0.65
|
| 2536 |
+
0.65
|
| 2537 |
+
0.65
|
| 2538 |
+
0.8
|
| 2539 |
+
0.65
|
| 2540 |
+
0.8
|
| 2541 |
+
0.65
|
| 2542 |
+
0.65
|
| 2543 |
+
0.65
|
| 2544 |
+
0.65
|
| 2545 |
+
0.65
|
| 2546 |
+
0.8
|
| 2547 |
+
0.65
|
| 2548 |
+
0.82
|
| 2549 |
+
0.65
|
| 2550 |
+
0.65
|
| 2551 |
+
0.65
|
| 2552 |
+
0.65
|
| 2553 |
+
0.65
|
| 2554 |
+
0.8
|
| 2555 |
+
0.89
|
| 2556 |
+
0.65
|
| 2557 |
+
0.8
|
| 2558 |
+
0.65
|
| 2559 |
+
0.65
|
| 2560 |
+
0.65
|
| 2561 |
+
0.65
|
| 2562 |
+
0.65
|
| 2563 |
+
0.9
|
| 2564 |
+
0.65
|
| 2565 |
+
0.65
|
| 2566 |
+
0.65
|
| 2567 |
+
0.65
|
| 2568 |
+
0.65
|
| 2569 |
+
0.65
|
| 2570 |
+
0.8
|
| 2571 |
+
0.65
|
| 2572 |
+
0.65
|
| 2573 |
+
0.65
|
| 2574 |
+
0.65
|
| 2575 |
+
0.65
|
| 2576 |
+
0.65
|
| 2577 |
+
0.65
|
| 2578 |
+
0.65
|
| 2579 |
+
0.8
|
| 2580 |
+
0.65
|
| 2581 |
+
0.65
|
| 2582 |
+
0.65
|
| 2583 |
+
0.65
|
| 2584 |
+
0.65
|
| 2585 |
+
0.65
|
| 2586 |
+
0.65
|
| 2587 |
+
0.65
|
| 2588 |
+
0.65
|
| 2589 |
+
0.8
|
| 2590 |
+
0.65
|
| 2591 |
+
0.65
|
| 2592 |
+
0.9
|
| 2593 |
+
0.65
|
| 2594 |
+
0.65
|
| 2595 |
+
0.65
|
| 2596 |
+
0.65
|
| 2597 |
+
0.8
|
| 2598 |
+
0.65
|
| 2599 |
+
0.65
|
| 2600 |
+
0.9
|
| 2601 |
+
0.65
|
| 2602 |
+
0.65
|
| 2603 |
+
0.8
|
| 2604 |
+
0.65
|
| 2605 |
+
0.65
|
| 2606 |
+
0.8
|
| 2607 |
+
0.65
|
| 2608 |
+
0.65
|
| 2609 |
+
0.65
|
| 2610 |
+
0.65
|
| 2611 |
+
0.8
|
| 2612 |
+
0.65
|
| 2613 |
+
0.65
|
| 2614 |
+
0.65
|
| 2615 |
+
0.65
|
| 2616 |
+
0.8
|
| 2617 |
+
0.65
|
| 2618 |
+
0.65
|
| 2619 |
+
0.65
|
| 2620 |
+
0.65
|
| 2621 |
+
0.65
|
| 2622 |
+
0.9
|
| 2623 |
+
0.8
|
| 2624 |
+
0.65
|
| 2625 |
+
0.73
|
| 2626 |
+
0.65
|
| 2627 |
+
0.65
|
| 2628 |
+
0.8
|
| 2629 |
+
0.65
|
| 2630 |
+
0.65
|
| 2631 |
+
0.65
|
| 2632 |
+
0.65
|
| 2633 |
+
0.86
|
| 2634 |
+
0.65
|
| 2635 |
+
0.9
|
| 2636 |
+
0.65
|
| 2637 |
+
0.65
|
| 2638 |
+
0.65
|
| 2639 |
+
0.65
|
| 2640 |
+
0.65
|
| 2641 |
+
0.65
|
| 2642 |
+
0.65
|
| 2643 |
+
0.65
|
| 2644 |
+
0.65
|
| 2645 |
+
0.65
|
| 2646 |
+
0.65
|
| 2647 |
+
0.65
|
| 2648 |
+
0.65
|
| 2649 |
+
0.65
|
| 2650 |
+
0.65
|
| 2651 |
+
0.65
|
| 2652 |
+
0.65
|
| 2653 |
+
0.65
|
| 2654 |
+
0.65
|
| 2655 |
+
0.9
|
| 2656 |
+
0.65
|
| 2657 |
+
0.65
|
| 2658 |
+
0.65
|
| 2659 |
+
0.65
|
| 2660 |
+
0.8
|
| 2661 |
+
0.65
|
| 2662 |
+
0.65
|
| 2663 |
+
0.65
|
| 2664 |
+
0.65
|
| 2665 |
+
0.65
|
| 2666 |
+
0.8
|
| 2667 |
+
0.65
|
| 2668 |
+
0.8
|
| 2669 |
+
0.65
|
| 2670 |
+
0.65
|
| 2671 |
+
0.65
|
| 2672 |
+
0.65
|
| 2673 |
+
0.65
|
| 2674 |
+
0.8
|
| 2675 |
+
0.8
|
| 2676 |
+
0.9
|
| 2677 |
+
0.65
|
| 2678 |
+
0.9
|
| 2679 |
+
0.65
|
| 2680 |
+
0.65
|
| 2681 |
+
0.65
|
| 2682 |
+
0.65
|
| 2683 |
+
0.86
|
| 2684 |
+
0.65
|
| 2685 |
+
0.65
|
| 2686 |
+
0.65
|
| 2687 |
+
0.65
|
| 2688 |
+
0.65
|
| 2689 |
+
0.65
|
| 2690 |
+
0.8
|
| 2691 |
+
0.65
|
| 2692 |
+
0.65
|
| 2693 |
+
0.65
|
| 2694 |
+
0.65
|
| 2695 |
+
0.65
|
| 2696 |
+
0.86
|
| 2697 |
+
0.65
|
| 2698 |
+
0.8
|
| 2699 |
+
0.8
|
| 2700 |
+
0.65
|
| 2701 |
+
0.8
|
| 2702 |
+
0.65
|
| 2703 |
+
0.65
|
| 2704 |
+
0.8
|
| 2705 |
+
0.65
|
| 2706 |
+
0.65
|
| 2707 |
+
0.69
|
| 2708 |
+
0.65
|
| 2709 |
+
0.65
|
| 2710 |
+
0.65
|
| 2711 |
+
0.65
|
| 2712 |
+
0.65
|
| 2713 |
+
0.88
|
| 2714 |
+
0.65
|
| 2715 |
+
0.65
|
| 2716 |
+
0.65
|
| 2717 |
+
0.65
|
| 2718 |
+
0.65
|
| 2719 |
+
0.65
|
| 2720 |
+
0.65
|
| 2721 |
+
0.65
|
| 2722 |
+
0.8
|
| 2723 |
+
0.65
|
| 2724 |
+
0.65
|
| 2725 |
+
0.65
|
| 2726 |
+
0.65
|
| 2727 |
+
0.65
|
| 2728 |
+
0.65
|
| 2729 |
+
0.65
|
| 2730 |
+
0.72
|
| 2731 |
+
0.65
|
| 2732 |
+
0.65
|
| 2733 |
+
0.8
|
| 2734 |
+
0.65
|
| 2735 |
+
0.8
|
| 2736 |
+
0.8
|
| 2737 |
+
0.65
|
| 2738 |
+
0.65
|
| 2739 |
+
0.65
|
| 2740 |
+
0.65
|
| 2741 |
+
0.65
|
| 2742 |
+
0.65
|
| 2743 |
+
0.9
|
| 2744 |
+
0.65
|
| 2745 |
+
0.65
|
| 2746 |
+
0.65
|
| 2747 |
+
0.65
|
| 2748 |
+
0.8
|
| 2749 |
+
0.65
|
| 2750 |
+
0.65
|
| 2751 |
+
0.9
|
| 2752 |
+
0.9
|
| 2753 |
+
0.8
|
| 2754 |
+
0.8
|
| 2755 |
+
0.65
|
| 2756 |
+
0.65
|
| 2757 |
+
0.65
|
| 2758 |
+
0.65
|
| 2759 |
+
0.8
|
| 2760 |
+
0.65
|
| 2761 |
+
0.65
|
| 2762 |
+
0.65
|
| 2763 |
+
0.65
|
| 2764 |
+
0.8
|
| 2765 |
+
0.65
|
| 2766 |
+
0.65
|
| 2767 |
+
0.65
|
| 2768 |
+
0.8
|
| 2769 |
+
0.65
|
| 2770 |
+
0.65
|
| 2771 |
+
0.65
|
| 2772 |
+
0.8
|
| 2773 |
+
0.65
|
| 2774 |
+
0.65
|
| 2775 |
+
0.65
|
| 2776 |
+
0.65
|
| 2777 |
+
0.45
|
| 2778 |
+
0.8
|
| 2779 |
+
0.65
|
| 2780 |
+
0.88
|
| 2781 |
+
0.65
|
| 2782 |
+
0.65
|
| 2783 |
+
0.65
|
| 2784 |
+
0.65
|
| 2785 |
+
0.65
|
| 2786 |
+
0.65
|
| 2787 |
+
0.65
|
| 2788 |
+
0.65
|
| 2789 |
+
0.65
|
| 2790 |
+
0.65
|
| 2791 |
+
0.8
|
| 2792 |
+
0.8
|
| 2793 |
+
0.65
|
| 2794 |
+
0.65
|
| 2795 |
+
0.65
|
| 2796 |
+
0.8
|
| 2797 |
+
0.65
|
| 2798 |
+
0.8
|
| 2799 |
+
0.65
|
| 2800 |
+
0.8
|
| 2801 |
+
0.51
|
| 2802 |
+
0.65
|
| 2803 |
+
0.65
|
| 2804 |
+
0.8
|
| 2805 |
+
0.65
|
| 2806 |
+
0.65
|
| 2807 |
+
0.8
|
| 2808 |
+
0.8
|
| 2809 |
+
0.65
|
| 2810 |
+
0.65
|
| 2811 |
+
0.65
|
| 2812 |
+
0.65
|
| 2813 |
+
0.65
|
| 2814 |
+
0.8
|
| 2815 |
+
0.65
|
| 2816 |
+
0.65
|
| 2817 |
+
0.65
|
| 2818 |
+
0.65
|
| 2819 |
+
0.65
|
| 2820 |
+
0.65
|
| 2821 |
+
0.65
|
| 2822 |
+
0.65
|
| 2823 |
+
0.65
|
| 2824 |
+
0.65
|
| 2825 |
+
0.65
|
| 2826 |
+
0.65
|
| 2827 |
+
0.65
|
| 2828 |
+
0.65
|
| 2829 |
+
0.65
|
| 2830 |
+
0.66
|
| 2831 |
+
0.65
|
| 2832 |
+
0.8
|
| 2833 |
+
0.9
|
| 2834 |
+
0.65
|
| 2835 |
+
0.65
|
| 2836 |
+
0.65
|
| 2837 |
+
0.65
|
| 2838 |
+
0.65
|
| 2839 |
+
0.65
|
| 2840 |
+
0.65
|
| 2841 |
+
0.8
|
| 2842 |
+
0.8
|
| 2843 |
+
0.65
|
| 2844 |
+
0.8
|
| 2845 |
+
0.65
|
| 2846 |
+
0.65
|
| 2847 |
+
0.65
|
| 2848 |
+
0.65
|
| 2849 |
+
0.65
|
| 2850 |
+
0.65
|
| 2851 |
+
0.65
|
| 2852 |
+
0.65
|
| 2853 |
+
0.65
|
| 2854 |
+
0.65
|
| 2855 |
+
0.8
|
| 2856 |
+
0.8
|
| 2857 |
+
0.65
|
| 2858 |
+
0.65
|
| 2859 |
+
0.65
|
| 2860 |
+
0.65
|
| 2861 |
+
0.65
|
| 2862 |
+
0.65
|
| 2863 |
+
0.65
|
| 2864 |
+
0.65
|
| 2865 |
+
0.81
|
| 2866 |
+
0.65
|
| 2867 |
+
0.65
|
| 2868 |
+
0.65
|
| 2869 |
+
0.65
|
| 2870 |
+
0.65
|
| 2871 |
+
0.65
|
| 2872 |
+
0.65
|
| 2873 |
+
0.8
|
| 2874 |
+
0.65
|
| 2875 |
+
0.65
|
| 2876 |
+
0.8
|
| 2877 |
+
0.65
|
| 2878 |
+
0.75
|
| 2879 |
+
0.65
|
| 2880 |
+
0.65
|
| 2881 |
+
0.65
|
| 2882 |
+
0.8
|
| 2883 |
+
0.65
|
| 2884 |
+
0.65
|
| 2885 |
+
0.8
|
| 2886 |
+
0.65
|
| 2887 |
+
0.66
|
| 2888 |
+
0.65
|
| 2889 |
+
0.65
|
| 2890 |
+
0.65
|
| 2891 |
+
0.65
|
| 2892 |
+
0.65
|
| 2893 |
+
0.65
|
| 2894 |
+
0.8
|
| 2895 |
+
0.65
|
| 2896 |
+
0.65
|
| 2897 |
+
0.65
|
| 2898 |
+
0.65
|
| 2899 |
+
0.65
|
| 2900 |
+
0.9
|
| 2901 |
+
0.65
|
| 2902 |
+
0.65
|
| 2903 |
+
0.8
|
| 2904 |
+
0.65
|
| 2905 |
+
0.65
|
| 2906 |
+
0.65
|
| 2907 |
+
0.65
|
| 2908 |
+
0.65
|
| 2909 |
+
0.9
|
| 2910 |
+
0.8
|
| 2911 |
+
0.65
|
| 2912 |
+
0.85
|
| 2913 |
+
0.8
|
| 2914 |
+
0.65
|
| 2915 |
+
0.65
|
| 2916 |
+
0.8
|
| 2917 |
+
0.65
|
| 2918 |
+
0.65
|
| 2919 |
+
0.65
|
| 2920 |
+
0.65
|
| 2921 |
+
0.9
|
| 2922 |
+
0.65
|
| 2923 |
+
0.65
|
| 2924 |
+
0.65
|
| 2925 |
+
0.65
|
| 2926 |
+
0.65
|
| 2927 |
+
0.65
|
| 2928 |
+
0.65
|
| 2929 |
+
0.65
|
| 2930 |
+
0.8
|
| 2931 |
+
0.65
|
| 2932 |
+
0.65
|
| 2933 |
+
0.65
|
| 2934 |
+
0.65
|
| 2935 |
+
0.65
|
| 2936 |
+
0.65
|
| 2937 |
+
0.65
|
| 2938 |
+
0.65
|
| 2939 |
+
0.8
|
| 2940 |
+
0.65
|
| 2941 |
+
0.65
|
| 2942 |
+
0.65
|
| 2943 |
+
0.81
|
| 2944 |
+
0.65
|
| 2945 |
+
0.65
|
| 2946 |
+
0.65
|
| 2947 |
+
0.65
|
| 2948 |
+
0.65
|
| 2949 |
+
0.65
|
| 2950 |
+
0.89
|
| 2951 |
+
0.65
|
| 2952 |
+
0.8
|
| 2953 |
+
0.65
|
| 2954 |
+
0.65
|
| 2955 |
+
0.8
|
| 2956 |
+
0.65
|
| 2957 |
+
0.65
|
| 2958 |
+
0.65
|
| 2959 |
+
0.79
|
| 2960 |
+
0.75
|
| 2961 |
+
0.65
|
| 2962 |
+
0.65
|
| 2963 |
+
0.8
|
| 2964 |
+
0.65
|
| 2965 |
+
0.67
|
| 2966 |
+
0.8
|
| 2967 |
+
0.8
|
| 2968 |
+
0.86
|
| 2969 |
+
0.65
|
| 2970 |
+
0.65
|
| 2971 |
+
0.65
|
| 2972 |
+
0.65
|
| 2973 |
+
0.65
|
| 2974 |
+
0.65
|
| 2975 |
+
0.81
|
| 2976 |
+
0.8
|
| 2977 |
+
0.65
|
| 2978 |
+
0.65
|
| 2979 |
+
0.9
|
| 2980 |
+
0.65
|
| 2981 |
+
0.79
|
| 2982 |
+
0.65
|
| 2983 |
+
0.8
|
| 2984 |
+
0.65
|
| 2985 |
+
0.65
|
| 2986 |
+
0.65
|
| 2987 |
+
0.65
|
| 2988 |
+
0.65
|
| 2989 |
+
0.65
|
| 2990 |
+
0.65
|
| 2991 |
+
0.65
|
| 2992 |
+
0.65
|
| 2993 |
+
0.65
|
| 2994 |
+
0.65
|
| 2995 |
+
0.65
|
| 2996 |
+
0.65
|
| 2997 |
+
0.8
|
| 2998 |
+
0.65
|
| 2999 |
+
0.77
|
| 3000 |
+
0.65
|
| 3001 |
+
0.65
|
| 3002 |
+
0.65
|
| 3003 |
+
0.65
|
| 3004 |
+
0.65
|
| 3005 |
+
0.65
|
| 3006 |
+
0.65
|
| 3007 |
+
0.65
|
| 3008 |
+
0.65
|
| 3009 |
+
0.8
|
| 3010 |
+
0.8
|
| 3011 |
+
0.8
|
| 3012 |
+
0.65
|
| 3013 |
+
0.74
|
| 3014 |
+
0.65
|
| 3015 |
+
0.65
|
| 3016 |
+
0.65
|
| 3017 |
+
0.65
|
| 3018 |
+
0.65
|
| 3019 |
+
0.65
|
| 3020 |
+
0.6
|
| 3021 |
+
0.65
|
| 3022 |
+
0.65
|
| 3023 |
+
0.65
|
| 3024 |
+
0.65
|
| 3025 |
+
0.65
|
| 3026 |
+
0.65
|
| 3027 |
+
0.65
|
| 3028 |
+
0.65
|
| 3029 |
+
0.8
|
| 3030 |
+
0.65
|
| 3031 |
+
0.65
|
| 3032 |
+
0.8
|
| 3033 |
+
0.65
|
| 3034 |
+
0.65
|
| 3035 |
+
0.8
|
| 3036 |
+
0.65
|
| 3037 |
+
0.65
|
| 3038 |
+
0.65
|
| 3039 |
+
0.89
|
| 3040 |
+
0.8
|
| 3041 |
+
0.65
|
| 3042 |
+
0.65
|
| 3043 |
+
0.88
|
| 3044 |
+
0.65
|
| 3045 |
+
0.65
|
| 3046 |
+
0.65
|
| 3047 |
+
0.9
|
| 3048 |
+
0.75
|
| 3049 |
+
0.65
|
| 3050 |
+
0.65
|
| 3051 |
+
0.65
|
| 3052 |
+
0.8
|
| 3053 |
+
0.6
|
| 3054 |
+
0.65
|
| 3055 |
+
0.65
|
| 3056 |
+
0.65
|
| 3057 |
+
0.9
|
| 3058 |
+
0.65
|
| 3059 |
+
0.65
|
| 3060 |
+
0.65
|
| 3061 |
+
0.84
|
| 3062 |
+
0.65
|
| 3063 |
+
0.65
|
| 3064 |
+
0.8
|
| 3065 |
+
0.65
|
| 3066 |
+
0.65
|
| 3067 |
+
0.8
|
| 3068 |
+
0.65
|
| 3069 |
+
0.65
|
| 3070 |
+
0.65
|
| 3071 |
+
0.65
|
| 3072 |
+
0.65
|
| 3073 |
+
0.65
|
| 3074 |
+
0.65
|
| 3075 |
+
0.65
|
| 3076 |
+
0.65
|
| 3077 |
+
0.8
|
| 3078 |
+
0.65
|
| 3079 |
+
0.65
|
| 3080 |
+
0.65
|
| 3081 |
+
0.9
|
| 3082 |
+
0.65
|
| 3083 |
+
0.65
|
| 3084 |
+
0.65
|
| 3085 |
+
0.65
|
| 3086 |
+
0.8
|
| 3087 |
+
0.65
|
| 3088 |
+
0.8
|
| 3089 |
+
0.65
|
| 3090 |
+
0.8
|
| 3091 |
+
0.8
|
| 3092 |
+
0.8
|
| 3093 |
+
0.65
|
| 3094 |
+
0.8
|
| 3095 |
+
0.65
|
| 3096 |
+
0.65
|
| 3097 |
+
0.65
|
| 3098 |
+
0.65
|
| 3099 |
+
0.8
|
| 3100 |
+
0.65
|
| 3101 |
+
0.65
|
| 3102 |
+
0.85
|
| 3103 |
+
0.65
|
| 3104 |
+
0.65
|
| 3105 |
+
0.8
|
| 3106 |
+
0.65
|
| 3107 |
+
0.65
|
| 3108 |
+
0.65
|
| 3109 |
+
0.65
|
| 3110 |
+
0.65
|
| 3111 |
+
0.65
|
| 3112 |
+
0.65
|
| 3113 |
+
0.65
|
| 3114 |
+
0.8
|
| 3115 |
+
0.8
|
| 3116 |
+
0.65
|
| 3117 |
+
0.65
|
| 3118 |
+
0.65
|
| 3119 |
+
0.65
|
| 3120 |
+
0.65
|
| 3121 |
+
0.63
|
| 3122 |
+
0.65
|
| 3123 |
+
0.65
|
| 3124 |
+
0.65
|
| 3125 |
+
0.7
|
| 3126 |
+
0.65
|
| 3127 |
+
0.65
|
| 3128 |
+
0.65
|
| 3129 |
+
0.65
|
| 3130 |
+
0.65
|
| 3131 |
+
0.65
|
| 3132 |
+
0.65
|
| 3133 |
+
0.65
|
| 3134 |
+
0.65
|
| 3135 |
+
0.65
|
| 3136 |
+
0.65
|
| 3137 |
+
0.65
|
| 3138 |
+
0.65
|
| 3139 |
+
0.8
|
| 3140 |
+
0.65
|
| 3141 |
+
0.65
|
| 3142 |
+
0.8
|
| 3143 |
+
0.65
|
| 3144 |
+
0.65
|
| 3145 |
+
0.65
|
| 3146 |
+
0.65
|
| 3147 |
+
0.65
|
| 3148 |
+
0.65
|
| 3149 |
+
0.9
|
| 3150 |
+
0.9
|
| 3151 |
+
0.65
|
| 3152 |
+
0.65
|
| 3153 |
+
0.8
|
| 3154 |
+
0.65
|
| 3155 |
+
0.65
|
| 3156 |
+
0.65
|
| 3157 |
+
0.65
|
| 3158 |
+
0.65
|
| 3159 |
+
0.65
|
| 3160 |
+
0.84
|
| 3161 |
+
0.65
|
| 3162 |
+
0.65
|
| 3163 |
+
0.8
|
| 3164 |
+
0.65
|
| 3165 |
+
0.81
|
| 3166 |
+
0.8
|
| 3167 |
+
0.8
|
| 3168 |
+
0.8
|
| 3169 |
+
0.82
|
| 3170 |
+
0.65
|
| 3171 |
+
0.65
|
| 3172 |
+
0.65
|
| 3173 |
+
0.8
|
| 3174 |
+
0.65
|
| 3175 |
+
0.65
|
| 3176 |
+
0.65
|
| 3177 |
+
0.65
|
| 3178 |
+
0.65
|
| 3179 |
+
0.65
|
| 3180 |
+
0.8
|
| 3181 |
+
0.65
|
| 3182 |
+
0.8
|
| 3183 |
+
0.65
|
| 3184 |
+
0.8
|
| 3185 |
+
0.65
|
| 3186 |
+
0.88
|
| 3187 |
+
0.65
|
| 3188 |
+
0.8
|
| 3189 |
+
0.65
|
| 3190 |
+
0.7
|
| 3191 |
+
0.65
|
| 3192 |
+
0.65
|
| 3193 |
+
0.65
|
| 3194 |
+
0.65
|
| 3195 |
+
0.65
|
| 3196 |
+
0.65
|
| 3197 |
+
0.65
|
| 3198 |
+
0.65
|
| 3199 |
+
0.8
|
| 3200 |
+
0.65
|
| 3201 |
+
0.65
|
| 3202 |
+
0.65
|
| 3203 |
+
0.65
|
| 3204 |
+
0.65
|
| 3205 |
+
0.8
|
| 3206 |
+
0.65
|
| 3207 |
+
0.65
|
| 3208 |
+
0.65
|
| 3209 |
+
0.8
|
| 3210 |
+
0.65
|
| 3211 |
+
1
|
| 3212 |
+
0.8
|
| 3213 |
+
0.8
|
| 3214 |
+
0.65
|
| 3215 |
+
0.65
|
| 3216 |
+
0.65
|
| 3217 |
+
0.8
|
| 3218 |
+
0.8
|
| 3219 |
+
0.8
|
| 3220 |
+
0.65
|
| 3221 |
+
0.74
|
| 3222 |
+
0.65
|
| 3223 |
+
0.65
|
| 3224 |
+
0.65
|
| 3225 |
+
0.8
|
| 3226 |
+
0.65
|
| 3227 |
+
0.8
|
| 3228 |
+
0.65
|
| 3229 |
+
0.65
|
| 3230 |
+
0.65
|
| 3231 |
+
0.65
|
| 3232 |
+
0.65
|
| 3233 |
+
0.65
|
| 3234 |
+
0.65
|
| 3235 |
+
0.65
|
| 3236 |
+
0.65
|
| 3237 |
+
0.65
|
| 3238 |
+
0.8
|
| 3239 |
+
0.8
|
| 3240 |
+
0.65
|
| 3241 |
+
0.65
|
| 3242 |
+
0.65
|
| 3243 |
+
0.65
|
| 3244 |
+
0.65
|
| 3245 |
+
0.65
|
| 3246 |
+
0.65
|
| 3247 |
+
0.65
|
| 3248 |
+
0.8
|
| 3249 |
+
0.65
|
| 3250 |
+
0.65
|
| 3251 |
+
0.65
|
| 3252 |
+
0.85
|
| 3253 |
+
0.65
|
| 3254 |
+
0.65
|
| 3255 |
+
0.65
|
| 3256 |
+
0.65
|
| 3257 |
+
0.8
|
| 3258 |
+
0.8
|
| 3259 |
+
0.65
|
| 3260 |
+
0.65
|
| 3261 |
+
0.65
|
| 3262 |
+
0.8
|
| 3263 |
+
0.65
|
| 3264 |
+
0.65
|
| 3265 |
+
0.65
|
| 3266 |
+
0.65
|
| 3267 |
+
0.65
|
| 3268 |
+
0.8
|
| 3269 |
+
0.65
|
| 3270 |
+
0.8
|
| 3271 |
+
0.65
|
| 3272 |
+
0.65
|
| 3273 |
+
0.65
|
| 3274 |
+
0.65
|
| 3275 |
+
0.65
|
| 3276 |
+
0.8
|
| 3277 |
+
0.9
|
| 3278 |
+
0.86
|
| 3279 |
+
0.8
|
| 3280 |
+
0.65
|
| 3281 |
+
0.8
|
| 3282 |
+
0.8
|
| 3283 |
+
0.65
|
| 3284 |
+
0.65
|
| 3285 |
+
0.65
|
| 3286 |
+
0.65
|
| 3287 |
+
0.65
|
| 3288 |
+
0.65
|
| 3289 |
+
0.65
|
| 3290 |
+
0.65
|
| 3291 |
+
0.64
|
| 3292 |
+
0.65
|
| 3293 |
+
0.65
|
| 3294 |
+
0.8
|
| 3295 |
+
0.8
|
| 3296 |
+
0.65
|
| 3297 |
+
0.87
|
| 3298 |
+
0.65
|
| 3299 |
+
0.65
|
| 3300 |
+
0.8
|
| 3301 |
+
0.8
|
| 3302 |
+
0.65
|
| 3303 |
+
0.65
|
| 3304 |
+
0.65
|
| 3305 |
+
0.65
|
| 3306 |
+
0.65
|
| 3307 |
+
0.65
|
| 3308 |
+
0.65
|
| 3309 |
+
0.65
|
| 3310 |
+
0.87
|
| 3311 |
+
0.65
|
| 3312 |
+
0.65
|
| 3313 |
+
0.65
|
| 3314 |
+
0.65
|
| 3315 |
+
0.65
|
| 3316 |
+
0.65
|
| 3317 |
+
0.8
|
| 3318 |
+
0.65
|
| 3319 |
+
0.65
|
| 3320 |
+
0.8
|
| 3321 |
+
0.65
|
| 3322 |
+
0.65
|
| 3323 |
+
0.65
|
| 3324 |
+
0.7
|
| 3325 |
+
0.65
|
| 3326 |
+
0.65
|
| 3327 |
+
0.8
|
| 3328 |
+
0.65
|
| 3329 |
+
0.65
|
| 3330 |
+
0.75
|
| 3331 |
+
0.65
|
| 3332 |
+
0.65
|
| 3333 |
+
0.65
|
| 3334 |
+
0.65
|
| 3335 |
+
0.65
|
| 3336 |
+
0.65
|
| 3337 |
+
0.85
|
| 3338 |
+
0.8
|
| 3339 |
+
0.65
|
| 3340 |
+
0.65
|
| 3341 |
+
0.65
|
| 3342 |
+
0.65
|
| 3343 |
+
0.65
|
| 3344 |
+
0.65
|
| 3345 |
+
0.65
|
| 3346 |
+
0.65
|
| 3347 |
+
0.8
|
| 3348 |
+
0.8
|
| 3349 |
+
0.65
|
| 3350 |
+
0.65
|
| 3351 |
+
0.65
|
| 3352 |
+
0.65
|
| 3353 |
+
0.65
|
| 3354 |
+
0.65
|
| 3355 |
+
0.65
|
| 3356 |
+
0.65
|
| 3357 |
+
0.8
|
| 3358 |
+
0.65
|
| 3359 |
+
0.65
|
| 3360 |
+
0.65
|
| 3361 |
+
0.71
|
| 3362 |
+
0.65
|
| 3363 |
+
0.65
|
| 3364 |
+
0.65
|
| 3365 |
+
0.65
|
| 3366 |
+
0.65
|
| 3367 |
+
0.65
|
| 3368 |
+
0.65
|
| 3369 |
+
0.65
|
| 3370 |
+
0.65
|
| 3371 |
+
0.65
|
| 3372 |
+
0.65
|
| 3373 |
+
0.65
|
| 3374 |
+
0.8
|
| 3375 |
+
0.65
|
| 3376 |
+
0.65
|
| 3377 |
+
0.65
|
| 3378 |
+
0.73
|
| 3379 |
+
0.65
|
| 3380 |
+
0.65
|
| 3381 |
+
0.8
|
| 3382 |
+
0.65
|
| 3383 |
+
0.65
|
| 3384 |
+
0.65
|
| 3385 |
+
0.65
|
| 3386 |
+
0.8
|
| 3387 |
+
0.8
|
| 3388 |
+
0.65
|
| 3389 |
+
0.65
|
| 3390 |
+
0.8
|
| 3391 |
+
0.65
|
| 3392 |
+
0.65
|
| 3393 |
+
0.65
|
| 3394 |
+
0.65
|
| 3395 |
+
0.9
|
| 3396 |
+
0.65
|
| 3397 |
+
0.65
|
| 3398 |
+
0.8
|
| 3399 |
+
0.65
|
| 3400 |
+
0.86
|
| 3401 |
+
0.65
|
| 3402 |
+
0.65
|
| 3403 |
+
0.65
|
| 3404 |
+
0.65
|
| 3405 |
+
0.9
|
| 3406 |
+
0.65
|
| 3407 |
+
0.65
|
| 3408 |
+
0.65
|
| 3409 |
+
0.65
|
| 3410 |
+
0.65
|
| 3411 |
+
0.65
|
| 3412 |
+
0.8
|
| 3413 |
+
0.75
|
| 3414 |
+
0.65
|
| 3415 |
+
0.8
|
| 3416 |
+
0.65
|
| 3417 |
+
0.65
|
| 3418 |
+
0.65
|
| 3419 |
+
0.65
|
| 3420 |
+
0.65
|
| 3421 |
+
0.65
|
| 3422 |
+
0.65
|
| 3423 |
+
0.65
|
| 3424 |
+
0.65
|
| 3425 |
+
0.8
|
| 3426 |
+
0.65
|
| 3427 |
+
0.65
|
| 3428 |
+
0.65
|
| 3429 |
+
0.65
|
| 3430 |
+
0.65
|
| 3431 |
+
0.65
|
| 3432 |
+
0.65
|
| 3433 |
+
0.65
|
| 3434 |
+
0.65
|
| 3435 |
+
0.65
|
| 3436 |
+
0.65
|
| 3437 |
+
0.8
|
| 3438 |
+
0.88
|
| 3439 |
+
0.65
|
| 3440 |
+
0.8
|
| 3441 |
+
0.65
|
| 3442 |
+
0.8
|
| 3443 |
+
0.65
|
| 3444 |
+
0.65
|
| 3445 |
+
0.65
|
| 3446 |
+
0.9
|
| 3447 |
+
0.65
|
| 3448 |
+
0.65
|
| 3449 |
+
0.65
|
| 3450 |
+
0.65
|
| 3451 |
+
0.65
|
| 3452 |
+
0.8
|
| 3453 |
+
0.65
|
| 3454 |
+
0.8
|
| 3455 |
+
0.65
|
| 3456 |
+
0.65
|
| 3457 |
+
0.65
|
| 3458 |
+
0.65
|
| 3459 |
+
0.65
|
| 3460 |
+
0.81
|
| 3461 |
+
0.65
|
| 3462 |
+
0.65
|
| 3463 |
+
0.8
|
| 3464 |
+
0.65
|
| 3465 |
+
0.65
|
| 3466 |
+
0.9
|
| 3467 |
+
0.8
|
| 3468 |
+
0.65
|
| 3469 |
+
0.65
|
| 3470 |
+
0.65
|
| 3471 |
+
0.8
|
| 3472 |
+
0.65
|
| 3473 |
+
0.65
|
| 3474 |
+
0.65
|
| 3475 |
+
0.65
|
| 3476 |
+
0.65
|
| 3477 |
+
0.65
|
| 3478 |
+
0.65
|
| 3479 |
+
0.65
|
| 3480 |
+
0.8
|
| 3481 |
+
0.9
|
| 3482 |
+
0.65
|
| 3483 |
+
0.65
|
| 3484 |
+
0.65
|
| 3485 |
+
0.65
|
| 3486 |
+
0.7
|
| 3487 |
+
0.65
|
| 3488 |
+
0.65
|
| 3489 |
+
0.65
|
| 3490 |
+
0.8
|
| 3491 |
+
0.65
|
| 3492 |
+
0.65
|
| 3493 |
+
0.65
|
| 3494 |
+
0.65
|
| 3495 |
+
0.65
|
| 3496 |
+
0.65
|
| 3497 |
+
0.65
|
| 3498 |
+
0.65
|
| 3499 |
+
0.65
|
| 3500 |
+
0.65
|
| 3501 |
+
0.65
|
| 3502 |
+
0.77
|
| 3503 |
+
0.65
|
| 3504 |
+
0.65
|
| 3505 |
+
0.65
|
| 3506 |
+
0.65
|
| 3507 |
+
0.65
|
| 3508 |
+
0.85
|
| 3509 |
+
0.65
|
| 3510 |
+
0.65
|
| 3511 |
+
0.65
|
| 3512 |
+
0.65
|
| 3513 |
+
0.65
|
| 3514 |
+
0.65
|
| 3515 |
+
0.65
|
| 3516 |
+
0.65
|
| 3517 |
+
0.65
|
| 3518 |
+
0.65
|
| 3519 |
+
0.8
|
| 3520 |
+
0.65
|
| 3521 |
+
0.65
|
| 3522 |
+
0.87
|
| 3523 |
+
0.65
|
| 3524 |
+
0.65
|
| 3525 |
+
0.65
|
| 3526 |
+
0.65
|
| 3527 |
+
0.65
|
| 3528 |
+
0.65
|
| 3529 |
+
0.65
|
| 3530 |
+
0.65
|
| 3531 |
+
0.65
|
| 3532 |
+
0.65
|
| 3533 |
+
0.65
|
| 3534 |
+
0.8
|
| 3535 |
+
0.8
|
| 3536 |
+
0.65
|
| 3537 |
+
0.65
|
| 3538 |
+
0.8
|
| 3539 |
+
0.65
|
| 3540 |
+
0.65
|
| 3541 |
+
0.65
|
| 3542 |
+
0.65
|
| 3543 |
+
0.65
|
| 3544 |
+
0.65
|
| 3545 |
+
0.65
|
| 3546 |
+
0.65
|
| 3547 |
+
0.9
|
| 3548 |
+
0.65
|
| 3549 |
+
0.65
|
| 3550 |
+
0.65
|
| 3551 |
+
0.65
|
| 3552 |
+
0.8
|
| 3553 |
+
0.65
|
| 3554 |
+
0.65
|
| 3555 |
+
0.65
|
| 3556 |
+
0.65
|
| 3557 |
+
0.65
|
| 3558 |
+
0.65
|
| 3559 |
+
0.65
|
| 3560 |
+
0.8
|
| 3561 |
+
0.65
|
| 3562 |
+
0.8
|
| 3563 |
+
0.65
|
| 3564 |
+
0.65
|
| 3565 |
+
0.65
|
| 3566 |
+
0.65
|
| 3567 |
+
0.65
|
| 3568 |
+
0.65
|
| 3569 |
+
0.8
|
| 3570 |
+
0.65
|
| 3571 |
+
0.65
|
| 3572 |
+
0.65
|
| 3573 |
+
0.65
|
| 3574 |
+
0.65
|
| 3575 |
+
0.65
|
| 3576 |
+
0.65
|
| 3577 |
+
0.65
|
| 3578 |
+
0.57
|
| 3579 |
+
0.65
|
| 3580 |
+
0.65
|
| 3581 |
+
0.8
|
| 3582 |
+
0.65
|
| 3583 |
+
0.65
|
| 3584 |
+
0.8
|
| 3585 |
+
0.8
|
| 3586 |
+
0.65
|
| 3587 |
+
0.65
|
| 3588 |
+
0.65
|
| 3589 |
+
0.65
|
| 3590 |
+
0.76
|
| 3591 |
+
1
|
| 3592 |
+
0.8
|
| 3593 |
+
0.65
|
| 3594 |
+
0.65
|
| 3595 |
+
0.58
|
| 3596 |
+
0.8
|
| 3597 |
+
0.65
|
| 3598 |
+
0.65
|
| 3599 |
+
0.65
|
| 3600 |
+
0.65
|
| 3601 |
+
0.65
|
| 3602 |
+
0.8
|
| 3603 |
+
1
|
| 3604 |
+
0.65
|
| 3605 |
+
0.8
|
| 3606 |
+
0.65
|
| 3607 |
+
0.65
|
| 3608 |
+
0.65
|
| 3609 |
+
0.8
|
| 3610 |
+
0.65
|
| 3611 |
+
0.9
|
| 3612 |
+
0.65
|
| 3613 |
+
0.65
|
| 3614 |
+
0.65
|
| 3615 |
+
0.65
|
| 3616 |
+
0.65
|
| 3617 |
+
0.65
|
| 3618 |
+
0.65
|
| 3619 |
+
0.87
|
| 3620 |
+
0.8
|
| 3621 |
+
0.9
|
| 3622 |
+
0.8
|
| 3623 |
+
0.8
|
| 3624 |
+
0.65
|
| 3625 |
+
0.65
|
| 3626 |
+
0.65
|
| 3627 |
+
0.65
|
| 3628 |
+
0.65
|
| 3629 |
+
0.65
|
| 3630 |
+
0.8
|
| 3631 |
+
0.65
|
| 3632 |
+
0.65
|
| 3633 |
+
0.65
|
| 3634 |
+
0.65
|
| 3635 |
+
0.8
|
| 3636 |
+
0.65
|
| 3637 |
+
0.65
|
| 3638 |
+
0.8
|
| 3639 |
+
0.65
|
| 3640 |
+
0.65
|
| 3641 |
+
0.65
|
| 3642 |
+
0.8
|
| 3643 |
+
0.65
|
| 3644 |
+
0.65
|
| 3645 |
+
0.65
|
| 3646 |
+
0.65
|
| 3647 |
+
0.65
|
| 3648 |
+
0.65
|
| 3649 |
+
0.65
|
| 3650 |
+
0.65
|
| 3651 |
+
0.65
|
| 3652 |
+
0.65
|
| 3653 |
+
0.8
|
| 3654 |
+
0.65
|
| 3655 |
+
0.8
|
| 3656 |
+
0.65
|
| 3657 |
+
0.65
|
| 3658 |
+
0.65
|
| 3659 |
+
0.65
|
| 3660 |
+
0.8
|
| 3661 |
+
0.65
|
| 3662 |
+
0.65
|
| 3663 |
+
0.65
|
| 3664 |
+
0.8
|
| 3665 |
+
0.65
|
| 3666 |
+
0.65
|
| 3667 |
+
0.65
|
| 3668 |
+
0.65
|
| 3669 |
+
0.65
|
| 3670 |
+
0.65
|
| 3671 |
+
0.87
|
| 3672 |
+
0.68
|
| 3673 |
+
0.8
|
| 3674 |
+
0.65
|
| 3675 |
+
0.65
|
| 3676 |
+
0.65
|
| 3677 |
+
0.65
|
| 3678 |
+
0.8
|
| 3679 |
+
0.65
|
| 3680 |
+
0.65
|
| 3681 |
+
0.65
|
| 3682 |
+
0.65
|
| 3683 |
+
0.65
|
| 3684 |
+
0.8
|
| 3685 |
+
0.65
|
| 3686 |
+
0.65
|
| 3687 |
+
0.65
|
| 3688 |
+
0.65
|
| 3689 |
+
0.65
|
| 3690 |
+
0.65
|
| 3691 |
+
0.8
|
| 3692 |
+
0.65
|
| 3693 |
+
0.65
|
| 3694 |
+
0.65
|
| 3695 |
+
0.99
|
| 3696 |
+
0.8
|
| 3697 |
+
0.77
|
| 3698 |
+
0.65
|
| 3699 |
+
0.9
|
| 3700 |
+
0.65
|
| 3701 |
+
0.65
|
| 3702 |
+
0.88
|
| 3703 |
+
0.65
|
| 3704 |
+
0.65
|
| 3705 |
+
0.65
|
| 3706 |
+
0.65
|
| 3707 |
+
0.9
|
| 3708 |
+
0.65
|
| 3709 |
+
0.88
|
| 3710 |
+
0.65
|
| 3711 |
+
0.65
|
| 3712 |
+
0.65
|
| 3713 |
+
0.65
|
| 3714 |
+
0.65
|
| 3715 |
+
0.65
|
| 3716 |
+
0.89
|
| 3717 |
+
0.65
|
| 3718 |
+
0.65
|
| 3719 |
+
0.8
|
| 3720 |
+
0.8
|
| 3721 |
+
0.65
|
| 3722 |
+
0.7
|
| 3723 |
+
0.65
|
| 3724 |
+
0.65
|
| 3725 |
+
0.8
|
| 3726 |
+
0.9
|
| 3727 |
+
0.65
|
| 3728 |
+
0.65
|
| 3729 |
+
0.65
|
| 3730 |
+
0.8
|
| 3731 |
+
0.65
|
| 3732 |
+
0.65
|
| 3733 |
+
0.8
|
| 3734 |
+
0.8
|
| 3735 |
+
0.65
|
| 3736 |
+
0.65
|
| 3737 |
+
0.65
|
| 3738 |
+
0.8
|
| 3739 |
+
0.65
|
| 3740 |
+
0.65
|
| 3741 |
+
0.65
|
| 3742 |
+
0.65
|
| 3743 |
+
0.65
|
| 3744 |
+
0.65
|
| 3745 |
+
0.65
|
| 3746 |
+
0.8
|
| 3747 |
+
0.8
|
| 3748 |
+
0.8
|
| 3749 |
+
0.65
|
| 3750 |
+
0.77
|
| 3751 |
+
0.65
|
| 3752 |
+
0.65
|
| 3753 |
+
0.65
|
| 3754 |
+
0.65
|
| 3755 |
+
0.79
|
| 3756 |
+
0.65
|
| 3757 |
+
0.65
|
| 3758 |
+
0.65
|
| 3759 |
+
0.65
|
| 3760 |
+
0.65
|
| 3761 |
+
0.8
|
| 3762 |
+
0.65
|
| 3763 |
+
0.65
|
| 3764 |
+
0.65
|
| 3765 |
+
0.65
|
| 3766 |
+
0.8
|
| 3767 |
+
0.65
|
| 3768 |
+
0.65
|
| 3769 |
+
0.65
|
| 3770 |
+
0.65
|
| 3771 |
+
0.65
|
| 3772 |
+
0.65
|
| 3773 |
+
0.65
|
| 3774 |
+
0.65
|
| 3775 |
+
0.65
|
| 3776 |
+
0.65
|
| 3777 |
+
0.65
|
| 3778 |
+
0.8
|
| 3779 |
+
0.65
|
| 3780 |
+
0.65
|
| 3781 |
+
0.65
|
| 3782 |
+
0.8
|
| 3783 |
+
0.65
|
| 3784 |
+
0.8
|
| 3785 |
+
0.65
|
| 3786 |
+
0.65
|
| 3787 |
+
0.65
|
| 3788 |
+
0.65
|
| 3789 |
+
0.65
|
| 3790 |
+
0.8
|
| 3791 |
+
0.8
|
| 3792 |
+
0.65
|
| 3793 |
+
0.65
|
| 3794 |
+
0.65
|
| 3795 |
+
0.85
|
| 3796 |
+
0.65
|
| 3797 |
+
0.65
|
| 3798 |
+
0.65
|
| 3799 |
+
0.65
|
| 3800 |
+
0.65
|
| 3801 |
+
0.65
|
| 3802 |
+
0.52
|
| 3803 |
+
0.65
|
| 3804 |
+
0.65
|
| 3805 |
+
0.8
|
| 3806 |
+
0.65
|
| 3807 |
+
0.65
|
| 3808 |
+
0.65
|
| 3809 |
+
0.65
|
| 3810 |
+
0.65
|
| 3811 |
+
0.65
|
| 3812 |
+
0.8
|
| 3813 |
+
0.65
|
| 3814 |
+
0.65
|
| 3815 |
+
0.65
|
| 3816 |
+
0.65
|
| 3817 |
+
0.65
|
| 3818 |
+
0.65
|
| 3819 |
+
0.65
|
| 3820 |
+
0.8
|
| 3821 |
+
0.65
|
| 3822 |
+
0.86
|
| 3823 |
+
0.65
|
| 3824 |
+
0.65
|
| 3825 |
+
0.8
|
| 3826 |
+
0.56
|
| 3827 |
+
0.65
|
| 3828 |
+
0.65
|
| 3829 |
+
0.65
|
| 3830 |
+
0.8
|
| 3831 |
+
0.65
|
| 3832 |
+
0.8
|
| 3833 |
+
0.8
|
| 3834 |
+
0.65
|
| 3835 |
+
0.65
|
| 3836 |
+
0.65
|
| 3837 |
+
0.65
|
| 3838 |
+
0.65
|
| 3839 |
+
0.65
|
| 3840 |
+
0.65
|
| 3841 |
+
0.8
|
| 3842 |
+
0.65
|
| 3843 |
+
0.65
|
| 3844 |
+
0.65
|
| 3845 |
+
0.65
|
| 3846 |
+
0.72
|
| 3847 |
+
0.65
|
| 3848 |
+
0.65
|
| 3849 |
+
0.65
|
| 3850 |
+
0.8
|
| 3851 |
+
0.8
|
| 3852 |
+
0.65
|
| 3853 |
+
0.9
|
| 3854 |
+
0.65
|
| 3855 |
+
0.65
|
| 3856 |
+
0.8
|
| 3857 |
+
0.65
|
| 3858 |
+
0.8
|
| 3859 |
+
0.6
|
| 3860 |
+
0.65
|
| 3861 |
+
0.65
|
| 3862 |
+
0.65
|
| 3863 |
+
0.8
|
| 3864 |
+
0.65
|
| 3865 |
+
0.65
|
| 3866 |
+
0.65
|
| 3867 |
+
0.8
|
| 3868 |
+
0.65
|
| 3869 |
+
0.88
|
| 3870 |
+
0.65
|
| 3871 |
+
0.65
|
| 3872 |
+
0.65
|
| 3873 |
+
0.65
|
| 3874 |
+
0.8
|
| 3875 |
+
0.65
|
| 3876 |
+
0.65
|
| 3877 |
+
0.89
|
| 3878 |
+
0.85
|
| 3879 |
+
0.65
|
| 3880 |
+
0.65
|
| 3881 |
+
0.65
|
| 3882 |
+
0.65
|
| 3883 |
+
0.65
|
| 3884 |
+
0.65
|
| 3885 |
+
0.65
|
| 3886 |
+
0.87
|
| 3887 |
+
0.65
|
| 3888 |
+
0.65
|
| 3889 |
+
0.65
|
| 3890 |
+
0.65
|
| 3891 |
+
0.65
|
| 3892 |
+
0.65
|
| 3893 |
+
0.8
|
| 3894 |
+
0.65
|
| 3895 |
+
0.8
|
| 3896 |
+
0.65
|
| 3897 |
+
0.65
|
| 3898 |
+
0.65
|
| 3899 |
+
0.65
|
| 3900 |
+
0.65
|
| 3901 |
+
0.65
|
| 3902 |
+
0.65
|
| 3903 |
+
0.65
|
| 3904 |
+
0.65
|
| 3905 |
+
0.75
|
| 3906 |
+
0.65
|
| 3907 |
+
0.65
|
| 3908 |
+
0.65
|
| 3909 |
+
0.65
|
| 3910 |
+
0.54
|
| 3911 |
+
1
|
| 3912 |
+
0.65
|
| 3913 |
+
0.65
|
| 3914 |
+
0.75
|
| 3915 |
+
0.65
|
| 3916 |
+
0.75
|
| 3917 |
+
0.65
|
| 3918 |
+
0.65
|
| 3919 |
+
0.65
|
| 3920 |
+
0.8
|
| 3921 |
+
0.65
|
| 3922 |
+
0.65
|
| 3923 |
+
0.8
|
| 3924 |
+
0.65
|
| 3925 |
+
0.65
|
| 3926 |
+
0.8
|
| 3927 |
+
0.65
|
| 3928 |
+
0.65
|
| 3929 |
+
0.65
|
| 3930 |
+
0.65
|
| 3931 |
+
0.65
|
| 3932 |
+
0.65
|
| 3933 |
+
0.65
|
| 3934 |
+
0.9
|
| 3935 |
+
0.9
|
| 3936 |
+
0.62
|
| 3937 |
+
0.65
|
| 3938 |
+
0.65
|
| 3939 |
+
0.65
|
| 3940 |
+
0.65
|
| 3941 |
+
0.86
|
| 3942 |
+
0.65
|
| 3943 |
+
0.65
|
| 3944 |
+
0.65
|
| 3945 |
+
0.65
|
| 3946 |
+
0.65
|
| 3947 |
+
0.65
|
| 3948 |
+
0.65
|
| 3949 |
+
0.65
|
| 3950 |
+
0.65
|
| 3951 |
+
0.65
|
| 3952 |
+
0.65
|
| 3953 |
+
0.65
|
| 3954 |
+
0.8
|
| 3955 |
+
0.65
|
| 3956 |
+
0.8
|
| 3957 |
+
0.8
|
| 3958 |
+
0.65
|
| 3959 |
+
0.8
|
| 3960 |
+
0.65
|
| 3961 |
+
0.65
|
| 3962 |
+
0.65
|
| 3963 |
+
0.65
|
| 3964 |
+
0.65
|
| 3965 |
+
0.65
|
| 3966 |
+
0.65
|
| 3967 |
+
0.8
|
| 3968 |
+
0.65
|
| 3969 |
+
0.82
|
| 3970 |
+
0.65
|
| 3971 |
+
0.65
|
| 3972 |
+
0.65
|
| 3973 |
+
0.65
|
| 3974 |
+
0.65
|
| 3975 |
+
0.65
|
| 3976 |
+
0.65
|
| 3977 |
+
0.65
|
| 3978 |
+
0.8
|
| 3979 |
+
0.65
|
| 3980 |
+
0.65
|
| 3981 |
+
0.65
|
| 3982 |
+
0.9
|
| 3983 |
+
0.74
|
| 3984 |
+
0.8
|
| 3985 |
+
0.65
|
| 3986 |
+
0.8
|
| 3987 |
+
0.8
|
| 3988 |
+
0.7
|
| 3989 |
+
0.65
|
| 3990 |
+
0.65
|
| 3991 |
+
0.65
|
| 3992 |
+
0.89
|
| 3993 |
+
0.65
|
| 3994 |
+
0.65
|
| 3995 |
+
0.8
|
| 3996 |
+
0.8
|
| 3997 |
+
0.8
|
| 3998 |
+
0.8
|
| 3999 |
+
0.65
|
| 4000 |
+
0.8
|
| 4001 |
+
0.65
|
| 4002 |
+
0.65
|
| 4003 |
+
0.65
|
| 4004 |
+
0.9
|
| 4005 |
+
0.65
|
| 4006 |
+
0.65
|
| 4007 |
+
0.65
|
| 4008 |
+
0.8
|
| 4009 |
+
0.8
|
| 4010 |
+
0.84
|
| 4011 |
+
0.8
|
| 4012 |
+
0.65
|
| 4013 |
+
0.65
|
| 4014 |
+
0.8
|
| 4015 |
+
0.75
|
| 4016 |
+
0.65
|
| 4017 |
+
0.65
|
| 4018 |
+
0.65
|
| 4019 |
+
0.89
|
| 4020 |
+
0.65
|
| 4021 |
+
0.65
|
| 4022 |
+
0.65
|
| 4023 |
+
0.65
|
| 4024 |
+
0.82
|
| 4025 |
+
0.65
|
| 4026 |
+
0.65
|
| 4027 |
+
0.65
|
| 4028 |
+
0.8
|
| 4029 |
+
0.65
|
| 4030 |
+
0.8
|
| 4031 |
+
0.65
|
| 4032 |
+
0.8
|
| 4033 |
+
0.65
|
| 4034 |
+
0.65
|
| 4035 |
+
0.65
|
| 4036 |
+
0.84
|
| 4037 |
+
0.65
|
| 4038 |
+
0.65
|
| 4039 |
+
0.65
|
| 4040 |
+
0.65
|
| 4041 |
+
0.65
|
| 4042 |
+
0.65
|
| 4043 |
+
0.65
|
| 4044 |
+
0.65
|
| 4045 |
+
0.8
|
| 4046 |
+
0.65
|
| 4047 |
+
0.65
|
| 4048 |
+
0.65
|
| 4049 |
+
0.65
|
| 4050 |
+
0.8
|
| 4051 |
+
0.8
|
| 4052 |
+
0.8
|
| 4053 |
+
0.65
|
| 4054 |
+
0.65
|
| 4055 |
+
0.65
|
| 4056 |
+
0.65
|
| 4057 |
+
0.65
|
| 4058 |
+
0.65
|
| 4059 |
+
0.65
|
| 4060 |
+
0.65
|
| 4061 |
+
0.65
|
| 4062 |
+
0.65
|
| 4063 |
+
0.65
|
| 4064 |
+
0.65
|
| 4065 |
+
0.65
|
| 4066 |
+
0.65
|
| 4067 |
+
0.8
|
| 4068 |
+
0.65
|
| 4069 |
+
0.8
|
| 4070 |
+
0.65
|
| 4071 |
+
0.8
|
| 4072 |
+
0.65
|
| 4073 |
+
0.7
|
| 4074 |
+
0.65
|
| 4075 |
+
0.65
|
| 4076 |
+
0.65
|
| 4077 |
+
0.65
|
| 4078 |
+
0.65
|
| 4079 |
+
0.65
|
| 4080 |
+
0.65
|
| 4081 |
+
0.65
|
| 4082 |
+
0.9
|
| 4083 |
+
0.65
|
| 4084 |
+
0.65
|
| 4085 |
+
0.8
|
| 4086 |
+
0.65
|
| 4087 |
+
0.65
|
| 4088 |
+
0.65
|
| 4089 |
+
0.65
|
| 4090 |
+
0.65
|
| 4091 |
+
0.65
|
| 4092 |
+
0.8
|
| 4093 |
+
0.65
|
| 4094 |
+
0.65
|
| 4095 |
+
0.65
|
| 4096 |
+
0.65
|
| 4097 |
+
0.65
|
| 4098 |
+
0.65
|
| 4099 |
+
0.8
|
| 4100 |
+
0.74
|
| 4101 |
+
0.65
|
| 4102 |
+
0.8
|
| 4103 |
+
0.65
|
| 4104 |
+
0.65
|
| 4105 |
+
0.65
|
| 4106 |
+
0.9
|
| 4107 |
+
0.65
|
| 4108 |
+
0.65
|
| 4109 |
+
0.65
|
| 4110 |
+
0.65
|
| 4111 |
+
0.85
|
| 4112 |
+
0.65
|
| 4113 |
+
0.9
|
| 4114 |
+
0.9
|
| 4115 |
+
0.65
|
| 4116 |
+
0.65
|
| 4117 |
+
0.65
|
| 4118 |
+
0.63
|
| 4119 |
+
0.82
|
| 4120 |
+
0.65
|
| 4121 |
+
0.65
|
| 4122 |
+
0.8
|
| 4123 |
+
0.65
|
| 4124 |
+
0.65
|
| 4125 |
+
0.65
|
| 4126 |
+
0.65
|
| 4127 |
+
0.65
|
| 4128 |
+
0.65
|
| 4129 |
+
0.8
|
| 4130 |
+
0.65
|
| 4131 |
+
0.65
|
| 4132 |
+
0.8
|
| 4133 |
+
0.65
|
| 4134 |
+
0.65
|
| 4135 |
+
0.8
|
| 4136 |
+
0.65
|
| 4137 |
+
0.65
|
| 4138 |
+
0.65
|
| 4139 |
+
0.65
|
| 4140 |
+
0.65
|
| 4141 |
+
0.65
|
| 4142 |
+
0.65
|
| 4143 |
+
0.65
|
| 4144 |
+
0.8
|
| 4145 |
+
0.65
|
| 4146 |
+
0.65
|
| 4147 |
+
0.65
|
| 4148 |
+
0.65
|
| 4149 |
+
0.8
|
| 4150 |
+
0.7
|
| 4151 |
+
0.65
|
| 4152 |
+
0.65
|
| 4153 |
+
0.65
|
| 4154 |
+
0.65
|
| 4155 |
+
0.65
|
| 4156 |
+
0.9
|
| 4157 |
+
0.65
|
| 4158 |
+
0.65
|
| 4159 |
+
0.74
|
| 4160 |
+
0.9
|
| 4161 |
+
0.65
|
| 4162 |
+
0.8
|
| 4163 |
+
0.65
|
| 4164 |
+
0.65
|
| 4165 |
+
0.58
|
| 4166 |
+
0.65
|
| 4167 |
+
0.65
|
| 4168 |
+
0.65
|
| 4169 |
+
0.65
|
| 4170 |
+
0.65
|
| 4171 |
+
0.65
|
| 4172 |
+
0.89
|
| 4173 |
+
0.75
|
| 4174 |
+
0.65
|
| 4175 |
+
0.65
|
| 4176 |
+
0.8
|
| 4177 |
+
0.65
|
| 4178 |
+
0.65
|
| 4179 |
+
0.88
|
| 4180 |
+
0.65
|
| 4181 |
+
0.65
|
| 4182 |
+
0.65
|
| 4183 |
+
0.8
|
| 4184 |
+
0.65
|
| 4185 |
+
0.65
|
| 4186 |
+
0.65
|
| 4187 |
+
0.65
|
| 4188 |
+
0.65
|
| 4189 |
+
0.65
|
| 4190 |
+
0.65
|
| 4191 |
+
0.89
|
| 4192 |
+
0.65
|
| 4193 |
+
0.65
|
| 4194 |
+
0.65
|
| 4195 |
+
0.65
|
| 4196 |
+
0.65
|
| 4197 |
+
0.65
|
| 4198 |
+
0.65
|
| 4199 |
+
0.65
|
| 4200 |
+
0.65
|
| 4201 |
+
0.65
|
| 4202 |
+
0.65
|
| 4203 |
+
0.65
|
| 4204 |
+
0.8
|
| 4205 |
+
0.8
|
| 4206 |
+
0.8
|
| 4207 |
+
0.65
|
| 4208 |
+
0.65
|
| 4209 |
+
0.8
|
| 4210 |
+
0.8
|
| 4211 |
+
0.65
|
| 4212 |
+
0.65
|
| 4213 |
+
0.87
|
| 4214 |
+
0.65
|
| 4215 |
+
0.65
|
| 4216 |
+
0.65
|
| 4217 |
+
0.8
|
| 4218 |
+
0.65
|
| 4219 |
+
0.64
|
| 4220 |
+
0.65
|
| 4221 |
+
0.65
|
| 4222 |
+
0.65
|
| 4223 |
+
0.8
|
| 4224 |
+
0.87
|
| 4225 |
+
0.65
|
| 4226 |
+
0.65
|
| 4227 |
+
0.8
|
| 4228 |
+
0.9
|
| 4229 |
+
0.65
|
| 4230 |
+
0.65
|
| 4231 |
+
0.65
|
| 4232 |
+
0.65
|
| 4233 |
+
0.8
|
| 4234 |
+
0.8
|
| 4235 |
+
0.65
|
| 4236 |
+
0.89
|
| 4237 |
+
0.65
|
| 4238 |
+
0.65
|
| 4239 |
+
0.65
|
| 4240 |
+
0.65
|
| 4241 |
+
0.65
|
| 4242 |
+
0.65
|
| 4243 |
+
0.8
|
| 4244 |
+
0.65
|
| 4245 |
+
0.65
|
| 4246 |
+
0.65
|
| 4247 |
+
0.83
|
| 4248 |
+
0.65
|
| 4249 |
+
0.65
|
| 4250 |
+
0.8
|
| 4251 |
+
0.65
|
| 4252 |
+
0.9
|
| 4253 |
+
0.65
|
| 4254 |
+
0.8
|
| 4255 |
+
0.8
|
| 4256 |
+
0.65
|
| 4257 |
+
0.65
|
| 4258 |
+
0.65
|
| 4259 |
+
0.65
|
| 4260 |
+
0.65
|
| 4261 |
+
0.65
|
| 4262 |
+
0.8
|
| 4263 |
+
0.65
|
| 4264 |
+
0.65
|
| 4265 |
+
0.65
|
| 4266 |
+
0.65
|
| 4267 |
+
0.65
|
| 4268 |
+
0.65
|
| 4269 |
+
0.65
|
| 4270 |
+
0.65
|
| 4271 |
+
0.65
|
| 4272 |
+
0.65
|
| 4273 |
+
0.78
|
| 4274 |
+
0.65
|
| 4275 |
+
0.8
|
| 4276 |
+
0.65
|
| 4277 |
+
0.9
|
| 4278 |
+
0.65
|
| 4279 |
+
0.8
|
| 4280 |
+
0.65
|
| 4281 |
+
0.65
|
| 4282 |
+
0.65
|
| 4283 |
+
0.65
|
| 4284 |
+
0.65
|
| 4285 |
+
0.9
|
| 4286 |
+
0.65
|
| 4287 |
+
0.88
|
| 4288 |
+
0.8
|
| 4289 |
+
0.65
|
| 4290 |
+
0.65
|
| 4291 |
+
0.65
|
| 4292 |
+
0.81
|
| 4293 |
+
0.65
|
| 4294 |
+
0.65
|
| 4295 |
+
0.65
|
| 4296 |
+
0.65
|
| 4297 |
+
0.65
|
| 4298 |
+
0.65
|
| 4299 |
+
0.65
|
| 4300 |
+
0.65
|
| 4301 |
+
0.65
|
| 4302 |
+
0.65
|
| 4303 |
+
0.65
|
| 4304 |
+
0.65
|
| 4305 |
+
0.65
|
| 4306 |
+
0.65
|
| 4307 |
+
0.8
|
| 4308 |
+
0.65
|
| 4309 |
+
0.65
|
| 4310 |
+
0.65
|
| 4311 |
+
0.65
|
| 4312 |
+
0.77
|
| 4313 |
+
0.65
|
| 4314 |
+
0.65
|
| 4315 |
+
0.65
|
| 4316 |
+
0.8
|
| 4317 |
+
0.8
|
| 4318 |
+
0.8
|
| 4319 |
+
0.8
|
| 4320 |
+
0.65
|
| 4321 |
+
0.65
|
| 4322 |
+
0.65
|
| 4323 |
+
1
|
| 4324 |
+
0.65
|
| 4325 |
+
0.65
|
| 4326 |
+
0.65
|
| 4327 |
+
0.8
|
| 4328 |
+
0.65
|
| 4329 |
+
0.65
|
| 4330 |
+
0.8
|
| 4331 |
+
0.65
|
| 4332 |
+
0.65
|
| 4333 |
+
0.8
|
| 4334 |
+
0.85
|
| 4335 |
+
0.65
|
| 4336 |
+
0.65
|
| 4337 |
+
0.8
|
| 4338 |
+
0.8
|
| 4339 |
+
0.65
|
| 4340 |
+
0.65
|
| 4341 |
+
0.65
|
| 4342 |
+
0.8
|
| 4343 |
+
0.65
|
| 4344 |
+
0.65
|
| 4345 |
+
0.65
|
| 4346 |
+
0.88
|
| 4347 |
+
0.65
|
| 4348 |
+
0.65
|
| 4349 |
+
0.65
|
| 4350 |
+
0.65
|
| 4351 |
+
0.8
|
| 4352 |
+
0.65
|
| 4353 |
+
0.65
|
| 4354 |
+
0.65
|
| 4355 |
+
0.65
|
| 4356 |
+
0.8
|
| 4357 |
+
0.65
|
| 4358 |
+
0.8
|
| 4359 |
+
0.65
|
| 4360 |
+
0.65
|
| 4361 |
+
0.65
|
| 4362 |
+
0.8
|
| 4363 |
+
0.8
|
| 4364 |
+
0.8
|
| 4365 |
+
0.65
|
| 4366 |
+
0.65
|
| 4367 |
+
0.65
|
| 4368 |
+
0.65
|
| 4369 |
+
0.68
|
| 4370 |
+
0.65
|
| 4371 |
+
0.65
|
| 4372 |
+
0.65
|
| 4373 |
+
0.65
|
| 4374 |
+
0.65
|
| 4375 |
+
0.65
|
| 4376 |
+
0.89
|
| 4377 |
+
0.65
|
| 4378 |
+
0.65
|
| 4379 |
+
0.65
|
| 4380 |
+
0.65
|
| 4381 |
+
0.65
|
| 4382 |
+
0.65
|
| 4383 |
+
0.65
|
| 4384 |
+
0.65
|
| 4385 |
+
0.65
|
| 4386 |
+
0.65
|
| 4387 |
+
0.65
|
| 4388 |
+
0.65
|
| 4389 |
+
0.65
|
| 4390 |
+
0.8
|
| 4391 |
+
0.65
|
| 4392 |
+
0.65
|
| 4393 |
+
0.65
|
| 4394 |
+
0.8
|
| 4395 |
+
0.9
|
| 4396 |
+
0.65
|
| 4397 |
+
0.8
|
| 4398 |
+
0.65
|
| 4399 |
+
0.8
|
| 4400 |
+
0.65
|
| 4401 |
+
0.65
|
| 4402 |
+
0.65
|
| 4403 |
+
0.65
|
| 4404 |
+
0.65
|
| 4405 |
+
0.65
|
| 4406 |
+
0.65
|
| 4407 |
+
0.81
|
| 4408 |
+
0.65
|
| 4409 |
+
0.65
|
| 4410 |
+
0.65
|
| 4411 |
+
0.8
|
| 4412 |
+
0.85
|
| 4413 |
+
0.65
|
| 4414 |
+
0.77
|
| 4415 |
+
0.65
|
| 4416 |
+
0.8
|
| 4417 |
+
0.65
|
| 4418 |
+
0.65
|
| 4419 |
+
0.65
|
| 4420 |
+
0.65
|
| 4421 |
+
0.65
|
| 4422 |
+
0.65
|
| 4423 |
+
0.65
|
| 4424 |
+
0.65
|
| 4425 |
+
0.65
|
| 4426 |
+
0.65
|
| 4427 |
+
0.65
|
| 4428 |
+
0.8
|
| 4429 |
+
0.8
|
| 4430 |
+
0.8
|
| 4431 |
+
0.9
|
| 4432 |
+
0.65
|
| 4433 |
+
0.65
|
| 4434 |
+
0.89
|
| 4435 |
+
0.65
|
| 4436 |
+
0.65
|
| 4437 |
+
0.8
|
| 4438 |
+
0.65
|
| 4439 |
+
0.65
|
| 4440 |
+
0.8
|
| 4441 |
+
0.8
|
| 4442 |
+
0.65
|
| 4443 |
+
0.65
|
| 4444 |
+
0.65
|
| 4445 |
+
0.88
|
| 4446 |
+
0.8
|
| 4447 |
+
0.65
|
| 4448 |
+
0.8
|
| 4449 |
+
0.65
|
| 4450 |
+
0.65
|
| 4451 |
+
0.65
|
| 4452 |
+
0.65
|
| 4453 |
+
0.65
|
| 4454 |
+
0.65
|
| 4455 |
+
0.8
|
| 4456 |
+
0.65
|
| 4457 |
+
0.65
|
| 4458 |
+
0.8
|
| 4459 |
+
0.65
|
| 4460 |
+
0.65
|
| 4461 |
+
0.65
|
| 4462 |
+
0.65
|
| 4463 |
+
0.65
|
| 4464 |
+
0.8
|
| 4465 |
+
0.65
|
| 4466 |
+
0.65
|
| 4467 |
+
0.65
|
| 4468 |
+
0.65
|
| 4469 |
+
0.65
|
| 4470 |
+
0.65
|
| 4471 |
+
0.82
|
| 4472 |
+
0.65
|
| 4473 |
+
0.8
|
| 4474 |
+
0.74
|
| 4475 |
+
0.65
|
| 4476 |
+
0.65
|
| 4477 |
+
0.65
|
| 4478 |
+
0.65
|
| 4479 |
+
0.65
|
| 4480 |
+
0.65
|
| 4481 |
+
0.85
|
| 4482 |
+
0.65
|
| 4483 |
+
0.65
|
| 4484 |
+
0.85
|
| 4485 |
+
0.65
|
| 4486 |
+
0.65
|
| 4487 |
+
0.65
|
| 4488 |
+
0.65
|
| 4489 |
+
0.7
|
| 4490 |
+
0.7
|
| 4491 |
+
0.8
|
| 4492 |
+
0.65
|
| 4493 |
+
0.65
|
| 4494 |
+
0.65
|
| 4495 |
+
0.65
|
| 4496 |
+
0.87
|
| 4497 |
+
0.8
|
| 4498 |
+
0.65
|
| 4499 |
+
0.65
|
| 4500 |
+
0.65
|
| 4501 |
+
0.89
|
| 4502 |
+
0.85
|
| 4503 |
+
0.65
|
| 4504 |
+
0.65
|
| 4505 |
+
0.65
|
| 4506 |
+
0.8
|
| 4507 |
+
0.65
|
| 4508 |
+
0.65
|
| 4509 |
+
0.65
|
| 4510 |
+
0.65
|
| 4511 |
+
0.65
|
| 4512 |
+
0.65
|
| 4513 |
+
0.65
|
| 4514 |
+
0.65
|
| 4515 |
+
0.65
|
| 4516 |
+
0.65
|
| 4517 |
+
0.65
|
| 4518 |
+
0.65
|
| 4519 |
+
0.65
|
| 4520 |
+
0.8
|
| 4521 |
+
0.7
|
| 4522 |
+
0.65
|
| 4523 |
+
0.65
|
| 4524 |
+
0.65
|
| 4525 |
+
0.65
|
| 4526 |
+
0.65
|
| 4527 |
+
0.8
|
| 4528 |
+
0.65
|
| 4529 |
+
0.65
|
| 4530 |
+
0.65
|
| 4531 |
+
0.65
|
| 4532 |
+
0.9
|
| 4533 |
+
0.8
|
| 4534 |
+
0.8
|
| 4535 |
+
0.65
|
| 4536 |
+
0.66
|
| 4537 |
+
0.57
|
| 4538 |
+
0.65
|
| 4539 |
+
0.65
|
| 4540 |
+
0.65
|
| 4541 |
+
0.49
|
| 4542 |
+
0.65
|
| 4543 |
+
0.65
|
| 4544 |
+
0.8
|
| 4545 |
+
0.65
|
| 4546 |
+
0.65
|
| 4547 |
+
0.8
|
| 4548 |
+
0.65
|
| 4549 |
+
0.65
|
| 4550 |
+
0.8
|
| 4551 |
+
0.65
|
| 4552 |
+
0.65
|
| 4553 |
+
0.65
|
| 4554 |
+
0.8
|
| 4555 |
+
0.65
|
| 4556 |
+
0.65
|
| 4557 |
+
0.65
|
| 4558 |
+
0.65
|
| 4559 |
+
0.65
|
| 4560 |
+
0.65
|
| 4561 |
+
0.8
|
| 4562 |
+
0.65
|
| 4563 |
+
0.65
|
| 4564 |
+
0.65
|
| 4565 |
+
0.65
|
| 4566 |
+
0.8
|
| 4567 |
+
0.65
|
| 4568 |
+
0.8
|
| 4569 |
+
0.8
|
| 4570 |
+
0.86
|
| 4571 |
+
0.65
|
| 4572 |
+
0.65
|
| 4573 |
+
0.65
|
| 4574 |
+
0.65
|
| 4575 |
+
0.65
|
| 4576 |
+
0.65
|
| 4577 |
+
0.65
|
| 4578 |
+
0.89
|
| 4579 |
+
0.65
|
| 4580 |
+
0.65
|
| 4581 |
+
0.65
|
| 4582 |
+
0.65
|
| 4583 |
+
0.65
|
| 4584 |
+
0.65
|
| 4585 |
+
0.76
|
ram/data/tag_list.txt
ADDED
|
@@ -0,0 +1,3429 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
tennis
|
| 2 |
+
bear cub
|
| 3 |
+
observatory
|
| 4 |
+
bicycle
|
| 5 |
+
hillside
|
| 6 |
+
judge
|
| 7 |
+
watercolor illustration
|
| 8 |
+
granite
|
| 9 |
+
lobster
|
| 10 |
+
livery
|
| 11 |
+
stone
|
| 12 |
+
ceramic
|
| 13 |
+
ranch
|
| 14 |
+
cloth
|
| 15 |
+
smile
|
| 16 |
+
building
|
| 17 |
+
tattoo
|
| 18 |
+
cricketer
|
| 19 |
+
cheek
|
| 20 |
+
pear
|
| 21 |
+
source
|
| 22 |
+
winter
|
| 23 |
+
surface
|
| 24 |
+
spray
|
| 25 |
+
ceremony
|
| 26 |
+
magic
|
| 27 |
+
curve
|
| 28 |
+
container
|
| 29 |
+
fair
|
| 30 |
+
medicine
|
| 31 |
+
baby
|
| 32 |
+
tennis racquet
|
| 33 |
+
ornament
|
| 34 |
+
bamboo
|
| 35 |
+
duckling
|
| 36 |
+
song
|
| 37 |
+
safari
|
| 38 |
+
team presentation
|
| 39 |
+
daffodil
|
| 40 |
+
cross
|
| 41 |
+
toothpaste
|
| 42 |
+
shield
|
| 43 |
+
fashion model
|
| 44 |
+
capsule
|
| 45 |
+
map
|
| 46 |
+
creek
|
| 47 |
+
glass house
|
| 48 |
+
glass plate
|
| 49 |
+
siding
|
| 50 |
+
corner
|
| 51 |
+
water buffalo
|
| 52 |
+
bison
|
| 53 |
+
figure skater
|
| 54 |
+
diploma
|
| 55 |
+
tire
|
| 56 |
+
race
|
| 57 |
+
cable car
|
| 58 |
+
brain
|
| 59 |
+
gas stove
|
| 60 |
+
soap bubble
|
| 61 |
+
palette
|
| 62 |
+
snowboard
|
| 63 |
+
school child
|
| 64 |
+
trench coat
|
| 65 |
+
monk
|
| 66 |
+
fiber
|
| 67 |
+
kitchen window
|
| 68 |
+
sunglass
|
| 69 |
+
coffee
|
| 70 |
+
security
|
| 71 |
+
strawberry
|
| 72 |
+
penguin
|
| 73 |
+
tree root
|
| 74 |
+
loaf
|
| 75 |
+
engagement ring
|
| 76 |
+
lamb
|
| 77 |
+
vector cartoon illustration
|
| 78 |
+
sandwich
|
| 79 |
+
mountain village
|
| 80 |
+
shape
|
| 81 |
+
charm
|
| 82 |
+
fiction
|
| 83 |
+
knot
|
| 84 |
+
greenhouse
|
| 85 |
+
sushi
|
| 86 |
+
text
|
| 87 |
+
disaster
|
| 88 |
+
trophy
|
| 89 |
+
gang
|
| 90 |
+
strap
|
| 91 |
+
soccer game
|
| 92 |
+
cardinal
|
| 93 |
+
tee
|
| 94 |
+
turtle
|
| 95 |
+
water surface
|
| 96 |
+
grassland
|
| 97 |
+
dolphin
|
| 98 |
+
store
|
| 99 |
+
dirt
|
| 100 |
+
iceberg
|
| 101 |
+
pergola
|
| 102 |
+
farmer market
|
| 103 |
+
publicity portrait
|
| 104 |
+
tote bag
|
| 105 |
+
teenage girl
|
| 106 |
+
view mirror
|
| 107 |
+
session
|
| 108 |
+
commuter
|
| 109 |
+
dressing room
|
| 110 |
+
tricycle
|
| 111 |
+
christmas ball
|
| 112 |
+
headlight
|
| 113 |
+
police
|
| 114 |
+
armchair
|
| 115 |
+
chart
|
| 116 |
+
yacht
|
| 117 |
+
saw
|
| 118 |
+
printer
|
| 119 |
+
rock band
|
| 120 |
+
gingerbread house
|
| 121 |
+
tag
|
| 122 |
+
table lamp
|
| 123 |
+
hockey game
|
| 124 |
+
slope
|
| 125 |
+
font
|
| 126 |
+
wicker basket
|
| 127 |
+
jewelry
|
| 128 |
+
quarter
|
| 129 |
+
software
|
| 130 |
+
weapon
|
| 131 |
+
pin
|
| 132 |
+
worship
|
| 133 |
+
painter
|
| 134 |
+
goal
|
| 135 |
+
morning light
|
| 136 |
+
bike
|
| 137 |
+
baseball bat
|
| 138 |
+
elevator
|
| 139 |
+
cuisine
|
| 140 |
+
sausage
|
| 141 |
+
stunt
|
| 142 |
+
wrestler
|
| 143 |
+
statue
|
| 144 |
+
landing
|
| 145 |
+
pillar
|
| 146 |
+
willow tree
|
| 147 |
+
sea wave
|
| 148 |
+
chicken
|
| 149 |
+
peanut
|
| 150 |
+
muscle
|
| 151 |
+
bob
|
| 152 |
+
tv genre
|
| 153 |
+
bathroom window
|
| 154 |
+
radish
|
| 155 |
+
textile
|
| 156 |
+
pelican
|
| 157 |
+
marketplace
|
| 158 |
+
crest
|
| 159 |
+
elevation map
|
| 160 |
+
gift
|
| 161 |
+
parish
|
| 162 |
+
traffic light
|
| 163 |
+
campfire
|
| 164 |
+
fog
|
| 165 |
+
award winner
|
| 166 |
+
beach ball
|
| 167 |
+
mat
|
| 168 |
+
white house
|
| 169 |
+
plaster
|
| 170 |
+
moped
|
| 171 |
+
football team
|
| 172 |
+
solution
|
| 173 |
+
bicyclist
|
| 174 |
+
bit
|
| 175 |
+
playground
|
| 176 |
+
darkness
|
| 177 |
+
cake
|
| 178 |
+
maple leave
|
| 179 |
+
mold
|
| 180 |
+
cracker
|
| 181 |
+
blueberry
|
| 182 |
+
rubble
|
| 183 |
+
container ship
|
| 184 |
+
pedestrian bridge
|
| 185 |
+
snail
|
| 186 |
+
parrot
|
| 187 |
+
form
|
| 188 |
+
circuit
|
| 189 |
+
highlight
|
| 190 |
+
pickup truck
|
| 191 |
+
koala
|
| 192 |
+
rain
|
| 193 |
+
system
|
| 194 |
+
weather
|
| 195 |
+
raincoat
|
| 196 |
+
soccer team
|
| 197 |
+
windshield
|
| 198 |
+
thunderstorm
|
| 199 |
+
mike
|
| 200 |
+
bird house
|
| 201 |
+
bridge
|
| 202 |
+
grandfather
|
| 203 |
+
restroom
|
| 204 |
+
animation
|
| 205 |
+
wilderness
|
| 206 |
+
clown
|
| 207 |
+
banana
|
| 208 |
+
brown
|
| 209 |
+
braid
|
| 210 |
+
dining room
|
| 211 |
+
kindergarten
|
| 212 |
+
launch event
|
| 213 |
+
purple
|
| 214 |
+
school
|
| 215 |
+
stairwell
|
| 216 |
+
brooch
|
| 217 |
+
movie poster image
|
| 218 |
+
mountain river
|
| 219 |
+
shelf
|
| 220 |
+
wicket
|
| 221 |
+
headboard
|
| 222 |
+
buddha
|
| 223 |
+
flower field
|
| 224 |
+
dugout
|
| 225 |
+
cd
|
| 226 |
+
bald eagle
|
| 227 |
+
lagoon
|
| 228 |
+
seaweed
|
| 229 |
+
agriculture
|
| 230 |
+
emergency service
|
| 231 |
+
maple tree
|
| 232 |
+
parachute
|
| 233 |
+
continent
|
| 234 |
+
amusement park
|
| 235 |
+
remote
|
| 236 |
+
bun
|
| 237 |
+
tackle
|
| 238 |
+
hospital
|
| 239 |
+
garage door
|
| 240 |
+
birthday party
|
| 241 |
+
friendship
|
| 242 |
+
go
|
| 243 |
+
mausoleum
|
| 244 |
+
jeep
|
| 245 |
+
raccoon
|
| 246 |
+
step
|
| 247 |
+
ice hockey team
|
| 248 |
+
cigarette
|
| 249 |
+
lace dress
|
| 250 |
+
forest floor
|
| 251 |
+
mall
|
| 252 |
+
captain
|
| 253 |
+
milk
|
| 254 |
+
golf course
|
| 255 |
+
meal
|
| 256 |
+
picnic table
|
| 257 |
+
sail
|
| 258 |
+
volleyball
|
| 259 |
+
canal
|
| 260 |
+
terrace
|
| 261 |
+
computer desk
|
| 262 |
+
caravan
|
| 263 |
+
hotel
|
| 264 |
+
cheerleader
|
| 265 |
+
nurse
|
| 266 |
+
museum
|
| 267 |
+
marsh
|
| 268 |
+
fox
|
| 269 |
+
plateau
|
| 270 |
+
night
|
| 271 |
+
twin
|
| 272 |
+
letter logo
|
| 273 |
+
autumn tree
|
| 274 |
+
powder
|
| 275 |
+
convention
|
| 276 |
+
creature
|
| 277 |
+
lighthouse
|
| 278 |
+
shop window
|
| 279 |
+
jacket
|
| 280 |
+
stork
|
| 281 |
+
taxi
|
| 282 |
+
trade
|
| 283 |
+
blackboard
|
| 284 |
+
olive
|
| 285 |
+
road sign
|
| 286 |
+
resort
|
| 287 |
+
snowflake
|
| 288 |
+
cemetery
|
| 289 |
+
travel
|
| 290 |
+
evening dress
|
| 291 |
+
picnic
|
| 292 |
+
drink
|
| 293 |
+
winter morning
|
| 294 |
+
football player
|
| 295 |
+
snack
|
| 296 |
+
boxing glove
|
| 297 |
+
dinner party
|
| 298 |
+
airline
|
| 299 |
+
swing
|
| 300 |
+
port
|
| 301 |
+
wheelbarrow
|
| 302 |
+
bathroom sink
|
| 303 |
+
sweater
|
| 304 |
+
ambulance
|
| 305 |
+
gear
|
| 306 |
+
oil
|
| 307 |
+
wii controller
|
| 308 |
+
array
|
| 309 |
+
home office
|
| 310 |
+
car show
|
| 311 |
+
mixture
|
| 312 |
+
profession
|
| 313 |
+
tree frog
|
| 314 |
+
square
|
| 315 |
+
facility
|
| 316 |
+
coral reef
|
| 317 |
+
sea wall
|
| 318 |
+
pizza
|
| 319 |
+
exhibit
|
| 320 |
+
demolition
|
| 321 |
+
trout
|
| 322 |
+
ring
|
| 323 |
+
coffee shop
|
| 324 |
+
bracelet
|
| 325 |
+
bean
|
| 326 |
+
lip
|
| 327 |
+
fencing
|
| 328 |
+
landscape
|
| 329 |
+
sitting
|
| 330 |
+
package
|
| 331 |
+
metal
|
| 332 |
+
bust
|
| 333 |
+
king
|
| 334 |
+
hair
|
| 335 |
+
window seat
|
| 336 |
+
wildlife
|
| 337 |
+
trunk
|
| 338 |
+
greenery
|
| 339 |
+
stencil
|
| 340 |
+
fire hydrant
|
| 341 |
+
bridesmaid
|
| 342 |
+
plaza
|
| 343 |
+
alps
|
| 344 |
+
tower bridge
|
| 345 |
+
crop top
|
| 346 |
+
crossing
|
| 347 |
+
cinema
|
| 348 |
+
pedestrian crossing
|
| 349 |
+
family
|
| 350 |
+
shopping cart
|
| 351 |
+
stomach
|
| 352 |
+
church building
|
| 353 |
+
screen door
|
| 354 |
+
skater
|
| 355 |
+
soccer field
|
| 356 |
+
kettle
|
| 357 |
+
mussel
|
| 358 |
+
raindrop
|
| 359 |
+
candy cane
|
| 360 |
+
water lily
|
| 361 |
+
flower girl
|
| 362 |
+
desert
|
| 363 |
+
enclosure
|
| 364 |
+
christmas light
|
| 365 |
+
kitchen
|
| 366 |
+
caterpillar
|
| 367 |
+
plaid
|
| 368 |
+
bath
|
| 369 |
+
bush
|
| 370 |
+
mud
|
| 371 |
+
ballet
|
| 372 |
+
knee
|
| 373 |
+
adult
|
| 374 |
+
raft
|
| 375 |
+
sea view
|
| 376 |
+
cactus
|
| 377 |
+
office chair
|
| 378 |
+
overall
|
| 379 |
+
rim
|
| 380 |
+
scaffolding
|
| 381 |
+
pig
|
| 382 |
+
cover
|
| 383 |
+
poster page
|
| 384 |
+
sprinkle
|
| 385 |
+
chandelier
|
| 386 |
+
algae
|
| 387 |
+
traffic
|
| 388 |
+
surfboard
|
| 389 |
+
book
|
| 390 |
+
filming
|
| 391 |
+
flash
|
| 392 |
+
mansion
|
| 393 |
+
camouflage
|
| 394 |
+
trouser
|
| 395 |
+
ticket
|
| 396 |
+
weed
|
| 397 |
+
cab
|
| 398 |
+
trench
|
| 399 |
+
elephant
|
| 400 |
+
huddle
|
| 401 |
+
sphere
|
| 402 |
+
christmas decoration
|
| 403 |
+
city
|
| 404 |
+
launch
|
| 405 |
+
doll
|
| 406 |
+
christmas ornament
|
| 407 |
+
fabric
|
| 408 |
+
bikini
|
| 409 |
+
biplane
|
| 410 |
+
breakfast
|
| 411 |
+
neighbourhood
|
| 412 |
+
race track
|
| 413 |
+
foliage
|
| 414 |
+
avocado
|
| 415 |
+
school bus
|
| 416 |
+
footwear
|
| 417 |
+
highway
|
| 418 |
+
ocean view
|
| 419 |
+
art vector illustration
|
| 420 |
+
wall clock
|
| 421 |
+
curtain
|
| 422 |
+
teenager
|
| 423 |
+
kitchen area
|
| 424 |
+
robot
|
| 425 |
+
tusk
|
| 426 |
+
lounge chair
|
| 427 |
+
beam
|
| 428 |
+
paddle
|
| 429 |
+
camel
|
| 430 |
+
lid
|
| 431 |
+
world map
|
| 432 |
+
city view
|
| 433 |
+
newlywed
|
| 434 |
+
cargo ship
|
| 435 |
+
yellow
|
| 436 |
+
exhibition
|
| 437 |
+
bend
|
| 438 |
+
novel
|
| 439 |
+
wool
|
| 440 |
+
ontario
|
| 441 |
+
bread
|
| 442 |
+
campus
|
| 443 |
+
coastline
|
| 444 |
+
cutting board
|
| 445 |
+
booth
|
| 446 |
+
table top
|
| 447 |
+
carpet
|
| 448 |
+
beach chair
|
| 449 |
+
workout
|
| 450 |
+
street food
|
| 451 |
+
fun
|
| 452 |
+
costumer film designer
|
| 453 |
+
gadget
|
| 454 |
+
artist
|
| 455 |
+
fishing village
|
| 456 |
+
builder
|
| 457 |
+
violinist
|
| 458 |
+
iphone
|
| 459 |
+
spider web
|
| 460 |
+
traffic sign
|
| 461 |
+
ruin
|
| 462 |
+
rescue
|
| 463 |
+
clipboard
|
| 464 |
+
seal
|
| 465 |
+
film director
|
| 466 |
+
paw
|
| 467 |
+
nursery
|
| 468 |
+
intersection
|
| 469 |
+
tomato sauce
|
| 470 |
+
taste
|
| 471 |
+
paddy field
|
| 472 |
+
christmas tree
|
| 473 |
+
wave
|
| 474 |
+
stool
|
| 475 |
+
watering can
|
| 476 |
+
rug
|
| 477 |
+
daytime
|
| 478 |
+
subway station
|
| 479 |
+
craft
|
| 480 |
+
pine forest
|
| 481 |
+
black
|
| 482 |
+
planet
|
| 483 |
+
motif
|
| 484 |
+
christmas market
|
| 485 |
+
glass window
|
| 486 |
+
college
|
| 487 |
+
wheat
|
| 488 |
+
damage
|
| 489 |
+
rectangle
|
| 490 |
+
picture frame
|
| 491 |
+
chess
|
| 492 |
+
guest room
|
| 493 |
+
street corner
|
| 494 |
+
religion
|
| 495 |
+
seed
|
| 496 |
+
puzzle
|
| 497 |
+
freeway
|
| 498 |
+
beauty
|
| 499 |
+
ocean
|
| 500 |
+
watch
|
| 501 |
+
mother
|
| 502 |
+
garage
|
| 503 |
+
quote
|
| 504 |
+
dj
|
| 505 |
+
supporter
|
| 506 |
+
hip hop artist
|
| 507 |
+
muffin
|
| 508 |
+
eiffel tower
|
| 509 |
+
cash
|
| 510 |
+
firefighter
|
| 511 |
+
cauliflower
|
| 512 |
+
bunker
|
| 513 |
+
sled
|
| 514 |
+
manicure
|
| 515 |
+
shark
|
| 516 |
+
stall
|
| 517 |
+
jungle
|
| 518 |
+
family home
|
| 519 |
+
tour bus
|
| 520 |
+
chimney
|
| 521 |
+
touchdown
|
| 522 |
+
roundabout
|
| 523 |
+
coyote
|
| 524 |
+
street scene
|
| 525 |
+
tank
|
| 526 |
+
wedding dress
|
| 527 |
+
mantle
|
| 528 |
+
bedroom window
|
| 529 |
+
coconut
|
| 530 |
+
chapel
|
| 531 |
+
goat
|
| 532 |
+
living space
|
| 533 |
+
rock wall
|
| 534 |
+
polka dot
|
| 535 |
+
railway
|
| 536 |
+
mandala
|
| 537 |
+
mango
|
| 538 |
+
lesson
|
| 539 |
+
mountain landscape
|
| 540 |
+
team photo
|
| 541 |
+
bookshelf
|
| 542 |
+
meter
|
| 543 |
+
bulldog
|
| 544 |
+
evening sun
|
| 545 |
+
stick
|
| 546 |
+
card
|
| 547 |
+
pink
|
| 548 |
+
fish pond
|
| 549 |
+
paint
|
| 550 |
+
pill
|
| 551 |
+
cart
|
| 552 |
+
pea
|
| 553 |
+
van
|
| 554 |
+
album
|
| 555 |
+
football college game
|
| 556 |
+
mountain pass
|
| 557 |
+
doughnut
|
| 558 |
+
ski slope
|
| 559 |
+
match
|
| 560 |
+
official
|
| 561 |
+
shadow
|
| 562 |
+
organ
|
| 563 |
+
celebration
|
| 564 |
+
coin
|
| 565 |
+
log cabin
|
| 566 |
+
firework display
|
| 567 |
+
present
|
| 568 |
+
twig
|
| 569 |
+
chef
|
| 570 |
+
confetti
|
| 571 |
+
footpath
|
| 572 |
+
tour
|
| 573 |
+
ponytail
|
| 574 |
+
artwork
|
| 575 |
+
race car
|
| 576 |
+
club
|
| 577 |
+
season
|
| 578 |
+
hose
|
| 579 |
+
pencil
|
| 580 |
+
aircraft
|
| 581 |
+
rock formation
|
| 582 |
+
wardrobe
|
| 583 |
+
participant
|
| 584 |
+
politician
|
| 585 |
+
engineer
|
| 586 |
+
peace
|
| 587 |
+
filter
|
| 588 |
+
sailing boat
|
| 589 |
+
water bottle
|
| 590 |
+
service dog
|
| 591 |
+
poodle
|
| 592 |
+
loki
|
| 593 |
+
statesman
|
| 594 |
+
sleeping bag
|
| 595 |
+
outskirt
|
| 596 |
+
clock
|
| 597 |
+
factory
|
| 598 |
+
oak tree
|
| 599 |
+
physician
|
| 600 |
+
color
|
| 601 |
+
room
|
| 602 |
+
stairway
|
| 603 |
+
company
|
| 604 |
+
lady
|
| 605 |
+
graph
|
| 606 |
+
faucet
|
| 607 |
+
tablecloth
|
| 608 |
+
subway train
|
| 609 |
+
chocolate chip cookie
|
| 610 |
+
headquarters
|
| 611 |
+
screw
|
| 612 |
+
goggle
|
| 613 |
+
halloween
|
| 614 |
+
city street
|
| 615 |
+
swirl
|
| 616 |
+
cord
|
| 617 |
+
forward
|
| 618 |
+
bone
|
| 619 |
+
bedding
|
| 620 |
+
archway
|
| 621 |
+
wig
|
| 622 |
+
lobby
|
| 623 |
+
mask
|
| 624 |
+
attic
|
| 625 |
+
kitchen table
|
| 626 |
+
skylight
|
| 627 |
+
fire
|
| 628 |
+
exit
|
| 629 |
+
oil painting
|
| 630 |
+
passenger
|
| 631 |
+
meditation
|
| 632 |
+
salmon
|
| 633 |
+
fedora
|
| 634 |
+
rubber stamp
|
| 635 |
+
orange juice
|
| 636 |
+
arch
|
| 637 |
+
scientist
|
| 638 |
+
stroll
|
| 639 |
+
manhattan
|
| 640 |
+
float
|
| 641 |
+
baseball uniform
|
| 642 |
+
circle
|
| 643 |
+
church
|
| 644 |
+
decker bus
|
| 645 |
+
competitor
|
| 646 |
+
zoo
|
| 647 |
+
basketball team
|
| 648 |
+
tourist
|
| 649 |
+
daughter
|
| 650 |
+
silverware
|
| 651 |
+
ceiling fan
|
| 652 |
+
birth
|
| 653 |
+
vase
|
| 654 |
+
jack
|
| 655 |
+
mushroom
|
| 656 |
+
spiral
|
| 657 |
+
cage
|
| 658 |
+
limb
|
| 659 |
+
salad
|
| 660 |
+
ad
|
| 661 |
+
control
|
| 662 |
+
earth
|
| 663 |
+
party
|
| 664 |
+
bolt
|
| 665 |
+
tractor
|
| 666 |
+
barley
|
| 667 |
+
wedding photo
|
| 668 |
+
hawk
|
| 669 |
+
warehouse
|
| 670 |
+
vegetable garden
|
| 671 |
+
chocolate cake
|
| 672 |
+
cabbage
|
| 673 |
+
floor window
|
| 674 |
+
baby shower
|
| 675 |
+
magnifying glass
|
| 676 |
+
table
|
| 677 |
+
stethoscope
|
| 678 |
+
reading
|
| 679 |
+
mission
|
| 680 |
+
croissant
|
| 681 |
+
gift box
|
| 682 |
+
rocket
|
| 683 |
+
forest road
|
| 684 |
+
cooking
|
| 685 |
+
suite
|
| 686 |
+
hill country
|
| 687 |
+
motorcycle
|
| 688 |
+
baseball player
|
| 689 |
+
angle
|
| 690 |
+
drug
|
| 691 |
+
sport association
|
| 692 |
+
championship
|
| 693 |
+
family portrait
|
| 694 |
+
florist
|
| 695 |
+
softball
|
| 696 |
+
egret
|
| 697 |
+
office
|
| 698 |
+
plywood
|
| 699 |
+
jockey
|
| 700 |
+
mosque
|
| 701 |
+
brunch
|
| 702 |
+
beanie
|
| 703 |
+
office building
|
| 704 |
+
pattern
|
| 705 |
+
calendar
|
| 706 |
+
indoor
|
| 707 |
+
pepper
|
| 708 |
+
ledge
|
| 709 |
+
trail
|
| 710 |
+
fuel
|
| 711 |
+
laptop computer
|
| 712 |
+
tennis shoe
|
| 713 |
+
deck chair
|
| 714 |
+
guitarist
|
| 715 |
+
barn
|
| 716 |
+
surgery
|
| 717 |
+
cartoon illustration
|
| 718 |
+
nebula
|
| 719 |
+
railroad
|
| 720 |
+
mountain goat
|
| 721 |
+
goose
|
| 722 |
+
car door
|
| 723 |
+
cheer
|
| 724 |
+
liquid
|
| 725 |
+
hardwood floor
|
| 726 |
+
pathway
|
| 727 |
+
acorn
|
| 728 |
+
gull
|
| 729 |
+
airliner
|
| 730 |
+
couch
|
| 731 |
+
lake house
|
| 732 |
+
spaghetti
|
| 733 |
+
promenade
|
| 734 |
+
collection
|
| 735 |
+
garden
|
| 736 |
+
bank
|
| 737 |
+
robin
|
| 738 |
+
tennis ball
|
| 739 |
+
peony
|
| 740 |
+
gymnast
|
| 741 |
+
lavender
|
| 742 |
+
deck
|
| 743 |
+
test
|
| 744 |
+
riverside
|
| 745 |
+
rapper
|
| 746 |
+
domino
|
| 747 |
+
bride
|
| 748 |
+
mouse
|
| 749 |
+
basil
|
| 750 |
+
wedding couple
|
| 751 |
+
ocean wave
|
| 752 |
+
arm
|
| 753 |
+
kitchen floor
|
| 754 |
+
grove
|
| 755 |
+
family member
|
| 756 |
+
backyard
|
| 757 |
+
raspberry
|
| 758 |
+
forest fire
|
| 759 |
+
officer
|
| 760 |
+
hibiscus
|
| 761 |
+
canyon
|
| 762 |
+
composer
|
| 763 |
+
signature
|
| 764 |
+
olive oil
|
| 765 |
+
hibiscus flower
|
| 766 |
+
rose
|
| 767 |
+
vector icon
|
| 768 |
+
sunrise
|
| 769 |
+
horseback
|
| 770 |
+
motor scooter
|
| 771 |
+
office worker
|
| 772 |
+
tradition
|
| 773 |
+
ingredient
|
| 774 |
+
washing machine
|
| 775 |
+
lighting
|
| 776 |
+
bagel
|
| 777 |
+
sailboat
|
| 778 |
+
policeman
|
| 779 |
+
mare
|
| 780 |
+
graphic
|
| 781 |
+
halloween pumpkin
|
| 782 |
+
stock
|
| 783 |
+
pilot
|
| 784 |
+
education
|
| 785 |
+
team
|
| 786 |
+
body
|
| 787 |
+
horse
|
| 788 |
+
kimono
|
| 789 |
+
bazaar
|
| 790 |
+
bag
|
| 791 |
+
recording studio
|
| 792 |
+
parsley
|
| 793 |
+
entrance
|
| 794 |
+
denim
|
| 795 |
+
vet
|
| 796 |
+
horse farm
|
| 797 |
+
charcoal
|
| 798 |
+
architecture
|
| 799 |
+
glass vase
|
| 800 |
+
puppy
|
| 801 |
+
estuary
|
| 802 |
+
television show host
|
| 803 |
+
city bus
|
| 804 |
+
shoulder
|
| 805 |
+
beast
|
| 806 |
+
balance
|
| 807 |
+
golfer
|
| 808 |
+
roadside
|
| 809 |
+
denim jacket
|
| 810 |
+
stone wall
|
| 811 |
+
counter top
|
| 812 |
+
app icon
|
| 813 |
+
toast
|
| 814 |
+
head coach
|
| 815 |
+
ham
|
| 816 |
+
warrior
|
| 817 |
+
gem
|
| 818 |
+
refrigerator
|
| 819 |
+
snowman
|
| 820 |
+
construction worker
|
| 821 |
+
coal
|
| 822 |
+
website
|
| 823 |
+
morning fog
|
| 824 |
+
mustard
|
| 825 |
+
human
|
| 826 |
+
owl
|
| 827 |
+
puppy dog
|
| 828 |
+
piggy bank
|
| 829 |
+
vegetation
|
| 830 |
+
pirate
|
| 831 |
+
action film
|
| 832 |
+
marshmallow
|
| 833 |
+
thanksgiving
|
| 834 |
+
business
|
| 835 |
+
disease
|
| 836 |
+
signage
|
| 837 |
+
greeting
|
| 838 |
+
skate park
|
| 839 |
+
tile
|
| 840 |
+
mouth
|
| 841 |
+
spinach
|
| 842 |
+
vacation
|
| 843 |
+
leader
|
| 844 |
+
shrine
|
| 845 |
+
walker
|
| 846 |
+
science fiction film
|
| 847 |
+
bill
|
| 848 |
+
rabbit
|
| 849 |
+
motor boat
|
| 850 |
+
bar
|
| 851 |
+
radio
|
| 852 |
+
barge
|
| 853 |
+
tail
|
| 854 |
+
chainsaw
|
| 855 |
+
gallery
|
| 856 |
+
rainbow
|
| 857 |
+
pasta
|
| 858 |
+
padlock
|
| 859 |
+
web
|
| 860 |
+
pastry
|
| 861 |
+
ink
|
| 862 |
+
reef
|
| 863 |
+
school uniform
|
| 864 |
+
shawl
|
| 865 |
+
treasure
|
| 866 |
+
peach
|
| 867 |
+
dinner table
|
| 868 |
+
injury
|
| 869 |
+
harbor
|
| 870 |
+
witch
|
| 871 |
+
car dealership
|
| 872 |
+
litter
|
| 873 |
+
gesture
|
| 874 |
+
documentary
|
| 875 |
+
marriage
|
| 876 |
+
sea shell
|
| 877 |
+
priest
|
| 878 |
+
dome
|
| 879 |
+
kit
|
| 880 |
+
icon
|
| 881 |
+
seaside
|
| 882 |
+
bucket
|
| 883 |
+
entertainment
|
| 884 |
+
stable
|
| 885 |
+
hat
|
| 886 |
+
puddle
|
| 887 |
+
sock
|
| 888 |
+
shopper
|
| 889 |
+
technology
|
| 890 |
+
harbour
|
| 891 |
+
orbit
|
| 892 |
+
antler
|
| 893 |
+
tube
|
| 894 |
+
flag waving
|
| 895 |
+
cook
|
| 896 |
+
tight
|
| 897 |
+
commander
|
| 898 |
+
farmland
|
| 899 |
+
switch
|
| 900 |
+
hiker
|
| 901 |
+
wedding ceremony
|
| 902 |
+
award ceremony
|
| 903 |
+
champion
|
| 904 |
+
chopstick
|
| 905 |
+
farmhouse
|
| 906 |
+
performer
|
| 907 |
+
spike
|
| 908 |
+
accident
|
| 909 |
+
cruise ship
|
| 910 |
+
passenger train
|
| 911 |
+
attraction
|
| 912 |
+
entertainer
|
| 913 |
+
rear view
|
| 914 |
+
sidewalk
|
| 915 |
+
parade
|
| 916 |
+
racing
|
| 917 |
+
plane
|
| 918 |
+
ritual
|
| 919 |
+
peacock
|
| 920 |
+
pocket
|
| 921 |
+
plum
|
| 922 |
+
drop
|
| 923 |
+
carrot
|
| 924 |
+
floor
|
| 925 |
+
sunset
|
| 926 |
+
troop
|
| 927 |
+
architect
|
| 928 |
+
coffee table
|
| 929 |
+
dust
|
| 930 |
+
outline
|
| 931 |
+
leather
|
| 932 |
+
charity event
|
| 933 |
+
heat
|
| 934 |
+
whale
|
| 935 |
+
laundry
|
| 936 |
+
coconut tree
|
| 937 |
+
crosswalk
|
| 938 |
+
pony
|
| 939 |
+
ant
|
| 940 |
+
pipe
|
| 941 |
+
string
|
| 942 |
+
coat
|
| 943 |
+
angel
|
| 944 |
+
beef
|
| 945 |
+
church tower
|
| 946 |
+
dish
|
| 947 |
+
pitch
|
| 948 |
+
cupboard
|
| 949 |
+
thermometer
|
| 950 |
+
dirt field
|
| 951 |
+
fireworks
|
| 952 |
+
minute
|
| 953 |
+
cane
|
| 954 |
+
pajama
|
| 955 |
+
flower garden
|
| 956 |
+
autumn
|
| 957 |
+
trash can
|
| 958 |
+
dachshund
|
| 959 |
+
banana tree
|
| 960 |
+
tray
|
| 961 |
+
moose
|
| 962 |
+
roadway
|
| 963 |
+
carnival
|
| 964 |
+
antenna
|
| 965 |
+
pole
|
| 966 |
+
castle wall
|
| 967 |
+
ram
|
| 968 |
+
cattle
|
| 969 |
+
hay
|
| 970 |
+
cookie
|
| 971 |
+
swimmer
|
| 972 |
+
baseball team
|
| 973 |
+
strait
|
| 974 |
+
hedge
|
| 975 |
+
jet
|
| 976 |
+
fire pit
|
| 977 |
+
octopus
|
| 978 |
+
calf
|
| 979 |
+
cube
|
| 980 |
+
opera
|
| 981 |
+
cardboard box
|
| 982 |
+
tiara
|
| 983 |
+
kitchen sink
|
| 984 |
+
prairie
|
| 985 |
+
bowl
|
| 986 |
+
galaxy
|
| 987 |
+
straw hat
|
| 988 |
+
linen
|
| 989 |
+
ski resort
|
| 990 |
+
stitch
|
| 991 |
+
street lamp
|
| 992 |
+
motorist
|
| 993 |
+
icicle
|
| 994 |
+
stain
|
| 995 |
+
flora
|
| 996 |
+
drain
|
| 997 |
+
kitchen cabinet
|
| 998 |
+
decor
|
| 999 |
+
bouquet
|
| 1000 |
+
pound
|
| 1001 |
+
interior design
|
| 1002 |
+
nail polish
|
| 1003 |
+
figurine
|
| 1004 |
+
tomb
|
| 1005 |
+
disc
|
| 1006 |
+
twist
|
| 1007 |
+
blouse
|
| 1008 |
+
ribbon
|
| 1009 |
+
figure
|
| 1010 |
+
burger
|
| 1011 |
+
cork
|
| 1012 |
+
soccer goalkeeper
|
| 1013 |
+
train bridge
|
| 1014 |
+
drinking water
|
| 1015 |
+
dew
|
| 1016 |
+
baker
|
| 1017 |
+
storm cloud
|
| 1018 |
+
tarmac
|
| 1019 |
+
tv drama
|
| 1020 |
+
sponge
|
| 1021 |
+
magnet
|
| 1022 |
+
sailor
|
| 1023 |
+
entry
|
| 1024 |
+
swan
|
| 1025 |
+
exercise
|
| 1026 |
+
sloth
|
| 1027 |
+
jewel
|
| 1028 |
+
scuba diver
|
| 1029 |
+
bite
|
| 1030 |
+
cat tree
|
| 1031 |
+
tent
|
| 1032 |
+
can
|
| 1033 |
+
tennis match
|
| 1034 |
+
ecosystem
|
| 1035 |
+
picket fence
|
| 1036 |
+
palm
|
| 1037 |
+
train car
|
| 1038 |
+
frying pan
|
| 1039 |
+
rally
|
| 1040 |
+
tablet pc
|
| 1041 |
+
reindeer
|
| 1042 |
+
image
|
| 1043 |
+
wolf
|
| 1044 |
+
chin
|
| 1045 |
+
conservatory
|
| 1046 |
+
flood water
|
| 1047 |
+
cityscape
|
| 1048 |
+
beach sand
|
| 1049 |
+
car park
|
| 1050 |
+
pavement
|
| 1051 |
+
farm field
|
| 1052 |
+
swimming
|
| 1053 |
+
winter storm
|
| 1054 |
+
stem
|
| 1055 |
+
pillow
|
| 1056 |
+
inning
|
| 1057 |
+
gorilla
|
| 1058 |
+
desk
|
| 1059 |
+
avenue
|
| 1060 |
+
fern
|
| 1061 |
+
money
|
| 1062 |
+
pearl
|
| 1063 |
+
train station
|
| 1064 |
+
skillet
|
| 1065 |
+
nap
|
| 1066 |
+
barber
|
| 1067 |
+
library
|
| 1068 |
+
freezer
|
| 1069 |
+
label
|
| 1070 |
+
rainforest
|
| 1071 |
+
parking sign
|
| 1072 |
+
mirror
|
| 1073 |
+
wing
|
| 1074 |
+
noodle
|
| 1075 |
+
press room
|
| 1076 |
+
sculpture
|
| 1077 |
+
tablet
|
| 1078 |
+
viewer
|
| 1079 |
+
prayer
|
| 1080 |
+
mini
|
| 1081 |
+
mechanic
|
| 1082 |
+
laugh
|
| 1083 |
+
rice field
|
| 1084 |
+
hand
|
| 1085 |
+
mustache
|
| 1086 |
+
mountain road
|
| 1087 |
+
catwalk
|
| 1088 |
+
conference
|
| 1089 |
+
cape
|
| 1090 |
+
installation
|
| 1091 |
+
musician
|
| 1092 |
+
stream
|
| 1093 |
+
machine
|
| 1094 |
+
speech
|
| 1095 |
+
crocodile
|
| 1096 |
+
soccer match
|
| 1097 |
+
town square
|
| 1098 |
+
passport
|
| 1099 |
+
post box
|
| 1100 |
+
point
|
| 1101 |
+
stone building
|
| 1102 |
+
motorway
|
| 1103 |
+
mix
|
| 1104 |
+
dentist
|
| 1105 |
+
businessperson
|
| 1106 |
+
happiness
|
| 1107 |
+
boat
|
| 1108 |
+
vineyard
|
| 1109 |
+
treadmill
|
| 1110 |
+
glass wall
|
| 1111 |
+
water droplet
|
| 1112 |
+
coffee mug
|
| 1113 |
+
graduate
|
| 1114 |
+
sunflower
|
| 1115 |
+
parliament
|
| 1116 |
+
shepherd
|
| 1117 |
+
movie
|
| 1118 |
+
wine
|
| 1119 |
+
orchard
|
| 1120 |
+
tulip
|
| 1121 |
+
motherboard
|
| 1122 |
+
cup
|
| 1123 |
+
broom
|
| 1124 |
+
spot
|
| 1125 |
+
drawing
|
| 1126 |
+
polo shirt
|
| 1127 |
+
graduation
|
| 1128 |
+
film producer
|
| 1129 |
+
moonlight
|
| 1130 |
+
glow
|
| 1131 |
+
film format
|
| 1132 |
+
t shirt
|
| 1133 |
+
rock face
|
| 1134 |
+
sword
|
| 1135 |
+
clinic
|
| 1136 |
+
festival day
|
| 1137 |
+
meadow
|
| 1138 |
+
staple
|
| 1139 |
+
pupil
|
| 1140 |
+
training ground
|
| 1141 |
+
rider
|
| 1142 |
+
flower
|
| 1143 |
+
foal
|
| 1144 |
+
wharf
|
| 1145 |
+
foot bridge
|
| 1146 |
+
shooting
|
| 1147 |
+
top
|
| 1148 |
+
mast
|
| 1149 |
+
police car
|
| 1150 |
+
robe
|
| 1151 |
+
wedding bouquet
|
| 1152 |
+
stop sign
|
| 1153 |
+
birthday cake
|
| 1154 |
+
glitter
|
| 1155 |
+
butter
|
| 1156 |
+
scooter
|
| 1157 |
+
tundra
|
| 1158 |
+
superhero
|
| 1159 |
+
pocket watch
|
| 1160 |
+
inscription
|
| 1161 |
+
youngster
|
| 1162 |
+
fruit tree
|
| 1163 |
+
movie poster
|
| 1164 |
+
engine
|
| 1165 |
+
foundation
|
| 1166 |
+
motorcyclist
|
| 1167 |
+
take
|
| 1168 |
+
woman
|
| 1169 |
+
antelope
|
| 1170 |
+
country artist
|
| 1171 |
+
road trip
|
| 1172 |
+
typewriter
|
| 1173 |
+
tuxedo
|
| 1174 |
+
brand
|
| 1175 |
+
pine
|
| 1176 |
+
bathroom
|
| 1177 |
+
paradise
|
| 1178 |
+
texture
|
| 1179 |
+
balloon
|
| 1180 |
+
dining table
|
| 1181 |
+
home
|
| 1182 |
+
computer screen
|
| 1183 |
+
actor
|
| 1184 |
+
clip
|
| 1185 |
+
tv tower
|
| 1186 |
+
panorama
|
| 1187 |
+
summit
|
| 1188 |
+
cat
|
| 1189 |
+
plot
|
| 1190 |
+
eagle
|
| 1191 |
+
dancer
|
| 1192 |
+
pup
|
| 1193 |
+
studio shot
|
| 1194 |
+
tear
|
| 1195 |
+
bird bath
|
| 1196 |
+
classroom
|
| 1197 |
+
bookstore
|
| 1198 |
+
city wall
|
| 1199 |
+
tv programme
|
| 1200 |
+
blade
|
| 1201 |
+
easel
|
| 1202 |
+
buttercream
|
| 1203 |
+
sweet
|
| 1204 |
+
designer
|
| 1205 |
+
diamond
|
| 1206 |
+
handshake
|
| 1207 |
+
herb
|
| 1208 |
+
corn field
|
| 1209 |
+
seafront
|
| 1210 |
+
concrete
|
| 1211 |
+
street artist
|
| 1212 |
+
gas
|
| 1213 |
+
stamp
|
| 1214 |
+
window display
|
| 1215 |
+
paper
|
| 1216 |
+
note
|
| 1217 |
+
pint
|
| 1218 |
+
quarry
|
| 1219 |
+
research
|
| 1220 |
+
fixture
|
| 1221 |
+
manager
|
| 1222 |
+
soil
|
| 1223 |
+
leopard
|
| 1224 |
+
board game
|
| 1225 |
+
ladder
|
| 1226 |
+
stop light
|
| 1227 |
+
island
|
| 1228 |
+
ramp
|
| 1229 |
+
football match
|
| 1230 |
+
icing
|
| 1231 |
+
drill
|
| 1232 |
+
currency
|
| 1233 |
+
summer evening
|
| 1234 |
+
topping
|
| 1235 |
+
pyramid
|
| 1236 |
+
pomegranate
|
| 1237 |
+
cell
|
| 1238 |
+
ivy
|
| 1239 |
+
squad
|
| 1240 |
+
scenery
|
| 1241 |
+
computer
|
| 1242 |
+
locomotive
|
| 1243 |
+
surf
|
| 1244 |
+
mascot
|
| 1245 |
+
dune
|
| 1246 |
+
path
|
| 1247 |
+
duck
|
| 1248 |
+
twilight
|
| 1249 |
+
wire
|
| 1250 |
+
bow tie
|
| 1251 |
+
strike
|
| 1252 |
+
cormorant
|
| 1253 |
+
car wash
|
| 1254 |
+
crane
|
| 1255 |
+
market
|
| 1256 |
+
philosopher
|
| 1257 |
+
alarm clock
|
| 1258 |
+
camera
|
| 1259 |
+
birch
|
| 1260 |
+
greeting card
|
| 1261 |
+
plain
|
| 1262 |
+
clay
|
| 1263 |
+
donut
|
| 1264 |
+
lock
|
| 1265 |
+
moth
|
| 1266 |
+
laboratory
|
| 1267 |
+
fan
|
| 1268 |
+
violin
|
| 1269 |
+
jazz fusion artist
|
| 1270 |
+
mountain biker
|
| 1271 |
+
terrain
|
| 1272 |
+
magazine
|
| 1273 |
+
pickup
|
| 1274 |
+
comedy film
|
| 1275 |
+
smartphone
|
| 1276 |
+
film
|
| 1277 |
+
bed
|
| 1278 |
+
microwave oven
|
| 1279 |
+
tournament
|
| 1280 |
+
lawn
|
| 1281 |
+
car window
|
| 1282 |
+
alligator
|
| 1283 |
+
screen
|
| 1284 |
+
jetty
|
| 1285 |
+
shopping bag
|
| 1286 |
+
landscape view
|
| 1287 |
+
cabinetry
|
| 1288 |
+
friendly match
|
| 1289 |
+
thing
|
| 1290 |
+
petal
|
| 1291 |
+
shopping center
|
| 1292 |
+
transport
|
| 1293 |
+
ballet dancer
|
| 1294 |
+
shoreline
|
| 1295 |
+
princess
|
| 1296 |
+
car seat
|
| 1297 |
+
parking meter
|
| 1298 |
+
green
|
| 1299 |
+
vodka
|
| 1300 |
+
band
|
| 1301 |
+
rock
|
| 1302 |
+
costume
|
| 1303 |
+
warning sign
|
| 1304 |
+
strip
|
| 1305 |
+
plaque
|
| 1306 |
+
wheelchair
|
| 1307 |
+
headband
|
| 1308 |
+
ginger
|
| 1309 |
+
dice
|
| 1310 |
+
media
|
| 1311 |
+
hairdresser
|
| 1312 |
+
press
|
| 1313 |
+
living room
|
| 1314 |
+
stove
|
| 1315 |
+
player
|
| 1316 |
+
cherry
|
| 1317 |
+
workshop
|
| 1318 |
+
carving
|
| 1319 |
+
embroidery
|
| 1320 |
+
doodle
|
| 1321 |
+
adventure
|
| 1322 |
+
rugby player
|
| 1323 |
+
monument
|
| 1324 |
+
brush
|
| 1325 |
+
marker
|
| 1326 |
+
loft
|
| 1327 |
+
postcard
|
| 1328 |
+
collage
|
| 1329 |
+
ball
|
| 1330 |
+
professor
|
| 1331 |
+
dresser
|
| 1332 |
+
gig
|
| 1333 |
+
festival
|
| 1334 |
+
blackbird
|
| 1335 |
+
makeup artist
|
| 1336 |
+
video camera
|
| 1337 |
+
sticker
|
| 1338 |
+
peak
|
| 1339 |
+
wildflower
|
| 1340 |
+
santa hat
|
| 1341 |
+
rodeo
|
| 1342 |
+
wedding photographer
|
| 1343 |
+
guy
|
| 1344 |
+
staff
|
| 1345 |
+
waterfall
|
| 1346 |
+
operation
|
| 1347 |
+
defender
|
| 1348 |
+
falcon
|
| 1349 |
+
haze
|
| 1350 |
+
individual
|
| 1351 |
+
gentleman
|
| 1352 |
+
greyhound
|
| 1353 |
+
rocking chair
|
| 1354 |
+
rice
|
| 1355 |
+
garbage
|
| 1356 |
+
platter
|
| 1357 |
+
chocolate
|
| 1358 |
+
splash
|
| 1359 |
+
business suit
|
| 1360 |
+
cheetah
|
| 1361 |
+
valley
|
| 1362 |
+
maze
|
| 1363 |
+
trampoline
|
| 1364 |
+
garland
|
| 1365 |
+
slalom
|
| 1366 |
+
unicorn
|
| 1367 |
+
tree stump
|
| 1368 |
+
painting
|
| 1369 |
+
romance
|
| 1370 |
+
fight
|
| 1371 |
+
alcohol
|
| 1372 |
+
ghost
|
| 1373 |
+
fondant
|
| 1374 |
+
spa
|
| 1375 |
+
shutter
|
| 1376 |
+
death
|
| 1377 |
+
demonstration
|
| 1378 |
+
cotton
|
| 1379 |
+
pier
|
| 1380 |
+
flea market
|
| 1381 |
+
history
|
| 1382 |
+
savannah
|
| 1383 |
+
fist
|
| 1384 |
+
aisle
|
| 1385 |
+
crew
|
| 1386 |
+
jug
|
| 1387 |
+
pose
|
| 1388 |
+
anchor
|
| 1389 |
+
teapot
|
| 1390 |
+
boat house
|
| 1391 |
+
business team
|
| 1392 |
+
tripod
|
| 1393 |
+
bee
|
| 1394 |
+
pebble
|
| 1395 |
+
mattress
|
| 1396 |
+
canvas
|
| 1397 |
+
hallway
|
| 1398 |
+
campaign
|
| 1399 |
+
pod
|
| 1400 |
+
lake district
|
| 1401 |
+
article
|
| 1402 |
+
white
|
| 1403 |
+
sofa
|
| 1404 |
+
honey
|
| 1405 |
+
marathon
|
| 1406 |
+
pancake
|
| 1407 |
+
tourist attraction
|
| 1408 |
+
wedding gown
|
| 1409 |
+
battle
|
| 1410 |
+
shelving
|
| 1411 |
+
sea
|
| 1412 |
+
sheet music
|
| 1413 |
+
pie
|
| 1414 |
+
yarn
|
| 1415 |
+
construction site
|
| 1416 |
+
flyer
|
| 1417 |
+
tie
|
| 1418 |
+
star
|
| 1419 |
+
lettuce
|
| 1420 |
+
martial artist
|
| 1421 |
+
dart
|
| 1422 |
+
straw
|
| 1423 |
+
reflection
|
| 1424 |
+
conference room
|
| 1425 |
+
temperature
|
| 1426 |
+
rugby
|
| 1427 |
+
mosquito
|
| 1428 |
+
physicist
|
| 1429 |
+
rock climber
|
| 1430 |
+
crash
|
| 1431 |
+
backdrop
|
| 1432 |
+
toilet seat
|
| 1433 |
+
sand castle
|
| 1434 |
+
water park
|
| 1435 |
+
toy car
|
| 1436 |
+
waste
|
| 1437 |
+
luxury
|
| 1438 |
+
hangar
|
| 1439 |
+
rv
|
| 1440 |
+
tree trunk
|
| 1441 |
+
board
|
| 1442 |
+
gold
|
| 1443 |
+
project picture
|
| 1444 |
+
cap
|
| 1445 |
+
cottage
|
| 1446 |
+
relief
|
| 1447 |
+
attire
|
| 1448 |
+
microscope
|
| 1449 |
+
battery
|
| 1450 |
+
roll
|
| 1451 |
+
line
|
| 1452 |
+
parking garage
|
| 1453 |
+
crystal
|
| 1454 |
+
broadcasting
|
| 1455 |
+
brick wall
|
| 1456 |
+
lab
|
| 1457 |
+
flooring
|
| 1458 |
+
meeting
|
| 1459 |
+
3d cg rendering
|
| 1460 |
+
desktop computer
|
| 1461 |
+
cowboy
|
| 1462 |
+
sailing ship
|
| 1463 |
+
junction
|
| 1464 |
+
hairstyle
|
| 1465 |
+
homework
|
| 1466 |
+
profile
|
| 1467 |
+
model
|
| 1468 |
+
flower pot
|
| 1469 |
+
street light
|
| 1470 |
+
salt lake
|
| 1471 |
+
maple
|
| 1472 |
+
space
|
| 1473 |
+
blizzard
|
| 1474 |
+
throw
|
| 1475 |
+
zebras
|
| 1476 |
+
brochure
|
| 1477 |
+
constellation
|
| 1478 |
+
beak
|
| 1479 |
+
kilt
|
| 1480 |
+
pond
|
| 1481 |
+
blue sky
|
| 1482 |
+
sneaker
|
| 1483 |
+
sand dune
|
| 1484 |
+
morning sun
|
| 1485 |
+
almond
|
| 1486 |
+
grill
|
| 1487 |
+
curl
|
| 1488 |
+
basketball girl game
|
| 1489 |
+
chameleon
|
| 1490 |
+
toilet bowl
|
| 1491 |
+
prince
|
| 1492 |
+
keyboard
|
| 1493 |
+
queen
|
| 1494 |
+
computer monitor
|
| 1495 |
+
writing
|
| 1496 |
+
crown
|
| 1497 |
+
basilica
|
| 1498 |
+
kiss
|
| 1499 |
+
house
|
| 1500 |
+
parking
|
| 1501 |
+
football competition
|
| 1502 |
+
shell
|
| 1503 |
+
sport equipment
|
| 1504 |
+
comedy
|
| 1505 |
+
baboon
|
| 1506 |
+
vendor
|
| 1507 |
+
rise building
|
| 1508 |
+
wrap
|
| 1509 |
+
food truck
|
| 1510 |
+
cat bed
|
| 1511 |
+
rickshaw
|
| 1512 |
+
flare
|
| 1513 |
+
teal
|
| 1514 |
+
nectar
|
| 1515 |
+
eclipse
|
| 1516 |
+
vehicle
|
| 1517 |
+
steam locomotive
|
| 1518 |
+
gorge
|
| 1519 |
+
cow
|
| 1520 |
+
christmas card
|
| 1521 |
+
demonstrator
|
| 1522 |
+
memorial
|
| 1523 |
+
towel
|
| 1524 |
+
jewellery
|
| 1525 |
+
train
|
| 1526 |
+
frisbee
|
| 1527 |
+
baseball game
|
| 1528 |
+
fur
|
| 1529 |
+
afternoon sun
|
| 1530 |
+
community
|
| 1531 |
+
sparkler
|
| 1532 |
+
bandage
|
| 1533 |
+
firework
|
| 1534 |
+
dollar
|
| 1535 |
+
pasture
|
| 1536 |
+
video
|
| 1537 |
+
bus
|
| 1538 |
+
tree house
|
| 1539 |
+
seashore
|
| 1540 |
+
field
|
| 1541 |
+
hamburger
|
| 1542 |
+
souvenir
|
| 1543 |
+
hedgehog
|
| 1544 |
+
worm
|
| 1545 |
+
pine cone
|
| 1546 |
+
osprey
|
| 1547 |
+
dinosaur
|
| 1548 |
+
vegetable
|
| 1549 |
+
junk
|
| 1550 |
+
poster
|
| 1551 |
+
army
|
| 1552 |
+
winger
|
| 1553 |
+
bundle
|
| 1554 |
+
stage
|
| 1555 |
+
growth
|
| 1556 |
+
wedding party
|
| 1557 |
+
service
|
| 1558 |
+
blanket
|
| 1559 |
+
ruler
|
| 1560 |
+
eye
|
| 1561 |
+
credit card
|
| 1562 |
+
castle
|
| 1563 |
+
diner
|
| 1564 |
+
hut
|
| 1565 |
+
elk
|
| 1566 |
+
hard rock artist
|
| 1567 |
+
nun
|
| 1568 |
+
dog breed
|
| 1569 |
+
nest
|
| 1570 |
+
drama film
|
| 1571 |
+
number icon
|
| 1572 |
+
water tank
|
| 1573 |
+
giraffe
|
| 1574 |
+
altar
|
| 1575 |
+
pavilion
|
| 1576 |
+
tv personality
|
| 1577 |
+
suv
|
| 1578 |
+
street vendor
|
| 1579 |
+
street sign
|
| 1580 |
+
ditch
|
| 1581 |
+
debris
|
| 1582 |
+
foam
|
| 1583 |
+
takeoff
|
| 1584 |
+
spice
|
| 1585 |
+
mountain lake
|
| 1586 |
+
tea
|
| 1587 |
+
orchestra
|
| 1588 |
+
spacecraft
|
| 1589 |
+
counter
|
| 1590 |
+
abbey
|
| 1591 |
+
mountain
|
| 1592 |
+
hydrangea
|
| 1593 |
+
racer
|
| 1594 |
+
orange tree
|
| 1595 |
+
tide
|
| 1596 |
+
cowboy hat
|
| 1597 |
+
rapid
|
| 1598 |
+
town
|
| 1599 |
+
wild
|
| 1600 |
+
herd
|
| 1601 |
+
vein
|
| 1602 |
+
driveway
|
| 1603 |
+
jar
|
| 1604 |
+
bark
|
| 1605 |
+
illustration
|
| 1606 |
+
horror film
|
| 1607 |
+
corn
|
| 1608 |
+
stroller
|
| 1609 |
+
industry
|
| 1610 |
+
mountain stream
|
| 1611 |
+
gym
|
| 1612 |
+
neckline
|
| 1613 |
+
pan
|
| 1614 |
+
client
|
| 1615 |
+
spectator
|
| 1616 |
+
eggplant
|
| 1617 |
+
camper
|
| 1618 |
+
fawn
|
| 1619 |
+
hoodie
|
| 1620 |
+
meat
|
| 1621 |
+
lemonade
|
| 1622 |
+
food market
|
| 1623 |
+
slum
|
| 1624 |
+
comic book character
|
| 1625 |
+
flower market
|
| 1626 |
+
love
|
| 1627 |
+
palace
|
| 1628 |
+
gun
|
| 1629 |
+
heel
|
| 1630 |
+
shopping street
|
| 1631 |
+
shooting basketball guard
|
| 1632 |
+
family photo
|
| 1633 |
+
rooftop
|
| 1634 |
+
laundry basket
|
| 1635 |
+
airport runway
|
| 1636 |
+
horn
|
| 1637 |
+
face mask
|
| 1638 |
+
flight
|
| 1639 |
+
appetizer
|
| 1640 |
+
violet
|
| 1641 |
+
country lane
|
| 1642 |
+
cement
|
| 1643 |
+
instrument
|
| 1644 |
+
tv actor
|
| 1645 |
+
spark
|
| 1646 |
+
celebrity
|
| 1647 |
+
award
|
| 1648 |
+
country house
|
| 1649 |
+
standing
|
| 1650 |
+
auction
|
| 1651 |
+
date
|
| 1652 |
+
engagement
|
| 1653 |
+
puck
|
| 1654 |
+
advertisement
|
| 1655 |
+
chair
|
| 1656 |
+
zebra
|
| 1657 |
+
driftwood
|
| 1658 |
+
bumblebee
|
| 1659 |
+
maple leaf
|
| 1660 |
+
bonnet
|
| 1661 |
+
orange
|
| 1662 |
+
water tower
|
| 1663 |
+
door
|
| 1664 |
+
singer
|
| 1665 |
+
floor plan
|
| 1666 |
+
discussion
|
| 1667 |
+
theatre
|
| 1668 |
+
pilgrim
|
| 1669 |
+
mug
|
| 1670 |
+
branch
|
| 1671 |
+
window sill
|
| 1672 |
+
baseball pitcher
|
| 1673 |
+
bakery
|
| 1674 |
+
lollipop
|
| 1675 |
+
basketball player
|
| 1676 |
+
toilet paper
|
| 1677 |
+
chalkboard
|
| 1678 |
+
cabin
|
| 1679 |
+
sign
|
| 1680 |
+
night sky
|
| 1681 |
+
cannon
|
| 1682 |
+
fishing net
|
| 1683 |
+
submarine
|
| 1684 |
+
suit
|
| 1685 |
+
fur coat
|
| 1686 |
+
wine bottle
|
| 1687 |
+
folder
|
| 1688 |
+
street art
|
| 1689 |
+
suspension bridge
|
| 1690 |
+
evening sky
|
| 1691 |
+
billboard
|
| 1692 |
+
postage stamp
|
| 1693 |
+
newspaper
|
| 1694 |
+
transportation
|
| 1695 |
+
surgeon
|
| 1696 |
+
light
|
| 1697 |
+
park
|
| 1698 |
+
horizon
|
| 1699 |
+
road
|
| 1700 |
+
sand bar
|
| 1701 |
+
trumpet
|
| 1702 |
+
lounge
|
| 1703 |
+
cloud forest
|
| 1704 |
+
birthday celebration
|
| 1705 |
+
balcony
|
| 1706 |
+
anime
|
| 1707 |
+
beehive
|
| 1708 |
+
umbrella
|
| 1709 |
+
goldfish
|
| 1710 |
+
baseball cap
|
| 1711 |
+
waterhole
|
| 1712 |
+
ceiling
|
| 1713 |
+
carousel
|
| 1714 |
+
backpack
|
| 1715 |
+
plant pot
|
| 1716 |
+
atmosphere
|
| 1717 |
+
sunflower field
|
| 1718 |
+
spire
|
| 1719 |
+
vision
|
| 1720 |
+
woodpecker
|
| 1721 |
+
chip
|
| 1722 |
+
pool table
|
| 1723 |
+
lotus flower
|
| 1724 |
+
cone
|
| 1725 |
+
humpback whale
|
| 1726 |
+
reservoir
|
| 1727 |
+
hunt
|
| 1728 |
+
piano
|
| 1729 |
+
plate
|
| 1730 |
+
dining area
|
| 1731 |
+
luggage
|
| 1732 |
+
skier
|
| 1733 |
+
dance floor
|
| 1734 |
+
crow
|
| 1735 |
+
stair
|
| 1736 |
+
overpass
|
| 1737 |
+
opera house
|
| 1738 |
+
bear
|
| 1739 |
+
jazz artist
|
| 1740 |
+
water
|
| 1741 |
+
vessel
|
| 1742 |
+
cast
|
| 1743 |
+
yard
|
| 1744 |
+
cathedral
|
| 1745 |
+
basketball hoop
|
| 1746 |
+
graveyard
|
| 1747 |
+
sound
|
| 1748 |
+
berry
|
| 1749 |
+
onlooker
|
| 1750 |
+
fauna
|
| 1751 |
+
birch tree
|
| 1752 |
+
retail
|
| 1753 |
+
hill
|
| 1754 |
+
skeleton
|
| 1755 |
+
journalist
|
| 1756 |
+
frost
|
| 1757 |
+
basket
|
| 1758 |
+
nail
|
| 1759 |
+
dusk
|
| 1760 |
+
trash
|
| 1761 |
+
dawn
|
| 1762 |
+
clover
|
| 1763 |
+
hen
|
| 1764 |
+
volcano
|
| 1765 |
+
basketball coach
|
| 1766 |
+
home decor
|
| 1767 |
+
charge
|
| 1768 |
+
haircut
|
| 1769 |
+
sense
|
| 1770 |
+
university
|
| 1771 |
+
lizard
|
| 1772 |
+
daisy
|
| 1773 |
+
tablet computer
|
| 1774 |
+
grass field
|
| 1775 |
+
prison
|
| 1776 |
+
metal artist
|
| 1777 |
+
bathroom mirror
|
| 1778 |
+
window frame
|
| 1779 |
+
chest
|
| 1780 |
+
flavor
|
| 1781 |
+
pop country artist
|
| 1782 |
+
market square
|
| 1783 |
+
monkey
|
| 1784 |
+
blog
|
| 1785 |
+
deer
|
| 1786 |
+
speech bubble
|
| 1787 |
+
dog
|
| 1788 |
+
independence day
|
| 1789 |
+
girl
|
| 1790 |
+
boy
|
| 1791 |
+
tartan
|
| 1792 |
+
furniture
|
| 1793 |
+
appliance
|
| 1794 |
+
office window
|
| 1795 |
+
fish boat
|
| 1796 |
+
sand box
|
| 1797 |
+
tv sitcom
|
| 1798 |
+
drama
|
| 1799 |
+
sleigh
|
| 1800 |
+
depression
|
| 1801 |
+
paper towel
|
| 1802 |
+
baseball
|
| 1803 |
+
protestor
|
| 1804 |
+
grape
|
| 1805 |
+
wedding cake
|
| 1806 |
+
invitation
|
| 1807 |
+
accessory
|
| 1808 |
+
pick
|
| 1809 |
+
grandparent
|
| 1810 |
+
racket
|
| 1811 |
+
tea plantation
|
| 1812 |
+
outdoors
|
| 1813 |
+
egg
|
| 1814 |
+
glass bowl
|
| 1815 |
+
sun
|
| 1816 |
+
organization
|
| 1817 |
+
lion
|
| 1818 |
+
panel
|
| 1819 |
+
station
|
| 1820 |
+
wallpaper
|
| 1821 |
+
helicopter
|
| 1822 |
+
salt
|
| 1823 |
+
vanity
|
| 1824 |
+
patio
|
| 1825 |
+
lunch
|
| 1826 |
+
street performer
|
| 1827 |
+
mountain range
|
| 1828 |
+
soup
|
| 1829 |
+
bacon
|
| 1830 |
+
power station
|
| 1831 |
+
cantilever bridge
|
| 1832 |
+
hummingbird
|
| 1833 |
+
shirt
|
| 1834 |
+
rope
|
| 1835 |
+
hip
|
| 1836 |
+
chalk
|
| 1837 |
+
pendant
|
| 1838 |
+
choir
|
| 1839 |
+
tv
|
| 1840 |
+
lichen
|
| 1841 |
+
railway bridge
|
| 1842 |
+
art gallery
|
| 1843 |
+
bartender
|
| 1844 |
+
wagon
|
| 1845 |
+
baby elephant
|
| 1846 |
+
accordion
|
| 1847 |
+
horseshoe
|
| 1848 |
+
building site
|
| 1849 |
+
clutch
|
| 1850 |
+
harvest
|
| 1851 |
+
savanna
|
| 1852 |
+
geranium
|
| 1853 |
+
business woman
|
| 1854 |
+
paddock
|
| 1855 |
+
patch
|
| 1856 |
+
beech tree
|
| 1857 |
+
war
|
| 1858 |
+
suburbs
|
| 1859 |
+
hospital bed
|
| 1860 |
+
motorcycle racer
|
| 1861 |
+
moss
|
| 1862 |
+
gravel
|
| 1863 |
+
government agency
|
| 1864 |
+
dollar bill
|
| 1865 |
+
father
|
| 1866 |
+
fjord
|
| 1867 |
+
concert
|
| 1868 |
+
nut
|
| 1869 |
+
wedding photography
|
| 1870 |
+
finish line
|
| 1871 |
+
home plate
|
| 1872 |
+
food
|
| 1873 |
+
nose
|
| 1874 |
+
thumb
|
| 1875 |
+
village
|
| 1876 |
+
dining room table
|
| 1877 |
+
bumper
|
| 1878 |
+
monster
|
| 1879 |
+
blackberry
|
| 1880 |
+
lime
|
| 1881 |
+
conflict
|
| 1882 |
+
gala
|
| 1883 |
+
wallet
|
| 1884 |
+
wrist
|
| 1885 |
+
hug
|
| 1886 |
+
mermaid
|
| 1887 |
+
lava
|
| 1888 |
+
lawyer
|
| 1889 |
+
folk rock artist
|
| 1890 |
+
arena
|
| 1891 |
+
onion
|
| 1892 |
+
toothbrush
|
| 1893 |
+
fashion
|
| 1894 |
+
perfume
|
| 1895 |
+
flip
|
| 1896 |
+
triangle
|
| 1897 |
+
woodland
|
| 1898 |
+
mail
|
| 1899 |
+
grasshopper
|
| 1900 |
+
studio
|
| 1901 |
+
wood floor
|
| 1902 |
+
den
|
| 1903 |
+
racquet
|
| 1904 |
+
cello
|
| 1905 |
+
lemur
|
| 1906 |
+
astronaut
|
| 1907 |
+
glass table
|
| 1908 |
+
blood
|
| 1909 |
+
dvd
|
| 1910 |
+
planter
|
| 1911 |
+
silver
|
| 1912 |
+
leash
|
| 1913 |
+
master bedroom
|
| 1914 |
+
forest
|
| 1915 |
+
batter
|
| 1916 |
+
shoe
|
| 1917 |
+
engraving
|
| 1918 |
+
opening
|
| 1919 |
+
product
|
| 1920 |
+
toe
|
| 1921 |
+
cocktail
|
| 1922 |
+
mallard duck
|
| 1923 |
+
bike ride
|
| 1924 |
+
oasis
|
| 1925 |
+
wedding ring
|
| 1926 |
+
cinematographer
|
| 1927 |
+
holly
|
| 1928 |
+
autograph
|
| 1929 |
+
fence
|
| 1930 |
+
ice cube
|
| 1931 |
+
cove
|
| 1932 |
+
pineapple
|
| 1933 |
+
aurora
|
| 1934 |
+
glass bead
|
| 1935 |
+
produce
|
| 1936 |
+
apartment building
|
| 1937 |
+
cob
|
| 1938 |
+
miniature
|
| 1939 |
+
cockpit
|
| 1940 |
+
flashlight
|
| 1941 |
+
frog
|
| 1942 |
+
sheep
|
| 1943 |
+
groom
|
| 1944 |
+
steel
|
| 1945 |
+
watermelon
|
| 1946 |
+
clip art
|
| 1947 |
+
paper plate
|
| 1948 |
+
ostrich
|
| 1949 |
+
contour
|
| 1950 |
+
mural
|
| 1951 |
+
cub
|
| 1952 |
+
paisley bandanna
|
| 1953 |
+
winery
|
| 1954 |
+
turn
|
| 1955 |
+
handle
|
| 1956 |
+
satellite
|
| 1957 |
+
post
|
| 1958 |
+
pork
|
| 1959 |
+
child
|
| 1960 |
+
asphalt
|
| 1961 |
+
grocery store
|
| 1962 |
+
vulture
|
| 1963 |
+
trolley
|
| 1964 |
+
nightclub
|
| 1965 |
+
brick
|
| 1966 |
+
trailer
|
| 1967 |
+
compass
|
| 1968 |
+
cereal
|
| 1969 |
+
cafe
|
| 1970 |
+
cartoon character
|
| 1971 |
+
sugar
|
| 1972 |
+
fiction book
|
| 1973 |
+
glass floor
|
| 1974 |
+
umpire
|
| 1975 |
+
guitar
|
| 1976 |
+
hamster
|
| 1977 |
+
protester
|
| 1978 |
+
airplane
|
| 1979 |
+
garment
|
| 1980 |
+
blazer
|
| 1981 |
+
railway line
|
| 1982 |
+
wedding
|
| 1983 |
+
shoe box
|
| 1984 |
+
parking lot
|
| 1985 |
+
construction
|
| 1986 |
+
graduation ceremony
|
| 1987 |
+
tram
|
| 1988 |
+
telescope
|
| 1989 |
+
copper
|
| 1990 |
+
pain
|
| 1991 |
+
autumn forest
|
| 1992 |
+
guest house
|
| 1993 |
+
partner
|
| 1994 |
+
crayon
|
| 1995 |
+
dip
|
| 1996 |
+
boot
|
| 1997 |
+
corridor
|
| 1998 |
+
computer keyboard
|
| 1999 |
+
hockey player
|
| 2000 |
+
chicken coop
|
| 2001 |
+
bus station
|
| 2002 |
+
gathering
|
| 2003 |
+
ankle
|
| 2004 |
+
bunk bed
|
| 2005 |
+
wood table
|
| 2006 |
+
football coach
|
| 2007 |
+
monarch
|
| 2008 |
+
pharmacy
|
| 2009 |
+
legging
|
| 2010 |
+
mannequin
|
| 2011 |
+
female
|
| 2012 |
+
train track
|
| 2013 |
+
stack
|
| 2014 |
+
canopy
|
| 2015 |
+
design element
|
| 2016 |
+
grandmother
|
| 2017 |
+
symbol
|
| 2018 |
+
beach hut
|
| 2019 |
+
zucchini
|
| 2020 |
+
bomb
|
| 2021 |
+
businessman
|
| 2022 |
+
skyscraper
|
| 2023 |
+
tongue
|
| 2024 |
+
case
|
| 2025 |
+
sparkle
|
| 2026 |
+
highland
|
| 2027 |
+
ballroom
|
| 2028 |
+
prom
|
| 2029 |
+
estate
|
| 2030 |
+
customer
|
| 2031 |
+
archipelago
|
| 2032 |
+
cheese
|
| 2033 |
+
debate
|
| 2034 |
+
carriage
|
| 2035 |
+
bulldozer
|
| 2036 |
+
pumpkin
|
| 2037 |
+
sitting room
|
| 2038 |
+
gas station
|
| 2039 |
+
wedding reception
|
| 2040 |
+
camp
|
| 2041 |
+
dog bed
|
| 2042 |
+
tower
|
| 2043 |
+
property
|
| 2044 |
+
river bed
|
| 2045 |
+
pop latin artist
|
| 2046 |
+
fridge
|
| 2047 |
+
wine glass
|
| 2048 |
+
coast
|
| 2049 |
+
beer
|
| 2050 |
+
tow truck
|
| 2051 |
+
fire truck
|
| 2052 |
+
mountain bike
|
| 2053 |
+
thigh
|
| 2054 |
+
heron
|
| 2055 |
+
boat ride
|
| 2056 |
+
gondola
|
| 2057 |
+
turquoise
|
| 2058 |
+
lake
|
| 2059 |
+
llama
|
| 2060 |
+
kitty
|
| 2061 |
+
tin
|
| 2062 |
+
waiting room
|
| 2063 |
+
coffee cup
|
| 2064 |
+
socialite
|
| 2065 |
+
guard
|
| 2066 |
+
tap
|
| 2067 |
+
waterway
|
| 2068 |
+
forehead
|
| 2069 |
+
list
|
| 2070 |
+
erosion
|
| 2071 |
+
box
|
| 2072 |
+
sea lion
|
| 2073 |
+
pollen
|
| 2074 |
+
dam
|
| 2075 |
+
wasp
|
| 2076 |
+
salon
|
| 2077 |
+
tennis tournament
|
| 2078 |
+
flower box
|
| 2079 |
+
aquarium
|
| 2080 |
+
rain cloud
|
| 2081 |
+
clothing store
|
| 2082 |
+
lead singer
|
| 2083 |
+
cupcake
|
| 2084 |
+
tortoise
|
| 2085 |
+
lettering
|
| 2086 |
+
sport facility
|
| 2087 |
+
dance
|
| 2088 |
+
dog house
|
| 2089 |
+
nature
|
| 2090 |
+
football
|
| 2091 |
+
rooster
|
| 2092 |
+
footballer
|
| 2093 |
+
railway track
|
| 2094 |
+
crowd
|
| 2095 |
+
fishing rod
|
| 2096 |
+
silhouette
|
| 2097 |
+
wind turbine
|
| 2098 |
+
sari
|
| 2099 |
+
bus window
|
| 2100 |
+
cloud
|
| 2101 |
+
charity
|
| 2102 |
+
medal
|
| 2103 |
+
yoga
|
| 2104 |
+
event
|
| 2105 |
+
veil
|
| 2106 |
+
fashion menswear milan week
|
| 2107 |
+
news
|
| 2108 |
+
knife
|
| 2109 |
+
print
|
| 2110 |
+
screen tv
|
| 2111 |
+
walnut
|
| 2112 |
+
fungus
|
| 2113 |
+
ice cream
|
| 2114 |
+
computer mouse
|
| 2115 |
+
play
|
| 2116 |
+
tribe
|
| 2117 |
+
picture
|
| 2118 |
+
video game
|
| 2119 |
+
business card
|
| 2120 |
+
music festival
|
| 2121 |
+
rack
|
| 2122 |
+
envelope
|
| 2123 |
+
shower
|
| 2124 |
+
dirt road
|
| 2125 |
+
mine
|
| 2126 |
+
oyster
|
| 2127 |
+
monarch butterfly
|
| 2128 |
+
dude
|
| 2129 |
+
fruit salad
|
| 2130 |
+
podium
|
| 2131 |
+
fork
|
| 2132 |
+
lace
|
| 2133 |
+
test match
|
| 2134 |
+
boulder
|
| 2135 |
+
cricket player
|
| 2136 |
+
staircase
|
| 2137 |
+
peninsula
|
| 2138 |
+
shopping
|
| 2139 |
+
popcorn
|
| 2140 |
+
oak
|
| 2141 |
+
market stall
|
| 2142 |
+
pine tree
|
| 2143 |
+
mountaineer
|
| 2144 |
+
student
|
| 2145 |
+
closet
|
| 2146 |
+
hood
|
| 2147 |
+
handstand
|
| 2148 |
+
centerpiece
|
| 2149 |
+
insect
|
| 2150 |
+
patient
|
| 2151 |
+
makeover
|
| 2152 |
+
tennis player
|
| 2153 |
+
sheet
|
| 2154 |
+
park bench
|
| 2155 |
+
apple
|
| 2156 |
+
organism
|
| 2157 |
+
hook
|
| 2158 |
+
turkey
|
| 2159 |
+
tangerine
|
| 2160 |
+
sibling
|
| 2161 |
+
shopping mall
|
| 2162 |
+
bird
|
| 2163 |
+
scarf
|
| 2164 |
+
smoothie
|
| 2165 |
+
net
|
| 2166 |
+
grass
|
| 2167 |
+
napkin
|
| 2168 |
+
ray
|
| 2169 |
+
eyebrow
|
| 2170 |
+
laptop keyboard
|
| 2171 |
+
motorbike
|
| 2172 |
+
woman hand
|
| 2173 |
+
oven
|
| 2174 |
+
book cover
|
| 2175 |
+
easter egg
|
| 2176 |
+
microwave
|
| 2177 |
+
sand
|
| 2178 |
+
snapshot
|
| 2179 |
+
soccer ball
|
| 2180 |
+
makeup
|
| 2181 |
+
knight
|
| 2182 |
+
bowling ball
|
| 2183 |
+
shower curtain
|
| 2184 |
+
flame
|
| 2185 |
+
lightning
|
| 2186 |
+
running
|
| 2187 |
+
power plant
|
| 2188 |
+
crib
|
| 2189 |
+
cartoon
|
| 2190 |
+
moat
|
| 2191 |
+
fashion girl
|
| 2192 |
+
wedding invitation
|
| 2193 |
+
bottle
|
| 2194 |
+
cliff
|
| 2195 |
+
monastery
|
| 2196 |
+
file photo
|
| 2197 |
+
apartment
|
| 2198 |
+
casino
|
| 2199 |
+
cream
|
| 2200 |
+
sweatshirt
|
| 2201 |
+
storm
|
| 2202 |
+
cruise
|
| 2203 |
+
teddy bear
|
| 2204 |
+
shovel
|
| 2205 |
+
wind farm
|
| 2206 |
+
writer
|
| 2207 |
+
dock
|
| 2208 |
+
professional
|
| 2209 |
+
hotel room
|
| 2210 |
+
job
|
| 2211 |
+
monitor
|
| 2212 |
+
donkey
|
| 2213 |
+
pass
|
| 2214 |
+
interview
|
| 2215 |
+
duchess
|
| 2216 |
+
mark
|
| 2217 |
+
plank
|
| 2218 |
+
beard
|
| 2219 |
+
zombie
|
| 2220 |
+
trio
|
| 2221 |
+
channel
|
| 2222 |
+
cricket team
|
| 2223 |
+
windmill
|
| 2224 |
+
vest
|
| 2225 |
+
diagram
|
| 2226 |
+
cable
|
| 2227 |
+
winter scene
|
| 2228 |
+
golden gate bridge
|
| 2229 |
+
buffalo
|
| 2230 |
+
studio portrait
|
| 2231 |
+
pagoda
|
| 2232 |
+
whiskey
|
| 2233 |
+
freight train
|
| 2234 |
+
kite
|
| 2235 |
+
future
|
| 2236 |
+
steam train
|
| 2237 |
+
phone box
|
| 2238 |
+
headset
|
| 2239 |
+
wood
|
| 2240 |
+
snowboarder
|
| 2241 |
+
paper bag
|
| 2242 |
+
slide
|
| 2243 |
+
grapefruit
|
| 2244 |
+
seating
|
| 2245 |
+
morning
|
| 2246 |
+
bronze sculpture
|
| 2247 |
+
theatre actor
|
| 2248 |
+
stump
|
| 2249 |
+
jean
|
| 2250 |
+
landmark
|
| 2251 |
+
jam
|
| 2252 |
+
waist
|
| 2253 |
+
watercolor
|
| 2254 |
+
hammock
|
| 2255 |
+
light fixture
|
| 2256 |
+
ice
|
| 2257 |
+
basin
|
| 2258 |
+
beverage
|
| 2259 |
+
shelter
|
| 2260 |
+
premiere
|
| 2261 |
+
mound
|
| 2262 |
+
ear
|
| 2263 |
+
bronze
|
| 2264 |
+
sunlight
|
| 2265 |
+
street
|
| 2266 |
+
energy
|
| 2267 |
+
barn door
|
| 2268 |
+
hike
|
| 2269 |
+
fleet
|
| 2270 |
+
claw
|
| 2271 |
+
beach
|
| 2272 |
+
pepperoni
|
| 2273 |
+
bin
|
| 2274 |
+
trainer
|
| 2275 |
+
buffet
|
| 2276 |
+
archive
|
| 2277 |
+
toddler
|
| 2278 |
+
referee
|
| 2279 |
+
bay window
|
| 2280 |
+
dove
|
| 2281 |
+
production company
|
| 2282 |
+
evening light
|
| 2283 |
+
gate
|
| 2284 |
+
farm
|
| 2285 |
+
reed
|
| 2286 |
+
fruit stand
|
| 2287 |
+
explorer
|
| 2288 |
+
snow storm
|
| 2289 |
+
throw pillow
|
| 2290 |
+
button
|
| 2291 |
+
display case
|
| 2292 |
+
bookcase
|
| 2293 |
+
lead
|
| 2294 |
+
lipstick
|
| 2295 |
+
basketball court
|
| 2296 |
+
cargo
|
| 2297 |
+
ensemble
|
| 2298 |
+
pope
|
| 2299 |
+
clock tower
|
| 2300 |
+
teen
|
| 2301 |
+
speaker
|
| 2302 |
+
rat
|
| 2303 |
+
laptop
|
| 2304 |
+
ski
|
| 2305 |
+
mess
|
| 2306 |
+
stadium
|
| 2307 |
+
ferry boat
|
| 2308 |
+
bunny
|
| 2309 |
+
waterfront
|
| 2310 |
+
downtown
|
| 2311 |
+
sink
|
| 2312 |
+
press conference
|
| 2313 |
+
dinner
|
| 2314 |
+
condiment
|
| 2315 |
+
thread
|
| 2316 |
+
audience
|
| 2317 |
+
grid
|
| 2318 |
+
car
|
| 2319 |
+
plastic
|
| 2320 |
+
people
|
| 2321 |
+
barbecue
|
| 2322 |
+
pigeon
|
| 2323 |
+
urinal
|
| 2324 |
+
seagull
|
| 2325 |
+
volunteer
|
| 2326 |
+
hockey
|
| 2327 |
+
fir tree
|
| 2328 |
+
pollution
|
| 2329 |
+
trial
|
| 2330 |
+
collar
|
| 2331 |
+
area
|
| 2332 |
+
meeting room
|
| 2333 |
+
circus
|
| 2334 |
+
yogurt
|
| 2335 |
+
orangutan
|
| 2336 |
+
viaduct
|
| 2337 |
+
comedian
|
| 2338 |
+
drone
|
| 2339 |
+
scissor
|
| 2340 |
+
pop rock artist
|
| 2341 |
+
biscuit
|
| 2342 |
+
panda
|
| 2343 |
+
water feature
|
| 2344 |
+
air balloon
|
| 2345 |
+
remote control
|
| 2346 |
+
watercolor painting
|
| 2347 |
+
show
|
| 2348 |
+
walk
|
| 2349 |
+
post office
|
| 2350 |
+
bike path
|
| 2351 |
+
rap gangsta artist
|
| 2352 |
+
microphone
|
| 2353 |
+
crack
|
| 2354 |
+
sunset sky
|
| 2355 |
+
glass
|
| 2356 |
+
tv show
|
| 2357 |
+
cartoon style
|
| 2358 |
+
stripe
|
| 2359 |
+
foyer
|
| 2360 |
+
signal
|
| 2361 |
+
calligraphy
|
| 2362 |
+
bulb
|
| 2363 |
+
gardener
|
| 2364 |
+
coffee bean
|
| 2365 |
+
spider
|
| 2366 |
+
tapestry
|
| 2367 |
+
city skyline
|
| 2368 |
+
necklace
|
| 2369 |
+
kitten
|
| 2370 |
+
traveler
|
| 2371 |
+
veteran
|
| 2372 |
+
frosting
|
| 2373 |
+
fry
|
| 2374 |
+
tennis court
|
| 2375 |
+
tank top
|
| 2376 |
+
butterfly house
|
| 2377 |
+
mist
|
| 2378 |
+
drummer
|
| 2379 |
+
water level
|
| 2380 |
+
scale
|
| 2381 |
+
baseball glove
|
| 2382 |
+
music video performer
|
| 2383 |
+
champagne
|
| 2384 |
+
camping
|
| 2385 |
+
clothing
|
| 2386 |
+
water drop
|
| 2387 |
+
telephone box
|
| 2388 |
+
pen
|
| 2389 |
+
morning mist
|
| 2390 |
+
fire engine
|
| 2391 |
+
porch
|
| 2392 |
+
opening ceremony
|
| 2393 |
+
style
|
| 2394 |
+
palm tree
|
| 2395 |
+
fashion show
|
| 2396 |
+
universe
|
| 2397 |
+
scratch
|
| 2398 |
+
axe
|
| 2399 |
+
ottoman
|
| 2400 |
+
explosion
|
| 2401 |
+
rib
|
| 2402 |
+
boutique
|
| 2403 |
+
game
|
| 2404 |
+
cucumber
|
| 2405 |
+
fruit
|
| 2406 |
+
stone bridge
|
| 2407 |
+
nature reserve
|
| 2408 |
+
track
|
| 2409 |
+
train window
|
| 2410 |
+
punch
|
| 2411 |
+
telephone pole
|
| 2412 |
+
velvet
|
| 2413 |
+
sauce
|
| 2414 |
+
moon
|
| 2415 |
+
contrast
|
| 2416 |
+
flamingo
|
| 2417 |
+
bat
|
| 2418 |
+
vending machine
|
| 2419 |
+
ship
|
| 2420 |
+
equestrian
|
| 2421 |
+
shade
|
| 2422 |
+
comforter
|
| 2423 |
+
pallet
|
| 2424 |
+
sparrow
|
| 2425 |
+
wii
|
| 2426 |
+
glaze
|
| 2427 |
+
grocery
|
| 2428 |
+
steeple
|
| 2429 |
+
soccer player
|
| 2430 |
+
contract
|
| 2431 |
+
advertising
|
| 2432 |
+
runner
|
| 2433 |
+
chimpanzee
|
| 2434 |
+
world
|
| 2435 |
+
seat
|
| 2436 |
+
project
|
| 2437 |
+
chihuahua
|
| 2438 |
+
bubble
|
| 2439 |
+
willow
|
| 2440 |
+
pedestal
|
| 2441 |
+
soul hip hop artist
|
| 2442 |
+
curb
|
| 2443 |
+
drawer
|
| 2444 |
+
leaf
|
| 2445 |
+
banner
|
| 2446 |
+
launch party
|
| 2447 |
+
coach
|
| 2448 |
+
government
|
| 2449 |
+
snowball
|
| 2450 |
+
toy
|
| 2451 |
+
portrait
|
| 2452 |
+
doctor
|
| 2453 |
+
whiteboard
|
| 2454 |
+
electronic
|
| 2455 |
+
tiger
|
| 2456 |
+
graffiti
|
| 2457 |
+
column
|
| 2458 |
+
nightstand
|
| 2459 |
+
whistle
|
| 2460 |
+
maxi dress
|
| 2461 |
+
bench
|
| 2462 |
+
wetsuit
|
| 2463 |
+
bird feeder
|
| 2464 |
+
football game
|
| 2465 |
+
basketball
|
| 2466 |
+
class
|
| 2467 |
+
bathroom door
|
| 2468 |
+
store window
|
| 2469 |
+
text message
|
| 2470 |
+
wreath
|
| 2471 |
+
street view
|
| 2472 |
+
binocular
|
| 2473 |
+
pet
|
| 2474 |
+
facade
|
| 2475 |
+
drought
|
| 2476 |
+
lemon
|
| 2477 |
+
new year
|
| 2478 |
+
night view
|
| 2479 |
+
airplane window
|
| 2480 |
+
specie
|
| 2481 |
+
rule
|
| 2482 |
+
jaw
|
| 2483 |
+
wheat field
|
| 2484 |
+
diet
|
| 2485 |
+
pop artist
|
| 2486 |
+
habitat
|
| 2487 |
+
screenshot
|
| 2488 |
+
scoreboard
|
| 2489 |
+
shore
|
| 2490 |
+
mane
|
| 2491 |
+
quilt
|
| 2492 |
+
ski lift
|
| 2493 |
+
orchid
|
| 2494 |
+
turban
|
| 2495 |
+
christmas
|
| 2496 |
+
airport
|
| 2497 |
+
marina
|
| 2498 |
+
glass door
|
| 2499 |
+
glass bottle
|
| 2500 |
+
restaurant
|
| 2501 |
+
conductor
|
| 2502 |
+
logo
|
| 2503 |
+
sleep
|
| 2504 |
+
tape
|
| 2505 |
+
tomato
|
| 2506 |
+
river bank
|
| 2507 |
+
lilac
|
| 2508 |
+
tooth
|
| 2509 |
+
training
|
| 2510 |
+
pottery
|
| 2511 |
+
shop
|
| 2512 |
+
steam engine
|
| 2513 |
+
mason jar
|
| 2514 |
+
base
|
| 2515 |
+
procession
|
| 2516 |
+
border
|
| 2517 |
+
shoot
|
| 2518 |
+
footprint
|
| 2519 |
+
hotdog
|
| 2520 |
+
bull
|
| 2521 |
+
stocking
|
| 2522 |
+
recreation
|
| 2523 |
+
automobile model
|
| 2524 |
+
design
|
| 2525 |
+
country pop artist
|
| 2526 |
+
river
|
| 2527 |
+
retriever
|
| 2528 |
+
department store
|
| 2529 |
+
auditorium
|
| 2530 |
+
sport car
|
| 2531 |
+
supermarket
|
| 2532 |
+
belt
|
| 2533 |
+
cricket
|
| 2534 |
+
window box
|
| 2535 |
+
dress shirt
|
| 2536 |
+
letter
|
| 2537 |
+
residence
|
| 2538 |
+
megaphone
|
| 2539 |
+
pant
|
| 2540 |
+
wildfire
|
| 2541 |
+
bird nest
|
| 2542 |
+
crab
|
| 2543 |
+
swimsuit
|
| 2544 |
+
candle
|
| 2545 |
+
funeral
|
| 2546 |
+
mill
|
| 2547 |
+
national park
|
| 2548 |
+
plant
|
| 2549 |
+
cop
|
| 2550 |
+
power line
|
| 2551 |
+
perch
|
| 2552 |
+
blue
|
| 2553 |
+
finger
|
| 2554 |
+
ferris wheel
|
| 2555 |
+
globe
|
| 2556 |
+
skateboard
|
| 2557 |
+
helmet
|
| 2558 |
+
movie theater
|
| 2559 |
+
uniform
|
| 2560 |
+
hammer
|
| 2561 |
+
material
|
| 2562 |
+
kid
|
| 2563 |
+
well
|
| 2564 |
+
butterfly
|
| 2565 |
+
sideline
|
| 2566 |
+
fashion fall show
|
| 2567 |
+
planet earth
|
| 2568 |
+
lift
|
| 2569 |
+
male
|
| 2570 |
+
sauna
|
| 2571 |
+
gray
|
| 2572 |
+
flour
|
| 2573 |
+
sand sculpture
|
| 2574 |
+
program
|
| 2575 |
+
cabinet
|
| 2576 |
+
infant
|
| 2577 |
+
wheel
|
| 2578 |
+
aircraft model
|
| 2579 |
+
dough
|
| 2580 |
+
garlic
|
| 2581 |
+
skate
|
| 2582 |
+
arrow
|
| 2583 |
+
wrapping paper
|
| 2584 |
+
ripple
|
| 2585 |
+
lamp
|
| 2586 |
+
iron
|
| 2587 |
+
banknote
|
| 2588 |
+
beaver
|
| 2589 |
+
ferry
|
| 2590 |
+
courtyard
|
| 2591 |
+
bassist
|
| 2592 |
+
countryside
|
| 2593 |
+
steak
|
| 2594 |
+
comfort
|
| 2595 |
+
boxer
|
| 2596 |
+
laundry room
|
| 2597 |
+
campsite
|
| 2598 |
+
brick building
|
| 2599 |
+
golf
|
| 2600 |
+
subway
|
| 2601 |
+
headphone
|
| 2602 |
+
fort
|
| 2603 |
+
handbag
|
| 2604 |
+
drum
|
| 2605 |
+
flood
|
| 2606 |
+
saddle
|
| 2607 |
+
bass
|
| 2608 |
+
labyrinth
|
| 2609 |
+
needle
|
| 2610 |
+
sun ray
|
| 2611 |
+
app
|
| 2612 |
+
menu
|
| 2613 |
+
president
|
| 2614 |
+
cardigan
|
| 2615 |
+
dandelion
|
| 2616 |
+
wetland
|
| 2617 |
+
ice hockey player
|
| 2618 |
+
number
|
| 2619 |
+
city hall
|
| 2620 |
+
fishing
|
| 2621 |
+
portrait session
|
| 2622 |
+
pug
|
| 2623 |
+
key
|
| 2624 |
+
art print
|
| 2625 |
+
minister
|
| 2626 |
+
hurdle
|
| 2627 |
+
emergency
|
| 2628 |
+
painting artist
|
| 2629 |
+
flag pole
|
| 2630 |
+
evening
|
| 2631 |
+
purse
|
| 2632 |
+
recipe
|
| 2633 |
+
golf ball
|
| 2634 |
+
coloring book
|
| 2635 |
+
mountain peak
|
| 2636 |
+
senior
|
| 2637 |
+
holiday
|
| 2638 |
+
bud
|
| 2639 |
+
cousin
|
| 2640 |
+
pantry
|
| 2641 |
+
lap
|
| 2642 |
+
skin
|
| 2643 |
+
flag
|
| 2644 |
+
tissue paper
|
| 2645 |
+
ridge
|
| 2646 |
+
wire fence
|
| 2647 |
+
surfer
|
| 2648 |
+
climber
|
| 2649 |
+
photograph
|
| 2650 |
+
sewing machine
|
| 2651 |
+
cooler
|
| 2652 |
+
actress
|
| 2653 |
+
apple tree
|
| 2654 |
+
cancer
|
| 2655 |
+
starfish
|
| 2656 |
+
automobile make
|
| 2657 |
+
dumbbell
|
| 2658 |
+
brace
|
| 2659 |
+
tunnel
|
| 2660 |
+
window
|
| 2661 |
+
paint artist
|
| 2662 |
+
composition
|
| 2663 |
+
school student
|
| 2664 |
+
condo
|
| 2665 |
+
convertible
|
| 2666 |
+
cushion
|
| 2667 |
+
selfie
|
| 2668 |
+
territory
|
| 2669 |
+
guide
|
| 2670 |
+
tree
|
| 2671 |
+
court
|
| 2672 |
+
shrimp
|
| 2673 |
+
stone house
|
| 2674 |
+
dress
|
| 2675 |
+
eyelash
|
| 2676 |
+
juice
|
| 2677 |
+
broccoli
|
| 2678 |
+
chain
|
| 2679 |
+
tourism
|
| 2680 |
+
mountain top
|
| 2681 |
+
concept car
|
| 2682 |
+
film premiere
|
| 2683 |
+
light bulb
|
| 2684 |
+
cafeteria
|
| 2685 |
+
badge
|
| 2686 |
+
flower bed
|
| 2687 |
+
theater
|
| 2688 |
+
root
|
| 2689 |
+
racecar driver
|
| 2690 |
+
basketball boy game
|
| 2691 |
+
glove
|
| 2692 |
+
skyline
|
| 2693 |
+
wall
|
| 2694 |
+
glacier
|
| 2695 |
+
airport terminal
|
| 2696 |
+
bug
|
| 2697 |
+
trim
|
| 2698 |
+
railway station
|
| 2699 |
+
briefcase
|
| 2700 |
+
flat
|
| 2701 |
+
fountain
|
| 2702 |
+
person
|
| 2703 |
+
lane
|
| 2704 |
+
asparagus
|
| 2705 |
+
art
|
| 2706 |
+
lantern
|
| 2707 |
+
dishwasher
|
| 2708 |
+
director
|
| 2709 |
+
snake
|
| 2710 |
+
lecture
|
| 2711 |
+
game controller
|
| 2712 |
+
tree branch
|
| 2713 |
+
pub
|
| 2714 |
+
bathing suit
|
| 2715 |
+
queue
|
| 2716 |
+
belly
|
| 2717 |
+
poppy
|
| 2718 |
+
bow
|
| 2719 |
+
pitcher
|
| 2720 |
+
ice cream cone
|
| 2721 |
+
cave
|
| 2722 |
+
candy
|
| 2723 |
+
road bridge
|
| 2724 |
+
host
|
| 2725 |
+
traffic jam
|
| 2726 |
+
earring
|
| 2727 |
+
file
|
| 2728 |
+
foot
|
| 2729 |
+
watermark overlay stamp
|
| 2730 |
+
mailbox
|
| 2731 |
+
supercar
|
| 2732 |
+
railing
|
| 2733 |
+
bedroom
|
| 2734 |
+
seafood
|
| 2735 |
+
waffle
|
| 2736 |
+
bronze statue
|
| 2737 |
+
plan
|
| 2738 |
+
flow
|
| 2739 |
+
marble
|
| 2740 |
+
basketball game
|
| 2741 |
+
automobile
|
| 2742 |
+
scene
|
| 2743 |
+
cypress tree
|
| 2744 |
+
soldier
|
| 2745 |
+
skateboarder
|
| 2746 |
+
glass building
|
| 2747 |
+
cherry tree
|
| 2748 |
+
pump
|
| 2749 |
+
grain
|
| 2750 |
+
wildebeest
|
| 2751 |
+
loop
|
| 2752 |
+
frame
|
| 2753 |
+
bathtub
|
| 2754 |
+
saxophone
|
| 2755 |
+
diver
|
| 2756 |
+
stalk
|
| 2757 |
+
lily
|
| 2758 |
+
bead
|
| 2759 |
+
alley
|
| 2760 |
+
flock
|
| 2761 |
+
family room
|
| 2762 |
+
manufacturing
|
| 2763 |
+
pointer
|
| 2764 |
+
worker
|
| 2765 |
+
navy
|
| 2766 |
+
potato
|
| 2767 |
+
teacher
|
| 2768 |
+
photography
|
| 2769 |
+
dolly
|
| 2770 |
+
boardwalk
|
| 2771 |
+
water fountain
|
| 2772 |
+
athlete
|
| 2773 |
+
side dish
|
| 2774 |
+
bay
|
| 2775 |
+
ice hockey
|
| 2776 |
+
phone
|
| 2777 |
+
hero
|
| 2778 |
+
face
|
| 2779 |
+
gold medal
|
| 2780 |
+
blind
|
| 2781 |
+
swamp
|
| 2782 |
+
researcher
|
| 2783 |
+
swim
|
| 2784 |
+
meatball
|
| 2785 |
+
iguana
|
| 2786 |
+
leather jacket
|
| 2787 |
+
jellyfish
|
| 2788 |
+
site
|
| 2789 |
+
smoke
|
| 2790 |
+
traffic signal
|
| 2791 |
+
melon
|
| 2792 |
+
beetle
|
| 2793 |
+
calculator
|
| 2794 |
+
skirt
|
| 2795 |
+
plantation
|
| 2796 |
+
sculptor
|
| 2797 |
+
barrier
|
| 2798 |
+
catcher
|
| 2799 |
+
security guard
|
| 2800 |
+
sketch
|
| 2801 |
+
awning
|
| 2802 |
+
steering wheel
|
| 2803 |
+
mountain view
|
| 2804 |
+
bus stop
|
| 2805 |
+
pool
|
| 2806 |
+
leg
|
| 2807 |
+
spotlight
|
| 2808 |
+
apron
|
| 2809 |
+
mineral
|
| 2810 |
+
inlet
|
| 2811 |
+
sleeve
|
| 2812 |
+
torch
|
| 2813 |
+
emotion
|
| 2814 |
+
march
|
| 2815 |
+
police officer
|
| 2816 |
+
performance
|
| 2817 |
+
lamp post
|
| 2818 |
+
fishing boat
|
| 2819 |
+
summer
|
| 2820 |
+
presentation
|
| 2821 |
+
saucer
|
| 2822 |
+
suitcase
|
| 2823 |
+
supermodel
|
| 2824 |
+
goalkeeper
|
| 2825 |
+
shrub
|
| 2826 |
+
rock artist
|
| 2827 |
+
document
|
| 2828 |
+
beach house
|
| 2829 |
+
man
|
| 2830 |
+
blue artist
|
| 2831 |
+
cigar
|
| 2832 |
+
railroad track
|
| 2833 |
+
gown
|
| 2834 |
+
mosaic
|
| 2835 |
+
bungalow
|
| 2836 |
+
alphabet
|
| 2837 |
+
baseball field
|
| 2838 |
+
shed
|
| 2839 |
+
pedestrian
|
| 2840 |
+
rail
|
| 2841 |
+
soap
|
| 2842 |
+
kitchen counter
|
| 2843 |
+
dessert
|
| 2844 |
+
dunk
|
| 2845 |
+
blossom
|
| 2846 |
+
conversation
|
| 2847 |
+
fruit market
|
| 2848 |
+
glass jar
|
| 2849 |
+
military
|
| 2850 |
+
beer bottle
|
| 2851 |
+
photographer
|
| 2852 |
+
tennis racket
|
| 2853 |
+
competition
|
| 2854 |
+
escalator
|
| 2855 |
+
bell tower
|
| 2856 |
+
stilt
|
| 2857 |
+
ballerina
|
| 2858 |
+
television
|
| 2859 |
+
feather
|
| 2860 |
+
fence post
|
| 2861 |
+
rear
|
| 2862 |
+
dahlia
|
| 2863 |
+
red carpet
|
| 2864 |
+
tub
|
| 2865 |
+
hole
|
| 2866 |
+
fortress
|
| 2867 |
+
pack
|
| 2868 |
+
telephone
|
| 2869 |
+
cardboard
|
| 2870 |
+
city park
|
| 2871 |
+
platform
|
| 2872 |
+
college student
|
| 2873 |
+
arch bridge
|
| 2874 |
+
wind
|
| 2875 |
+
blender
|
| 2876 |
+
bloom
|
| 2877 |
+
ice rink
|
| 2878 |
+
birthday
|
| 2879 |
+
raven
|
| 2880 |
+
fairy
|
| 2881 |
+
embankment
|
| 2882 |
+
hall
|
| 2883 |
+
flower shop
|
| 2884 |
+
suburb
|
| 2885 |
+
barrel
|
| 2886 |
+
biker
|
| 2887 |
+
steam
|
| 2888 |
+
dragonfly
|
| 2889 |
+
formation
|
| 2890 |
+
electricity
|
| 2891 |
+
business people
|
| 2892 |
+
symmetry
|
| 2893 |
+
walkway
|
| 2894 |
+
fisherman
|
| 2895 |
+
gas mask
|
| 2896 |
+
loch
|
| 2897 |
+
youth
|
| 2898 |
+
hanger
|
| 2899 |
+
dot
|
| 2900 |
+
fish
|
| 2901 |
+
street market
|
| 2902 |
+
animation film
|
| 2903 |
+
crime fiction film
|
| 2904 |
+
boar
|
| 2905 |
+
emblem
|
| 2906 |
+
halloween costume
|
| 2907 |
+
kangaroo
|
| 2908 |
+
couple
|
| 2909 |
+
spoon
|
| 2910 |
+
squirrel
|
| 2911 |
+
neon sign
|
| 2912 |
+
sky
|
| 2913 |
+
office desk
|
| 2914 |
+
beauty salon
|
| 2915 |
+
breakwater
|
| 2916 |
+
fashion look
|
| 2917 |
+
toaster
|
| 2918 |
+
author
|
| 2919 |
+
news conference
|
| 2920 |
+
outdoor
|
| 2921 |
+
canoe
|
| 2922 |
+
dragon
|
| 2923 |
+
tool
|
| 2924 |
+
shopping centre
|
| 2925 |
+
ladybug
|
| 2926 |
+
swimming pool
|
| 2927 |
+
landscaping
|
| 2928 |
+
ski pole
|
| 2929 |
+
red
|
| 2930 |
+
truck
|
| 2931 |
+
fly
|
| 2932 |
+
temple
|
| 2933 |
+
level
|
| 2934 |
+
sunday
|
| 2935 |
+
railroad bridge
|
| 2936 |
+
car mirror
|
| 2937 |
+
lawn mower
|
| 2938 |
+
flute
|
| 2939 |
+
aircraft carrier
|
| 2940 |
+
fashion menswear london week
|
| 2941 |
+
sunshine
|
| 2942 |
+
tile floor
|
| 2943 |
+
skull
|
| 2944 |
+
fossil
|
| 2945 |
+
flower arrangement
|
| 2946 |
+
diaper
|
| 2947 |
+
sea turtle
|
| 2948 |
+
cherry blossom
|
| 2949 |
+
fireman
|
| 2950 |
+
shack
|
| 2951 |
+
lens
|
| 2952 |
+
waiter
|
| 2953 |
+
animal
|
| 2954 |
+
basement
|
| 2955 |
+
snow
|
| 2956 |
+
autumn park
|
| 2957 |
+
glass box
|
| 2958 |
+
kick
|
| 2959 |
+
head
|
| 2960 |
+
anniversary
|
| 2961 |
+
vine
|
| 2962 |
+
back
|
| 2963 |
+
paper lantern
|
| 2964 |
+
fish tank
|
| 2965 |
+
cellphone
|
| 2966 |
+
silk
|
| 2967 |
+
coral
|
| 2968 |
+
notebook
|
| 2969 |
+
photo
|
| 2970 |
+
gazebo
|
| 2971 |
+
ketchup
|
| 2972 |
+
driver
|
| 2973 |
+
farmer
|
| 2974 |
+
bonfire
|
| 2975 |
+
chestnut
|
| 2976 |
+
photoshoot
|
| 2977 |
+
football field
|
| 2978 |
+
olive tree
|
| 2979 |
+
pheasant
|
| 2980 |
+
sandal
|
| 2981 |
+
toilet
|
| 2982 |
+
fireplace
|
| 2983 |
+
music
|
| 2984 |
+
deity
|
| 2985 |
+
fish market
|
| 2986 |
+
fig
|
| 2987 |
+
bell
|
| 2988 |
+
neck
|
| 2989 |
+
grave
|
| 2990 |
+
villa
|
| 2991 |
+
cyclist
|
| 2992 |
+
crate
|
| 2993 |
+
grey
|
| 2994 |
+
asphalt road
|
| 2995 |
+
soccer
|
| 2996 |
+
hostel
|
| 2997 |
+
municipality
|
| 2998 |
+
courthouse
|
| 2999 |
+
roof
|
| 3000 |
+
end table
|
| 3001 |
+
pot
|
| 3002 |
+
sedan
|
| 3003 |
+
structure
|
| 3004 |
+
folk artist
|
| 3005 |
+
sport
|
| 3006 |
+
sport team
|
| 3007 |
+
protest
|
| 3008 |
+
syringe
|
| 3009 |
+
fashion designer
|
| 3010 |
+
jersey
|
| 3011 |
+
heart shape
|
| 3012 |
+
kayak
|
| 3013 |
+
stare
|
| 3014 |
+
sit with
|
| 3015 |
+
direct
|
| 3016 |
+
read
|
| 3017 |
+
photograph
|
| 3018 |
+
spin
|
| 3019 |
+
teach
|
| 3020 |
+
laugh
|
| 3021 |
+
carve
|
| 3022 |
+
grow on
|
| 3023 |
+
warm
|
| 3024 |
+
watch
|
| 3025 |
+
stretch
|
| 3026 |
+
smell
|
| 3027 |
+
decorate
|
| 3028 |
+
shine
|
| 3029 |
+
light
|
| 3030 |
+
dance
|
| 3031 |
+
send
|
| 3032 |
+
park
|
| 3033 |
+
chase
|
| 3034 |
+
collect
|
| 3035 |
+
lead
|
| 3036 |
+
kiss
|
| 3037 |
+
lead to
|
| 3038 |
+
lick
|
| 3039 |
+
smile
|
| 3040 |
+
cheer
|
| 3041 |
+
sit
|
| 3042 |
+
point
|
| 3043 |
+
block
|
| 3044 |
+
rock
|
| 3045 |
+
drop
|
| 3046 |
+
cut
|
| 3047 |
+
ski
|
| 3048 |
+
wrap
|
| 3049 |
+
lose
|
| 3050 |
+
serve
|
| 3051 |
+
provide
|
| 3052 |
+
sleep
|
| 3053 |
+
dress
|
| 3054 |
+
embrace
|
| 3055 |
+
burn
|
| 3056 |
+
pack
|
| 3057 |
+
stir
|
| 3058 |
+
create
|
| 3059 |
+
touch
|
| 3060 |
+
wash
|
| 3061 |
+
stick
|
| 3062 |
+
reveal
|
| 3063 |
+
shop
|
| 3064 |
+
train
|
| 3065 |
+
paint
|
| 3066 |
+
groom
|
| 3067 |
+
hunt
|
| 3068 |
+
bloom
|
| 3069 |
+
play
|
| 3070 |
+
pay
|
| 3071 |
+
brush
|
| 3072 |
+
shoot
|
| 3073 |
+
hold
|
| 3074 |
+
picture
|
| 3075 |
+
carry
|
| 3076 |
+
sip
|
| 3077 |
+
contain
|
| 3078 |
+
turn
|
| 3079 |
+
pour
|
| 3080 |
+
pitch
|
| 3081 |
+
give
|
| 3082 |
+
add
|
| 3083 |
+
blow
|
| 3084 |
+
look in
|
| 3085 |
+
show
|
| 3086 |
+
walk
|
| 3087 |
+
illuminate
|
| 3088 |
+
kneel
|
| 3089 |
+
cover
|
| 3090 |
+
drag
|
| 3091 |
+
post
|
| 3092 |
+
present
|
| 3093 |
+
fit
|
| 3094 |
+
operate
|
| 3095 |
+
fish
|
| 3096 |
+
race
|
| 3097 |
+
write
|
| 3098 |
+
deliver
|
| 3099 |
+
peel
|
| 3100 |
+
push
|
| 3101 |
+
run
|
| 3102 |
+
sit around
|
| 3103 |
+
buy
|
| 3104 |
+
jump
|
| 3105 |
+
walk on
|
| 3106 |
+
attend
|
| 3107 |
+
clean
|
| 3108 |
+
sell
|
| 3109 |
+
ride on
|
| 3110 |
+
mount
|
| 3111 |
+
host
|
| 3112 |
+
dry
|
| 3113 |
+
plant
|
| 3114 |
+
sing
|
| 3115 |
+
row
|
| 3116 |
+
shake
|
| 3117 |
+
perch
|
| 3118 |
+
ride
|
| 3119 |
+
fight
|
| 3120 |
+
skateboard
|
| 3121 |
+
live
|
| 3122 |
+
call
|
| 3123 |
+
surround
|
| 3124 |
+
practice
|
| 3125 |
+
play on
|
| 3126 |
+
work on
|
| 3127 |
+
step
|
| 3128 |
+
relax
|
| 3129 |
+
hit
|
| 3130 |
+
fall in
|
| 3131 |
+
flow
|
| 3132 |
+
greet
|
| 3133 |
+
launch
|
| 3134 |
+
wear
|
| 3135 |
+
hang on
|
| 3136 |
+
drive
|
| 3137 |
+
sit in
|
| 3138 |
+
break
|
| 3139 |
+
learn
|
| 3140 |
+
fly
|
| 3141 |
+
connect
|
| 3142 |
+
display
|
| 3143 |
+
locate
|
| 3144 |
+
compete
|
| 3145 |
+
go for
|
| 3146 |
+
sail
|
| 3147 |
+
lift
|
| 3148 |
+
toast
|
| 3149 |
+
help
|
| 3150 |
+
run on
|
| 3151 |
+
reflect
|
| 3152 |
+
pose
|
| 3153 |
+
scratch
|
| 3154 |
+
frame
|
| 3155 |
+
dribble
|
| 3156 |
+
herd
|
| 3157 |
+
enter
|
| 3158 |
+
exit
|
| 3159 |
+
place
|
| 3160 |
+
inspect
|
| 3161 |
+
build
|
| 3162 |
+
pick
|
| 3163 |
+
fill
|
| 3164 |
+
grind
|
| 3165 |
+
skate
|
| 3166 |
+
offer
|
| 3167 |
+
float
|
| 3168 |
+
sit by
|
| 3169 |
+
stand
|
| 3170 |
+
release
|
| 3171 |
+
rest
|
| 3172 |
+
singe
|
| 3173 |
+
climb
|
| 3174 |
+
tie
|
| 3175 |
+
mark
|
| 3176 |
+
lay
|
| 3177 |
+
stand around
|
| 3178 |
+
capture
|
| 3179 |
+
set
|
| 3180 |
+
land
|
| 3181 |
+
swinge
|
| 3182 |
+
run in
|
| 3183 |
+
kick
|
| 3184 |
+
lean
|
| 3185 |
+
head
|
| 3186 |
+
sign
|
| 3187 |
+
approach
|
| 3188 |
+
swim
|
| 3189 |
+
close
|
| 3190 |
+
crash
|
| 3191 |
+
control
|
| 3192 |
+
fall
|
| 3193 |
+
remove
|
| 3194 |
+
repair
|
| 3195 |
+
open
|
| 3196 |
+
appear
|
| 3197 |
+
travel
|
| 3198 |
+
load
|
| 3199 |
+
miss
|
| 3200 |
+
check
|
| 3201 |
+
surf
|
| 3202 |
+
moor
|
| 3203 |
+
smoke
|
| 3204 |
+
drink
|
| 3205 |
+
board
|
| 3206 |
+
seat
|
| 3207 |
+
feed
|
| 3208 |
+
rise
|
| 3209 |
+
sit on
|
| 3210 |
+
swing
|
| 3211 |
+
grow
|
| 3212 |
+
strike
|
| 3213 |
+
date
|
| 3214 |
+
slide
|
| 3215 |
+
share
|
| 3216 |
+
graze
|
| 3217 |
+
jump in
|
| 3218 |
+
lie
|
| 3219 |
+
extrude
|
| 3220 |
+
roll
|
| 3221 |
+
move
|
| 3222 |
+
gather
|
| 3223 |
+
eat
|
| 3224 |
+
pull
|
| 3225 |
+
run through
|
| 3226 |
+
squeeze
|
| 3227 |
+
lay on
|
| 3228 |
+
draw
|
| 3229 |
+
play with
|
| 3230 |
+
wave
|
| 3231 |
+
assemble
|
| 3232 |
+
perform
|
| 3233 |
+
march
|
| 3234 |
+
score
|
| 3235 |
+
attach
|
| 3236 |
+
adjust
|
| 3237 |
+
hang
|
| 3238 |
+
hug
|
| 3239 |
+
sleep on
|
| 3240 |
+
throw
|
| 3241 |
+
live in
|
| 3242 |
+
talk
|
| 3243 |
+
pet
|
| 3244 |
+
work
|
| 3245 |
+
run with
|
| 3246 |
+
see
|
| 3247 |
+
flip
|
| 3248 |
+
catch
|
| 3249 |
+
cook
|
| 3250 |
+
receive
|
| 3251 |
+
celebrate
|
| 3252 |
+
look
|
| 3253 |
+
classic
|
| 3254 |
+
bridal
|
| 3255 |
+
indoor
|
| 3256 |
+
industrial
|
| 3257 |
+
teenage
|
| 3258 |
+
mini
|
| 3259 |
+
grassy
|
| 3260 |
+
aged
|
| 3261 |
+
long
|
| 3262 |
+
warm
|
| 3263 |
+
light
|
| 3264 |
+
handsome
|
| 3265 |
+
happy
|
| 3266 |
+
three
|
| 3267 |
+
pregnant
|
| 3268 |
+
circular
|
| 3269 |
+
urban
|
| 3270 |
+
silver
|
| 3271 |
+
ceramic
|
| 3272 |
+
3d
|
| 3273 |
+
green
|
| 3274 |
+
blonde
|
| 3275 |
+
golden
|
| 3276 |
+
dark
|
| 3277 |
+
tropical
|
| 3278 |
+
ripe
|
| 3279 |
+
deep
|
| 3280 |
+
fat
|
| 3281 |
+
musical
|
| 3282 |
+
giant
|
| 3283 |
+
medical
|
| 3284 |
+
medieval
|
| 3285 |
+
bare
|
| 3286 |
+
stunning
|
| 3287 |
+
bold
|
| 3288 |
+
geographical
|
| 3289 |
+
huge
|
| 3290 |
+
plastic
|
| 3291 |
+
foggy
|
| 3292 |
+
stormy
|
| 3293 |
+
gothic
|
| 3294 |
+
biological
|
| 3295 |
+
empty
|
| 3296 |
+
clear
|
| 3297 |
+
antique
|
| 3298 |
+
pink
|
| 3299 |
+
steep
|
| 3300 |
+
brown
|
| 3301 |
+
striped
|
| 3302 |
+
aerial
|
| 3303 |
+
rainy
|
| 3304 |
+
cool
|
| 3305 |
+
flying
|
| 3306 |
+
commercial
|
| 3307 |
+
purple
|
| 3308 |
+
trendy
|
| 3309 |
+
blank
|
| 3310 |
+
haired
|
| 3311 |
+
dead
|
| 3312 |
+
wooden
|
| 3313 |
+
flat
|
| 3314 |
+
high
|
| 3315 |
+
beige
|
| 3316 |
+
panoramic
|
| 3317 |
+
angry
|
| 3318 |
+
dozen
|
| 3319 |
+
rural
|
| 3320 |
+
solar
|
| 3321 |
+
big
|
| 3322 |
+
small
|
| 3323 |
+
stained
|
| 3324 |
+
thick
|
| 3325 |
+
many
|
| 3326 |
+
fresh
|
| 3327 |
+
clean
|
| 3328 |
+
strong
|
| 3329 |
+
abstract
|
| 3330 |
+
crowded
|
| 3331 |
+
retro
|
| 3332 |
+
dry
|
| 3333 |
+
gorgeous
|
| 3334 |
+
martial
|
| 3335 |
+
modern
|
| 3336 |
+
blue
|
| 3337 |
+
cloudy
|
| 3338 |
+
low
|
| 3339 |
+
four
|
| 3340 |
+
outdoor
|
| 3341 |
+
single
|
| 3342 |
+
much
|
| 3343 |
+
beautiful
|
| 3344 |
+
snowy
|
| 3345 |
+
pretty
|
| 3346 |
+
new
|
| 3347 |
+
short
|
| 3348 |
+
sunny
|
| 3349 |
+
closed
|
| 3350 |
+
rocky
|
| 3351 |
+
red
|
| 3352 |
+
two
|
| 3353 |
+
double
|
| 3354 |
+
male
|
| 3355 |
+
gray
|
| 3356 |
+
five
|
| 3357 |
+
colorful
|
| 3358 |
+
automotive
|
| 3359 |
+
various
|
| 3360 |
+
one
|
| 3361 |
+
old
|
| 3362 |
+
rusty
|
| 3363 |
+
tall
|
| 3364 |
+
wild
|
| 3365 |
+
narrow
|
| 3366 |
+
natural
|
| 3367 |
+
several
|
| 3368 |
+
frozen
|
| 3369 |
+
textured
|
| 3370 |
+
lush
|
| 3371 |
+
young
|
| 3372 |
+
hot
|
| 3373 |
+
mixed
|
| 3374 |
+
white
|
| 3375 |
+
float
|
| 3376 |
+
quiet
|
| 3377 |
+
round
|
| 3378 |
+
bright
|
| 3379 |
+
religious
|
| 3380 |
+
female
|
| 3381 |
+
historical
|
| 3382 |
+
shiny
|
| 3383 |
+
traditional
|
| 3384 |
+
tourist
|
| 3385 |
+
yellow
|
| 3386 |
+
bald
|
| 3387 |
+
coastal
|
| 3388 |
+
lovely
|
| 3389 |
+
little
|
| 3390 |
+
broken
|
| 3391 |
+
romantic
|
| 3392 |
+
wide
|
| 3393 |
+
royal
|
| 3394 |
+
rich
|
| 3395 |
+
open
|
| 3396 |
+
cute
|
| 3397 |
+
ancient
|
| 3398 |
+
cold
|
| 3399 |
+
political
|
| 3400 |
+
elderly
|
| 3401 |
+
gold
|
| 3402 |
+
full
|
| 3403 |
+
rustic
|
| 3404 |
+
metallic
|
| 3405 |
+
floral
|
| 3406 |
+
sad
|
| 3407 |
+
wet
|
| 3408 |
+
fancy
|
| 3409 |
+
senior
|
| 3410 |
+
tiny
|
| 3411 |
+
stylish
|
| 3412 |
+
large
|
| 3413 |
+
frosty
|
| 3414 |
+
orange
|
| 3415 |
+
transparent
|
| 3416 |
+
electronic
|
| 3417 |
+
shallow
|
| 3418 |
+
scared
|
| 3419 |
+
armed
|
| 3420 |
+
dirty
|
| 3421 |
+
historic
|
| 3422 |
+
black
|
| 3423 |
+
few
|
| 3424 |
+
windy
|
| 3425 |
+
some
|
| 3426 |
+
square
|
| 3427 |
+
ornamental
|
| 3428 |
+
sandy
|
| 3429 |
+
thin
|
ram/inference.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
'''
|
| 2 |
+
* The Inference of RAM and Tag2Text Models
|
| 3 |
+
* Written by Xinyu Huang
|
| 4 |
+
'''
|
| 5 |
+
import torch
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
def inference_tag2text(image, model, input_tag="None"):
|
| 9 |
+
|
| 10 |
+
with torch.no_grad():
|
| 11 |
+
caption, tag_predict = model.generate(image,
|
| 12 |
+
tag_input=None,
|
| 13 |
+
max_length=50,
|
| 14 |
+
return_tag_predict=True)
|
| 15 |
+
|
| 16 |
+
if input_tag == '' or input_tag == 'none' or input_tag == 'None':
|
| 17 |
+
return tag_predict[0], None, caption[0]
|
| 18 |
+
|
| 19 |
+
# If user input specified tags:
|
| 20 |
+
else:
|
| 21 |
+
input_tag_list = []
|
| 22 |
+
input_tag_list.append(input_tag.replace(',', ' | '))
|
| 23 |
+
|
| 24 |
+
with torch.no_grad():
|
| 25 |
+
caption, input_tag = model.generate(image,
|
| 26 |
+
tag_input=input_tag_list,
|
| 27 |
+
max_length=50,
|
| 28 |
+
return_tag_predict=True)
|
| 29 |
+
|
| 30 |
+
return tag_predict[0], input_tag[0], caption[0]
|
| 31 |
+
|
| 32 |
+
|
| 33 |
+
def inference_ram(image, model):
|
| 34 |
+
|
| 35 |
+
with torch.no_grad():
|
| 36 |
+
tags, tags_chinese = model.generate_tag(image)
|
| 37 |
+
|
| 38 |
+
return tags[0],tags_chinese[0]
|
| 39 |
+
|
| 40 |
+
|
| 41 |
+
def inference_ram_openset(image, model):
|
| 42 |
+
|
| 43 |
+
with torch.no_grad():
|
| 44 |
+
tags = model.generate_tag_openset(image)
|
| 45 |
+
|
| 46 |
+
return tags[0]
|
ram/models/__init__.py
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from .ram import ram
|
| 2 |
+
from .tag2text import tag2text
|
ram/models/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file (236 Bytes). View file
|
|
|
ram/models/__pycache__/bert.cpython-310.pyc
ADDED
|
Binary file (28.9 kB). View file
|
|
|
ram/models/__pycache__/bert_lora.cpython-310.pyc
ADDED
|
Binary file (29 kB). View file
|
|
|
ram/models/__pycache__/condition_network.cpython-310.pyc
ADDED
|
Binary file (1.45 kB). View file
|
|
|
ram/models/__pycache__/ram.cpython-310.pyc
ADDED
|
Binary file (7.73 kB). View file
|
|
|
ram/models/__pycache__/ram_condition.cpython-310.pyc
ADDED
|
Binary file (8.33 kB). View file
|
|
|
ram/models/__pycache__/ram_lora.cpython-310.pyc
ADDED
|
Binary file (8.31 kB). View file
|
|
|
ram/models/__pycache__/ram_swin_bert_lora.cpython-310.pyc
ADDED
|
Binary file (8.43 kB). View file
|
|
|
ram/models/__pycache__/ram_swin_lora.cpython-310.pyc
ADDED
|
Binary file (8.27 kB). View file
|
|
|
ram/models/__pycache__/swin_transformer.cpython-310.pyc
ADDED
|
Binary file (22.3 kB). View file
|
|
|
ram/models/__pycache__/swin_transformer_lora.cpython-310.pyc
ADDED
|
Binary file (21.6 kB). View file
|
|
|
ram/models/__pycache__/tag2text.cpython-310.pyc
ADDED
|
Binary file (8.85 kB). View file
|
|
|
ram/models/__pycache__/tag2text_lora.cpython-310.pyc
ADDED
|
Binary file (8.87 kB). View file
|
|
|
ram/models/__pycache__/utils.cpython-310.pyc
ADDED
|
Binary file (8.61 kB). View file
|
|
|
ram/models/__pycache__/vit.cpython-310.pyc
ADDED
|
Binary file (12.4 kB). View file
|
|
|
ram/models/bert.py
ADDED
|
@@ -0,0 +1,1035 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
'''
|
| 2 |
+
* Copyright (c) 2022, salesforce.com, inc.
|
| 3 |
+
* All rights reserved.
|
| 4 |
+
* SPDX-License-Identifier: BSD-3-Clause
|
| 5 |
+
* For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause
|
| 6 |
+
* By Junnan Li
|
| 7 |
+
* Based on huggingface code base
|
| 8 |
+
* https://github.com/huggingface/transformers/blob/v4.15.0/src/transformers/models/bert
|
| 9 |
+
'''
|
| 10 |
+
|
| 11 |
+
import math
|
| 12 |
+
import os
|
| 13 |
+
import warnings
|
| 14 |
+
from dataclasses import dataclass
|
| 15 |
+
from typing import Optional, Tuple
|
| 16 |
+
|
| 17 |
+
import torch
|
| 18 |
+
from torch import Tensor, device, dtype, nn
|
| 19 |
+
import torch.utils.checkpoint
|
| 20 |
+
from torch import nn
|
| 21 |
+
from torch.nn import CrossEntropyLoss
|
| 22 |
+
import torch.nn.functional as F
|
| 23 |
+
|
| 24 |
+
from transformers.activations import ACT2FN
|
| 25 |
+
from transformers.file_utils import (
|
| 26 |
+
ModelOutput,
|
| 27 |
+
)
|
| 28 |
+
from transformers.modeling_outputs import (
|
| 29 |
+
BaseModelOutputWithPastAndCrossAttentions,
|
| 30 |
+
BaseModelOutputWithPoolingAndCrossAttentions,
|
| 31 |
+
CausalLMOutputWithCrossAttentions,
|
| 32 |
+
MaskedLMOutput,
|
| 33 |
+
MultipleChoiceModelOutput,
|
| 34 |
+
NextSentencePredictorOutput,
|
| 35 |
+
QuestionAnsweringModelOutput,
|
| 36 |
+
SequenceClassifierOutput,
|
| 37 |
+
TokenClassifierOutput,
|
| 38 |
+
)
|
| 39 |
+
from transformers.modeling_utils import (
|
| 40 |
+
PreTrainedModel,
|
| 41 |
+
apply_chunking_to_forward,
|
| 42 |
+
find_pruneable_heads_and_indices,
|
| 43 |
+
prune_linear_layer,
|
| 44 |
+
)
|
| 45 |
+
from transformers.utils import logging
|
| 46 |
+
from transformers.models.bert.configuration_bert import BertConfig
|
| 47 |
+
|
| 48 |
+
|
| 49 |
+
logger = logging.get_logger(__name__)
|
| 50 |
+
|
| 51 |
+
|
| 52 |
+
class BertEmbeddings_nopos(nn.Module):
|
| 53 |
+
"""Construct the embeddings from word and position embeddings."""
|
| 54 |
+
|
| 55 |
+
def __init__(self, config):
|
| 56 |
+
super().__init__()
|
| 57 |
+
self.word_embeddings = nn.Embedding(config.vocab_size, config.hidden_size, padding_idx=config.pad_token_id)
|
| 58 |
+
# self.position_embeddings = nn.Embedding(config.max_position_embeddings, config.hidden_size)
|
| 59 |
+
|
| 60 |
+
# self.LayerNorm is not snake-cased to stick with TensorFlow model variable name and be able to load
|
| 61 |
+
# any TensorFlow checkpoint file
|
| 62 |
+
self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
|
| 63 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 64 |
+
|
| 65 |
+
# position_ids (1, len position emb) is contiguous in memory and exported when serialized
|
| 66 |
+
# self.register_buffer("position_ids", torch.arange(config.max_position_embeddings).expand((1, -1)))
|
| 67 |
+
# self.position_embedding_type = getattr(config, "position_embedding_type", "absolute")
|
| 68 |
+
|
| 69 |
+
self.config = config
|
| 70 |
+
|
| 71 |
+
def forward(
|
| 72 |
+
self, input_ids=None, position_ids=None, inputs_embeds=None, past_key_values_length=0
|
| 73 |
+
):
|
| 74 |
+
if input_ids is not None:
|
| 75 |
+
input_shape = input_ids.size()
|
| 76 |
+
else:
|
| 77 |
+
input_shape = inputs_embeds.size()[:-1]
|
| 78 |
+
|
| 79 |
+
seq_length = input_shape[1]
|
| 80 |
+
|
| 81 |
+
# if position_ids is None:
|
| 82 |
+
# position_ids = self.position_ids[:, past_key_values_length : seq_length + past_key_values_length]
|
| 83 |
+
|
| 84 |
+
if inputs_embeds is None:
|
| 85 |
+
inputs_embeds = self.word_embeddings(input_ids)
|
| 86 |
+
|
| 87 |
+
embeddings = inputs_embeds
|
| 88 |
+
|
| 89 |
+
# if self.position_embedding_type == "absolute":
|
| 90 |
+
# position_embeddings = self.position_embeddings(position_ids)
|
| 91 |
+
# # print('add position_embeddings!!!!')
|
| 92 |
+
# embeddings += position_embeddings
|
| 93 |
+
embeddings = self.LayerNorm(embeddings)
|
| 94 |
+
embeddings = self.dropout(embeddings)
|
| 95 |
+
return embeddings
|
| 96 |
+
|
| 97 |
+
|
| 98 |
+
|
| 99 |
+
|
| 100 |
+
class BertEmbeddings(nn.Module):
|
| 101 |
+
"""Construct the embeddings from word and position embeddings."""
|
| 102 |
+
|
| 103 |
+
def __init__(self, config):
|
| 104 |
+
super().__init__()
|
| 105 |
+
self.word_embeddings = nn.Embedding(config.vocab_size, config.hidden_size, padding_idx=config.pad_token_id)
|
| 106 |
+
self.position_embeddings = nn.Embedding(config.max_position_embeddings, config.hidden_size)
|
| 107 |
+
|
| 108 |
+
# self.LayerNorm is not snake-cased to stick with TensorFlow model variable name and be able to load
|
| 109 |
+
# any TensorFlow checkpoint file
|
| 110 |
+
self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
|
| 111 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 112 |
+
|
| 113 |
+
# position_ids (1, len position emb) is contiguous in memory and exported when serialized
|
| 114 |
+
self.register_buffer("position_ids", torch.arange(config.max_position_embeddings).expand((1, -1)))
|
| 115 |
+
self.position_embedding_type = getattr(config, "position_embedding_type", "absolute")
|
| 116 |
+
|
| 117 |
+
self.config = config
|
| 118 |
+
|
| 119 |
+
def forward(
|
| 120 |
+
self, input_ids=None, position_ids=None, inputs_embeds=None, past_key_values_length=0
|
| 121 |
+
):
|
| 122 |
+
if input_ids is not None:
|
| 123 |
+
input_shape = input_ids.size()
|
| 124 |
+
else:
|
| 125 |
+
input_shape = inputs_embeds.size()[:-1]
|
| 126 |
+
|
| 127 |
+
seq_length = input_shape[1]
|
| 128 |
+
|
| 129 |
+
if position_ids is None:
|
| 130 |
+
position_ids = self.position_ids[:, past_key_values_length : seq_length + past_key_values_length]
|
| 131 |
+
|
| 132 |
+
if inputs_embeds is None:
|
| 133 |
+
inputs_embeds = self.word_embeddings(input_ids)
|
| 134 |
+
|
| 135 |
+
embeddings = inputs_embeds
|
| 136 |
+
|
| 137 |
+
if self.position_embedding_type == "absolute":
|
| 138 |
+
position_embeddings = self.position_embeddings(position_ids)
|
| 139 |
+
# print('add position_embeddings!!!!')
|
| 140 |
+
embeddings += position_embeddings
|
| 141 |
+
embeddings = self.LayerNorm(embeddings)
|
| 142 |
+
embeddings = self.dropout(embeddings)
|
| 143 |
+
return embeddings
|
| 144 |
+
|
| 145 |
+
|
| 146 |
+
class BertSelfAttention(nn.Module):
|
| 147 |
+
def __init__(self, config, is_cross_attention):
|
| 148 |
+
super().__init__()
|
| 149 |
+
self.config = config
|
| 150 |
+
if config.hidden_size % config.num_attention_heads != 0 and not hasattr(config, "embedding_size"):
|
| 151 |
+
raise ValueError(
|
| 152 |
+
"The hidden size (%d) is not a multiple of the number of attention "
|
| 153 |
+
"heads (%d)" % (config.hidden_size, config.num_attention_heads)
|
| 154 |
+
)
|
| 155 |
+
|
| 156 |
+
self.num_attention_heads = config.num_attention_heads
|
| 157 |
+
self.attention_head_size = int(config.hidden_size / config.num_attention_heads)
|
| 158 |
+
self.all_head_size = self.num_attention_heads * self.attention_head_size
|
| 159 |
+
|
| 160 |
+
self.query = nn.Linear(config.hidden_size, self.all_head_size)
|
| 161 |
+
if is_cross_attention:
|
| 162 |
+
self.key = nn.Linear(config.encoder_width, self.all_head_size)
|
| 163 |
+
self.value = nn.Linear(config.encoder_width, self.all_head_size)
|
| 164 |
+
else:
|
| 165 |
+
self.key = nn.Linear(config.hidden_size, self.all_head_size)
|
| 166 |
+
self.value = nn.Linear(config.hidden_size, self.all_head_size)
|
| 167 |
+
|
| 168 |
+
self.dropout = nn.Dropout(config.attention_probs_dropout_prob)
|
| 169 |
+
self.position_embedding_type = getattr(config, "position_embedding_type", "absolute")
|
| 170 |
+
if self.position_embedding_type == "relative_key" or self.position_embedding_type == "relative_key_query":
|
| 171 |
+
self.max_position_embeddings = config.max_position_embeddings
|
| 172 |
+
self.distance_embedding = nn.Embedding(2 * config.max_position_embeddings - 1, self.attention_head_size)
|
| 173 |
+
self.save_attention = False
|
| 174 |
+
|
| 175 |
+
def save_attn_gradients(self, attn_gradients):
|
| 176 |
+
self.attn_gradients = attn_gradients
|
| 177 |
+
|
| 178 |
+
def get_attn_gradients(self):
|
| 179 |
+
return self.attn_gradients
|
| 180 |
+
|
| 181 |
+
def save_attention_map(self, attention_map):
|
| 182 |
+
self.attention_map = attention_map
|
| 183 |
+
|
| 184 |
+
def get_attention_map(self):
|
| 185 |
+
return self.attention_map
|
| 186 |
+
|
| 187 |
+
def transpose_for_scores(self, x):
|
| 188 |
+
new_x_shape = x.size()[:-1] + (self.num_attention_heads, self.attention_head_size)
|
| 189 |
+
x = x.view(*new_x_shape)
|
| 190 |
+
return x.permute(0, 2, 1, 3)
|
| 191 |
+
|
| 192 |
+
def forward(
|
| 193 |
+
self,
|
| 194 |
+
hidden_states,
|
| 195 |
+
attention_mask=None,
|
| 196 |
+
head_mask=None,
|
| 197 |
+
encoder_hidden_states=None,
|
| 198 |
+
encoder_attention_mask=None,
|
| 199 |
+
past_key_value=None,
|
| 200 |
+
output_attentions=False,
|
| 201 |
+
):
|
| 202 |
+
mixed_query_layer = self.query(hidden_states)
|
| 203 |
+
|
| 204 |
+
# If this is instantiated as a cross-attention module, the keys
|
| 205 |
+
# and values come from an encoder; the attention mask needs to be
|
| 206 |
+
# such that the encoder's padding tokens are not attended to.
|
| 207 |
+
is_cross_attention = encoder_hidden_states is not None
|
| 208 |
+
|
| 209 |
+
if is_cross_attention:
|
| 210 |
+
# print(self.key.weight.shape)
|
| 211 |
+
key_layer = self.transpose_for_scores(self.key(encoder_hidden_states))
|
| 212 |
+
value_layer = self.transpose_for_scores(self.value(encoder_hidden_states))
|
| 213 |
+
attention_mask = encoder_attention_mask
|
| 214 |
+
elif past_key_value is not None:
|
| 215 |
+
key_layer = self.transpose_for_scores(self.key(hidden_states))
|
| 216 |
+
value_layer = self.transpose_for_scores(self.value(hidden_states))
|
| 217 |
+
key_layer = torch.cat([past_key_value[0], key_layer], dim=2)
|
| 218 |
+
value_layer = torch.cat([past_key_value[1], value_layer], dim=2)
|
| 219 |
+
else:
|
| 220 |
+
key_layer = self.transpose_for_scores(self.key(hidden_states))
|
| 221 |
+
value_layer = self.transpose_for_scores(self.value(hidden_states))
|
| 222 |
+
|
| 223 |
+
query_layer = self.transpose_for_scores(mixed_query_layer)
|
| 224 |
+
|
| 225 |
+
past_key_value = (key_layer, value_layer)
|
| 226 |
+
|
| 227 |
+
# compatible with higher versions of transformers
|
| 228 |
+
if key_layer.shape[0] > query_layer.shape[0]:
|
| 229 |
+
key_layer = key_layer[:query_layer.shape[0], :, :, :]
|
| 230 |
+
attention_mask = attention_mask[:query_layer.shape[0], :, :]
|
| 231 |
+
value_layer = value_layer[:query_layer.shape[0], :, :, :]
|
| 232 |
+
|
| 233 |
+
# Take the dot product between "query" and "key" to get the raw attention scores.
|
| 234 |
+
attention_scores = torch.matmul(query_layer, key_layer.transpose(-1, -2))
|
| 235 |
+
|
| 236 |
+
if self.position_embedding_type == "relative_key" or self.position_embedding_type == "relative_key_query":
|
| 237 |
+
seq_length = hidden_states.size()[1]
|
| 238 |
+
position_ids_l = torch.arange(seq_length, dtype=torch.long, device=hidden_states.device).view(-1, 1)
|
| 239 |
+
position_ids_r = torch.arange(seq_length, dtype=torch.long, device=hidden_states.device).view(1, -1)
|
| 240 |
+
distance = position_ids_l - position_ids_r
|
| 241 |
+
positional_embedding = self.distance_embedding(distance + self.max_position_embeddings - 1)
|
| 242 |
+
positional_embedding = positional_embedding.to(dtype=query_layer.dtype) # fp16 compatibility
|
| 243 |
+
|
| 244 |
+
if self.position_embedding_type == "relative_key":
|
| 245 |
+
relative_position_scores = torch.einsum("bhld,lrd->bhlr", query_layer, positional_embedding)
|
| 246 |
+
attention_scores = attention_scores + relative_position_scores
|
| 247 |
+
elif self.position_embedding_type == "relative_key_query":
|
| 248 |
+
relative_position_scores_query = torch.einsum("bhld,lrd->bhlr", query_layer, positional_embedding)
|
| 249 |
+
relative_position_scores_key = torch.einsum("bhrd,lrd->bhlr", key_layer, positional_embedding)
|
| 250 |
+
attention_scores = attention_scores + relative_position_scores_query + relative_position_scores_key
|
| 251 |
+
|
| 252 |
+
attention_scores = attention_scores / math.sqrt(self.attention_head_size)
|
| 253 |
+
if attention_mask is not None:
|
| 254 |
+
# Apply the attention mask is (precomputed for all layers in BertModel forward() function)
|
| 255 |
+
attention_scores = attention_scores + attention_mask
|
| 256 |
+
|
| 257 |
+
# Normalize the attention scores to probabilities.
|
| 258 |
+
attention_probs = nn.Softmax(dim=-1)(attention_scores)
|
| 259 |
+
|
| 260 |
+
if is_cross_attention and self.save_attention:
|
| 261 |
+
self.save_attention_map(attention_probs)
|
| 262 |
+
attention_probs.register_hook(self.save_attn_gradients)
|
| 263 |
+
|
| 264 |
+
# This is actually dropping out entire tokens to attend to, which might
|
| 265 |
+
# seem a bit unusual, but is taken from the original Transformer paper.
|
| 266 |
+
attention_probs_dropped = self.dropout(attention_probs)
|
| 267 |
+
|
| 268 |
+
# Mask heads if we want to
|
| 269 |
+
if head_mask is not None:
|
| 270 |
+
attention_probs_dropped = attention_probs_dropped * head_mask
|
| 271 |
+
|
| 272 |
+
context_layer = torch.matmul(attention_probs_dropped, value_layer)
|
| 273 |
+
|
| 274 |
+
context_layer = context_layer.permute(0, 2, 1, 3).contiguous()
|
| 275 |
+
new_context_layer_shape = context_layer.size()[:-2] + (self.all_head_size,)
|
| 276 |
+
context_layer = context_layer.view(*new_context_layer_shape)
|
| 277 |
+
|
| 278 |
+
outputs = (context_layer, attention_probs) if output_attentions else (context_layer,)
|
| 279 |
+
|
| 280 |
+
outputs = outputs + (past_key_value,)
|
| 281 |
+
return outputs
|
| 282 |
+
|
| 283 |
+
|
| 284 |
+
class BertSelfOutput(nn.Module):
|
| 285 |
+
def __init__(self, config):
|
| 286 |
+
super().__init__()
|
| 287 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 288 |
+
self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
|
| 289 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 290 |
+
|
| 291 |
+
def forward(self, hidden_states, input_tensor):
|
| 292 |
+
hidden_states = self.dense(hidden_states)
|
| 293 |
+
hidden_states = self.dropout(hidden_states)
|
| 294 |
+
hidden_states = self.LayerNorm(hidden_states + input_tensor)
|
| 295 |
+
return hidden_states
|
| 296 |
+
|
| 297 |
+
|
| 298 |
+
class BertAttention(nn.Module):
|
| 299 |
+
def __init__(self, config, is_cross_attention=False):
|
| 300 |
+
super().__init__()
|
| 301 |
+
self.self = BertSelfAttention(config, is_cross_attention)
|
| 302 |
+
self.output = BertSelfOutput(config)
|
| 303 |
+
self.pruned_heads = set()
|
| 304 |
+
|
| 305 |
+
def prune_heads(self, heads):
|
| 306 |
+
if len(heads) == 0:
|
| 307 |
+
return
|
| 308 |
+
heads, index = find_pruneable_heads_and_indices(
|
| 309 |
+
heads, self.self.num_attention_heads, self.self.attention_head_size, self.pruned_heads
|
| 310 |
+
)
|
| 311 |
+
|
| 312 |
+
# Prune linear layers
|
| 313 |
+
self.self.query = prune_linear_layer(self.self.query, index)
|
| 314 |
+
self.self.key = prune_linear_layer(self.self.key, index)
|
| 315 |
+
self.self.value = prune_linear_layer(self.self.value, index)
|
| 316 |
+
self.output.dense = prune_linear_layer(self.output.dense, index, dim=1)
|
| 317 |
+
|
| 318 |
+
# Update hyper params and store pruned heads
|
| 319 |
+
self.self.num_attention_heads = self.self.num_attention_heads - len(heads)
|
| 320 |
+
self.self.all_head_size = self.self.attention_head_size * self.self.num_attention_heads
|
| 321 |
+
self.pruned_heads = self.pruned_heads.union(heads)
|
| 322 |
+
|
| 323 |
+
def forward(
|
| 324 |
+
self,
|
| 325 |
+
hidden_states,
|
| 326 |
+
attention_mask=None,
|
| 327 |
+
head_mask=None,
|
| 328 |
+
encoder_hidden_states=None,
|
| 329 |
+
encoder_attention_mask=None,
|
| 330 |
+
past_key_value=None,
|
| 331 |
+
output_attentions=False,
|
| 332 |
+
):
|
| 333 |
+
self_outputs = self.self(
|
| 334 |
+
hidden_states,
|
| 335 |
+
attention_mask,
|
| 336 |
+
head_mask,
|
| 337 |
+
encoder_hidden_states,
|
| 338 |
+
encoder_attention_mask,
|
| 339 |
+
past_key_value,
|
| 340 |
+
output_attentions,
|
| 341 |
+
)
|
| 342 |
+
attention_output = self.output(self_outputs[0], hidden_states)
|
| 343 |
+
outputs = (attention_output,) + self_outputs[1:] # add attentions if we output them
|
| 344 |
+
return outputs
|
| 345 |
+
|
| 346 |
+
|
| 347 |
+
class BertIntermediate(nn.Module):
|
| 348 |
+
def __init__(self, config):
|
| 349 |
+
super().__init__()
|
| 350 |
+
self.dense = nn.Linear(config.hidden_size, config.intermediate_size)
|
| 351 |
+
if isinstance(config.hidden_act, str):
|
| 352 |
+
self.intermediate_act_fn = ACT2FN[config.hidden_act]
|
| 353 |
+
else:
|
| 354 |
+
self.intermediate_act_fn = config.hidden_act
|
| 355 |
+
|
| 356 |
+
def forward(self, hidden_states):
|
| 357 |
+
hidden_states = self.dense(hidden_states)
|
| 358 |
+
hidden_states = self.intermediate_act_fn(hidden_states)
|
| 359 |
+
return hidden_states
|
| 360 |
+
|
| 361 |
+
|
| 362 |
+
class BertOutput(nn.Module):
|
| 363 |
+
def __init__(self, config):
|
| 364 |
+
super().__init__()
|
| 365 |
+
self.dense = nn.Linear(config.intermediate_size, config.hidden_size)
|
| 366 |
+
self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
|
| 367 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 368 |
+
|
| 369 |
+
def forward(self, hidden_states, input_tensor):
|
| 370 |
+
hidden_states = self.dense(hidden_states)
|
| 371 |
+
hidden_states = self.dropout(hidden_states)
|
| 372 |
+
hidden_states = self.LayerNorm(hidden_states + input_tensor)
|
| 373 |
+
return hidden_states
|
| 374 |
+
|
| 375 |
+
|
| 376 |
+
class BertLayer(nn.Module):
|
| 377 |
+
def __init__(self, config, layer_num):
|
| 378 |
+
super().__init__()
|
| 379 |
+
self.config = config
|
| 380 |
+
self.chunk_size_feed_forward = config.chunk_size_feed_forward
|
| 381 |
+
self.seq_len_dim = 1
|
| 382 |
+
self.attention = BertAttention(config)
|
| 383 |
+
self.layer_num = layer_num
|
| 384 |
+
if self.config.add_cross_attention:
|
| 385 |
+
self.crossattention = BertAttention(config, is_cross_attention=self.config.add_cross_attention)
|
| 386 |
+
self.intermediate = BertIntermediate(config)
|
| 387 |
+
self.output = BertOutput(config)
|
| 388 |
+
|
| 389 |
+
def forward(
|
| 390 |
+
self,
|
| 391 |
+
hidden_states,
|
| 392 |
+
attention_mask=None,
|
| 393 |
+
head_mask=None,
|
| 394 |
+
encoder_hidden_states=None,
|
| 395 |
+
encoder_attention_mask=None,
|
| 396 |
+
past_key_value=None,
|
| 397 |
+
output_attentions=False,
|
| 398 |
+
mode=None,
|
| 399 |
+
):
|
| 400 |
+
|
| 401 |
+
if mode == 'tagging':
|
| 402 |
+
|
| 403 |
+
assert encoder_hidden_states is not None, "encoder_hidden_states must be given for cross-attention layers"
|
| 404 |
+
|
| 405 |
+
cross_attention_outputs = self.crossattention(
|
| 406 |
+
hidden_states,
|
| 407 |
+
attention_mask,
|
| 408 |
+
head_mask,
|
| 409 |
+
encoder_hidden_states,
|
| 410 |
+
encoder_attention_mask,
|
| 411 |
+
output_attentions=output_attentions,
|
| 412 |
+
)
|
| 413 |
+
attention_output = cross_attention_outputs[0]
|
| 414 |
+
outputs = cross_attention_outputs[1:-1] # add cross attentions if we output attention weights
|
| 415 |
+
|
| 416 |
+
present_key_value = cross_attention_outputs[-1]
|
| 417 |
+
|
| 418 |
+
else:
|
| 419 |
+
# decoder uni-directional self-attention cached key/values tuple is at positions 1,2
|
| 420 |
+
self_attn_past_key_value = past_key_value[:2] if past_key_value is not None else None
|
| 421 |
+
self_attention_outputs = self.attention(
|
| 422 |
+
hidden_states,
|
| 423 |
+
attention_mask,
|
| 424 |
+
head_mask,
|
| 425 |
+
output_attentions=output_attentions,
|
| 426 |
+
past_key_value=self_attn_past_key_value,
|
| 427 |
+
)
|
| 428 |
+
attention_output = self_attention_outputs[0]
|
| 429 |
+
|
| 430 |
+
outputs = self_attention_outputs[1:-1]
|
| 431 |
+
present_key_value = self_attention_outputs[-1]
|
| 432 |
+
|
| 433 |
+
if mode=='multimodal':
|
| 434 |
+
assert encoder_hidden_states is not None, "encoder_hidden_states must be given for cross-attention layers"
|
| 435 |
+
|
| 436 |
+
cross_attention_outputs = self.crossattention(
|
| 437 |
+
attention_output,
|
| 438 |
+
attention_mask,
|
| 439 |
+
head_mask,
|
| 440 |
+
encoder_hidden_states,
|
| 441 |
+
encoder_attention_mask,
|
| 442 |
+
output_attentions=output_attentions,
|
| 443 |
+
)
|
| 444 |
+
attention_output = cross_attention_outputs[0]
|
| 445 |
+
outputs = outputs + cross_attention_outputs[1:-1] # add cross attentions if we output attention weights
|
| 446 |
+
layer_output = apply_chunking_to_forward(
|
| 447 |
+
self.feed_forward_chunk, self.chunk_size_feed_forward, self.seq_len_dim, attention_output
|
| 448 |
+
)
|
| 449 |
+
outputs = (layer_output,) + outputs
|
| 450 |
+
|
| 451 |
+
outputs = outputs + (present_key_value,)
|
| 452 |
+
|
| 453 |
+
return outputs
|
| 454 |
+
|
| 455 |
+
def feed_forward_chunk(self, attention_output):
|
| 456 |
+
intermediate_output = self.intermediate(attention_output)
|
| 457 |
+
layer_output = self.output(intermediate_output, attention_output)
|
| 458 |
+
return layer_output
|
| 459 |
+
|
| 460 |
+
|
| 461 |
+
class BertEncoder(nn.Module):
|
| 462 |
+
def __init__(self, config):
|
| 463 |
+
super().__init__()
|
| 464 |
+
self.config = config
|
| 465 |
+
self.layer = nn.ModuleList([BertLayer(config,i) for i in range(config.num_hidden_layers)])
|
| 466 |
+
self.gradient_checkpointing = False
|
| 467 |
+
|
| 468 |
+
def forward(
|
| 469 |
+
self,
|
| 470 |
+
hidden_states,
|
| 471 |
+
attention_mask=None,
|
| 472 |
+
head_mask=None,
|
| 473 |
+
encoder_hidden_states=None,
|
| 474 |
+
encoder_attention_mask=None,
|
| 475 |
+
past_key_values=None,
|
| 476 |
+
use_cache=None,
|
| 477 |
+
output_attentions=False,
|
| 478 |
+
output_hidden_states=False,
|
| 479 |
+
return_dict=True,
|
| 480 |
+
mode='multimodal',
|
| 481 |
+
):
|
| 482 |
+
all_hidden_states = () if output_hidden_states else None
|
| 483 |
+
all_self_attentions = () if output_attentions else None
|
| 484 |
+
all_cross_attentions = () if output_attentions and self.config.add_cross_attention else None
|
| 485 |
+
|
| 486 |
+
next_decoder_cache = () if use_cache else None
|
| 487 |
+
|
| 488 |
+
for i in range(self.config.num_hidden_layers):
|
| 489 |
+
layer_module = self.layer[i]
|
| 490 |
+
if output_hidden_states:
|
| 491 |
+
all_hidden_states = all_hidden_states + (hidden_states,)
|
| 492 |
+
|
| 493 |
+
layer_head_mask = head_mask[i] if head_mask is not None else None
|
| 494 |
+
past_key_value = past_key_values[i] if past_key_values is not None else None
|
| 495 |
+
|
| 496 |
+
if self.gradient_checkpointing and self.training:
|
| 497 |
+
|
| 498 |
+
if use_cache:
|
| 499 |
+
logger.warn(
|
| 500 |
+
"`use_cache=True` is incompatible with gradient checkpointing. Setting `use_cache=False`..."
|
| 501 |
+
)
|
| 502 |
+
use_cache = False
|
| 503 |
+
|
| 504 |
+
def create_custom_forward(module):
|
| 505 |
+
def custom_forward(*inputs):
|
| 506 |
+
return module(*inputs, past_key_value, output_attentions)
|
| 507 |
+
|
| 508 |
+
return custom_forward
|
| 509 |
+
|
| 510 |
+
layer_outputs = torch.utils.checkpoint.checkpoint(
|
| 511 |
+
create_custom_forward(layer_module),
|
| 512 |
+
hidden_states,
|
| 513 |
+
attention_mask,
|
| 514 |
+
layer_head_mask,
|
| 515 |
+
encoder_hidden_states,
|
| 516 |
+
encoder_attention_mask,
|
| 517 |
+
mode=mode,
|
| 518 |
+
)
|
| 519 |
+
else:
|
| 520 |
+
layer_outputs = layer_module(
|
| 521 |
+
hidden_states,
|
| 522 |
+
attention_mask,
|
| 523 |
+
layer_head_mask,
|
| 524 |
+
encoder_hidden_states,
|
| 525 |
+
encoder_attention_mask,
|
| 526 |
+
past_key_value,
|
| 527 |
+
output_attentions,
|
| 528 |
+
mode=mode,
|
| 529 |
+
)
|
| 530 |
+
|
| 531 |
+
hidden_states = layer_outputs[0]
|
| 532 |
+
if use_cache:
|
| 533 |
+
next_decoder_cache += (layer_outputs[-1],)
|
| 534 |
+
if output_attentions:
|
| 535 |
+
all_self_attentions = all_self_attentions + (layer_outputs[1],)
|
| 536 |
+
|
| 537 |
+
if output_hidden_states:
|
| 538 |
+
all_hidden_states = all_hidden_states + (hidden_states,)
|
| 539 |
+
|
| 540 |
+
if not return_dict:
|
| 541 |
+
return tuple(
|
| 542 |
+
v
|
| 543 |
+
for v in [
|
| 544 |
+
hidden_states,
|
| 545 |
+
next_decoder_cache,
|
| 546 |
+
all_hidden_states,
|
| 547 |
+
all_self_attentions,
|
| 548 |
+
all_cross_attentions,
|
| 549 |
+
]
|
| 550 |
+
if v is not None
|
| 551 |
+
)
|
| 552 |
+
return BaseModelOutputWithPastAndCrossAttentions(
|
| 553 |
+
last_hidden_state=hidden_states,
|
| 554 |
+
past_key_values=next_decoder_cache,
|
| 555 |
+
hidden_states=all_hidden_states,
|
| 556 |
+
attentions=all_self_attentions,
|
| 557 |
+
cross_attentions=all_cross_attentions,
|
| 558 |
+
)
|
| 559 |
+
|
| 560 |
+
|
| 561 |
+
class BertPooler(nn.Module):
|
| 562 |
+
def __init__(self, config):
|
| 563 |
+
super().__init__()
|
| 564 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 565 |
+
self.activation = nn.Tanh()
|
| 566 |
+
|
| 567 |
+
def forward(self, hidden_states):
|
| 568 |
+
# We "pool" the model by simply taking the hidden state corresponding
|
| 569 |
+
# to the first token.
|
| 570 |
+
first_token_tensor = hidden_states[:, 0]
|
| 571 |
+
pooled_output = self.dense(first_token_tensor)
|
| 572 |
+
pooled_output = self.activation(pooled_output)
|
| 573 |
+
return pooled_output
|
| 574 |
+
|
| 575 |
+
|
| 576 |
+
class BertPredictionHeadTransform(nn.Module):
|
| 577 |
+
def __init__(self, config):
|
| 578 |
+
super().__init__()
|
| 579 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 580 |
+
if isinstance(config.hidden_act, str):
|
| 581 |
+
self.transform_act_fn = ACT2FN[config.hidden_act]
|
| 582 |
+
else:
|
| 583 |
+
self.transform_act_fn = config.hidden_act
|
| 584 |
+
self.LayerNorm = nn.LayerNorm(config.hidden_size, eps=config.layer_norm_eps)
|
| 585 |
+
|
| 586 |
+
def forward(self, hidden_states):
|
| 587 |
+
hidden_states = self.dense(hidden_states)
|
| 588 |
+
hidden_states = self.transform_act_fn(hidden_states)
|
| 589 |
+
hidden_states = self.LayerNorm(hidden_states)
|
| 590 |
+
return hidden_states
|
| 591 |
+
|
| 592 |
+
|
| 593 |
+
class BertLMPredictionHead(nn.Module):
|
| 594 |
+
def __init__(self, config):
|
| 595 |
+
super().__init__()
|
| 596 |
+
self.transform = BertPredictionHeadTransform(config)
|
| 597 |
+
|
| 598 |
+
# The output weights are the same as the input embeddings, but there is
|
| 599 |
+
# an output-only bias for each token.
|
| 600 |
+
self.decoder = nn.Linear(config.hidden_size, config.vocab_size, bias=False)
|
| 601 |
+
|
| 602 |
+
self.bias = nn.Parameter(torch.zeros(config.vocab_size))
|
| 603 |
+
|
| 604 |
+
# Need a link between the two variables so that the bias is correctly resized with `resize_token_embeddings`
|
| 605 |
+
self.decoder.bias = self.bias
|
| 606 |
+
|
| 607 |
+
def forward(self, hidden_states):
|
| 608 |
+
hidden_states = self.transform(hidden_states)
|
| 609 |
+
hidden_states = self.decoder(hidden_states)
|
| 610 |
+
return hidden_states
|
| 611 |
+
|
| 612 |
+
|
| 613 |
+
class BertOnlyMLMHead(nn.Module):
|
| 614 |
+
def __init__(self, config):
|
| 615 |
+
super().__init__()
|
| 616 |
+
self.predictions = BertLMPredictionHead(config)
|
| 617 |
+
|
| 618 |
+
def forward(self, sequence_output):
|
| 619 |
+
prediction_scores = self.predictions(sequence_output)
|
| 620 |
+
return prediction_scores
|
| 621 |
+
|
| 622 |
+
|
| 623 |
+
class BertPreTrainedModel(PreTrainedModel):
|
| 624 |
+
"""
|
| 625 |
+
An abstract class to handle weights initialization and a simple interface for downloading and loading pretrained
|
| 626 |
+
models.
|
| 627 |
+
"""
|
| 628 |
+
|
| 629 |
+
config_class = BertConfig
|
| 630 |
+
base_model_prefix = "bert"
|
| 631 |
+
_keys_to_ignore_on_load_missing = [r"position_ids"]
|
| 632 |
+
|
| 633 |
+
def _init_weights(self, module):
|
| 634 |
+
""" Initialize the weights """
|
| 635 |
+
if isinstance(module, (nn.Linear, nn.Embedding)):
|
| 636 |
+
# Slightly different from the TF version which uses truncated_normal for initialization
|
| 637 |
+
# cf https://github.com/pytorch/pytorch/pull/5617
|
| 638 |
+
module.weight.data.normal_(mean=0.0, std=self.config.initializer_range)
|
| 639 |
+
elif isinstance(module, nn.LayerNorm):
|
| 640 |
+
module.bias.data.zero_()
|
| 641 |
+
module.weight.data.fill_(1.0)
|
| 642 |
+
if isinstance(module, nn.Linear) and module.bias is not None:
|
| 643 |
+
module.bias.data.zero_()
|
| 644 |
+
|
| 645 |
+
|
| 646 |
+
class BertModel(BertPreTrainedModel):
|
| 647 |
+
"""
|
| 648 |
+
The model can behave as an encoder (with only self-attention) as well as a decoder, in which case a layer of
|
| 649 |
+
cross-attention is added between the self-attention layers, following the architecture described in `Attention is
|
| 650 |
+
all you need <https://arxiv.org/abs/1706.03762>`__ by Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit,
|
| 651 |
+
Llion Jones, Aidan N. Gomez, Lukasz Kaiser and Illia Polosukhin.
|
| 652 |
+
argument and :obj:`add_cross_attention` set to :obj:`True`; an :obj:`encoder_hidden_states` is then expected as an
|
| 653 |
+
input to the forward pass.
|
| 654 |
+
"""
|
| 655 |
+
|
| 656 |
+
def __init__(self, config, add_pooling_layer=True):
|
| 657 |
+
super().__init__(config)
|
| 658 |
+
self.config = config
|
| 659 |
+
|
| 660 |
+
self.embeddings = BertEmbeddings(config)
|
| 661 |
+
|
| 662 |
+
self.encoder = BertEncoder(config)
|
| 663 |
+
|
| 664 |
+
self.pooler = BertPooler(config) if add_pooling_layer else None
|
| 665 |
+
|
| 666 |
+
self.init_weights()
|
| 667 |
+
|
| 668 |
+
|
| 669 |
+
def get_input_embeddings(self):
|
| 670 |
+
return self.embeddings.word_embeddings
|
| 671 |
+
|
| 672 |
+
def set_input_embeddings(self, value):
|
| 673 |
+
self.embeddings.word_embeddings = value
|
| 674 |
+
|
| 675 |
+
def _prune_heads(self, heads_to_prune):
|
| 676 |
+
"""
|
| 677 |
+
Prunes heads of the model. heads_to_prune: dict of {layer_num: list of heads to prune in this layer} See base
|
| 678 |
+
class PreTrainedModel
|
| 679 |
+
"""
|
| 680 |
+
for layer, heads in heads_to_prune.items():
|
| 681 |
+
self.encoder.layer[layer].attention.prune_heads(heads)
|
| 682 |
+
|
| 683 |
+
|
| 684 |
+
def get_extended_attention_mask(self, attention_mask: Tensor, input_shape: Tuple[int], device: device, is_decoder: bool) -> Tensor:
|
| 685 |
+
"""
|
| 686 |
+
Makes broadcastable attention and causal masks so that future and masked tokens are ignored.
|
| 687 |
+
|
| 688 |
+
Arguments:
|
| 689 |
+
attention_mask (:obj:`torch.Tensor`):
|
| 690 |
+
Mask with ones indicating tokens to attend to, zeros for tokens to ignore.
|
| 691 |
+
input_shape (:obj:`Tuple[int]`):
|
| 692 |
+
The shape of the input to the model.
|
| 693 |
+
device: (:obj:`torch.device`):
|
| 694 |
+
The device of the input to the model.
|
| 695 |
+
|
| 696 |
+
Returns:
|
| 697 |
+
:obj:`torch.Tensor` The extended attention mask, with a the same dtype as :obj:`attention_mask.dtype`.
|
| 698 |
+
"""
|
| 699 |
+
# We can provide a self-attention mask of dimensions [batch_size, from_seq_length, to_seq_length]
|
| 700 |
+
# ourselves in which case we just need to make it broadcastable to all heads.
|
| 701 |
+
if attention_mask.dim() == 3:
|
| 702 |
+
extended_attention_mask = attention_mask[:, None, :, :]
|
| 703 |
+
elif attention_mask.dim() == 2:
|
| 704 |
+
# Provided a padding mask of dimensions [batch_size, seq_length]
|
| 705 |
+
# - if the model is a decoder, apply a causal mask in addition to the padding mask
|
| 706 |
+
# - if the model is an encoder, make the mask broadcastable to [batch_size, num_heads, seq_length, seq_length]
|
| 707 |
+
if is_decoder:
|
| 708 |
+
batch_size, seq_length = input_shape
|
| 709 |
+
|
| 710 |
+
seq_ids = torch.arange(seq_length, device=device)
|
| 711 |
+
causal_mask = seq_ids[None, None, :].repeat(batch_size, seq_length, 1) <= seq_ids[None, :, None]
|
| 712 |
+
# in case past_key_values are used we need to add a prefix ones mask to the causal mask
|
| 713 |
+
# causal and attention masks must have same type with pytorch version < 1.3
|
| 714 |
+
causal_mask = causal_mask.to(attention_mask.dtype)
|
| 715 |
+
|
| 716 |
+
if causal_mask.shape[1] < attention_mask.shape[1]:
|
| 717 |
+
prefix_seq_len = attention_mask.shape[1] - causal_mask.shape[1]
|
| 718 |
+
causal_mask = torch.cat(
|
| 719 |
+
[
|
| 720 |
+
torch.ones((batch_size, seq_length, prefix_seq_len), device=device, dtype=causal_mask.dtype),
|
| 721 |
+
causal_mask,
|
| 722 |
+
],
|
| 723 |
+
axis=-1,
|
| 724 |
+
)
|
| 725 |
+
|
| 726 |
+
extended_attention_mask = causal_mask[:, None, :, :] * attention_mask[:, None, None, :]
|
| 727 |
+
else:
|
| 728 |
+
extended_attention_mask = attention_mask[:, None, None, :]
|
| 729 |
+
else:
|
| 730 |
+
raise ValueError(
|
| 731 |
+
"Wrong shape for input_ids (shape {}) or attention_mask (shape {})".format(
|
| 732 |
+
input_shape, attention_mask.shape
|
| 733 |
+
)
|
| 734 |
+
)
|
| 735 |
+
|
| 736 |
+
# Since attention_mask is 1.0 for positions we want to attend and 0.0 for
|
| 737 |
+
# masked positions, this operation will create a tensor which is 0.0 for
|
| 738 |
+
# positions we want to attend and -10000.0 for masked positions.
|
| 739 |
+
# Since we are adding it to the raw scores before the softmax, this is
|
| 740 |
+
# effectively the same as removing these entirely.
|
| 741 |
+
extended_attention_mask = extended_attention_mask.to(dtype=self.dtype) # fp16 compatibility
|
| 742 |
+
extended_attention_mask = (1.0 - extended_attention_mask) * -10000.0
|
| 743 |
+
return extended_attention_mask
|
| 744 |
+
|
| 745 |
+
def forward(
|
| 746 |
+
self,
|
| 747 |
+
input_ids=None,
|
| 748 |
+
attention_mask=None,
|
| 749 |
+
position_ids=None,
|
| 750 |
+
head_mask=None,
|
| 751 |
+
inputs_embeds=None,
|
| 752 |
+
encoder_embeds=None,
|
| 753 |
+
encoder_hidden_states=None,
|
| 754 |
+
encoder_attention_mask=None,
|
| 755 |
+
past_key_values=None,
|
| 756 |
+
use_cache=None,
|
| 757 |
+
output_attentions=None,
|
| 758 |
+
output_hidden_states=None,
|
| 759 |
+
return_dict=None,
|
| 760 |
+
is_decoder=False,
|
| 761 |
+
mode='multimodal',
|
| 762 |
+
):
|
| 763 |
+
r"""
|
| 764 |
+
encoder_hidden_states (:obj:`torch.FloatTensor` of shape :obj:`(batch_size, sequence_length, hidden_size)`, `optional`):
|
| 765 |
+
Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention if
|
| 766 |
+
the model is configured as a decoder.
|
| 767 |
+
encoder_attention_mask (:obj:`torch.FloatTensor` of shape :obj:`(batch_size, sequence_length)`, `optional`):
|
| 768 |
+
Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used in
|
| 769 |
+
the cross-attention if the model is configured as a decoder. Mask values selected in ``[0, 1]``:
|
| 770 |
+
- 1 for tokens that are **not masked**,
|
| 771 |
+
- 0 for tokens that are **masked**.
|
| 772 |
+
past_key_values (:obj:`tuple(tuple(torch.FloatTensor))` of length :obj:`config.n_layers` with each tuple having 4 tensors of shape :obj:`(batch_size, num_heads, sequence_length - 1, embed_size_per_head)`):
|
| 773 |
+
Contains precomputed key and value hidden states of the attention blocks. Can be used to speed up decoding.
|
| 774 |
+
If :obj:`past_key_values` are used, the user can optionally input only the last :obj:`decoder_input_ids`
|
| 775 |
+
(those that don't have their past key value states given to this model) of shape :obj:`(batch_size, 1)`
|
| 776 |
+
instead of all :obj:`decoder_input_ids` of shape :obj:`(batch_size, sequence_length)`.
|
| 777 |
+
use_cache (:obj:`bool`, `optional`):
|
| 778 |
+
If set to :obj:`True`, :obj:`past_key_values` key value states are returned and can be used to speed up
|
| 779 |
+
decoding (see :obj:`past_key_values`).
|
| 780 |
+
"""
|
| 781 |
+
output_attentions = output_attentions if output_attentions is not None else self.config.output_attentions
|
| 782 |
+
output_hidden_states = (
|
| 783 |
+
output_hidden_states if output_hidden_states is not None else self.config.output_hidden_states
|
| 784 |
+
)
|
| 785 |
+
return_dict = return_dict if return_dict is not None else self.config.use_return_dict
|
| 786 |
+
|
| 787 |
+
if is_decoder:
|
| 788 |
+
use_cache = use_cache if use_cache is not None else self.config.use_cache
|
| 789 |
+
else:
|
| 790 |
+
use_cache = False
|
| 791 |
+
|
| 792 |
+
if input_ids is not None and inputs_embeds is not None:
|
| 793 |
+
raise ValueError("You cannot specify both input_ids and inputs_embeds at the same time")
|
| 794 |
+
elif input_ids is not None:
|
| 795 |
+
input_shape = input_ids.size()
|
| 796 |
+
batch_size, seq_length = input_shape
|
| 797 |
+
device = input_ids.device
|
| 798 |
+
elif inputs_embeds is not None:
|
| 799 |
+
input_shape = inputs_embeds.size()[:-1]
|
| 800 |
+
batch_size, seq_length = input_shape
|
| 801 |
+
device = inputs_embeds.device
|
| 802 |
+
elif encoder_embeds is not None:
|
| 803 |
+
input_shape = encoder_embeds.size()[:-1]
|
| 804 |
+
batch_size, seq_length = input_shape
|
| 805 |
+
device = encoder_embeds.device
|
| 806 |
+
else:
|
| 807 |
+
raise ValueError("You have to specify either input_ids or inputs_embeds or encoder_embeds")
|
| 808 |
+
|
| 809 |
+
# past_key_values_length
|
| 810 |
+
past_key_values_length = past_key_values[0][0].shape[2] if past_key_values is not None else 0
|
| 811 |
+
|
| 812 |
+
if attention_mask is None:
|
| 813 |
+
attention_mask = torch.ones(((batch_size, seq_length + past_key_values_length)), device=device)
|
| 814 |
+
|
| 815 |
+
# We can provide a self-attention mask of dimensions [batch_size, from_seq_length, to_seq_length]
|
| 816 |
+
# ourselves in which case we just need to make it broadcastable to all heads.
|
| 817 |
+
extended_attention_mask: torch.Tensor = self.get_extended_attention_mask(attention_mask, input_shape,
|
| 818 |
+
device, is_decoder)
|
| 819 |
+
|
| 820 |
+
# If a 2D or 3D attention mask is provided for the cross-attention
|
| 821 |
+
# we need to make broadcastable to [batch_size, num_heads, seq_length, seq_length]
|
| 822 |
+
if encoder_hidden_states is not None:
|
| 823 |
+
if type(encoder_hidden_states) == list:
|
| 824 |
+
encoder_batch_size, encoder_sequence_length, _ = encoder_hidden_states[0].size()
|
| 825 |
+
else:
|
| 826 |
+
encoder_batch_size, encoder_sequence_length, _ = encoder_hidden_states.size()
|
| 827 |
+
encoder_hidden_shape = (encoder_batch_size, encoder_sequence_length)
|
| 828 |
+
|
| 829 |
+
if type(encoder_attention_mask) == list:
|
| 830 |
+
encoder_extended_attention_mask = [self.invert_attention_mask(mask) for mask in encoder_attention_mask]
|
| 831 |
+
elif encoder_attention_mask is None:
|
| 832 |
+
encoder_attention_mask = torch.ones(encoder_hidden_shape, device=device)
|
| 833 |
+
encoder_extended_attention_mask = self.invert_attention_mask(encoder_attention_mask)
|
| 834 |
+
else:
|
| 835 |
+
encoder_extended_attention_mask = self.invert_attention_mask(encoder_attention_mask)
|
| 836 |
+
else:
|
| 837 |
+
encoder_extended_attention_mask = None
|
| 838 |
+
|
| 839 |
+
# Prepare head mask if needed
|
| 840 |
+
# 1.0 in head_mask indicate we keep the head
|
| 841 |
+
# attention_probs has shape bsz x n_heads x N x N
|
| 842 |
+
# input head_mask has shape [num_heads] or [num_hidden_layers x num_heads]
|
| 843 |
+
# and head_mask is converted to shape [num_hidden_layers x batch x num_heads x seq_length x seq_length]
|
| 844 |
+
head_mask = self.get_head_mask(head_mask, self.config.num_hidden_layers)
|
| 845 |
+
|
| 846 |
+
if encoder_embeds is None:
|
| 847 |
+
embedding_output = self.embeddings(
|
| 848 |
+
input_ids=input_ids,
|
| 849 |
+
position_ids=position_ids,
|
| 850 |
+
inputs_embeds=inputs_embeds,
|
| 851 |
+
past_key_values_length=past_key_values_length,
|
| 852 |
+
)
|
| 853 |
+
else:
|
| 854 |
+
embedding_output = encoder_embeds
|
| 855 |
+
|
| 856 |
+
encoder_outputs = self.encoder(
|
| 857 |
+
embedding_output,
|
| 858 |
+
attention_mask=extended_attention_mask,
|
| 859 |
+
head_mask=head_mask,
|
| 860 |
+
encoder_hidden_states=encoder_hidden_states,
|
| 861 |
+
encoder_attention_mask=encoder_extended_attention_mask,
|
| 862 |
+
past_key_values=past_key_values,
|
| 863 |
+
use_cache=use_cache,
|
| 864 |
+
output_attentions=output_attentions,
|
| 865 |
+
output_hidden_states=output_hidden_states,
|
| 866 |
+
return_dict=return_dict,
|
| 867 |
+
mode=mode,
|
| 868 |
+
)
|
| 869 |
+
sequence_output = encoder_outputs[0]
|
| 870 |
+
pooled_output = self.pooler(sequence_output) if self.pooler is not None else None
|
| 871 |
+
|
| 872 |
+
if not return_dict:
|
| 873 |
+
return (sequence_output, pooled_output) + encoder_outputs[1:]
|
| 874 |
+
|
| 875 |
+
return BaseModelOutputWithPoolingAndCrossAttentions(
|
| 876 |
+
last_hidden_state=sequence_output,
|
| 877 |
+
pooler_output=pooled_output,
|
| 878 |
+
past_key_values=encoder_outputs.past_key_values,
|
| 879 |
+
hidden_states=encoder_outputs.hidden_states,
|
| 880 |
+
attentions=encoder_outputs.attentions,
|
| 881 |
+
cross_attentions=encoder_outputs.cross_attentions,
|
| 882 |
+
)
|
| 883 |
+
|
| 884 |
+
|
| 885 |
+
class BertLMHeadModel(BertPreTrainedModel):
|
| 886 |
+
|
| 887 |
+
_keys_to_ignore_on_load_unexpected = [r"pooler"]
|
| 888 |
+
_keys_to_ignore_on_load_missing = [r"position_ids", r"predictions.decoder.bias"]
|
| 889 |
+
|
| 890 |
+
def __init__(self, config):
|
| 891 |
+
super().__init__(config)
|
| 892 |
+
|
| 893 |
+
self.bert = BertModel(config, add_pooling_layer=False)
|
| 894 |
+
self.cls = BertOnlyMLMHead(config)
|
| 895 |
+
|
| 896 |
+
self.init_weights()
|
| 897 |
+
|
| 898 |
+
def get_output_embeddings(self):
|
| 899 |
+
return self.cls.predictions.decoder
|
| 900 |
+
|
| 901 |
+
def set_output_embeddings(self, new_embeddings):
|
| 902 |
+
self.cls.predictions.decoder = new_embeddings
|
| 903 |
+
|
| 904 |
+
def forward(
|
| 905 |
+
self,
|
| 906 |
+
input_ids=None,
|
| 907 |
+
attention_mask=None,
|
| 908 |
+
position_ids=None,
|
| 909 |
+
head_mask=None,
|
| 910 |
+
inputs_embeds=None,
|
| 911 |
+
encoder_hidden_states=None,
|
| 912 |
+
encoder_attention_mask=None,
|
| 913 |
+
labels=None,
|
| 914 |
+
past_key_values=None,
|
| 915 |
+
use_cache=None,
|
| 916 |
+
output_attentions=None,
|
| 917 |
+
output_hidden_states=None,
|
| 918 |
+
return_dict=None,
|
| 919 |
+
return_logits=False,
|
| 920 |
+
is_decoder=True,
|
| 921 |
+
reduction='mean',
|
| 922 |
+
mode='multimodal',
|
| 923 |
+
):
|
| 924 |
+
r"""
|
| 925 |
+
encoder_hidden_states (:obj:`torch.FloatTensor` of shape :obj:`(batch_size, sequence_length, hidden_size)`, `optional`):
|
| 926 |
+
Sequence of hidden-states at the output of the last layer of the encoder. Used in the cross-attention if
|
| 927 |
+
the model is configured as a decoder.
|
| 928 |
+
encoder_attention_mask (:obj:`torch.FloatTensor` of shape :obj:`(batch_size, sequence_length)`, `optional`):
|
| 929 |
+
Mask to avoid performing attention on the padding token indices of the encoder input. This mask is used in
|
| 930 |
+
the cross-attention if the model is configured as a decoder. Mask values selected in ``[0, 1]``:
|
| 931 |
+
- 1 for tokens that are **not masked**,
|
| 932 |
+
- 0 for tokens that are **masked**.
|
| 933 |
+
labels (:obj:`torch.LongTensor` of shape :obj:`(batch_size, sequence_length)`, `optional`):
|
| 934 |
+
Labels for computing the left-to-right language modeling loss (next word prediction). Indices should be in
|
| 935 |
+
``[-100, 0, ..., config.vocab_size]`` (see ``input_ids`` docstring) Tokens with indices set to ``-100`` are
|
| 936 |
+
ignored (masked), the loss is only computed for the tokens with labels n ``[0, ..., config.vocab_size]``
|
| 937 |
+
past_key_values (:obj:`tuple(tuple(torch.FloatTensor))` of length :obj:`config.n_layers` with each tuple having 4 tensors of shape :obj:`(batch_size, num_heads, sequence_length - 1, embed_size_per_head)`):
|
| 938 |
+
Contains precomputed key and value hidden states of the attention blocks. Can be used to speed up decoding.
|
| 939 |
+
If :obj:`past_key_values` are used, the user can optionally input only the last :obj:`decoder_input_ids`
|
| 940 |
+
(those that don't have their past key value states given to this model) of shape :obj:`(batch_size, 1)`
|
| 941 |
+
instead of all :obj:`decoder_input_ids` of shape :obj:`(batch_size, sequence_length)`.
|
| 942 |
+
use_cache (:obj:`bool`, `optional`):
|
| 943 |
+
If set to :obj:`True`, :obj:`past_key_values` key value states are returned and can be used to speed up
|
| 944 |
+
decoding (see :obj:`past_key_values`).
|
| 945 |
+
Returns:
|
| 946 |
+
Example::
|
| 947 |
+
>>> from transformers import BertTokenizer, BertLMHeadModel, BertConfig
|
| 948 |
+
>>> import torch
|
| 949 |
+
>>> tokenizer = BertTokenizer.from_pretrained('bert-base-cased')
|
| 950 |
+
>>> config = BertConfig.from_pretrained("bert-base-cased")
|
| 951 |
+
>>> model = BertLMHeadModel.from_pretrained('bert-base-cased', config=config)
|
| 952 |
+
>>> inputs = tokenizer("Hello, my dog is cute", return_tensors="pt")
|
| 953 |
+
>>> outputs = model(**inputs)
|
| 954 |
+
>>> prediction_logits = outputs.logits
|
| 955 |
+
"""
|
| 956 |
+
return_dict = return_dict if return_dict is not None else self.config.use_return_dict
|
| 957 |
+
if labels is not None:
|
| 958 |
+
use_cache = False
|
| 959 |
+
|
| 960 |
+
outputs = self.bert(
|
| 961 |
+
input_ids,
|
| 962 |
+
attention_mask=attention_mask,
|
| 963 |
+
position_ids=position_ids,
|
| 964 |
+
head_mask=head_mask,
|
| 965 |
+
inputs_embeds=inputs_embeds,
|
| 966 |
+
encoder_hidden_states=encoder_hidden_states,
|
| 967 |
+
encoder_attention_mask=encoder_attention_mask,
|
| 968 |
+
past_key_values=past_key_values,
|
| 969 |
+
use_cache=use_cache,
|
| 970 |
+
output_attentions=output_attentions,
|
| 971 |
+
output_hidden_states=output_hidden_states,
|
| 972 |
+
return_dict=return_dict,
|
| 973 |
+
is_decoder=is_decoder,
|
| 974 |
+
mode=mode,
|
| 975 |
+
)
|
| 976 |
+
|
| 977 |
+
sequence_output = outputs[0]
|
| 978 |
+
prediction_scores = self.cls(sequence_output)
|
| 979 |
+
# sequence_output.shape torch.Size([85, 30, 768])
|
| 980 |
+
# prediction_scores.shape torch.Size([85, 30, 30524])
|
| 981 |
+
# labels.shape torch.Size([85, 30])
|
| 982 |
+
|
| 983 |
+
|
| 984 |
+
if return_logits:
|
| 985 |
+
return prediction_scores[:, :-1, :].contiguous()
|
| 986 |
+
|
| 987 |
+
lm_loss = None
|
| 988 |
+
if labels is not None:
|
| 989 |
+
# we are doing next-token prediction; shift prediction scores and input ids by one
|
| 990 |
+
shifted_prediction_scores = prediction_scores[:, :-1, :].contiguous()
|
| 991 |
+
labels = labels[:, 1:].contiguous()
|
| 992 |
+
loss_fct = CrossEntropyLoss(reduction=reduction, label_smoothing=0.1)
|
| 993 |
+
lm_loss = loss_fct(shifted_prediction_scores.view(-1, self.config.vocab_size), labels.view(-1))
|
| 994 |
+
if reduction=='none':
|
| 995 |
+
lm_loss = lm_loss.view(prediction_scores.size(0),-1).sum(1)
|
| 996 |
+
|
| 997 |
+
if not return_dict:
|
| 998 |
+
output = (prediction_scores,) + outputs[2:]
|
| 999 |
+
return ((lm_loss,) + output) if lm_loss is not None else output
|
| 1000 |
+
|
| 1001 |
+
return CausalLMOutputWithCrossAttentions(
|
| 1002 |
+
loss=lm_loss,
|
| 1003 |
+
logits=prediction_scores,
|
| 1004 |
+
past_key_values=outputs.past_key_values,
|
| 1005 |
+
hidden_states=outputs.hidden_states,
|
| 1006 |
+
attentions=outputs.attentions,
|
| 1007 |
+
cross_attentions=outputs.cross_attentions,
|
| 1008 |
+
)
|
| 1009 |
+
|
| 1010 |
+
def prepare_inputs_for_generation(self, input_ids, past=None, attention_mask=None, **model_kwargs):
|
| 1011 |
+
input_shape = input_ids.shape
|
| 1012 |
+
# if model is used as a decoder in encoder-decoder model, the decoder attention mask is created on the fly
|
| 1013 |
+
if attention_mask is None:
|
| 1014 |
+
attention_mask = input_ids.new_ones(input_shape)
|
| 1015 |
+
|
| 1016 |
+
# cut decoder_input_ids if past is used
|
| 1017 |
+
if past is not None:
|
| 1018 |
+
input_ids = input_ids[:, -1:]
|
| 1019 |
+
|
| 1020 |
+
return {
|
| 1021 |
+
"input_ids": input_ids,
|
| 1022 |
+
"attention_mask": attention_mask,
|
| 1023 |
+
"past_key_values": past,
|
| 1024 |
+
"encoder_hidden_states": model_kwargs.get("encoder_hidden_states", None),
|
| 1025 |
+
"encoder_attention_mask": model_kwargs.get("encoder_attention_mask", None),
|
| 1026 |
+
"is_decoder": True,
|
| 1027 |
+
}
|
| 1028 |
+
|
| 1029 |
+
def _reorder_cache(self, past, beam_idx):
|
| 1030 |
+
reordered_past = ()
|
| 1031 |
+
for layer_past in past:
|
| 1032 |
+
reordered_past += (tuple(past_state.index_select(0, beam_idx) for past_state in layer_past),)
|
| 1033 |
+
return reordered_past
|
| 1034 |
+
|
| 1035 |
+
|