├── README.md
├── chk.py
├── cnv_model.py
├── dist.py
├── ds_load.py
├── iam
├── iam.gin
├── iam.sh
├── iam_ln.gin
├── iam_par_gt.py
├── test.gc
├── test.ln
├── train.gc
├── train.ln
├── val.gc
└── val.ln
├── ich17
├── ich.gin
├── ich.py
├── ich.sh
├── test
└── train
├── o1.png
├── requirements.txt
├── test.py
├── train.py
└── utils.py
/README.md:
--------------------------------------------------------------------------------
1 | # OrigamiNet
2 |
3 | Public implementation of our CVPR 2020 paper:
4 |
5 | "OrigamiNet: Weakly-Supervised, Segmentation-Free, One-Step, Full Page TextRecognition by learning to unfold"
6 |
7 |
8 |
9 |
10 |
11 | ## Getting Started
12 |
13 | OrigamiNet has been implemented and tested with Python 3.6 and PyTorch 1.3. All project configuration is handled using [Gin](https://github.com/google/gin-config).
14 |
15 | First clone the repo:
16 | ```
17 | git clone https://github.com/IntuitionMachines/OrigamiNet.git
18 | ```
19 | Then install the dependencies with:
20 | ```
21 | pip install -r requirements.txt
22 | ```
23 | ## Replicating Experiments
24 |
25 | ### IAM
26 | 1. Register at the FKI's webpage [here](http://www.fki.inf.unibe.ch/DBs/iamDB/iLogin/index.php).
27 |
28 | 2. After obtaining the username and password, we provide a script to download and setup the dataset, crop paragraph images and generate corresponding paragraph transcriptions by concatenating each line transcription. Run:
29 | ```
30 | bash iam/iam.sh $IAM_USER $IAM_PASS $IAM_DEST
31 | ```
32 | where `$IAM_USER` and `$IAM_PASS` are the username and password from FKI website, `IAM_DEST` is the destination folder where the dataset will be saved (the folder will be created by the script if it doesn't exist).
33 |
34 | 3. Run the training script using provided configuration:
35 | ```
36 | python train.py --gin iam/iam.gin
37 | ```
38 | Note: if you want to use `horovod`, run as following:
39 | ```
40 | horovodrun -n $N_GPU -H localhost:$N_GPU python train.py --gin iam/iam.gin
41 | ```
42 | where `$N_GPU` is the number of gpus to be used (visible GPUs can be controlled by setting `CUDA_VISIBLE_DEVICES`)
43 |
44 | ### ICDAR2017 HTR
45 |
46 | 1. Download and set up the dataset using the provided script:
47 | ```
48 | bash ich17/ich.sh $ICH_DEST
49 | ```
50 | `ICH_DEST` is the destination folder where the dataset will be saved. The folder will be created by the script if it doesn't exist.
51 |
52 | 2. Run the training script using provided configuration:
53 | ```
54 | python train.py --gin ich17/ich.gin
55 | ```
56 |
57 | ## Results
58 |
59 | In the following table CER and nCER are respectively the micro and macro averaged [Character Error Rate](https://en.wikipedia.org/wiki/Levenshtein_distance). BLEU is the marco-averaged character-level [BLEU](https://en.wikipedia.org/wiki/BLEU) score.
60 |
61 | ### Paper results
62 |
63 | Dataset | wmul | Size | CER (%) | nCER (%) | BLEU
64 | --------|------|---------|--------- | -------- |-----
65 | IAM | 1.5 | 750x750 | 4.7 | 4.84 | 91.15
66 | ICDAR | 1.8 |1400x1000| 6.80 | 5.87 | 92.67
67 |
68 |
69 | ### Additional results
70 |
71 | Dataset | wmul | Size | CER (%) | nCER (%) | BLEU
72 | --------|------|---------|--------- | -------- |-----
73 | IAM | 1.0 | 750x750 | 4.85 | 4.95 | 90.87
74 | IAM | 2.0 | 750x750 | 4.41 | 4.54 | 91.25
75 | IAM | 3.0 | 750x750 | 4.29 | 4.41 | 91.84
76 | IAM | 4.0 | 750x750 | 4.07 | 4.18 | 92.21
77 | ICDAR | 2.4 |1400x1000| 6.01 | 5.30 | 93.64
78 |
79 | These experiments were done with a `batch_size` of 8. We also obtained promising results with a `batch_size` of 4, as the proposed architecure does not utilize BatchNorm operations.
80 |
81 | ### Synthetic hard-to-segment IAM variants
82 |
83 | In the paper, two IAM variants with hard-to-segment text-lines were presented. These results can be replicated as follows:
84 |
85 | #### Compact lines
86 |
87 | 1. Make a copy of the `pargs` folder, which contains the extracted paragraph images:
88 | ```
89 | cp -r iam/pargs/ iam/pargsCL
90 | ```
91 | 2. To generate IAM with touching lines, use `image-magick` to resize images to half the height using seam carving.
92 |
93 | The following line runs the conversion in parallel to speed up the process:
94 | ```
95 | find iam/pargsCL -iname "*.png" -type f -print0 | parallel --progress -0 -j +0 "mogrify -liquid-rescale 100x50%\! {}"
96 | ```
97 |
98 | #### Rotated and warped
99 |
100 | 1. Make a copy of the `pargs` folder, which contains the extracted paragraph images:
101 | ```
102 | cp -r iam/pargs/ iam/pargsPW
103 | ```
104 | 2. To generate IAM with a random projection and wavy text-lines:
105 |
106 | ```
107 | find iam/pargsPW -iname "*.png" -type f -print0 | parallel --progress -0 -j +0 "python dist.py {}"
108 | ```
109 | ### Results
110 |
111 | Dataset | wmul | Size | CER (%)
112 | -------------------|------|---------|---------
113 | Compact lines | 1.0 | 750x750 | 6.0
114 | Rotated and warped | 1.0 | 750x750 | 5.6
115 |
116 | ## Single line results
117 |
118 | To be as useful as possible, we show how to perform single-line recognition based on the code. This essentially resembles the [GTR model](https://arxiv.org/abs/1812.11894). Assuming lines from IAM and thier transcriptions are stored in `iam/lines/`, run as
119 | ```
120 | python train.py --gin iam/iam_ln.gin
121 | ```
122 | ### Results
123 |
124 | Results on the IAM single-line test set
125 |
126 | Dataset | nlyrs | Size | CER (%)
127 | ---------------|-------|---------|---------
128 | IAM lines | 12 | 32x600 | 5.26
129 | IAM lines | 18 | 32x600 | 4.84
130 | IAM lines | 24 | 32x600 | 4.76
131 |
132 |
133 |
134 | ## Gin Options
135 |
136 | This is a brief list of the most important gin options. For full config files see `iam/iam.gin` or `ich17/ich.gin`
137 | - `dist`: The parallel traning method. We currently support three possible values:
138 | - `DP` uses DataParallel
139 | - `DDP` uses DistributedDataParallel
140 | - `HVD` uses horovod
141 | - `n_channels`: number of channels per image
142 | - `o_classes`: The size of the target vocabulary (i.e. number of symbols in the alphabet)
143 | - `GradCheck`: Whether or not to use gradient checkpointing
144 | - `0` disabled
145 | - `1` enabled, light version which offers good memory saving with small slowdown
146 | - `2` enabled, higher memory saving, but noticeably slower than `1`
147 | - `get_images.max_h` and `get_images.max_w`: Target height and width for each image, images will be resized to this target dimentions while maintaining aspect ratio by padding.
148 | - `train.AMP`: Whether Automatic Mixed Precision (by [Nvidia apex](https://github.com/NVIDIA/apex)) is enabled
149 | - `train.WdB`: Whether [Wandb](https://github.com/wandb/client) logging is enabled
150 | - `train.train_data_list` and `train.test_data_list`: Path to file containing list of training or testing images
151 | - `train.train_data_path` and `train.test_data_path`: Path to folder containing the training or testing images
152 | - `train.train_batch_size` and `train.val_batch_size`: the batch size used during training and validation, the interpretation of this value vaires according to `dist` option
153 | - `DP` the `train.batch_size` is the total batch size
154 | - `DDP` or `HVD` then `train.batch_size` is the batch size per process (total batch size is `train.batch_size*#Processes`
155 | - `train.workers`: Number of worker for the PyTorch `DataLoader`
156 | - `train.continue_model`: Path to checkpoint to continue from
157 | - `train.num_iter`: Total number of training iterations
158 | - `train.valInterval`: Perform validation every how many batches
159 | - `OrigamiNet.nlyrs`: #layers in the GTR model
160 | - `OrigamiNet.reduceAxis`: Final axis of reduction
161 | - `OrigamiNet.wmul`: Channel multipler, numer of channels in each channel will be multiplied by this value
162 | - `OrigamiNet.lszs`: Number of channels for each layer, this is a dictionary of format `leyer_id:channels`, unspecified layers are assumed constant
163 | - `s1/Upsample.size`: Size of penultimate layer
164 | - `s1/Upsample.size`: Size of the last layer
165 | - `OrigamiNet.lreszs`: Resampling stages in the model
166 |
167 | ## Acknowledgements
168 |
169 | Some code is borrowed from the [deep-text-recognition-benchmark](https://github.com/clovaai/deep-text-recognition-benchmark),
170 | which is under the Apache 2.0 license.
171 |
172 | Network architecture was visualized using [PlotNeuralNet](https://github.com/HarisIqbal88/PlotNeuralNet)
173 |
174 | This work was sponsored by [Intuition Machines, Inc](https://www.imachines.com/).
175 |
176 | ## Citation
177 |
178 | ```bibtex
179 | @inproceedings{yousef2020origaminet,
180 | title={OrigamiNet: Weakly-Supervised, Segmentation-Free, One-Step, Full Page TextRecognition by learning to unfold},
181 | author={Yousef, Mohamed and Bishop, Tom E.},
182 | booktitle = {The IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
183 | month = {June},
184 | year = {2020}
185 | }
186 | ```
187 |
--------------------------------------------------------------------------------
/chk.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import warnings
3 |
4 | from torch.utils.checkpoint import checkpoint
5 |
6 |
7 | def checkpoint_sequential_step(functions, segments, *inputs, **kwargs):
8 | r"""A helper function for checkpointing sequential models.
9 |
10 | Sequential models execute a list of modules/functions in order
11 | (sequentially). Therefore, we can divide such a model in various segments
12 | and checkpoint each segment. All segments except the last will run in
13 | :func:`torch.no_grad` manner, i.e., not storing the intermediate
14 | activations. The inputs of each checkpointed segment will be saved for
15 | re-running the segment in the backward pass.
16 |
17 | See :func:`~torch.utils.checkpoint.checkpoint` on how checkpointing works.
18 |
19 | .. warning::
20 | Checkpointing doesn't work with :func:`torch.autograd.grad`, but only
21 | with :func:`torch.autograd.backward`.
22 |
23 | .. warning:
24 | At least one of the inputs needs to have :code:`requires_grad=True` if
25 | grads are needed for model inputs, otherwise the checkpointed part of the
26 | model won't have gradients.
27 |
28 | Args:
29 | functions: A :class:`torch.nn.Sequential` or the list of modules or
30 | functions (comprising the model) to run sequentially.
31 | segments: Number of chunks to create in the model
32 | inputs: tuple of Tensors that are inputs to :attr:`functions`
33 | preserve_rng_state(bool, optional, default=True): Omit stashing and restoring
34 | the RNG state during each checkpoint.
35 |
36 | Returns:
37 | Output of running :attr:`functions` sequentially on :attr:`*inputs`
38 |
39 | Example:
40 | >>> model = nn.Sequential(...)
41 | >>> input_var = checkpoint_sequential(model, chunks, input_var)
42 | """
43 | # Hack to mix *args with **kwargs in a python 2.7-compliant way
44 | preserve = kwargs.pop('preserve_rng_state', True)
45 | if kwargs:
46 | raise ValueError("Unexpected keyword arguments: " + ",".join(arg for arg in kwargs))
47 |
48 | # To accept variadic arguments is not consistent with nn.Sequential.
49 | # This interface will be changed at PyTorch 1.3.
50 | # See also: https://github.com/pytorch/pytorch/issues/19260
51 | if not inputs:
52 | warnings.warn('Giving no input to checkpoint_sequential has been deprecated, '
53 | 'a TypeError will be raised after PyTorch 1.3',
54 | DeprecationWarning)
55 | elif len(inputs) > 1:
56 | warnings.warn('multiple inputs to checkpoint_sequential has been deprecated, '
57 | 'a TypeError will be raised after PyTorch 1.3',
58 | DeprecationWarning)
59 |
60 | def run_function(start, end, functions):
61 | def forward(*inputs):
62 | for j in range(start, end + 1):
63 | if isinstance(inputs, tuple):
64 | inputs = functions[j](*inputs)
65 | else:
66 | inputs = functions[j](inputs)
67 | return inputs
68 | return forward
69 |
70 | if isinstance(functions, torch.nn.Sequential):
71 | functions = list(functions.children())
72 |
73 | segment_size = segments
74 | # the last chunk has to be non-volatile
75 | end = -1
76 | for start in range(0, len(functions)-segments, segments):
77 | end = start + segment_size - 1
78 | inputs = checkpoint(run_function(start, end, functions), *inputs,
79 | preserve_rng_state=preserve)
80 | if not isinstance(inputs, tuple):
81 | inputs = (inputs,)
82 |
83 | return checkpoint(run_function(end + 1, len(functions) - 1, functions), *inputs)
84 |
--------------------------------------------------------------------------------
/cnv_model.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torch.nn as nn
3 | import torch.nn.functional as F
4 | from chk import checkpoint_sequential_step, checkpoint
5 |
6 | import math
7 | import numpy as np
8 | from torchvision.utils import save_image
9 |
10 | import gin
11 |
12 | def ginM(n): return gin.query_parameter(f'%{n}')
13 | gin.external_configurable(nn.MaxPool2d, module='nn')
14 | gin.external_configurable(nn.Upsample, module='nn')
15 |
16 |
17 | class LN(nn.Module):
18 | def forward(self, x):
19 | return F.layer_norm(x, x.size()[1:], weight=None, bias=None, eps=1e-05)
20 |
21 | @gin.configurable
22 | class PadPool(nn.Module):
23 | def forward(self, x):
24 | x = F.pad(x, [0, 0, 0, 1])
25 | x = F.max_pool2d(x,(2, 2), stride=(1, 2))
26 | return x
27 |
28 | def pCnv(inp,out,groups=1):
29 | return nn.Sequential(
30 | nn.Conv2d(inp,out,1,bias=False,groups=groups),
31 | nn.InstanceNorm2d(out,affine=True)
32 | )
33 |
34 | #regarding same padding in PT https://github.com/pytorch/pytorch/issues/3867
35 | def dsCnv(inp,k):
36 | return nn.Sequential(
37 | nn.Conv2d(inp,inp,k,groups=inp,bias=False,padding=(k - 1) // 2),
38 | nn.InstanceNorm2d(inp,affine=True)
39 | )
40 |
41 | ngates = 2
42 |
43 | class Gate(nn.Module):
44 | def __init__(self,ifsz):
45 | super().__init__()
46 | self.ln = LN()
47 |
48 | def forward(self, x):
49 | t0,t1 = torch.chunk(x, ngates, dim=1)
50 | t0 = torch.tanh_(t0)
51 | t1.sub_(2)
52 | t1 = torch.sigmoid_(t1)
53 |
54 | return t1*t0
55 |
56 | def customGC(module):
57 | def custom_forward(*inputs):
58 | inputs = module(inputs[0])
59 | return inputs
60 | return custom_forward
61 |
62 | @gin.configurable
63 | class GateBlock(nn.Module):
64 | def __init__(self, ifsz, ofsz, gt = True, ksz = 3, GradCheck=gin.REQUIRED):
65 | super().__init__()
66 |
67 | cfsz = int( math.floor(ifsz/2) )
68 | ifsz2 = ifsz + ifsz%2
69 |
70 | self.sq = nn.Sequential(
71 | pCnv(ifsz, cfsz),
72 | dsCnv(cfsz,ksz),
73 | nn.ELU(),
74 | ###########
75 | pCnv(cfsz, cfsz*ngates),
76 | dsCnv(cfsz*ngates,ksz),
77 | Gate(cfsz),
78 | ###########
79 | pCnv(cfsz, ifsz),
80 | dsCnv(ifsz,ksz),
81 | nn.ELU(),
82 | )
83 |
84 | self.gt = gt
85 | self.gc = GradCheck
86 |
87 |
88 | def forward(self, x):
89 | if self.gc >= 1:
90 | y = checkpoint(customGC(self.sq), x)
91 | else:
92 | y = self.sq(x)
93 |
94 | out = x + y
95 | return out
96 |
97 | @gin.configurable
98 | class InitBlock(nn.Module):
99 | def __init__(self, fup, n_channels):
100 | super().__init__()
101 |
102 | self.n1 = LN()
103 | self.Initsq = nn.Sequential(
104 | pCnv(n_channels, fup),
105 | nn.Softmax(dim=1),
106 | dsCnv(fup,11),
107 | LN()
108 | )
109 |
110 | def forward(self, x):
111 | x = self.n1(x)
112 | xt = x
113 | x = self.Initsq(x)
114 | x = torch.cat([x,xt],1)
115 | return x
116 |
117 | @gin.configurable
118 | class OrigamiNet(nn.Module):
119 | def __init__(self, n_channels, o_classes, wmul, lreszs, lszs, nlyrs, fup, GradCheck, reduceAxis=3):
120 | super().__init__()
121 |
122 | self.lreszs = lreszs
123 | self.Initsq = InitBlock(fup)
124 |
125 | layers = []
126 | isz = fup + n_channels
127 | osz = isz
128 | for i in range(nlyrs):
129 | osz = int( math.floor(lszs[i] * wmul) ) if i in lszs else isz
130 | layers.append( GateBlock(isz, osz, True, 3) )
131 |
132 | if isz != osz:
133 | layers.append( pCnv(isz, osz) )
134 | layers.append( nn.ELU() )
135 | isz = osz
136 |
137 | if i in lreszs:
138 | layers.append( lreszs[i] )
139 |
140 | layers.append( LN() )
141 | self.Gatesq = nn.Sequential(*layers)
142 |
143 | self.Finsq = nn.Sequential(
144 | pCnv(osz, o_classes),
145 | nn.ELU(),
146 | )
147 |
148 | self.n1 = LN()
149 | self.it=0
150 | self.gc = GradCheck
151 | self.reduceAxis = reduceAxis
152 |
153 | def forward(self, x, t=[]):
154 | x = self.Initsq(x)
155 |
156 | if self.gc >=2:
157 | x = checkpoint_sequential_step(self.Gatesq,4,x) #slower, more memory save
158 | # x = checkpoint_sequential_step(self.Gatesq,8,x) #faster, less memory save
159 | else:
160 | x = self.Gatesq(x)
161 |
162 | x = self.Finsq(x)
163 |
164 | x = torch.mean(x, self.reduceAxis, keepdim=False)
165 | x = self.n1(x)
166 | x = x.permute(0,2,1)
167 |
168 | return x
--------------------------------------------------------------------------------
/dist.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 | from scipy import ndimage
4 | import scipy.misc
5 | import skimage
6 | from skimage import exposure
7 | import matplotlib.pyplot as plt
8 | import os,sys
9 | from collections import namedtuple
10 | from random import shuffle
11 | import itertools
12 | from sklearn.externals import joblib
13 | from skimage import transform as stf
14 | from PIL import Image
15 | import unicodedata
16 | import copy
17 | from torch.utils.data import Dataset
18 | import imageio
19 | from math import floor, ceil
20 | import random
21 |
22 | try:
23 | import cPickle as pickle
24 | except:
25 | import pickle
26 |
27 | # Based on Elastic distortions in
28 | # https://github.com/mdbloice/Augmentor/blob/master/Augmentor/Operations.py
29 | class Distort3():
30 |
31 | def __init__(self, probability, grid_width, grid_height, magnitudeX, magnitudeY, Isize, min_h_sep, min_v_sep):
32 |
33 | self.probability = probability
34 | self.grid_width = grid_width
35 | self.grid_height = grid_height
36 | self.xmagnitude = abs(magnitudeX)
37 | self.ymagnitude = abs(magnitudeY)
38 | self.randomise_magnitude = True
39 |
40 | w, h = Isize
41 |
42 | horizontal_tiles = self.grid_width
43 | vertical_tiles = self.grid_height
44 |
45 | width_of_square = int(floor(w / float(horizontal_tiles)))
46 | height_of_square = int(floor(h / float(vertical_tiles)))
47 |
48 | width_of_last_square = w - (width_of_square * (horizontal_tiles - 1))
49 | height_of_last_square = h - (height_of_square * (vertical_tiles - 1))
50 |
51 | dimensions = []
52 | shift = [[(0,0) for x in range(horizontal_tiles)] for y in range(vertical_tiles)]
53 |
54 | for vertical_tile in range(vertical_tiles):
55 | for horizontal_tile in range(horizontal_tiles):
56 | if vertical_tile == (vertical_tiles - 1) and horizontal_tile == (horizontal_tiles - 1):
57 | dimensions.append([horizontal_tile * width_of_square,
58 | vertical_tile * height_of_square,
59 | width_of_last_square + (horizontal_tile * width_of_square),
60 | height_of_last_square + (height_of_square * vertical_tile)])
61 | elif vertical_tile == (vertical_tiles - 1):
62 | dimensions.append([horizontal_tile * width_of_square,
63 | vertical_tile * height_of_square,
64 | width_of_square + (horizontal_tile * width_of_square),
65 | height_of_last_square + (height_of_square * vertical_tile)])
66 | elif horizontal_tile == (horizontal_tiles - 1):
67 | dimensions.append([horizontal_tile * width_of_square,
68 | vertical_tile * height_of_square,
69 | width_of_last_square + (horizontal_tile * width_of_square),
70 | height_of_square + (height_of_square * vertical_tile)])
71 | else:
72 | dimensions.append([horizontal_tile * width_of_square,
73 | vertical_tile * height_of_square,
74 | width_of_square + (horizontal_tile * width_of_square),
75 | height_of_square + (height_of_square * vertical_tile)])
76 |
77 | sm_h = min( self.xmagnitude, width_of_square - (min_h_sep+shift[vertical_tile][horizontal_tile-1][0]) ) if horizontal_tile>0 else self.xmagnitude
78 | sm_v = min( self.ymagnitude, height_of_square - (min_v_sep+shift[vertical_tile-1][horizontal_tile][1]) ) if vertical_tile>0 else self.ymagnitude
79 |
80 | dx = random.randint(-sm_h, self.xmagnitude)
81 | dy = random.randint(-sm_v, self.ymagnitude)
82 | shift[vertical_tile][horizontal_tile] = (dx,dy)
83 |
84 |
85 | shift = list(itertools.chain.from_iterable(shift))
86 |
87 |
88 | last_column = []
89 | for i in range(vertical_tiles):
90 | last_column.append((horizontal_tiles - 1) + horizontal_tiles * i)
91 |
92 | last_row = range((horizontal_tiles * vertical_tiles) - horizontal_tiles, horizontal_tiles * vertical_tiles)
93 |
94 | polygons = []
95 | for x1, y1, x2, y2 in dimensions:
96 | polygons.append([x1, y1, x1, y2, x2, y2, x2, y1])
97 |
98 | polygon_indices = []
99 | for i in range((vertical_tiles * horizontal_tiles) - 1):
100 | if i not in last_row and i not in last_column:
101 | polygon_indices.append([i, i + 1, i + horizontal_tiles, i + 1 + horizontal_tiles])
102 |
103 | for id,(a, b, c, d) in enumerate(polygon_indices):
104 |
105 | dx = shift[id][0]
106 | dy = shift[id][1]
107 |
108 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[a]
109 | polygons[a] = [x1, y1,
110 | x2, y2,
111 | x3 + dx, y3 + dy,
112 | x4, y4]
113 |
114 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[b]
115 | polygons[b] = [x1, y1,
116 | x2 + dx, y2 + dy,
117 | x3, y3,
118 | x4, y4]
119 |
120 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[c]
121 | polygons[c] = [x1, y1,
122 | x2, y2,
123 | x3, y3,
124 | x4 + dx, y4 + dy]
125 |
126 | x1, y1, x2, y2, x3, y3, x4, y4 = polygons[d]
127 | polygons[d] = [x1 + dx, y1 + dy,
128 | x2, y2,
129 | x3, y3,
130 | x4, y4]
131 |
132 | generated_mesh = []
133 | for i in range(len(dimensions)):
134 | generated_mesh.append([dimensions[i], polygons[i]])
135 |
136 | self.generated_mesh = generated_mesh
137 |
138 | def perform_operation(self, image):
139 | return image.transform(image.size, Image.MESH, self.generated_mesh, resample=Image.BICUBIC)
140 |
141 |
142 | def aug_ED2(imgs, w, h, n_ch, tst=False):
143 |
144 | d = Distort3(1.0, 10, 10, 0, 25, [w, h], 1, 1)
145 |
146 | for i in range(len(imgs)):
147 | res = d.perform_operation(Image.fromarray(np.squeeze((imgs[i] * 255).astype(np.uint8))))
148 | imgs[i] = np.reshape(res, [h, w, n_ch])
149 |
150 | return np.squeeze(imgs)
151 |
152 |
153 | def RndTform(img,val=125 * 1.5):
154 |
155 | Ih,Iw = img[0].shape[:2]
156 |
157 | sgn = torch.randint(0,2,(1,)).item() * 2 - 1
158 |
159 | if sgn>0:
160 | dw = val
161 | dh = 0
162 | else:
163 | dw = 0
164 | dh = val
165 |
166 | def rd(d): return torch.empty(1).uniform_(-d,d).item()
167 | def fd(d): return torch.empty(1).uniform_(-dw,d).item()
168 |
169 | tl_top = rd(dh) # Top left corner, top margin
170 | tl_left = fd(dw) # Top left corner, left margin
171 | bl_bottom = rd(dh) # Bottom left corner, bottom margin
172 | bl_left = fd(dw) # Bottom left corner, left margin
173 | tr_top = rd(dh) # Top right corner, top margin
174 | tr_right = fd( min(Iw * 3/4 - tl_left,dw) ) # Top right corner, right margin
175 | br_bottom = rd(dh) # Bottom right corner, bottom margin
176 | br_right = fd( min(Iw * 3/4 - bl_left,dw) ) # Bottom right corner, right margin
177 |
178 |
179 | tform = stf.ProjectiveTransform()
180 |
181 | tform.estimate(np.array((
182 | (tl_left, tl_top),
183 | (bl_left, Ih - bl_bottom),
184 | (Iw - br_right, Ih - br_bottom),
185 | (Iw - tr_right, tr_top)
186 | )), np.array((
187 | [0, 0 ],
188 | [0, Ih - 1 ],
189 | [Iw-1, Ih-1 ],
190 | [Iw-1, 0]
191 | )))
192 |
193 | corners = np.array([
194 | [0, 0 ],
195 | [0, Ih - 1 ],
196 | [Iw-1, Ih-1 ],
197 | [Iw-1, 0]
198 | ])
199 |
200 | corners = tform.inverse(corners)
201 |
202 | minc = corners[:, 0].min()
203 | minr = corners[:, 1].min()
204 | maxc = corners[:, 0].max()
205 | maxr = corners[:, 1].max()
206 | out_rows = maxr - minr + 1
207 | out_cols = maxc - minc + 1
208 | output_shape = np.around((out_rows, out_cols))
209 |
210 | translation = (minc, minr)
211 | tform4 = stf.SimilarityTransform(translation=translation)
212 | tform = tform4 + tform
213 | tform.params /= tform.params[2, 2]
214 |
215 | ret = []
216 | for i in range(len(img)):
217 | img2 = stf.warp(img[i], tform, output_shape=output_shape, cval=1.0)
218 | img2 = stf.resize(img2, (Ih,Iw), preserve_range=True).astype(np.float32)
219 | ret.append(img2)
220 |
221 | return ret
222 |
223 | def npThum(img, max_w, max_h):
224 | x, y = np.shape(img)[:2]
225 |
226 | y = min(int( y * max_h / x ),max_w)
227 | x = max_h
228 |
229 | img = np.array(Image.fromarray(img).resize((y,x)))
230 | return img
231 |
232 | image_data = np.array(Image.open(sys.argv[1]))
233 |
234 | image_data = npThum(image_data, 750, 750)
235 | image_data = skimage.img_as_float32(image_data)
236 | if image_data.ndim < 3:
237 | image_data = np.expand_dims(image_data, axis=-1)
238 |
239 | images = image_data[None,...]
240 |
241 | images = np.array([RndTform([image], val=140)[0] for image in images])
242 | sh = images.shape
243 | images = np.array([aug_ED2(image[None,...],sh[2], sh[1], sh[3], tst=False) for image in images])
244 | imageio.imwrite(sys.argv[1],images[0].astype(np.uint8))
245 |
--------------------------------------------------------------------------------
/ds_load.py:
--------------------------------------------------------------------------------
1 | import numpy as np
2 | import torch
3 | from scipy import ndimage
4 | import scipy.misc
5 | import skimage
6 | import os,sys
7 | import itertools
8 | from skimage import transform as stf
9 | from PIL import Image
10 | from torch.utils.data import Dataset
11 | import imageio
12 | from math import floor, ceil
13 | import pickle
14 | import gin
15 |
16 | def RndTform(img,val):
17 | Ih,Iw = img[0].shape[:2]
18 |
19 | sgn = torch.randint(0,2,(1,)).item() * 2 - 1
20 |
21 | if sgn>0:
22 | dw = val
23 | dh = 0
24 | else:
25 | dw = 0
26 | dh = val
27 |
28 | def rd(d): return torch.empty(1).uniform_(-d,d).item()
29 | def fd(d): return torch.empty(1).uniform_(-dw,d).item()
30 |
31 | # generate a random projective transform
32 | # adapted from https://navoshta.com/traffic-signs-classification/
33 | tl_top = rd(dh)
34 | tl_left = fd(dw)
35 | bl_bottom = rd(dh)
36 | bl_left = fd(dw)
37 | tr_top = rd(dh)
38 | tr_right = fd( min(Iw * 3/4 - tl_left,dw) )
39 | br_bottom = rd(dh)
40 | br_right = fd( min(Iw * 3/4 - bl_left,dw) )
41 |
42 | tform = stf.ProjectiveTransform()
43 | tform.estimate(np.array((
44 | (tl_left, tl_top),
45 | (bl_left, Ih - bl_bottom),
46 | (Iw - br_right, Ih - br_bottom),
47 | (Iw - tr_right, tr_top)
48 | )), np.array((
49 | [0, 0 ],
50 | [0, Ih - 1 ],
51 | [Iw-1, Ih-1 ],
52 | [Iw-1, 0]
53 | )))
54 |
55 | # determine shape of output image, to preserve size
56 | # trick take from the implementation of skimage.transform.rotate
57 | corners = np.array([
58 | [0, 0 ],
59 | [0, Ih - 1 ],
60 | [Iw-1, Ih-1 ],
61 | [Iw-1, 0]
62 | ])
63 |
64 | corners = tform.inverse(corners)
65 | minc = corners[:, 0].min()
66 | minr = corners[:, 1].min()
67 | maxc = corners[:, 0].max()
68 | maxr = corners[:, 1].max()
69 | out_rows = maxr - minr + 1
70 | out_cols = maxc - minc + 1
71 | output_shape = np.around((out_rows, out_cols))
72 |
73 | # fit output image in new shape
74 | translation = (minc, minr)
75 | tform4 = stf.SimilarityTransform(translation=translation)
76 | tform = tform4 + tform
77 | # normalize
78 | tform.params /= tform.params[2, 2]
79 |
80 |
81 | ret = []
82 | for i in range(len(img)):
83 | img2 = stf.warp(img[i], tform, output_shape=output_shape, cval=1.0)
84 | img2 = stf.resize(img2, (Ih,Iw), preserve_range=True).astype(np.float32)
85 | ret.append(img2)
86 |
87 |
88 | return ret
89 |
90 | @gin.configurable
91 | def SameTrCollate(batch, prjAug, prjVal):
92 | images, labels = zip(*batch)
93 |
94 | images = [image.transpose((1,2,0)) for image in images]
95 |
96 | if prjAug:
97 | images = [RndTform([image], val=prjVal)[0] for image in images] #different transform to each batch
98 | # images = RndTform(images, val=prjVal) #apply same transform to all images in a batch
99 |
100 | image_tensors = [torch.from_numpy(np.array(image, copy=False)) for image in images]
101 | image_tensors = torch.cat([t.unsqueeze(0) for t in image_tensors], 0)
102 | image_tensors = image_tensors.permute(0,3,1,2)
103 |
104 | return image_tensors, labels
105 |
106 |
107 | class myLoadDS(Dataset):
108 | def __init__(self, flist, dpath, ralph=None, fmin=True, mln=None):
109 | self.fns = get_files(flist, dpath)
110 | self.tlbls = get_labels(self.fns)
111 |
112 | if ralph == None:
113 | alph = get_alphabet(self.tlbls)
114 | self.ralph = dict (zip(alph.values(),alph.keys()))
115 | self.alph = alph
116 | else:
117 | self.ralph = ralph
118 |
119 | if mln != None:
120 | filt = [len(x) <= mln if fmin else len(x) >= mln for x in self.tlbls]
121 | self.tlbls = np.asarray(self.tlbls)[filt].tolist()
122 | self.fns = np.asarray(self.fns )[filt].tolist()
123 |
124 | def __len__(self):
125 | return len(self.fns)
126 |
127 | def __getitem__(self, index):
128 | timgs = get_images(self.fns[index])
129 | timgs = timgs.transpose((2,0,1))
130 |
131 | return ( timgs , self.tlbls[index] )
132 |
133 | def get_files(nfile, dpath):
134 | fnames = open(nfile, 'r').readlines()
135 | fnames = [ dpath + x.strip() for x in fnames ]
136 | return fnames
137 |
138 | def npThum(img, max_w, max_h):
139 | x, y = np.shape(img)[:2]
140 |
141 | y = min(int( y * max_h / x ),max_w)
142 | x = max_h
143 |
144 | img = np.array(Image.fromarray(img).resize((y,x)))
145 | return img
146 |
147 | @gin.configurable
148 | def get_images(fname, max_w, max_h, nch):
149 |
150 | try:
151 |
152 | image_data = np.array(Image.open(fname))
153 | image_data = npThum(image_data, max_w, max_h)
154 | image_data = skimage.img_as_float32(image_data)
155 |
156 | h, w = np.shape(image_data)[:2]
157 | if image_data.ndim < 3:
158 | image_data = np.expand_dims(image_data, axis=-1)
159 |
160 | if nch==3 and image_data.shape[2]!=3:
161 | image_data = np.tile(image_data,3)
162 |
163 | image_data = np.pad(image_data,((0,0),(0,max_w-np.shape(image_data)[1]),(0,0)), mode='constant', constant_values=(1.0))
164 |
165 | except IOError as e:
166 | print('Could not read:', fname, ':', e)
167 |
168 | return image_data
169 |
170 | def get_labels(fnames):
171 |
172 | labels = []
173 | for id,image_file in enumerate(fnames):
174 | fn = os.path.splitext(image_file)[0] + '.txt'
175 | lbl = open(fn, 'r').read()
176 | lbl = ' '.join(lbl.split()) #remove linebreaks if present
177 |
178 | labels.append(lbl)
179 |
180 | return labels
181 |
182 | def get_alphabet(labels):
183 |
184 | coll = ''.join(labels)
185 | unq = sorted(list(set(coll)))
186 | unq = [''.join(i) for i in itertools.product(unq, repeat = 1)]
187 | alph = dict( zip( unq,range(len(unq)) ) )
188 |
189 | return alph
--------------------------------------------------------------------------------
/iam/iam.gin:
--------------------------------------------------------------------------------
1 | port = 12345
2 | manualSeed = 1111
3 | dist = 'DDP'
4 |
5 | n_channels = 1
6 | o_classes = 80
7 |
8 | GradCheck = 0
9 |
10 | # Parameters for get_images (ds_load.py):
11 | # ==============================================================================
12 | get_images.max_w = 750
13 | get_images.max_h = 750
14 | get_images.nch = %n_channels
15 |
16 | # Parameters for SameTrCollate (ds_load.py):
17 | # ==============================================================================
18 | SameTrCollate.prjAug = True
19 | SameTrCollate.prjVal = 125
20 |
21 | # Parameters for train (train.py):
22 | # ==============================================================================
23 | train.experiment_name = 'iam_gin_test_'
24 |
25 | train.AMP = False
26 | train.WdB = False
27 | train.wdbprj = 'prj_Name'
28 | train.train_data_list = 'iam/train.gc'
29 | train.train_data_path = '/mnt/iam/pargs/'
30 | train.test_data_list = 'iam/val.gc'
31 | train.test_data_path = '/mnt/iam/pargs/'
32 | train.train_batch_size = 1
33 | train.val_batch_size = 1
34 | train.workers = 4
35 | train.lr = 0.01
36 | train.continue_model = ''
37 | train.valInterval = 500
38 | train.num_iter = 0
39 |
40 |
41 | # Parameters for OrigamiNet (cnv_model.py):
42 | # ==============================================================================
43 | OrigamiNet.n_channels = %n_channels
44 | OrigamiNet.o_classes = %o_classes
45 | OrigamiNet.fup = 33
46 | OrigamiNet.GradCheck = %GradCheck
47 |
48 | OrigamiNet.nlyrs = 12
49 | OrigamiNet.wmul = 1.0
50 |
51 | OrigamiNet.lszs = {0: 128,
52 | 2: 256,
53 | 4: 512,
54 | 11: 256 }
55 |
56 | ##resize structure##
57 | MaxPool2d.kernel_size = (2,2)
58 |
59 | Upsample.mode = 'bilinear'
60 | Upsample.align_corners = True
61 | s1/Upsample.size = (450,15)
62 | s2/Upsample.size = (1100,8)
63 |
64 | OrigamiNet.lreszs = {
65 | 0: @MaxPool2d(),
66 | 2: @MaxPool2d(),
67 | 4: @MaxPool2d(),
68 |
69 | 6: @PadPool(),
70 | 8: @PadPool(),
71 |
72 | 10: @s1/Upsample(),
73 | 11: @s2/Upsample()
74 | }
75 |
76 | # Parameters for InitBlock (cnv_model.py):
77 | # ==============================================================================
78 | InitBlock.n_channels = %n_channels
79 |
80 | # Parameters for GateBlock (cnv_model.py):
81 | # ==============================================================================
82 | GateBlock.GradCheck = %GradCheck
--------------------------------------------------------------------------------
/iam/iam.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | dst=$3
4 |
5 | wget --user=$1 --password=$2 http://www.fki.inf.unibe.ch/DBs/iamDB/data/{forms/{formsA-D,formsE-H,formsI-Z}.tgz,xml/xml.tgz}
6 |
7 | mkdir -p $dst/{forms,xml,pargs}
8 |
9 | cat {formsA-D,formsE-H,formsI-Z}.tgz | tar -zxvf - -i -C $dst/forms
10 | tar zxvf xml.tgz -C $dst/xml
11 |
12 | python `dirname "$0"`/iam_par_gt.py $dst
--------------------------------------------------------------------------------
/iam/iam_ln.gin:
--------------------------------------------------------------------------------
1 | port = 12346
2 | manualSeed = 1111
3 | dist = 'DDP'
4 |
5 | n_channels = 1
6 | o_classes = 80
7 |
8 | GradCheck = 0
9 |
10 | # Parameters for get_images (ds_load.py):
11 | # ==============================================================================
12 | get_images.max_w = 600
13 | get_images.max_h = 32
14 | get_images.nch = %n_channels
15 |
16 | # Parameters for SameTrCollate (ds_load.py):
17 | # ==============================================================================
18 | SameTrCollate.prjAug = True
19 | SameTrCollate.prjVal = 16
20 |
21 | # Parameters for train (train.py):
22 | # ==============================================================================
23 | train.experiment_name = 'iam_gin_lines_test_'
24 |
25 | train.AMP = False
26 | train.WdB = False
27 | train.wdbprj = 'prj_Name'
28 | train.train_data_list = 'iam/train.ln'
29 | train.train_data_path = '/mnt/iam/lines/'
30 | train.test_data_list = 'iam/val.ln'
31 | train.test_data_path = '/mnt/iam/lines/'
32 | train.train_batch_size = 8
33 | train.val_batch_size = 8
34 | train.workers = 4
35 | train.lr = 0.02
36 | train.continue_model = ''
37 | train.valInterval = 1000
38 | train.num_iter = 0
39 |
40 |
41 | # Parameters for OrigamiNet (cnv_model.py):
42 | # ==============================================================================
43 | OrigamiNet.n_channels = %n_channels
44 | OrigamiNet.o_classes = %o_classes
45 | OrigamiNet.fup = 33
46 | OrigamiNet.GradCheck = %GradCheck
47 | OrigamiNet.reduceAxis = 2
48 |
49 | OrigamiNet.nlyrs = 12
50 | OrigamiNet.wmul = 2.0
51 |
52 | OrigamiNet.lszs = {0: 128,
53 | 2: 256,
54 | 4: 512,
55 | 6: 1024
56 | }
57 |
58 | ##resize structure##
59 | MaxPool2d.kernel_size = (2,2)
60 |
61 | OrigamiNet.lreszs = {
62 | 0: @MaxPool2d(),
63 | 2: @MaxPool2d(),
64 | }
65 |
66 | # Parameters for InitBlock (cnv_model.py):
67 | # ==============================================================================
68 | InitBlock.n_channels = %n_channels
69 |
70 | # Parameters for GateBlock (cnv_model.py):
71 | # ==============================================================================
72 | GateBlock.GradCheck = %GradCheck
--------------------------------------------------------------------------------
/iam/iam_par_gt.py:
--------------------------------------------------------------------------------
1 | import xml.etree.ElementTree as ET
2 | from xml.sax.saxutils import unescape
3 | import glob
4 | import sys,os
5 | import imageio
6 | import os.path as osp
7 |
8 | # base = '/home/asd/'
9 | base = sys.argv[1]
10 |
11 | xml = osp.join(base, 'xml/')
12 | fpath = osp.join(base, 'forms/')
13 | gpath = osp.join(base, 'pargs/')
14 |
15 | forms = glob.glob(xml+'*.xml')
16 | c=0
17 | for i in range(len(forms)):
18 | print(forms[i])
19 | rt = ET.parse(forms[i]).getroot()
20 | xmin, ymin = [sys.maxsize] * 2
21 | xmax, ymax = [0] * 2
22 | ftxt = ''
23 | for line in rt.findall('.//line'):
24 | txt,id = line.attrib['text'],line.attrib['id']
25 | txt = unescape(txt, {"'": "'", """: '"'})
26 | ftxt = ftxt + txt + '\n'
27 |
28 | for cmp in line.findall('.//cmp'):
29 | dm = list(map(int,[ cmp.attrib['x'],cmp.attrib['y'],cmp.attrib['width'],cmp.attrib['height'] ]))
30 | xmin = min(xmin,dm[0])
31 | ymin = min(ymin,dm[1])
32 | xmax = max(xmax,dm[0]+dm[2])
33 | ymax = max(ymax,dm[1]+dm[3])
34 |
35 | ftxt = ftxt[:-1]
36 | marg = 5
37 | xmin -= marg
38 | ymin -= marg
39 | xmax += marg
40 | ymax += marg
41 |
42 | frmid = os.path.splitext( os.path.basename(forms[i]) )[0]
43 | frmfl = fpath + frmid + '.png'
44 | frm = imageio.imread(frmfl)
45 | imageio.imsave(gpath+frmid+'.png',frm[ymin:ymax,xmin:xmax])
46 | open(gpath + frmid + '.txt','w').write(ftxt)
47 |
--------------------------------------------------------------------------------
/iam/test.gc:
--------------------------------------------------------------------------------
1 | c04-110.png
2 | c04-116.png
3 | c04-134.png
4 | c04-139.png
5 | c04-144.png
6 | c04-150.png
7 | c04-165.png
8 | c04-170.png
9 | c06-011.png
10 | d01-016.png
11 | d01-019.png
12 | d01-049.png
13 | d01-052.png
14 | d01-080.png
15 | d01-085.png
16 | d01-098.png
17 | d01-104.png
18 | d01-118.png
19 | d01-123.png
20 | d03-117.png
21 | d04-012.png
22 | d04-016.png
23 | d04-021.png
24 | d04-028.png
25 | d04-032.png
26 | d04-037.png
27 | d04-047.png
28 | d04-050.png
29 | d04-053.png
30 | d04-058.png
31 | d04-062.png
32 | d04-066.png
33 | d04-086.png
34 | d04-089.png
35 | d04-096.png
36 | d04-101.png
37 | d04-111.png
38 | d04-125.png
39 | d04-131.png
40 | d05-008.png
41 | d05-013.png
42 | d05-021.png
43 | d05-025.png
44 | d05-030.png
45 | d05-040.png
46 | d06-003.png
47 | d06-008.png
48 | d06-011.png
49 | d06-020.png
50 | d06-025.png
51 | d06-027.png
52 | d06-037.png
53 | d06-041.png
54 | d06-046.png
55 | d06-056.png
56 | d06-060.png
57 | d06-063.png
58 | d06-067.png
59 | d06-072.png
60 | d06-076.png
61 | d06-086.png
62 | d06-096.png
63 | d06-100.png
64 | d06-104.png
65 | d06-107.png
66 | d06-111.png
67 | d06-113.png
68 | d07-082.png
69 | d07-085.png
70 | d07-089.png
71 | d07-093.png
72 | d07-096.png
73 | d07-100.png
74 | d07-102.png
75 | e01-055.png
76 | e06-000.png
77 | e06-003.png
78 | e06-010.png
79 | e06-015.png
80 | e06-021.png
81 | e06-026.png
82 | e06-030.png
83 | e06-033.png
84 | e06-046.png
85 | e06-049.png
86 | e06-053.png
87 | e06-070.png
88 | f04-032.png
89 | f04-035.png
90 | f04-039.png
91 | f04-043.png
92 | f04-053.png
93 | f04-057.png
94 | f04-061.png
95 | f04-064.png
96 | f04-068.png
97 | f04-071.png
98 | f04-074.png
99 | f04-079.png
100 | f04-083.png
101 | f04-087.png
102 | f07-000.png
103 | f07-000b.png
104 | f07-002.png
105 | f07-006.png
106 | f07-009.png
107 | f07-013.png
108 | f07-016.png
109 | f07-019a.png
110 | f07-019b.png
111 | f07-021a.png
112 | f07-021b.png
113 | f07-024a.png
114 | f07-024b.png
115 | f07-028a.png
116 | f07-032a.png
117 | f07-039a.png
118 | f07-042a.png
119 | f07-046a.png
120 | f07-069.png
121 | f07-073.png
122 | f07-076a.png
123 | f07-081a.png
124 | f07-081b.png
125 | f07-084a.png
126 | f07-084b.png
127 | f07-088a.png
128 | f07-088b.png
129 | f07-092a.png
130 | f07-092b.png
131 | f07-096.png
132 | f07-101b.png
133 | g01-004.png
134 | g01-008.png
135 | g01-012.png
136 | g01-016.png
137 | g01-019.png
138 | g01-025.png
139 | g01-027.png
140 | g01-031.png
141 | g01-034.png
142 | g01-037.png
143 | g01-039.png
144 | g01-043.png
145 | g01-045.png
146 | g01-067.png
147 | g01-070.png
148 | g01-074.png
149 | g01-088.png
150 | g02-059.png
151 | g02-062.png
152 | g02-065.png
153 | g02-073.png
154 | g03-000.png
155 | g03-004.png
156 | g03-032.png
157 | g03-040.png
158 | g03-043.png
159 | g03-049.png
160 | g03-052.png
161 | g03-064.png
162 | g04-022.png
163 | g04-043.png
164 | g04-048.png
165 | g04-052.png
166 | g04-068.png
167 | g04-072.png
168 | g07-000b.png
169 | g07-079a.png
170 | m01-049.png
171 | m01-060.png
172 | m01-079.png
173 | m01-084.png
174 | m01-095.png
175 | m01-104.png
176 | m01-110.png
177 | m01-121.png
178 | m01-125.png
179 | m01-131.png
180 | m01-136.png
181 | m01-149.png
182 | m02-048.png
183 | m02-055.png
184 | m02-059.png
185 | m02-066.png
186 | m02-069.png
187 | m02-072.png
188 | m02-080.png
189 | m02-087.png
190 | m02-095.png
191 | m02-109.png
192 | m02-112.png
193 | m03-006.png
194 | m03-013.png
195 | m03-020.png
196 | m03-033.png
197 | m03-110.png
198 | m03-114.png
199 | m03-118.png
200 | m04-030.png
201 | m04-038.png
202 | m04-043.png
203 | m04-061.png
204 | m04-072.png
205 | m04-078.png
206 | m04-081.png
207 | m04-093.png
208 | m04-100.png
209 | m04-107.png
210 | m04-113.png
211 | m04-123.png
212 | m04-131.png
213 | m04-138.png
214 | m04-231.png
215 | m04-238.png
216 | m04-246.png
217 | m06-031.png
218 | m06-042.png
219 | m06-048.png
220 | m06-056.png
221 | m06-067.png
222 | m06-076.png
223 | m06-083.png
224 | m06-091.png
225 | m06-098.png
226 | m06-106.png
227 | n01-000.png
228 | n01-004.png
229 | n01-009.png
230 | n01-020.png
231 | n01-031.png
232 | n01-036.png
233 | n01-045.png
234 | n01-052.png
235 | n01-057.png
236 | n02-004.png
237 | n02-009.png
238 | n02-028.png
239 | n02-033.png
240 | n02-037.png
241 | n02-040.png
242 | n02-045.png
243 | n02-049.png
244 | n02-054.png
245 | n02-062.png
246 | n02-104.png
247 | n02-109.png
248 | n02-114.png
249 | n02-120.png
250 | n02-127.png
251 | n02-151.png
252 | n02-154.png
253 | n02-157.png
254 | n03-038.png
255 | n03-064.png
256 | n03-066.png
257 | n03-097.png
258 | n03-103.png
259 | n03-106.png
260 | n03-113.png
261 | n03-120.png
262 | n03-126.png
263 | n04-000.png
264 | n04-009.png
265 | n04-048.png
266 | n04-052.png
267 | n04-060.png
268 | n04-068.png
269 | n04-075.png
270 | n04-084.png
271 | n04-092.png
272 | n04-100.png
273 | n04-107.png
274 | n04-114.png
275 | n04-130.png
276 | n04-139.png
277 | n04-149.png
278 | n04-156.png
279 | n04-163.png
280 | n04-202.png
281 | n04-209.png
282 | n04-213.png
283 | n04-218.png
284 | n06-074.png
285 | n06-082.png
286 | n06-092.png
287 | n06-100.png
288 | n06-111.png
289 | n06-119.png
290 | n06-123.png
291 | n06-128.png
292 | n06-133.png
293 | n06-140.png
294 | p01-147.png
295 | p01-155.png
296 | p01-168.png
297 | p01-174.png
298 | p02-000.png
299 | p02-008.png
300 | p02-022.png
301 | p02-027.png
302 | p02-069.png
303 | p02-076.png
304 | p02-081.png
305 | p02-090.png
306 | p02-101.png
307 | p02-105.png
308 | p02-109.png
309 | p02-115.png
310 | p02-135.png
311 | p02-139.png
312 | p02-144.png
313 | p02-150.png
314 | p03-012.png
315 | p03-023.png
316 | p03-027.png
317 | p03-029.png
318 | p03-033.png
319 | p03-040.png
320 | p03-047.png
321 | p03-072.png
322 | p03-080.png
323 | p03-163.png
324 | p03-173.png
325 | p03-181.png
326 | p03-189.png
327 | p06-030.png
328 | p06-042.png
329 | p06-047.png
330 | p06-052.png
331 | p06-058.png
332 | p06-069.png
333 | p06-088.png
334 | p06-096.png
335 | p06-104.png
336 | r03-053.png
337 |
--------------------------------------------------------------------------------
/iam/test.ln:
--------------------------------------------------------------------------------
1 | g01-016-06.png
2 | n06-100-03.png
3 | d01-118-04.png
4 | d04-032-08.png
5 | n02-120-06.png
6 | n04-060-01.png
7 | d05-025-03.png
8 | d06-063-07.png
9 | n02-045-02.png
10 | p02-150-01.png
11 | e06-003-03.png
12 | e01-055-06.png
13 | m02-069-06.png
14 | g02-065-03.png
15 | f07-084a-08.png
16 | d06-063-05.png
17 | n04-100-00.png
18 | d04-012-08.png
19 | d07-082-05.png
20 | n03-064-04.png
21 | m04-123-05.png
22 | f04-039-04.png
23 | e06-003-09.png
24 | d04-012-09.png
25 | g01-031-06.png
26 | f07-024b-05.png
27 | e06-070-01.png
28 | n03-066-03.png
29 | d07-100-03.png
30 | m01-095-07.png
31 | f07-024b-07.png
32 | m04-061-03.png
33 | p06-088-02.png
34 | c04-110-01.png
35 | f07-024a-04.png
36 | g03-004-01.png
37 | m04-107-02.png
38 | f04-071-04.png
39 | d04-037-02.png
40 | p06-104-01.png
41 | c04-139-06.png
42 | r03-053-04.png
43 | d01-049-07.png
44 | g01-025-03.png
45 | r03-053-05.png
46 | f07-088a-07.png
47 | n02-049-04.png
48 | f07-000b-04.png
49 | n01-052-11.png
50 | m06-098-00.png
51 | n02-037-00.png
52 | m04-113-10.png
53 | p03-029-00.png
54 | g01-043-09.png
55 | c04-144-01.png
56 | e06-046-03.png
57 | p02-144-07.png
58 | m03-118-04.png
59 | f04-032-05.png
60 | c04-150-04.png
61 | d01-052-05.png
62 | p06-047-06.png
63 | f07-081a-05.png
64 | d06-060-03.png
65 | c06-011-08.png
66 | c04-150-05.png
67 | m01-104-07.png
68 | p02-069-04.png
69 | g01-025-01.png
70 | p03-080-01.png
71 | f07-002-06.png
72 | p03-040-07.png
73 | d04-111-09.png
74 | d05-025-07.png
75 | e06-070-02.png
76 | p06-088-06.png
77 | d06-067-01.png
78 | d07-085-00.png
79 | g01-070-07.png
80 | g01-070-00.png
81 | n04-202-01.png
82 | f07-088a-04.png
83 | n03-113-03.png
84 | n01-036-02.png
85 | n04-202-03.png
86 | f07-092a-07.png
87 | n06-074-06.png
88 | c04-144-02.png
89 | d07-093-00.png
90 | m02-059-03.png
91 | n04-075-02.png
92 | d06-111-02.png
93 | p03-023-02.png
94 | d06-003-03.png
95 | f07-069-04.png
96 | m03-006-04.png
97 | p03-040-04.png
98 | g02-065-02.png
99 | f07-013-09.png
100 | m06-042-01.png
101 | g03-064-03.png
102 | m03-118-00.png
103 | d04-053-00.png
104 | m06-031-04.png
105 | d07-089-06.png
106 | d07-093-04.png
107 | g01-067-04.png
108 | p02-109-00.png
109 | g02-065-06.png
110 | n03-113-07.png
111 | n06-123-08.png
112 | p02-076-05.png
113 | g03-064-01.png
114 | e06-015-03.png
115 | m01-136-06.png
116 | m02-095-03.png
117 | d07-082-02.png
118 | n01-020-07.png
119 | d06-025-04.png
120 | d07-085-01.png
121 | n02-151-10.png
122 | n02-151-00.png
123 | p02-144-05.png
124 | m04-093-00.png
125 | r03-053-06.png
126 | m06-083-02.png
127 | n04-156-04.png
128 | f07-019b-07.png
129 | d06-111-00.png
130 | p02-135-07.png
131 | n03-106-03.png
132 | f07-016-05.png
133 | d03-117-05.png
134 | d06-060-05.png
135 | m04-100-05.png
136 | m04-078-01.png
137 | g01-043-08.png
138 | n02-062-00.png
139 | n01-009-06.png
140 | n03-064-03.png
141 | f07-009-08.png
142 | m03-118-05.png
143 | e06-046-05.png
144 | n04-114-01.png
145 | c04-165-01.png
146 | g01-027-09.png
147 | g01-074-07.png
148 | n04-213-05.png
149 | n06-100-05.png
150 | m04-072-06.png
151 | n01-052-01.png
152 | n03-120-00.png
153 | d04-111-07.png
154 | p03-047-05.png
155 | m01-049-07.png
156 | p03-029-09.png
157 | m02-095-08.png
158 | d01-098-06.png
159 | n02-033-09.png
160 | n06-074-05.png
161 | p02-115-04.png
162 | d06-096-02.png
163 | m01-095-04.png
164 | d06-041-03.png
165 | d06-096-06.png
166 | m04-038-04.png
167 | n03-064-02.png
168 | c04-165-04.png
169 | m04-038-00.png
170 | m06-076-03.png
171 | d07-096-04.png
172 | g01-004-03.png
173 | m02-095-01.png
174 | d05-025-08.png
175 | m04-081-00.png
176 | f07-009-09.png
177 | n04-060-00.png
178 | n04-107-03.png
179 | g02-062-03.png
180 | m02-109-02.png
181 | n03-120-04.png
182 | c06-011-04.png
183 | n03-106-07.png
184 | f04-061-07.png
185 | m03-110-01.png
186 | d06-011-08.png
187 | n01-057-02.png
188 | p03-189-04.png
189 | e06-003-08.png
190 | n04-202-02.png
191 | f07-024a-07.png
192 | g07-000b-02.png
193 | f04-053-06.png
194 | p01-174-03.png
195 | p01-155-04.png
196 | f04-083-08.png
197 | m03-020-00.png
198 | n04-048-07.png
199 | m04-043-03.png
200 | p02-101-05.png
201 | f07-000b-05.png
202 | n04-163-04.png
203 | n01-052-08.png
204 | g01-008-08.png
205 | d04-050-01.png
206 | d06-046-08.png
207 | n04-202-06.png
208 | d04-089-05.png
209 | f07-081b-06.png
210 | n04-107-04.png
211 | g03-004-03.png
212 | n01-020-09.png
213 | p02-090-02.png
214 | f04-068-04.png
215 | d06-104-04.png
216 | d06-113-01.png
217 | f07-021b-02.png
218 | d04-111-06.png
219 | g01-004-01.png
220 | f04-071-05.png
221 | f07-028a-09.png
222 | f07-046a-03.png
223 | g04-022-05.png
224 | n02-114-08.png
225 | m04-061-01.png
226 | g01-016-04.png
227 | g03-049-06.png
228 | m04-081-09.png
229 | d01-123-01.png
230 | f07-069-06.png
231 | g01-045-05.png
232 | n04-139-07.png
233 | m06-083-06.png
234 | p03-072-05.png
235 | f04-039-00.png
236 | m02-069-01.png
237 | e06-053-03.png
238 | g03-052-05.png
239 | g04-022-04.png
240 | n04-052-03.png
241 | f04-064-01.png
242 | p03-023-01.png
243 | n01-045-04.png
244 | g04-072-07.png
245 | d04-111-05.png
246 | m02-112-05.png
247 | f04-053-01.png
248 | d06-046-06.png
249 | f07-016-07.png
250 | d07-100-04.png
251 | d06-008-09.png
252 | p03-047-07.png
253 | f07-016-04.png
254 | n06-100-02.png
255 | d04-066-06.png
256 | n02-028-00.png
257 | g02-059-01.png
258 | p06-088-00.png
259 | d01-098-03.png
260 | d06-111-04.png
261 | m02-072-01.png
262 | n04-052-04.png
263 | d06-046-03.png
264 | p03-047-01.png
265 | e06-026-01.png
266 | f07-002-00.png
267 | d04-125-00.png
268 | e06-030-04.png
269 | f04-079-03.png
270 | g01-037-02.png
271 | n02-054-09.png
272 | p02-090-03.png
273 | m04-043-01.png
274 | m04-081-01.png
275 | f07-069-05.png
276 | d05-040-05.png
277 | d04-016-06.png
278 | r03-053-01.png
279 | n06-140-06.png
280 | p06-030-02.png
281 | d05-025-06.png
282 | e06-049-03.png
283 | n06-082-04.png
284 | p02-150-00.png
285 | p03-047-02.png
286 | d01-080-00.png
287 | n03-103-09.png
288 | n01-031-08.png
289 | g03-052-01.png
290 | n02-109-01.png
291 | e01-055-03.png
292 | m01-084-02.png
293 | p03-047-04.png
294 | d06-086-02.png
295 | n02-104-07.png
296 | m04-131-02.png
297 | p02-076-10.png
298 | c04-150-07.png
299 | g04-048-04.png
300 | f07-000-01.png
301 | p06-069-03.png
302 | f07-024b-09.png
303 | n04-009-03.png
304 | n01-045-09.png
305 | n01-020-06.png
306 | n02-028-01.png
307 | p03-072-00.png
308 | f07-024a-01.png
309 | n06-092-03.png
310 | p03-181-05.png
311 | d07-089-07.png
312 | m04-238-00.png
313 | d05-025-02.png
314 | n03-106-06.png
315 | p02-105-01.png
316 | m01-060-06.png
317 | g03-043-04.png
318 | f07-088a-03.png
319 | m02-059-06.png
320 | d06-020-02.png
321 | p02-008-04.png
322 | n04-139-08.png
323 | f04-068-00.png
324 | m04-123-09.png
325 | d07-096-02.png
326 | g04-022-07.png
327 | m01-110-07.png
328 | n04-149-02.png
329 | g01-008-07.png
330 | d07-082-03.png
331 | d01-049-01.png
332 | f07-042a-00.png
333 | d01-080-03.png
334 | d07-100-02.png
335 | p03-047-06.png
336 | n06-140-00.png
337 | n04-100-07.png
338 | n04-107-01.png
339 | p02-000-06.png
340 | f07-073-08.png
341 | n01-009-00.png
342 | n02-104-05.png
343 | d05-040-00.png
344 | g04-043-01.png
345 | n02-037-06.png
346 | p03-181-06.png
347 | d06-072-05.png
348 | p03-163-01.png
349 | f04-061-06.png
350 | n02-127-07.png
351 | n04-107-06.png
352 | d01-019-02.png
353 | f07-039a-03.png
354 | n04-084-03.png
355 | n02-114-06.png
356 | f07-006-00.png
357 | d04-062-03.png
358 | f07-019a-00.png
359 | d04-016-00.png
360 | g01-025-02.png
361 | d05-040-03.png
362 | d05-025-09.png
363 | p06-104-04.png
364 | m04-100-02.png
365 | m06-042-02.png
366 | e01-055-04.png
367 | g01-034-01.png
368 | p06-030-06.png
369 | n01-045-02.png
370 | m04-061-04.png
371 | p03-033-04.png
372 | f04-074-07.png
373 | p01-147-00.png
374 | f07-032a-08.png
375 | c04-150-00.png
376 | m04-131-07.png
377 | n02-054-08.png
378 | c04-165-02.png
379 | f04-087-00.png
380 | p06-042-05.png
381 | e06-015-02.png
382 | n01-052-07.png
383 | g03-040-01.png
384 | d06-020-09.png
385 | m02-069-08.png
386 | n04-156-00.png
387 | e06-046-01.png
388 | n02-054-01.png
389 | n02-154-02.png
390 | c04-139-00.png
391 | d06-011-02.png
392 | d06-037-02.png
393 | g01-037-03.png
394 | n02-004-06.png
395 | d04-086-03.png
396 | m02-080-04.png
397 | d06-113-00.png
398 | e06-021-09.png
399 | m04-238-05.png
400 | m02-087-00.png
401 | f04-057-05.png
402 | d04-050-00.png
403 | f07-088b-04.png
404 | m01-095-05.png
405 | n02-040-01.png
406 | c04-139-02.png
407 | m02-048-10.png
408 | g04-043-07.png
409 | n06-133-06.png
410 | f07-024a-06.png
411 | g03-040-04.png
412 | m04-081-04.png
413 | f07-032a-07.png
414 | g01-037-00.png
415 | m01-079-00.png
416 | d01-052-01.png
417 | p06-047-00.png
418 | n01-057-03.png
419 | n01-031-05.png
420 | d06-008-05.png
421 | d04-125-03.png
422 | n01-020-05.png
423 | d06-107-06.png
424 | d06-086-01.png
425 | m01-104-05.png
426 | d07-089-10.png
427 | d05-025-01.png
428 | f07-073-07.png
429 | m03-114-01.png
430 | m04-100-06.png
431 | p02-081-07.png
432 | d01-098-00.png
433 | f04-083-01.png
434 | n06-133-04.png
435 | d04-066-07.png
436 | g02-062-04.png
437 | g03-032-05.png
438 | n02-054-07.png
439 | d01-049-05.png
440 | p01-147-11.png
441 | n01-009-03.png
442 | m04-138-03.png
443 | d01-085-01.png
444 | m06-031-01.png
445 | e06-033-07.png
446 | m01-110-08.png
447 | d06-046-09.png
448 | p03-173-05.png
449 | f04-068-01.png
450 | n02-033-08.png
451 | m04-131-03.png
452 | p01-147-09.png
453 | n02-049-00.png
454 | p03-012-07.png
455 | f07-024a-03.png
456 | p06-069-09.png
457 | p06-069-02.png
458 | g04-072-01.png
459 | p02-105-00.png
460 | d06-100-01.png
461 | m02-055-01.png
462 | g01-045-00.png
463 | n03-097-01.png
464 | d01-085-00.png
465 | m03-033-04.png
466 | m06-031-03.png
467 | f04-074-02.png
468 | d06-067-05.png
469 | d01-098-04.png
470 | n02-054-06.png
471 | n04-052-05.png
472 | d06-100-03.png
473 | m01-136-04.png
474 | p02-135-02.png
475 | p03-173-08.png
476 | p02-090-07.png
477 | m01-049-04.png
478 | m02-112-03.png
479 | n04-092-07.png
480 | g01-039-00.png
481 | m01-079-04.png
482 | d04-028-04.png
483 | n04-114-00.png
484 | f07-084a-09.png
485 | f04-064-08.png
486 | e06-053-05.png
487 | g04-068-03.png
488 | g04-072-00.png
489 | f07-073-02.png
490 | m04-107-06.png
491 | m06-083-00.png
492 | p02-144-03.png
493 | m01-136-07.png
494 | n06-100-01.png
495 | g02-059-05.png
496 | m04-138-09.png
497 | f07-016-02.png
498 | d06-107-04.png
499 | g01-039-05.png
500 | d01-085-02.png
501 | m01-049-05.png
502 | p02-135-00.png
503 | p03-173-01.png
504 | f07-021b-05.png
505 | e01-055-00.png
506 | p06-047-04.png
507 | f07-021b-06.png
508 | g03-052-06.png
509 | f04-064-05.png
510 | m04-038-02.png
511 | f04-035-05.png
512 | g01-031-05.png
513 | m04-123-08.png
514 | g01-012-06.png
515 | m04-081-10.png
516 | m02-055-04.png
517 | d06-072-02.png
518 | d06-041-01.png
519 | n02-109-05.png
520 | p02-000-00.png
521 | g01-039-02.png
522 | f07-084a-10.png
523 | e06-021-10.png
524 | g01-025-05.png
525 | n02-004-05.png
526 | f07-046a-05.png
527 | f07-046a-01.png
528 | p03-173-03.png
529 | n06-092-01.png
530 | n03-038-06.png
531 | g04-052-01.png
532 | g01-016-05.png
533 | d01-123-03.png
534 | f07-046a-02.png
535 | n06-123-02.png
536 | d06-072-04.png
537 | g04-022-03.png
538 | m02-048-08.png
539 | f04-087-02.png
540 | d01-098-01.png
541 | f07-092a-06.png
542 | e06-049-05.png
543 | n02-054-03.png
544 | m03-114-08.png
545 | n04-060-06.png
546 | f04-087-05.png
547 | n02-157-04.png
548 | d06-027-05.png
549 | p03-173-07.png
550 | p06-069-07.png
551 | n06-128-05.png
552 | m06-098-06.png
553 | n06-092-07.png
554 | d06-027-03.png
555 | n06-140-07.png
556 | g03-064-00.png
557 | g07-000b-05.png
558 | m04-123-02.png
559 | m06-031-00.png
560 | n01-004-00.png
561 | f04-039-06.png
562 | p03-080-02.png
563 | e06-015-01.png
564 | g01-031-01.png
565 | m04-100-01.png
566 | n01-045-01.png
567 | p02-109-06.png
568 | m04-100-00.png
569 | p02-150-02.png
570 | g02-073-05.png
571 | f07-013-07.png
572 | m06-106-05.png
573 | f07-084a-05.png
574 | d04-089-01.png
575 | f07-076a-09.png
576 | f07-028a-07.png
577 | n04-009-00.png
578 | d04-032-07.png
579 | d07-100-06.png
580 | d07-096-05.png
581 | p03-163-00.png
582 | p06-104-03.png
583 | g03-049-07.png
584 | p02-101-07.png
585 | p06-104-05.png
586 | n01-020-02.png
587 | n02-033-01.png
588 | g01-088-01.png
589 | m02-069-04.png
590 | m02-109-07.png
591 | d04-053-05.png
592 | m06-106-07.png
593 | n03-113-08.png
594 | d06-067-09.png
595 | d01-123-06.png
596 | n02-127-02.png
597 | d06-107-07.png
598 | d06-060-07.png
599 | e06-026-09.png
600 | m02-059-02.png
601 | p01-155-06.png
602 | n02-157-01.png
603 | m01-060-00.png
604 | d04-062-02.png
605 | d06-008-07.png
606 | n04-218-00.png
607 | g01-067-00.png
608 | n02-033-05.png
609 | e06-030-06.png
610 | m01-149-05.png
611 | g04-048-07.png
612 | f04-043-06.png
613 | d04-012-07.png
614 | d04-032-04.png
615 | f07-081b-03.png
616 | p01-174-07.png
617 | p02-000-01.png
618 | g01-019-01.png
619 | e06-053-07.png
620 | g02-073-03.png
621 | r03-053-08.png
622 | m06-048-01.png
623 | n02-120-01.png
624 | n01-000-03.png
625 | c04-134-03.png
626 | p03-033-03.png
627 | f04-074-04.png
628 | p06-058-01.png
629 | d06-100-07.png
630 | p06-096-03.png
631 | p06-096-00.png
632 | n01-036-01.png
633 | d06-011-00.png
634 | p03-023-05.png
635 | r03-053-07.png
636 | d06-011-06.png
637 | d04-131-03.png
638 | m02-069-05.png
639 | m01-149-07.png
640 | g01-025-08.png
641 | e06-015-08.png
642 | d05-025-05.png
643 | g04-022-00.png
644 | d06-025-01.png
645 | g01-012-03.png
646 | g02-059-00.png
647 | n01-057-04.png
648 | p02-101-04.png
649 | n02-127-04.png
650 | n04-218-08.png
651 | m06-076-06.png
652 | g03-040-00.png
653 | m04-138-04.png
654 | d06-107-03.png
655 | p02-008-02.png
656 | d07-082-01.png
657 | e06-026-05.png
658 | p03-072-02.png
659 | m04-061-00.png
660 | n06-128-08.png
661 | p02-101-00.png
662 | m01-131-05.png
663 | m04-123-00.png
664 | d04-016-04.png
665 | g01-074-03.png
666 | m02-109-03.png
667 | d01-123-00.png
668 | p06-047-02.png
669 | c06-011-01.png
670 | m01-121-04.png
671 | m01-110-01.png
672 | p03-173-02.png
673 | f07-013-05.png
674 | n06-133-01.png
675 | p01-155-08.png
676 | m02-059-00.png
677 | m04-093-01.png
678 | n04-156-02.png
679 | n04-048-03.png
680 | p02-105-04.png
681 | m03-020-01.png
682 | c04-110-03.png
683 | d01-049-06.png
684 | n01-020-01.png
685 | g02-059-07.png
686 | n04-068-05.png
687 | e06-033-08.png
688 | d06-086-10.png
689 | e06-000-07.png
690 | p06-042-03.png
691 | f07-032a-10.png
692 | f07-088a-01.png
693 | n01-000-04.png
694 | d06-037-03.png
695 | m02-080-09.png
696 | m06-083-03.png
697 | e06-049-06.png
698 | g03-032-07.png
699 | d03-117-01.png
700 | n04-202-00.png
701 | g01-039-03.png
702 | d04-047-01.png
703 | n01-000-02.png
704 | m06-076-04.png
705 | f07-000b-06.png
706 | e06-070-03.png
707 | n03-064-00.png
708 | m04-093-08.png
709 | m03-006-06.png
710 | d06-100-00.png
711 | p06-058-09.png
712 | m06-076-00.png
713 | m04-030-02.png
714 | d06-104-09.png
715 | m04-246-01.png
716 | p02-101-01.png
717 | g07-000b-00.png
718 | m04-123-04.png
719 | n06-128-01.png
720 | f04-043-02.png
721 | d01-104-04.png
722 | d04-050-02.png
723 | g03-040-02.png
724 | m01-149-01.png
725 | m04-061-02.png
726 | f04-087-04.png
727 | p03-027-00.png
728 | n02-045-04.png
729 | d04-125-05.png
730 | f07-088b-02.png
731 | n01-036-00.png
732 | f07-076a-01.png
733 | g04-048-06.png
734 | n03-126-00.png
735 | m01-121-02.png
736 | p02-135-01.png
737 | g03-064-07.png
738 | m04-131-04.png
739 | d06-037-04.png
740 | d04-089-02.png
741 | m04-072-05.png
742 | d04-131-01.png
743 | d01-085-04.png
744 | d07-102-01.png
745 | e06-053-00.png
746 | g01-008-05.png
747 | e06-010-05.png
748 | d06-060-08.png
749 | d05-013-07.png
750 | d05-008-03.png
751 | d07-096-07.png
752 | n02-028-09.png
753 | d04-021-04.png
754 | d06-037-05.png
755 | e06-010-06.png
756 | d06-086-07.png
757 | f07-021a-05.png
758 | d04-101-02.png
759 | p06-088-07.png
760 | m02-095-06.png
761 | p03-072-04.png
762 | g07-000b-01.png
763 | d04-089-04.png
764 | f07-088b-06.png
765 | d04-050-04.png
766 | f07-002-03.png
767 | d04-066-09.png
768 | m04-113-02.png
769 | m04-246-04.png
770 | p03-181-02.png
771 | d04-111-08.png
772 | p03-029-07.png
773 | e06-021-05.png
774 | f07-019a-01.png
775 | f07-009-04.png
776 | g01-027-04.png
777 | d06-020-06.png
778 | e06-010-04.png
779 | n02-114-09.png
780 | m06-042-05.png
781 | n01-020-03.png
782 | f07-076a-04.png
783 | n02-157-05.png
784 | f04-079-09.png
785 | m01-131-06.png
786 | d04-037-00.png
787 | m01-149-03.png
788 | m04-113-00.png
789 | d04-016-02.png
790 | n02-127-05.png
791 | d06-041-02.png
792 | n01-057-01.png
793 | g03-052-00.png
794 | p02-069-07.png
795 | d06-096-01.png
796 | f07-019b-01.png
797 | c04-134-00.png
798 | m04-072-04.png
799 | f04-057-07.png
800 | n04-107-07.png
801 | g03-000-01.png
802 | n04-139-01.png
803 | g01-016-07.png
804 | n03-120-05.png
805 | m02-055-00.png
806 | m02-080-07.png
807 | d05-030-06.png
808 | f07-101b-03.png
809 | d01-123-07.png
810 | m03-110-03.png
811 | n03-038-01.png
812 | n04-130-05.png
813 | p01-174-05.png
814 | d04-032-02.png
815 | n02-154-05.png
816 | d04-053-02.png
817 | g01-067-09.png
818 | m04-131-00.png
819 | g03-032-04.png
820 | f07-000-06.png
821 | m03-033-05.png
822 | n02-009-04.png
823 | p02-076-04.png
824 | p02-144-00.png
825 | m01-125-09.png
826 | n02-154-03.png
827 | f04-043-05.png
828 | n03-103-03.png
829 | p03-012-00.png
830 | p06-052-00.png
831 | m04-081-08.png
832 | n04-149-01.png
833 | m06-067-05.png
834 | d06-063-04.png
835 | d04-012-04.png
836 | n01-009-02.png
837 | f07-101b-00.png
838 | n04-218-04.png
839 | p06-069-01.png
840 | d04-086-04.png
841 | p06-030-04.png
842 | d07-093-07.png
843 | n02-104-01.png
844 | g03-043-06.png
845 | d06-056-06.png
846 | m01-125-02.png
847 | p03-029-01.png
848 | g01-088-08.png
849 | n02-157-03.png
850 | p01-147-02.png
851 | f07-024b-01.png
852 | p02-076-01.png
853 | f04-068-02.png
854 | m03-006-00.png
855 | m04-113-09.png
856 | n04-209-02.png
857 | p01-147-05.png
858 | m04-030-03.png
859 | e06-030-07.png
860 | d06-104-06.png
861 | d04-047-04.png
862 | d04-096-07.png
863 | f07-046a-07.png
864 | g03-043-02.png
865 | g01-043-01.png
866 | n04-052-02.png
867 | d01-085-05.png
868 | m02-055-08.png
869 | p06-047-03.png
870 | p03-181-04.png
871 | m02-069-00.png
872 | d06-111-03.png
873 | d04-047-05.png
874 | p03-072-07.png
875 | c04-139-03.png
876 | p02-139-05.png
877 | g01-037-08.png
878 | n03-103-05.png
879 | m03-006-05.png
880 | n02-045-03.png
881 | p03-033-02.png
882 | g01-045-02.png
883 | m02-066-05.png
884 | m03-013-05.png
885 | g04-052-05.png
886 | f07-013-01.png
887 | n06-128-07.png
888 | n02-114-03.png
889 | g03-040-03.png
890 | n04-075-01.png
891 | p03-047-08.png
892 | g01-067-08.png
893 | d04-086-06.png
894 | n02-004-08.png
895 | m02-087-06.png
896 | p02-008-01.png
897 | d04-058-03.png
898 | f07-081a-02.png
899 | e06-021-03.png
900 | d04-086-02.png
901 | g04-072-04.png
902 | g01-012-04.png
903 | f04-057-03.png
904 | n04-084-05.png
905 | n06-119-03.png
906 | m03-110-09.png
907 | n06-119-05.png
908 | m06-076-05.png
909 | n03-113-00.png
910 | d01-019-05.png
911 | e06-033-04.png
912 | n04-092-02.png
913 | m04-231-04.png
914 | d06-027-02.png
915 | n03-120-09.png
916 | g01-004-05.png
917 | d01-104-05.png
918 | e06-053-08.png
919 | f07-084a-03.png
920 | m01-136-03.png
921 | n02-028-06.png
922 | p06-096-07.png
923 | c04-144-04.png
924 | m02-072-05.png
925 | f07-009-01.png
926 | f07-096-01.png
927 | g01-074-09.png
928 | m06-106-02.png
929 | f07-092b-03.png
930 | f07-024b-04.png
931 | n04-156-01.png
932 | n02-120-02.png
933 | f04-061-03.png
934 | g01-031-03.png
935 | e06-070-00.png
936 | d04-086-00.png
937 | d04-131-00.png
938 | n02-151-02.png
939 | f07-096-05.png
940 | c04-165-05.png
941 | f07-002-05.png
942 | n06-074-01.png
943 | d03-117-06.png
944 | n04-156-05.png
945 | n04-213-03.png
946 | f04-053-04.png
947 | n04-213-07.png
948 | g01-008-04.png
949 | m01-084-03.png
950 | c04-170-02.png
951 | g03-052-04.png
952 | g01-074-04.png
953 | g02-065-04.png
954 | g03-032-01.png
955 | d01-052-07.png
956 | f04-068-06.png
957 | g01-043-07.png
958 | n01-031-06.png
959 | g07-079a-08.png
960 | p02-027-04.png
961 | f07-092b-05.png
962 | g01-045-09.png
963 | n04-139-00.png
964 | g01-027-07.png
965 | n02-040-02.png
966 | p06-058-05.png
967 | e06-049-08.png
968 | p03-012-03.png
969 | r03-053-02.png
970 | g02-062-02.png
971 | f07-081a-09.png
972 | m02-109-06.png
973 | d04-053-03.png
974 | m04-231-03.png
975 | p02-101-03.png
976 | c04-170-00.png
977 | m04-238-04.png
978 | e06-010-01.png
979 | g04-068-04.png
980 | p06-052-02.png
981 | n03-106-08.png
982 | g01-031-09.png
983 | f07-046a-08.png
984 | f07-039a-06.png
985 | n04-068-04.png
986 | m01-060-01.png
987 | m04-123-01.png
988 | g01-037-01.png
989 | f04-039-07.png
990 | d05-021-06.png
991 | d01-118-03.png
992 | n02-114-01.png
993 | d03-117-02.png
994 | e06-003-07.png
995 | f07-009-07.png
996 | n03-066-06.png
997 | d04-037-01.png
998 | m04-107-10.png
999 | d06-008-01.png
1000 | g03-052-03.png
1001 | m02-066-02.png
1002 | n04-114-02.png
1003 | e06-021-07.png
1004 | n02-040-03.png
1005 | n02-151-01.png
1006 | n04-209-05.png
1007 | d06-067-00.png
1008 | g04-072-03.png
1009 | m01-136-08.png
1010 | n04-084-04.png
1011 | p03-080-05.png
1012 | n04-060-05.png
1013 | p06-058-02.png
1014 | m06-067-06.png
1015 | n01-004-01.png
1016 | d06-008-08.png
1017 | d06-020-01.png
1018 | g01-070-08.png
1019 | m03-110-08.png
1020 | g07-079a-03.png
1021 | m03-006-09.png
1022 | n02-062-05.png
1023 | d06-104-02.png
1024 | d07-102-06.png
1025 | m06-083-01.png
1026 | f07-069-08.png
1027 | m04-246-00.png
1028 | d06-027-04.png
1029 | d04-032-06.png
1030 | f07-028a-08.png
1031 | m02-048-05.png
1032 | n02-037-03.png
1033 | g03-064-05.png
1034 | m04-038-03.png
1035 | n03-103-07.png
1036 | d05-030-04.png
1037 | m04-030-04.png
1038 | n03-106-10.png
1039 | p02-008-03.png
1040 | g01-039-08.png
1041 | p02-135-06.png
1042 | g01-088-02.png
1043 | n04-149-07.png
1044 | p03-012-04.png
1045 | g01-045-04.png
1046 | d06-096-05.png
1047 | f07-084a-06.png
1048 | g01-070-01.png
1049 | n03-066-04.png
1050 | n04-068-01.png
1051 | g04-052-06.png
1052 | n06-119-04.png
1053 | m04-093-02.png
1054 | e06-026-00.png
1055 | e01-055-02.png
1056 | d04-053-09.png
1057 | g04-068-01.png
1058 | m06-056-02.png
1059 | f07-032a-02.png
1060 | m04-231-02.png
1061 | p03-080-03.png
1062 | f04-043-04.png
1063 | n01-057-06.png
1064 | p06-047-10.png
1065 | d06-086-00.png
1066 | n01-052-10.png
1067 | e01-055-09.png
1068 | m04-078-05.png
1069 | e06-053-06.png
1070 | e06-000-02.png
1071 | n04-009-04.png
1072 | e06-049-04.png
1073 | m02-048-06.png
1074 | n06-111-00.png
1075 | d06-008-04.png
1076 | d06-060-06.png
1077 | p03-027-05.png
1078 | g01-034-00.png
1079 | c04-150-01.png
1080 | g04-068-08.png
1081 | n01-004-02.png
1082 | n04-052-06.png
1083 | n06-123-09.png
1084 | n06-133-07.png
1085 | n02-004-02.png
1086 | d05-013-05.png
1087 | e06-015-04.png
1088 | p02-105-02.png
1089 | p02-115-05.png
1090 | d07-100-05.png
1091 | p02-105-07.png
1092 | p03-029-08.png
1093 | n04-114-07.png
1094 | p06-069-05.png
1095 | n04-218-09.png
1096 | m01-104-04.png
1097 | d06-025-03.png
1098 | g01-074-02.png
1099 | g01-008-06.png
1100 | p01-168-06.png
1101 | g01-037-04.png
1102 | d06-063-02.png
1103 | m01-125-06.png
1104 | f07-024a-00.png
1105 | n06-111-02.png
1106 | e06-049-07.png
1107 | d05-030-08.png
1108 | d01-052-06.png
1109 | g03-043-08.png
1110 | g01-019-08.png
1111 | n01-052-12.png
1112 | n04-114-08.png
1113 | p01-168-00.png
1114 | d07-093-06.png
1115 | n03-097-00.png
1116 | d06-100-04.png
1117 | n04-218-01.png
1118 | p01-174-01.png
1119 | m06-067-01.png
1120 | n06-111-04.png
1121 | d06-096-07.png
1122 | m02-055-09.png
1123 | m02-080-00.png
1124 | e06-021-00.png
1125 | d04-021-02.png
1126 | m01-104-06.png
1127 | m01-149-06.png
1128 | n02-054-02.png
1129 | n04-213-01.png
1130 | n04-130-00.png
1131 | n02-151-09.png
1132 | p02-135-04.png
1133 | p02-105-05.png
1134 | c04-139-04.png
1135 | f04-057-00.png
1136 | c04-134-06.png
1137 | d06-056-04.png
1138 | g04-052-03.png
1139 | f04-032-03.png
1140 | f04-039-02.png
1141 | p06-030-03.png
1142 | f07-084b-03.png
1143 | p02-000-04.png
1144 | f07-021b-08.png
1145 | g02-059-04.png
1146 | n03-097-06.png
1147 | n06-100-07.png
1148 | p03-040-08.png
1149 | d06-107-08.png
1150 | g02-062-08.png
1151 | d01-098-07.png
1152 | n04-100-06.png
1153 | p03-023-03.png
1154 | n04-149-04.png
1155 | n02-157-08.png
1156 | p03-047-03.png
1157 | f07-019a-07.png
1158 | g04-072-05.png
1159 | n03-038-04.png
1160 | n04-163-02.png
1161 | m04-072-08.png
1162 | f04-074-01.png
1163 | m04-078-00.png
1164 | m03-110-04.png
1165 | p02-008-06.png
1166 | f04-035-00.png
1167 | c06-011-00.png
1168 | p03-029-06.png
1169 | m03-110-07.png
1170 | f04-079-10.png
1171 | f07-019b-05.png
1172 | e06-070-09.png
1173 | d04-131-05.png
1174 | m04-038-05.png
1175 | d04-021-07.png
1176 | p02-144-08.png
1177 | p02-081-06.png
1178 | d06-067-03.png
1179 | n02-062-07.png
1180 | m04-138-08.png
1181 | d07-082-00.png
1182 | f07-076a-06.png
1183 | e06-010-00.png
1184 | d04-111-02.png
1185 | d01-019-00.png
1186 | d07-089-02.png
1187 | p02-069-00.png
1188 | g04-043-04.png
1189 | f07-096-06.png
1190 | m01-084-01.png
1191 | m02-072-00.png
1192 | n02-049-02.png
1193 | p02-144-02.png
1194 | d04-028-05.png
1195 | f04-061-01.png
1196 | n04-060-03.png
1197 | n04-068-06.png
1198 | m04-072-00.png
1199 | m04-107-05.png
1200 | n06-119-02.png
1201 | p01-147-10.png
1202 | d06-107-00.png
1203 | d05-030-01.png
1204 | d07-102-00.png
1205 | m04-123-07.png
1206 | g01-027-03.png
1207 | d06-076-02.png
1208 | n02-004-07.png
1209 | n01-045-03.png
1210 | d04-096-01.png
1211 | p02-101-06.png
1212 | n04-000-04.png
1213 | n02-109-04.png
1214 | d04-037-03.png
1215 | m04-113-01.png
1216 | n04-052-01.png
1217 | n04-149-05.png
1218 | c04-110-02.png
1219 | n01-045-06.png
1220 | f07-032a-00.png
1221 | g01-088-04.png
1222 | g01-039-06.png
1223 | d06-056-07.png
1224 | m01-104-01.png
1225 | g01-031-10.png
1226 | m02-080-08.png
1227 | g03-032-03.png
1228 | d06-020-07.png
1229 | f07-081a-06.png
1230 | e06-003-02.png
1231 | m04-138-01.png
1232 | d06-104-03.png
1233 | m04-131-08.png
1234 | c04-116-03.png
1235 | p03-072-01.png
1236 | d06-037-07.png
1237 | m01-110-02.png
1238 | d06-104-01.png
1239 | f07-019b-09.png
1240 | g01-043-00.png
1241 | f07-088b-05.png
1242 | e06-021-02.png
1243 | d06-063-00.png
1244 | n01-052-02.png
1245 | m03-033-00.png
1246 | g01-070-05.png
1247 | m01-121-06.png
1248 | d07-089-03.png
1249 | p02-115-03.png
1250 | n02-062-01.png
1251 | n04-052-00.png
1252 | n01-009-07.png
1253 | f04-043-00.png
1254 | p06-088-08.png
1255 | m06-048-06.png
1256 | g04-043-02.png
1257 | f07-039a-05.png
1258 | n02-127-06.png
1259 | p06-069-00.png
1260 | n06-092-00.png
1261 | n04-048-09.png
1262 | e06-015-09.png
1263 | f04-053-05.png
1264 | n03-113-09.png
1265 | f04-087-03.png
1266 | p01-147-01.png
1267 | m01-125-08.png
1268 | g04-068-07.png
1269 | n04-139-03.png
1270 | g01-031-04.png
1271 | f04-032-00.png
1272 | g01-045-07.png
1273 | f07-042a-06.png
1274 | d06-076-03.png
1275 | p03-023-04.png
1276 | d04-111-11.png
1277 | m02-095-04.png
1278 | n04-009-06.png
1279 | m02-059-01.png
1280 | d01-118-06.png
1281 | m02-055-10.png
1282 | d04-066-04.png
1283 | f07-092a-05.png
1284 | n06-100-04.png
1285 | d05-008-02.png
1286 | n04-107-08.png
1287 | m04-030-00.png
1288 | g03-040-05.png
1289 | g07-079a-11.png
1290 | m01-149-00.png
1291 | n01-000-07.png
1292 | n01-057-05.png
1293 | g01-043-04.png
1294 | p02-144-06.png
1295 | g02-062-07.png
1296 | d04-032-03.png
1297 | f07-081b-01.png
1298 | d06-072-00.png
1299 | m01-136-02.png
1300 | p02-109-04.png
1301 | d01-049-03.png
1302 | n02-054-04.png
1303 | g03-049-04.png
1304 | n01-045-05.png
1305 | p06-042-00.png
1306 | d07-093-01.png
1307 | d06-056-03.png
1308 | g04-043-03.png
1309 | p02-105-06.png
1310 | f07-069-09.png
1311 | f04-061-00.png
1312 | p06-042-07.png
1313 | f07-101b-01.png
1314 | n02-157-06.png
1315 | n04-209-04.png
1316 | g02-062-05.png
1317 | n02-009-02.png
1318 | g01-045-06.png
1319 | d07-096-09.png
1320 | c04-170-03.png
1321 | f07-019a-05.png
1322 | p02-076-07.png
1323 | m01-049-11.png
1324 | f07-069-07.png
1325 | n02-040-05.png
1326 | n03-113-02.png
1327 | n04-107-05.png
1328 | p02-008-05.png
1329 | p02-000-02.png
1330 | g01-025-09.png
1331 | g07-079a-01.png
1332 | m02-080-02.png
1333 | d04-050-03.png
1334 | n04-092-03.png
1335 | n04-075-07.png
1336 | g01-008-03.png
1337 | d04-021-06.png
1338 | g02-073-00.png
1339 | m04-093-03.png
1340 | e06-021-01.png
1341 | m06-048-05.png
1342 | n04-052-07.png
1343 | n02-109-03.png
1344 | n06-123-06.png
1345 | f04-064-07.png
1346 | f04-064-00.png
1347 | g02-059-02.png
1348 | g01-088-07.png
1349 | p03-027-01.png
1350 | d04-058-00.png
1351 | n04-092-01.png
1352 | d01-016-03.png
1353 | d04-131-02.png
1354 | e06-033-03.png
1355 | p03-080-06.png
1356 | p06-052-04.png
1357 | n04-163-00.png
1358 | n06-100-09.png
1359 | f04-074-06.png
1360 | d06-046-01.png
1361 | m01-121-08.png
1362 | n04-100-04.png
1363 | n06-111-07.png
1364 | p02-081-05.png
1365 | m04-113-05.png
1366 | n06-082-01.png
1367 | f07-042a-05.png
1368 | m06-091-06.png
1369 | f07-084a-00.png
1370 | m04-138-00.png
1371 | g01-019-02.png
1372 | g01-034-08.png
1373 | g07-079a-09.png
1374 | d05-040-02.png
1375 | g01-004-00.png
1376 | d04-089-00.png
1377 | d01-104-07.png
1378 | n06-123-05.png
1379 | d04-101-00.png
1380 | g02-059-03.png
1381 | m01-125-10.png
1382 | p02-076-09.png
1383 | g07-000b-09.png
1384 | p06-058-07.png
1385 | p02-076-06.png
1386 | f07-069-01.png
1387 | g01-034-04.png
1388 | p06-052-01.png
1389 | g01-012-01.png
1390 | g02-059-06.png
1391 | g01-019-00.png
1392 | f04-079-06.png
1393 | p02-022-05.png
1394 | m06-056-05.png
1395 | n06-140-02.png
1396 | p02-069-08.png
1397 | n06-092-02.png
1398 | d06-011-01.png
1399 | m02-112-01.png
1400 | g07-079a-10.png
1401 | d05-025-00.png
1402 | m06-056-04.png
1403 | g04-072-02.png
1404 | g01-025-04.png
1405 | d05-030-02.png
1406 | n01-031-04.png
1407 | f07-021b-00.png
1408 | m06-067-00.png
1409 | g03-064-02.png
1410 | d07-093-03.png
1411 | m01-121-00.png
1412 | f07-021a-01.png
1413 | e06-015-07.png
1414 | g03-000-02.png
1415 | m06-042-03.png
1416 | d06-046-04.png
1417 | f04-083-06.png
1418 | n06-133-05.png
1419 | m04-072-09.png
1420 | d01-104-06.png
1421 | f07-096-02.png
1422 | d06-046-05.png
1423 | m04-072-03.png
1424 | n02-151-03.png
1425 | n01-057-07.png
1426 | p03-027-02.png
1427 | m04-081-05.png
1428 | p02-109-02.png
1429 | f07-039a-02.png
1430 | n04-000-03.png
1431 | n04-163-07.png
1432 | n06-092-06.png
1433 | f04-057-09.png
1434 | m03-013-03.png
1435 | d06-107-05.png
1436 | n03-113-01.png
1437 | n06-128-00.png
1438 | n06-111-01.png
1439 | n03-106-02.png
1440 | d06-107-01.png
1441 | m06-048-00.png
1442 | n02-045-00.png
1443 | m02-087-02.png
1444 | n02-104-03.png
1445 | g07-000b-07.png
1446 | f04-061-05.png
1447 | m01-049-09.png
1448 | n01-004-04.png
1449 | g03-049-01.png
1450 | m06-098-05.png
1451 | d06-003-06.png
1452 | n01-052-00.png
1453 | p02-076-08.png
1454 | m01-110-00.png
1455 | f04-071-01.png
1456 | n04-000-00.png
1457 | n04-068-03.png
1458 | n04-092-08.png
1459 | n02-004-01.png
1460 | d04-111-03.png
1461 | f07-016-10.png
1462 | f04-071-02.png
1463 | d04-089-06.png
1464 | g04-022-06.png
1465 | m04-131-01.png
1466 | f04-083-00.png
1467 | d01-052-03.png
1468 | n01-000-05.png
1469 | d06-056-01.png
1470 | f07-019b-06.png
1471 | p02-022-07.png
1472 | d01-052-02.png
1473 | p03-012-08.png
1474 | d03-117-00.png
1475 | g01-074-08.png
1476 | n02-037-04.png
1477 | d04-053-07.png
1478 | f07-073-06.png
1479 | n03-097-05.png
1480 | d06-025-00.png
1481 | m03-114-07.png
1482 | d01-123-05.png
1483 | m01-136-00.png
1484 | n01-045-07.png
1485 | n04-092-04.png
1486 | m01-136-09.png
1487 | d07-096-01.png
1488 | n03-120-02.png
1489 | f04-057-04.png
1490 | f07-039a-01.png
1491 | m01-121-07.png
1492 | p06-069-04.png
1493 | m04-043-04.png
1494 | p03-040-03.png
1495 | p03-181-03.png
1496 | g03-049-03.png
1497 | g01-088-09.png
1498 | e06-046-00.png
1499 | f07-092b-00.png
1500 | f07-088b-00.png
1501 | g04-043-06.png
1502 | d06-111-05.png
1503 | d07-100-08.png
1504 | d06-056-00.png
1505 | p02-081-00.png
1506 | n01-020-00.png
1507 | p06-047-09.png
1508 | m04-081-02.png
1509 | g01-016-01.png
1510 | g04-048-05.png
1511 | p03-029-03.png
1512 | p01-174-02.png
1513 | n06-074-03.png
1514 | p02-144-10.png
1515 | n01-031-07.png
1516 | f07-024b-10.png
1517 | p06-069-06.png
1518 | f07-081b-05.png
1519 | m01-079-06.png
1520 | n06-111-05.png
1521 | n04-114-04.png
1522 | n03-064-01.png
1523 | g02-062-01.png
1524 | f04-039-08.png
1525 | m03-020-03.png
1526 | d01-019-03.png
1527 | e06-000-01.png
1528 | g04-072-08.png
1529 | f07-000-08.png
1530 | m01-079-03.png
1531 | n02-109-07.png
1532 | p03-163-05.png
1533 | g01-016-03.png
1534 | d04-053-04.png
1535 | n02-045-08.png
1536 | p01-155-01.png
1537 | m02-048-09.png
1538 | f07-016-01.png
1539 | g04-048-00.png
1540 | n03-097-04.png
1541 | g03-049-00.png
1542 | m04-231-00.png
1543 | e01-055-08.png
1544 | f04-079-07.png
1545 | f07-006-05.png
1546 | n02-028-02.png
1547 | d06-003-01.png
1548 | n04-048-04.png
1549 | f04-032-01.png
1550 | f04-068-03.png
1551 | n02-114-02.png
1552 | p06-042-09.png
1553 | f07-021a-04.png
1554 | e06-003-06.png
1555 | f07-024b-03.png
1556 | m01-084-06.png
1557 | d04-016-05.png
1558 | f04-083-09.png
1559 | n03-103-04.png
1560 | p06-058-03.png
1561 | n03-103-08.png
1562 | p02-090-08.png
1563 | g02-073-02.png
1564 | p02-109-01.png
1565 | f07-101b-04.png
1566 | m01-095-00.png
1567 | d06-067-07.png
1568 | g07-079a-04.png
1569 | e06-021-04.png
1570 | m01-095-03.png
1571 | f07-084a-01.png
1572 | e06-010-02.png
1573 | f04-061-02.png
1574 | c04-134-05.png
1575 | f07-016-08.png
1576 | m01-104-02.png
1577 | m04-078-06.png
1578 | n04-092-05.png
1579 | m01-121-05.png
1580 | d06-046-02.png
1581 | n01-004-03.png
1582 | m03-110-00.png
1583 | p02-022-02.png
1584 | g07-000b-06.png
1585 | f04-074-05.png
1586 | p03-181-00.png
1587 | n04-139-04.png
1588 | m03-033-07.png
1589 | p02-150-08.png
1590 | c06-011-05.png
1591 | m04-238-03.png
1592 | n03-120-07.png
1593 | d01-019-04.png
1594 | p01-155-00.png
1595 | p03-033-05.png
1596 | n06-100-08.png
1597 | p01-168-05.png
1598 | n01-036-05.png
1599 | c04-139-01.png
1600 | g01-008-01.png
1601 | e06-003-01.png
1602 | n04-114-06.png
1603 | p02-022-08.png
1604 | n01-052-04.png
1605 | g01-027-05.png
1606 | d04-012-06.png
1607 | p01-155-05.png
1608 | g02-062-06.png
1609 | d05-008-07.png
1610 | e06-053-01.png
1611 | m06-056-01.png
1612 | e06-026-08.png
1613 | n01-009-08.png
1614 | p03-012-05.png
1615 | f07-096-03.png
1616 | n06-123-07.png
1617 | d06-020-03.png
1618 | n02-049-05.png
1619 | n06-111-06.png
1620 | m03-006-02.png
1621 | f04-064-03.png
1622 | d06-025-05.png
1623 | d05-021-08.png
1624 | f07-021a-00.png
1625 | d07-093-05.png
1626 | n03-103-00.png
1627 | f07-073-04.png
1628 | c04-144-03.png
1629 | g03-040-07.png
1630 | c04-116-02.png
1631 | d06-041-06.png
1632 | m02-095-00.png
1633 | n06-140-03.png
1634 | f04-071-03.png
1635 | g01-088-05.png
1636 | m02-109-01.png
1637 | p02-027-00.png
1638 | f07-013-02.png
1639 | e06-003-04.png
1640 | d07-100-01.png
1641 | d04-047-07.png
1642 | p02-069-06.png
1643 | n02-109-00.png
1644 | f07-013-00.png
1645 | p03-189-00.png
1646 | d06-027-07.png
1647 | f04-035-01.png
1648 | f07-081a-04.png
1649 | m04-123-06.png
1650 | n04-156-06.png
1651 | m01-104-00.png
1652 | g03-043-10.png
1653 | p02-144-09.png
1654 | p06-042-08.png
1655 | g01-012-05.png
1656 | e06-033-05.png
1657 | m01-131-04.png
1658 | p03-012-01.png
1659 | d06-060-00.png
1660 | d06-027-00.png
1661 | p06-030-05.png
1662 | d03-117-03.png
1663 | p06-052-07.png
1664 | p01-168-03.png
1665 | m04-038-01.png
1666 | f07-081a-00.png
1667 | d01-016-00.png
1668 | n03-126-02.png
1669 | m03-033-02.png
1670 | n02-033-07.png
1671 | n06-082-07.png
1672 | p06-058-06.png
1673 | c06-011-02.png
1674 | g01-067-01.png
1675 | p06-104-09.png
1676 | d01-118-00.png
1677 | n02-037-02.png
1678 | d01-019-01.png
1679 | m01-125-04.png
1680 | g04-048-03.png
1681 | f07-021a-03.png
1682 | m04-030-01.png
1683 | e06-033-00.png
1684 | p06-047-08.png
1685 | d06-086-08.png
1686 | d01-080-07.png
1687 | p02-008-08.png
1688 | d04-062-04.png
1689 | n02-045-01.png
1690 | f04-032-07.png
1691 | p02-076-00.png
1692 | f07-024a-02.png
1693 | n04-084-01.png
1694 | n02-157-07.png
1695 | m06-091-03.png
1696 | p03-033-01.png
1697 | d01-123-02.png
1698 | d06-037-00.png
1699 | d05-030-07.png
1700 | d01-016-02.png
1701 | n02-062-06.png
1702 | f07-084b-07.png
1703 | f07-092b-04.png
1704 | d07-100-00.png
1705 | g03-004-00.png
1706 | m02-080-03.png
1707 | g02-065-01.png
1708 | f07-084b-08.png
1709 | p03-072-03.png
1710 | p01-147-06.png
1711 | f07-081a-10.png
1712 | d04-101-05.png
1713 | g02-065-07.png
1714 | m04-072-02.png
1715 | p06-096-04.png
1716 | g01-008-02.png
1717 | d06-060-04.png
1718 | d04-066-08.png
1719 | f04-039-01.png
1720 | n01-031-00.png
1721 | g01-025-00.png
1722 | m04-131-06.png
1723 | n02-127-03.png
1724 | p03-027-03.png
1725 | f07-024a-08.png
1726 | n02-040-07.png
1727 | f07-081b-02.png
1728 | n02-045-05.png
1729 | n04-202-07.png
1730 | d06-020-05.png
1731 | g02-065-00.png
1732 | m02-055-05.png
1733 | d04-131-04.png
1734 | n04-139-05.png
1735 | g01-074-00.png
1736 | p02-069-01.png
1737 | m04-100-03.png
1738 | d06-003-02.png
1739 | c04-134-01.png
1740 | p03-040-00.png
1741 | m02-095-02.png
1742 | n02-040-00.png
1743 | p02-101-02.png
1744 | p02-022-04.png
1745 | e06-003-00.png
1746 | p01-147-04.png
1747 | p06-047-07.png
1748 | n04-068-00.png
1749 | m06-098-04.png
1750 | g01-067-06.png
1751 | n03-038-03.png
1752 | p06-096-02.png
1753 | d05-013-02.png
1754 | d06-086-05.png
1755 | d04-016-08.png
1756 | m03-110-02.png
1757 | d06-041-04.png
1758 | f07-032a-04.png
1759 | p03-173-06.png
1760 | g04-068-00.png
1761 | d05-025-04.png
1762 | g01-070-06.png
1763 | f07-084b-00.png
1764 | n03-113-04.png
1765 | n01-052-05.png
1766 | n02-049-03.png
1767 | n03-038-05.png
1768 | d07-102-02.png
1769 | f07-002-01.png
1770 | f07-021a-02.png
1771 | f07-028a-06.png
1772 | f04-083-05.png
1773 | n04-048-06.png
1774 | d06-063-01.png
1775 | d04-012-03.png
1776 | f07-081a-01.png
1777 | m04-231-05.png
1778 | d05-013-03.png
1779 | d06-072-09.png
1780 | d01-080-04.png
1781 | f04-039-03.png
1782 | m06-091-05.png
1783 | e06-010-03.png
1784 | p06-088-01.png
1785 | m06-098-02.png
1786 | n06-140-01.png
1787 | n02-040-04.png
1788 | d07-085-06.png
1789 | g01-070-02.png
1790 | d06-072-06.png
1791 | p06-088-03.png
1792 | g01-008-00.png
1793 | c04-170-04.png
1794 | f04-032-08.png
1795 | m01-110-09.png
1796 | n02-045-07.png
1797 | g03-049-05.png
1798 | g01-045-08.png
1799 | f04-083-02.png
1800 | m06-056-00.png
1801 | m04-072-10.png
1802 | d04-058-02.png
1803 | e06-030-02.png
1804 | n06-100-00.png
1805 | n06-111-03.png
1806 | e06-000-05.png
1807 | m04-113-04.png
1808 | p06-104-08.png
1809 | d07-085-07.png
1810 | f07-073-01.png
1811 | e01-055-07.png
1812 | f04-083-03.png
1813 | e06-026-03.png
1814 | d04-058-06.png
1815 | f07-024a-05.png
1816 | p02-069-02.png
1817 | f04-074-11.png
1818 | n06-140-04.png
1819 | c06-011-03.png
1820 | g01-019-06.png
1821 | m01-110-11.png
1822 | n03-106-05.png
1823 | d01-080-06.png
1824 | g01-088-06.png
1825 | d01-118-02.png
1826 | g01-039-07.png
1827 | p03-040-01.png
1828 | d01-080-02.png
1829 | g01-027-00.png
1830 | m02-066-04.png
1831 | n02-033-03.png
1832 | m02-095-05.png
1833 | g07-079a-02.png
1834 | f07-073-00.png
1835 | m04-246-02.png
1836 | n03-103-06.png
1837 | p02-115-02.png
1838 | p01-174-04.png
1839 | f07-084b-05.png
1840 | p02-027-01.png
1841 | d04-066-02.png
1842 | f07-013-03.png
1843 | d04-032-01.png
1844 | m01-131-00.png
1845 | f07-006-06.png
1846 | d04-111-00.png
1847 | g03-000-06.png
1848 | g07-000b-03.png
1849 | f04-053-02.png
1850 | p02-081-03.png
1851 | p02-022-03.png
1852 | f07-088a-06.png
1853 | g01-027-01.png
1854 | f04-032-06.png
1855 | n04-068-07.png
1856 | m01-084-07.png
1857 | n06-082-00.png
1858 | d04-050-05.png
1859 | g01-034-07.png
1860 | n04-114-05.png
1861 | g01-016-00.png
1862 | g02-073-04.png
1863 | g01-034-02.png
1864 | d07-085-02.png
1865 | f07-032a-06.png
1866 | d06-107-02.png
1867 | m01-110-04.png
1868 | g01-031-00.png
1869 | f04-039-05.png
1870 | f07-006-02.png
1871 | g02-062-09.png
1872 | g04-048-02.png
1873 | n02-109-06.png
1874 | m06-083-04.png
1875 | n03-126-01.png
1876 | n02-037-08.png
1877 | d04-037-05.png
1878 | g03-052-08.png
1879 | d06-111-01.png
1880 | f04-064-06.png
1881 | f07-021a-06.png
1882 | m04-138-05.png
1883 | d06-100-05.png
1884 | e06-033-01.png
1885 | n04-213-04.png
1886 | n04-218-06.png
1887 | n04-075-03.png
1888 | p02-081-04.png
1889 | f04-079-04.png
1890 | d06-011-05.png
1891 | g01-019-07.png
1892 | d04-021-01.png
1893 | d05-021-05.png
1894 | n02-151-04.png
1895 | m06-091-00.png
1896 | n02-120-03.png
1897 | n01-057-08.png
1898 | n04-163-03.png
1899 | f07-069-00.png
1900 | d04-089-07.png
1901 | g01-034-06.png
1902 | f07-024b-00.png
1903 | n02-009-05.png
1904 | n06-123-04.png
1905 | f07-019b-10.png
1906 | n02-009-06.png
1907 | m04-078-07.png
1908 | g04-043-05.png
1909 | e01-055-01.png
1910 | d06-096-00.png
1911 | f07-016-09.png
1912 | f07-032a-05.png
1913 | f07-081b-04.png
1914 | e01-055-05.png
1915 | n02-157-00.png
1916 | n04-156-07.png
1917 | d05-013-04.png
1918 | n03-106-01.png
1919 | p01-174-08.png
1920 | f04-057-06.png
1921 | g03-052-10.png
1922 | d06-072-10.png
1923 | d04-053-08.png
1924 | f07-019b-08.png
1925 | f07-028a-02.png
1926 | d06-025-07.png
1927 | g01-031-08.png
1928 | f04-071-07.png
1929 | f07-096-04.png
1930 | f07-042a-07.png
1931 | f07-006-03.png
1932 | f07-081a-03.png
1933 | p03-023-00.png
1934 | m04-078-02.png
1935 | c04-150-03.png
1936 | g01-034-03.png
1937 | m06-031-05.png
1938 | n02-009-01.png
1939 | f04-079-01.png
1940 | m03-110-06.png
1941 | p03-012-09.png
1942 | g03-032-02.png
1943 | d05-040-04.png
1944 | n04-009-05.png
1945 | d04-096-06.png
1946 | f07-081a-08.png
1947 | m02-048-02.png
1948 | e06-033-09.png
1949 | p06-104-00.png
1950 | g04-043-08.png
1951 | m01-110-03.png
1952 | n04-156-03.png
1953 | d07-082-07.png
1954 | n04-213-02.png
1955 | d06-041-00.png
1956 | e06-015-00.png
1957 | m04-246-06.png
1958 | p03-027-07.png
1959 | g01-088-03.png
1960 | e06-000-03.png
1961 | n04-149-06.png
1962 | n04-139-06.png
1963 | n02-127-01.png
1964 | c04-165-00.png
1965 | d04-053-01.png
1966 | d06-100-06.png
1967 | m03-006-08.png
1968 | e06-053-02.png
1969 | d05-021-03.png
1970 | g04-022-01.png
1971 | e06-033-02.png
1972 | p02-109-03.png
1973 | g01-025-07.png
1974 | d04-047-02.png
1975 | g04-068-09.png
1976 | e06-021-08.png
1977 | m06-106-06.png
1978 | f07-076a-02.png
1979 | n04-202-08.png
1980 | m01-131-01.png
1981 | m04-123-03.png
1982 | p02-069-05.png
1983 | n04-000-02.png
1984 | g01-070-03.png
1985 | n01-000-06.png
1986 | d07-096-03.png
1987 | d04-012-01.png
1988 | d04-125-01.png
1989 | g01-027-02.png
1990 | d04-012-02.png
1991 | d06-063-06.png
1992 | d06-056-08.png
1993 | d07-093-08.png
1994 | d01-049-02.png
1995 | f07-021a-07.png
1996 | m02-080-01.png
1997 | d06-104-10.png
1998 | p06-096-08.png
1999 | n02-120-05.png
2000 | d05-030-05.png
2001 | m02-048-00.png
2002 | n04-092-00.png
2003 | p02-076-02.png
2004 | d01-049-08.png
2005 | d04-047-08.png
2006 | n01-052-09.png
2007 | n04-130-02.png
2008 | n06-128-03.png
2009 | d07-096-06.png
2010 | d05-008-04.png
2011 | m04-107-08.png
2012 | n06-100-06.png
2013 | m03-013-02.png
2014 | f07-084b-02.png
2015 | g01-027-08.png
2016 | n02-054-05.png
2017 | m06-098-01.png
2018 | f07-084a-04.png
2019 | m06-106-03.png
2020 | n03-066-01.png
2021 | n03-126-03.png
2022 | n06-074-00.png
2023 | n04-130-04.png
2024 | m02-059-04.png
2025 | m02-059-05.png
2026 | f04-079-08.png
2027 | n02-154-00.png
2028 | n06-074-04.png
2029 | f07-009-06.png
2030 | c04-139-05.png
2031 | d06-020-00.png
2032 | f07-019a-08.png
2033 | p01-174-00.png
2034 | g07-079a-05.png
2035 | c04-116-01.png
2036 | d04-066-00.png
2037 | p02-081-02.png
2038 | n03-126-04.png
2039 | m02-072-03.png
2040 | d06-076-04.png
2041 | e06-003-10.png
2042 | p02-022-01.png
2043 | d01-085-03.png
2044 | g01-039-09.png
2045 | f07-039a-00.png
2046 | g01-004-02.png
2047 | p02-069-09.png
2048 | d06-113-02.png
2049 | f07-081b-00.png
2050 | f07-019a-03.png
2051 | g01-045-01.png
2052 | g03-004-05.png
2053 | n01-052-06.png
2054 | n04-213-06.png
2055 | d05-008-05.png
2056 | g03-000-05.png
2057 | d03-117-04.png
2058 | d06-072-01.png
2059 | d07-082-06.png
2060 | f04-035-03.png
2061 | g03-064-06.png
2062 | e06-000-06.png
2063 | m01-125-03.png
2064 | p06-104-02.png
2065 | d04-053-06.png
2066 | d07-096-08.png
2067 | g02-062-00.png
2068 | m02-066-03.png
2069 | m06-076-01.png
2070 | n02-037-07.png
2071 | f07-021b-01.png
2072 | p02-139-02.png
2073 | g01-043-05.png
2074 | g07-000b-04.png
2075 | n02-033-04.png
2076 | e06-030-05.png
2077 | f07-073-03.png
2078 | m02-080-06.png
2079 | d06-063-03.png
2080 | d05-021-01.png
2081 | d06-067-08.png
2082 | d06-025-06.png
2083 | d04-101-01.png
2084 | d06-046-07.png
2085 | n03-066-07.png
2086 | n01-045-00.png
2087 | m01-049-00.png
2088 | f07-028a-01.png
2089 | n04-100-03.png
2090 | d07-102-07.png
2091 | f07-073-05.png
2092 | e06-026-04.png
2093 | n01-020-04.png
2094 | d04-032-00.png
2095 | n02-045-06.png
2096 | f07-000-07.png
2097 | p03-029-02.png
2098 | n02-009-03.png
2099 | f07-016-06.png
2100 | m01-110-06.png
2101 | d05-008-01.png
2102 | f07-000b-01.png
2103 | p02-090-06.png
2104 | n02-040-06.png
2105 | d05-008-06.png
2106 | m01-049-10.png
2107 | d06-076-01.png
2108 | p03-163-07.png
2109 | n04-149-03.png
2110 | f07-006-04.png
2111 | c04-165-07.png
2112 | p02-081-01.png
2113 | d06-025-02.png
2114 | m01-049-01.png
2115 | m02-109-00.png
2116 | n04-075-00.png
2117 | e06-015-06.png
2118 | p02-150-06.png
2119 | n02-004-04.png
2120 | f07-006-01.png
2121 | n03-120-03.png
2122 | p02-008-00.png
2123 | n01-045-08.png
2124 | d06-072-08.png
2125 | d06-041-07.png
2126 | f07-013-06.png
2127 | m06-067-02.png
2128 | n03-120-01.png
2129 | m04-072-07.png
2130 | m04-107-04.png
2131 | f04-064-02.png
2132 | n04-209-01.png
2133 | m01-131-02.png
2134 | g01-070-04.png
2135 | m04-113-03.png
2136 | d05-021-07.png
2137 | d06-027-01.png
2138 | d07-089-04.png
2139 | p02-144-11.png
2140 | p03-012-02.png
2141 | n04-209-07.png
2142 | d04-016-03.png
2143 | p06-096-05.png
2144 | f07-000-00.png
2145 | n06-123-00.png
2146 | m01-110-05.png
2147 | g01-037-06.png
2148 | n01-057-00.png
2149 | f04-053-00.png
2150 | d01-080-01.png
2151 | m03-020-02.png
2152 | e06-049-09.png
2153 | p03-189-03.png
2154 | d07-100-07.png
2155 | c04-144-00.png
2156 | f04-068-07.png
2157 | d05-013-08.png
2158 | n04-218-05.png
2159 | d06-011-03.png
2160 | g04-068-05.png
2161 | n03-106-00.png
2162 | n04-084-06.png
2163 | p01-168-04.png
2164 | p06-030-00.png
2165 | p01-147-03.png
2166 | d06-060-02.png
2167 | p02-081-08.png
2168 | m03-013-01.png
2169 | c06-011-07.png
2170 | d01-016-01.png
2171 | n02-028-07.png
2172 | f07-081a-07.png
2173 | p02-027-02.png
2174 | m04-107-09.png
2175 | c06-011-06.png
2176 | g04-068-02.png
2177 | d04-012-10.png
2178 | f07-076a-05.png
2179 | g01-067-03.png
2180 | p06-052-08.png
2181 | p06-088-05.png
2182 | f07-084b-06.png
2183 | d04-058-04.png
2184 | m02-048-04.png
2185 | g02-065-09.png
2186 | d04-016-01.png
2187 | g01-031-02.png
2188 | m06-048-03.png
2189 | f07-019a-02.png
2190 | d04-111-10.png
2191 | m04-081-06.png
2192 | n02-151-05.png
2193 | n02-104-06.png
2194 | n03-120-08.png
2195 | p03-173-00.png
2196 | p03-072-06.png
2197 | n02-157-02.png
2198 | m01-104-03.png
2199 | m06-083-07.png
2200 | n02-120-04.png
2201 | f07-069-02.png
2202 | p02-115-00.png
2203 | d07-096-00.png
2204 | f07-013-08.png
2205 | d06-086-09.png
2206 | e06-026-02.png
2207 | n06-123-01.png
2208 | f04-071-00.png
2209 | n02-062-02.png
2210 | p01-174-06.png
2211 | d07-085-03.png
2212 | m04-100-04.png
2213 | m03-013-06.png
2214 | n02-151-07.png
2215 | p06-088-09.png
2216 | n02-109-02.png
2217 | d01-080-05.png
2218 | m06-106-08.png
2219 | m01-121-03.png
2220 | m01-125-07.png
2221 | f07-028a-04.png
2222 | m03-006-07.png
2223 | p06-058-10.png
2224 | d06-063-10.png
2225 | g03-000-08.png
2226 | f07-088b-01.png
2227 | d01-098-05.png
2228 | d04-066-03.png
2229 | p03-080-00.png
2230 | d06-104-08.png
2231 | n01-009-05.png
2232 | p06-058-04.png
2233 | d06-008-03.png
2234 | f07-092a-03.png
2235 | d06-011-04.png
2236 | d06-011-07.png
2237 | p06-030-08.png
2238 | n01-009-01.png
2239 | f04-043-07.png
2240 | m01-149-04.png
2241 | d04-047-06.png
2242 | m03-114-06.png
2243 | n04-149-00.png
2244 | p02-090-04.png
2245 | e06-070-06.png
2246 | d01-104-03.png
2247 | d06-060-09.png
2248 | n02-033-02.png
2249 | f04-074-10.png
2250 | d01-118-05.png
2251 | e06-049-02.png
2252 | n04-075-04.png
2253 | p06-069-08.png
2254 | m02-095-09.png
2255 | n02-154-06.png
2256 | p02-109-05.png
2257 | n02-037-01.png
2258 | d04-028-00.png
2259 | d06-041-05.png
2260 | d05-013-00.png
2261 | g01-019-04.png
2262 | n03-106-09.png
2263 | g03-000-09.png
2264 | d07-102-04.png
2265 | m04-093-05.png
2266 | m06-106-01.png
2267 | m01-060-07.png
2268 | f04-064-04.png
2269 | g01-037-05.png
2270 | n04-084-00.png
2271 | p02-027-03.png
2272 | d06-104-07.png
2273 | d05-021-00.png
2274 | n03-113-06.png
2275 | d06-086-06.png
2276 | n04-213-00.png
2277 | c04-165-06.png
2278 | g02-065-05.png
2279 | n02-151-06.png
2280 | n04-009-02.png
2281 | m03-114-04.png
2282 | d04-101-04.png
2283 | m01-110-10.png
2284 | g07-079a-07.png
2285 | n04-163-05.png
2286 | n06-140-05.png
2287 | p06-030-07.png
2288 | f07-009-05.png
2289 | n04-130-01.png
2290 | c04-150-02.png
2291 | m03-118-03.png
2292 | n03-097-07.png
2293 | m04-113-07.png
2294 | d04-021-00.png
2295 | d03-117-07.png
2296 | m06-106-00.png
2297 | p02-109-08.png
2298 | d06-104-00.png
2299 | d04-021-05.png
2300 | d04-058-05.png
2301 | f07-088b-03.png
2302 | n04-075-06.png
2303 | m04-107-01.png
2304 | n01-000-00.png
2305 | m02-109-05.png
2306 | n02-104-04.png
2307 | d03-117-08.png
2308 | p03-040-02.png
2309 | f07-000b-03.png
2310 | f07-088a-09.png
2311 | p02-150-04.png
2312 | f04-079-02.png
2313 | f07-076a-03.png
2314 | m02-087-07.png
2315 | f07-032a-01.png
2316 | d05-008-00.png
2317 | d04-101-03.png
2318 | m02-066-00.png
2319 | m02-048-07.png
2320 | e06-070-08.png
2321 | m02-087-04.png
2322 | g01-070-09.png
2323 | g03-052-07.png
2324 | p02-008-09.png
2325 | d06-046-00.png
2326 | m01-131-03.png
2327 | m06-076-02.png
2328 | p03-189-02.png
2329 | m01-084-05.png
2330 | m06-042-00.png
2331 | d04-047-00.png
2332 | n03-097-08.png
2333 | p02-150-03.png
2334 | n03-097-03.png
2335 | p06-058-08.png
2336 | f04-074-00.png
2337 | m03-033-06.png
2338 | f07-000b-02.png
2339 | m02-112-02.png
2340 | f07-046a-04.png
2341 | n03-066-00.png
2342 | p03-181-09.png
2343 | c04-110-00.png
2344 | g01-074-06.png
2345 | m02-066-01.png
2346 | n06-119-06.png
2347 | m06-042-04.png
2348 | g03-032-06.png
2349 | n03-066-02.png
2350 | f07-000-05.png
2351 | g03-000-04.png
2352 | m06-106-04.png
2353 | n04-000-01.png
2354 | p03-029-04.png
2355 | n04-163-01.png
2356 | n06-128-06.png
2357 | m03-013-00.png
2358 | m01-079-02.png
2359 | n04-100-02.png
2360 | p02-090-00.png
2361 | d06-072-07.png
2362 | f07-016-00.png
2363 | p06-088-04.png
2364 | e06-030-09.png
2365 | m04-138-07.png
2366 | p02-081-09.png
2367 | d04-086-05.png
2368 | g01-012-02.png
2369 | c04-144-05.png
2370 | d06-096-03.png
2371 | g03-004-02.png
2372 | p03-189-01.png
2373 | m01-049-08.png
2374 | n01-004-05.png
2375 | f07-084b-04.png
2376 | p06-047-01.png
2377 | m06-031-06.png
2378 | d06-027-06.png
2379 | f04-035-04.png
2380 | m06-067-04.png
2381 | d05-030-03.png
2382 | c04-165-08.png
2383 | d04-012-05.png
2384 | d07-102-03.png
2385 | f07-002-08.png
2386 | m04-043-00.png
2387 | n02-049-01.png
2388 | f07-032a-03.png
2389 | d06-008-02.png
2390 | m01-084-04.png
2391 | c04-150-06.png
2392 | n03-038-00.png
2393 | m03-118-02.png
2394 | p01-155-03.png
2395 | f07-042a-01.png
2396 | m02-069-07.png
2397 | p02-115-01.png
2398 | p02-139-01.png
2399 | p06-096-06.png
2400 | g04-043-00.png
2401 | f07-009-00.png
2402 | n02-154-01.png
2403 | m02-080-05.png
2404 | d06-100-02.png
2405 | m02-072-02.png
2406 | p02-144-04.png
2407 | p02-008-10.png
2408 | p03-163-06.png
2409 | g03-043-05.png
2410 | f07-042a-02.png
2411 | d05-021-02.png
2412 | m01-121-01.png
2413 | n04-048-01.png
2414 | n04-107-02.png
2415 | m04-093-09.png
2416 | n04-209-03.png
2417 | g01-043-02.png
2418 | e06-030-01.png
2419 | m04-100-07.png
2420 | g01-045-03.png
2421 | n02-154-04.png
2422 | d06-063-08.png
2423 | g01-025-06.png
2424 | n03-113-05.png
2425 | p02-139-00.png
2426 | m01-095-02.png
2427 | d04-058-01.png
2428 | p06-058-00.png
2429 | n02-028-05.png
2430 | n04-163-06.png
2431 | f07-000-03.png
2432 | p03-163-03.png
2433 | d04-066-05.png
2434 | m02-072-04.png
2435 | g04-022-02.png
2436 | f04-074-03.png
2437 | n03-066-05.png
2438 | d04-012-00.png
2439 | f07-101b-02.png
2440 | m06-067-03.png
2441 | n04-060-04.png
2442 | n06-092-05.png
2443 | p02-090-05.png
2444 | m01-049-06.png
2445 | d06-107-10.png
2446 | e06-026-06.png
2447 | m06-098-03.png
2448 | d01-104-02.png
2449 | n02-114-07.png
2450 | d07-089-00.png
2451 | p02-109-07.png
2452 | f07-028a-05.png
2453 | n06-092-04.png
2454 | m02-087-05.png
2455 | d01-104-00.png
2456 | f07-092b-02.png
2457 | m04-093-07.png
2458 | n04-100-05.png
2459 | f07-092b-06.png
2460 | n02-037-05.png
2461 | n02-114-05.png
2462 | f07-076a-08.png
2463 | g01-037-07.png
2464 | n04-209-00.png
2465 | d06-008-06.png
2466 | p02-139-04.png
2467 | g01-074-01.png
2468 | d07-093-02.png
2469 | m04-078-04.png
2470 | n02-028-04.png
2471 | n06-082-05.png
2472 | p03-047-00.png
2473 | d06-003-00.png
2474 | f07-024b-06.png
2475 | f04-061-04.png
2476 | p03-163-02.png
2477 | d04-028-02.png
2478 | m02-055-07.png
2479 | f04-057-02.png
2480 | d06-113-03.png
2481 | n03-103-02.png
2482 | n04-107-00.png
2483 | e06-070-05.png
2484 | n04-100-01.png
2485 | d04-111-04.png
2486 | d04-028-06.png
2487 | n04-009-01.png
2488 | e06-000-00.png
2489 | g01-012-00.png
2490 | p02-105-03.png
2491 | f07-000-02.png
2492 | n02-054-00.png
2493 | n02-004-03.png
2494 | p01-168-07.png
2495 | m06-031-02.png
2496 | d06-008-00.png
2497 | d06-056-02.png
2498 | m01-125-01.png
2499 | n01-004-06.png
2500 | p03-012-06.png
2501 | f07-016-03.png
2502 | f07-042a-04.png
2503 | m03-020-04.png
2504 | g03-043-09.png
2505 | n01-031-03.png
2506 | d04-089-03.png
2507 | n04-068-02.png
2508 | m03-114-05.png
2509 | m04-231-01.png
2510 | d06-096-04.png
2511 | p03-181-01.png
2512 | f04-032-02.png
2513 | n04-052-08.png
2514 | f07-021b-07.png
2515 | d01-052-00.png
2516 | d05-021-04.png
2517 | m04-072-01.png
2518 | n04-000-05.png
2519 | m01-060-02.png
2520 | f07-013-04.png
2521 | p06-096-01.png
2522 | f07-069-03.png
2523 | m04-078-03.png
2524 | n02-114-00.png
2525 | f04-043-03.png
2526 | g01-074-05.png
2527 | m06-091-01.png
2528 | p06-069-10.png
2529 | p03-040-05.png
2530 | c04-144-07.png
2531 | m03-006-01.png
2532 | p01-155-02.png
2533 | m03-013-04.png
2534 | g04-048-01.png
2535 | m01-136-01.png
2536 | f07-096-00.png
2537 | g01-027-06.png
2538 | m01-060-04.png
2539 | p01-168-01.png
2540 | p02-135-05.png
2541 | e06-049-01.png
2542 | p02-000-05.png
2543 | m04-123-10.png
2544 | m04-107-00.png
2545 | d04-037-04.png
2546 | d05-013-01.png
2547 | d06-020-04.png
2548 | m02-109-04.png
2549 | n02-004-00.png
2550 | n02-009-00.png
2551 | c04-144-06.png
2552 | p06-042-04.png
2553 | p01-147-08.png
2554 | f07-092b-01.png
2555 | f07-000-04.png
2556 | e06-010-07.png
2557 | d04-047-03.png
2558 | f04-071-06.png
2559 | d04-032-05.png
2560 | n02-114-04.png
2561 | f07-073-09.png
2562 | f04-035-02.png
2563 | m02-069-03.png
2564 | m04-107-07.png
2565 | p03-033-00.png
2566 | p02-090-01.png
2567 | m04-138-06.png
2568 | m04-093-04.png
2569 | g03-043-00.png
2570 | d04-032-09.png
2571 | g03-043-07.png
2572 | n06-082-06.png
2573 | d05-040-01.png
2574 | g01-088-00.png
2575 | n06-119-01.png
2576 | d07-082-08.png
2577 | m02-048-03.png
2578 | m02-095-07.png
2579 | f07-021b-04.png
2580 | g03-032-00.png
2581 | m03-114-03.png
2582 | d06-072-03.png
2583 | d06-107-09.png
2584 | d07-102-05.png
2585 | g04-052-02.png
2586 | m01-079-01.png
2587 | f04-071-08.png
2588 | d06-086-03.png
2589 | f04-032-09.png
2590 | g01-004-04.png
2591 | p02-150-05.png
2592 | g03-000-07.png
2593 | n02-104-02.png
2594 | r03-053-00.png
2595 | g03-049-02.png
2596 | g03-043-01.png
2597 | m03-114-09.png
2598 | g01-043-06.png
2599 | g04-052-00.png
2600 | m06-056-03.png
2601 | n01-020-08.png
2602 | n06-133-02.png
2603 | p02-135-03.png
2604 | f04-083-07.png
2605 | d01-049-04.png
2606 | m02-109-08.png
2607 | m02-087-01.png
2608 | p01-155-09.png
2609 | f07-024b-02.png
2610 | m02-048-01.png
2611 | d06-067-06.png
2612 | m03-114-00.png
2613 | n02-127-00.png
2614 | d06-037-06.png
2615 | n04-202-05.png
2616 | n06-092-08.png
2617 | d04-096-03.png
2618 | n04-084-02.png
2619 | e06-030-08.png
2620 | p03-040-06.png
2621 | d01-049-00.png
2622 | m03-118-01.png
2623 | m02-069-02.png
2624 | d04-028-03.png
2625 | d06-003-04.png
2626 | d07-089-08.png
2627 | f07-092a-00.png
2628 | m04-138-02.png
2629 | f07-019b-00.png
2630 | m04-093-06.png
2631 | d01-118-01.png
2632 | d04-131-06.png
2633 | d04-111-01.png
2634 | f07-028a-03.png
2635 | d04-096-04.png
2636 | m03-020-05.png
2637 | f07-088a-00.png
2638 | f07-092a-01.png
2639 | m06-083-05.png
2640 | f07-046a-00.png
2641 | g01-037-09.png
2642 | n01-052-03.png
2643 | f07-084a-07.png
2644 | d04-086-01.png
2645 | d06-067-04.png
2646 | d06-096-08.png
2647 | m01-079-05.png
2648 | f07-084a-02.png
2649 | p03-029-05.png
2650 | d01-052-04.png
2651 | n02-062-03.png
2652 | d01-085-06.png
2653 | e06-070-04.png
2654 | p02-022-00.png
2655 | m04-246-05.png
2656 | e06-030-10.png
2657 | n01-009-04.png
2658 | n01-031-02.png
2659 | n03-097-02.png
2660 | e06-003-05.png
2661 | f04-057-08.png
2662 | c04-170-01.png
2663 | m01-049-03.png
2664 | g01-067-07.png
2665 | e06-021-06.png
2666 | f07-032a-09.png
2667 | m04-246-03.png
2668 | n04-218-07.png
2669 | d07-089-05.png
2670 | f07-019a-06.png
2671 | d01-098-02.png
2672 | m06-106-09.png
2673 | n04-048-00.png
2674 | d04-096-00.png
2675 | f07-076a-07.png
2676 | e06-049-00.png
2677 | d04-062-01.png
2678 | f07-013-10.png
2679 | d06-104-05.png
2680 | d05-030-00.png
2681 | e06-030-03.png
2682 | f04-057-01.png
2683 | p03-027-06.png
2684 | p06-047-05.png
2685 | n04-218-02.png
2686 | p02-139-03.png
2687 | p03-047-09.png
2688 | n06-133-03.png
2689 | g03-000-03.png
2690 | f07-092a-08.png
2691 | m03-033-03.png
2692 | n06-082-03.png
2693 | m01-149-02.png
2694 | d06-067-02.png
2695 | d04-125-04.png
2696 | p03-027-04.png
2697 | e06-053-04.png
2698 | e06-070-07.png
2699 | d04-062-00.png
2700 | d04-053-10.png
2701 | m01-136-05.png
2702 | g01-019-03.png
2703 | p06-104-07.png
2704 | d07-089-09.png
2705 | n02-151-08.png
2706 | f04-083-04.png
2707 | d04-096-05.png
2708 | d06-063-09.png
2709 | m04-107-03.png
2710 | p02-022-06.png
2711 | g01-067-02.png
2712 | d06-020-08.png
2713 | d04-096-02.png
2714 | f04-032-04.png
2715 | c04-134-04.png
2716 | m01-095-01.png
2717 | f04-053-03.png
2718 | p02-115-06.png
2719 | g01-019-09.png
2720 | m04-238-01.png
2721 | p02-115-07.png
2722 | d04-032-10.png
2723 | n03-064-05.png
2724 | d07-100-09.png
2725 | f07-021b-03.png
2726 | f07-009-02.png
2727 | g02-065-08.png
2728 | p03-173-04.png
2729 | d06-060-01.png
2730 | d05-013-06.png
2731 | p01-155-07.png
2732 | p03-163-04.png
2733 | p02-144-01.png
2734 | d06-086-04.png
2735 | m01-136-10.png
2736 | n06-074-02.png
2737 | p02-069-03.png
2738 | m02-112-00.png
2739 | g03-064-04.png
2740 | f07-028a-00.png
2741 | m02-112-04.png
2742 | n03-103-01.png
2743 | p06-052-03.png
2744 | f04-079-00.png
2745 | m02-087-03.png
2746 | n04-202-04.png
2747 | d04-037-06.png
2748 | m01-049-02.png
2749 | d06-076-05.png
2750 | m04-113-08.png
2751 | e06-026-07.png
2752 | g03-000-00.png
2753 | m01-095-06.png
2754 | n06-133-08.png
2755 | g01-034-05.png
2756 | m06-048-04.png
2757 | n01-031-01.png
2758 | d07-085-05.png
2759 | n02-104-00.png
2760 | g01-031-07.png
2761 | g03-040-06.png
2762 | m04-113-06.png
2763 | m03-033-01.png
2764 | n02-062-04.png
2765 | d01-104-08.png
2766 | p03-080-04.png
2767 | p06-096-09.png
2768 | f07-019b-04.png
2769 | f07-024b-08.png
2770 | m06-091-02.png
2771 | r03-053-03.png
2772 | d04-016-07.png
2773 | n04-163-08.png
2774 | m01-125-05.png
2775 | n01-036-03.png
2776 | m04-081-07.png
2777 | d07-089-01.png
2778 | f07-088a-02.png
2779 | f07-002-02.png
2780 | g02-073-01.png
2781 | m01-084-00.png
2782 | p06-042-06.png
2783 | f04-087-01.png
2784 | g07-000b-08.png
2785 | g03-004-04.png
2786 | f07-002-07.png
2787 | f04-071-09.png
2788 | d07-082-04.png
2789 | n02-033-00.png
2790 | g03-052-02.png
2791 | d04-066-01.png
2792 | n03-038-02.png
2793 | n06-133-00.png
2794 | e06-033-06.png
2795 | n04-048-05.png
2796 | g01-039-01.png
2797 | g01-043-03.png
2798 | n04-209-06.png
2799 | p01-168-02.png
2800 | m04-131-05.png
2801 | n01-000-01.png
2802 | p02-008-07.png
2803 | e06-046-02.png
2804 | f07-046a-09.png
2805 | g03-043-03.png
2806 | p06-052-05.png
2807 | f04-043-01.png
2808 | n04-048-08.png
2809 | f07-042a-03.png
2810 | p02-135-08.png
2811 | n03-106-04.png
2812 | p06-042-02.png
2813 | d06-076-00.png
2814 | f07-084b-01.png
2815 | f07-039a-04.png
2816 | m04-081-03.png
2817 | n01-057-09.png
2818 | g01-039-04.png
2819 | p01-147-07.png
2820 | p06-042-01.png
2821 | m02-055-02.png
2822 | c04-165-03.png
2823 | n06-123-10.png
2824 | n04-139-02.png
2825 | m02-055-06.png
2826 | n02-028-03.png
2827 | p06-042-10.png
2828 | d04-028-01.png
2829 | m03-114-02.png
2830 | p06-104-06.png
2831 | f07-046a-06.png
2832 | n02-033-06.png
2833 | e06-015-05.png
2834 | f07-009-03.png
2835 | d06-003-05.png
2836 | f07-092a-04.png
2837 | g01-067-05.png
2838 | f07-092a-02.png
2839 | g07-079a-06.png
2840 | p02-150-07.png
2841 | f07-076a-10.png
2842 | m06-091-04.png
2843 | c04-116-00.png
2844 | f07-021b-09.png
2845 | m04-238-02.png
2846 | m02-055-03.png
2847 | d06-011-09.png
2848 | f07-088a-08.png
2849 | g01-019-05.png
2850 | m06-048-02.png
2851 | f07-002-04.png
2852 | n06-123-03.png
2853 | f07-076a-00.png
2854 | g04-052-04.png
2855 | n04-048-02.png
2856 | f07-019a-04.png
2857 | n02-120-00.png
2858 | f07-088a-05.png
2859 | p02-115-08.png
2860 | e06-030-00.png
2861 | m03-110-05.png
2862 | d04-021-03.png
2863 | n02-120-07.png
2864 | p02-000-03.png
2865 | p03-181-07.png
2866 | n06-128-02.png
2867 | n06-119-00.png
2868 | p06-052-06.png
2869 | f07-000b-00.png
2870 | p02-076-03.png
2871 | d06-111-06.png
2872 | f04-068-05.png
2873 | n06-082-02.png
2874 | m04-231-06.png
2875 | m01-060-05.png
2876 | m01-060-03.png
2877 | p06-030-01.png
2878 | g03-052-09.png
2879 | d07-085-04.png
2880 | n04-130-03.png
2881 | n02-028-08.png
2882 | f07-019b-03.png
2883 | d01-123-04.png
2884 | n03-120-06.png
2885 | g04-068-06.png
2886 | m03-006-03.png
2887 | g04-072-06.png
2888 | g07-079a-00.png
2889 | e06-046-04.png
2890 | g01-016-02.png
2891 | d06-056-05.png
2892 | n04-092-06.png
2893 | n04-075-05.png
2894 | f04-079-05.png
2895 | m02-072-06.png
2896 | f07-019b-02.png
2897 | n01-036-04.png
2898 | m01-125-00.png
2899 | n04-060-02.png
2900 | n06-128-04.png
2901 | c04-134-02.png
2902 | n04-114-03.png
2903 | f04-074-09.png
2904 | m06-048-07.png
2905 | p03-181-08.png
2906 | p06-096-10.png
2907 | d06-037-01.png
2908 | e06-000-04.png
2909 | f04-074-08.png
2910 | n04-218-03.png
2911 | d04-125-02.png
2912 | n03-106-11.png
2913 | d06-113-04.png
2914 | m04-043-02.png
2915 | d01-104-01.png
2916 |
--------------------------------------------------------------------------------
/iam/train.gc:
--------------------------------------------------------------------------------
1 | a01-000u.png
2 | a01-000x.png
3 | a01-003.png
4 | a01-003u.png
5 | a01-003x.png
6 | a01-007.png
7 | a01-007u.png
8 | a01-007x.png
9 | a01-011.png
10 | a01-011u.png
11 | a01-011x.png
12 | a01-014.png
13 | a01-014u.png
14 | a01-014x.png
15 | a01-020.png
16 | a01-020u.png
17 | a01-020x.png
18 | a01-026.png
19 | a01-026u.png
20 | a01-026x.png
21 | a01-030.png
22 | a01-030u.png
23 | a01-030x.png
24 | a01-038.png
25 | a01-038x.png
26 | a01-043.png
27 | a01-043u.png
28 | a01-043x.png
29 | a01-049.png
30 | a01-049u.png
31 | a01-049x.png
32 | a01-053.png
33 | a01-053u.png
34 | a01-053x.png
35 | a01-058.png
36 | a01-058u.png
37 | a01-058x.png
38 | a01-063.png
39 | a01-063u.png
40 | a01-063x.png
41 | a01-068u.png
42 | a01-072u.png
43 | a01-072x.png
44 | a01-077.png
45 | a01-077u.png
46 | a01-082u.png
47 | a01-087.png
48 | a01-087u.png
49 | a01-091.png
50 | a01-091u.png
51 | a01-096u.png
52 | a01-102.png
53 | a01-102u.png
54 | a01-107.png
55 | a01-107u.png
56 | a01-113.png
57 | a01-113u.png
58 | a01-117.png
59 | a01-117u.png
60 | a01-122.png
61 | a01-122u.png
62 | a01-128.png
63 | a01-128u.png
64 | a01-132.png
65 | a01-132u.png
66 | a01-132x.png
67 | a02-000.png
68 | a02-004.png
69 | a02-008.png
70 | a02-012.png
71 | a02-017.png
72 | a02-020.png
73 | a02-024.png
74 | a02-027.png
75 | a02-032.png
76 | a02-037.png
77 | a02-042.png
78 | a02-046.png
79 | a02-050.png
80 | a02-053.png
81 | a02-057.png
82 | a02-062.png
83 | a02-067.png
84 | a02-072.png
85 | a02-078.png
86 | a02-082.png
87 | a02-086.png
88 | a02-090.png
89 | a02-093.png
90 | a02-098.png
91 | a02-102.png
92 | a02-106.png
93 | a02-111.png
94 | a02-116.png
95 | a02-120.png
96 | a02-124.png
97 | a03-006.png
98 | a03-009.png
99 | a03-011.png
100 | a03-014.png
101 | a03-017.png
102 | a03-020.png
103 | a03-023.png
104 | a03-027.png
105 | a03-030.png
106 | a03-034.png
107 | a03-037.png
108 | a03-040.png
109 | a03-043.png
110 | a03-047.png
111 | a03-050.png
112 | a03-054.png
113 | a03-059.png
114 | a03-063.png
115 | a03-066.png
116 | a03-071.png
117 | a03-073.png
118 | a03-080.png
119 | a03-089.png
120 | a04-000.png
121 | a04-003.png
122 | a04-006.png
123 | a04-010.png
124 | a04-015.png
125 | a04-019.png
126 | a04-023.png
127 | a04-027.png
128 | a04-031.png
129 | a04-035.png
130 | a04-039.png
131 | a04-043.png
132 | a04-047.png
133 | a04-050.png
134 | a04-054.png
135 | a04-059.png
136 | a04-066.png
137 | a04-069.png
138 | a04-072.png
139 | a04-081.png
140 | a04-085.png
141 | a04-089.png
142 | a04-092.png
143 | a04-096.png
144 | a04-099.png
145 | a04-103.png
146 | a05-000.png
147 | a05-004.png
148 | a05-009.png
149 | a05-013.png
150 | a05-017.png
151 | a05-022.png
152 | a05-025.png
153 | a05-029.png
154 | a05-039.png
155 | a05-044.png
156 | a05-048.png
157 | a05-053.png
158 | a05-058.png
159 | a05-062.png
160 | a05-069.png
161 | a05-073.png
162 | a05-080.png
163 | a05-084.png
164 | a05-089.png
165 | a05-094.png
166 | a05-099.png
167 | a05-104.png
168 | a05-108.png
169 | a05-113.png
170 | a05-116.png
171 | a05-121.png
172 | a05-125.png
173 | a06-000.png
174 | a06-004.png
175 | a06-008.png
176 | a06-014.png
177 | a06-020.png
178 | a06-025.png
179 | a06-036.png
180 | a06-039.png
181 | a06-044.png
182 | a06-051.png
183 | a06-057.png
184 | a06-064.png
185 | a06-070.png
186 | a06-075.png
187 | a06-090.png
188 | a06-095.png
189 | a06-100.png
190 | a06-110.png
191 | a06-114.png
192 | a06-119.png
193 | a06-124.png
194 | a06-128.png
195 | a06-134.png
196 | a06-141.png
197 | a06-147.png
198 | a06-152.png
199 | a06-157.png
200 | b01-000.png
201 | b01-004.png
202 | b01-009.png
203 | b01-014.png
204 | b01-018.png
205 | b01-023.png
206 | b01-027.png
207 | b01-033.png
208 | b01-038.png
209 | b01-044.png
210 | b01-049.png
211 | b01-053.png
212 | b01-057.png
213 | b01-062.png
214 | b01-073.png
215 | b01-079.png
216 | b01-084.png
217 | b01-089.png
218 | b01-094.png
219 | b01-113.png
220 | b01-118.png
221 | b01-122.png
222 | b01-127.png
223 | b01-132.png
224 | b01-136.png
225 | b02-013.png
226 | b02-035.png
227 | b02-045.png
228 | b02-097.png
229 | b02-102.png
230 | b02-105.png
231 | b03-025.png
232 | b03-087.png
233 | b03-092.png
234 | b03-098.png
235 | b03-104.png
236 | b03-109.png
237 | b03-114.png
238 | b04-000.png
239 | b04-004.png
240 | b04-010.png
241 | b04-020.png
242 | b04-026.png
243 | b04-034.png
244 | b04-040.png
245 | b04-047.png
246 | b04-054.png
247 | b04-060.png
248 | b04-066.png
249 | b04-075.png
250 | b04-081.png
251 | b04-089.png
252 | b04-096.png
253 | b04-103.png
254 | b04-107.png
255 | b04-116.png
256 | b04-121.png
257 | b04-128.png
258 | b04-134.png
259 | b04-140.png
260 | b04-147.png
261 | b04-154.png
262 | b04-162.png
263 | b04-169.png
264 | b04-175.png
265 | b04-181.png
266 | b04-187.png
267 | b04-195.png
268 | b04-202.png
269 | b04-208.png
270 | b05-017.png
271 | b05-032.png
272 | b05-038.png
273 | b05-042.png
274 | b05-045.png
275 | b05-050.png
276 | b05-055.png
277 | b05-058.png
278 | b05-062.png
279 | b05-067.png
280 | b05-071.png
281 | b05-074.png
282 | b05-079.png
283 | b05-083.png
284 | b05-088.png
285 | b05-098.png
286 | b06-000.png
287 | b06-004.png
288 | b06-008.png
289 | b06-012.png
290 | b06-015.png
291 | b06-019.png
292 | b06-023.png
293 | b06-027.png
294 | b06-032.png
295 | b06-036.png
296 | b06-042.png
297 | b06-045.png
298 | b06-049.png
299 | b06-053.png
300 | b06-056.png
301 | b06-059.png
302 | b06-064.png
303 | b06-068.png
304 | b06-071.png
305 | b06-075.png
306 | b06-079.png
307 | b06-082.png
308 | b06-087.png
309 | b06-090.png
310 | b06-093.png
311 | b06-097.png
312 | b06-100.png
313 | b06-110.png
314 | c01-009.png
315 | c01-014.png
316 | c01-066.png
317 | c02-000.png
318 | c02-003.png
319 | c02-007.png
320 | c02-012.png
321 | c02-017.png
322 | c02-022.png
323 | c02-026.png
324 | c02-030.png
325 | c02-035.png
326 | c02-049.png
327 | c02-056.png
328 | c02-059.png
329 | c02-078.png
330 | c02-082.png
331 | c02-089.png
332 | c03-000a.png
333 | c03-000b.png
334 | c03-000c.png
335 | c03-000d.png
336 | c03-000e.png
337 | c03-000f.png
338 | c03-003a.png
339 | c03-003b.png
340 | c03-003c.png
341 | c03-003d.png
342 | c03-003e.png
343 | c03-003f.png
344 | c03-007.png
345 | c03-007a.png
346 | c03-007b.png
347 | c03-007c.png
348 | c03-007d.png
349 | c03-007e.png
350 | c03-007f.png
351 | c03-016a.png
352 | c03-016b.png
353 | c03-016c.png
354 | c03-016d.png
355 | c03-016e.png
356 | c03-021a.png
357 | c03-021b.png
358 | c03-021c.png
359 | c03-021d.png
360 | c03-021e.png
361 | c03-021f.png
362 | c03-081a.png
363 | c03-081b.png
364 | c03-081c.png
365 | c03-081d.png
366 | c03-081e.png
367 | c03-081f.png
368 | c03-084a.png
369 | c03-084b.png
370 | c03-084c.png
371 | c03-084d.png
372 | c03-084e.png
373 | c03-084f.png
374 | c03-087a.png
375 | c03-087b.png
376 | c03-087c.png
377 | c03-087d.png
378 | c03-087e.png
379 | c03-087f.png
380 | c03-094a.png
381 | c03-094b.png
382 | c03-094c.png
383 | c03-094d.png
384 | c03-094e.png
385 | c03-094f.png
386 | c03-096a.png
387 | c03-096b.png
388 | c03-096c.png
389 | c03-096d.png
390 | c03-096e.png
391 | c03-096f.png
392 | c04-000.png
393 | c04-004.png
394 | c04-008.png
395 | c04-013.png
396 | c04-017.png
397 | c04-023.png
398 | c04-028.png
399 | c04-035.png
400 | c04-039.png
401 | c04-044.png
402 | c04-050.png
403 | c04-056.png
404 | c04-061.png
405 | c04-066.png
406 | c04-075.png
407 | c04-080.png
408 | c04-089.png
409 | c04-098.png
410 | c04-105.png
411 | c04-122.png
412 | c04-128.png
413 | c06-000.png
414 | c06-005.png
415 | c06-014.png
416 | c06-020.png
417 | c06-027.png
418 | c06-031.png
419 | c06-039.png
420 | c06-043.png
421 | c06-047.png
422 | c06-052.png
423 | c06-058.png
424 | c06-076.png
425 | c06-080.png
426 | c06-087.png
427 | c06-091.png
428 | c06-095.png
429 | c06-100.png
430 | c06-103.png
431 | c06-106.png
432 | c06-111.png
433 | c06-116.png
434 | c06-128.png
435 | c06-138.png
436 | e01-022.png
437 | e01-025.png
438 | e01-029.png
439 | e01-032.png
440 | e01-035.png
441 | e01-050.png
442 | e01-059.png
443 | e01-062.png
444 | e01-081.png
445 | e01-086.png
446 | e01-092.png
447 | e01-102.png
448 | e01-107.png
449 | e01-113.png
450 | e01-119.png
451 | e02-000.png
452 | e02-014.png
453 | e02-018.png
454 | e02-021.png
455 | e02-025.png
456 | e02-074.png
457 | e02-082.png
458 | e02-086.png
459 | e02-091.png
460 | e02-094.png
461 | e02-100.png
462 | e02-117.png
463 | e04-000.png
464 | e04-004.png
465 | e04-008.png
466 | e04-011.png
467 | e04-015.png
468 | e04-019.png
469 | e04-022.png
470 | e04-026.png
471 | e04-030.png
472 | e04-034.png
473 | e04-038.png
474 | e04-043.png
475 | e04-052.png
476 | e04-058.png
477 | e04-062.png
478 | e04-068.png
479 | e04-079.png
480 | e04-083.png
481 | e04-086.png
482 | e04-091.png
483 | e04-095.png
484 | e04-099.png
485 | e04-103.png
486 | e04-109.png
487 | e04-114.png
488 | e04-119.png
489 | e04-124.png
490 | e04-127.png
491 | e04-132.png
492 | e07-000.png
493 | e07-003.png
494 | e07-007.png
495 | e07-012.png
496 | e07-061.png
497 | e07-066.png
498 | e07-072.png
499 | e07-076.png
500 | e07-079.png
501 | e07-083.png
502 | e07-086.png
503 | e07-090.png
504 | e07-094.png
505 | e07-098.png
506 | e07-101.png
507 | e07-105.png
508 | e07-108.png
509 | e07-112.png
510 | f01-053.png
511 | f01-058.png
512 | f01-066.png
513 | f01-070.png
514 | f01-075.png
515 | f01-081.png
516 | f01-085.png
517 | f01-135.png
518 | f01-139.png
519 | f01-143.png
520 | f01-147.png
521 | f02-000.png
522 | f02-003.png
523 | f02-017.png
524 | f02-020.png
525 | f02-030.png
526 | f02-033.png
527 | f02-036.png
528 | f02-038.png
529 | f02-040.png
530 | f02-044.png
531 | f02-076.png
532 | f03-169.png
533 | f03-174.png
534 | f03-182.png
535 | f03-191.png
536 | f04-004.png
537 | f04-007.png
538 | f04-011.png
539 | f04-016.png
540 | f04-020.png
541 | f04-024.png
542 | f04-028.png
543 | g01-000.png
544 | g04-003.png
545 | g04-007.png
546 | g04-011.png
547 | g04-014.png
548 | g04-017.png
549 | g04-026.png
550 | g04-032.png
551 | g04-077.png
552 | g04-081.png
553 | g04-088.png
554 | g04-092.png
555 | g04-095.png
556 | g04-098.png
557 | g04-101.png
558 | g04-104.png
559 | g04-108.png
560 | g05-087.png
561 | g05-094.png
562 | g05-098.png
563 | g06-011a.png
564 | g06-011b.png
565 | g06-011c.png
566 | g06-011e.png
567 | g06-011f.png
568 | g06-011g.png
569 | g06-011h.png
570 | g06-011i.png
571 | g06-011j.png
572 | g06-011k.png
573 | g06-011l.png
574 | g06-011m.png
575 | g06-018a.png
576 | g06-018b.png
577 | g06-018c.png
578 | g06-018d.png
579 | g06-018e.png
580 | g06-018f.png
581 | g06-018g.png
582 | g06-018h.png
583 | g06-018i.png
584 | g06-018j.png
585 | g06-018k.png
586 | g06-018l.png
587 | g06-018m.png
588 | g06-026a.png
589 | g06-026b.png
590 | g06-026c.png
591 | g06-026d.png
592 | g06-026e.png
593 | g06-026f.png
594 | g06-026g.png
595 | g06-026h.png
596 | g06-026i.png
597 | g06-026j.png
598 | g06-026k.png
599 | g06-026l.png
600 | g06-026m.png
601 | g06-031a.png
602 | g06-031b.png
603 | g06-031c.png
604 | g06-031d.png
605 | g06-031e.png
606 | g06-031f.png
607 | g06-031g.png
608 | g06-031h.png
609 | g06-031i.png
610 | g06-031j.png
611 | g06-031k.png
612 | g06-031l.png
613 | g06-031m.png
614 | g06-037b.png
615 | g06-037c.png
616 | g06-037d.png
617 | g06-037e.png
618 | g06-037f.png
619 | g06-037g.png
620 | g06-037h.png
621 | g06-037i.png
622 | g06-037j.png
623 | g06-037k.png
624 | g06-037l.png
625 | g06-037m.png
626 | g06-042a.png
627 | g06-042b.png
628 | g06-042c.png
629 | g06-042d.png
630 | g06-042e.png
631 | g06-042f.png
632 | g06-042g.png
633 | g06-042h.png
634 | g06-042i.png
635 | g06-042j.png
636 | g06-042k.png
637 | g06-042l.png
638 | g06-042m.png
639 | g06-045a.png
640 | g06-045b.png
641 | g06-045c.png
642 | g06-045d.png
643 | g06-045e.png
644 | g06-045f.png
645 | g06-045g.png
646 | g06-045h.png
647 | g06-045i.png
648 | g06-045j.png
649 | g06-045k.png
650 | g06-045l.png
651 | g06-045m.png
652 | g06-047a.png
653 | g06-047b.png
654 | g06-047c.png
655 | g06-047d.png
656 | g06-047e.png
657 | g06-047f.png
658 | g06-047g.png
659 | g06-047h.png
660 | g06-047i.png
661 | g06-047j.png
662 | g06-047k.png
663 | g06-047l.png
664 | g06-047m.png
665 | g06-050a.png
666 | g06-050b.png
667 | g06-050c.png
668 | g06-050d.png
669 | g06-050e.png
670 | g06-050f.png
671 | g06-050g.png
672 | g06-050h.png
673 | g06-050i.png
674 | g06-050j.png
675 | g06-050k.png
676 | g06-050l.png
677 | g06-050m.png
678 | h04-000.png
679 | h04-007.png
680 | h04-021.png
681 | h04-025.png
682 | h05-012.png
683 | k04-017.png
684 | k04-022.png
685 | n02-146.png
686 | p06-242.png
687 | p06-248.png
688 | r02-000.png
689 | r02-003.png
690 | r02-006.png
691 | r02-010.png
692 | r02-013.png
693 | r02-038.png
694 | r02-054.png
695 | r02-060.png
696 | r02-065.png
697 | r02-070.png
698 | r02-078.png
699 | r02-081.png
700 | r02-089.png
701 | r02-109.png
702 | r02-117.png
703 | r02-127.png
704 | r02-131.png
705 | r02-137.png
706 | r02-146.png
707 | r03-002.png
708 | r03-007.png
709 | r03-026.png
710 | r03-030.png
711 | r03-035.png
712 | r03-050.png
713 | r03-056.png
714 | r03-065.png
715 | r03-084.png
716 | r03-090.png
717 | r03-096.png
718 | r03-110.png
719 | r03-115.png
720 | r06-000.png
721 | r06-003.png
722 | r06-007.png
723 | r06-011.png
724 | r06-018.png
725 | r06-022.png
726 | r06-027.png
727 | r06-035.png
728 | r06-041.png
729 | r06-044.png
730 | r06-049.png
731 | r06-053.png
732 | r06-057.png
733 | r06-062.png
734 | r06-066.png
735 | r06-070.png
736 | r06-076.png
737 | r06-090.png
738 | r06-097.png
739 | r06-103.png
740 | r06-106.png
741 | r06-111.png
742 | r06-115.png
743 | r06-121.png
744 | r06-126.png
745 | r06-130.png
746 | r06-137.png
747 | r06-143.png
748 |
--------------------------------------------------------------------------------
/iam/val.gc:
--------------------------------------------------------------------------------
1 | c04-156.png
2 | c04-160.png
3 | c06-083.png
4 | d01-024.png
5 | d01-056.png
6 | d01-060.png
7 | d03-112.png
8 | d04-005.png
9 | d04-008.png
10 | d04-071.png
11 | d04-075.png
12 | d04-081.png
13 | d04-117.png
14 | d04-121.png
15 | d06-000.png
16 | d06-015.png
17 | d06-030.png
18 | d06-050.png
19 | d06-082.png
20 | d06-091.png
21 | e01-014.png
22 | e01-018.png
23 | e06-006.png
24 | e06-037.png
25 | e06-041.png
26 | f04-046.png
27 | f04-049.png
28 | f04-093.png
29 | f04-096.png
30 | f04-100.png
31 | f07-028b.png
32 | f07-032b.png
33 | f07-036.png
34 | f07-039b.png
35 | f07-042b.png
36 | f07-046b.png
37 | g01-083.png
38 | g03-016.png
39 | g03-058.png
40 | g04-036.png
41 | g04-039.png
42 | g04-055.png
43 | g04-060.png
44 | g04-063.png
45 | h01-004.png
46 | m01-090.png
47 | m01-115.png
48 | m01-160.png
49 | m02-052.png
50 | m02-075.png
51 | m02-083.png
52 | m02-090.png
53 | m02-102.png
54 | m02-106.png
55 | m03-062.png
56 | m03-095.png
57 | m04-000.png
58 | m04-007.png
59 | m04-012.png
60 | m04-019.png
61 | m04-024.png
62 | m04-145.png
63 | m04-152.png
64 | m04-164.png
65 | m04-180.png
66 | m04-190.png
67 | m04-200.png
68 | m04-209.png
69 | m04-216.png
70 | m04-222.png
71 | m04-251.png
72 | m06-019.png
73 | n02-000.png
74 | n02-016.png
75 | n02-082a.png
76 | n02-098.png
77 | n03-079.png
78 | n03-082.png
79 | n03-091.png
80 | n04-015.png
81 | n04-022.png
82 | n04-031.png
83 | n04-039.png
84 | n04-044.png
85 | n04-171.png
86 | n04-183.png
87 | n04-190.png
88 | n04-195.png
89 | n06-148.png
90 | n06-156.png
91 | n06-163.png
92 | n06-169.png
93 | n06-175.png
94 | n06-182.png
95 | n06-186.png
96 | n06-194.png
97 | n06-201.png
98 | p02-017.png
99 | p02-121.png
100 | p02-127.png
101 | p02-131.png
102 | p02-155.png
103 | p03-004.png
104 | p03-009.png
105 | p03-057.png
106 | p03-069.png
107 | p03-087.png
108 | p03-096.png
109 | p03-103.png
110 | p03-112.png
111 | p03-121.png
112 | p03-135.png
113 | p03-142.png
114 | p03-151.png
115 | p03-158.png
116 | p03-185.png
117 |
--------------------------------------------------------------------------------
/iam/val.ln:
--------------------------------------------------------------------------------
1 | c04-156-06.png
2 | c04-156-04.png
3 | c04-156-00.png
4 | c04-156-03.png
5 | c04-156-01.png
6 | c04-156-05.png
7 | c04-156-02.png
8 | c04-160-07.png
9 | c04-160-06.png
10 | c04-160-05.png
11 | c04-160-03.png
12 | c04-160-08.png
13 | c04-160-09.png
14 | c04-160-00.png
15 | c04-160-02.png
16 | c04-160-01.png
17 | c04-160-04.png
18 | c06-083-06.png
19 | c06-083-02.png
20 | c06-083-00.png
21 | c06-083-01.png
22 | c06-083-03.png
23 | c06-083-07.png
24 | c06-083-05.png
25 | c06-083-04.png
26 | c06-083-08.png
27 | d01-024-05.png
28 | d01-024-04.png
29 | d01-024-00.png
30 | d01-024-07.png
31 | d01-024-02.png
32 | d01-024-08.png
33 | d01-024-01.png
34 | d01-024-06.png
35 | d01-024-03.png
36 | d01-056-00.png
37 | d01-056-03.png
38 | d01-056-02.png
39 | d01-056-07.png
40 | d01-056-09.png
41 | d01-056-06.png
42 | d01-056-08.png
43 | d01-056-04.png
44 | d01-056-05.png
45 | d01-056-01.png
46 | d01-060-09.png
47 | d01-060-08.png
48 | d01-060-00.png
49 | d01-060-03.png
50 | d01-060-01.png
51 | d01-060-06.png
52 | d01-060-07.png
53 | d01-060-05.png
54 | d01-060-02.png
55 | d01-060-04.png
56 | d03-112-06.png
57 | d03-112-03.png
58 | d03-112-04.png
59 | d03-112-07.png
60 | d03-112-01.png
61 | d03-112-02.png
62 | d03-112-05.png
63 | d03-112-00.png
64 | d03-112-08.png
65 | d04-005-01.png
66 | d04-005-00.png
67 | d04-005-02.png
68 | d04-005-05.png
69 | d04-005-06.png
70 | d04-005-07.png
71 | d04-005-03.png
72 | d04-005-04.png
73 | d04-008-05.png
74 | d04-008-03.png
75 | d04-008-02.png
76 | d04-008-04.png
77 | d04-008-01.png
78 | d04-008-00.png
79 | d04-071-06.png
80 | d04-071-04.png
81 | d04-071-03.png
82 | d04-071-00.png
83 | d04-071-01.png
84 | d04-071-02.png
85 | d04-071-07.png
86 | d04-071-05.png
87 | d04-075-04.png
88 | d04-075-09.png
89 | d04-075-03.png
90 | d04-075-07.png
91 | d04-075-02.png
92 | d04-075-00.png
93 | d04-075-06.png
94 | d04-075-05.png
95 | d04-075-01.png
96 | d04-075-08.png
97 | d04-081-01.png
98 | d04-081-00.png
99 | d04-081-08.png
100 | d04-081-03.png
101 | d04-081-06.png
102 | d04-081-04.png
103 | d04-081-05.png
104 | d04-081-02.png
105 | d04-081-07.png
106 | d04-117-00.png
107 | d04-117-05.png
108 | d04-117-03.png
109 | d04-117-04.png
110 | d04-117-06.png
111 | d04-117-01.png
112 | d04-117-07.png
113 | d04-117-02.png
114 | d04-121-03.png
115 | d04-121-06.png
116 | d04-121-05.png
117 | d04-121-00.png
118 | d04-121-02.png
119 | d04-121-04.png
120 | d04-121-01.png
121 | d06-000-07.png
122 | d06-000-00.png
123 | d06-000-03.png
124 | d06-000-04.png
125 | d06-000-09.png
126 | d06-000-02.png
127 | d06-000-08.png
128 | d06-000-01.png
129 | d06-000-06.png
130 | d06-000-05.png
131 | d06-015-03.png
132 | d06-015-00.png
133 | d06-015-01.png
134 | d06-015-05.png
135 | d06-015-02.png
136 | d06-015-04.png
137 | d06-030-03.png
138 | d06-030-04.png
139 | d06-030-01.png
140 | d06-030-00.png
141 | d06-030-02.png
142 | d06-030-05.png
143 | d06-050-03.png
144 | d06-050-00.png
145 | d06-050-06.png
146 | d06-050-05.png
147 | d06-050-02.png
148 | d06-050-01.png
149 | d06-050-04.png
150 | d06-082-02.png
151 | d06-082-01.png
152 | d06-082-00.png
153 | d06-082-04.png
154 | d06-082-05.png
155 | d06-082-03.png
156 | d06-091-08.png
157 | d06-091-00.png
158 | d06-091-03.png
159 | d06-091-05.png
160 | d06-091-07.png
161 | d06-091-01.png
162 | d06-091-04.png
163 | d06-091-02.png
164 | d06-091-10.png
165 | d06-091-06.png
166 | d06-091-09.png
167 | e01-014-04.png
168 | e01-014-00.png
169 | e01-014-05.png
170 | e01-014-06.png
171 | e01-014-02.png
172 | e01-014-01.png
173 | e01-014-03.png
174 | e01-018-04.png
175 | e01-018-02.png
176 | e01-018-07.png
177 | e01-018-00.png
178 | e01-018-05.png
179 | e01-018-01.png
180 | e01-018-08.png
181 | e01-018-06.png
182 | e01-018-03.png
183 | e06-006-04.png
184 | e06-006-07.png
185 | e06-006-01.png
186 | e06-006-08.png
187 | e06-006-09.png
188 | e06-006-03.png
189 | e06-006-06.png
190 | e06-006-10.png
191 | e06-006-02.png
192 | e06-006-05.png
193 | e06-006-00.png
194 | e06-037-08.png
195 | e06-037-02.png
196 | e06-037-06.png
197 | e06-037-00.png
198 | e06-037-09.png
199 | e06-037-04.png
200 | e06-037-05.png
201 | e06-037-10.png
202 | e06-037-03.png
203 | e06-037-07.png
204 | e06-037-01.png
205 | e06-041-00.png
206 | e06-041-02.png
207 | e06-041-04.png
208 | e06-041-05.png
209 | e06-041-06.png
210 | e06-041-01.png
211 | e06-041-07.png
212 | e06-041-08.png
213 | e06-041-03.png
214 | e06-041-09.png
215 | f04-046-03.png
216 | f04-046-05.png
217 | f04-046-02.png
218 | f04-046-01.png
219 | f04-046-04.png
220 | f04-046-00.png
221 | f04-049-05.png
222 | f04-049-03.png
223 | f04-049-04.png
224 | f04-049-02.png
225 | f04-049-00.png
226 | f04-049-01.png
227 | f04-049-06.png
228 | f04-093-03.png
229 | f04-093-06.png
230 | f04-093-05.png
231 | f04-093-08.png
232 | f04-093-09.png
233 | f04-093-04.png
234 | f04-093-02.png
235 | f04-093-00.png
236 | f04-093-07.png
237 | f04-093-01.png
238 | f04-096-08.png
239 | f04-096-07.png
240 | f04-096-09.png
241 | f04-096-10.png
242 | f04-096-05.png
243 | f04-096-04.png
244 | f04-096-03.png
245 | f04-096-01.png
246 | f04-096-00.png
247 | f04-096-06.png
248 | f04-096-02.png
249 | f04-100-03.png
250 | f04-100-00.png
251 | f04-100-10.png
252 | f04-100-02.png
253 | f04-100-08.png
254 | f04-100-01.png
255 | f04-100-04.png
256 | f04-100-06.png
257 | f04-100-07.png
258 | f04-100-05.png
259 | f04-100-09.png
260 | f07-028b-06.png
261 | f07-028b-00.png
262 | f07-028b-04.png
263 | f07-028b-05.png
264 | f07-028b-09.png
265 | f07-028b-01.png
266 | f07-028b-03.png
267 | f07-028b-10.png
268 | f07-028b-02.png
269 | f07-028b-07.png
270 | f07-028b-11.png
271 | f07-028b-08.png
272 | f07-032b-09.png
273 | f07-032b-04.png
274 | f07-032b-06.png
275 | f07-032b-08.png
276 | f07-032b-00.png
277 | f07-032b-05.png
278 | f07-032b-10.png
279 | f07-032b-01.png
280 | f07-032b-03.png
281 | f07-032b-11.png
282 | f07-032b-02.png
283 | f07-032b-07.png
284 | f07-036-06.png
285 | f07-036-08.png
286 | f07-036-01.png
287 | f07-036-07.png
288 | f07-036-02.png
289 | f07-036-03.png
290 | f07-036-00.png
291 | f07-036-04.png
292 | f07-036-05.png
293 | f07-039b-06.png
294 | f07-039b-08.png
295 | f07-039b-04.png
296 | f07-039b-07.png
297 | f07-039b-05.png
298 | f07-039b-03.png
299 | f07-039b-00.png
300 | f07-039b-01.png
301 | f07-039b-02.png
302 | f07-042b-02.png
303 | f07-042b-05.png
304 | f07-042b-00.png
305 | f07-042b-04.png
306 | f07-042b-03.png
307 | f07-042b-06.png
308 | f07-042b-07.png
309 | f07-042b-01.png
310 | f07-046b-06.png
311 | f07-046b-08.png
312 | f07-046b-07.png
313 | f07-046b-04.png
314 | f07-046b-05.png
315 | f07-046b-03.png
316 | f07-046b-01.png
317 | f07-046b-02.png
318 | f07-046b-00.png
319 | g01-083-08.png
320 | g01-083-02.png
321 | g01-083-10.png
322 | g01-083-07.png
323 | g01-083-00.png
324 | g01-083-04.png
325 | g01-083-09.png
326 | g01-083-01.png
327 | g01-083-03.png
328 | g01-083-05.png
329 | g01-083-06.png
330 | g03-016-02.png
331 | g03-016-06.png
332 | g03-016-08.png
333 | g03-016-00.png
334 | g03-016-01.png
335 | g03-016-05.png
336 | g03-016-03.png
337 | g03-016-04.png
338 | g03-016-07.png
339 | g03-058-05.png
340 | g03-058-07.png
341 | g03-058-04.png
342 | g03-058-06.png
343 | g03-058-01.png
344 | g03-058-00.png
345 | g03-058-03.png
346 | g03-058-02.png
347 | g04-036-05.png
348 | g04-036-06.png
349 | g04-036-07.png
350 | g04-036-04.png
351 | g04-036-03.png
352 | g04-036-00.png
353 | g04-036-02.png
354 | g04-036-01.png
355 | g04-039-05.png
356 | g04-039-01.png
357 | g04-039-03.png
358 | g04-039-04.png
359 | g04-039-00.png
360 | g04-039-06.png
361 | g04-039-07.png
362 | g04-039-02.png
363 | g04-055-01.png
364 | g04-055-06.png
365 | g04-055-08.png
366 | g04-055-02.png
367 | g04-055-00.png
368 | g04-055-05.png
369 | g04-055-04.png
370 | g04-055-07.png
371 | g04-055-03.png
372 | g04-055-09.png
373 | g04-060-04.png
374 | g04-060-05.png
375 | g04-060-03.png
376 | g04-060-00.png
377 | g04-060-02.png
378 | g04-060-06.png
379 | g04-060-01.png
380 | g04-063-02.png
381 | g04-063-09.png
382 | g04-063-06.png
383 | g04-063-07.png
384 | g04-063-00.png
385 | g04-063-01.png
386 | g04-063-08.png
387 | g04-063-03.png
388 | g04-063-05.png
389 | g04-063-04.png
390 | h01-004-03.png
391 | h01-004-05.png
392 | h01-004-01.png
393 | h01-004-04.png
394 | h01-004-02.png
395 | h01-004-00.png
396 | m01-090-04.png
397 | m01-090-05.png
398 | m01-090-07.png
399 | m01-090-03.png
400 | m01-090-00.png
401 | m01-090-02.png
402 | m01-090-06.png
403 | m01-090-01.png
404 | m01-115-01.png
405 | m01-115-02.png
406 | m01-115-00.png
407 | m01-115-03.png
408 | m01-115-05.png
409 | m01-115-06.png
410 | m01-115-04.png
411 | m01-115-08.png
412 | m01-115-07.png
413 | m01-160-05.png
414 | m01-160-04.png
415 | m01-160-02.png
416 | m01-160-00.png
417 | m01-160-06.png
418 | m01-160-01.png
419 | m01-160-03.png
420 | m02-052-04.png
421 | m02-052-03.png
422 | m02-052-06.png
423 | m02-052-05.png
424 | m02-052-02.png
425 | m02-052-01.png
426 | m02-052-00.png
427 | m02-075-04.png
428 | m02-075-02.png
429 | m02-075-06.png
430 | m02-075-05.png
431 | m02-075-00.png
432 | m02-075-01.png
433 | m02-075-03.png
434 | m02-075-07.png
435 | m02-083-09.png
436 | m02-083-01.png
437 | m02-083-04.png
438 | m02-083-08.png
439 | m02-083-11.png
440 | m02-083-07.png
441 | m02-083-02.png
442 | m02-083-06.png
443 | m02-083-03.png
444 | m02-083-10.png
445 | m02-083-05.png
446 | m02-083-00.png
447 | m02-090-02.png
448 | m02-090-00.png
449 | m02-090-08.png
450 | m02-090-07.png
451 | m02-090-04.png
452 | m02-090-06.png
453 | m02-090-10.png
454 | m02-090-05.png
455 | m02-090-09.png
456 | m02-090-03.png
457 | m02-090-01.png
458 | m02-102-06.png
459 | m02-102-07.png
460 | m02-102-04.png
461 | m02-102-08.png
462 | m02-102-02.png
463 | m02-102-09.png
464 | m02-102-05.png
465 | m02-102-00.png
466 | m02-102-10.png
467 | m02-102-01.png
468 | m02-102-03.png
469 | m02-106-00.png
470 | m02-106-02.png
471 | m02-106-06.png
472 | m02-106-09.png
473 | m02-106-04.png
474 | m02-106-01.png
475 | m02-106-07.png
476 | m02-106-08.png
477 | m02-106-05.png
478 | m02-106-03.png
479 | m03-062-05.png
480 | m03-062-01.png
481 | m03-062-06.png
482 | m03-062-00.png
483 | m03-062-03.png
484 | m03-062-08.png
485 | m03-062-07.png
486 | m03-062-04.png
487 | m03-062-02.png
488 | m03-095-00.png
489 | m03-095-06.png
490 | m03-095-05.png
491 | m03-095-07.png
492 | m03-095-01.png
493 | m03-095-03.png
494 | m03-095-08.png
495 | m03-095-02.png
496 | m03-095-04.png
497 | m04-000-04.png
498 | m04-000-06.png
499 | m04-000-03.png
500 | m04-000-05.png
501 | m04-000-00.png
502 | m04-000-07.png
503 | m04-000-01.png
504 | m04-000-02.png
505 | m04-007-08.png
506 | m04-007-03.png
507 | m04-007-02.png
508 | m04-007-00.png
509 | m04-007-06.png
510 | m04-007-05.png
511 | m04-007-09.png
512 | m04-007-01.png
513 | m04-007-04.png
514 | m04-007-07.png
515 | m04-012-09.png
516 | m04-012-07.png
517 | m04-012-04.png
518 | m04-012-06.png
519 | m04-012-08.png
520 | m04-012-00.png
521 | m04-012-01.png
522 | m04-012-02.png
523 | m04-012-03.png
524 | m04-012-05.png
525 | m04-019-01.png
526 | m04-019-07.png
527 | m04-019-00.png
528 | m04-019-06.png
529 | m04-019-05.png
530 | m04-019-04.png
531 | m04-019-03.png
532 | m04-019-02.png
533 | m04-024-06.png
534 | m04-024-01.png
535 | m04-024-07.png
536 | m04-024-02.png
537 | m04-024-00.png
538 | m04-024-03.png
539 | m04-024-05.png
540 | m04-024-04.png
541 | m04-145-04.png
542 | m04-145-00.png
543 | m04-145-05.png
544 | m04-145-01.png
545 | m04-145-02.png
546 | m04-145-03.png
547 | m04-145-06.png
548 | m04-145-07.png
549 | m04-152-03.png
550 | m04-152-01.png
551 | m04-152-06.png
552 | m04-152-00.png
553 | m04-152-02.png
554 | m04-152-05.png
555 | m04-152-07.png
556 | m04-152-04.png
557 | m04-164-07.png
558 | m04-164-00.png
559 | m04-164-04.png
560 | m04-164-01.png
561 | m04-164-03.png
562 | m04-164-02.png
563 | m04-164-05.png
564 | m04-164-06.png
565 | m04-180-02.png
566 | m04-180-03.png
567 | m04-180-06.png
568 | m04-180-04.png
569 | m04-180-01.png
570 | m04-180-00.png
571 | m04-180-05.png
572 | m04-180-07.png
573 | m04-190-08.png
574 | m04-190-05.png
575 | m04-190-02.png
576 | m04-190-04.png
577 | m04-190-07.png
578 | m04-190-00.png
579 | m04-190-06.png
580 | m04-190-01.png
581 | m04-190-03.png
582 | m04-190-09.png
583 | m04-200-03.png
584 | m04-200-06.png
585 | m04-200-02.png
586 | m04-200-01.png
587 | m04-200-07.png
588 | m04-200-04.png
589 | m04-200-05.png
590 | m04-200-00.png
591 | m04-209-01.png
592 | m04-209-02.png
593 | m04-209-06.png
594 | m04-209-04.png
595 | m04-209-05.png
596 | m04-209-00.png
597 | m04-209-03.png
598 | m04-216-02.png
599 | m04-216-01.png
600 | m04-216-06.png
601 | m04-216-05.png
602 | m04-216-04.png
603 | m04-216-03.png
604 | m04-216-00.png
605 | m04-222-05.png
606 | m04-222-07.png
607 | m04-222-03.png
608 | m04-222-00.png
609 | m04-222-01.png
610 | m04-222-04.png
611 | m04-222-06.png
612 | m04-222-02.png
613 | m04-251-00.png
614 | m04-251-01.png
615 | m04-251-02.png
616 | m06-019-04.png
617 | m06-019-01.png
618 | m06-019-03.png
619 | m06-019-05.png
620 | m06-019-06.png
621 | m06-019-02.png
622 | m06-019-00.png
623 | m06-019-07.png
624 | n02-000-07.png
625 | n02-000-01.png
626 | n02-000-04.png
627 | n02-000-06.png
628 | n02-000-02.png
629 | n02-000-05.png
630 | n02-000-00.png
631 | n02-000-03.png
632 | n02-016-01.png
633 | n02-016-06.png
634 | n02-016-03.png
635 | n02-016-07.png
636 | n02-016-05.png
637 | n02-016-02.png
638 | n02-016-00.png
639 | n02-016-04.png
640 | n02-082a-00.png
641 | n02-082a-02.png
642 | n02-082a-05.png
643 | n02-082a-04.png
644 | n02-082a-06.png
645 | n02-082a-01.png
646 | n02-082a-03.png
647 | n02-098-03.png
648 | n02-098-06.png
649 | n02-098-04.png
650 | n02-098-05.png
651 | n02-098-00.png
652 | n02-098-01.png
653 | n02-098-07.png
654 | n02-098-02.png
655 | n03-079-02.png
656 | n03-079-06.png
657 | n03-079-05.png
658 | n03-079-00.png
659 | n03-079-01.png
660 | n03-079-04.png
661 | n03-079-03.png
662 | n03-082-04.png
663 | n03-082-02.png
664 | n03-082-05.png
665 | n03-082-03.png
666 | n03-082-01.png
667 | n03-082-00.png
668 | n03-082-06.png
669 | n03-082-07.png
670 | n03-091-02.png
671 | n03-091-00.png
672 | n03-091-01.png
673 | n03-091-04.png
674 | n03-091-08.png
675 | n03-091-03.png
676 | n03-091-07.png
677 | n03-091-06.png
678 | n03-091-05.png
679 | n04-015-07.png
680 | n04-015-01.png
681 | n04-015-03.png
682 | n04-015-05.png
683 | n04-015-02.png
684 | n04-015-04.png
685 | n04-015-00.png
686 | n04-015-06.png
687 | n04-022-04.png
688 | n04-022-07.png
689 | n04-022-05.png
690 | n04-022-06.png
691 | n04-022-03.png
692 | n04-022-00.png
693 | n04-022-01.png
694 | n04-022-02.png
695 | n04-031-00.png
696 | n04-031-07.png
697 | n04-031-03.png
698 | n04-031-01.png
699 | n04-031-06.png
700 | n04-031-05.png
701 | n04-031-02.png
702 | n04-031-04.png
703 | n04-039-03.png
704 | n04-039-02.png
705 | n04-039-04.png
706 | n04-039-01.png
707 | n04-039-05.png
708 | n04-039-00.png
709 | n04-044-10.png
710 | n04-044-05.png
711 | n04-044-02.png
712 | n04-044-07.png
713 | n04-044-04.png
714 | n04-044-00.png
715 | n04-044-09.png
716 | n04-044-03.png
717 | n04-044-08.png
718 | n04-044-06.png
719 | n04-044-01.png
720 | n04-171-00.png
721 | n04-171-04.png
722 | n04-171-06.png
723 | n04-171-05.png
724 | n04-171-02.png
725 | n04-171-03.png
726 | n04-171-01.png
727 | n04-183-00.png
728 | n04-183-05.png
729 | n04-183-03.png
730 | n04-183-01.png
731 | n04-183-04.png
732 | n04-183-06.png
733 | n04-183-02.png
734 | n04-190-03.png
735 | n04-190-04.png
736 | n04-190-01.png
737 | n04-190-00.png
738 | n04-190-02.png
739 | n04-190-05.png
740 | n04-190-06.png
741 | n04-195-03.png
742 | n04-195-01.png
743 | n04-195-04.png
744 | n04-195-02.png
745 | n04-195-05.png
746 | n04-195-00.png
747 | n06-148-00.png
748 | n06-148-01.png
749 | n06-148-08.png
750 | n06-148-07.png
751 | n06-148-02.png
752 | n06-148-05.png
753 | n06-148-06.png
754 | n06-148-04.png
755 | n06-148-03.png
756 | n06-156-04.png
757 | n06-156-00.png
758 | n06-156-05.png
759 | n06-156-02.png
760 | n06-156-06.png
761 | n06-156-01.png
762 | n06-156-03.png
763 | n06-156-07.png
764 | n06-163-03.png
765 | n06-163-08.png
766 | n06-163-09.png
767 | n06-163-01.png
768 | n06-163-05.png
769 | n06-163-02.png
770 | n06-163-04.png
771 | n06-163-00.png
772 | n06-163-07.png
773 | n06-163-06.png
774 | n06-169-08.png
775 | n06-169-01.png
776 | n06-169-02.png
777 | n06-169-00.png
778 | n06-169-04.png
779 | n06-169-05.png
780 | n06-169-06.png
781 | n06-169-03.png
782 | n06-169-07.png
783 | n06-175-05.png
784 | n06-175-09.png
785 | n06-175-08.png
786 | n06-175-07.png
787 | n06-175-04.png
788 | n06-175-02.png
789 | n06-175-03.png
790 | n06-175-01.png
791 | n06-175-06.png
792 | n06-175-00.png
793 | n06-182-06.png
794 | n06-182-00.png
795 | n06-182-01.png
796 | n06-182-03.png
797 | n06-182-04.png
798 | n06-182-02.png
799 | n06-182-07.png
800 | n06-182-05.png
801 | n06-186-01.png
802 | n06-186-05.png
803 | n06-186-00.png
804 | n06-186-07.png
805 | n06-186-04.png
806 | n06-186-02.png
807 | n06-186-06.png
808 | n06-186-03.png
809 | n06-194-05.png
810 | n06-194-04.png
811 | n06-194-07.png
812 | n06-194-00.png
813 | n06-194-03.png
814 | n06-194-01.png
815 | n06-194-02.png
816 | n06-194-06.png
817 | n06-201-01.png
818 | n06-201-03.png
819 | n06-201-05.png
820 | n06-201-04.png
821 | n06-201-06.png
822 | n06-201-00.png
823 | n06-201-02.png
824 | n06-201-07.png
825 | p02-017-06.png
826 | p02-017-01.png
827 | p02-017-00.png
828 | p02-017-03.png
829 | p02-017-04.png
830 | p02-017-05.png
831 | p02-017-02.png
832 | p02-017-07.png
833 | p02-121-02.png
834 | p02-121-04.png
835 | p02-121-05.png
836 | p02-121-03.png
837 | p02-121-01.png
838 | p02-121-00.png
839 | p02-127-01.png
840 | p02-127-03.png
841 | p02-127-02.png
842 | p02-127-04.png
843 | p02-127-05.png
844 | p02-127-00.png
845 | p02-127-06.png
846 | p02-131-05.png
847 | p02-131-01.png
848 | p02-131-07.png
849 | p02-131-06.png
850 | p02-131-03.png
851 | p02-131-02.png
852 | p02-131-00.png
853 | p02-131-04.png
854 | p02-155-01.png
855 | p02-155-00.png
856 | p03-004-06.png
857 | p03-004-00.png
858 | p03-004-04.png
859 | p03-004-01.png
860 | p03-004-09.png
861 | p03-004-07.png
862 | p03-004-03.png
863 | p03-004-05.png
864 | p03-004-10.png
865 | p03-004-08.png
866 | p03-004-02.png
867 | p03-004-11.png
868 | p03-009-03.png
869 | p03-009-01.png
870 | p03-009-04.png
871 | p03-009-05.png
872 | p03-009-00.png
873 | p03-009-02.png
874 | p03-009-06.png
875 | p03-057-07.png
876 | p03-057-04.png
877 | p03-057-08.png
878 | p03-057-02.png
879 | p03-057-09.png
880 | p03-057-03.png
881 | p03-057-05.png
882 | p03-057-00.png
883 | p03-057-06.png
884 | p03-057-01.png
885 | p03-069-01.png
886 | p03-069-00.png
887 | p03-069-02.png
888 | p03-069-05.png
889 | p03-069-06.png
890 | p03-069-04.png
891 | p03-069-03.png
892 | p03-087-06.png
893 | p03-087-03.png
894 | p03-087-10.png
895 | p03-087-08.png
896 | p03-087-01.png
897 | p03-087-00.png
898 | p03-087-07.png
899 | p03-087-05.png
900 | p03-087-04.png
901 | p03-087-09.png
902 | p03-087-02.png
903 | p03-096-08.png
904 | p03-096-06.png
905 | p03-096-09.png
906 | p03-096-02.png
907 | p03-096-04.png
908 | p03-096-05.png
909 | p03-096-03.png
910 | p03-096-00.png
911 | p03-096-01.png
912 | p03-096-07.png
913 | p03-103-06.png
914 | p03-103-05.png
915 | p03-103-00.png
916 | p03-103-03.png
917 | p03-103-02.png
918 | p03-103-01.png
919 | p03-103-04.png
920 | p03-103-07.png
921 | p03-112-02.png
922 | p03-112-00.png
923 | p03-112-05.png
924 | p03-112-06.png
925 | p03-112-07.png
926 | p03-112-01.png
927 | p03-112-08.png
928 | p03-112-03.png
929 | p03-112-04.png
930 | p03-112-09.png
931 | p03-121-04.png
932 | p03-121-01.png
933 | p03-121-03.png
934 | p03-121-06.png
935 | p03-121-02.png
936 | p03-121-00.png
937 | p03-121-05.png
938 | p03-135-06.png
939 | p03-135-00.png
940 | p03-135-05.png
941 | p03-135-03.png
942 | p03-135-04.png
943 | p03-135-02.png
944 | p03-135-01.png
945 | p03-142-02.png
946 | p03-142-03.png
947 | p03-142-06.png
948 | p03-142-05.png
949 | p03-142-00.png
950 | p03-142-01.png
951 | p03-142-04.png
952 | p03-151-06.png
953 | p03-151-00.png
954 | p03-151-07.png
955 | p03-151-05.png
956 | p03-151-03.png
957 | p03-151-02.png
958 | p03-151-04.png
959 | p03-151-01.png
960 | p03-158-05.png
961 | p03-158-02.png
962 | p03-158-03.png
963 | p03-158-06.png
964 | p03-158-01.png
965 | p03-158-07.png
966 | p03-158-00.png
967 | p03-158-04.png
968 | p03-185-02.png
969 | p03-185-06.png
970 | p03-185-07.png
971 | p03-185-03.png
972 | p03-185-00.png
973 | p03-185-05.png
974 | p03-185-08.png
975 | p03-185-04.png
976 | p03-185-01.png
977 |
--------------------------------------------------------------------------------
/ich17/ich.gin:
--------------------------------------------------------------------------------
1 | port = 12345
2 | manualSeed = 1111
3 | dist = 'DDP'
4 |
5 | n_channels = 3
6 | o_classes = 92
7 |
8 | GradCheck = 1
9 |
10 | # Parameters for get_images (ds_load.py):
11 | # ==============================================================================
12 | get_images.max_w = 1000
13 | get_images.max_h = 1400
14 | get_images.nch = %n_channels
15 |
16 | # Parameters for SameTrCollate (ds_load.py):
17 | # ==============================================================================
18 | SameTrCollate.prjAug = True
19 | SameTrCollate.prjVal = 125
20 |
21 | # Parameters for train (train.py):
22 | # ==============================================================================
23 | train.experiment_name = 'ich_gin_test_'
24 |
25 | train.AMP = False
26 | train.WdB = False
27 | train.wdbprj = 'pt-fpr-ich17'
28 | train.train_data_list = 'ich17/train'
29 | train.train_data_path = '/mnt/ich17/Train-B/'
30 | train.test_data_list = 'ich17/test'
31 | train.test_data_path = '/mnt/ich17/Train-B/'
32 | train.train_batch_size = 1
33 | train.val_batch_size = 1
34 | train.workers = 4
35 | train.lr = 0.01
36 | train.continue_model = ''
37 | train.valInterval = 500
38 | train.num_iter = 0
39 |
40 |
41 | # Parameters for OrigamiNet (cnv_model.py):
42 | # ==============================================================================
43 | OrigamiNet.n_channels = %n_channels
44 | OrigamiNet.o_classes = %o_classes
45 | OrigamiNet.fup = 33
46 | OrigamiNet.GradCheck = %GradCheck
47 |
48 | OrigamiNet.nlyrs = 12
49 | OrigamiNet.wmul = 1.0
50 |
51 | OrigamiNet.lszs = {0: 128,
52 | 2: 256,
53 | 4: 512,
54 | 11: 256 }
55 |
56 | ##resize structure##
57 | MaxPool2d.kernel_size = (2,2)
58 |
59 | Upsample.mode = 'bilinear'
60 | Upsample.align_corners = True
61 | s1/Upsample.size = (3500,31)
62 | s2/Upsample.size = (7200,15)
63 |
64 | OrigamiNet.lreszs = {
65 | 0: @MaxPool2d(),
66 | 2: @MaxPool2d(),
67 |
68 | 4: @PadPool(),
69 | 6: @PadPool(),
70 | 8: @PadPool(),
71 |
72 | 10: @s1/Upsample(),
73 | 11: @s2/Upsample()
74 | }
75 |
76 | # Parameters for InitBlock (cnv_model.py):
77 | # ==============================================================================
78 | InitBlock.n_channels = %n_channels
79 |
80 | # Parameters for GateBlock (cnv_model.py):
81 | # ==============================================================================
82 | GateBlock.GradCheck = %GradCheck
--------------------------------------------------------------------------------
/ich17/ich.py:
--------------------------------------------------------------------------------
1 | import xml.etree.ElementTree as ET
2 | from xml.sax.saxutils import unescape
3 | import glob
4 | import sys,os
5 | import scipy.misc
6 | from PIL import Image
7 | import os.path as osp
8 | import unicodedata
9 |
10 | base = sys.argv[1]
11 |
12 | xml = osp.join(base,'page/')
13 | pages = glob.glob(xml+'*.xml')
14 |
15 | rm = ["§","æ","","|","‰","#","+","[","]","œ","̃","‒","*","□","°","†","‹","›","ο","—","£","τ","ν","‡","ψ","ι","α","κ","ω","η","℔"," ","χ","ξ","₤","ε","π","~","μ","¬","Ζ","λ","Τ","Γ","І","̸","∫","·",">","♂","✓","Œ","♀","$","∆","ø","ρ","∇"]
16 | print(len(pages))
17 | a=[]
18 | for i in range(len(pages)):
19 | rt = ET.parse(pages[i]).getroot()
20 | un = rt.find(".//{http://schema.primaresearch.org/PAGE/gts/pagecontent/2013-07-15}Unicode")
21 | txt = unescape(un.text, {"'": "'", """: '"'})
22 | txt = unicodedata.normalize('NFKD', txt)
23 | txt = txt.translate({ord(i): None for i in rm})
24 |
25 | a.append(txt)
26 | open(osp.join(base,pages[i][-10:-4]+'.txt'),'w+').write(txt.strip())
--------------------------------------------------------------------------------
/ich17/ich.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | dst=$1
4 |
5 | wget --content-disposition https://zenodo.org/record/439811/files/Train-B_batch{1,2}.tbz2?download=1
6 |
7 | mkdir -p $dst
8 |
9 | cat Train-B_batch{1,2}.tbz2 | tar -jxvf - -i --strip-components=2 -C $dst
10 |
11 | python `dirname "$0"`/ich.py $dst
--------------------------------------------------------------------------------
/ich17/test:
--------------------------------------------------------------------------------
1 | 019001.jpg
2 | 019002.jpg
3 | 019003.jpg
4 | 019004.jpg
5 | 019005.jpg
6 | 019006.jpg
7 | 019007.jpg
8 | 019008.jpg
9 | 019009.jpg
10 | 019010.jpg
11 | 019011.jpg
12 | 019012.jpg
13 | 019013.jpg
14 | 019014.jpg
15 | 019015.jpg
16 | 019016.jpg
17 | 019017.jpg
18 | 019018.jpg
19 | 019019.jpg
20 | 019020.jpg
21 | 019021.jpg
22 | 019022.jpg
23 | 019023.jpg
24 | 019024.jpg
25 | 019025.jpg
26 | 019026.jpg
27 | 019027.jpg
28 | 019028.jpg
29 | 019029.jpg
30 | 019030.jpg
31 | 019031.jpg
32 | 019032.jpg
33 | 019033.jpg
34 | 019034.jpg
35 | 019035.jpg
36 | 019036.jpg
37 | 019037.jpg
38 | 019038.jpg
39 | 019039.jpg
40 | 019040.jpg
41 | 019041.jpg
42 | 019042.jpg
43 | 019043.jpg
44 | 019044.jpg
45 | 019045.jpg
46 | 019046.jpg
47 | 019047.jpg
48 | 019048.jpg
49 | 019049.jpg
50 | 019050.jpg
51 | 019051.jpg
52 | 019052.jpg
53 | 019053.jpg
54 | 019054.jpg
55 | 019055.jpg
56 | 019056.jpg
57 | 019057.jpg
58 | 019058.jpg
59 | 019059.jpg
60 | 019060.jpg
61 | 019061.jpg
62 | 019062.jpg
63 | 019063.jpg
64 | 019064.jpg
65 | 019065.jpg
66 | 019066.jpg
67 | 019067.jpg
68 | 019068.jpg
69 | 019069.jpg
70 | 019070.jpg
71 | 019071.jpg
72 | 019072.jpg
73 | 019073.jpg
74 | 019074.jpg
75 | 019075.jpg
76 | 019076.jpg
77 | 019077.jpg
78 | 019078.jpg
79 | 019079.jpg
80 | 019080.jpg
81 | 019081.jpg
82 | 019082.jpg
83 | 019083.jpg
84 | 019084.jpg
85 | 019085.jpg
86 | 019086.jpg
87 | 019087.jpg
88 | 019088.jpg
89 | 019089.jpg
90 | 019090.jpg
91 | 019091.jpg
92 | 019092.jpg
93 | 019093.jpg
94 | 019094.jpg
95 | 019095.jpg
96 | 019096.jpg
97 | 019097.jpg
98 | 019098.jpg
99 | 019099.jpg
100 | 019100.jpg
101 | 019101.jpg
102 | 019102.jpg
103 | 019103.jpg
104 | 019104.jpg
105 | 019105.jpg
106 | 019106.jpg
107 | 019107.jpg
108 | 019108.jpg
109 | 019109.jpg
110 | 019110.jpg
111 | 019111.jpg
112 | 019112.jpg
113 | 019113.jpg
114 | 019114.jpg
115 | 019115.jpg
116 | 019116.jpg
117 | 019117.jpg
118 | 019118.jpg
119 | 019119.jpg
120 | 019120.jpg
121 | 019121.jpg
122 | 019122.jpg
123 | 019123.jpg
124 | 019124.jpg
125 | 019125.jpg
126 | 019126.jpg
127 | 019127.jpg
128 | 019128.jpg
129 | 019129.jpg
130 | 019130.jpg
131 | 019131.jpg
132 | 019132.jpg
133 | 019133.jpg
134 | 019134.jpg
135 | 019135.jpg
136 | 019136.jpg
137 | 019137.jpg
138 | 019138.jpg
139 | 019139.jpg
140 | 019140.jpg
141 | 019141.jpg
142 | 019142.jpg
143 | 019143.jpg
144 | 019144.jpg
145 | 019145.jpg
146 | 019146.jpg
147 | 019147.jpg
148 | 019148.jpg
149 | 019149.jpg
150 | 019150.jpg
151 | 019151.jpg
152 | 019152.jpg
153 | 019153.jpg
154 | 019154.jpg
155 | 019155.jpg
156 | 019156.jpg
157 | 019157.jpg
158 | 019158.jpg
159 | 019159.jpg
160 | 019160.jpg
161 | 019161.jpg
162 | 019162.jpg
163 | 019163.jpg
164 | 019164.jpg
165 | 019165.jpg
166 | 019166.jpg
167 | 019167.jpg
168 | 019168.jpg
169 | 019169.jpg
170 | 019170.jpg
171 | 019171.jpg
172 | 019172.jpg
173 | 019173.jpg
174 | 019174.jpg
175 | 019175.jpg
176 | 019176.jpg
177 | 019177.jpg
178 | 019178.jpg
179 | 019179.jpg
180 | 019180.jpg
181 | 019181.jpg
182 | 019182.jpg
183 | 019183.jpg
184 | 019184.jpg
185 | 019185.jpg
186 | 019186.jpg
187 | 019187.jpg
188 | 019188.jpg
189 | 019189.jpg
190 | 019190.jpg
191 | 019191.jpg
192 | 019192.jpg
193 | 019193.jpg
194 | 019194.jpg
195 | 019195.jpg
196 | 019196.jpg
197 | 019197.jpg
198 | 019198.jpg
199 | 019199.jpg
200 | 019200.jpg
201 | 019201.jpg
202 | 019202.jpg
203 | 019203.jpg
204 | 019204.jpg
205 | 019205.jpg
206 | 019206.jpg
207 | 019207.jpg
208 | 019208.jpg
209 | 019209.jpg
210 | 019210.jpg
211 | 019211.jpg
212 | 019212.jpg
213 | 019213.jpg
214 | 019214.jpg
215 | 019215.jpg
216 | 019216.jpg
217 | 019217.jpg
218 | 019218.jpg
219 | 019219.jpg
220 | 019220.jpg
221 | 019221.jpg
222 | 019222.jpg
223 | 019223.jpg
224 | 019224.jpg
225 | 019225.jpg
226 | 019226.jpg
227 | 019227.jpg
228 | 019228.jpg
229 | 019229.jpg
230 | 019230.jpg
231 | 019231.jpg
232 | 019232.jpg
233 | 019233.jpg
234 | 019234.jpg
235 | 019235.jpg
236 | 019236.jpg
237 | 019237.jpg
238 | 019238.jpg
239 | 019239.jpg
240 | 019240.jpg
241 | 019241.jpg
242 | 019242.jpg
243 | 019243.jpg
244 | 019244.jpg
245 | 019245.jpg
246 | 019246.jpg
247 | 019247.jpg
248 | 019248.jpg
249 | 019249.jpg
250 | 019250.jpg
251 | 019251.jpg
252 | 019252.jpg
253 | 019253.jpg
254 | 019254.jpg
255 | 019255.jpg
256 | 019256.jpg
257 | 019257.jpg
258 | 019258.jpg
259 | 019259.jpg
260 | 019260.jpg
261 | 019261.jpg
262 | 019262.jpg
263 | 019263.jpg
264 | 019264.jpg
265 | 019265.jpg
266 | 019266.jpg
267 | 019267.jpg
268 | 019268.jpg
269 | 019269.jpg
270 | 019270.jpg
271 | 019271.jpg
272 | 019272.jpg
273 | 019273.jpg
274 | 019274.jpg
275 | 019275.jpg
276 | 019276.jpg
277 | 019277.jpg
278 | 019278.jpg
279 | 019279.jpg
280 | 019280.jpg
281 | 019281.jpg
282 | 019282.jpg
283 | 019283.jpg
284 | 019284.jpg
285 | 019285.jpg
286 | 019286.jpg
287 | 019287.jpg
288 | 019288.jpg
289 | 019289.jpg
290 | 019290.jpg
291 | 019291.jpg
292 | 019292.jpg
293 | 019293.jpg
294 | 019294.jpg
295 | 019295.jpg
296 | 019296.jpg
297 | 019297.jpg
298 | 019298.jpg
299 | 019299.jpg
300 | 019300.jpg
301 | 019301.jpg
302 | 019302.jpg
303 | 019303.jpg
304 | 019304.jpg
305 | 019305.jpg
306 | 019306.jpg
307 | 019307.jpg
308 | 019308.jpg
309 | 019309.jpg
310 | 019310.jpg
311 | 019311.jpg
312 | 019312.jpg
313 | 019313.jpg
314 | 019314.jpg
315 | 019315.jpg
316 | 019316.jpg
317 | 019317.jpg
318 | 019318.jpg
319 | 019319.jpg
320 | 019320.jpg
321 | 019321.jpg
322 | 019322.jpg
323 | 019323.jpg
324 | 019324.jpg
325 | 019325.jpg
326 | 019326.jpg
327 | 019327.jpg
328 | 019328.jpg
329 | 019329.jpg
330 | 019330.jpg
331 | 019331.jpg
332 | 019332.jpg
333 | 019333.jpg
334 | 019334.jpg
335 | 019335.jpg
336 | 019336.jpg
337 | 019337.jpg
338 | 019338.jpg
339 | 019339.jpg
340 | 019340.jpg
341 | 019341.jpg
342 | 019342.jpg
343 | 019343.jpg
344 | 019344.jpg
345 | 019345.jpg
346 | 019346.jpg
347 | 019347.jpg
348 | 019348.jpg
349 | 019349.jpg
350 | 019350.jpg
351 | 019351.jpg
352 | 019352.jpg
353 | 019353.jpg
354 | 019354.jpg
355 | 019355.jpg
356 | 019356.jpg
357 | 019357.jpg
358 | 019358.jpg
359 | 019359.jpg
360 | 019360.jpg
361 | 019361.jpg
362 | 019362.jpg
363 | 019363.jpg
364 | 019364.jpg
365 | 019365.jpg
366 | 019366.jpg
367 | 019367.jpg
368 | 019368.jpg
369 | 019369.jpg
370 | 019370.jpg
371 | 019371.jpg
372 | 019372.jpg
373 | 019373.jpg
374 | 019374.jpg
375 | 019375.jpg
376 | 019376.jpg
377 | 019377.jpg
378 | 019378.jpg
379 | 019379.jpg
380 | 019380.jpg
381 | 019381.jpg
382 | 019382.jpg
383 | 019383.jpg
384 | 019384.jpg
385 | 019385.jpg
386 | 019386.jpg
387 | 019387.jpg
388 | 019388.jpg
389 | 019389.jpg
390 | 019390.jpg
391 | 019391.jpg
392 | 019392.jpg
393 | 019393.jpg
394 | 019394.jpg
395 | 019395.jpg
396 | 019396.jpg
397 | 019397.jpg
398 | 019398.jpg
399 | 019399.jpg
400 | 019400.jpg
401 | 019401.jpg
402 | 019402.jpg
403 | 019403.jpg
404 | 019404.jpg
405 | 019405.jpg
406 | 019406.jpg
407 | 019407.jpg
408 | 019408.jpg
409 | 019409.jpg
410 | 019410.jpg
411 | 019411.jpg
412 | 019412.jpg
413 | 019413.jpg
414 | 019414.jpg
415 | 019415.jpg
416 | 019416.jpg
417 | 019417.jpg
418 | 019418.jpg
419 | 019419.jpg
420 | 019420.jpg
421 | 019421.jpg
422 | 019422.jpg
423 | 019423.jpg
424 | 019424.jpg
425 | 019425.jpg
426 | 019426.jpg
427 | 019427.jpg
428 | 019428.jpg
429 | 019429.jpg
430 | 019430.jpg
431 | 019431.jpg
432 | 019432.jpg
433 | 019433.jpg
434 | 019434.jpg
435 | 019435.jpg
436 | 019436.jpg
437 | 019437.jpg
438 | 019438.jpg
439 | 019439.jpg
440 | 019440.jpg
441 | 019441.jpg
442 | 019442.jpg
443 | 019443.jpg
444 | 019444.jpg
445 | 019445.jpg
446 | 019446.jpg
447 | 019447.jpg
448 | 019448.jpg
449 | 019449.jpg
450 | 019450.jpg
451 | 019451.jpg
452 | 019452.jpg
453 | 019453.jpg
454 | 019454.jpg
455 | 019455.jpg
456 | 019456.jpg
457 | 019457.jpg
458 | 019458.jpg
459 | 019459.jpg
460 | 019460.jpg
461 | 019461.jpg
462 | 019462.jpg
463 | 019463.jpg
464 | 019464.jpg
465 | 019465.jpg
466 | 019466.jpg
467 | 019467.jpg
468 | 019468.jpg
469 | 019469.jpg
470 | 019470.jpg
471 | 019471.jpg
472 | 019472.jpg
473 | 019473.jpg
474 | 019474.jpg
475 | 019475.jpg
476 | 019476.jpg
477 | 019477.jpg
478 | 019478.jpg
479 | 019479.jpg
480 | 019480.jpg
481 | 019481.jpg
482 | 019482.jpg
483 | 019483.jpg
484 | 019484.jpg
485 | 019485.jpg
486 | 019486.jpg
487 | 019487.jpg
488 | 019488.jpg
489 | 019489.jpg
490 | 019490.jpg
491 | 019491.jpg
492 | 019492.jpg
493 | 019493.jpg
494 | 019494.jpg
495 | 019495.jpg
496 | 019496.jpg
497 | 019497.jpg
498 | 019498.jpg
499 | 019499.jpg
500 | 019500.jpg
501 | 019501.jpg
502 | 019502.jpg
503 | 019503.jpg
504 | 019504.jpg
505 | 019505.jpg
506 | 019506.jpg
507 | 019507.jpg
508 | 019508.jpg
509 | 019509.jpg
510 | 019510.jpg
511 | 019511.jpg
512 | 019512.jpg
513 | 019513.jpg
514 | 019514.jpg
515 | 019515.jpg
516 | 019516.jpg
517 | 019517.jpg
518 | 019518.jpg
519 | 019519.jpg
520 | 019520.jpg
521 | 019521.jpg
522 | 019522.jpg
523 | 019523.jpg
524 | 019524.jpg
525 | 019525.jpg
526 | 019526.jpg
527 | 019527.jpg
528 | 019528.jpg
529 | 019529.jpg
530 | 019530.jpg
531 | 019531.jpg
532 | 019532.jpg
533 | 019533.jpg
534 | 019534.jpg
535 | 019535.jpg
536 | 019536.jpg
537 | 019537.jpg
538 | 019538.jpg
539 | 019539.jpg
540 | 019540.jpg
541 | 019541.jpg
542 | 019542.jpg
543 | 019543.jpg
544 | 019544.jpg
545 | 019545.jpg
546 | 019546.jpg
547 | 019547.jpg
548 | 019548.jpg
549 | 019549.jpg
550 | 019550.jpg
551 | 019551.jpg
552 | 019552.jpg
553 | 019553.jpg
554 | 019554.jpg
555 | 019555.jpg
556 | 019556.jpg
557 | 019557.jpg
558 | 019558.jpg
559 | 019559.jpg
560 | 019560.jpg
561 | 019561.jpg
562 | 019562.jpg
563 | 019563.jpg
564 | 019564.jpg
565 | 019565.jpg
566 | 019566.jpg
567 | 019567.jpg
568 | 019568.jpg
569 | 019569.jpg
570 | 019570.jpg
571 | 019571.jpg
572 | 019572.jpg
573 | 019573.jpg
574 | 019574.jpg
575 | 019575.jpg
576 | 019576.jpg
577 | 019577.jpg
578 | 019578.jpg
579 | 019579.jpg
580 | 019580.jpg
581 | 019581.jpg
582 | 019582.jpg
583 | 019583.jpg
584 | 019584.jpg
585 | 019585.jpg
586 | 019586.jpg
587 | 019587.jpg
588 | 019588.jpg
589 | 019589.jpg
590 | 019590.jpg
591 | 019591.jpg
592 | 019592.jpg
593 | 019593.jpg
594 | 019594.jpg
595 | 019595.jpg
596 | 019596.jpg
597 | 019597.jpg
598 | 019598.jpg
599 | 019599.jpg
600 | 019600.jpg
601 | 019601.jpg
602 | 019602.jpg
603 | 019603.jpg
604 | 019604.jpg
605 | 019605.jpg
606 | 019606.jpg
607 | 019607.jpg
608 | 019608.jpg
609 | 019609.jpg
610 | 019610.jpg
611 | 019611.jpg
612 | 019612.jpg
613 | 019613.jpg
614 | 019614.jpg
615 | 019615.jpg
616 | 019616.jpg
617 | 019617.jpg
618 | 019618.jpg
619 | 019619.jpg
620 | 019620.jpg
621 | 019621.jpg
622 | 019622.jpg
623 | 019623.jpg
624 | 019624.jpg
625 | 019625.jpg
626 | 019626.jpg
627 | 019627.jpg
628 | 019628.jpg
629 | 019629.jpg
630 | 019630.jpg
631 | 019631.jpg
632 | 019632.jpg
633 | 019633.jpg
634 | 019634.jpg
635 | 019635.jpg
636 | 019636.jpg
637 | 019637.jpg
638 | 019638.jpg
639 | 019639.jpg
640 | 019640.jpg
641 | 019641.jpg
642 | 019642.jpg
643 | 019643.jpg
644 | 019644.jpg
645 | 019645.jpg
646 | 019646.jpg
647 | 019647.jpg
648 | 019648.jpg
649 | 019649.jpg
650 | 019650.jpg
651 | 019651.jpg
652 | 019652.jpg
653 | 019653.jpg
654 | 019654.jpg
655 | 019655.jpg
656 | 019656.jpg
657 | 019657.jpg
658 | 019658.jpg
659 | 019659.jpg
660 | 019660.jpg
661 | 019661.jpg
662 | 019662.jpg
663 | 019663.jpg
664 | 019664.jpg
665 | 019665.jpg
666 | 019666.jpg
667 | 019667.jpg
668 | 019668.jpg
669 | 019669.jpg
670 | 019670.jpg
671 | 019671.jpg
672 | 019672.jpg
673 | 019673.jpg
674 | 019674.jpg
675 | 019675.jpg
676 | 019676.jpg
677 | 019677.jpg
678 | 019678.jpg
679 | 019679.jpg
680 | 019680.jpg
681 | 019681.jpg
682 | 019682.jpg
683 | 019683.jpg
684 | 019684.jpg
685 | 019685.jpg
686 | 019686.jpg
687 | 019687.jpg
688 | 019688.jpg
689 | 019689.jpg
690 | 019690.jpg
691 | 019691.jpg
692 | 019692.jpg
693 | 019693.jpg
694 | 019694.jpg
695 | 019695.jpg
696 | 019696.jpg
697 | 019697.jpg
698 | 019698.jpg
699 | 019699.jpg
700 | 019700.jpg
701 | 019701.jpg
702 | 019702.jpg
703 | 019703.jpg
704 | 019704.jpg
705 | 019705.jpg
706 | 019706.jpg
707 | 019707.jpg
708 | 019708.jpg
709 | 019709.jpg
710 | 019710.jpg
711 | 019711.jpg
712 | 019712.jpg
713 | 019713.jpg
714 | 019714.jpg
715 | 019715.jpg
716 | 019716.jpg
717 | 019717.jpg
718 | 019718.jpg
719 | 019719.jpg
720 | 019720.jpg
721 | 019721.jpg
722 | 019722.jpg
723 | 019723.jpg
724 | 019724.jpg
725 | 019725.jpg
726 | 019726.jpg
727 | 019727.jpg
728 | 019728.jpg
729 | 019729.jpg
730 | 019730.jpg
731 | 019731.jpg
732 | 019732.jpg
733 | 019733.jpg
734 | 019734.jpg
735 | 019735.jpg
736 | 019736.jpg
737 | 019737.jpg
738 | 019738.jpg
739 | 019739.jpg
740 | 019740.jpg
741 | 019741.jpg
742 | 019742.jpg
743 | 019743.jpg
744 | 019744.jpg
745 | 019745.jpg
746 | 019746.jpg
747 | 019747.jpg
748 | 019748.jpg
749 | 019749.jpg
750 | 019750.jpg
751 | 019751.jpg
752 | 019752.jpg
753 | 019753.jpg
754 | 019754.jpg
755 | 019755.jpg
756 | 019756.jpg
757 | 019757.jpg
758 | 019758.jpg
759 | 019759.jpg
760 | 019760.jpg
761 | 019761.jpg
762 | 019762.jpg
763 | 019763.jpg
764 | 019764.jpg
765 | 019765.jpg
766 | 019766.jpg
767 | 019767.jpg
768 | 019768.jpg
769 | 019769.jpg
770 | 019770.jpg
771 | 019771.jpg
772 | 019772.jpg
773 | 019773.jpg
774 | 019774.jpg
775 | 019775.jpg
776 | 019776.jpg
777 | 019777.jpg
778 | 019778.jpg
779 | 019779.jpg
780 | 019780.jpg
781 | 019781.jpg
782 | 019782.jpg
783 | 019783.jpg
784 | 019784.jpg
785 | 019785.jpg
786 | 019786.jpg
787 | 019787.jpg
788 | 019788.jpg
789 | 019789.jpg
790 | 019790.jpg
791 | 019791.jpg
792 | 019792.jpg
793 | 019793.jpg
794 | 019794.jpg
795 | 019795.jpg
796 | 019796.jpg
797 | 019797.jpg
798 | 019798.jpg
799 | 019799.jpg
800 | 019800.jpg
801 | 019801.jpg
802 | 019802.jpg
803 | 019803.jpg
804 | 019804.jpg
805 | 019805.jpg
806 | 019806.jpg
807 | 019807.jpg
808 | 019808.jpg
809 | 019809.jpg
810 | 019810.jpg
811 | 019811.jpg
812 | 019812.jpg
813 | 019813.jpg
814 | 019814.jpg
815 | 019815.jpg
816 | 019816.jpg
817 | 019817.jpg
818 | 019818.jpg
819 | 019819.jpg
820 | 019820.jpg
821 | 019821.jpg
822 | 019822.jpg
823 | 019823.jpg
824 | 019824.jpg
825 | 019825.jpg
826 | 019826.jpg
827 | 019827.jpg
828 | 019828.jpg
829 | 019829.jpg
830 | 019830.jpg
831 | 019831.jpg
832 | 019832.jpg
833 | 019833.jpg
834 | 019834.jpg
835 | 019835.jpg
836 | 019836.jpg
837 | 019837.jpg
838 | 019838.jpg
839 | 019839.jpg
840 | 019840.jpg
841 | 019841.jpg
842 | 019842.jpg
843 | 019843.jpg
844 | 019844.jpg
845 | 019845.jpg
846 | 019846.jpg
847 | 019847.jpg
848 | 019848.jpg
849 | 019849.jpg
850 | 019850.jpg
851 | 019851.jpg
852 | 019852.jpg
853 | 019853.jpg
854 | 019854.jpg
855 | 019855.jpg
856 | 019856.jpg
857 | 019857.jpg
858 | 019858.jpg
859 | 019859.jpg
860 | 019860.jpg
861 | 019861.jpg
862 | 019862.jpg
863 | 019863.jpg
864 | 019864.jpg
865 | 019865.jpg
866 | 019866.jpg
867 | 019867.jpg
868 | 019868.jpg
869 | 019869.jpg
870 | 019870.jpg
871 | 019871.jpg
872 | 019872.jpg
873 | 019873.jpg
874 | 019874.jpg
875 | 019875.jpg
876 | 019876.jpg
877 | 019877.jpg
878 | 019878.jpg
879 | 019879.jpg
880 | 019880.jpg
881 | 019881.jpg
882 | 019882.jpg
883 | 019883.jpg
884 | 019884.jpg
885 | 019885.jpg
886 | 019886.jpg
887 | 019887.jpg
888 | 019888.jpg
889 | 019889.jpg
890 | 019890.jpg
891 | 019891.jpg
892 | 019892.jpg
893 | 019893.jpg
894 | 019894.jpg
895 | 019895.jpg
896 | 019896.jpg
897 | 019897.jpg
898 | 019898.jpg
899 | 019899.jpg
900 | 019900.jpg
901 | 019901.jpg
902 | 019902.jpg
903 | 019903.jpg
904 | 019904.jpg
905 | 019905.jpg
906 | 019906.jpg
907 | 019907.jpg
908 | 019908.jpg
909 | 019909.jpg
910 | 019910.jpg
911 | 019911.jpg
912 | 019912.jpg
913 | 019913.jpg
914 | 019914.jpg
915 | 019915.jpg
916 | 019916.jpg
917 | 019917.jpg
918 | 019918.jpg
919 | 019919.jpg
920 | 019920.jpg
921 | 019921.jpg
922 | 019922.jpg
923 | 019923.jpg
924 | 019924.jpg
925 | 019925.jpg
926 | 019926.jpg
927 | 019927.jpg
928 | 019928.jpg
929 | 019929.jpg
930 | 019930.jpg
931 | 019931.jpg
932 | 019932.jpg
933 | 019933.jpg
934 | 019934.jpg
935 | 019935.jpg
936 | 019936.jpg
937 | 019937.jpg
938 | 019938.jpg
939 | 019939.jpg
940 | 019940.jpg
941 | 019941.jpg
942 | 019942.jpg
943 | 019943.jpg
944 | 019944.jpg
945 | 019945.jpg
946 | 019946.jpg
947 | 019947.jpg
948 | 019948.jpg
949 | 019949.jpg
950 | 019950.jpg
951 | 019951.jpg
952 | 019952.jpg
953 | 019953.jpg
954 | 019954.jpg
955 | 019955.jpg
956 | 019956.jpg
957 | 019957.jpg
958 | 019958.jpg
959 | 019959.jpg
960 | 019960.jpg
961 | 019961.jpg
962 | 019962.jpg
963 | 019963.jpg
964 | 019964.jpg
965 | 019965.jpg
966 | 019966.jpg
967 | 019967.jpg
968 | 019968.jpg
969 | 019969.jpg
970 | 019970.jpg
971 | 019971.jpg
972 | 019972.jpg
973 | 019973.jpg
974 | 019974.jpg
975 | 019975.jpg
976 | 019976.jpg
977 | 019977.jpg
978 | 019978.jpg
979 | 019979.jpg
980 | 019980.jpg
981 | 019981.jpg
982 | 019982.jpg
983 | 019983.jpg
984 | 019984.jpg
985 | 019985.jpg
986 | 019986.jpg
987 | 019987.jpg
988 | 019988.jpg
989 | 019989.jpg
990 | 019990.jpg
991 | 019991.jpg
992 | 019992.jpg
993 | 019993.jpg
994 | 019994.jpg
995 | 019995.jpg
996 | 019996.jpg
997 | 019997.jpg
998 | 019998.jpg
999 | 019999.jpg
1000 | 020000.jpg
1001 |
--------------------------------------------------------------------------------
/o1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/IntuitionMachines/OrigamiNet/9e82724cc2998d583a976b1ca781f7aeba73c38c/o1.png
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | opencv_python_headless==4.1.2.30
2 | natsort
3 | numpy
4 | tqdm
5 | lmdb
6 | scikit_image
7 | matplotlib
8 | torchsummary
9 | nltk
10 | torchvision
11 | imageio
12 | six
13 | scipy
14 | fire
15 | Pillow
16 | scikit_learn
17 | horovod
18 | editdistance
19 | git+https://github.com/google/gin-config
--------------------------------------------------------------------------------
/test.py:
--------------------------------------------------------------------------------
1 | import os
2 | import time
3 | import string
4 |
5 | import torch
6 | import torch.backends.cudnn as cudnn
7 | import torch.utils.data
8 | import torch.distributed as dist
9 | import numpy as np
10 | import editdistance
11 | from nltk.translate.bleu_score import sentence_bleu
12 | import horovod.torch as hvd
13 |
14 | from utils import Averager
15 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
16 |
17 |
18 | def metric_sum_hvd(val, name):
19 | tensor = torch.tensor(val)
20 | avg_tensor = hvd.allreduce(tensor, name=name, average=False)
21 | return avg_tensor.item()
22 |
23 | def metric_sum_ddp(tensor, av=False):
24 | # rt = tensor.clone()
25 | rt = torch.tensor(tensor).cuda()
26 | dist.all_reduce(rt, op=dist.ReduceOp.SUM)
27 | if av:
28 | rt /= dist.get_world_size()
29 | return rt
30 |
31 | def validation(model, criterion, evaluation_loader, converter, opt, parO):
32 | """ validation or evaluation """
33 | n_correct = 0
34 | norm_ED = 0
35 | tot_ED = 0
36 | length_of_gt = 0
37 | bleu = 0.0
38 | infer_time = 0
39 | valid_loss_avg = Averager()
40 |
41 | for i, (image_tensors, labels) in enumerate(evaluation_loader):
42 | batch_size = image_tensors.size(0)
43 | image = image_tensors.to(device)
44 |
45 | text_for_loss, length_for_loss = converter.encode(labels)
46 |
47 | start_time = time.time()
48 |
49 | preds = model(image, '')
50 | forward_time = time.time() - start_time
51 |
52 | # Calculate evaluation loss for CTC deocder.
53 | preds_size = torch.IntTensor([preds.size(1)] * batch_size)
54 | preds = preds.permute(1, 0, 2).log_softmax(2) # to use CTCloss format
55 |
56 | # To avoid ctc_loss issue, disabled cudnn for the computation of the ctc_loss
57 | # https://github.com/jpuigcerver/PyLaia/issues/16
58 | torch.backends.cudnn.enabled = False
59 | cost = criterion(preds, text_for_loss, preds_size, length_for_loss).mean()
60 | torch.backends.cudnn.enabled = True
61 |
62 | _, preds_index = preds.max(2)
63 | preds_index = preds_index.transpose(1, 0).contiguous().view(-1)
64 | preds_str = converter.decode(preds_index.data, preds_size.data)
65 |
66 | infer_time += forward_time
67 | valid_loss_avg.add(cost)
68 |
69 | # calculate accuracy.
70 | for pred, gt in zip(preds_str, labels):
71 | tmped = editdistance.eval(pred, gt)
72 | if pred == gt:
73 | n_correct += 1
74 | if len(gt) == 0:
75 | norm_ED += 1
76 | else:
77 | norm_ED += tmped / float(len(gt))
78 |
79 | tot_ED += tmped
80 | length_of_gt += len(gt)
81 | bleu += sentence_bleu( [list(gt)], list(pred) )
82 |
83 | if parO.HVD:
84 | n_correct = metric_sum_hvd(n_correct , 'sum_n_correct')
85 | tot_ED = metric_sum_hvd(tot_ED , 'sum_tot_ED')
86 | length_of_gt = metric_sum_hvd(length_of_gt , 'sum_length_of_gt')
87 | norm_ED = metric_sum_hvd(norm_ED, 'sum_norm_ED')
88 | bleu = metric_sum_hvd(bleu, 'sum_bleu')
89 |
90 | elif parO.DDP:
91 | val_loss = metric_sum_ddp(valid_loss_avg.val(), av=True)
92 | n_correct = metric_sum_ddp(n_correct)
93 | tot_ED = metric_sum_ddp(tot_ED)
94 | length_of_gt = metric_sum_ddp(length_of_gt)
95 | norm_ED = metric_sum_ddp(norm_ED)
96 | bleu = metric_sum_ddp(bleu)
97 |
98 | nelms = float(len(evaluation_loader.dataset))
99 | tot_ED = tot_ED / float(length_of_gt)
100 | val_loss = valid_loss_avg.val() if not parO.DDP else val_loss
101 | bleu /= nelms
102 | norm_ED /= nelms
103 | accuracy = n_correct / nelms * 100
104 |
105 | return val_loss, accuracy, norm_ED, tot_ED, bleu, preds_str, labels, infer_time
--------------------------------------------------------------------------------
/train.py:
--------------------------------------------------------------------------------
1 | import os
2 | import sys
3 | import time
4 | import random
5 | import string
6 | import argparse
7 | from collections import namedtuple
8 | import copy
9 |
10 | import torch
11 | import torch.backends.cudnn as cudnn
12 | import torch.nn.init as init
13 | import torch.optim as optim
14 | import torch.utils.data
15 | from torch import autograd
16 | import torch.multiprocessing as mp
17 | import torch.distributed as dist
18 | from torch.utils.data import Dataset
19 | from torch.nn.parallel import DistributedDataParallel as pDDP
20 |
21 | from torchsummary import summary
22 | from torchvision.utils import save_image
23 | import horovod.torch as hvd
24 | import gin
25 |
26 | import numpy as np
27 | from tqdm import tqdm, trange
28 | from PIL import Image
29 |
30 | import apex
31 | from apex.parallel import DistributedDataParallel as aDDP
32 | from apex.fp16_utils import *
33 | from apex import amp
34 | from apex.multi_tensor_apply import multi_tensor_applier
35 |
36 | import wandb
37 | import ds_load
38 |
39 | from utils import CTCLabelConverter, Averager, ModelEma, Metric
40 | from cnv_model import OrigamiNet, ginM
41 | from test import validation
42 |
43 | parOptions = namedtuple('parOptions', ['DP', 'DDP', 'HVD'])
44 | parOptions.__new__.__defaults__ = (False,) * len(parOptions._fields)
45 |
46 | pO = None
47 | OnceExecWorker = None
48 |
49 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
50 |
51 | def init_bn(model):
52 | if type(model) in [torch.nn.InstanceNorm2d, torch.nn.BatchNorm2d]:
53 | init.ones_(model.weight)
54 | init.zeros_(model.bias)
55 |
56 | elif type(model) in [torch.nn.Conv2d]:
57 | init.kaiming_uniform_(model.weight)
58 |
59 | def WrkSeeder(_):
60 | return np.random.seed((torch.initial_seed()) % (2 ** 32))
61 |
62 | @gin.configurable
63 | def train(opt, AMP, WdB, train_data_path, train_data_list, test_data_path, test_data_list, experiment_name,
64 | train_batch_size, val_batch_size, workers, lr, valInterval, num_iter, wdbprj, continue_model=''):
65 |
66 | HVD3P = pO.HVD or pO.DDP
67 |
68 | os.makedirs(f'./saved_models/{experiment_name}', exist_ok=True)
69 |
70 | if OnceExecWorker and WdB:
71 | wandb.init(project=wdbprj, name=experiment_name)
72 | wandb.config.update(opt)
73 |
74 | train_dataset = ds_load.myLoadDS(train_data_list, train_data_path)
75 | valid_dataset = ds_load.myLoadDS(test_data_list, test_data_path , ralph=train_dataset.ralph)
76 |
77 | if OnceExecWorker:
78 | print(pO)
79 | print('Alphabet :',len(train_dataset.alph),train_dataset.alph)
80 | for d in [train_dataset, valid_dataset]:
81 | print('Dataset Size :',len(d.fns))
82 | print('Max LbW : ',max(list(map(len,d.tlbls))) )
83 | print('#Chars : ',sum([len(x) for x in d.tlbls]))
84 | print('Sample label :',d.tlbls[-1])
85 | print("Dataset :", sorted(list(map(len,d.tlbls))) )
86 | print('-'*80)
87 |
88 | if opt.num_gpu > 1:
89 | workers = workers * ( 1 if HVD3P else opt.num_gpu )
90 |
91 | if HVD3P:
92 | train_sampler = torch.utils.data.distributed.DistributedSampler(train_dataset, num_replicas=opt.world_size, rank=opt.rank)
93 | valid_sampler = torch.utils.data.distributed.DistributedSampler(valid_dataset, num_replicas=opt.world_size, rank=opt.rank)
94 |
95 | train_loader = torch.utils.data.DataLoader( train_dataset, batch_size=train_batch_size, shuffle=True if not HVD3P else False,
96 | pin_memory = True, num_workers = int(workers),
97 | sampler = train_sampler if HVD3P else None,
98 | worker_init_fn = WrkSeeder,
99 | collate_fn = ds_load.SameTrCollate
100 | )
101 |
102 | valid_loader = torch.utils.data.DataLoader( valid_dataset, batch_size=val_batch_size , pin_memory=True,
103 | num_workers = int(workers), sampler=valid_sampler if HVD3P else None)
104 |
105 | model = OrigamiNet()
106 | model.apply(init_bn)
107 | model.train()
108 |
109 | if OnceExecWorker: import pprint;[print(k,model.lreszs[k]) for k in sorted(model.lreszs.keys())]
110 |
111 | biparams = list(dict(filter(lambda kv: 'bias' in kv[0], model.named_parameters())).values())
112 | nonbiparams = list(dict(filter(lambda kv: 'bias' not in kv[0], model.named_parameters())).values())
113 |
114 | if not pO.DDP:
115 | model = model.to(device)
116 | else:
117 | model.cuda(opt.rank)
118 |
119 | optimizer = optim.Adam(model.parameters(), lr=lr)
120 | lr_scheduler = torch.optim.lr_scheduler.ExponentialLR(optimizer, gamma=10**(-1/90000))
121 |
122 | if OnceExecWorker and WdB:
123 | wandb.watch(model, log="all")
124 |
125 | if pO.HVD:
126 | hvd.broadcast_parameters(model.state_dict(), root_rank=0)
127 | hvd.broadcast_optimizer_state(optimizer, root_rank=0)
128 | optimizer = hvd.DistributedOptimizer(optimizer, named_parameters=model.named_parameters())
129 | # optimizer = hvd.DistributedOptimizer(optimizer, named_parameters=model.named_parameters(), compression=hvd.Compression.fp16)
130 |
131 | if pO.DDP and opt.rank!=0:
132 | random.seed()
133 | np.random.seed()
134 |
135 | if AMP:
136 | model, optimizer = amp.initialize(model, optimizer, opt_level = "O1")
137 | if pO.DP:
138 | model = torch.nn.DataParallel(model)
139 | elif pO.DDP:
140 | model = pDDP(model, device_ids=[opt.rank], output_device=opt.rank,find_unused_parameters=False)
141 |
142 |
143 |
144 | model_ema = ModelEma(model)
145 |
146 | if continue_model != '':
147 | if OnceExecWorker: print(f'loading pretrained model from {continue_model}')
148 | checkpoint = torch.load(continue_model, map_location=f'cuda:{opt.rank}' if HVD3P else None)
149 | model.load_state_dict(checkpoint['model'], strict=True)
150 | optimizer.load_state_dict(checkpoint['optimizer'])
151 | model_ema._load_checkpoint(continue_model, f'cuda:{opt.rank}' if HVD3P else None)
152 |
153 | criterion = torch.nn.CTCLoss(reduction='none', zero_infinity=True).to(device)
154 | converter = CTCLabelConverter(train_dataset.ralph.values())
155 |
156 | if OnceExecWorker:
157 | with open(f'./saved_models/{experiment_name}/opt.txt', 'a') as opt_file:
158 | opt_log = '------------ Options -------------\n'
159 | args = vars(opt)
160 | for k, v in args.items():
161 | opt_log += f'{str(k)}: {str(v)}\n'
162 | opt_log += '---------------------------------------\n'
163 | opt_log += gin.operative_config_str()
164 | opt_file.write(opt_log)
165 | if WdB:
166 | wandb.config.gin_str = gin.operative_config_str().splitlines()
167 |
168 |
169 | print(optimizer)
170 | print(opt_log)
171 |
172 | start_time = time.time()
173 | best_accuracy = -1
174 | best_norm_ED = 1e+6
175 | best_CER = 1e+6
176 | i = 0
177 | gAcc = 1
178 | epoch = 1
179 | btReplay = False and AMP
180 | max_batch_replays = 3
181 |
182 | if HVD3P: train_sampler.set_epoch(epoch)
183 | titer = iter(train_loader)
184 |
185 | while(True):
186 | start_time = time.time()
187 |
188 | model.zero_grad()
189 | train_loss = Metric(pO,'train_loss')
190 |
191 | for j in trange(valInterval, leave=False, desc='Training'):
192 |
193 | try:
194 | image_tensors, labels = next(titer)
195 | except StopIteration:
196 | epoch += 1
197 | if HVD3P: train_sampler.set_epoch(epoch)
198 | titer = iter(train_loader)
199 | image_tensors, labels = next(titer)
200 |
201 | image = image_tensors.to(device)
202 | text, length = converter.encode(labels)
203 | batch_size = image.size(0)
204 |
205 | replay_batch = True
206 | maxR = 3
207 | while replay_batch and maxR>0:
208 | maxR -= 1
209 |
210 | preds = model(image,text).float()
211 | preds_size = torch.IntTensor([preds.size(1)] * batch_size).to(device)
212 | preds = preds.permute(1, 0, 2).log_softmax(2)
213 |
214 | if i==0 and OnceExecWorker:
215 | print('Model inp : ',image.dtype,image.size())
216 | print('CTC inp : ',preds.dtype,preds.size(),preds_size[0])
217 |
218 | # To avoid ctc_loss issue, disabled cudnn for the computation of the ctc_loss
219 | torch.backends.cudnn.enabled = False
220 | cost = criterion(preds, text.to(device), preds_size, length.to(device)).mean() / gAcc
221 | torch.backends.cudnn.enabled = True
222 |
223 | train_loss.update(cost)
224 |
225 | optimizer.zero_grad()
226 | default_optimizer_step = optimizer.step # added for batch replay
227 |
228 | if not AMP:
229 | cost.backward()
230 | replay_batch = False
231 | else:
232 | with amp.scale_loss(cost, optimizer) as scaled_loss:
233 | scaled_loss.backward()
234 | if pO.HVD: optimizer.synchronize()
235 |
236 | if optimizer.step is default_optimizer_step or not btReplay:
237 | replay_batch = False
238 | elif maxR>0:
239 | optimizer.step()
240 |
241 |
242 | if btReplay: amp._amp_state.loss_scalers[0]._loss_scale = mx_sc
243 |
244 | if (i+1) % gAcc == 0:
245 |
246 | if pO.HVD and AMP:
247 | with optimizer.skip_synchronize():
248 | optimizer.step()
249 | else:
250 | optimizer.step()
251 |
252 | model.zero_grad()
253 | model_ema.update(model, num_updates=i/2)
254 |
255 | if (i+1) % (gAcc*2) == 0:
256 | lr_scheduler.step()
257 |
258 | i += 1
259 |
260 | # validation part
261 | if True:
262 |
263 | elapsed_time = time.time() - start_time
264 | start_time = time.time()
265 |
266 | model.eval()
267 | with torch.no_grad():
268 |
269 |
270 | valid_loss, current_accuracy, current_norm_ED, ted, bleu, preds, labels, infer_time = validation(
271 | model_ema.ema, criterion, valid_loader, converter, opt, pO)
272 |
273 | model.train()
274 | v_time = time.time() - start_time
275 |
276 | if OnceExecWorker:
277 | if current_norm_ED < best_norm_ED:
278 | best_norm_ED = current_norm_ED
279 | checkpoint = {
280 | 'model': model.state_dict(),
281 | 'state_dict_ema': model_ema.ema.state_dict(),
282 | 'optimizer': optimizer.state_dict(),
283 | }
284 | torch.save(checkpoint, f'./saved_models/{experiment_name}/best_norm_ED.pth')
285 |
286 | if ted < best_CER:
287 | best_CER = ted
288 |
289 | if current_accuracy > best_accuracy:
290 | best_accuracy = current_accuracy
291 |
292 | out = f'[{i}] Loss: {train_loss.avg:0.5f} time: ({elapsed_time:0.1f},{v_time:0.1f})'
293 | out += f' vloss: {valid_loss:0.3f}'
294 | out += f' CER: {ted:0.4f} NER: {current_norm_ED:0.4f} lr: {lr_scheduler.get_lr()[0]:0.5f}'
295 | out += f' bAcc: {best_accuracy:0.1f}, bNER: {best_norm_ED:0.4f}, bCER: {best_CER:0.4f}, B: {bleu*100:0.2f}'
296 | print(out)
297 |
298 | with open(f'./saved_models/{experiment_name}/log_train.txt', 'a') as log: log.write(out + '\n')
299 |
300 | if WdB:
301 | wandb.log({'lr': lr_scheduler.get_lr()[0], 'It':i, 'nED': current_norm_ED, 'B':bleu*100,
302 | 'tloss':train_loss.avg, 'AnED': best_norm_ED, 'CER':ted, 'bestCER':best_CER, 'vloss':valid_loss})
303 |
304 | if i == num_iter:
305 | print('end the training')
306 | sys.exit()
307 |
308 | def gInit(opt):
309 | global pO, OnceExecWorker
310 | gin.parse_config_file(opt.gin)
311 | pO = parOptions(**{ginM('dist'):True})
312 |
313 | if pO.HVD:
314 | hvd.init()
315 | torch.cuda.set_device(hvd.local_rank())
316 |
317 | OnceExecWorker = (pO.HVD and hvd.rank() == 0) or (pO.DP)
318 | cudnn.benchmark = True
319 |
320 |
321 | def rSeed(sd):
322 | random.seed(sd)
323 | np.random.seed(sd)
324 | torch.manual_seed(sd)
325 | torch.cuda.manual_seed(sd)
326 |
327 | def launch_fn(rank, opt):
328 | global OnceExecWorker
329 | gInit(opt)
330 | OnceExecWorker = OnceExecWorker or (pO.DDP and rank==0)
331 | mp.set_start_method('fork', force=True)
332 |
333 | os.environ['MASTER_ADDR'] = 'localhost'
334 | os.environ['MASTER_PORT'] = str(opt.port)
335 |
336 | dist.init_process_group("nccl", rank=rank, world_size=opt.num_gpu)
337 |
338 | #to ensure identical init parameters
339 | rSeed(opt.manualSeed)
340 |
341 | torch.cuda.set_device(rank)
342 | opt.world_size = opt.num_gpu
343 | opt.rank = rank
344 |
345 | train(opt)
346 |
347 | if __name__ == '__main__':
348 |
349 | parser = argparse.ArgumentParser()
350 | parser.add_argument('--gin', help='Gin config file')
351 |
352 | opt = parser.parse_args()
353 | gInit(opt)
354 | opt.manualSeed = ginM('manualSeed')
355 | opt.port = ginM('port')
356 |
357 | if OnceExecWorker:
358 | rSeed(opt.manualSeed)
359 |
360 | opt.num_gpu = torch.cuda.device_count()
361 |
362 |
363 | if pO.HVD:
364 | opt.world_size = hvd.size()
365 | opt.rank = hvd.rank()
366 |
367 | if not pO.DDP:
368 | train(opt)
369 | else:
370 | mp.spawn(launch_fn, args=(opt,), nprocs=opt.num_gpu)
--------------------------------------------------------------------------------
/utils.py:
--------------------------------------------------------------------------------
1 | import torch
2 | import torch.distributed as dist
3 |
4 | import horovod.torch as hvd
5 |
6 | from copy import deepcopy
7 | from collections import OrderedDict
8 | device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
9 |
10 |
11 | class CTCLabelConverter(object):
12 | """ Convert between text-label and text-index """
13 |
14 | def __init__(self, character):
15 | # character (str): set of the possible characters.
16 | dict_character = list(character)
17 |
18 | self.dict = {}
19 | for i, char in enumerate(dict_character):
20 | # NOTE: 0 is reserved for 'blank' token required by CTCLoss
21 | self.dict[char] = i + 1
22 |
23 | self.character = ['[blank]'] + dict_character # dummy '[blank]' token for CTCLoss (index 0)
24 |
25 | def encode(self, text):
26 | """convert text-label into text-index.
27 | input:
28 | text: text labels of each image. [batch_size]
29 |
30 | output:
31 | text: concatenated text index for CTCLoss.
32 | [sum(text_lengths)] = [text_index_0 + text_index_1 + ... + text_index_(n - 1)]
33 | length: length of each text. [batch_size]
34 | """
35 | length = [len(s) for s in text]
36 | text = ''.join(text)
37 | text = [self.dict[char] for char in text]
38 |
39 | return (torch.IntTensor(text).to(device), torch.IntTensor(length).to(device))
40 |
41 | def decode(self, text_index, length):
42 | """ convert text-index into text-label. """
43 | texts = []
44 | index = 0
45 | for l in length:
46 | t = text_index[index:index + l]
47 |
48 | char_list = []
49 | for i in range(l):
50 | if t[i] != 0 and (not (i > 0 and t[i - 1] == t[i])) and t[i] Loaded state_dict_ema")
152 | else:
153 | print("=> Failed to find state_dict_ema, starting from loaded model weights")
154 |
155 | def update(self, model, num_updates=-1):
156 | # correct a mismatch in state dict keys
157 | needs_module = hasattr(model, 'module') and not self.ema_has_module
158 | if num_updates >= 0:
159 | _cdecay = min(self.decay, (1 + num_updates) / (10 + num_updates))
160 | else:
161 | _cdecay = self.decay
162 |
163 | with torch.no_grad():
164 | msd = model.state_dict()
165 | for k, ema_v in self.ema.state_dict().items():
166 | if needs_module:
167 | k = 'module.' + k
168 | model_v = msd[k].detach()
169 | if self.device:
170 | model_v = model_v.to(device=self.device)
171 | ema_v.copy_(ema_v * _cdecay + (1. - _cdecay) * model_v)
--------------------------------------------------------------------------------